:root{--bg:#f7f5f0;--surface:#fff;--ink:#1d2233;--muted:#6b7185;--line:#d9d5cc;--accent:#2f6fed;--good:#1f9d55;--bad:#d64545;--gold:#eda100;--radius:14px;--shadow:0 1px 2px #0000000f, 0 4px 14px #0000000d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#12141b;--surface:#1c1f29;--ink:#eceef4;--muted:#9aa0b4;--line:#2d3140;--accent:#6d9bff;--good:#3ecf7a;--bad:#ff6b6b;--gold:#f2b134;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior:none;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,select{font:inherit;color:inherit}h1{margin:0;font-size:1.3rem}.loading{height:100%;color:var(--muted);place-items:center;display:grid}.muted{color:var(--muted)}.small{font-size:.9rem}.good{color:var(--good)}.bad{color:var(--bad)}.screen{max-width:640px;padding:max(12px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;gap:14px;min-height:100%;margin:0 auto;display:flex}.top-bar{justify-content:space-between;align-items:center;gap:8px;display:flex}.header-actions{display:flex}.icon-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;width:44px;height:44px;font-size:22px}.icon-btn:active{background:var(--line)}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;min-height:48px;padding:0 20px;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:0 0;border-color:#0000;padding:0 8px}.btn.danger{color:var(--bad);border-color:var(--bad)}.btn.big{min-height:56px;font-size:1.1rem}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.section-title{margin:6px 0 0;font-size:1rem}.nudge{background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-radius:12px;margin:0;padding:10px 14px}.update-banner{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:12px;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.stat-label{color:var(--muted);font-size:.85rem}.warmup-card{background:var(--surface);border:2px solid var(--gold);border-radius:var(--radius);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.warmup-card h2{margin:0;font-size:1.1rem}.warmup-card p{margin:0}.table-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}@media (width>=520px){.table-grid{grid-template-columns:repeat(5,1fr)}}.table-card{border-radius:var(--radius);background:var(--surface);width:100%;min-height:96px;box-shadow:var(--shadow);cursor:pointer;border:2px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px;display:flex}.table-card.mastered{border-color:var(--good)}.table-card.locked{opacity:.45;cursor:not-allowed}.table-num{font-size:1.8rem;font-weight:800}.table-status{color:var(--muted);font-size:.8rem}.table-card.mastered .table-status{color:var(--good);font-weight:600}.table-best{color:var(--muted);font-size:.75rem}.play .score{font-variant-numeric:tabular-nums;font-weight:600}.round-progress{background:var(--line);border-radius:4px;height:8px;overflow:hidden}.round-progress-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s}.progress-label{text-align:center;color:var(--muted);margin:-6px 0 0;font-size:.9rem}.question{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:14px;padding:24px 8px;font-size:clamp(2.4rem,11vw,4rem);font-weight:800;display:flex}.answer-box{border-bottom:4px solid var(--line);text-align:center;min-width:2.6ch;padding:0 8px}.phase-right .answer-box{color:var(--good);border-color:var(--good)}.phase-wrong .answer-box{color:var(--bad);border-color:var(--bad)}.feedback{text-align:center;flex-direction:column;align-items:center;gap:6px;min-height:56px;font-size:1.1rem;display:flex}.feedback strong{font-size:1.4rem}.numpad{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:auto;display:grid}.key{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:14px;min-height:64px;font-size:1.7rem;font-weight:700}.key:active:not(:disabled){background:var(--line)}.key:disabled{opacity:.5}.key-ok{background:var(--accent);border-color:var(--accent);color:#fff;font-size:1.3rem}.results-head{text-align:center;padding:12px 0 0}.results-head p{color:var(--muted);margin:6px 0 0}.results-emoji{font-size:3rem}.results-head.mastered h1{color:var(--good)}.missed{margin:8px 0 0;padding-left:20px;font-size:1.1rem;line-height:1.7}.actions{flex-direction:column;gap:10px;margin-top:auto;display:flex}.table-wrap{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.day-table{border-collapse:collapse;width:100%;font-size:.92rem}.day-table th,.day-table td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:10px}.day-table th{color:var(--muted);font-weight:600}.day-table tr:last-child td{border-bottom:0}.day-table .num{text-align:right;font-variant-numeric:tabular-nums}.chip{border:1px solid var(--line);border-radius:999px;margin:1px 3px 1px 0;padding:1px 7px;font-size:.82rem;display:inline-block}.chip.mastered{border-color:var(--good);color:var(--good);font-weight:600}.setting-list{flex-direction:column;gap:4px;display:flex}.setting{justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.setting select{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:40px;padding:0 8px}.setting input[type=checkbox]{width:22px;height:22px}
