:root{--bg:#eef1f4;--surface:#fff;--ink:#16202b;--muted:#5a6776;--line:#d5dce4;--accent:#1d4ed8;--accent-soft:#e3eaff;--good:#137a4b;--good-soft:#dff3e8;--bad:#b42335;--bad-soft:#fbe3e6;--tape:#f7f9fb;--card-paper:#fffdf7;--card-rule:#c9dcf2;--card-red:#e58b97;--f-display:"Bricolage Grotesque", "Avenir Next", system-ui, sans-serif;--f-body:"Source Sans 3", "Segoe UI", system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f151c;--surface:#17202a;--ink:#e6ebf1;--muted:#93a1b1;--line:#2a3644;--accent:#7ea2ff;--accent-soft:#1d2a4a;--good:#4cc98c;--good-soft:#143326;--bad:#ff7d8d;--bad-soft:#3a1820;--tape:#121a23;--card-paper:#1c242e;--card-rule:#2b3a4d;--card-red:#8a4450;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f151c;--surface:#17202a;--ink:#e6ebf1;--muted:#93a1b1;--line:#2a3644;--accent:#7ea2ff;--accent-soft:#1d2a4a;--good:#4cc98c;--good-soft:#143326;--bad:#ff7d8d;--bad-soft:#3a1820;--tape:#121a23;--card-paper:#1c242e;--card-rule:#2b3a4d;--card-red:#8a4450;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.5}.wrap{gap:18px;max-width:960px;margin:0 auto;padding-block:22px 64px;padding-inline:16px;display:grid}#app{gap:18px;min-width:0;display:grid}.muted{color:var(--muted)}h1,h2,h3{font-family:var(--f-display);letter-spacing:-.015em;text-wrap:balance;margin:0}h1{font-size:2rem;font-weight:700}h2{font-size:1.35rem;font-weight:700}h3{font-size:1.05rem;font-weight:700}p{margin:0}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.crumbs{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;font-size:.95rem;display:flex}.crumbs button{color:var(--accent);background:0 0;border:0;padding:0;font-weight:600}.crumbs .sep{color:var(--muted)}.crumbs .here{font-weight:600}.brand{font-family:var(--f-display);letter-spacing:-.01em;font-size:1.15rem;font-weight:700}.score{font-family:var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.9rem}.score b{color:var(--ink)}button{font:inherit;cursor:pointer}button:focus-visible,input:focus-visible+span,.opt:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{border:1px solid var(--accent);background:var(--accent);color:var(--surface);border-radius:8px;padding:9px 18px;font-weight:600}.btn.ghost{color:var(--accent);background:0 0}.btn.quiet{border-color:var(--line);background:var(--surface);color:var(--ink)}.btn.small{padding:6px 12px;font-size:.9rem}.btn.danger{border-color:var(--bad);color:var(--bad);background:0 0}.btn:disabled{opacity:.45;cursor:default}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.intro{gap:6px;display:grid}.sets{gap:14px;display:grid}.set-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:12px;padding:20px;display:grid}.set-card.new{background:0 0;border-style:dashed}.set-head{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:12px;display:flex}.set-head>div{gap:2px;min-width:0;display:grid}.stats{font-family:var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.tools{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;display:grid}.class-group{gap:10px;display:grid}.tool{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;gap:2px;padding:10px 12px;display:grid}.tool:hover{border-color:var(--accent)}.tool b{font-size:.95rem}.tool span{color:var(--muted);font-size:.8rem;line-height:1.3}.tool.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.tool.primary span{color:var(--surface);opacity:.85}.meter{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 14px;display:grid}.meter div{grid-template-columns:1fr auto;align-items:center;gap:2px 8px;font-size:.82rem;display:grid}.meter i{background:var(--line);border-radius:3px;grid-column:1/-1;height:5px;display:block;overflow:hidden}.meter i b{background:var(--good);height:100%;display:block}.meter em{font-style:normal;font-family:var(--f-mono);color:var(--muted);font-size:.75rem}@media (width<=680px){.tools{grid-template-columns:repeat(2,minmax(0,1fr))}.tool.primary{grid-column:1/-1}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:14px;padding:18px 20px;display:grid}.label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600}.group{gap:6px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{position:relative}.chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chip span{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:.92rem;display:inline-block}.chip input:checked+span{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);font-weight:600}.chip span em{font-style:normal;font-family:var(--f-mono);color:var(--muted);margin-left:4px;font-size:.8rem}.hint{color:var(--muted);font-size:.88rem}.tag{font-family:var(--f-mono);background:var(--tape);border:1px solid var(--line);color:var(--muted);border-radius:4px;padding:2px 8px;font-size:.75rem}.tag.new{border-color:var(--accent);color:var(--accent)}.status{font-size:.92rem}.status.err{color:var(--bad)}.status.ok{color:var(--good)}details.settings{background:var(--surface);border:1px solid var(--line);border-radius:10px}details.settings summary{cursor:pointer;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px 16px;font-weight:600;list-style:none;display:flex}details.settings summary::-webkit-details-marker{display:none}details.settings summary .now{color:var(--muted);font-size:.92rem;font-weight:400}details.settings summary:after{content:"Change";color:var(--accent);font-size:.92rem}details.settings[open] summary:after{content:"Close"}.set-body{gap:14px;padding:4px 16px 16px;display:grid}.progress{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.progress i{background:var(--accent);width:0;height:100%;transition:width .25s;display:block}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:16px;padding:22px;display:grid}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;display:flex}.qtext{margin:0;font-size:1.12rem}.opts{gap:10px;display:grid}.opt{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;grid-template-columns:30px 1fr;align-items:start;gap:10px;padding:12px 14px;display:grid}.opt:hover:not(:disabled){border-color:var(--accent)}.opt .k,.fix .k{font-family:var(--f-mono);border:1px solid var(--line);width:26px;height:26px;color:var(--muted);border-radius:6px;place-items:center;font-size:.8rem;display:grid}.opt .t{min-width:0}.opt:disabled{cursor:default}.opt.right{border-color:var(--good);background:var(--good-soft)}.opt.right .k{border-color:var(--good);color:var(--good)}.opt.wrong{border-color:var(--bad);background:var(--bad-soft)}.opt.wrong .k{border-color:var(--bad);color:var(--bad)}.opt.dim{opacity:.55}.opt.out{opacity:.4}.opt.out .t{text-decoration:line-through}.hints{gap:8px;display:grid}.hint-row{background:var(--accent-soft);border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:10px 12px;font-size:.95rem;display:grid}.hint-row b{font-family:var(--f-mono);color:var(--accent);white-space:nowrap;padding-top:3px;font-size:.75rem}.btn.hint{border-color:var(--line);color:var(--ink);background:0 0}.btn.hint .pips{font-family:var(--f-mono);color:var(--accent);letter-spacing:2px;margin-left:6px}.practice{background:var(--accent-soft);color:var(--ink);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:.9rem;display:flex}.practice b{color:var(--accent)}.streak{gap:6px;display:flex}.streak i{border:2px solid var(--accent);border-radius:50%;width:12px;height:12px}.streak i.on{background:var(--good);border-color:var(--good)}.verdict{font-family:var(--f-display);margin:0;font-size:1.1rem;font-weight:700}.verdict.ok{color:var(--good)}.verdict.no{color:var(--bad)}.drill-note{color:var(--accent);margin:0;font-weight:600}.explain{background:var(--tape);border:1px dashed var(--line);border-radius:9px;gap:10px;padding:14px 16px;display:grid}.formula{font-family:var(--f-mono);background:var(--surface);border:1px solid var(--line);white-space:pre;border-radius:6px;padding:10px 12px;font-size:.86rem;line-height:1.6;overflow-x:auto}.fixes{border:1px solid var(--line);border-radius:9px;gap:12px;padding:14px 16px;display:grid}.fix{grid-template-columns:30px 1fr;align-items:start;gap:10px;display:grid}.fix-body{gap:4px;min-width:0;display:grid}.fix-body s{color:var(--muted);-webkit-text-decoration-color:var(--bad);text-decoration-color:var(--bad)}.fix-body .fixed:before{content:"→ ";color:var(--good);font-weight:600}.fix-body mark{background:var(--good-soft);color:var(--good);border-radius:3px;padding:0 2px;font-weight:600}.nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.nav-r{flex-wrap:wrap;gap:10px;display:flex}.kbd{font-family:var(--f-mono);color:var(--muted);font-size:.78rem}.big{font-family:var(--f-display);font-variant-numeric:tabular-nums;font-size:3.2rem;font-weight:700;line-height:1}.bars{gap:10px;display:grid}.bar{grid-template-columns:minmax(120px,190px) 1fr 64px;align-items:center;gap:10px;font-size:.92rem;display:grid}.bar .track{background:var(--line);border-radius:5px;height:10px;overflow:hidden}.bar .track i{background:var(--good);height:100%;display:block}.bar .n{font-family:var(--f-mono);text-align:right;font-variant-numeric:tabular-nums;font-size:.82rem}.missed{gap:12px;display:grid}.miss{border-top:1px solid var(--line);gap:6px;padding-top:12px;display:grid}.miss .q{font-weight:600}.miss .yours{color:var(--bad);font-size:.92rem}.miss .ans{color:var(--good);font-size:.92rem}.miss details summary,.guide details summary{cursor:pointer;color:var(--accent);font-size:.9rem}.miss details .explain{margin-top:8px}.flash-stage{perspective:1200px}.flash{width:100%;min-height:260px;color:var(--ink);transform-style:preserve-3d;background:0 0;border:0;padding:0;transition:transform .45s;display:grid;position:relative}.flash.flipped{transform:rotateY(180deg)}.face{backface-visibility:hidden;background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:14px;grid-area:1/1;align-content:center;justify-items:center;gap:10px;min-height:260px;padding:28px 24px;display:grid}.face.back{background:var(--tape);transform:rotateY(180deg)}.face .side{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.face .term{font-family:var(--f-display);font-size:1.9rem;font-weight:700;line-height:1.15}.face .def{max-width:52ch;font-size:1.15rem}.flash-count{font-family:var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.flash-acts{grid-template-columns:1fr 1fr;gap:10px;display:grid}.flash-acts .btn{padding-block:12px}.f-group{gap:10px;display:grid}.f-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:10px;display:grid}.f-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;align-content:start;gap:8px;padding:14px 16px;display:grid}.f-card .expr{font-family:var(--f-mono);background:var(--tape);white-space:pre-wrap;border-radius:6px;padding:8px 10px;font-size:.98rem;font-weight:600;overflow-x:auto}.f-card .vars{color:var(--muted);font-size:.88rem}.f-card .use{font-size:.92rem}.search{width:100%;font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:9px 12px}.checks{flex-wrap:wrap;gap:8px 16px;display:flex}.checks label{align-items:center;gap:6px;font-size:.95rem;display:flex}.guide{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:22px;padding:26px 28px;display:grid}.guide section{gap:12px;display:grid}.guide h2{border-bottom:2px solid var(--ink);padding-bottom:6px}.guide h3{color:var(--accent)}.guide ul{gap:4px;margin:0;padding-left:20px;display:grid}.guide .trap li::marker{content:"⚠ ";color:var(--bad)}.guide dl{grid-template-columns:minmax(120px,210px) 1fr;gap:6px 14px;margin:0;display:grid}.guide dt{font-weight:600}.guide dd{margin:0}.guide .ftable{gap:6px;display:grid}.guide .ftable div{grid-template-columns:minmax(130px,220px) 1fr;gap:12px;font-size:.95rem;display:grid}.guide .ftable code{font-family:var(--f-mono);overflow-wrap:anywhere;font-size:.88rem}.guide ol.pq{gap:10px;margin:0;padding-left:20px;display:grid}.guide .focus{background:var(--bad-soft);border-radius:10px;padding:14px 16px}@media (width<=560px){.guide{padding:18px 16px}.guide dl,.guide .ftable div{grid-template-columns:1fr;gap:2px}}.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:14px;display:grid}.icard{aspect-ratio:5/3;background-color:var(--card-paper);max-width:100%;color:var(--ink);box-shadow:0 1px 0 var(--line), 0 6px 16px -10px #00000059;background-image:linear-gradient(var(--card-red), var(--card-red)), repeating-linear-gradient(to bottom, transparent 0 17px, var(--card-rule) 17px 18px);background-position:0 34px,0 34px;background-repeat:no-repeat,repeat;background-size:100% 2px,100% 100%;border-radius:4px;grid-template-rows:auto 1fr;gap:4px;padding:10px 14px;display:grid}.icard.big{aspect-ratio:6/4}.icard header{justify-content:space-between;align-items:baseline;gap:8px;height:24px;display:flex}.icard header b{font-family:var(--f-display);font-size:.95rem}.icard header span{font-family:var(--f-mono);color:var(--muted);font-size:.68rem}.icard ul{margin:0;padding:0;font-size:.74rem;line-height:18px;list-style:none}.cards.big{grid-template-columns:repeat(auto-fill,minmax(min(100%,480px),1fr))}.icard li{overflow-wrap:anywhere}.icard li code{font-family:var(--f-mono);font-size:.7rem;font-weight:600}.icard li.trap:before{content:"⚠ ";color:var(--bad)}.icard li.term b{font-weight:600}.field{gap:6px;display:grid}.field label{font-weight:600}.field input[type=text],.field textarea{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;width:100%;padding:10px 12px}.field textarea{resize:vertical;min-height:220px;font-size:.95rem}.two{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=560px){.two{grid-template-columns:1fr}}.flabel{font-weight:600}.drop{text-align:center;border:2px dashed var(--line);background:var(--tape);cursor:pointer;border-radius:10px;justify-items:center;gap:4px;padding:26px 16px;display:grid}.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft)}.drop .link{color:var(--accent);font-weight:600;text-decoration:underline}.files{gap:6px;margin:0;padding:0;list-style:none;display:grid}.files li{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 10px;padding:8px 12px;display:grid}.files .fname{overflow-wrap:anywhere;font-weight:600}.files .fdet{color:var(--muted);grid-column:1;font-size:.85rem}.files li .btn{grid-area:1/2/span 2}.files li.error .fdet{color:var(--bad)}.confirm{flex-wrap:wrap;align-items:center;gap:8px;font-size:.9rem;display:flex}@media (width<=520px){.card,.panel{padding:16px}.bar{grid-template-columns:1fr 56px}.bar .track{grid-area:2/1/auto/-1}}@media (prefers-reduced-motion:reduce){.progress i,.flash{transition:none}}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{flex-direction:column;min-height:100vh;margin:0;display:flex}img{max-width:100%}[hidden]{display:none!important}a{color:var(--accent)}.wrap{flex:1;width:100%}#root,.view{gap:18px;min-width:0;display:grid}.site-nav{padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top,0px));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:1040px;margin:0 auto;display:flex}.logo{font-family:var(--f-display);color:var(--ink);letter-spacing:-.01em;align-items:center;gap:10px;font-size:1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.logo-mark{background:var(--accent);width:30px;height:30px;color:var(--surface);border-radius:8px;place-items:center;font-size:1rem;display:grid}.nav-links{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.nav-links a:not(.btn),.linkish{color:var(--ink);font-weight:600;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:none}.nav-links a:not(.btn):hover,.linkish:hover{color:var(--accent)}a.btn{text-decoration:none;display:inline-block}.btn.big{padding:12px 22px;font-size:1.05rem}.btn.wide{width:100%}.site-foot{padding:24px 16px calc(24px + env(safe-area-inset-bottom,0px));color:var(--muted);flex-wrap:wrap;justify-content:center;gap:16px;font-size:.9rem;display:flex}.site-foot a{color:var(--muted)}.crumbs a{color:var(--accent);font-weight:600;text-decoration:none}.loading{text-align:center;padding:40px 0}.notice{background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;padding:12px 16px;font-size:.95rem}.notice code{font-family:var(--f-mono);font-size:.85rem}a.tool{text-decoration:none}.hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:32px;padding-block:24px 8px;display:grid}.hero h1{letter-spacing:-.03em;font-size:clamp(2.1rem,5vw,3.2rem);line-height:1.05}.hero-copy{gap:16px;display:grid}.eyebrow{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.8rem;font-weight:600}.lede{color:var(--muted);max-width:52ch;font-size:1.15rem}.demo-card{transform:rotate(1.2deg);box-shadow:0 18px 40px -24px #16202b73}.demo-card .opt{cursor:default}.features{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;display:grid}.feature{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-content:start;gap:6px;padding:18px;display:grid}.feature p{color:var(--muted);font-size:.95rem}.steps{justify-items:start;gap:14px;padding-block:12px;display:grid}.steps ol{gap:8px;max-width:62ch;margin:0;padding-left:22px;display:grid}@media (width<=760px){.hero{grid-template-columns:1fr}.demo-card{transform:none}}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:14px;width:100%;max-width:420px;margin:12px auto;padding:26px 24px;display:grid}.auth-card h1{font-size:1.6rem}.auth-card form{gap:12px;display:grid}.auth-alt{text-align:center;font-size:.95rem}.field input[type=email],.field input[type=password]{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;width:100%;padding:10px 12px}.check{align-items:start;gap:8px;font-size:.92rem;display:flex}.check input{margin-top:4px}.dash-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;display:flex}.usage{gap:4px;min-width:220px;font-size:.92rem;display:grid}.usage i{background:var(--line);border-radius:3px;height:6px;display:block;overflow:hidden}.usage i b{background:var(--accent);height:100%;display:block}.welcome{background:var(--surface)}.mini-steps{color:var(--muted);gap:4px;margin:0;padding-left:20px;display:grid}.danger-zone{border-color:var(--bad)}.legal{gap:10px;max-width:760px}.legal ul{gap:6px;margin:0;padding-left:20px;display:grid}.legal h2{margin-top:10px}.set-acts{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.share-panel{background:var(--tape);border:1px dashed var(--line);border-radius:10px;gap:10px;padding:14px 16px;display:grid}.share-link{flex-wrap:wrap;gap:8px;display:flex}.share-link input{min-width:0;font:inherit;font-family:var(--f-mono);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;flex:1;padding:7px 10px;font-size:.85rem}.shared-pill{color:var(--good);font-weight:600}.share-card{width:100%;max-width:620px;margin:12px auto}.guide .fblocks{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px;display:grid}.guide .fblock{border:1px solid var(--line);border-radius:10px;align-content:start;gap:6px;padding:12px 14px;display:grid}.guide .fblock h3{color:var(--ink)}.guide .fexpr{font-family:var(--f-mono);background:var(--tape);border-radius:6px;padding:8px 10px;font-size:.95rem;font-weight:600;overflow-x:auto}.guide .steps{font-family:var(--f-mono);white-space:pre-wrap;background:var(--tape);border-radius:6px;margin:6px 0;padding:8px 10px;font-size:.85rem}.activities{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px;display:grid}.activity{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:12px;align-content:start;gap:6px;padding:16px 18px;text-decoration:none;display:grid}.activity:hover{border-color:var(--accent)}.activity b{font-family:var(--f-display);font-size:1.1rem}.activity span{color:var(--muted);font-size:.92rem}.activity em{font-style:normal;font-family:var(--f-mono);color:var(--accent);font-size:.78rem}.mono{font-family:var(--f-mono)}.face .def.mono{font-size:1.05rem}.prompt{background:var(--tape);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:9px;padding:14px 16px;font-size:1.05rem}.prompt.mono{white-space:pre-wrap;font-size:1rem}.opt .t.mono{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.92rem}dl.review{grid-template-columns:minmax(120px,220px) 1fr;gap:6px 14px;margin:0;display:grid}dl.review dt{font-weight:600}dl.review dd{overflow-wrap:anywhere;margin:0}.match-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.mcol{align-content:start;gap:8px;min-width:0;display:grid}.mtile{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);overflow-wrap:anywhere;border-radius:9px;min-height:48px;padding:10px 12px;font-size:.95rem;line-height:1.35}.mtile.mono{font-family:var(--f-mono);white-space:pre-wrap;font-size:.85rem}.mtile:hover:not(:disabled){border-color:var(--accent)}.mtile.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent) inset}.mtile.wrong{border-color:var(--bad);background:var(--bad-soft);animation:.3s shake}.mtile.done{border-color:var(--good);background:var(--good-soft);color:var(--good);opacity:.7}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.mtile.wrong{animation:none}}.write-row{flex-wrap:wrap;gap:8px;display:flex}.write-row input{min-width:200px;font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;flex:1;padding:10px 12px;font-size:1.05rem}@media (width<=520px){.match-grid{gap:8px}.mtile{padding:8px 10px;font-size:.88rem}dl.review{grid-template-columns:1fr}}.sheet-pages{gap:20px;display:grid}.sheet-frame{gap:6px;margin:0;display:grid}.sheet-scale{width:100%;max-width:816px;overflow:hidden}.sheet-scale .sheet-page{transform-origin:0 0;box-shadow:0 2px 12px #00000040}.sheet-measure{visibility:hidden;position:absolute;top:0;left:-10000px}.exam-line{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.exam-pill{color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:600}.exam-pill.soon{color:var(--bad);background:var(--bad-soft)}.exam-pill.past{color:var(--muted);background:var(--tape)}.exam-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.exam-form input,.field input[type=date]{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:6px 8px}.linkish.small-link{color:var(--accent);font-size:.88rem;text-decoration:underline}.review-cta{background:var(--bad-soft);color:var(--ink);border:1px solid #0000;border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:10px;padding:10px 14px;text-decoration:none;display:flex}.review-cta:hover{border-color:var(--bad)}.review-cta b{color:var(--bad)}.review-cta span{color:var(--muted);font-size:.92rem}.q-tools{flex-wrap:wrap;justify-content:flex-end;gap:16px;display:flex}.fix-editor textarea,.fix-editor input[type=text]{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;width:100%;padding:9px 11px}.fix-editor textarea.mono{font-family:var(--f-mono);font-size:.9rem}.spacer{flex:1}.err-text{color:var(--bad)}.exam-bar{top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;padding:10px 14px;display:flex;position:sticky}.exam-clock{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:600}.exam-clock.low{color:var(--bad)}.opt.picked{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}.opt.picked .k{border-color:var(--accent);color:var(--accent)}.flag-tag{color:#c97a1d;border-color:#c97a1d}.exam-grid{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px;display:grid}.qdot{border:1px solid var(--line);background:var(--surface);height:38px;color:var(--ink);font-family:var(--f-mono);border-radius:8px;font-size:.85rem}.qdot.done{background:var(--accent-soft);border-color:var(--accent)}.qdot.flag{box-shadow:inset 0 0 0 2px #c97a1d}.qdot.cur{outline:2px solid var(--ink);outline-offset:1px}.confirm-card{border-color:var(--accent)}.resume-card{border-color:var(--accent);background:var(--accent-soft)}.past-exams{gap:6px;margin:0;padding:0;list-style:none;display:grid}.past-exams li{font-variant-numeric:tabular-nums;grid-template-columns:110px 60px 1fr;gap:10px;display:grid}.exam-review{gap:14px;margin:0;padding-left:24px;display:grid}.exam-review li{gap:4px;display:grid}.exam-review .q{margin:0;font-weight:600}.exam-review .yours{color:var(--bad);margin:0;font-size:.92rem}.exam-review .ans{color:var(--good);margin:0;font-size:.92rem}.exam-review details summary{cursor:pointer;color:var(--accent);font-size:.9rem}.fb-dialog{border:1px solid var(--line);background:var(--surface);width:min(520px,100vw - 32px);color:var(--ink);border-radius:14px;padding:22px}.fb-dialog::backdrop{background:#0a0f148c}.fb-dialog form{gap:14px;display:grid}.fb-dialog select,.fb-dialog textarea{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;width:100%;padding:9px 11px}.fb-quote{background:var(--tape);border-radius:8px;gap:4px;padding:10px 12px;display:grid}.fb-quote p{font-size:.95rem}
