@font-face{font-stretch:62% 100%;font-family:archivo;src:url(../media/archivo-s.p.14a9xpaqsbppk.woff2)format("woff2");font-display:swap;font-weight:400 800}@font-face{font-family:archivo Fallback;src:local(Arial);ascent-override:85.41%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:102.8%}.archivo_363a3c70-module___As3sG__className{font-family:archivo,archivo Fallback}.archivo_363a3c70-module___As3sG__variable{--font-archivo:"archivo", "archivo Fallback"}
@font-face{font-family:jbmono;src:url(../media/jbmono-s.p.1wmoa0e_blxrz.woff2)format("woff2");font-display:swap;font-weight:100 800}@font-face{font-family:jbmono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.jbmono_12e6e7e6-module__k6QiCW__className{font-family:jbmono,jbmono Fallback}.jbmono_12e6e7e6-module__k6QiCW__variable{--font-mono:"jbmono", "jbmono Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fff;--band:#f2f3f3;--ink:#1f2326;--mute:#5f666b;--rule:#d9dcde;--fine:#eceeef;--green:#1f7a48;--red:#b3342b;--amber:#8f6208;--tol:#e4f0e8;--amberbg:#fbf3e2;--scrim:#1f23266b;--sans:var(--font-archivo), system-ui, sans-serif;--mono-face:var(--font-mono), ui-monospace, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#121416;--band:#1b1e21;--ink:#e6e8e9;--mute:#99a1a6;--rule:#30353a;--fine:#23272a;--green:#57b884;--red:#e36a60;--amber:#d4a13a;--tol:#1c3326;--amberbg:#2a2416;--scrim:#0000008c}}:root[data-theme=dark]{--bg:#121416;--band:#1b1e21;--ink:#e6e8e9;--mute:#99a1a6;--rule:#30353a;--fine:#23272a;--green:#57b884;--red:#e36a60;--amber:#d4a13a;--tol:#1c3326;--amberbg:#2a2416;--scrim:#0000008c}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0}body{font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}::selection{background:var(--ink);color:var(--bg)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}a{color:var(--ink);text-underline-offset:3px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,textarea{font:inherit;color:var(--ink);caret-color:var(--ink)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
.lbl{letter-spacing:.07em;text-transform:uppercase;color:var(--mute);font-size:12px;font-weight:700;font-stretch:70%}.mono{font-family:var(--mono-face);font-variant-numeric:tabular-nums}.small{font-size:11.5px}.muted{color:var(--mute)}.page{max-width:640px;min-height:100dvh;margin:0 auto;padding-bottom:96px;position:relative}.report-frame{border:1.5px solid var(--ink);margin:16px 16px 0}.frame-head{border-bottom:1.5px solid var(--ink);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.frame-title{white-space:nowrap;letter-spacing:.02em;text-transform:uppercase;flex:none;margin:0;font-size:18px;font-weight:800;font-stretch:70%}.frame-meta{align-items:center;gap:10px;min-width:0;display:flex}.frame-lesson{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.fields{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.field{border-right:1px solid var(--rule);min-height:46px;color:var(--ink);padding:6px 10px 7px;text-decoration:none;display:block}.field:last-child{border-right:0}.field .lbl{white-space:nowrap;letter-spacing:.03em}.field .v{white-space:nowrap;margin-top:2px;font-size:12.5px}.stop-btn{flex:none;margin:-9px 0;padding:9px 0 9px 10px}.stop-btn:disabled{opacity:.35;cursor:default}.stop-btn span{letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--ink);padding:5px 10px;font-size:12px;font-weight:700;font-stretch:70%;display:block}.bars{align-items:flex-end;gap:2px;height:11px;display:flex}.bars span{width:5px;display:block}.bar-in{background:var(--green);height:11px}.bar-close{background:var(--amber);height:7px}.bar-out{background:var(--red);height:3px}.bar-new{background:var(--rule);height:3px}.log{font-family:var(--mono-face);color:var(--mute);align-items:center;gap:6px;min-height:22px;padding:7px 16px 0;font-size:11.5px;display:flex}.log:before{content:"";background:var(--mute);flex:none;width:6px;height:6px}.log-ok:before{background:var(--green)}.log-wait:before{background:var(--amber)}.log-warn{color:var(--amber)}.log-warn:before{border:1.5px solid var(--amber);background:0 0}.log-error{color:var(--red)}.log-error:before{background:var(--red)}.body{padding:14px 16px 0}.feat-head{border-bottom:1.5px solid var(--ink);align-items:baseline;gap:10px;padding-bottom:6px;display:flex}.feat-head b{letter-spacing:.07em;text-transform:uppercase;font-size:12px;font-weight:800;font-stretch:70%}.feat-head span{color:var(--mute);font-size:12px}.recheck-badge{font-family:var(--mono-face);border:1.5px solid var(--amber);color:var(--amber);margin-left:auto;padding:2px 7px;font-size:11.5px}.question{letter-spacing:-.01em;text-wrap:balance;margin:12px 0;font-size:21px;font-weight:500;line-height:1.28}.band{background:var(--band);padding:9px 11px 10px}.band p{margin:0;font-size:15px;line-height:1.5}.band textarea{resize:vertical;background:0 0;border:0;width:100%;min-height:120px;padding:0;font-size:15px;line-height:1.5}.checks{margin-top:14px}.checks-head,.check-row{grid-template-columns:1fr 64px;display:grid}.checks-head{border-bottom:1px solid var(--rule);padding-bottom:4px}.check-row{border-bottom:1px solid var(--fine);padding:8px 0;font-size:14px;position:relative;overflow:hidden}.check-row .res{text-align:right;font-family:var(--mono-face);font-size:12px;font-weight:600}.res-hit{color:var(--green)}.res-miss{color:var(--red)}.res-pending{color:var(--mute);font-weight:400}.probe{background:var(--ink);opacity:0;width:2px;position:absolute;top:0;bottom:0;left:0}.options{gap:8px;margin-top:4px;display:grid}.option{text-align:left;border:1.5px solid var(--rule);grid-template-columns:22px 1fr 44px;align-items:center;gap:8px;min-height:48px;padding:10px 12px;font-size:15px;display:grid}.option[aria-pressed=true]{border-color:var(--ink)}.option .letter{font-family:var(--mono-face);color:var(--mute);font-size:12px}.option .res{text-align:right;font-family:var(--mono-face);font-size:12px;font-weight:600}.option.is-correct{border-color:var(--green)}.option.is-wrong{border-color:var(--red)}.order-row{border-bottom:1px solid var(--fine);grid-template-columns:28px 1fr 44px 44px;align-items:center;min-height:48px;font-size:14.5px;display:grid}.order-row .n{font-family:var(--mono-face);color:var(--mute);font-size:12px}.order-row button{place-items:center;width:44px;height:44px;display:grid}.order-row button:disabled{opacity:.3}.scorebox{justify-content:space-between;align-items:center;gap:12px;min-height:64px;margin-top:14px;display:flex}.score{font-family:var(--mono-face);color:var(--mute);font-size:12px}.score b{color:var(--ink);letter-spacing:-.02em;font-size:30px;font-weight:600}.stamp{text-align:center;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:2.5px solid;border-radius:5px;padding:6px 13px 5px;font-size:18px;font-weight:800;font-stretch:70%;line-height:1;transform:rotate(-5deg)}.stamp small{letter-spacing:.1em;margin-top:4px;font-size:11px;font-weight:700;display:block}.stamp-green{color:var(--green)}.stamp-amber{color:var(--amber)}.stamp-ready{color:var(--green);outline:1.5px solid var(--green);outline-offset:2px;border-style:double}.stamp-dashed{color:var(--mute);border-style:dashed;font-size:15px;transform:none}.stamp-self{color:var(--ink);border-style:dashed;font-size:15px;transform:none}.workorder{border:1.5px solid var(--amber);background:var(--amberbg);width:210px}.workorder .wo-head{border-bottom:1px solid var(--amber);justify-content:space-between;padding:5px 8px;display:flex}.workorder .wo-head *{color:var(--amber)}.workorder p{margin:0;padding:6px 8px 7px;font-size:13.5px;line-height:1.35}.remarks{border-top:1.5px solid var(--ink);margin-top:14px;padding-top:9px}.remarks p,.note p{margin:4px 0 0;font-size:14.5px;line-height:1.5}.note{margin-top:12px}.text-action{text-underline-offset:3px;min-height:44px;font-size:13.5px;text-decoration:underline}.selfmark{border-bottom:1px solid var(--fine);grid-template-columns:1fr 104px;align-items:center;padding:4px 0;font-size:14px;display:grid}.selfmark .toggle{justify-content:flex-end;display:flex}.selfmark .toggle button{width:50px;height:44px;font-family:var(--mono-face);border:1px solid var(--rule);font-size:12px}.selfmark .toggle button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}.bottom-bar{z-index:10;border-top:1.5px solid var(--ink);background:var(--bg);padding-bottom:max(14px, env(safe-area-inset-bottom));grid-template-columns:1fr 1.6fr 1fr;max-width:640px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}@media (min-width:641px){.bottom-bar{max-width:608px}}.key{letter-spacing:.08em;text-transform:uppercase;min-height:60px;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:10px 0 8px;font-size:11.5px;font-weight:700;font-stretch:70%;text-decoration:none;display:flex}.key+.key{border-left:1px solid var(--rule)}.key-main{background:var(--ink);color:var(--bg)}.key:disabled{opacity:.35;cursor:default}.key-wide{border:1.5px solid var(--ink);flex-direction:row;width:100%;min-height:48px}.key svg{width:20px;height:20px}.scrim{background:var(--scrim);z-index:20;opacity:0;pointer-events:none;transition:opacity .35s var(--ease-out);position:fixed;inset:0}.panel{background:var(--bg);border-left:1.5px solid var(--ink);z-index:21;visibility:hidden;width:min(346px,92vw);transition:transform .55s var(--ease-out), visibility 0s linear .55s;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.panel-open .scrim{opacity:1;pointer-events:auto}.panel-open .panel{visibility:visible;transition:transform .55s var(--ease-out), visibility 0s;transform:none}.panel-head{border-bottom:1.5px solid var(--ink);padding:16px 16px 10px}.panel-head h2{letter-spacing:.01em;text-transform:uppercase;margin:0;font-size:22px;font-weight:800;font-stretch:70%}.close-btn{place-items:center;width:44px;height:44px;margin:-10px -12px -10px 0;display:grid}.big-count{font-family:var(--mono-face);letter-spacing:-.03em;font-size:34px;font-weight:600;line-height:1}.legend{color:var(--mute);align-items:center;gap:14px;margin:14px 16px 6px;font-size:11.5px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend .marker{transition:none;display:block;position:static}.legend .marker-out{width:9px;height:9px}.scale{font-family:var(--mono-face);color:var(--mute);grid-template-columns:repeat(5,minmax(0,1fr));margin:0 16px 6px;font-size:11px;display:grid}.scale span:nth-child(n+3){color:var(--green)}.item{border-bottom:1px solid var(--fine);margin:0 16px;padding:8px 0 10px}.item-t{justify-content:space-between;gap:8px;margin-bottom:6px;font-size:13.5px;display:flex}.item-t .mono{flex:none}.due-close{color:var(--amber)}.track{height:14px;position:relative}.track:before{content:"";background:var(--rule);height:1px;position:absolute;top:6.5px;left:0;right:0}.tol{background:var(--tol);position:absolute;inset:0 0 0 40%}.marker{width:8px;height:8px;transition:left .6s var(--ease-out);position:absolute;top:3px}.marker-in{background:var(--green);transform:rotate(45deg)}.marker-close{border:2px solid var(--amber);background:var(--bg);transform:rotate(45deg)}.marker-out,.marker-new{border:2px solid var(--red);background:var(--bg);width:10px;height:10px;top:2px}.marker-new{border-color:var(--rule)}.login{place-items:center;min-height:100dvh;padding:16px;display:grid}.login-card{width:min(380px,100%);margin:0}.login-body{gap:12px;padding:16px 12px;display:grid}.login-body .log{padding:0}.e2e-form{border-top:1px solid var(--rule);gap:6px;padding-top:12px;display:grid}.e2e-form input{border:1px solid var(--rule);background:var(--band);min-height:44px;padding:0 10px}.lesson h2{letter-spacing:.07em;text-transform:uppercase;border-bottom:1.5px solid var(--ink);margin:24px 0 10px;padding-bottom:6px;font-size:14px;font-weight:800;font-stretch:70%}.lesson p,.lesson li{max-width:68ch;font-size:16px;line-height:1.6}.lesson pre{overflow-x:auto}.mermaid-figure svg{max-width:100%;height:auto}.probe-run .res{opacity:0;animation:res-in .22s var(--ease-out) forwards;animation-delay:calc(var(--i) * .42s + .3s)}.probe-run .probe{animation:.34s cubic-bezier(.65,0,.35,1) forwards probe;animation-delay:calc(var(--i) * .42s)}@keyframes probe{0%{opacity:1;transform:translate(0)}95%{opacity:1}to{opacity:0;transform:translate(min(290px,80vw))}}@keyframes res-in{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:none}}.stamp-in-anim{animation:.22s cubic-bezier(.5,0,.75,0) both stamp-press;animation-delay:var(--stamp-delay,0s);position:relative}.stamp.stamp-in-anim:after,.workorder.stamp-in-anim:after{content:"";border:inherit;border-radius:inherit;opacity:0;animation:ink .5s var(--ease-out) forwards;animation-delay:calc(var(--stamp-delay,0s) + .22s);pointer-events:none;position:absolute;inset:-2.5px}@keyframes stamp-press{0%{opacity:0;scale:1.7}to{opacity:1;scale:1}}@keyframes ink{0%{opacity:.45;scale:1}to{opacity:0;scale:1.12}}.checks:has(.probe-run)+.scorebox{--stamp-delay:1.3s}.scorebox+.remarks,.remarks+.note{animation:rise .4s var(--ease-out) both;animation-delay:var(--stamp-delay,.3s)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.checks:has(.probe-run)+.scorebox+.remarks{animation-delay:1.75s}.panel-open .item:nth-child(n) .marker{transition-delay:calc(.45s + (var(--row,0) * 70ms))}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-delay:0s!important;animation-delay:0s!important}}.pattern{border:1.5px solid var(--red);margin-top:20px;padding:11px 12px}.pattern-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.pattern .lbl{color:var(--red)}.pattern p{margin:5px 0 0;font-size:14.5px;line-height:1.45}.body>.pattern:first-child{margin:0 0 14px}.asked{border-top:1.5px solid var(--ink);margin-top:18px;padding-top:9px}.asked p{margin:5px 0 0;font-size:14.5px;line-height:1.5}.asked .asked-q{color:var(--mute)}.recheck-line{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:9px;font-size:14.5px;display:flex}.recheck-line .recheck-badge{margin-left:0}.failed-grade+.failed-grade{margin-top:32px}.failed-grade>.log{margin:10px 0 0}.log-rec{color:var(--red)}.log-rec:before{background:var(--red);border-radius:50%;width:7px;height:7px}.key-danger{background:var(--red);color:var(--bg)}.action-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.action-pair button{border:1.5px solid var(--ink);letter-spacing:.08em;text-transform:uppercase;min-height:44px;font-size:12px;font-weight:700;font-stretch:70%}.action-pair .primary{background:var(--ink);color:var(--bg)}.action-pair button:disabled{opacity:.35;cursor:default}.rec-panel{border:1.5px solid var(--ink);padding:12px}.rec-head{justify-content:space-between;align-items:baseline;display:flex}.rec-time{letter-spacing:-.02em;font-size:22px;font-weight:600}.levels{align-items:center;gap:3px;height:40px;margin-top:8px;display:flex}.levels span{background:var(--ink);width:4px}.levels span.off{background:var(--rule);height:4px}.transcript{border-top:1.5px solid var(--ink);margin-top:22px;padding-top:9px}.transcript-head{justify-content:space-between;align-items:baseline;display:flex}.transcript textarea{resize:none;background:0 0;border:0;width:100%;min-height:92px;padding:0;font-size:15px;line-height:1.5}.summary{border-top:1.5px solid var(--ink);margin:14px 16px 0;padding-top:9px}.summary p{white-space:pre-line;margin:5px 0 0;font-size:14.5px;line-height:1.5}
