:root{--bg: #f6f4ef;--card: #ffffff;--ink: #14213d;--muted: #5d6677;--line: #dcd8cf;--accent: #b86e00;--accent-soft: #fdf0d8;--primary: #14213d;--on-primary: #ffffff;--ok: #1f7a4d;--ok-soft: #e4f4ea;--miss: #a8321f;--miss-soft: #fbe9e5;--focus: #2f6fed;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #10151f;--card: #1a2130;--ink: #eef1f6;--muted: #9aa5b8;--line: #2e3850;--accent: #ffb84d;--accent-soft: #3a2e17;--primary: #ffb84d;--on-primary: #14213d;--ok: #5fd39a;--ok-soft: #173326;--miss: #ff8f7a;--miss-soft: #3b1d18;--focus: #8fb4ff}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}main{max-width:640px;margin:0 auto;padding:16px 16px 8px}h1{font-size:1.35rem;margin:0;letter-spacing:-.01em}h2{font-size:1.2rem;margin:0 0 8px;text-wrap:balance}h3{font-size:.95rem;margin:18px 0 8px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}h3:first-child{margin-top:0}p{margin:0 0 12px}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center;padding:48px 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:14px}.home-head{display:flex;justify-content:space-between;align-items:baseline;margin:8px 2px 16px}.link{background:none;border:0;padding:6px 2px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.foot{max-width:640px;margin:0 auto;padding:4px 18px 28px}.primary,.secondary,.danger{border-radius:10px;padding:12px 20px;font-weight:600;min-height:48px;border:1.5px solid transparent}.primary{background:var(--primary);color:var(--on-primary)}.primary:disabled{opacity:.4;cursor:default}.primary.big{width:100%;font-size:1.1rem;padding:16px;margin-top:4px}.secondary{background:transparent;border-color:var(--line)}.secondary:disabled{opacity:.4;cursor:default}.danger{background:var(--miss);color:#fff}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.tag{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 9px;border-radius:99px;letter-spacing:.03em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);margin-left:8px}.tag-check,.tag-diagnostic{background:var(--primary);color:var(--on-primary)}.skills{list-style:none;margin:0;padding:0;display:grid;gap:10px}.skill{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.card .skill{background:transparent;padding:10px 0;border:0;border-bottom:1px solid var(--line);border-radius:0}.skill.focus{border-color:var(--accent)}.skill-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.skill-title{font-weight:600}.skill-sub{font-size:.88rem;margin-top:2px}.dots{display:inline-flex;gap:5px;flex:none}.dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--line)}.dot.done{background:var(--ok);border-color:var(--ok)}.dot.now{border-color:var(--accent);background:var(--accent-soft)}.meter,.bar{height:5px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:10px}.meter div{height:100%;background:var(--ok);border-radius:99px}.bar{margin:0 0 14px}.bar div{height:100%;background:var(--accent);transition:width .25s}.session-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.session-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;justify-content:center;font-size:.88rem}.session-meta .tag{margin-left:0}.count{font-variant-numeric:tabular-nums;white-space:nowrap}.prompt{font-size:1.08rem}.math{font-size:1.9rem;font-weight:600;text-align:center;margin:18px 0 22px;letter-spacing:.01em;font-variant-numeric:tabular-nums}.frac{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin:0 .12em;font-size:.82em;line-height:1.15}.frac span:first-child{border-bottom:.09em solid currentColor;padding:0 .22em .04em}.frac span:last-child{padding:.04em .22em 0}.answer-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.answer-label{font-weight:600}.answer{font:inherit;font-size:1.35rem;width:8.5ch;min-width:0;flex:0 1 auto;padding:9px 12px;border-radius:10px;border:2px solid var(--line);background:var(--bg);color:var(--ink);text-align:center;font-variant-numeric:tabular-nums}.answer.invalid{border-color:var(--miss)}.unit{color:var(--muted)}.keys{display:inline-flex;gap:6px;margin-left:auto}.key{width:44px;height:44px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);font-size:1.2rem;font-weight:600}.note{font-size:.88rem;color:var(--muted);margin:12px 0 0}.note.warn{color:var(--miss)}.choices{display:grid;gap:8px}.choice{display:flex;align-items:center;gap:14px;text-align:left;background:var(--bg);border:2px solid var(--line);border-radius:10px;padding:10px 14px;min-height:52px;font-size:1.15rem;font-variant-numeric:tabular-nums}.choice .box{width:24px;height:24px;border:2px solid var(--muted);border-radius:4px;display:grid;place-items:center;font-size:1rem;font-weight:700;flex:none;background:var(--card)}.choice.picked{border-color:var(--primary)}.choice.correct{border-color:var(--ok);background:var(--ok-soft)}.choice.wrong{border-color:var(--miss);background:var(--miss-soft)}.choice:disabled{cursor:default;color:inherit}.hints{margin-top:16px;border-top:1px dashed var(--line);padding-top:12px}.hint{background:var(--accent-soft);border-radius:10px;padding:10px 14px;margin-bottom:8px}.feedback h2{margin-bottom:10px}.feedback.ok{border-color:var(--ok);background:var(--ok-soft)}.feedback.ok h2{color:var(--ok)}.feedback.miss{border-color:var(--miss)}.feedback.miss h2{color:var(--miss)}.mis{background:var(--miss-soft);border-radius:10px;padding:10px 14px}.steps{margin:0 0 14px;padding-left:1.3em}.steps li{margin-bottom:6px}.visual{display:block;width:100%;max-width:420px;margin:6px auto 16px;overflow:visible}.v-line{stroke:var(--muted);stroke-width:1.2}.v-zero{stroke:var(--ink);stroke-width:2}.v-seg{stroke:var(--ink);stroke-width:2;stroke-linecap:round}.v-dashed{stroke-dasharray:5 4}.v-text{fill:var(--muted);font-size:12px;font-family:inherit}.v-strong{fill:var(--ink);font-weight:700}.v-accent-text{fill:var(--accent);font-size:14px}.v-note{font-style:italic;font-size:10px}.v-arc{fill:var(--line);stroke:var(--muted);stroke-width:1;fill-opacity:.6}.v-arc-accent{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5;fill-opacity:1}.v-right{fill:none;stroke:var(--ink);stroke-width:1.5}.v-jump{fill:none;stroke:var(--accent);stroke-width:2}.v-jump-head{fill:var(--accent)}.v-from{fill:var(--card);stroke:var(--ink);stroke-width:2}.v-to{fill:var(--accent)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin-bottom:8px}.stats>div{display:flex;flex-direction:column}.stat{font-size:1.7rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.stats .muted{font-size:.85rem}.verdict{background:var(--accent-soft);border-radius:10px;padding:12px 14px;margin-top:10px}.plain{list-style:none;padding:0;margin:0 0 6px}.plain li{padding:7px 0;border-bottom:1px solid var(--line)}.week{display:flex;align-items:flex-end;gap:8px;height:100px}.week-day{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px}.week-bar{width:100%;max-width:38px;background:var(--accent);border-radius:5px 5px 0 0}.week-n{font-size:.8rem;font-variant-numeric:tabular-nums;min-height:1.2em}.table{width:100%;border-collapse:collapse;margin-top:14px;font-size:.92rem;font-variant-numeric:tabular-nums}.table th{text-align:left;color:var(--muted);font-weight:600;font-size:.8rem;padding:6px 8px 6px 0}.table td{padding:8px 8px 8px 0;border-top:1px solid var(--line);white-space:pre-wrap}.mis-list{list-style:none;padding:0;margin:0}.mis-list li{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.mis-list li:last-child{border-bottom:0}.mis-n{font-weight:700;font-variant-numeric:tabular-nums;min-width:2.4em;color:var(--miss)}.form{display:grid;gap:12px}.form label{display:grid;gap:4px;font-weight:600;font-size:.9rem}.form input{font:inherit;padding:11px 12px;border-radius:10px;border:2px solid var(--line);background:var(--bg);color:var(--ink)}.tabs{max-width:640px;margin:12px auto 0;padding:0 16px;display:flex;gap:8px}.tab{border:1.5px solid var(--line);background:transparent;border-radius:99px;padding:6px 14px}.tab.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}@media (max-width: 420px){.math{font-size:1.6rem}.card{padding:16px}}@media (prefers-reduced-motion: reduce){.bar div{transition:none}}
