:root{--page:#f4f2ee;--surface:#fff;--raised:#efece6;--raised-2:#e4e0d8;--border:#dedad1;--control-border:#847e73;--text-muted:#5b564d;--text:#26231f;--text-strong:#12100d;--accent:#33479b;--accent-hover:#26377d;--accent-soft:#e5e8f6;--on-accent:#fff;--danger:#b3261e;--danger-soft:#fbe9e6;--danger-strong:#8f1d17;--success:#17693f;--success-soft:#e2f1e8;--success-strong:#105230;--warning:#7d4e00;--warning-soft:#faefd6;--warning-strong:#5f3b00;--info:#33479b;--info-soft:#e5e8f6;--info-strong:#26377d;--nav:#172033;--nav-text:#eef1f7;--current:#172033;--on-current:#eef1f7;--nav-accent:#93aaf0;--stage:#0d0f13;--focus:var(--accent);--shadow-pop:0 8px 24px #17140f2e, 0 1px 3px #17140f1f;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--h:44px;--h-sm:36px;--r-sm:4px;--r:8px;--r-lg:12px;--pill:999px;--fs-xs:.8125rem;--fs-sm:.875rem;--fs:1rem;--fs-md:1.125rem;--fs-nm:1.25rem;--fs-lg:1.375rem;--fs-xl:1.875rem;--fw:400;--fw-b:600;--fw-x:700;--lh:1.45;--lh-tight:1.25;--lh-num:1.1;--icon:16px;--icon-gap:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--page:#14130f;--surface:#1d1c18;--raised:#262520;--raised-2:#302e28;--border:#37352e;--control-border:#7a7469;--text-muted:#aaa498;--text:#ebe8e1;--text-strong:#fbfaf7;--accent:#9db0f2;--accent-hover:#b6c4f7;--accent-soft:#252c47;--on-accent:#0e1424;--danger:#ff8f86;--danger-soft:#3a1f1d;--danger-strong:#ffb1aa;--success:#62cf97;--success-soft:#17301f;--success-strong:#8ce0b5;--warning:#e8b560;--warning-soft:#35290f;--warning-strong:#f0c983;--info:#9db0f2;--info-soft:#252c47;--info-strong:#b6c4f7;--nav:#0c0e13;--nav-text:#e9ecf2;--current:#e9ecf2;--on-current:#0c0e13;--stage:#08090c;--shadow-pop:0 8px 24px #0000008c, 0 1px 3px #0006}}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:var(--page);color:var(--text);font:var(--fw) var(--fs)/var(--lh) system-ui, -apple-system, "Segoe UI", sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{margin:0}h1{font-size:var(--fs-lg);line-height:var(--lh-tight);font-weight:var(--fw-x);letter-spacing:-.01em;color:var(--text-strong)}h2{font-size:var(--fs-md);line-height:var(--lh-tight);font-weight:var(--fw-x);color:var(--text-strong)}h3{font-size:var(--fs-sm);line-height:var(--lh-tight);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-weight:var(--fw-x)}h4{font-size:var(--fs);font-weight:var(--fw-b);line-height:var(--lh-tight);margin:var(--s4) 0 var(--s2);color:var(--text-strong)}a{color:var(--accent)}.muted,small{color:var(--text-muted)}small{font-size:var(--fs-sm)}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.page{max-width:760px;padding:var(--s6) var(--s4) 48px;margin:0 auto}svg{flex:none}button,select,input:not([type=checkbox]):not([type=range]),textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--control-border);border-radius:var(--r);min-height:var(--h);padding:0 var(--s3)}button{justify-content:center;align-items:center;gap:var(--icon-gap);padding:0 var(--s4);font-weight:var(--fw-b);cursor:pointer;white-space:nowrap;line-height:1.2;display:inline-flex}button:hover:not(:disabled){background:var(--raised)}button:active:not(:disabled){background:var(--raised-2)}button:disabled{opacity:.5;cursor:default}select{padding-right:var(--s2)}textarea{resize:vertical;width:100%;padding:var(--s2) var(--s3);line-height:var(--lh)}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{background:var(--danger);color:var(--surface);border-color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger-strong);border-color:var(--danger-strong);color:var(--surface)}button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}button.icon{min-width:var(--h);padding:0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.topnav :focus-visible,.stage :focus-visible{outline-color:#fff}.row{gap:var(--s2);align-items:center;display:flex}.row>select{flex:1;min-width:0}.check{gap:var(--s3);min-height:var(--h);font-weight:var(--fw-b);align-items:center;display:flex}.check input{width:20px;height:20px;accent-color:var(--accent);margin:0}kbd{border:1px solid var(--border);border-radius:var(--r-sm);padding:0 var(--s1);font:var(--fw-b) var(--fs-sm) ui-monospace, SFMono-Regular, Menlo, monospace;background:var(--raised);color:var(--text-muted);border-bottom-width:2px}.linkish,.quiet{min-height:var(--h-sm);padding:0 var(--s3);font-size:var(--fs-sm);color:var(--accent);background:0 0;border-color:#0000;position:relative}.linkish:hover:not(:disabled),.quiet:hover:not(:disabled){background:var(--accent-soft)}.linkish{text-underline-offset:2px;text-decoration:underline}.compact,.note-list .actions button,.logged button,.snack button{min-height:var(--h-sm);position:relative}.compact:after,.note-list .actions button:after,.logged button:after,.snack button:after,.linkish:after{content:"";position:absolute;inset:-4px -2px}.notice-base,.warn,.snack,.logged,.login .notice,.login .error,.discard,.warn-line{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--r);background:var(--info-soft);color:var(--text);font-size:var(--fs-sm);line-height:var(--lh-tight);display:flex}.notice-icon{width:20px;height:20px;color:var(--text-muted);flex:none;place-items:center;display:grid}.warn,.warn-line,.login .notice,.discard{background:var(--warning-soft);border-color:color-mix(in srgb, var(--warning) 35%, transparent);color:var(--warning-strong)}.warn-line{padding:var(--s2) var(--s3);margin:var(--s2) 0 0;flex-wrap:wrap}.login .error{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger-strong)}.warn{flex-wrap:wrap}.topnav{z-index:20;align-items:center;gap:var(--s4);height:48px;padding:0 max(var(--s4), calc((100% - 1680px) / 2 + var(--s4)));background:var(--nav);color:var(--nav-text);display:flex;position:sticky;top:0}.topnav .brand{align-items:center;gap:var(--s3);color:inherit;font-weight:var(--fw-x);letter-spacing:.01em;text-decoration:none;display:inline-flex}.topnav .brand:before{content:"";background:var(--nav-accent);border-radius:2px;width:10px;height:10px;transform:rotate(45deg)}.topnav .navlink{height:var(--h-sm);padding:0 var(--s3);border-radius:var(--r);color:inherit;opacity:.8;font-size:var(--fs-sm);font-weight:var(--fw-b);align-items:center;margin-right:auto;text-decoration:none;display:inline-flex}.topnav .navlink:hover{opacity:1;background:#ffffff1f}.topnav .who{font-size:var(--fs-sm);opacity:.8}.topnav .signout{min-height:var(--h-sm);padding:0 var(--s3);color:inherit;font-size:var(--fs-sm);background:0 0;border-color:#ffffff80}.topnav .signout:hover:not(:disabled){background:#ffffff1f;border-color:#fff}.topnav .signout:active:not(:disabled){background:#fff3}.page>h1{font-size:var(--fs-xl);margin-bottom:var(--s5)}.new-test{margin:0 0 var(--s5);padding:var(--s4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.new-test input:first-child{flex:1;min-width:0}.new-test input[type=date]{width:168px}.tests{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin:0;padding:0;list-style:none;overflow:hidden}.tests li{border-top:1px solid var(--border)}.tests li:first-child{border-top:0}.tests li.muted{padding:var(--s4)}.tests a{gap:var(--s3);min-height:56px;padding:var(--s2) var(--s4);color:var(--text);align-items:center;text-decoration:none;display:flex}.tests a:hover{background:var(--raised)}.tests a strong{color:var(--text-strong)}.tests a:after{content:"";border:solid var(--text-muted);width:8px;height:8px;margin-left:var(--s1);border-width:2px 2px 0 0;transform:rotate(45deg)}.tag{align-items:center;gap:var(--s1);height:24px;padding:0 var(--s3);font-size:var(--fs-xs);font-weight:var(--fw-b);border-radius:var(--pill);background:var(--raised);color:var(--text-muted);margin-left:auto;display:inline-flex}.tag.done{background:var(--success-soft);color:var(--success-strong)}.flash{color:var(--success-strong);margin:0 0 var(--s3);min-height:1.45em;font-size:var(--fs-sm);font-weight:var(--fw-b)}.flash:empty{min-height:0;margin:0}.score{gap:var(--s3);height:var(--h);padding:0 var(--s4);border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);color:var(--text);flex:none;align-items:center;text-decoration:none;display:flex}.score strong{font-size:var(--fs-xl);line-height:var(--lh-num);font-weight:var(--fw-x);color:inherit;letter-spacing:-.02em}.score span{font-size:var(--fs-sm);font-weight:var(--fw-b);line-height:var(--lh-tight)}.score em{color:var(--text-muted);font-size:var(--fs-xs);font-style:normal;font-weight:var(--fw)}.score.pass{background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 45%, transparent);color:var(--success-strong)}.score.fail{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 45%, transparent);color:var(--danger-strong)}.score.pass em,.score.fail em{color:inherit;opacity:.85}a.score:hover{border-color:var(--accent)}.grade,.screen{max-width:1680px;padding:var(--s2) var(--s4) var(--s3);margin:0 auto}.subbar{gap:var(--s4);margin-bottom:var(--s2);align-items:center;display:flex}.who-test{flex-direction:column;flex:none;min-width:0;max-width:220px;display:flex}.who-test h1{font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.who-test small{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;line-height:var(--lh-tight)}.subbar .tabs{flex:1;min-width:0}.tabs{gap:var(--s1);flex-wrap:wrap;align-items:center;display:flex}.tab{justify-content:center;align-items:center;gap:var(--icon-gap);height:var(--h);padding:0 var(--s4);border-radius:var(--r);color:var(--text);font-weight:var(--fw-b);white-space:nowrap;background:0 0;border:1px solid #0000;text-decoration:none;display:inline-flex;position:relative}.tab:hover{background:var(--raised-2)}.tab[aria-current=page]{background:var(--current);color:var(--on-current)}.tab:focus-visible{outline-offset:0}.tab .tick{color:var(--success);display:inline-flex}.tab[aria-current=page] .tick{color:inherit}.count{min-width:22px;height:20px;padding:0 var(--s2);border-radius:var(--pill);background:var(--raised-2);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-b);place-items:center;line-height:1;display:inline-grid}.count.has{background:var(--danger-soft);color:var(--danger-strong)}.tab[aria-current=page] .count{background:color-mix(in srgb, var(--on-current) 20%, transparent);color:inherit}.draft-dot{background:var(--warning);border:2px solid var(--page);border-radius:50%;width:9px;height:9px;position:absolute;top:6px;right:6px}.tab[aria-current=page] .draft-dot{background:var(--warning-soft);border-color:var(--current)}.statline{gap:var(--s4);min-height:32px;margin-bottom:var(--s1);font-size:var(--fs-sm);justify-content:space-between;align-items:center;display:flex}.stat-text{flex:none}.stat-text strong{font-size:var(--fs);color:var(--text-strong)}.keys{flex:none;position:relative}.keys summary{cursor:pointer;color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-b);min-height:var(--h-sm);padding:0 var(--s3);border-radius:var(--r);align-items:center;list-style:none;display:flex}.keys summary::-webkit-details-marker{display:none}.keys summary:hover,.keys[open] summary{background:var(--raised-2);color:var(--text)}.keys p{z-index:30;right:0;top:calc(100% + var(--s1));width:min(560px,90vw);padding:var(--s4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);margin:0;line-height:2;position:absolute}.rail{margin-bottom:var(--s2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s2)}.rail ol{gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(108px,1fr));margin:0;padding:0;list-style:none;display:grid}.rail li{min-width:0;display:flex;position:relative}.rail li .tally{box-shadow:0 0 0 2px var(--surface);position:absolute;top:-6px;right:-4px}.step{justify-content:flex-start;align-items:center;gap:var(--s2);text-align:left;width:100%;min-height:var(--h);padding:var(--s1) var(--s2);font-size:var(--fs-sm);font-weight:var(--fw);background:var(--raised);border-color:#0000;display:flex}.step:hover:not(:disabled){background:var(--raised-2)}.step .num{border-radius:var(--pill);width:26px;height:26px;font-size:var(--fs-sm);font-weight:var(--fw-x);background:var(--surface);color:var(--text-muted);border:1px solid var(--border);flex:none;place-items:center;display:grid}.step .nm{-webkit-line-clamp:3;white-space:normal;-webkit-box-orient:vertical;flex:1;min-width:0;line-height:1.2;display:-webkit-box;overflow:hidden}.step.checked .num{background:var(--success);border-color:var(--success);color:var(--surface)}.step.current{background:var(--accent-soft);border-color:var(--accent);font-weight:var(--fw-b)}.step.current .num{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.step.skipped{background:var(--warning-soft);border:1px dashed var(--warning)}.step.skipped .num{background:var(--warning);border-color:var(--warning);color:var(--surface)}.tally{min-width:22px;height:20px;padding:0 var(--s2);border-radius:var(--pill);background:var(--danger);color:var(--surface);font-size:var(--fs-xs);font-weight:var(--fw-x);flex:none;place-items:center;line-height:1;display:inline-grid}.workspace{gap:var(--s3);height:max(440px, calc(100dvh - var(--top,220px) - 20px));grid-template-columns:minmax(0,1fr) 340px 296px;display:grid}.vcol{flex-direction:column;min-width:0;min-height:0;display:flex}.vcol>.empty{flex:1;place-content:center;display:grid}.empty{padding:var(--s6);text-align:center;border:1px dashed var(--control-border);border-radius:var(--r-lg);color:var(--text-muted)}.empty a{margin-top:var(--s2);display:inline-block}.player,.tcard,.notes{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.player{flex-direction:column;flex:1;min-height:0;padding:0;display:flex}.stage{background:var(--stage);flex:1 1 0;place-items:center;min-height:120px;display:grid;overflow:hidden}.frame{width:var(--fw,100%);height:var(--fh,auto);background:#000;line-height:0;position:relative;overflow:hidden;container-type:inline-size}.frame video{object-fit:contain;width:100%;height:100%;display:block}.clock{text-align:center;font:var(--fw-b) 3.6cqw/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:#fff;pointer-events:none;background:#0009;border-radius:1cqw;padding:.8cqw 2cqw;position:absolute;bottom:2cqw;right:2cqw}.track{width:100%;padding:var(--s1) var(--s4) 0;flex:none}.scrub{width:100%;accent-color:var(--accent);height:24px;margin:0;display:block}.controls{gap:var(--s2) var(--s3);padding:var(--s1) var(--s1) var(--s2);flex-wrap:wrap;flex:none;justify-content:center;align-items:center;display:flex}.zone{align-items:center;gap:6px;display:inline-flex}.zone[aria-label=Repeat]{gap:var(--s1)}.controls button{min-width:var(--h);padding:0 10px}.controls .zone[aria-label=Repeat] button{font-size:var(--fs-sm);min-width:40px;padding:0 6px}.controls select{width:68px;padding-left:10px}.controls button.primary{min-width:92px}.zone-label{font-size:var(--fs-sm);color:var(--text-muted);font-weight:var(--fw-x);text-transform:uppercase;letter-spacing:.04em;margin-right:2px}.loop{font-size:var(--fs-sm);color:var(--text-muted)}.loop.on{color:var(--accent);font-weight:var(--fw-b)}.markers{height:42px;margin-top:2px;position:relative}.marker-wrap{left:clamp(12px, calc(8px + (100% - 16px) * var(--p)), calc(100% - 12px));width:0;height:14px;position:absolute}.marker{border-radius:var(--r-sm);background:0 0;border:0;justify-content:center;align-items:center;gap:2px;width:32px;height:14px;min-height:0;padding:0;display:flex;position:absolute;top:0;left:-16px}.marker:after{content:none}.marker:hover:not(:disabled){background:0 0}@media (pointer:fine){.marker{width:24px;left:-12px}}.marker .glyph{box-sizing:border-box;flex:none;width:9px;height:9px}.marker.scored .glyph{background:var(--danger);transform:rotate(45deg)}.marker.obs .glyph{border:2px solid var(--warning);border-radius:50%}.marker .more{font-size:11px;line-height:1;font-weight:var(--fw-x);color:var(--text)}.marker:hover .glyph,.marker.at-playhead .glyph{transform:scale(1.35)rotate(45deg)}.marker.obs:hover .glyph,.marker.obs.at-playhead .glyph{transform:scale(1.35)}.marker.selected{background:color-mix(in srgb, var(--accent) 22%, transparent);outline:2px solid var(--accent);outline-offset:-1px;z-index:1}.marker.selected .glyph{transform:scale(1.35)rotate(45deg)}.marker.obs.selected .glyph{transform:scale(1.35)}.marker-menu{z-index:6;padding:var(--s1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);width:max-content;max-width:min(360px,80vw);max-height:240px;box-shadow:var(--shadow-pop);margin:0;list-style:none;position:absolute;top:16px;left:-12px;overflow:auto}.marker-menu button{text-align:left;width:100%;min-height:var(--h-sm);padding:0 var(--s3);font-size:var(--fs-sm);font-weight:var(--fw);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;display:block;overflow:hidden}.marker-menu button:after{content:none}.marker-menu button.selected{background:var(--accent-soft)}.tcard{flex-direction:column;min-height:0;display:flex}.tcard-head{padding:var(--s3) var(--s4);gap:var(--s3);border-bottom:1px solid var(--border);flex-direction:column;flex:none;display:flex}.tcard-title{justify-content:space-between;align-items:center;min-height:24px;display:flex}.tally-pill{height:24px;padding:0 var(--s3);font-size:var(--fs-xs);font-weight:var(--fw-b);border-radius:var(--pill);background:var(--danger-soft);color:var(--danger-strong);align-items:center;display:inline-flex}.tcard-head select{font-size:var(--fs-sm);font-weight:var(--fw-b)}.tcard-body{min-height:0;padding:0 var(--s4) var(--s4);flex:1;overflow:hidden auto}.tcard-body>h4:first-child{margin-top:var(--s4)}.tcard-foot{height:116px;padding:var(--s2) var(--s3);border-top:1px solid var(--border);flex:none;align-items:center;display:flex}.foot-idle{padding:0 var(--s1);font-size:var(--fs-sm);margin:0}.logged{justify-content:center;align-items:stretch;gap:var(--s2);width:100%;height:100%;padding:var(--s2) var(--s3);background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 40%, transparent);color:var(--success-strong);flex-direction:column;position:relative}.logged-text{-webkit-line-clamp:2;padding-left:calc(18px + var(--s2));padding-right:var(--s5);line-height:1.35;font-size:var(--fs-sm);-webkit-box-orient:vertical;display:-webkit-box;position:relative;overflow:hidden}.logged-text:before{content:"";width:18px;height:18px;-webkit-mask:var(--i-check-circle) center / contain no-repeat;mask:var(--i-check-circle) center / contain no-repeat;-webkit-mask:var(--i-check-circle) center / contain no-repeat;background:currentColor;position:absolute;top:1px;left:0}.logged-actions{gap:var(--s2);display:flex}.logged button{background:var(--surface);font-size:var(--fs-sm);padding:0 var(--s3)}.logged button:hover:not(:disabled){background:var(--raised)}.logged button.primary{background:var(--surface);color:var(--success-strong);border-color:var(--success)}.logged button.primary:hover:not(:disabled){background:var(--raised);border-color:var(--success)}.logged .logged-x{top:var(--s1);right:var(--s1);min-width:var(--h-sm);width:var(--h-sm);color:inherit;background:0 0;border-color:#0000;padding:0;position:absolute}.logged .logged-x:hover:not(:disabled){background:color-mix(in srgb, var(--success) 14%, transparent)}.slice-list{gap:var(--s2);flex-wrap:wrap;display:flex}.slice{font-size:var(--fs-sm);min-height:var(--h-sm);padding:0 var(--s3);text-align:left;font-weight:var(--fw)}.slice[aria-pressed=true]{background:var(--success-soft);color:var(--success-strong);border-color:var(--success)}.slice[aria-pressed=true] span{color:var(--success);font-weight:var(--fw-x)}.items{margin:0 0 var(--s3);gap:var(--s3);flex-direction:column;padding:0;list-style:none;display:flex}.item{justify-content:flex-start;align-items:stretch;gap:var(--s1);text-align:left;white-space:normal;width:100%;font-size:var(--fs-sm);font-weight:var(--fw);padding:var(--s3) var(--s4);flex-direction:column;min-height:64px;line-height:1.4;display:flex}.item:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.item:active{background:var(--accent);color:var(--on-accent)}.item-top{justify-content:space-between;gap:var(--s2);font-size:var(--fs);margin-bottom:var(--s1);align-items:center;display:flex}.item-top strong{font-weight:var(--fw-x);color:var(--text-strong)}.item:active .item-top strong{color:inherit}.item-cta{gap:var(--s2);align-items:center;display:flex}.item em{color:var(--text-muted);font-style:normal;font-weight:var(--fw-x);margin-right:var(--s1);font-size:var(--fs-sm)}.item:active em{color:inherit}.item .faint{color:var(--text-muted)}.item:active .faint{color:inherit}.other{width:100%;color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-b);border-style:dashed}.notes{flex-direction:column;min-height:0;display:flex}.notes-head{min-height:60px;padding:var(--s2) var(--s4);border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;display:flex}.notes-head h3{gap:var(--s2);align-items:center;display:flex}.notes .pad{padding:var(--s4);margin:0}.notes .entry-form{min-height:0;margin:var(--s1) var(--s2);gap:var(--s2);border:1px solid var(--accent);border-radius:var(--r-lg);padding:var(--s3);background:var(--surface);flex-direction:column;flex:0 auto;display:flex;overflow-y:auto}.notes.drafting .notes-head{min-height:44px}.entry-form .form-actions{bottom:calc(-1 * var(--s3));margin:0 calc(-1 * var(--s3)) calc(-1 * var(--s3));padding:var(--s2) var(--s3);background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;position:sticky}.entry-form h4{margin:0}.entry-form select{width:100%}.entry-form .discard{border-width:1px 0 0;border-radius:0;flex-wrap:wrap}.entry-form .form-actions.discard{margin:0 calc(-1 * var(--s3)) calc(-1 * var(--s3));padding:var(--s2) var(--s3)}.note-list{min-height:0;padding:var(--s1) var(--s2);flex:1;margin:0;list-style:none;overflow-y:auto}.note-list li{column-gap:var(--s3);row-gap:var(--s2);padding:var(--s3);border-top:1px solid var(--border);border-radius:var(--r);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"time body"".actions";display:grid}.note-list li:first-child{border-top:0}.note-list li.note .body small{color:var(--warning-strong)}.note-list li.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);border-top-color:#0000}.note-list li.selected{outline:2px solid var(--accent);outline-offset:-2px}.note-list .time{min-height:var(--h-sm);padding:0 var(--s3);font-size:var(--fs-sm);background:var(--raised);font-variant-numeric:tabular-nums;border-color:#0000;grid-area:time;align-self:start}.note-list .time:hover:not(:disabled){background:var(--raised-2)}.note-list .body{gap:var(--s1);overflow-wrap:anywhere;flex-direction:column;grid-area:body;align-self:center;min-width:0;line-height:1.4;display:flex}.note-list .body small{font-size:var(--fs-sm)}.note-list .body strong{font-weight:var(--fw-b);color:var(--text-strong)}.note-list .actions{gap:var(--s2);grid-area:actions;display:flex}.note-list .actions button{padding:0 var(--s3);font-size:var(--fs-sm)}.note-list .actions button:last-child{color:var(--danger-strong)}.snack-slot{height:68px;padding:var(--s2);border-top:1px solid var(--border);flex:none}.snack-idle{height:100%;font-size:var(--fs-sm);padding-left:var(--s2);align-items:center;margin:0;display:flex}.snack{gap:var(--s2);height:100%;padding:0 var(--s2) 0 var(--s3)}.snack-msg{min-width:0;font-weight:var(--fw-b);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;line-height:1.3;display:-webkit-box;overflow:hidden}.snack button{min-height:var(--h-sm);padding:0 var(--s3);font-size:var(--fs-sm)}.snack .notice-icon{color:var(--info)}.snack .snack-x{min-width:var(--h-sm);width:var(--h-sm);color:var(--text-muted);background:0 0;border-color:#0000;padding:0}.snack .snack-x:hover:not(:disabled){background:var(--raised-2);color:var(--text)}.snack.success{background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 40%, transparent);color:var(--success-strong)}.snack.success .notice-icon{color:var(--success)}.snack.success .snack-x{color:inherit}.snack.error{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger-strong)}.snack.error .notice-icon{color:var(--danger)}.snack.error .snack-x{color:inherit}.snack.success .snack-undo{background:var(--surface);color:var(--success-strong);border-color:var(--success)}.snack.success .snack-undo:hover:not(:disabled){background:var(--raised)}.notes-foot{padding:var(--s3);border-top:1px solid var(--border);flex:none;position:relative}.notes-foot .warn{z-index:8;left:var(--s2);right:var(--s2);bottom:calc(100% + var(--s1));box-shadow:var(--shadow-pop);flex-direction:column;align-items:stretch;position:absolute}.notes-foot .warn .row{flex-wrap:wrap}.wide{width:100%}.notes-foot .wide:not(.primary){background:var(--success-soft);color:var(--success-strong);border-color:var(--success)}.picker{flex:1;position:relative}.picker input{width:100%}.picker ul{z-index:5;margin:var(--s1) 0 0;padding:var(--s1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);max-height:280px;box-shadow:var(--shadow-pop);list-style:none;position:absolute;left:0;right:0;overflow:auto}.picker li{padding:var(--s2) var(--s3);border-radius:var(--r-sm);cursor:pointer}.picker li.current{font-weight:var(--fw-b)}.picker li[aria-selected=true]{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px}.picker small{margin-left:var(--s2)}.login{min-height:100vh;padding:var(--s4);place-items:center;display:grid}.login form{gap:var(--s4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:min(400px,100%);padding:var(--s6);flex-direction:column;display:flex}.login h1{align-items:center;gap:var(--s3);font-size:var(--fs-lg);margin-bottom:var(--s2);display:flex}.login h1:before{content:"";background:var(--accent);border-radius:3px;width:12px;height:12px;transform:rotate(45deg)}.login label{gap:var(--s2);font-size:var(--fs-sm);font-weight:var(--fw-b);color:var(--text);flex-direction:column;display:flex}.login input{color:var(--text);font-weight:var(--fw);font-size:var(--fs)}.login .error,.login .notice{margin:0}.login button.primary{margin-top:var(--s2)}.badge{height:20px;margin-right:var(--s2);padding:0 var(--s2);border-radius:var(--pill);background:var(--raised);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-b);white-space:nowrap;vertical-align:1px;align-items:center;display:inline-flex}.screen-body{gap:var(--s5);margin-top:var(--s4);grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"main aside";align-items:start;display:grid}.overview .screen-body{row-gap:var(--s4);grid-template-rows:auto auto 1fr;grid-template-areas:"main next""main details""main delete"}.overview .next-step{grid-area:next}.overview .test-details{grid-area:details}.overview .delete-test{grid-area:delete;align-self:start}.screen-main{grid-area:main;min-width:0}.screen-aside{gap:var(--s4);flex-direction:column;grid-area:aside;min-width:0;display:flex}.btn{justify-content:center;align-items:center;gap:var(--icon-gap);min-height:var(--h);padding:0 var(--s4);border:1px solid var(--control-border);border-radius:var(--r);background:var(--surface);color:var(--text);font-weight:var(--fw-b);white-space:nowrap;text-decoration:none;display:inline-flex}.btn:hover{background:var(--raised)}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.card,.videos,.rev-drill,.test-details,.delete-test,.next-step{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s4) var(--s5)}.next-step{align-items:stretch;gap:var(--s4);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 35%, transparent);font-size:var(--fs-md);flex-direction:column;display:flex}.next-step strong{font-size:var(--fs-lg);line-height:var(--lh-tight);color:var(--text-strong);display:block}.next-step .muted{font-size:var(--fs-sm)}.next-step .btn{font-size:var(--fs)}.videos h3,.test-details>h3,.delete-test>h3{margin-bottom:var(--s3)}.videos ul{margin:0;padding:0;list-style:none}.videos li{column-gap:var(--s4);row-gap:var(--s2);padding:var(--s3) 0;border-top:1px solid var(--border);grid-template-columns:128px minmax(0,1fr) auto;align-items:center;display:grid}.videos li:first-child{border-top:0;padding-top:0}.videos li:last-child{padding-bottom:0}.videos .thumb{object-fit:cover;border-radius:var(--r);pointer-events:none;background:#111;flex:none;width:128px;height:72px}.videos .thumb.empty{background:var(--raised-2)}.slot-info{gap:var(--s1);flex-direction:column;min-width:0;display:flex}.slot-title{align-items:baseline;gap:var(--s3);flex-wrap:wrap;display:flex}.videos .slot-name{font-size:var(--fs-nm);line-height:var(--lh-tight);font-weight:var(--fw-b);color:var(--text-strong)}.slot-dur{font-size:var(--fs);font-variant-numeric:tabular-nums}.slot-progress{min-height:1.4em;font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;line-height:1.4}.slot-actions{gap:var(--s2);justify-content:flex-end;align-items:center;display:flex}.slot-actions .pick{min-width:104px;color:var(--text)}.slot-actions .open-slot{min-width:148px}.slot-actions .open-slot:disabled{opacity:1;background:var(--raised);color:var(--text-muted);border-color:var(--border);cursor:default;font-variant-numeric:tabular-nums}.videos .err{color:var(--danger-strong);overflow-wrap:anywhere;font-size:var(--fs-sm);font-weight:var(--fw-b);line-height:1.4}.videos .bar-wrap{gap:var(--s3);min-width:160px;font-size:var(--fs-sm);align-items:center;display:flex}.videos progress{height:8px;accent-color:var(--accent);flex:1}.videos li>.warn-line,.videos li>.replace-confirm{grid-column:2/-1;margin:0}.replace-confirm{background:var(--warning-soft);flex-direction:column;align-items:stretch}.replace-confirm p{line-height:var(--lh);margin:0}.rev-drill{margin-bottom:var(--s4);padding:var(--s4) var(--s5)}.rev-head{min-height:var(--h);justify-content:space-between;align-items:center;display:flex}.rev-head h2 .muted{font-weight:var(--fw);font-size:var(--fs)}.rev-drill ul{margin:var(--s2) 0 0;padding:0;list-style:none}.rev-drill li{gap:var(--s4);padding:var(--s3) 0;border-top:1px solid var(--border);display:flex}.rev-drill li small{color:var(--danger-strong);font-weight:var(--fw-b)}.rev-drill .time{font-weight:var(--fw-b);min-width:64px}.rev-drill .body{gap:var(--s1);line-height:var(--lh-tight);flex-direction:column;flex:1;display:flex}.rev-drill>p{margin:var(--s2) 0 0}.screen-aside .warn,.screen-aside>p.muted{margin:0}.screen-aside>p.muted{padding:var(--s3) var(--s4)}.td-form{gap:var(--s3);grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.td-field{gap:var(--s2);font-size:var(--fs-sm);font-weight:var(--fw-b);color:var(--text);flex-direction:column;display:flex}.td-field input{color:var(--text);font-weight:var(--fw);font-size:var(--fs)}.td-name{grid-column:1/-1}.td-form button{min-width:88px}.td-msg,.dt-msg{margin:var(--s2) 0 0;min-height:1.45em;font-size:var(--fs-sm)}.td-msg .ok{color:var(--success-strong);font-weight:var(--fw-b)}.td-msg .err,.dt-msg .err{color:var(--danger-strong);font-weight:var(--fw-b)}input[aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.delete-test{background:var(--surface);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.delete-test>h3{color:var(--danger-strong)}.delete-test .dt-row button{color:var(--danger-strong);border-color:var(--danger)}.delete-test .dt-row button:hover:not(:disabled){background:var(--danger-soft)}.dt-row{gap:var(--s3);flex-direction:column;align-items:stretch;display:flex}.dt-row p{line-height:var(--lh);font-size:var(--fs-sm);margin:0}.dt-confirm{background:var(--danger-soft);border-radius:var(--r);padding:var(--s4);color:var(--danger-strong)}.dt-confirm p{margin:0 0 var(--s2);line-height:var(--lh)}.dt-confirm .row{align-items:stretch;gap:var(--s2);margin-top:var(--s3);flex-direction:column;display:flex}.dt-confirm button:not(.danger){background:var(--surface);color:var(--text)}.dt-msg{margin-top:0}@media (width<=1180px){.subbar{flex-wrap:wrap}.workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:auto}.vcol{grid-column:1/-1}.player{flex:none}.stage{flex:none;height:min(52vh,56vw)}.tcard,.notes{min-height:420px;max-height:80vh}.statline{flex-wrap:wrap}.screen-body{gap:var(--s4);grid-template-columns:minmax(0,1fr);grid-template-areas:"aside""main"}.overview .screen-body{grid-template-rows:none;grid-template-areas:"next""main""details""delete"}.screen-aside{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start;display:grid}.grade,.screen{padding:var(--s2) var(--s3) var(--s3)}.subbar{gap:var(--s3);flex-wrap:nowrap}.who-test{max-width:100px}.tabs{scrollbar-width:none;flex-wrap:nowrap;gap:2px;margin:-3px;padding:3px;overflow-x:auto}.tab{padding:0 var(--s2);gap:var(--s1);font-size:var(--fs-sm);flex:none}.tab .count{padding:0 var(--s1);min-width:18px}.score{padding:0 var(--s3);gap:var(--s2)}.score strong{font-size:var(--fs-lg)}.rail{padding:var(--s1)}.rail ol{gap:var(--s2);scrollbar-width:thin;padding:2px;scroll-padding:0 24px;display:flex;position:relative;overflow-x:auto}.rail li{flex:0 0 150px}.videos li{grid-template-columns:96px minmax(0,1fr)}.videos .thumb{width:96px;height:54px}.slot-actions{grid-column:2;justify-content:flex-start}}@media (width<=760px){.workspace{grid-template-columns:1fr}}:root{--i-check-circle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12.5l3 3 5-6'/%3E%3C/svg%3E")}
