:root{--color-bg: #f4f6fb;--color-surface: #ffffff;--color-surface-sunken: #e6ebfc;--color-white: #ffffff;--color-text: #0d1326;--color-divider: #d3d9e8;--color-divider-strong: #a9b2c9;--color-neutral-100: #eef1f8;--color-neutral-200: #d3d9e8;--color-neutral-400: #7a84a0;--color-accent: #1b44e0;--color-accent-100: #e6ebfc;--color-accent-200: #ccd7f9;--color-accent-300: #9db1f2;--color-accent-400: #5c7ce8;--color-accent-600: #1537bd;--color-accent-700: #10298c;--color-accent-900: #0a1c66;--color-cyan: #1eb9fe;--on-blue-2: #dbe3ff;--on-deep-2: #b9c6f5;--color-pass: #0e6b46;--color-pass-soft: #d8f0e4;--color-warn: #8a5300;--color-warn-soft: #fbeacc;--color-fail: #b3261e;--color-fail-soft: #fbe0de;--ink-08: rgba(13, 19, 38, .08);--ink-40: rgba(13, 19, 38, .58);--ink-45: rgba(13, 19, 38, .62);--ink-50: rgba(13, 19, 38, .66);--ink-55: rgba(13, 19, 38, .7);--ink-60: rgba(13, 19, 38, .74);--ink-70: rgba(13, 19, 38, .8);--ink-75: rgba(13, 19, 38, .85);--paper-25: rgba(255, 255, 255, .28);--paper-60: rgba(255, 255, 255, .64);--paper-75: rgba(255, 255, 255, .8);--scrim: rgba(10, 28, 102, .55);--ground: var(--color-bg);--fg: var(--color-text);--fg-2: var(--ink-60);--hair: var(--color-divider);--mark: var(--color-accent);--font-heading: "Archivo", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-body: "Archivo", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--text-micro: 10px;--text-kicker: 10.5px;--text-label: 11px;--text-label-lg: 11.5px;--text-th: 11.5px;--text-note: 13px;--text-btn: 13.5px;--text-sm: 14px;--text-card: 15px;--text-body: 15.5px;--text-tile: 18px;--text-h3: 21px;--text-h1: 32px;--text-h2: 26px;--text-amount: 44px;--track-tight: .005em;--track: .01em;--track-wide: .015em;--track-caps: .05em;--r-mark: 2px;--r-ctl: 6px;--r-sheet: 12px;--blade: polygon( 0% 100%, 10% 64%, 20% 40%, 40% 24%, 60% 12%, 90% 0%, 100% 34%, 90% 44%, 60% 64%, 30% 80%, 10% 96% );--rail-width: 104px;--rail-item-width: 80px;--strip-cell-height: 30px;--drawer-width: 460px;--table-min-width: 640px;--touch-min: 44px;--control-sm: 30px;--control-md: 40px;--control-lg: 48px;--pad-page: 34px;--pad-page-mobile: 18px;--elevation-raised: none;--elevation-overlay: 0 1px 2px rgba(13, 19, 38, .12), 0 30px 60px -24px rgba(13, 19, 38, .45);--surface-dark: radial-gradient(120% 140% at 100% 0%, rgba(27, 68, 224, .55) 0%, rgba(27, 68, 224, 0) 58%), #0a1c66;--duration-press: .12s;--duration-state: .18s;--duration-expand: .26s;--duration-draw: .6s;--stagger: 80ms;--ease-standard: cubic-bezier(.22, 1, .36, 1)}@media(max-width:760px){:root{--control-sm: 36px;--control-md: 44px;--control-lg: 50px}}@media(prefers-reduced-motion:reduce){:root{--duration-press: 0ms;--duration-state: 0ms;--duration-expand: 0ms;--duration-draw: 0ms;--stagger: 0ms}}*{box-sizing:border-box;border-radius:0}.btn,.input,.select,.textarea,.toast,.banner,.form-error,.gate-blocked,.inline-error,.chat-error,.segmented,.queue-stat,.session-item{border-radius:var(--r-ctl)}.panel,.dialog,.kcard,.app-tile,.empty,.dropzone,.chat-composer,.chat-panel,.bubble,.login-card{border-radius:var(--r-sheet)}.drawer{border-radius:var(--r-sheet) 0 0 var(--r-sheet)}.avatar,.skel,.st,.mono-label,.att-cell,.auth-motif i,.progress-cells>i,.legend i{border-radius:var(--r-mark)}.blueprint>.corner{display:none}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-body);line-height:1.55;accent-color:var(--color-accent);caret-color:var(--color-accent);font-synthesis:none}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;margin:0}a{color:var(--color-accent-700)}a:hover{color:var(--color-accent)}:focus{outline:none}:focus-visible{outline:2px solid var(--mark);outline-offset:3px;border-radius:var(--r-mark)}::selection{background:var(--color-accent);color:var(--color-white)}.mono{font-family:var(--font-mono)}.text-muted{color:var(--ink-55)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.blueprint{position:relative;border:1px solid var(--color-divider)}.blueprint>.corner{position:absolute;width:9px;height:9px;color:var(--color-accent-300);pointer-events:none}.blueprint>.corner:before,.blueprint>.corner:after{content:"";position:absolute;background:currentColor}.blueprint>.corner:before{left:5px;top:0;width:1px;height:100%}.blueprint>.corner:after{top:5px;left:0;width:100%;height:1px}.blueprint>.corner.tl{top:-6px;left:-6px}.blueprint>.corner.tr{top:-6px;right:-6px}.blueprint>.corner.bl{bottom:-6px;left:-6px}.blueprint>.corner.br{bottom:-6px;right:-6px}.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;height:var(--control-md);align-items:center;justify-content:center;gap:7px;cursor:pointer;text-decoration:none;white-space:nowrap;font-family:var(--font-heading);font-weight:650;font-size:var(--text-btn);line-height:1;color:var(--color-text);border:1.5px solid var(--color-divider-strong);padding:0 16px;background:var(--color-surface);--btn-wipe: var(--color-accent-100);transition:transform var(--duration-press) var(--ease-standard),background var(--duration-state) var(--ease-standard),border-color var(--duration-state) var(--ease-standard)}.btn:before{content:"";position:absolute;z-index:-1;top:-2px;right:-30%;bottom:-2px;left:-30%;background:var(--btn-wipe);transform:skew(-19deg) translate(-101%);transition:transform var(--duration-expand) var(--ease-standard)}@media(hover:hover){.btn:hover:not(:disabled):before{transform:skew(-19deg) translate(0)}}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{cursor:default;color:var(--ink-40);background:var(--color-neutral-100);border-color:var(--color-divider);box-shadow:none}.btn-sm{height:var(--control-sm);padding:0 11px;font-size:var(--text-note);gap:5px}.btn-lg{height:var(--control-lg);padding:0 24px;font-size:var(--text-card)}.btn-icon{width:var(--control-md);padding:0}.btn-icon.btn-sm{width:var(--control-sm)}.btn-icon.btn-lg{width:var(--control-lg)}.btn-block{width:100%}.btn-primary{background:var(--color-accent);color:var(--color-white);border-color:var(--color-accent);--btn-wipe: var(--color-accent-600)}.btn-primary:disabled{color:var(--paper-75);background:var(--color-accent-300);border-color:var(--color-accent-300)}.btn-secondary:hover:not(:disabled){border-color:var(--color-accent-300);color:var(--color-accent-700)}.btn-ghost{border-color:transparent;background:transparent;color:var(--color-accent)}.btn-ghost:hover:not(:disabled){border-color:var(--color-accent-200)}.btn-ghost:disabled{background:transparent;border-color:transparent}.btn-danger{background:var(--color-surface);border-color:var(--color-fail);color:var(--color-fail);--btn-wipe: var(--color-fail-soft)}.shell{display:flex;min-height:100vh}aside.rail{width:var(--rail-width);flex:none;order:-1;border-right:1px solid var(--color-accent-900);display:flex;flex-direction:column;align-items:center;padding:16px 0 10px;gap:1px;background:var(--surface-dark);position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}aside.rail .logo{width:34px;height:34px;flex:none;margin-bottom:12px}aside.rail a,aside.rail button.rail-item{width:var(--rail-item-width);flex:none;padding:7px 0 6px;display:flex;flex-direction:column;align-items:center;gap:5px;text-decoration:none;color:var(--paper-60);border:1px solid transparent;background:transparent;cursor:pointer;font:inherit;transition:color var(--duration-state) ease-out,background var(--duration-state) ease-out}aside.rail a:hover,aside.rail button.rail-item:hover{background:var(--paper-25);color:var(--color-white)}aside.rail a.active{color:var(--color-white);background:var(--paper-25);border-color:transparent;box-shadow:inset 3px 0 0 var(--color-accent-400)}aside.rail a.dashed{border:1px dashed var(--paper-25)}aside.rail a.dashed:hover{border-color:var(--color-accent-300)}aside.rail .rule{background:var(--paper-25)}aside.rail a span,aside.rail button.rail-item span{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:var(--track-tight);text-transform:none}aside.rail .rule{width:52px;height:1px;flex:none;background:var(--paper-25);margin:5px 0}aside.rail .spacer{margin-top:auto}@media(max-width:760px){.shell{flex-direction:column}aside.rail{width:100%;height:auto;overflow-y:visible;position:static;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:2px;padding:6px 4px;border-right:none;border-bottom:1px solid var(--color-divider)}aside.rail .logo{margin:0 8px 0 4px;align-self:center}aside.rail a,aside.rail button.rail-item{width:auto;min-height:var(--touch-min);padding:6px 10px;gap:4px}aside.rail a span,aside.rail button.rail-item span{font-size:var(--text-label-lg)}aside.rail .rule{display:none}aside.rail .spacer{margin-top:0}header.top{padding:12px var(--pad-page-mobile);gap:12px}header.top .right{flex-wrap:wrap;margin-left:0;width:100%;gap:10px}header.top .right .select{min-width:140px}.work{padding:16px var(--pad-page-mobile) 20px}.week-meta,.header-subline,.settings .body{padding-left:var(--pad-page-mobile);padding-right:var(--pad-page-mobile)}.list-editor .row{flex-wrap:wrap}.list-editor .row .field{flex:1 1 100%}}main.stage{flex:1;display:flex;flex-direction:column;min-width:0}header.top{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:22px var(--pad-page);border-bottom:1px solid var(--color-divider);background:var(--color-surface)}header.top .crumb{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-wide);text-transform:none;color:var(--color-accent)}header.top h1{font-size:var(--text-h1);font-weight:800;font-stretch:78%;letter-spacing:-.014em;margin:6px 0 0;line-height:.98}header.top .right{margin-left:auto;display:flex;align-items:center;gap:14px}header.top .right .actions,header.top .right .trailing{display:flex;align-items:center;flex-wrap:wrap;gap:inherit}header.top .right .actions{order:-1}header.top .right .trailing{order:1}header.top .avatar{width:32px;height:32px;background:var(--color-accent-100);border:1px solid var(--color-divider);display:grid;place-items:center;font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--color-accent-700)}header.top .who{line-height:1.2}header.top .who .name{font-size:var(--text-btn);font-weight:500}header.top .who .id{font-family:var(--font-mono);font-size:var(--text-label);color:var(--ink-45)}.work{flex:1;padding:28px var(--pad-page) 40px;display:flex;flex-direction:column;gap:22px}.guard{min-height:60vh;display:grid;place-items:center;padding:24px}.banner{border:1px solid var(--color-accent);background:var(--color-accent-100);color:var(--color-accent-700);padding:10px 14px;font-size:var(--text-btn)}.week-meta{padding:14px var(--pad-page) 0;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.week-meta-rule{flex:1;height:1px;min-width:24px;background:var(--color-divider)}.panel{border:1px solid var(--color-divider-strong);padding:22px 24px;position:relative;background:var(--color-surface)}.plabel{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-wide);text-transform:none;color:var(--color-accent);margin-bottom:10px}.plabel.muted{color:var(--ink-45)}.panel>.plabel{display:flex;align-items:center;gap:9px;margin-bottom:14px}.panel>.plabel:before{content:"";flex:none;width:19px;height:10px;background:var(--mark);clip-path:var(--blade)}.panel.dark,aside.rail,.overlay .drawer-foot.on-dark{--fg: var(--color-white);--fg-2: var(--on-deep-2);--hair: var(--paper-25);--mark: var(--color-cyan)}.panel h2{font-size:var(--text-h2);font-weight:800;font-stretch:82%;letter-spacing:-.012em;line-height:1.02;text-wrap:balance}.panel h3{font-size:var(--text-h3);font-weight:650;font-stretch:90%;letter-spacing:-.008em}.panel>p,.drawer-section>p{max-width:76ch}.panel-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.panel-head .push{margin-left:auto}.mono-label{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-45)}.mono-label.accent{color:var(--color-accent-700)}.stat .k{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-45)}.stat .v{font-family:var(--font-heading);font-weight:700;font-size:var(--text-h2);line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-sm .v{font-size:var(--text-h3)}.stat-dark .k{color:var(--color-accent-300)}.stats{margin-left:auto;display:flex;flex-wrap:wrap;gap:28px;text-align:right}@media(max-width:760px){.stats{margin-left:0;width:100%;text-align:left;gap:16px}}.stats.funnel{margin-left:0;width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:20px 18px;text-align:left}.funnel-step{display:flex;flex-direction:column;gap:8px}.funnel-track{display:block;height:3px;background:var(--color-neutral-200)}.funnel-track i{display:block;height:3px;background:var(--color-accent)}.progress-scroll{overflow-x:auto}.progress-cells{display:grid;grid-template-columns:repeat(var(--cells, 28),1fr);gap:2px;margin:14px 0 8px;min-width:420px}.progress-cells>i{height:var(--strip-cell-height);display:block;background:var(--color-neutral-200)}.progress-cells>i.done{background:var(--color-accent-700)}.progress-cells>i.gate{background:var(--color-accent-200);border:2px solid var(--color-accent-700)}.progress-cells>i.now{background:var(--color-accent-400);outline:2px solid var(--color-accent-900);outline-offset:1px}.progress-cells>i.gate-locked{background:transparent;border:2px dashed var(--color-neutral-400)}.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-divider)}.legend span{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-55)}.legend i{width:12px;height:9px;display:block;background:var(--color-neutral-200)}.legend i.done{background:var(--color-accent-700)}.legend i.now{background:var(--color-accent-400)}.legend i.gate{background:var(--color-accent-200);border:1.5px solid var(--color-accent-700)}.legend i.gate-locked{background:transparent;border:1.5px dashed var(--color-neutral-400)}.tasklist{border-top:1px solid var(--color-divider)}.tasklist .trow{display:grid;grid-template-columns:20px 1fr auto auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--color-divider)}.tasklist .trow:hover{background:var(--color-accent-100)}.tasklist .trow.now{background:var(--color-accent-100);box-shadow:inset 3px 0 0 var(--color-accent);padding-left:12px}.tasklist a.trow{color:inherit;text-decoration:none;transition:background var(--duration-press) ease-out}.tasklist .trow.now .ttitle{font-weight:600}.tasklist .trow.todo .ttitle{color:var(--ink-75)}.tasklist .box{width:15px;height:15px;display:block;flex:none;border:1.5px solid var(--color-neutral-400)}.tasklist .box.done{background:var(--color-pass);border-color:var(--color-pass)}.tasklist .box.now{border:2px solid var(--color-accent)}.tasklist .day{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-45)}.st{font-family:var(--font-mono);font-size:var(--text-label);font-weight:500;letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--ink-50)}.st.gated{color:var(--color-pass)}.st.now{color:var(--color-accent)}.panel.dark{background:var(--surface-dark);color:var(--color-white);border-color:var(--color-accent-900)}.panel.dark .plabel{color:var(--color-accent-300)}.panel.dark p{color:var(--paper-75);font-size:var(--text-btn);margin:0 0 14px}.panel.dark h3{font-size:var(--text-h2);font-weight:700;letter-spacing:-.02em;line-height:1.05;margin-bottom:4px}.panel.dark .btn{background:var(--color-white);color:var(--color-accent-900);border-color:var(--color-white);width:100%}.panel.dark .btn:hover{background:var(--color-accent-200);border-color:var(--color-accent-200)}.gate-stats{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:14px}@media(max-width:760px){.gate-stats{gap:14px}}.gate-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0 4px}.gate-start{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:18px}.gate-blocked{margin:0;padding:10px 14px;background:var(--color-warn-soft);border-left:3px solid var(--color-warn);color:var(--color-warn);font-size:var(--text-btn);line-height:1.5;max-width:62ch}.readiness-head{margin-bottom:0}.panel>.plabel.readiness-head:before{display:none}.readiness{display:grid;grid-template-columns:repeat(var(--criteria, 5),1fr);gap:3px;margin:6px 0 16px}.readiness i{height:6px;display:block;background:var(--paper-25)}.readiness i.met{background:var(--color-white)}.activity .arows{list-style:none;margin:0;padding:0}.activity .arow{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--color-divider);font-size:var(--text-btn)}.activity .arow:last-child{border-bottom:none}.activity .when{font-family:var(--font-mono);font-size:var(--text-label);color:var(--ink-55);width:60px;flex:none;padding-top:2px}.kanban{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;align-items:start}@media(max-width:1000px){.kanban{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.kanban{grid-template-columns:1fr}}.kcol .khead{display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:2px solid var(--color-neutral-400)}.kcol .khead.building{border-color:var(--color-accent)}.kcol .khead.gated{border-color:var(--color-accent-900)}.kcol .khead span{font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track-wide);text-transform:none}.kcol .khead .count{color:var(--ink-45);letter-spacing:0}.kcol .khead.building span{color:var(--color-accent-700)}.kcol .khead.gated span{color:var(--color-accent-900)}.kcol .khead.building .count,.kcol .khead.gated .count{color:var(--ink-45)}.kcol .cards{display:flex;flex-direction:column;gap:12px;padding-top:12px}.kcard{border:1px solid var(--color-divider);padding:15px 15px 14px;display:flex;flex-direction:column;gap:8px;position:relative;background:var(--color-surface);box-shadow:var(--elevation-raised);transition:border-color var(--duration-state) ease-out,transform var(--duration-press) ease-out}.kcard.clickable{cursor:pointer}.kcard:hover{border-color:var(--color-accent-300)}.kcard.clickable:active{transform:scale(.995)}.kcard .kk{font-family:var(--font-mono);font-size:var(--text-kicker);letter-spacing:var(--track);text-transform:none;color:var(--ink-45)}.kcard .kk.accent{color:var(--color-accent-700)}.kcard.selected{border-color:var(--color-accent)}.kcard-empty{border-style:dashed;border-color:var(--color-neutral-400);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-tight);text-transform:none;color:var(--ink-55)}.kcard .kt{font-size:var(--text-card);line-height:1.35;font-weight:500}.kcard .km{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-tight);text-transform:none;color:var(--ink-50)}.kcard.current{background:var(--color-accent-100);border-color:var(--color-accent-300)}.kcard.current .kk{color:var(--color-accent-700)}.kcard.dark{background:var(--color-accent-900);color:var(--color-white);border-color:var(--color-accent-900)}.kcard.dark .kk{color:var(--color-accent-300)}.kcard.dark .km{color:var(--paper-60)}.kbar{height:4px;background:var(--color-accent-200);margin-top:2px}.kbar i{display:block;height:4px;background:var(--color-accent)}.apps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:900px){.apps-grid{grid-template-columns:repeat(2,1fr)}}.app-tile{border:1px solid var(--color-divider);padding:18px 16px;text-decoration:none;color:var(--color-text);display:flex;flex-direction:column;gap:11px;position:relative;min-height:108px;background:var(--color-surface);box-shadow:var(--elevation-raised);transition:background var(--duration-state) ease-out,border-color var(--duration-state) ease-out,transform var(--duration-press) ease-out}.app-tile:hover{background:var(--color-accent-100);border-color:var(--color-accent-300);color:var(--color-text);transform:translateY(-2px)}.app-tile:active{transform:translateY(0)}.app-tile .aname{font-family:var(--font-heading);font-weight:600;font-size:var(--text-tile)}.app-tile.soon{border-style:dashed;border-color:var(--color-neutral-400);background:var(--color-neutral-100);box-shadow:none;color:var(--ink-50);pointer-events:none}.app-tile.slot{border-style:dashed;border-color:var(--color-neutral-200);background:transparent;box-shadow:none;color:var(--ink-40);align-items:center;justify-content:center;pointer-events:none}.app-tile.slot span{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none}.settings{display:grid;grid-template-columns:210px 1fr;flex:1}@media(max-width:760px){.settings{grid-template-columns:minmax(0,1fr)}}.settings nav{border-right:1px solid var(--color-divider);padding:18px 0}@media(max-width:760px){.settings nav{border-right:none;border-bottom:1px solid var(--color-divider);display:flex}}.settings nav a{display:block;padding:10px 22px;font-size:var(--text-sm);text-decoration:none;color:var(--color-text);border-left:2px solid transparent}.settings nav a.active{color:var(--color-accent-700);background:var(--color-accent-100);border-left-color:var(--color-accent)}.settings nav a:hover{background:var(--color-accent-100);color:var(--color-accent-700)}.settings .body{background:var(--color-surface);padding:22px var(--pad-page);display:flex;flex-direction:column;gap:22px;min-width:0}.sec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:14px}.sec-head h2{font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track-wide);text-transform:none;font-weight:500;color:var(--ink-50)}.sec-head .rule{flex:1;height:1px;background:var(--color-divider)}.field{margin-bottom:14px}.field label{display:block;font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track);text-transform:none;color:var(--ink-50);margin-bottom:5px}.field-label{display:flex;align-items:baseline;gap:5px}.field-required{font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track);text-transform:none;color:var(--ink-40);margin-bottom:5px}.input,.select,.textarea{width:100%;border:1px solid var(--color-divider-strong);padding:9px 13px;font-size:var(--text-sm);font-family:var(--font-body);color:var(--color-text);background:var(--color-white);min-height:var(--control-md);transition:border-color var(--duration-state) ease-out,box-shadow var(--duration-state) ease-out}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-100)}.textarea{min-height:96px;resize:vertical}.input[type=checkbox],.input[type=radio]{width:20px;height:20px;min-height:0;padding:0;border:0;accent-color:var(--color-accent);cursor:pointer}.field:has(>.input[type=checkbox]){display:flex;align-items:center;gap:9px;min-height:var(--control-md)}.field:has(>.input[type=checkbox]) .field-label{order:2}.field:has(>.input[type=checkbox]) label{margin-bottom:0;cursor:pointer}.input[type=checkbox]:focus-visible,.input[type=radio]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;box-shadow:none}.input.locked,.select.locked,.textarea.locked{color:var(--ink-55);background:var(--color-neutral-100)}.input:disabled,.select:disabled,.textarea:disabled{color:var(--ink-40);background:var(--color-neutral-100);border-color:var(--color-divider);cursor:not-allowed}.field-error .input,.field-error .select,.field-error .textarea{border-color:var(--color-fail);border-width:2px;background:var(--color-fail-soft)}.field-error .input:focus-visible,.field-error .select:focus-visible,.field-error .textarea:focus-visible{border-color:var(--color-fail);box-shadow:0 0 0 3px var(--color-fail-soft)}.field input[type=file],.dropzone input[type=file]{display:block;width:100%;border:1px solid var(--color-divider);padding:6px 6px 6px 0;font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track-tight);color:var(--ink-55);background:var(--color-white);min-height:var(--control-md);cursor:pointer}.field input[type=file]::file-selector-button,.dropzone input[type=file]::file-selector-button{margin-right:12px;cursor:pointer;font-family:var(--font-heading);font-weight:600;font-size:var(--text-btn);line-height:1.2;letter-spacing:normal;color:var(--color-text);border:0;border-right:1px solid var(--color-divider);padding:9px 16px;background:transparent}.field input[type=file]:hover::file-selector-button,.field input[type=file]:focus-visible::file-selector-button,.dropzone input[type=file]:hover::file-selector-button,.dropzone input[type=file]:focus-visible::file-selector-button{background:var(--color-accent-100)}.field-error input[type=file]{border-color:var(--color-fail);border-width:2px}.field-hint{font-size:var(--text-note);color:var(--ink-55);margin-top:4px}.field-msg{font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track-tight);color:var(--color-fail);margin-top:6px;padding-left:9px;border-left:2px solid var(--color-fail)}.form-error{border:1px solid var(--color-fail);border-left-width:3px;background:var(--color-fail-soft);color:var(--color-fail);padding:11px 14px;font-size:var(--text-btn);margin-bottom:14px}.table-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table-scroll .table{min-width:var(--table-min-width)}.table th,.table td{white-space:nowrap}.table td.cell-wrap{white-space:normal}.table td.cell-nowrap,.table td .btn,.table td .mono-label{white-space:nowrap;overflow-wrap:normal;word-break:normal}.table th{text-align:left;font-family:var(--font-mono);font-size:var(--text-th);font-weight:500;letter-spacing:var(--track);text-transform:none;color:var(--ink-50);padding:10px 12px;background:var(--color-neutral-100);border-bottom:1px solid var(--color-divider)}.table td{padding:12px;border-bottom:1px solid var(--ink-08);font-variant-numeric:tabular-nums}.table tbody tr:hover{background:var(--color-accent-100)}.table-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-bottom:12px}.table-toolbar>.input[type=search]{margin-left:auto;width:220px;height:var(--control-sm);min-height:0;padding:0 11px;font-size:var(--text-note);align-self:center}.table-toolbar .filters,.table-toolbar .log-filters{margin:0}.table-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.table th .th-sort{all:unset;display:inline-flex;align-items:center;gap:4px;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}.table th .th-sort span{font-size:8px;opacity:0;transition:opacity .12s}.table th .th-sort:hover span,.table th .th-sort:focus-visible span{opacity:.5}.table th .th-sort.active,.table th .th-sort.active span{color:var(--color-text);opacity:1}.table th .th-sort:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.table tr.clickable{cursor:pointer}.table tr.clickable:hover{background:var(--color-accent-100)}.table tr.clickable:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px;background:var(--color-accent-100)}.pager{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-top:12px}.pager .mono-label{margin-right:auto}.table-foot>.pager{margin-left:auto;padding-top:0}.table-scroll:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.calendar-grid thead th:first-child,.calendar-grid th[scope=row]{position:sticky;left:0;min-width:208px;box-shadow:1px 0 0 var(--color-divider)}.calendar-grid thead th:first-child{z-index:2}.calendar-grid th[scope=row]{z-index:1;padding:11px 14px 11px 12px;vertical-align:top;white-space:normal;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;letter-spacing:normal;text-transform:none;color:var(--color-text);background:var(--color-surface);border-bottom:1px solid var(--ink-08)}.calendar-grid tbody tr:hover th[scope=row]{background:var(--color-accent-100)}.calendar-grid .cal-name{display:block;line-height:1.3}.calendar-grid .cal-flags{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:5px}.calendar-grid td{min-width:104px;padding:11px 10px;text-align:center;vertical-align:top;white-space:normal}.calendar-grid td+td,.calendar-grid thead th+th{border-left:1px solid var(--ink-08)}.calendar-grid thead th.cal-now{color:var(--color-accent-700);background:var(--color-accent-100);box-shadow:inset 0 -2px 0 var(--color-accent)}.calendar-grid td.cal-now{background:var(--color-accent-100)}.calendar-grid tbody tr:hover td.cal-now{background:var(--color-accent-200)}.calendar-grid td:empty{background-image:radial-gradient(var(--color-neutral-200) 1px,transparent 1px);background-position:center;background-size:8px 8px}.calendar-grid td .mono-label{display:inline-block;padding:4px 8px;color:var(--color-accent-700);background:var(--color-accent-100);border:1px solid var(--color-accent-200)}.calendar-grid td.cal-now .mono-label,.calendar-grid td.cal-now .btn{background:var(--color-surface);border-color:var(--color-accent-300)}.calendar-grid td .btn{height:var(--control-sm);padding:0 10px;font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-tight);text-transform:none;background:var(--color-accent-100);border-color:var(--color-accent-200);color:var(--color-accent-700)}.calendar-grid td .st{display:block;margin-top:5px}.auth-split{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.auth-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:40px;padding:46px 48px;background:var(--surface-dark)}.auth-brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,var(--paper-25) 1px,transparent 1px),linear-gradient(to bottom,var(--paper-25) 1px,transparent 1px);background-size:56px 56px;opacity:.35}.auth-icon{position:relative;width:44px;height:44px}.auth-motif{position:relative;display:grid;grid-template-columns:repeat(8,1fr);gap:8px;width:min(430px,100%);margin-block:auto}.auth-motif i{aspect-ratio:1;border:1px solid var(--paper-25)}.auth-motif i.done{background:var(--color-accent-400);border-color:var(--color-accent-400)}.auth-motif i.now{background:var(--color-white);border-color:var(--color-white)}.auth-form{display:flex;align-items:center;justify-content:center;padding:48px 28px;background:var(--color-surface)}.login-card{width:min(384px,100%)}.login-card img.mark{height:24px;width:auto;margin-bottom:26px}.login-card .plabel{margin-bottom:18px}.login-note{margin:14px 0 0;font-size:var(--text-note);color:var(--ink-55)}@media(max-width:900px){.auth-split{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.auth-brand{flex-direction:row;align-items:center;gap:22px;padding:18px 20px}.auth-brand:before{background-size:38px 38px}.auth-icon{width:34px;height:34px}.auth-motif{grid-template-columns:repeat(20,1fr);gap:4px;width:auto;margin-block:0;flex:1}.auth-form{padding:34px 20px;align-items:flex-start}}@media(max-width:760px){.login-card a{min-height:var(--touch-min);display:inline-flex;align-items:center}}.chat{display:flex;flex-direction:column;gap:14px;max-width:640px}.msg{display:flex;flex-direction:column;gap:4px;max-width:78%}.msg .who{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-45)}.msg .bubble{padding:10px 14px;font-size:var(--text-card);line-height:1.5}.msg .bubble p,.msg .bubble ul,.msg .bubble ol,.msg .bubble pre{margin:8px 0}.msg .bubble>:first-child{margin-top:0}.msg .bubble>:last-child{margin-bottom:0}.msg .bubble ul,.msg .bubble ol{padding-left:18px}.msg .bubble code{font-family:var(--font-mono);font-size:var(--text-note)}.msg .bubble pre{padding:8px 10px;overflow-x:auto;background:var(--paper-60);border:1px solid var(--color-divider)}.msg.student .bubble pre{background:var(--paper-25)}.msg .bubble a{color:inherit}.msg .bubble h1,.msg .bubble h2,.msg .bubble h3,.msg .bubble h4,.msg .bubble h5,.msg .bubble h6{margin:10px 0 6px;font-weight:700}.msg .bubble h1{font-size:var(--text-h3)}.msg .bubble h2{font-size:var(--text-tile)}.msg .bubble h3{font-size:var(--text-card)}.msg .bubble h4,.msg .bubble h5,.msg .bubble h6{font-size:var(--text-sm)}.msg .bubble hr{margin:10px 0;border:0;border-top:1px solid var(--color-divider)}.msg.student{align-self:flex-end;align-items:flex-end}.msg.student .bubble{background:var(--color-accent);color:var(--color-white)}.msg.tutor .bubble{background:var(--color-neutral-100);border:1px solid var(--color-divider)}.msg.interrupted .bubble{border:1px dashed var(--color-neutral-400)}.chat-input{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:0;max-width:640px}.chat-input .input,.chat-input .textarea{flex:1;resize:none}.chat-panel{max-width:680px}.chat-composer{max-width:680px;margin-top:-1px;padding:14px 16px 16px;background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--elevation-raised)}.chat-interrupted{display:flex;align-items:center;gap:12px;margin-top:4px}.chat-banner{border:1px dashed var(--color-neutral-400);padding:10px 12px;margin-bottom:12px;font-size:var(--text-btn);color:var(--ink-70);max-width:680px}.chat-quota{margin-top:8px;font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-45)}.tutor-layout{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:start}.tutor-sessions{display:flex;flex-direction:column;gap:12px}.tutor-thread{min-width:0}.tutor-sessions .empty{padding:20px 15px;text-align:left}.tutor-sessions .empty:before{margin:0 0 13px}.tutor-sessions .empty .plabel{margin-bottom:4px}.tutor-sessions .empty h3{font-size:var(--text-card);line-height:1.35;margin-top:0}.tutor-sessions .empty p{margin:6px 0 0;max-width:none;font-size:var(--text-note);line-height:1.5}.chat-error{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px dashed var(--color-neutral-400);padding:10px 12px;margin-bottom:12px;font-size:var(--text-btn);color:var(--ink-70);max-width:680px}.tutor-sessions-close{display:none;align-self:flex-end}.session-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.session-item{width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--color-divider);border-left:2px solid transparent;padding:10px 8px;display:flex;flex-direction:column;gap:4px;cursor:pointer;font-family:var(--font-body);color:var(--color-text)}.session-item:hover{background:var(--color-accent-100)}.session-item[aria-current=true]{background:var(--color-accent-100);border-left-color:var(--color-accent)}.session-title{font-size:var(--text-sm)}.tutor-toggle{display:none}@media(max-width:760px){.tutor-layout{grid-template-columns:1fr}.tutor-sessions{display:none}.tutor-sessions.open{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;overflow-y:auto}.tutor-sessions-close,.tutor-toggle{display:inline-flex}}.segmented{display:inline-flex;overflow:hidden;border:1px solid var(--color-divider-strong)}.segmented .seg{min-height:var(--control-md);font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track);text-transform:none;padding:8px 14px;background:transparent;border:none;border-right:1px solid var(--color-divider);color:var(--color-text);cursor:pointer}.segmented .seg:last-child{border-right:none}.segmented .seg.active{background:var(--color-accent);color:var(--color-white)}.segmented .seg:disabled{color:var(--ink-40);cursor:default}.tabs{display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;border-bottom:1px solid var(--color-divider);background:var(--color-surface);padding-inline:8px}.tabs .tab{position:relative;min-height:var(--touch-min);flex:none;white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track);text-transform:none;padding:10px 14px;background:transparent;border:none;margin-bottom:-1px;color:var(--ink-55);cursor:pointer;transition:color var(--duration-state) ease-out}.tabs .tab:after{content:"";position:absolute;left:6px;right:6px;bottom:0;height:2px;background:var(--color-accent);transform:scaleX(0);transition:transform var(--duration-state) var(--ease-standard)}.tabs .tab:hover{color:var(--color-text)}.tabs .tab:hover:after{background:var(--color-accent-300);transform:scaleX(1)}.tabs .tab.active{color:var(--color-accent-700)}.tabs .tab.active:after,.tabs .tab.active:hover:after{background:var(--color-accent);transform:scaleX(1)}.tabs .tab .count{margin-left:6px;color:var(--ink-45)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;justify-content:flex-end;z-index:20;animation:overlay-in var(--duration-state) var(--ease-standard)}.overlay.center{align-items:center;justify-content:center;z-index:25}@keyframes overlay-in{0%{opacity:0}}.drawer{width:var(--drawer-width);max-width:100%;height:100%;background:var(--color-surface);border-left:1px solid var(--color-divider);box-shadow:var(--elevation-overlay);display:flex;flex-direction:column;animation:drawer-in var(--duration-expand) var(--ease-standard)}.drawer.drawer-lg{width:640px}@keyframes drawer-in{0%{transform:translate(100%)}}@media(max-width:760px){.drawer{width:100%;border-left:0;align-self:flex-start;height:auto;max-height:100%}}.drawer-head,.dialog-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:12px;padding:16px 16px 16px 22px;background:var(--color-surface);border-bottom:1px solid var(--color-divider)}.drawer-head h2,.dialog-head h2{font-size:var(--text-h3);font-weight:700;letter-spacing:-.015em;margin-right:auto}.drawer-head .btn-ghost,.dialog-head .btn-ghost{flex:none;width:var(--control-md);padding:0;color:var(--ink-55);font-size:var(--text-sm)}.drawer-head .btn-ghost:hover,.dialog-head .btn-ghost:hover{color:var(--color-text)}.drawer-body,.dialog-body{padding:20px 22px;overflow-y:auto;flex:1}.drawer-body{display:flex;flex-direction:column;gap:20px}.drawer-section{display:flex;flex-direction:column;gap:8px}.drawer-section+.drawer-section{padding-top:18px;border-top:1px solid var(--ink-08)}.drawer-section p{font-size:var(--text-btn);line-height:1.5}.review-comments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.review-comments li{border-left:2px solid var(--color-accent-700);padding:4px 0 4px 12px}.review-comments p{margin:4px 0 0;font-size:var(--text-btn);line-height:1.5}.review-history{margin-top:12px;border-top:1px solid var(--color-divider);padding-top:10px}.review-history summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--text-label-lg);letter-spacing:var(--track);text-transform:none;color:var(--ink-60)}.review-history-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.attempt>summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:var(--text-btn);line-height:1.5}.attempt-body{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-left:12px;border-left:1px solid var(--color-divider)}.drawer-foot,.dialog-foot{position:sticky;bottom:0;padding:14px 22px;background:var(--color-neutral-100);border-top:1px solid var(--color-divider);display:flex;align-items:center;flex-wrap:wrap;gap:10px;justify-content:flex-end}.drawer-foot>.push,.dialog-foot>.push{margin-right:auto}.dialog{width:480px;max-width:calc(100% - 32px);max-height:calc(100% - 32px);background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--elevation-overlay);display:flex;flex-direction:column;animation:dialog-in var(--duration-state) var(--ease-standard)}.dialog:focus-visible,.drawer:focus-visible{outline:none}@keyframes dialog-in{0%{opacity:0;transform:scale(.97)}}.dialog.dialog-sm{width:420px}.dialog.dialog-lg{width:720px}.dialog.dialog-wide{width:1100px}@media(max-width:760px){.dialog.dialog-mobile-full{width:100%;max-width:100%;height:100%;max-height:100%;border-left:0;border-right:0}}.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:30}.outcome-reveal{animation:outcome-in var(--duration-draw) var(--ease-standard)}.outcome-reveal h2{animation:outcome-in var(--duration-draw) var(--ease-standard) var(--stagger) backwards}@keyframes outcome-in{0%{opacity:0;transform:translateY(6px)}}.toast{display:flex;align-items:center;gap:14px;min-width:260px;max-width:420px;padding:12px 12px 12px 15px;background:var(--color-accent-900);color:var(--color-white);border:1px solid var(--color-accent-900);border-left:3px solid var(--color-accent-400);box-shadow:var(--elevation-overlay);font-size:var(--text-btn);line-height:1.4;animation:toast-in var(--duration-state) var(--ease-standard)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.toast span{margin-right:auto}.toast.success{border-left-color:var(--color-pass)}.toast.error{border-left-color:var(--color-fail)}.toast button{flex:none;align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:1px solid var(--paper-25);color:inherit;cursor:pointer;font-size:var(--text-note);line-height:1;transition:background var(--duration-press) ease-out}.toast button:hover{background:var(--paper-25)}.empty{border:1px dashed var(--color-neutral-400);background:var(--color-neutral-100);padding:30px 24px 34px;text-align:center}.empty:before{content:"";display:block;width:22px;height:22px;margin:0 auto 16px;border:1px dashed var(--color-neutral-400);transform:rotate(45deg)}.empty-error:before{border-style:solid;border-color:var(--color-fail)}.empty h3{font-size:var(--text-h3);margin-top:2px}.empty p{color:var(--ink-70);font-size:var(--text-btn);max-width:48ch;margin:8px auto 0}.empty-error{border:1px solid var(--color-fail);background:var(--color-fail-soft)}.empty-error .plabel{color:var(--color-fail)}.empty-action{margin-top:14px}.empty.not-found{width:min(480px,100%);align-self:center;margin:6vh auto 0;padding:34px 24px 30px}.empty.not-found .plabel{font-size:var(--text-h3);letter-spacing:var(--track);color:var(--ink-45)}.skeleton{display:flex;flex-direction:column;gap:10px}.skel{display:block;background:var(--color-neutral-200);animation:skel-pulse 1.4s ease-in-out infinite}.skel-sm{height:12px}.skel-md{height:26px}.skel-lg{height:96px}.skel:nth-child(2n){width:72%}@keyframes skel-pulse{0%,to{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.skel{animation:none}}.table-skeleton .skel{height:11px;width:70%}.table-skeleton td{padding:15px 12px}.table-skeleton td:first-child .skel{width:88%}.table-skeleton td:nth-child(3n) .skel{width:46%}.table-skeleton td:nth-child(4n) .skel{width:60%}.table-skeleton tbody tr:hover{background:transparent}.work.launcher{max-width:940px}.apps-group .mono-label{display:flex;align-items:center;gap:9px;letter-spacing:var(--track-wide);margin-bottom:12px;color:var(--color-accent)}.apps-group .mono-label:before{content:"";flex:none;width:14px;height:2px;background:currentcolor}.apps-note{margin:4px 0 0;font-size:var(--text-btn);line-height:1.6;color:var(--ink-70)}.dash-cols{display:grid;grid-template-columns:1.55fr 1fr;align-items:start;gap:18px}.dash-side{display:flex;flex-direction:column;gap:18px}@media(min-width:901px){.dash-cols>.this-module{order:1}.dash-cols>.dash-side{order:2}}@media(max-width:900px){.dash-cols{grid-template-columns:1fr}}.inline-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:2px solid var(--color-accent-700);font-size:var(--text-btn)}.prof-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}@media(max-width:700px){.prof-grid{grid-template-columns:1fr}}.sec-row{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-end}.sec-row .field{min-width:200px;margin-bottom:0}.input.masked{letter-spacing:.2em}.fees-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;align-items:start}@media(max-width:800px){.fees-grid{grid-template-columns:1fr}}.fee-due{color:var(--color-accent-700);font-weight:500}.fee-overdue{color:var(--color-accent);font-weight:500}.next-pay .amount{font-family:var(--font-heading);font-weight:600;font-size:var(--text-amount);line-height:1;margin-bottom:4px}.next-pay .caption{font-size:var(--text-btn);color:var(--ink-70);margin-bottom:14px}.next-pay p{margin:0;font-size:var(--text-btn)}.log-filters{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.log-filters .field{margin:0}.log-filters .input{width:140px}.log-totals{margin-left:0;margin-top:14px;text-align:left}.log-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}.st.accent{color:var(--color-warn)}.st.danger{color:var(--color-fail)}.filters{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.filters .field{margin:0}.filters .input:not([type=checkbox]):not([type=radio]),.filters .select{min-width:150px}.filters .toggle{display:flex;align-items:center;gap:6px;font-size:var(--text-btn);padding-bottom:8px}.steps{list-style:none;display:flex;gap:20px;margin:0 0 14px;padding:0}.steps li.current .mono-label{color:var(--color-accent-700)}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:3px 16px;padding:12px 12px 13px 34px;border:0;transition:background var(--duration-state) ease-out}.timeline li:hover{background:var(--color-neutral-100)}.timeline li+li{border-top:1px solid var(--ink-08)}.timeline li:before{content:"";position:absolute;left:10px;top:0;bottom:0;width:1px;background:var(--color-accent-200)}.timeline li:first-child:before{top:18px}.timeline li:last-child:before{bottom:auto;height:18px}.timeline li:after{content:"";position:absolute;left:5px;top:14px;width:11px;height:11px;border-radius:50%;background:var(--color-bg);border:1.5px solid var(--color-divider-strong);transition:background var(--duration-state) var(--ease-standard),border-color var(--duration-state) var(--ease-standard)}.timeline li:last-child:after{background:var(--mark);border-color:var(--mark)}.timeline li>.mono-label:nth-child(2){grid-column:2;justify-self:end;color:var(--ink-45);font-variant-numeric:tabular-nums}.timeline li .text-muted{grid-column:1 / -1;font-size:var(--text-note)}.jsonview{margin:0;font-size:var(--text-btn)}.jsonview .jsonrow{display:flex;gap:12px;padding:5px 0;border-bottom:1px solid var(--ink-08)}.jsonview .jsonrow.changed{background:var(--color-accent-100)}.jsonview dt{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-45);width:180px;flex:none}.jsonview dd{margin:0;word-break:break-word}.jsonview-raw{margin:0;font-family:var(--font-mono);font-size:var(--text-note);white-space:pre-wrap}.rowcount{margin-right:auto}.pager-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pager-line .pager{margin-left:auto}.header-subline{display:flex;align-items:center;gap:10px;padding:10px var(--pad-page) 0}.student-subline{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-tight);color:var(--ink-45);margin-top:3px}.prof-grid dt{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-45);margin-bottom:4px}.prof-grid dd{margin:0;font-size:var(--text-sm)}.note-composer{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-top:14px}.note-composer .field{flex:1;margin:0}.gate-days{list-style:none;margin:0;padding:0}.gate-days li{padding:8px 0;border-bottom:1px solid var(--color-divider);font-size:var(--text-btn)}.gate-days li:last-child{border-bottom:none}.queue-stats{display:flex;gap:28px;flex-wrap:wrap}.queue-stat{text-decoration:none;color:inherit;border:1px solid transparent;padding:6px 8px}.queue-stat:hover{border-color:var(--color-accent-200);background:var(--color-accent-100)}.attention{list-style:none;margin:0;padding:0}.attention li{border-bottom:1px solid var(--paper-25)}.attention li:last-child{border-bottom:none}.attention a{display:flex;align-items:center;gap:12px;padding:8px 0;color:inherit;text-decoration:none}.attention a:hover{color:var(--color-white)}.attention .mono-label{color:inherit}.attention li.zero{color:var(--paper-25)}.attention li.zero .count{color:var(--paper-25);font-weight:400}.attention .count{margin-left:auto;font-family:var(--font-heading);font-weight:600;font-size:var(--text-tile);font-variant-numeric:tabular-nums}.filterbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px}.filterbar .field{margin-bottom:0;min-width:140px}.filterbar .btn{margin-bottom:2px}.steps{display:flex;flex-wrap:wrap;gap:18px;list-style:none;margin:0 0 16px;padding:0}.step{padding-bottom:4px;border-bottom:2px solid transparent}.step.active{border-bottom-color:var(--color-accent-700)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border:1px dashed var(--color-neutral-400);min-height:170px;padding:26px 20px;text-align:center;background:var(--color-neutral-100)}.dropzone label{font-size:var(--text-card);color:var(--ink-70);cursor:pointer}.dropzone input[type=file]{width:auto;max-width:100%;background:var(--color-white)}.dropzone.over{border-color:var(--color-accent);background:var(--color-accent-100)}.dropzone .filename{display:block;margin-top:10px;font-family:var(--font-mono);font-size:var(--text-label);color:var(--ink-70)}.import-summary{font-family:var(--font-mono);font-size:var(--text-th);letter-spacing:var(--track-tight);margin-bottom:12px}.problems{list-style:none;margin:0;padding:0}.problems li{font-family:var(--font-mono);font-size:var(--text-label);color:var(--color-accent)}.table tr:has(.problems) td{background:var(--color-accent-100)}.checkline{display:flex;align-items:center;gap:8px;font-size:var(--text-btn);margin:10px 0}.rowbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}.rowbar .push{margin-left:auto}.chip{display:inline-block;padding:2px 8px;border:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-tight);text-transform:none}.chip.suspended{border-style:dashed;border-color:var(--color-neutral-400);color:var(--ink-55)}.attendance-scroll{overflow-x:auto}.attendance-grid{border-collapse:collapse;width:100%}.attendance-grid th,.attendance-grid td{border:1px solid var(--color-divider);padding:2px;text-align:center;font-size:var(--text-note)}.attendance-grid th.who,.attendance-grid td.who{position:sticky;left:0;z-index:1;text-align:left;padding:4px 10px 4px 8px;white-space:nowrap;background:var(--color-surface);box-shadow:1px 0 0 var(--color-divider)}.attendance-grid th.weekend,.attendance-grid td.weekend{background:var(--color-neutral-100)}.att-cell{width:26px;height:26px;border:0;background:transparent;cursor:pointer;font-family:var(--font-mono);font-size:var(--text-label);color:var(--ink-70)}.att-cell.present{background:var(--color-accent-700);color:var(--color-white)}.att-cell.absent{background:var(--color-neutral-200)}.att-cell.defaulted{background:transparent;color:var(--ink-40);box-shadow:inset 0 0 0 1px var(--color-divider)}.att-cell:disabled{cursor:not-allowed;color:var(--ink-40)}.json-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:760px){.json-grid{grid-template-columns:1fr}}.json-view{font-family:var(--font-mono);font-size:var(--text-note);background:var(--color-neutral-100);padding:10px;margin:0;overflow-x:auto;white-space:pre}.json-line.changed{background:var(--color-accent-100)}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:900px){.editor-grid{grid-template-columns:1fr}}.list-editor{display:grid;gap:8px}.list-editor .row{display:flex;gap:8px;align-items:flex-end}.list-editor .row .field{flex:1;margin-bottom:0}.settings-nav{display:flex;flex-direction:column;border-right:1px solid var(--color-divider);padding:18px 0}@media(max-width:760px){.settings-nav{flex-direction:row;flex-wrap:wrap;padding:8px 0;border-right:none;border-bottom:1px solid var(--color-divider)}}.settings-nav button{display:block;text-align:left;padding:10px 22px;font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text);background:transparent;border:0;border-left:2px solid transparent;cursor:pointer}.settings-nav button[aria-selected=true]{color:var(--color-accent-700);background:var(--color-accent-100);border-left-color:var(--color-accent)}.walkthrough-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:18px}@media(max-width:900px){.walkthrough-grid{grid-template-columns:1fr}}.walkthrough-qmeta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px}.panel.dark .mono-label{color:var(--color-accent-300)}.walkthrough-controls{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:14px}.walkthrough-notice{margin:0 0 8px}div.walkthrough-notice{display:flex;align-items:center;gap:10px}.walkthrough-rules{margin:10px 0 14px;padding-left:18px;font-size:var(--text-sm);color:var(--ink-70)}.walkthrough-blockers{margin:0 0 14px;padding:0;list-style:none;display:grid;gap:4px}.walkthrough-transcript{margin-top:14px;border-top:1px solid var(--color-divider);padding-top:12px}.walkthrough-transcript-body{min-height:160px;padding:12px;border:1px solid var(--color-divider);background:var(--color-white);font-size:var(--text-body);line-height:1.6}.walkthrough-interim{margin-left:4px;color:var(--ink-45);font-style:italic}.walkthrough-placeholder{color:var(--ink-45)}.walkthrough-edit-hint{margin:0 0 8px;color:var(--ink-45);font-size:var(--text-sm)}.walkthrough-listen-hint{margin:8px 0 0;color:var(--ink-45);font-size:var(--text-sm)}.walkthrough-transcript-edit{min-height:160px;font-size:var(--text-body);line-height:1.6}.turn-diff mark{background:var(--color-accent-100);border-bottom:1px solid var(--color-accent-200);color:inherit}.evidence blockquote{margin:0 0 8px;padding-left:10px;border-left:2px solid var(--color-accent-300);color:var(--ink-70);font-size:var(--text-sm)}.flag-list{list-style:none;margin:0 0 8px;padding:0;color:var(--color-accent);font-size:var(--text-sm)}.turn-list,.checklist-results{list-style:none;margin:0;padding:0}.turn-list>li,.checklist-results>li{padding:10px 0;border-top:1px solid var(--color-divider);font-size:var(--text-sm)}.checklist-results>li{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 10px;padding:12px 0}.checklist-results>li .st{flex:none;min-width:52px}.checklist-results>li>p{width:100%;margin:2px 0 0;padding-left:62px;font-size:var(--text-note)}.turn-prompt{font-weight:500;margin:4px 0}.manual-grade{margin-top:12px;padding-left:12px;border-left:2px solid var(--color-accent)}.action-cell{display:flex;flex-wrap:wrap;gap:6px}.table tr:has(.gate-current) td{background:var(--color-accent-100)}.readiness-block .tasklist{margin-bottom:18px}.phase1-progress p{margin:8px 0 0;font-size:var(--text-btn);color:var(--ink-70)}.phase1-progress .step.active{border-bottom-color:var(--color-neutral-200);animation:phase1-step 1.4s ease-in-out infinite}@keyframes phase1-step{50%{border-bottom-color:var(--color-accent-700)}}@media(prefers-reduced-motion:reduce){.phase1-progress .step.active{animation:none;border-bottom-color:var(--color-accent-700)}}.phase1-results{list-style:none;margin:0 0 18px;padding:0;border-top:1px solid var(--color-divider)}.phase1-results>li{padding:11px 0;border-bottom:1px solid var(--color-divider)}.phase1-row{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:baseline;font-size:var(--text-btn)}.phase1-error{margin:4px 0 0 98px;padding-left:8px;border-left:2px solid var(--color-accent);font-size:var(--text-note);color:var(--ink-70)}@media(max-width:620px){.phase1-row{grid-template-columns:1fr}.phase1-error{margin-left:0}}.clone-failed{margin-bottom:18px;padding:12px 14px;border:1px solid var(--color-divider)}.clone-failed p{margin:6px 0 0;font-size:var(--text-btn)}.submit-blocked{margin-top:14px}.gate-description{margin:0 0 10px;font-size:var(--text-btn);color:var(--ink-70)}.panel.gate-nested{margin-top:18px}.gate-retry{margin:14px 0 0;font-size:var(--text-btn);color:var(--ink-70)}.gate-expired{margin-top:18px;padding:12px 14px;border:1px solid var(--color-divider)}.gate-expired h3{margin:0 0 6px}.gate-expired p{margin:0;font-size:var(--text-btn);color:var(--ink-70)}.cell-wrap,.msg .bubble,.empty h3{overflow-wrap:anywhere;word-break:break-word}.choices{display:flex;flex-direction:column;gap:10px;margin:0 0 14px;border:0;padding:0}.choices legend{padding:0}.choice{display:flex;align-items:flex-start;gap:8px}.choice .input{margin-top:3px}.choice-text{display:flex;flex-direction:column;gap:2px;font-size:var(--text-btn)}.mic-check{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-block:16px}.mic-check-transcript{min-height:64px;width:100%;padding:10px 12px;border:1px solid var(--color-divider);background:var(--color-white);color:var(--color-text);font-size:var(--text-sm);line-height:1.5}.mic-check-placeholder,.mic-check-interim{color:var(--ink-45)}.mic-check-hint{color:var(--ink-45);font-size:var(--text-note);margin-block-start:6px}.panel>.plabel:before{transform-origin:left center;animation:blade-strike var(--duration-expand) var(--ease-standard) both}@keyframes blade-strike{0%{scale:0 1}}.work>.panel{animation:settle var(--duration-expand) var(--ease-standard) both}.work>.panel:nth-child(2){animation-delay:var(--stagger)}.work>.panel:nth-child(3){animation-delay:calc(var(--stagger) * 2)}.work>.panel:nth-child(n+4){animation-delay:calc(var(--stagger) * 3)}@keyframes settle{0%{opacity:0;transform:translateY(6px)}}.table tbody tr,.tasklist .trow,.attention a,.session-item,.queue-stat{transition:background var(--duration-state) var(--ease-standard)}.kcard{transition:border-color var(--duration-state) var(--ease-standard),transform var(--duration-press) var(--ease-standard)}.kcard.clickable:hover{transform:translateY(-2px)}.kbar i,.readiness i,.funnel-track i{transition:width var(--duration-draw) var(--ease-standard)}.att-cell,.progress-cells>i,.timeline li:after{transition:background var(--duration-state) var(--ease-standard),border-color var(--duration-state) var(--ease-standard)}@supports (interpolate-size: allow-keywords){:root{interpolate-size:allow-keywords}details::details-content{block-size:0;overflow:hidden;transition:block-size var(--duration-expand) var(--ease-standard),content-visibility var(--duration-expand) allow-discrete}details[open]::details-content{block-size:auto}}/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-bg:var(--color-bg);--color-text:var(--color-text);--color-divider:var(--color-divider);--color-neutral-100:var(--color-neutral-100);--color-neutral-200:var(--color-neutral-200);--color-neutral-400:var(--color-neutral-400);--color-accent:var(--color-accent);--color-accent-100:var(--color-accent-100);--color-accent-200:var(--color-accent-200);--color-accent-300:var(--color-accent-300);--color-accent-400:var(--color-accent-400);--color-accent-600:var(--color-accent-600);--color-accent-700:var(--color-accent-700);--color-accent-900:var(--color-accent-900);--color-white:var(--color-white);--font-heading:var(--font-heading);--font-body:var(--font-body);--font-mono:var(--font-mono);--text-label:var(--text-label);--text-sm:var(--text-sm);--text-body:var(--text-body)}}@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.m-3{margin:calc(var(--spacing) * 3)}.m-4{margin:calc(var(--spacing) * 4)}.mt-3{margin-top:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.p-0{padding:0}.font-mono{font-family:var(--font-mono)}.text-label{font-size:var(--text-label)}.text-sm{font-size:var(--text-sm)}.tracking-wide{--tw-tracking:var(--track-wide);letter-spacing:var(--track-wide)}.text-ink-55{color:var(--ink-55)}.uppercase{text-transform:uppercase}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.md\:grid-cols-\[2fr_1fr\]{grid-template-columns:2fr 1fr}.md\:grid-cols-\[2fr_1fr_1fr\]{grid-template-columns:2fr 1fr 1fr}}}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
