:root{--bg:#f6f1e7;--card:#fffdf8;--ink:#1b2a4a;--muted:#5b6b86;--line:#e4d9c5;--accent:#e06c4f;--accent-dark:#c45338;--shadow:0 10px 30px #1b2a4a14}*{box-sizing:border-box}body{background:radial-gradient(circle at top, #fff8ee, var(--bg));color:var(--ink);min-height:100vh;margin:0;font-family:Trebuchet MS,Segoe UI,sans-serif}header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}header h1{margin:0;font-size:1.1rem}nav{flex-wrap:wrap;gap:8px;display:flex}.nav-btn,.ghost,.primary,.type,.count{font:inherit;border-radius:12px;text-decoration:none;display:inline-block}.nav-btn,.ghost{color:var(--ink);border:1px solid var(--line);cursor:pointer;background:0 0;padding:8px 12px}.nav-btn.active{background:var(--ink);color:#fff}main{max-width:720px;margin:0 auto;padding:20px}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;margin-bottom:16px;padding:20px}h2{margin:0 0 12px;font-size:1.3rem}h3{margin:18px 0 8px;font-size:1.05rem}.card>h3:first-of-type{margin-top:8px}.types{--type-row-h:7rem;--type-peek:12px;--type-gap:10px;gap:var(--type-gap);overscroll-behavior:contain;max-height:calc(2 * var(--type-row-h) + var(--type-gap));padding-top:var(--type-peek);display:grid;position:relative;overflow-y:auto}.type,.count{text-align:left;border:2px solid var(--line);width:100%;color:var(--ink);cursor:pointer;background:#fff;padding:14px 16px}.type{min-height:var(--type-row-h);flex-direction:column;justify-content:center;display:flex}.type.selected,.count.selected{border-color:var(--accent);background:#fff1ec}.type small,.muted{color:var(--muted)}.type small{margin-top:6px;display:inline-block}.d{vertical-align:-.12em;border:1.5px solid var(--ink);background:#fff;border-radius:2px;width:.7em;height:.95em;margin:0 .05em;display:inline-block}.or{margin:0 .9em}.counts{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.primary{background:var(--accent);color:#fff;text-align:center;cursor:pointer;border:0;width:100%;padding:14px 16px;font-size:1.05rem}.primary:hover{background:var(--accent-dark)}.practice-bar{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.drill-name{flex:1;margin:0 0 4px;font-size:1.05rem;font-weight:700;line-height:1.3}.progress{color:var(--muted);text-align:center;margin-bottom:8px}.equation{--eq-size:clamp(1.8rem, 7vw, 3.4rem);font-size:var(--eq-size);letter-spacing:.04em;font-variant-numeric:tabular-nums;white-space:nowrap;flex-wrap:nowrap;justify-content:center;align-items:center;gap:.28em;margin:28px 0 12px;display:flex}.equation input{font:inherit;font-size:inherit;border:2px solid var(--line);text-align:center;width:3.2ch;min-width:3.2ch;color:inherit;caret-color:#0000;background:#fff;border-radius:10px;padding:.06em .12em;line-height:1.15}.equation input.digit{width:1.8ch;min-width:1.8ch}.equation input:focus{border-color:var(--accent);caret-color:#0000;outline:3px solid #f4c4b7}.answer-field{display:inline-block;position:relative}.answer-field .caret{top:50%;left:calc(50% + var(--caret-ch,0ch));background:var(--ink);pointer-events:none;width:2px;height:1.05em;animation:1s step-end infinite caret-blink;display:none;position:absolute;transform:translate(-50%,-50%)}.answer-field.active .caret,.answer-field:focus-within .caret{display:block}@keyframes caret-blink{50%{opacity:0}}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;max-width:280px;margin:8px auto 0;display:grid}.keypad button{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#fff;border-radius:12px;padding:12px 8px;font-size:1.2rem}.keypad button.enter{background:var(--accent);color:#fff;border:0}.keypad button.enter:hover{background:var(--accent-dark)}.sr-only{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat{border:1px solid var(--line);text-align:center;background:#fff;border-radius:14px;padding:12px}.stat b{margin-top:4px;font-size:1.2rem;display:block}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:8px 6px;font-size:.95rem}.empty{color:var(--muted);padding:12px 0}svg.chart{aspect-ratio:320/180;border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;height:auto;display:block}.note{margin:8px 0 0;font-size:.9rem}.links{flex-wrap:wrap;gap:8px;display:flex}@media (width<=520px){.stats{grid-template-columns:1fr}}
