*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #5b4fcf;--primary-dark: #4338a8;--secondary: #f97316;--success: #22c55e;--danger: #ef4444;--warning: #eab308;--bg: #f0f4ff;--card-bg: #ffffff;--text: #1e1b4b;--text-muted: #6b7280;--border: #e5e7eb;--shadow: 0 4px 16px rgba(91, 79, 207, .12);--radius: 16px;--radius-sm: 10px;font-size:16px}html,body,#root{height:100%;width:100%}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100vh;max-width:640px;margin:0 auto;padding:0 0 40px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:transform .1s,box-shadow .1s,opacity .1s;text-decoration:none;line-height:1.2}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary);color:#fff;box-shadow:0 3px 10px #5b4fcf4d}.btn--primary:hover:not(:disabled){background:var(--primary-dark)}.btn--secondary{background:var(--secondary);color:#fff;box-shadow:0 3px 10px #f973164d}.btn--secondary:hover:not(:disabled){background:#ea6c10}.btn--ghost{background:transparent;color:var(--primary);border:2px solid var(--primary)}.btn--ghost:hover:not(:disabled){background:#5b4fcf14}.btn--ghost.btn--danger{color:var(--danger);border-color:var(--danger)}.btn--ghost.btn--danger:hover:not(:disabled){background:#ef444414}.btn--back{background:transparent;color:var(--primary);padding:8px 14px;font-size:.95rem;border-radius:var(--radius-sm)}.btn--back:hover{background:#5b4fcf14}.btn--large{padding:14px 28px;font-size:1.1rem;border-radius:var(--radius)}.btn--topic{flex:1;padding:10px 6px;font-size:.9rem;border-radius:8px}.btn--practice{background:var(--topic-color, var(--primary));color:#fff}.btn--test{background:transparent;color:var(--topic-color, var(--primary));border:2px solid var(--topic-color, var(--primary))}.home-screen{padding:24px 16px}.home-header{text-align:center;padding:24px 0 16px}.app-title{font-size:2rem;font-weight:800;color:var(--primary);display:flex;align-items:center;justify-content:center;gap:10px}.app-title__icon{font-size:2.2rem}.app-subtitle{color:var(--text-muted);font-size:1rem;margin-top:4px}.section{margin:24px 0}.section-title{font-size:1.1rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.topic-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.topic-card{background:var(--card-bg);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);border-left:4px solid var(--topic-color, var(--primary));display:flex;flex-direction:column;gap:10px}.topic-card__header{display:flex;align-items:center;gap:8px}.topic-card__emoji{font-size:1.4rem}.topic-card__title{font-size:.9rem;font-weight:700;color:var(--text);line-height:1.3}.topic-card__accuracy{font-size:.78rem;color:var(--text-muted);background:#f3f4f6;border-radius:6px;padding:3px 8px}.topic-card__actions{display:flex;gap:8px}.mixed-actions{display:flex;gap:12px;flex-wrap:wrap}.mixed-actions .btn{flex:1;min-width:140px}.mode-header{display:flex;align-items:center;gap:12px;padding:16px;background:var(--card-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.mode-title{flex:1;font-size:1.1rem;font-weight:700;text-align:center}.mode-score{font-size:1rem;font-weight:700;color:var(--primary);background:#5b4fcf1a;padding:4px 10px;border-radius:20px}.practice-mode,.test-mode{min-height:100vh}.exercise-card{background:var(--card-bg);border-radius:var(--radius);padding:32px 24px;margin:20px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:28px}.exercise-problem{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}.exercise-op,.exercise-equals{font-size:2rem;font-weight:700;color:var(--text-muted)}.exercise-question{font-size:2.5rem;font-weight:800;color:var(--primary)}.fraction-display{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle}.fraction-display--small{font-size:.9rem}.fraction-display--normal{font-size:1.2rem}.fraction-display--large{font-size:1.8rem}.fraction-display--whole .fraction-numerator{font-weight:700}.fraction-numerator,.fraction-denominator{font-weight:700;line-height:1.1}.fraction-bar{display:block;width:100%;min-width:2em;height:3px;background:currentColor;border-radius:2px;margin:2px 0}.fraction-display--whole{font-weight:700;font-size:inherit}.fraction-input{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}.fraction-input__fields{display:flex;flex-direction:column;align-items:center;gap:0}.fraction-input__number{width:100px;text-align:center;padding:10px;border:2.5px solid var(--border);border-radius:var(--radius-sm);font-size:1.5rem;font-weight:700;color:var(--text);background:#f9fafb;transition:border-color .2s;-moz-appearance:textfield}.fraction-input__number::-webkit-inner-spin-button,.fraction-input__number::-webkit-outer-spin-button{-webkit-appearance:none}.fraction-input__number:focus{outline:none;border-color:var(--primary);background:#fff}.fraction-input__bar{width:100px;height:3px;background:var(--text);margin:4px 0;border-radius:2px}.feedback{width:100%;border-radius:var(--radius-sm);padding:20px;display:flex;flex-direction:column;align-items:center;gap:14px;animation:fadeIn .25s ease}.feedback--correct{background:#dcfce7;border:2px solid #86efac}.feedback--wrong{background:#fef2f2;border:2px solid #fca5a5}.feedback__message{font-size:1.3rem;font-weight:700;text-align:center}.feedback--correct .feedback__message{color:#166534}.feedback--wrong .feedback__message{color:#991b1b}.feedback__answer{display:flex;align-items:center;gap:10px;font-size:1.1rem;font-weight:600;flex-wrap:wrap;justify-content:center}.feedback__icon{font-size:1.8rem}.feedback__label{color:var(--text-muted);font-size:.95rem}.feedback__timeout{font-size:1.1rem;font-weight:600;color:#92400e}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hint-box{margin:0 16px 20px;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:var(--radius-sm);overflow:hidden}.hint-content{padding:14px 16px;display:flex;flex-direction:column;gap:6px;font-size:.92rem;color:#1e3a8a;border-bottom:1px solid #bfdbfe}.hint-button{display:block;width:100%;padding:12px 16px;background:none;border:none;cursor:pointer;font-weight:600;color:#1d4ed8;font-size:.95rem;text-align:left}.hint-button:hover{background:#dbeafe}.scratch-pad{margin:0 16px 20px;border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--card-bg)}.scratch-pad__toggle{display:block;width:100%;padding:12px 16px;background:none;border:none;cursor:pointer;font-weight:600;color:var(--text-muted);font-size:.95rem;text-align:left}.scratch-pad__toggle:hover{background:#f3f4f6}.scratch-pad__area{display:block;width:100%;padding:12px 16px;border:none;border-top:1.5px solid var(--border);font-family:Segoe UI,system-ui,sans-serif;font-size:1rem;color:var(--text);background:#fafafa;resize:vertical;outline:none;line-height:1.6}.scratch-calc__toggle{display:block;width:100%;padding:10px 12px;background:none;border:none;border-top:1.5px solid var(--border);cursor:pointer;font-weight:600;color:var(--text-muted);font-size:.9rem;text-align:left}.scratch-calc__toggle:hover{background:#f3f4f6}.scratch-calc__pw-form{display:flex;gap:8px;padding:10px 12px;border-top:1.5px solid var(--border);background:#fafafa}.scratch-calc__pw-input{flex:1;border:1.5px solid var(--border);border-radius:6px;padding:6px 10px;font-size:.95rem;outline:none}.scratch-calc__pw-input:focus{border-color:var(--primary)}.scratch-calc__pw-input--error{border-color:var(--danger);background:#fff0f0}.scratch-calc__pw-input--error::placeholder{color:var(--danger)}.scratch-calc{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1.5px solid var(--border);background:#f8f9ff}.scratch-calc__input{flex:1;border:1.5px solid var(--border);border-radius:6px;padding:6px 10px;font-size:1rem;font-family:Segoe UI,system-ui,sans-serif;background:#fff;color:var(--text);outline:none;min-width:0}.scratch-calc__input:focus{border-color:var(--primary)}.scratch-calc__equals{font-weight:700;font-size:1.1rem;color:var(--text-muted)}.scratch-calc__result{font-weight:700;font-size:1.05rem;color:var(--primary);min-width:40px}.scratch-calc__result--error{color:var(--danger);font-size:.8rem;font-weight:500}.test-progress-bar{height:8px;background:#e5e7eb;border-radius:4px;margin:12px 16px 0;overflow:hidden}.test-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:4px;transition:width .4s ease}.test-progress-text{font-size:.9rem;font-weight:700;color:var(--text-muted)}.test-timer{text-align:center;font-size:1.4rem;font-weight:800;padding:10px;transition:color .3s}.result-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#ede9fe,#fce7f3)}.result-card{background:var(--card-bg);border-radius:24px;padding:40px 32px;text-align:center;box-shadow:0 8px 40px #5b4fcf33;max-width:400px;width:100%;animation:popIn .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes popIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.result-title{font-size:1.6rem;font-weight:800;color:var(--primary);margin-bottom:20px}.result-stars{font-size:2.8rem;margin:10px 0 20px;display:flex;gap:8px;justify-content:center}.result-star--empty{opacity:.25}.result-score{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:10px 0 20px}.result-score__number{font-size:3rem;font-weight:900;color:var(--primary)}.result-score__divider{font-size:2rem;color:var(--text-muted)}.result-score__total{font-size:2rem;font-weight:700;color:var(--text)}.result-score__pct{font-size:1rem;color:var(--text-muted)}.result-message{font-size:1.05rem;color:var(--text-muted);margin:0 0 28px;line-height:1.6}.result-actions{display:flex;flex-direction:column;gap:12px}.stats-screen{padding-bottom:40px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px 16px}.stats-tile{background:var(--card-bg);border-radius:var(--radius);padding:18px 16px;text-align:center;box-shadow:var(--shadow)}.stats-tile--blue{border-top:4px solid #3b82f6}.stats-tile--green{border-top:4px solid var(--success)}.stats-tile--orange{border-top:4px solid var(--secondary)}.stats-tile--purple{border-top:4px solid var(--primary)}.stats-tile__value{font-size:2rem;font-weight:800}.stats-tile__label{font-size:.78rem;color:var(--text-muted);font-weight:500}.stats-section{margin:0 16px 24px}.stats-section__title{font-size:1rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}.topic-stats-list{background:var(--card-bg);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.topic-stat-row{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}.topic-stat-row:last-child{border-bottom:none}.topic-stat-row__emoji{font-size:1.2rem;width:24px;text-align:center}.topic-stat-row__name{font-size:.88rem;font-weight:600;flex:1}.topic-stat-row__bar-wrap{width:80px;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.topic-stat-row__bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:4px;transition:width .5s ease}.topic-stat-row__pct{font-size:.85rem;font-weight:700;min-width:36px;text-align:right}.topic-stat-row__count{font-size:.78rem;color:var(--text-muted);min-width:42px;text-align:right}.activity-chart{background:var(--card-bg);border-radius:var(--radius);padding:20px 16px;box-shadow:var(--shadow);display:flex;align-items:flex-end;justify-content:space-around;gap:8px;height:100px}.activity-day{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}.activity-day__bar{width:100%;max-width:32px;min-height:4px;background:linear-gradient(180deg,var(--primary),var(--secondary));border-radius:4px 4px 0 0;transition:height .5s ease}.activity-day__label{font-size:.72rem;color:var(--text-muted);font-weight:600}.stats-reset{display:flex;justify-content:center;padding:20px 16px}@media(max-width:400px){.topic-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.app-title{font-size:1.6rem}}
