:root{--bg: #f1f5f9;--surface: #ffffff;--text: #0f172a;--text-muted: #475569;--border: #cbd5e1;--primary: #2563eb;--primary-text: #ffffff;--success: #16a34a;--danger: #dc2626;--warn: #d97706;--radius: 16px;--gap: 16px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}@media(prefers-color-scheme:dark){:root{--bg: #0f172a;--surface: #1e293b;--text: #f8fafc;--text-muted: #94a3b8;--border: #334155;--primary: #3b82f6;--success: #22c55e;--danger: #ef4444;--warn: #f59e0b}}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:19px;line-height:1.45;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain}.page{max-width:640px;margin:0 auto;padding:0 calc(var(--gap) + var(--safe-left)) calc(var(--gap) + var(--safe-bottom)) calc(var(--gap) + var(--safe-right))}.app-header{display:flex;align-items:center;gap:8px;padding-top:calc(var(--safe-top) + 12px);padding-bottom:12px;position:sticky;top:0;background:var(--bg);z-index:10}.app-title{flex:1;margin:0;font-size:1.5rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{display:flex;gap:8px}.app-main{display:flex;flex-direction:column;gap:var(--gap);padding-bottom:32px}.card{background:var(--surface);border-radius:var(--radius);padding:var(--gap);box-shadow:0 1px 3px #0f172a1f;display:flex;flex-direction:column;gap:12px}.section-title{margin:0;font-size:1.15rem;font-weight:700}.btn{appearance:none;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text);font:inherit;font-weight:600;min-height:48px;padding:12px 18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;touch-action:manipulation}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{border-color:var(--border);color:var(--text)}.btn-big{width:100%;min-height:58px;font-size:1.15rem}.btn-back{min-width:44px;padding:8px 12px;font-size:1.8rem;line-height:1}.btn-speak{min-height:44px;min-width:44px;padding:8px;border-color:var(--border);font-size:1.3rem}.row{display:flex;gap:10px;flex-wrap:wrap}.row>.btn{flex:1 1 140px}.bottom-actions{display:flex;flex-direction:column;gap:10px}.label{font-weight:600;font-size:1rem;color:var(--text-muted)}.field{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.input{width:100%;font:inherit;font-size:18px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px 14px;min-height:48px}.input:focus{outline:3px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px}.textarea{min-height:220px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;line-height:1.5;resize:vertical}.input-answer{font-size:1.45rem;text-align:center;min-height:60px}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{flex:1 1 140px;border:2px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:12px;min-height:56px;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.chip-active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 14%,var(--surface))}.chip-label{font-weight:700}.chip-hint{font-size:.9rem;color:var(--text-muted)}.set-list{display:flex;flex-direction:column;gap:var(--gap)}.set-card{gap:10px}.set-main{border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:0;cursor:pointer;display:flex;flex-direction:column;gap:8px}.set-head{display:flex;align-items:center;gap:8px;justify-content:space-between}.set-name{margin:0;font-size:1.25rem}.badge{font-size:.88rem;font-weight:700;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary);white-space:nowrap}.set-meta{margin:0;color:var(--text-muted);font-size:1rem}.set-actions{display:flex;flex-direction:column;gap:10px}.set-actions-secondary{display:flex;flex-wrap:wrap;gap:8px}.set-actions-secondary .btn{flex:1 1 90px;min-height:46px;padding:8px 10px;font-size:.95rem}.btn-delete{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.progress{height:12px;border-radius:999px;background:var(--border);overflow:hidden}.progress-fill{height:100%;background:var(--success);border-radius:999px;transition:width .25s ease}.empty{align-items:center;text-align:center}.empty-title{font-size:1.2rem;font-weight:700;margin:0}.preview{display:flex;flex-direction:column;gap:10px}.preview-summary{margin:0}.preview-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.preview-row{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;padding:8px 10px;background:var(--bg);border-radius:10px}.preview-arrow{color:var(--text-muted)}.preview-foreign{font-weight:600}.hint{margin:0;color:var(--text-muted);font-size:1rem}.hint-ok{color:var(--success);font-weight:600}.hint-error{color:var(--danger);font-weight:600}.issues{font-size:.9rem;color:var(--warn)}.issues ul{margin:8px 0 0;padding-left:20px}.quiz-root,.quiz-view{display:flex;flex-direction:column;gap:var(--gap)}.round-progress{display:flex;flex-direction:column;gap:6px}.round-counter{margin:0;font-size:.95rem;color:var(--text-muted);text-align:center}.prompt-card{align-items:center;text-align:center;padding:28px var(--gap)}.prompt-lang{margin:0;font-size:.92rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.prompt-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.prompt-word{margin:0;font-size:2.3rem;font-weight:700;overflow-wrap:anywhere}.answer-word{color:var(--success)}.options{display:flex;flex-direction:column;gap:10px}.btn-option{width:100%;min-height:64px;font-size:1.2rem;background:var(--surface);border-color:var(--border);border-width:2px;box-shadow:0 1px 3px #0f172a1f}.flashcard{align-items:center;text-align:center;min-height:140px;justify-content:center}.flashcard .btn-big{width:100%}.feedback{align-items:center;text-align:center;border:3px solid var(--border)}.feedback-correct{border-color:var(--success)}.feedback-near{border-color:var(--warn)}.feedback-wrong{border-color:var(--danger)}.feedback-title{margin:0;font-size:1.7rem;font-weight:800}.feedback-correct .feedback-title{color:var(--success)}.feedback-near .feedback-title{color:var(--warn)}.feedback-wrong .feedback-title{color:var(--danger)}.feedback-prompt{margin:0;color:var(--text-muted)}.feedback-answer{margin:0;font-size:1.9rem;font-weight:700;overflow-wrap:anywhere}.feedback-given{margin:0;font-size:1rem;color:var(--text-muted)}.result{align-items:center;text-align:center}.result-score{margin:0;font-size:1.2rem;font-weight:600}.result-percent{margin:0;font-size:3rem;font-weight:800;color:var(--primary)}.result-praise{margin:0;font-size:1.1rem}.mistake-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.mistake{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border-radius:10px;flex-wrap:wrap}.mistake-answer{font-weight:700}.mistake-rate{margin-left:auto;font-size:.92rem;color:var(--text-muted)}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat{display:flex;flex-direction:column;align-items:center;padding:12px;background:var(--bg);border-radius:12px}.stat-value{font-size:1.6rem;font-weight:800}.stat-label{font-size:.92rem;color:var(--text-muted)}.bars{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;align-items:end}.bar-col{display:flex;flex-direction:column;align-items:center;gap:4px}.bar-track{width:100%;height:110px;background:var(--bg);border-radius:8px;display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;background:var(--primary);border-radius:8px 8px 0 0;min-height:3px}.bar-count{font-weight:700;font-size:.9rem}.bar-label{font-size:.8rem;color:var(--text-muted);text-align:center;line-height:1.2}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
