:root{--bg: #FAF7F2;--bg-warm: #F5EDE3;--bg-gradient: linear-gradient(160deg, #FFECD2 0%, #FCB69F 100%);--accent: #E8734A;--accent-light: #F49D6E;--accent-dark: #C85A35;--accent-gradient: linear-gradient(135deg, #E8734A, #F4A261);--success: #5CB85C;--success-bg: #EEF7EE;--error: #D9534F;--error-bg: #FDEEEE;--warning: #F0AD4E;--text: #2D2A26;--text-secondary: #7A746D;--text-muted: #B0A99F;--card: #FFFFFF;--card-shadow: 0 2px 16px rgba(0,0,0,.06);--card-shadow-lg: 0 8px 32px rgba(0,0,0,.1);--radius: 20px;--radius-sm: 14px;--radius-xs: 10px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--topic-1: #FFEAA7;--topic-2: #DFE6E9;--topic-3: #FAD0C0;--topic-4: #C8E6C9;--topic-5: #D5C4F2;--topic-6: #B2E4F0;--topic-7: #FFD8B1;--topic-8: #F8BBD0;--topic-9: #C5CAE9;--topic-10: #E6EE9C;--topic-11: #FFCCBC}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100dvh;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none}input{font-family:inherit}.page{max-width:480px;margin:0 auto;padding:16px 16px 120px;min-height:100dvh}.page-center{display:flex;align-items:center;justify-content:center;min-height:100dvh;flex-direction:column;gap:16px}.section{margin-top:28px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-title{font-size:1.05rem;font-weight:800;color:var(--text);display:flex;align-items:center;gap:8px}.loader{width:36px;height:36px;border:3px solid var(--bg-warm);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-primary{background:var(--accent-gradient);color:#fff;font-weight:700;font-size:.95rem;padding:16px 28px;border-radius:var(--radius);transition:transform .15s,opacity .15s;box-shadow:0 4px 16px #e8734a4d}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{background:var(--card);color:var(--text);font-weight:600;font-size:.95rem;padding:16px 28px;border-radius:var(--radius);border:2px solid #E8E4DE;transition:border-color .15s}.btn-secondary:active{border-color:var(--accent)}.btn-ghost{color:var(--text-secondary);font-weight:600;font-size:.85rem;padding:8px 12px;border-radius:var(--radius-xs);transition:background .15s}.btn-ghost:hover{background:var(--bg-warm)}.btn-full{width:100%;display:block;text-align:center}.btn-large{padding:18px 28px;font-size:1.05rem;border-radius:24px}.mode-row{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:10px 18px;border-radius:100px;font-size:.8rem;font-weight:600;border:2px solid #E8E4DE;background:var(--card);color:var(--text-secondary);transition:all .15s}.chip:hover{border-color:var(--accent-light)}.chip-active{border-color:var(--accent);background:#fff0e8;color:var(--accent)}.badge{font-size:.7rem;font-weight:700;padding:3px 10px;border-radius:100px;background:#fff0e8;color:var(--accent)}.retry-badge{display:inline-block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:4px 12px;border-radius:100px;background:var(--error-bg);color:var(--error);margin-bottom:10px}.login-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);padding:24px}.login-hero{text-align:center;margin-bottom:36px}.login-emoji{display:block;margin-bottom:16px;animation:bounce 2s ease infinite;color:var(--accent)}.login-emoji svg{width:64px;height:64px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.login-hero h1{font-size:1.8rem;font-weight:900;color:var(--text);line-height:1.2}.login-hero p{color:var(--text-secondary);font-size:.9rem;margin-top:8px}.login-card{background:var(--card);border-radius:24px;padding:32px 24px;width:100%;max-width:380px;box-shadow:var(--card-shadow-lg)}.input-group{margin-bottom:16px}.input-group label{display:block;font-size:.8rem;font-weight:700;color:var(--text-secondary);margin-bottom:6px}.input-group input{width:100%;padding:14px 16px;border:2px solid #E8E4DE;border-radius:var(--radius-sm);font-size:.95rem;color:var(--text);outline:none;transition:border-color .15s;background:var(--bg)}.input-group input:focus{border-color:var(--accent)}.error-msg{color:var(--error);font-size:.8rem;font-weight:600;margin-bottom:12px;text-align:center}.home-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-top:8px}.greeting{font-size:.85rem;color:var(--text-secondary);margin-bottom:2px}.home-header h1{font-size:1.5rem;font-weight:900}.hero-banner{background:var(--accent-gradient);border-radius:var(--radius);padding:24px;color:#fff;position:relative;overflow:hidden;box-shadow:0 6px 24px #e8734a40}.hero-banner:after{content:"";position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:#ffffff1f;border-radius:50%}.hero-banner:before{content:"";position:absolute;bottom:-40px;right:40px;width:80px;height:80px;background:#ffffff14;border-radius:50%}.hero-emoji{display:block;margin-bottom:8px;color:#fff}.hero-emoji svg{width:36px;height:36px}.hero-title{font-size:1.15rem;font-weight:800;margin-bottom:4px}.hero-subtitle{font-size:.8rem;opacity:.85;margin-bottom:16px}.hero-btn{display:inline-block;background:#fff;color:var(--accent-dark);font-weight:700;font-size:.85rem;padding:10px 24px;border-radius:100px;transition:transform .15s;box-shadow:0 2px 8px #0000001a;cursor:pointer;border:none}.hero-btn:active{transform:scale(.97)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.stat-card{background:var(--card);border-radius:var(--radius-sm);padding:16px;box-shadow:var(--card-shadow);display:flex;align-items:center;gap:12px}.stat-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon svg{width:20px;height:20px}.stat-icon.mastered svg{color:#43a047}.stat-icon.learning svg{color:#f9a825}.stat-icon.struggling svg{color:#e53935}.stat-icon.accuracy svg{color:#1e88e5}.stat-icon.mastered{background:#e8f5e9}.stat-icon.learning{background:#fff8e1}.stat-icon.struggling{background:#ffebee}.stat-icon.accuracy{background:#e3f2fd}.stat-info{flex:1}.stat-num{display:block;font-size:1.3rem;font-weight:800;color:var(--text);line-height:1}.stat-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.global-progress{background:var(--card);border-radius:var(--radius-sm);padding:16px;box-shadow:var(--card-shadow);margin-top:10px}.global-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.global-progress-title{font-size:.8rem;font-weight:700;color:var(--text)}.global-progress-pct{font-size:.8rem;font-weight:800;color:var(--accent)}.topic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.topic-card{border:2px solid transparent;border-radius:var(--radius);padding:16px;text-align:left;transition:all .2s;width:100%;position:relative;overflow:hidden;min-height:100px;display:flex;flex-direction:column;justify-content:space-between}.topic-card:nth-child(1){background:var(--topic-1)}.topic-card:nth-child(2){background:var(--topic-2)}.topic-card:nth-child(3){background:var(--topic-3)}.topic-card:nth-child(4){background:var(--topic-4)}.topic-card:nth-child(5){background:var(--topic-5)}.topic-card:nth-child(6){background:var(--topic-6)}.topic-card:nth-child(7){background:var(--topic-7)}.topic-card:nth-child(8){background:var(--topic-8)}.topic-card:nth-child(9){background:var(--topic-9)}.topic-card:nth-child(10){background:var(--topic-10)}.topic-card:nth-child(11){background:var(--topic-11)}.topic-card:active{transform:scale(.97)}.topic-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.topic-emoji{font-size:1.6rem;margin-bottom:8px;display:block;line-height:1}.topic-name{font-weight:700;font-size:.8rem;color:var(--text);line-height:1.3;margin-bottom:6px}.topic-meta{display:flex;justify-content:space-between;align-items:center}.topic-count{font-size:.65rem;color:var(--text-secondary);font-weight:600}.topic-progress-mini{height:3px;background:#00000014;border-radius:100px;overflow:hidden;margin-top:6px}.topic-progress-mini-fill{height:100%;background:var(--accent);border-radius:100px;transition:width .4s ease}.start-section{position:fixed;bottom:0;left:0;right:0;padding:40px 16px 16px;background:linear-gradient(transparent,var(--bg) 30%);z-index:10}.start-section .btn-primary{max-width:480px;margin:0 auto}.quiz-page{padding-bottom:20px}.quiz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.quiz-counter{font-weight:700;font-size:.85rem;color:var(--text-secondary);background:var(--card);padding:6px 14px;border-radius:100px;box-shadow:var(--card-shadow)}.score-row{display:flex;gap:8px;margin:14px 0 18px}.score-badge{flex:1;text-align:center;padding:12px 8px;border-radius:var(--radius-sm);background:var(--card);box-shadow:var(--card-shadow)}.score-num{display:block;font-size:1.3rem;font-weight:800}.score-label{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.score-correct .score-num{color:var(--success)}.score-wrong .score-num{color:var(--error)}.score-streak .score-num{color:var(--accent)}.progress-container{margin-bottom:4px}.progress-track{height:8px;background:#ede8e1;border-radius:100px;overflow:hidden}.progress-fill{height:100%;background:var(--accent-gradient);border-radius:100px;transition:width .4s ease}.progress-label{display:block;font-size:.7rem;color:var(--text-muted);margin-top:4px}.question-card{background:var(--card);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--card-shadow-lg);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.question-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.q-type-badge,.q-topic-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:5px 12px;border-radius:100px}.q-type-badge{background:#fff0e8;color:var(--accent)}.q-topic-badge{background:var(--bg-warm);color:var(--text-secondary)}.q-text{font-size:1.1rem;font-weight:700;line-height:1.6;margin-bottom:24px;color:var(--text)}.options-list{display:flex;flex-direction:column;gap:10px}.option-btn{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;background:var(--bg);border:2px solid #E8E4DE;border-radius:var(--radius-sm);font-size:.9rem;text-align:left;line-height:1.4;transition:all .15s;color:var(--text)}.option-btn:hover:not(:disabled){border-color:var(--accent-light);background:#fff6f0}.option-btn:active:not(:disabled){transform:scale(.98)}.option-letter{width:32px;height:32px;border-radius:10px;background:var(--bg-warm);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem;flex-shrink:0;color:var(--text-secondary)}.option-correct{border-color:var(--success);background:var(--success-bg)}.option-correct .option-letter{background:var(--success);color:#fff}.option-wrong{border-color:var(--error);background:var(--error-bg)}.option-wrong .option-letter{background:var(--error);color:#fff}.option-disabled{opacity:.35;pointer-events:none}.tf-row{display:flex;gap:12px}.tf-btn{flex:1;padding:20px;border-radius:var(--radius-sm);border:2px solid #E8E4DE;background:var(--bg);font-size:1.05rem;font-weight:700;color:var(--text);transition:all .15s}.tf-btn:hover:not(:disabled){border-color:var(--accent-light)}.tf-btn:active:not(:disabled){transform:scale(.97)}.tf-correct{border-color:var(--success);background:var(--success-bg);color:var(--success)}.tf-wrong{border-color:var(--error);background:var(--error-bg);color:var(--error)}.tf-disabled{opacity:.35;pointer-events:none}.input-section{display:flex;flex-direction:column;gap:12px}.input-hint{font-size:.8rem;color:var(--text-muted);font-style:italic}.input-answer{width:100%;padding:16px 18px;border:2px solid #E8E4DE;border-radius:var(--radius-sm);font-size:1rem;color:var(--text);background:var(--bg);outline:none;transition:border-color .15s}.input-answer:focus{border-color:var(--accent)}.input-correct{border-color:var(--success);background:var(--success-bg)}.input-wrong{border-color:var(--error);background:var(--error-bg)}.feedback-card{margin-top:18px;padding:16px 18px;border-radius:var(--radius-sm);font-size:.85rem;line-height:1.6;animation:slideUp .2s ease}.feedback-card strong{display:block;margin-bottom:4px;font-size:.95rem}.feedback-correct{background:var(--success-bg);border:1px solid #A5D6A7;color:#2e7d32}.feedback-wrong{background:var(--error-bg);border:1px solid #EF9A9A;color:#c62828}.feedback-answer{margin-top:6px;font-weight:600}.btn-next{margin-top:16px}.results-page{text-align:center;padding-top:20px}.results-hero{padding:40px 20px;background:var(--card);border-radius:var(--radius);box-shadow:var(--card-shadow-lg);margin-bottom:24px}.results-emoji{display:block;margin-bottom:12px;animation:bounce 2s ease infinite;color:var(--accent)}.results-emoji svg{width:64px;height:64px}.results-message{font-size:1.5rem;font-weight:900;margin-bottom:4px;color:var(--text)}.results-score{font-size:4.5rem;font-weight:900;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1;margin:8px 0}.results-subtitle{font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.results-details{color:var(--text-muted);font-size:.85rem}.results-review{text-align:left;margin-top:8px}.review-card{background:var(--card);border-radius:var(--radius-sm);padding:16px 18px;margin-bottom:10px;box-shadow:var(--card-shadow);border-left:4px solid var(--error)}.review-question{font-weight:700;font-size:.9rem;margin-bottom:6px;line-height:1.4}.review-answer{font-size:.8rem;color:var(--success);font-weight:700;margin-bottom:4px}.review-correct-label{color:var(--text-secondary);font-weight:400}.review-explanation{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.results-perfect{background:var(--success-bg);border-radius:var(--radius);padding:28px;margin:24px 0;font-weight:700;color:#2e7d32;font-size:1rem;box-shadow:var(--card-shadow)}.results-perfect-emoji{display:block;margin-bottom:8px;color:#2e7d32}.results-perfect-emoji svg{width:40px;height:40px}.results-actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}@media(min-width:640px){.page{padding:24px 24px 140px}.login-card{padding:40px 32px}.question-card{padding:32px 28px}}
