*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;min-width:320px;margin:0}button,a,input,select,textarea{font:inherit}button{cursor:pointer}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f2f5ec;--sheet:#fbfcf7;--white:#fff;--ink:#16211d;--ink-2:#55615a;--ink-3:#3f4b45;--rule:#d8e0d2;--rule-2:#e1e8da;--line-strong:#c9d3c2;--green:#164f3b;--green-dark:#0e3628;--green-tint:#e6eedd;--lime:#c7e85c;--lime-tint:#eef6d6;--margin:#e9a595;--pen:#c24a33;--pen-tint:#fbe4df;--hand-ink:#1f3a8a;--night:#16211d;--night-2:#22302a;--night-line:#2c3b35;--night-text:#e6ede3;--night-muted:#b8c4b6;--code-bg:#173a2e;--code-ink:#e6f0da;--shade:#16211d8c;--serif:"Literata", Georgia, "Times New Roman", serif;--sans:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--hand:"Kalam", "Segoe Print", "Bradley Hand", cursive;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--margin-w:48px;--r:6px;--r-btn:8px}body{background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--sans)}a{color:var(--green)}a:hover{color:var(--green-dark)}:focus-visible{outline:2px solid var(--pen);outline-offset:2px}h1,h2{font-family:var(--serif);text-wrap:balance;letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:30px;line-height:1.15}h2{font-size:21px;line-height:1.25}h3{margin:0;font-size:17px}p{margin:0}.muted,.muted-2{color:var(--ink-2)}.small{font-size:14px}.num{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.split{justify-content:space-between;align-items:center;gap:12px;display:flex}.split-wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:12px;display:flex}button{font:inherit;color:var(--ink);border:1px solid var(--line-strong);background:var(--sheet);border-radius:var(--r-btn);min-height:44px;padding:8px 14px}button:disabled{opacity:.55;cursor:default}button.primary,.btn.primary{background:var(--green);color:var(--paper);border-color:var(--green)}button.primary:hover,.btn.primary:hover{background:var(--green-dark);color:var(--paper)}.btn{border-radius:var(--r-btn);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-weight:600;text-decoration:none;display:inline-flex}.btn.ghost{color:var(--green);border-color:var(--line-strong);background:0 0}.btn.lime{background:var(--lime);color:var(--ink);border-color:var(--lime)}.btn.big{min-height:56px;font-size:17px}.small-btn{min-height:40px;padding:0 14px;font-size:14px}button.link{min-height:0;color:var(--green);font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.chip{border:1px solid var(--line-strong);background:var(--sheet);min-height:44px;color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.icon-btn{border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid}.shell{min-height:100vh}.content{padding:8px 16px calc(96px + env(safe-area-inset-bottom,0px));max-width:1180px;margin:0 auto}.sidebar{display:none}.tabbar{z-index:5;background:var(--sheet);border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--ink-2);flex-direction:column;flex:1;align-items:center;gap:2px;padding:9px 0 10px;font-size:12px;font-weight:500;text-decoration:none;display:flex}.tabbar a.on{color:var(--green);font-weight:700}@media (width>=1000px){.shell{grid-template-columns:248px minmax(0,1fr);display:grid}.tabbar{display:none}.sidebar{border-right:1px solid var(--rule);flex-direction:column;gap:2px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.content{margin:0;padding:32px 40px 64px}}.brand{font:400 18px var(--serif);color:var(--green);align-items:center;gap:10px;padding:0 8px 24px;text-decoration:none;display:flex}.brand-mark{background:var(--green);width:32px;height:32px;color:var(--lime);font:600 18px var(--serif);border-radius:3px;place-items:center;display:grid;transform:rotate(-6deg)}.side-link{border-radius:var(--r);min-height:44px;color:var(--ink-3);align-items:center;gap:10px;padding:0 12px;font-weight:500;text-decoration:none;display:flex}.side-link.on{background:var(--green-tint);color:var(--green);font-weight:700}.side-link.course{font-size:15px}.side-link.course.active{color:var(--ink);font-weight:600}.side-label{color:var(--ink-2);margin:22px 12px 6px;font-size:13px}.side-foot{color:var(--ink-2);margin:auto 12px 0;padding-top:24px;font-size:12px}.page{flex-direction:column;gap:20px;max-width:760px;display:flex}.page-head{flex-direction:column;gap:8px;display:flex}.back{align-self:flex-start;align-items:center;gap:4px;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.big-question{font:italic 400 19px/1.45 var(--serif);color:var(--ink-3)}.prose{font-family:var(--serif);font-size:17px;line-height:1.6}.prose.small{font-size:15px}.notice{border-radius:var(--r);background:var(--lime-tint);border:1px solid var(--lime);flex-direction:column;gap:4px;padding:12px 14px;font-size:15px;display:flex}.banner{border-radius:var(--r);margin:0 0 16px;padding:12px 14px}.banner.pass{background:var(--lime-tint);border:1px solid var(--green)}.ruled{background:var(--sheet) linear-gradient(90deg, transparent calc(var(--margin-w) - 1px), var(--margin) calc(var(--margin-w) - 1px), var(--margin) calc(var(--margin-w) + .5px), transparent calc(var(--margin-w) + .5px));border:1px solid var(--rule);border-radius:var(--r);overflow:hidden}.ruled-row{border-bottom:1px solid var(--rule-2);min-height:52px;color:var(--ink);align-items:center;gap:10px;padding-right:16px;text-decoration:none;display:flex}.ruled>.ruled-row:last-child{border-bottom:0}.ruled-row.head{min-height:46px}.ruled-row.here{background:var(--lime-tint)}.ruled-row.link:hover{background:var(--white)}.margin{width:var(--margin-w);flex:none;justify-content:center;align-self:stretch;align-items:center;display:flex}.row-text{flex-direction:column;gap:1px;min-width:0;padding:8px 0;display:flex}.row-title{font-weight:500}.here .row-title{font-weight:700}.done .row-title{color:#6b766f;-webkit-text-decoration:line-through #a9b3a4;text-decoration:line-through #a9b3a4}.row-note{color:var(--ink-2);font-size:13px}.here .row-note{color:var(--ink-3)}.aside{color:var(--ink-2);flex:none;margin-left:auto;font-size:13px}.wk-margin{color:var(--ink-2);font-size:14px;font-weight:600}.pen-tick{color:var(--pen);display:grid}.tick{border-radius:var(--r);width:44px;height:44px;color:var(--pen);background:0 0;border:0;place-items:center;padding:0;display:grid}.tick-box{background:var(--sheet);border:2px solid #a9b3a4;border-radius:4px;width:18px;height:18px}.tick.current .tick-box,.tick:hover .tick-box{border-color:var(--green)}.tick svg{stroke-width:2.6px}.today{flex-direction:column;gap:12px;display:flex}.today-top{align-items:center;display:flex}.today-grid{gap:28px;display:grid}.today-main,.today-side{flex-direction:column;gap:14px;min-width:0;display:flex}.today-head{flex-direction:column;gap:10px;padding:4px;display:flex}.today-head .btn{align-self:flex-start}.session-foot{padding:14px 16px 16px var(--margin-w)}.session-foot .btn{width:100%}@media (width>=1000px){.today-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:36px}.today-head h1{font-size:40px;line-height:1.1}.session-foot .btn{width:auto}.today-side>*{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);padding:18px}}.switcher{position:relative}.switcher>summary{cursor:pointer;border-radius:var(--r);align-items:center;gap:6px;min-height:44px;padding:0 8px;font-weight:600;list-style:none;display:inline-flex}.switcher>summary::-webkit-details-marker{display:none}.switcher-menu{z-index:4;background:var(--white);border:1px solid var(--rule);border-radius:var(--r-btn);flex-direction:column;min-width:240px;padding:6px;display:flex;position:absolute;top:46px;left:0;box-shadow:0 8px 28px #16211d24}.switcher-menu a{border-radius:var(--r);min-height:44px;color:var(--ink);align-items:center;padding:0 12px;text-decoration:none;display:flex}.switcher-menu a:hover{background:var(--green-tint)}.switcher-menu a[aria-current]{color:var(--green);font-weight:700}.quiz-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.quiz-tile{border-radius:var(--r);background:var(--sheet);border:1px solid var(--rule);color:var(--ink);flex-direction:column;gap:4px;padding:14px;text-decoration:none;display:flex}.quiz-tile svg{color:var(--green)}.quiz-tile span{color:var(--ink-2);font-size:13px}.quiz-tile:hover{border-color:var(--green);color:var(--ink)}.streak{flex-direction:column;gap:14px;display:flex}.streak-head{align-items:baseline;gap:10px;display:flex}.big-num{font:600 44px/1 var(--serif);color:var(--green);font-variant-numeric:tabular-nums}.week-squares{text-align:center;color:var(--ink-2);grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;font-size:12px;display:grid}.wsq{flex-direction:column;align-items:center;gap:4px;display:flex}.wsq .sq{aspect-ratio:1;background:var(--rule-2);border-radius:6px;width:100%;max-width:34px}.wsq.studied .sq{background:var(--green)}.wsq.today{color:var(--ink);font-weight:700}.wsq.today .sq{box-shadow:inset 0 0 0 2px var(--green)}.wsq.today:not(.studied) .sq{background:var(--lime)}.wsq.rest .sq{background:0 0;border:1.5px dashed #a9b3a4}.year-card{flex-direction:column;gap:10px;display:flex}.year-card a{font-size:14px;font-weight:600}.ledger{gap:1px;max-width:100%;display:flex;overflow:hidden}.ledger-week{flex-direction:column;gap:1px;display:flex}.ledger-week.phase-start{margin-left:3px}.px{background:var(--rule);width:5px;height:5px;display:block}.px.done{background:var(--green)}.px.today{background:var(--lime);box-shadow:0 0 0 1px var(--green)}.px.unwritten{box-shadow:inset 0 0 0 1px var(--rule-2);background:0 0}@media (width>=420px){.px{width:5.5px;height:5.5px}}.phases{flex-direction:column;gap:12px;display:flex}.phase{border-radius:var(--r);border:1px solid var(--rule);background:var(--sheet);flex-direction:column;gap:12px;padding:16px;display:flex}.phase.here{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.phase h2{font-size:17px}.phase-weeks{flex-wrap:wrap;gap:10px 8px;display:flex}.wk{color:var(--ink-2);border-radius:4px;flex-direction:column;align-items:center;gap:2px;margin:-4px;padding:4px;font-size:11px;text-decoration:none;display:flex}.wk:hover{background:var(--green-tint)}.wk.cur{color:var(--ink);font-weight:700}.wk.unwritten{opacity:.7}.wk-num{font-variant-numeric:tabular-nums;margin-top:3px}.px.big{border-radius:2px;width:14px;height:14px}.px.big.today{box-shadow:inset 0 0 0 2px var(--green)}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.tile-link{border-radius:var(--r);border:1px solid var(--rule);background:var(--sheet);color:var(--ink);flex-direction:column;gap:4px;padding:16px;text-decoration:none;display:flex}.tile-link svg{color:var(--green)}.tile-link span{color:var(--ink-2);font-size:14px}.tile-link:hover{border-color:var(--green);color:var(--ink)}.schedule{border-radius:var(--r);border:1px solid var(--rule);background:var(--sheet);flex-direction:column;gap:10px;padding:16px;display:flex}.schedule h2{font-size:17px}.schedule .btn{align-self:flex-start}.status{white-space:nowrap;border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.status.ok{background:var(--lime-tint);color:var(--green);box-shadow:inset 0 0 0 1px var(--lime)}.status.behind{background:var(--pen-tint);color:#9a3524}.pace{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;display:flex}p.status{align-self:flex-start}.res{border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);color:var(--ink);align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.res:hover{border-color:var(--green);color:var(--ink)}.res small{color:var(--ink-2);margin-top:2px;font-size:13px;display:block}.res-ico{color:var(--pen);flex:none;display:grid}.quiz-list{flex-direction:column;gap:6px;margin:0;padding-left:22px;display:flex}.day-page{gap:16px}.day-bar{z-index:3;background:var(--paper);border-bottom:1px solid var(--rule);flex-direction:column;gap:8px;margin:-8px -16px 0;padding:4px 16px 12px;display:flex;position:sticky;top:0}.day-bar .small{text-decoration:none}.segments{gap:4px;display:flex}.seg{background:var(--rule);border-radius:1px;flex:1;height:6px}.seg.done{background:var(--green)}.seg.here{background:var(--lime);box-shadow:inset 0 0 0 1px var(--green)}@media (width>=1000px){.day-bar{margin:-32px -40px 0;padding:16px 40px 12px}}.blocks{flex-direction:column;gap:12px;display:flex}.block-sheet>summary{cursor:pointer;border-bottom:0;min-height:56px;list-style:none}.block-sheet>summary::-webkit-details-marker{display:none}.block-sheet[open]>summary{border-bottom:1px solid var(--rule-2)}.block-sheet.here{border-color:var(--green)}.block-sheet .chev{color:var(--ink-2);flex:none;transition:transform .15s}.block-sheet[open] .chev{transform:rotate(180deg)}.block-sheet .aside{margin-left:auto}.block-body{padding:16px 16px 20px calc(var(--margin-w) + 14px);background:var(--sheet);flex-direction:column;gap:14px;min-width:0;display:flex}.block-body .btn{align-self:flex-start}@media (width<=520px){.block-body{padding-left:14px}}.quiz-card{border:1px solid var(--rule);border-radius:var(--r);background:var(--sheet);flex-direction:column;gap:14px;padding:14px;display:flex}.quiz-card-head{align-items:center;gap:12px;display:flex}.quiz-card-head>svg{color:var(--green);flex:none}.quiz-card-head .btn{flex:none;margin-left:auto}.pager{justify-content:space-between;align-items:center;gap:12px;display:flex}.pager a{align-items:center;gap:4px;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.md{overflow-wrap:anywhere;flex-direction:column;gap:12px;display:flex}.md>*{margin:0}.md ul,.md ol{padding-left:22px}.md li+li{margin-top:4px}.md h3,.md h4{font-family:var(--sans);font-size:16px}.md .table-wrap{overflow-x:auto}.md table{border-collapse:collapse;width:100%;font:14px/1.45 var(--sans)}.md th,.md td{border:1px solid var(--rule);text-align:left;vertical-align:top;padding:6px 8px}.md th{background:var(--green-tint)}.md pre{border-radius:var(--r);background:var(--code-bg);color:var(--code-ink);font:13.5px/1.6 var(--mono);padding:12px 14px;overflow-x:auto}.md code{font:.86em var(--mono);background:var(--green-tint);border-radius:3px;padding:1px 4px}.md pre code{font:inherit;color:inherit;background:0 0;padding:0}.md blockquote{border-left:3px solid var(--lime);background:var(--sheet);padding:4px 14px}details.reveal{border:1px dashed var(--line-strong);border-radius:var(--r);background:var(--sheet);font-family:var(--sans);padding:8px 12px;font-size:15px}details.reveal>summary{cursor:pointer;color:var(--green);font-size:14px;font-weight:600}details.reveal[open]{background:var(--white)}.sheet-backdrop{z-index:20;background:var(--shade);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{width:100%;max-width:480px;padding:18px 16px calc(24px + env(safe-area-inset-bottom,0px));background:var(--paper);border-radius:16px 16px 0 0;flex-direction:column;gap:12px;max-height:92vh;display:flex;overflow-y:auto}@media (width>=700px){.sheet-backdrop{align-items:center}.bottom-sheet{border-radius:16px}}.sheet-top{justify-content:space-between;align-items:flex-start;gap:12px;padding:0 4px;display:flex}.sheet-top h2{font-size:24px}.nudge-opt{border:1px solid var(--rule);border-radius:var(--r-btn);background:var(--sheet);width:100%;color:var(--ink);text-align:left;align-items:flex-start;gap:14px;min-height:0;padding:16px;text-decoration:none;display:flex}.nudge-opt:hover:not(:disabled){border-color:var(--green);color:var(--ink)}.nudge-opt small{color:var(--ink-2);margin-top:3px;font-size:13px;line-height:1.45;display:block}.nudge-opt.open{border-color:var(--green);flex-direction:column;gap:12px}.nudge-head{align-items:center;gap:14px;display:flex}.nudge-ico{border-radius:var(--r-btn);background:var(--green-tint);width:40px;height:40px;color:var(--green);flex:none;place-items:center;display:grid}.nudge-ico.lime{background:var(--lime)}.note-text{font:italic 400 17px/1.55 var(--serif);color:var(--ink-3)}.nudge-opt.open .btn{width:100%}.locked-shell{background:var(--night);min-height:100vh;color:var(--night-text)}.locked-shell main{max-width:560px;margin:0 auto;padding:18px 16px 40px}.lock{flex-direction:column;gap:16px;display:flex}.lock h1{color:var(--paper);font-size:28px}.lock-label{color:var(--lime);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.lock-text{color:var(--night-muted);font-size:15px;line-height:1.5}.lock .btn.lime{align-self:stretch}.lock-card{border-radius:var(--r-btn);background:var(--sheet);color:var(--ink);flex-direction:column;gap:14px;padding:18px 16px;display:flex}.lock-card .muted-2{color:var(--ink-2)}.countdown{border-top:1px solid var(--night-line);border-bottom:1px solid var(--night-line);flex-direction:column;gap:6px;padding:22px 0;display:flex}.count{font:600 64px/1 var(--serif);color:var(--paper)}.locked-shell .tester>button{background:var(--night-2);border-color:var(--night-line)}.quiz{flex-direction:column;gap:12px;display:flex}.quiz-head{color:var(--ink-2);gap:14px;font-size:13px;display:flex}.quiz-head span:first-child{flex:1}.timer{color:var(--green);font-weight:700}.timer.low{color:var(--pen)}.prompt{font:400 19px/1.4 var(--serif);margin:0}.choices{gap:8px;display:grid}.choices.two{grid-template-columns:1fr 1fr}.choice{text-align:left;background:var(--white);border:1.5px solid var(--line-strong);min-height:52px;padding:12px 14px;font-size:16px}.choice:hover:not(:disabled){border-color:var(--green)}.choice.correct{background:var(--lime-tint);border-color:var(--green);opacity:1}.choice.check{border-radius:var(--r-btn);cursor:pointer;align-items:center;gap:10px;display:flex}.choice.check.on{border-color:var(--green);background:var(--lime-tint)}.text-answer{gap:8px;display:flex}.text-answer input{border:1.5px solid var(--line-strong);border-radius:var(--r-btn);background:var(--white);flex:1;min-width:0;padding:10px 12px}.order .built,.order .pool{border:1px dashed var(--line-strong);border-radius:var(--r-btn);flex-wrap:wrap;gap:8px;min-height:44px;margin-bottom:8px;padding:8px;display:flex}.chip.on{background:var(--green);color:var(--paper);border-color:var(--green)}.row{flex-wrap:wrap;gap:8px;display:flex}.match{gap:8px;display:grid}.match-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.match-row select{border-radius:var(--r-btn);border:1px solid var(--line-strong);background:var(--white);max-width:60%;min-height:44px;padding:8px}.feedback{border-radius:var(--r-btn);flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px;display:flex}.feedback.right{background:var(--lime-tint)}.feedback.wrong{background:var(--pen-tint)}.score{font:600 30px var(--serif);margin:0}.score.pass{color:var(--green)}.score.fail{color:var(--pen)}.q-code{background:var(--code-bg);color:var(--code-ink);border-radius:var(--r);font:14px/1.6 var(--mono);white-space:pre-wrap;margin:0;padding:12px 14px;overflow-x:auto}.tester{right:12px;bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:10;max-width:min(340px,100vw - 24px);position:fixed}@media (width>=1000px){.tester{bottom:16px}}.tester>button{float:right;background:var(--ink);min-width:44px;min-height:44px;color:var(--paper);border-color:var(--ink);opacity:.85;border-radius:22px}.tester-body{clear:both;background:var(--white);color:var(--ink);border:1px solid var(--rule);border-radius:var(--r-btn);flex-direction:column;gap:8px;margin-top:8px;padding:12px;font-size:14px;display:flex;box-shadow:0 6px 24px #16211d24}.tester-body .danger{border-color:var(--pen);color:var(--pen)}.sandbox-host{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--r-btn);font-family:var(--sans);padding:16px;font-size:16px;line-height:1.5}.sandbox-host.compact{margin:0}.sandbox-host>header h3{color:var(--green);align-items:center;gap:8px;font-size:16px;display:flex}.sandbox-host>header p{margin:4px 0 10px}.sandbox{flex-direction:column;gap:10px;display:flex}.sandbox-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tabs button.on{background:var(--green);color:var(--paper);border-color:var(--green)}.tasks{flex-direction:column;gap:8px;margin:4px 0;padding-left:20px;display:flex}.tasks li{line-height:1.4}.tasks li.pass>span:first-child{color:var(--green)}.tasks small{display:block}.fail-detail{color:var(--pen);white-space:pre-wrap}.task-actions{flex-wrap:wrap;gap:12px;margin-top:2px;font-size:14px;display:flex}.task-actions details{font-size:14px}textarea.code{font:14px/1.6 var(--mono);border-radius:var(--r);border:1px solid var(--code-bg);color:#e7f0e9;tab-size:4;resize:vertical;background:#14201b;width:100%;padding:12px}textarea.stdin{font:14px var(--mono);border-radius:var(--r);border:1px solid var(--line-strong);resize:vertical;width:100%;padding:8px}pre.console{color:#cfe8d6;border-radius:var(--r);min-height:60px;max-height:280px;font:13px/1.5 var(--mono);white-space:pre-wrap;word-break:break-word;background:#0f1714;margin:0;padding:12px;overflow:auto}iframe.preview{border:1px solid var(--rule);border-radius:var(--r);background:var(--white);width:100%;height:260px}.formula-bar{align-items:center;gap:8px;display:flex}.formula-bar .ref{text-align:center;min-width:48px;font:600 13px var(--mono);background:var(--green-tint);border-radius:var(--r);padding:8px 4px}.formula-bar input{min-width:0;font:14px var(--mono);border:1px solid var(--line-strong);border-radius:var(--r-btn);flex:1;padding:8px 10px}.grid-wrap{border:1px solid var(--rule);border-radius:var(--r-btn);outline:none;max-height:420px;overflow:auto}.grid-wrap:focus{border-color:var(--green)}table.grid{border-collapse:collapse;font-size:13px}.grid th{background:var(--green-tint);color:var(--ink-2);z-index:1;border:1px solid #dfe6da;padding:4px 6px;font-weight:600;position:sticky;top:0}.grid tbody th{min-width:34px;position:sticky;left:0}.grid td{white-space:nowrap;text-overflow:ellipsis;cursor:cell;background:var(--white);border:1px solid #e6ebe2;min-width:88px;max-width:180px;height:26px;padding:4px 6px;overflow:hidden}.grid td.num{text-align:right;font-variant-numeric:tabular-nums}.grid td.head{background:var(--sheet);font-weight:700}.grid td.err{color:var(--pen)}.grid td.sel{outline:2px solid var(--green);outline-offset:-2px}.cell-input{width:100%;font:inherit;border:0;outline:none;padding:0}.phrase-preview{border:2px dashed var(--rule);border-radius:var(--r-btn);background:var(--sheet);padding:12px 14px}.phrase-preview.good{border-style:solid;border-color:var(--green);background:var(--lime-tint)}.phrase-preview.bad{background:#fff6ef;border-style:solid;border-color:#e6a15a}.phrase{font:400 22px/1.3 var(--serif);margin:0}.gloss{margin:4px 0 0;font-size:14px}.problem{color:#a4502a;margin:6px 0 0;font-size:14px}.ok-line{color:var(--green);margin:6px 0 0;font-size:14px;font-weight:600}.slot-label{color:var(--ink-2);margin:0 0 6px;font-size:13px;font-weight:600}.tiles{flex-wrap:wrap;gap:6px;display:flex}.tile{border-radius:var(--r-btn);flex-direction:column;align-items:flex-start;padding:6px 10px;font-size:15px;line-height:1.2;display:flex}.tile small{color:var(--ink-2);font-size:11px}.tile.on{background:var(--green);color:var(--paper);border-color:var(--green)}.tile.on small{color:#cfe3d6}.challenge-banner{background:var(--lime-tint);border-radius:var(--r-btn);justify-content:space-between;gap:10px;padding:10px 12px;display:flex}.verdict,.heard{margin:0;font-weight:600}.challenges ol,.saved ul{flex-direction:column;gap:6px;margin:6px 0;padding-left:20px;display:flex}.code-editor{flex-direction:column;gap:6px;display:flex}.keybar{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.keybar button{min-width:44px;min-height:40px;font:600 15px var(--mono);background:var(--green-tint);border-color:#d5e0d0;flex:none;padding:6px 10px}@media (width<=640px){textarea.code,textarea.stdin,.formula-bar input,.text-answer input,.cell-input{font-size:16px}}.crash{border:1px solid var(--pen);background:var(--pen-tint);border-radius:var(--r-btn);padding:12px 14px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
