:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-sunken: #f1f5f9;--color-white: #ffffff;--color-text: #0f172a;--color-divider: #e2e8f0;--color-divider-strong: #cbd5e1;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-400: #64748b;--color-slate: #475569;--color-cool: #94a3b8;--color-accent: #1d4ed8;--color-accent-100: #eaf0fe;--color-accent-200: #cddefc;--color-accent-300: #93b4f7;--color-accent-400: #6b8ff0;--color-accent-600: #1e40af;--color-accent-700: #1e3a8a;--color-accent-900: #0a1f44;--color-cyan: #60a5fa;--color-sky: #38bdf8;--color-sky-soft: #7dd3fc;--on-blue-2: #bfdbfe;--on-deep-2: #94a3b8;--color-pass: #4d7c0f;--color-pass-soft: #ecfccb;--color-warn: #92400e;--color-warn-soft: #fef3c7;--color-fail: #b91c1c;--color-fail-soft: #fee2e2;--ink-08: rgba(15, 23, 42, .08);--ink-40: rgba(15, 23, 42, .6);--ink-45: rgba(15, 23, 42, .65);--ink-50: rgba(15, 23, 42, .7);--ink-55: rgba(15, 23, 42, .74);--ink-60: rgba(15, 23, 42, .79);--ink-70: rgba(15, 23, 42, .86);--ink-75: rgba(15, 23, 42, .91);--paper-25: rgba(255, 255, 255, .28);--paper-60: rgba(255, 255, 255, .64);--paper-75: rgba(255, 255, 255, .8);--scrim: rgba(10, 31, 68, .55);--ground: var(--color-bg);--fg: var(--color-text);--fg-2: var(--ink-60);--hair: var(--color-divider);--mark: var(--color-accent);--cap: var(--color-accent-900);--cap-fg: var(--color-slate);--font-heading: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-body: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--text-micro: 10px;--text-kicker: 11px;--text-label: 12px;--text-label-lg: 12px;--text-th: 12px;--text-note: 13px;--text-btn: 13px;--text-sm: 13px;--text-card: 15px;--text-body: 14px;--text-tile: 18px;--text-h3: 20px;--text-h1: 30px;--text-h2: 24px;--text-amount: 28px;--track-tight: -.012em;--track: 0em;--track-wide: .01em;--track-caps: .08em;--r-mark: 2px;--r-ctl: 4px;--r-sheet: 8px;--r-card: 14px;--r-pill: 999px;--rail-width: 88px;--rail-item-width: 48px;--strip-cell-height: 14px;--drawer-width: 460px;--table-min-width: 640px;--touch-min: 44px;--control-sm: 30px;--control-md: 38px;--control-lg: 46px;--pad-page: 24px;--pad-page-mobile: 16px;--pad-card: 20px;--gap-grid: 16px;--z-sticky: 10;--z-menu: 20;--z-overlay: 40;--z-overlay-top: 45;--z-toast: 60;--cap-height: 38px;--thread-width: 760px;--aside-width: 264px;--elevation-raised: 0 1px 2px rgba(10, 31, 68, .05);--elevation-overlay: 0 1px 2px rgba(10, 31, 68, .1), 0 24px 48px -20px rgba(10, 31, 68, .38);--surface-dark: radial-gradient(130% 200% at 16% 46%, rgba(37, 99, 235, .92) 0%, rgba(37, 99, 235, 0) 64%), linear-gradient(101deg, #1b48c4 0%, #1d4ed8 34%, #0a1f44 100%);--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;--pad-card: 16px}}@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)}.dialog{border-radius:var(--r-card)}.panel,.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,.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}.plabel,.mono-label,.stat .k,.kcol .khead span,.kcard .kk,.tasklist .day,.table th,.jsonview dt,.prof-grid dt,.topmeta dt,.chip,.st{font-family:var(--font-body);font-weight:700;font-size:var(--text-label);letter-spacing:var(--track-caps);text-transform:uppercase;line-height:1.34}.chip,.st{font-size:var(--text-kicker)}.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;display:inline-flex;height:var(--control-md);align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;white-space:nowrap;font-family:var(--font-body);font-weight:600;font-size:var(--text-btn);line-height:1;color:var(--color-text);border:1px solid var(--color-divider-strong);padding:0 14px;background:var(--color-surface);transition:transform var(--duration-press) var(--ease-standard),background var(--duration-state) var(--ease-standard),border-color var(--duration-state) var(--ease-standard),color var(--duration-state) var(--ease-standard)}@media(hover:hover){.btn:hover:not(:disabled){background:var(--color-accent-100);border-color:var(--color-accent-300);color:var(--color-accent-700)}}.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)}@media(hover:hover){.btn-primary:hover:not(:disabled){background:var(--color-accent-600);border-color:var(--color-accent-600);color:var(--color-white)}}.btn-ghost{border-color:transparent;background:transparent;color:var(--color-accent)}.btn-ghost:disabled{background:transparent;border-color:transparent}.btn-danger{background:var(--color-surface);border-color:var(--color-fail);color:var(--color-fail)}@media(hover:hover){.btn-danger:hover:not(:disabled){background:var(--color-fail-soft);border-color:var(--color-fail);color:var(--color-fail)}}.shell{display:flex;min-height:100vh}aside.rail{width:var(--rail-width);flex:none;order:-1;display:flex;flex-direction:column;align-items:center;padding:18px 0;gap:8px;background:var(--color-accent-900);position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}aside.rail .logo{width:44px;height:44px;flex:none;padding:8px;margin-bottom:16px;background:var(--color-accent);border-radius:var(--r-sheet)}aside.rail a,aside.rail button.rail-item{width:var(--rail-item-width);height:var(--rail-item-width);flex:none;padding:0;display:grid;place-items:center;text-decoration:none;color:var(--on-deep-2);border:1px solid transparent;border-radius:var(--r-sheet);background:transparent;cursor:pointer;font:inherit;transition:color var(--duration-state) var(--ease-standard),background var(--duration-state) var(--ease-standard)}aside.rail a:hover,aside.rail button.rail-item:hover{background:var(--paper-25);color:var(--color-white)}aside.rail a.active{background:var(--color-white);color:var(--color-accent);border-color:var(--color-white)}aside.rail a.active svg{color:var(--color-accent)}aside.rail a.dashed:hover{border-color:var(--color-accent-300)}aside.rail a span,aside.rail button.rail-item span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}aside.rail .rule{width:40px;height:1px;flex:none;background:var(--paper-25);margin:6px 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:6px;padding:8px var(--pad-page-mobile);border-right:none}aside.rail .logo{margin:0 8px 0 0;width:36px;height:36px;padding:6px;align-self:center}aside.rail a,aside.rail button.rail-item{width:var(--touch-min);height:var(--touch-min)}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}header.top .menu-trigger.identity{padding:5px}header.top .menu-trigger.identity .who{display:none}.menu-panel{max-width:calc(100vw - 2 * var(--pad-page-mobile))}.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-body);font-size:var(--text-label);letter-spacing:var(--track-wide);text-transform:none;color:var(--color-accent)}header.top h1{font-size:var(--text-h2);font-weight:700;letter-spacing:var(--track-tight);margin:4px 0 0;line-height:1.16}header.top.band{--fg: var(--color-white);--fg-2: var(--on-blue-2);--hair: var(--paper-25);--mark: var(--color-white);background:var(--surface-dark);border-bottom:none;border-radius:var(--r-sheet);margin:var(--pad-page) var(--pad-page) 0;padding:22px var(--pad-card);color:var(--fg)}header.top.band h1{color:var(--color-white);font-weight:600;margin:0}header.top.band+.work{padding-top:16px}header.top.band .menu-trigger{border-color:var(--paper-25);color:var(--color-white)}header.top.band .menu-trigger:hover,header.top.band .menu-trigger.open{background:var(--paper-25);border-color:var(--paper-60)}header.top.band .menu-trigger .who .id,header.top.band .menu-trigger svg{color:var(--on-blue-2)}header.top.band .menu-trigger .avatar{background:var(--paper-25);color:var(--color-white)}header.top.band .inbox-badge{border-color:var(--color-accent-900)}header.top.band .btn{background:transparent;border-color:var(--paper-25);color:var(--color-white)}header.top.band .btn:hover:not(:disabled){background:var(--paper-25);border-color:var(--paper-60);color:var(--color-white)}.topmeta{display:flex;flex-wrap:wrap;gap:8px 34px;margin:0}.topmeta>div{display:flex;align-items:baseline;gap:9px}.topmeta dt{color:var(--fg-2);margin:0}.topmeta dd{margin:0;font-size:var(--text-body);font-weight:600;color:var(--fg)}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 .identity{display:flex;align-items:center;gap:10px;padding:5px 12px 5px 5px;border:1px solid var(--hair);border-radius:var(--r-sheet)}header.top .avatar{width:30px;height:30px;flex:none;border-radius:var(--r-ctl);background:var(--color-accent-100);display:grid;place-items:center;font-family:var(--font-heading);font-weight:700;font-size:var(--text-note);letter-spacing:var(--track-caps);color:var(--color-accent-700)}.who{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1.25}.who .name,.who .id{display:block;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header.top .who .name{font-size:var(--text-btn);font-weight:600}.who .id{font-family:var(--font-body);font-size:var(--text-label);color:var(--ink-45)}.account-head .who .name{font-size:var(--text-body);font-weight:600}.work{flex:1;padding:22px var(--pad-page) 32px;display:flex;flex-direction:column;gap:var(--gap-grid)}.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(--hair);padding:var(--pad-card);position:relative;background:var(--color-surface);box-shadow:var(--elevation-raised)}.plabel{color:var(--cap-fg);margin-bottom:10px}.plabel.muted{color:var(--ink-45)}.panel>.pcap{display:flex;align-items:center;gap:9px;min-height:var(--cap-height);margin:calc(var(--pad-card) * -1) calc(var(--pad-card) * -1) var(--pad-card);padding:0 var(--pad-card);background:var(--color-surface-sunken);border-bottom:1px solid var(--hair);border-radius:var(--r-sheet) var(--r-sheet) 0 0;color:var(--cap-fg)}.panel>.pcap .push{margin-left:auto}.panel>.pcap svg{color:var(--mark);flex:none}.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;letter-spacing:-.012em;line-height:1.02;text-wrap:balance}.panel h3{font-size:var(--text-h3);font-weight:650;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{color:var(--ink-45)}.mono-label.accent{color:var(--color-accent-700)}.stat .k{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}.panel>.stats{margin-left:0;text-align:left}@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:6px;margin:16px 0 4px;min-width:420px}.progress-cells>i{height:var(--strip-cell-height);display:block;border-radius:var(--r-pill);background:var(--color-accent-100);transition:background var(--duration-state) var(--ease-standard)}.progress-cells>i.done{background:var(--color-accent-400)}.progress-cells>i.gate{background:var(--color-accent-400);box-shadow:inset 0 0 0 2px var(--color-accent-900)}.progress-cells>i.now{background:var(--color-accent)}.progress-cells>i.gate-locked{background:var(--color-accent-100);box-shadow:inset 0 0 0 2px var(--color-accent-200)}.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--hair)}.legend span{display:flex;align-items:center;gap:7px;font-family:var(--font-body);font-size:var(--text-note);letter-spacing:var(--track);text-transform:none;color:var(--ink-55)}.legend i{width:12px;height:12px;flex:none;display:block;border-radius:var(--r-mark);background:var(--color-accent-100)}.legend i.done{background:var(--color-accent-400)}.legend i.now{background:var(--color-accent)}.legend i.gate{background:var(--color-accent-400);box-shadow:inset 0 0 0 2px var(--color-accent-900)}.legend i.gate-locked{background:var(--color-accent-100);box-shadow:inset 0 0 0 2px var(--color-accent-200)}.tasklist{border-top:1px solid var(--color-divider)}.tasklist .trow{display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:11px 10px;border-bottom:1px solid var(--hair);border-radius:var(--r-ctl)}.tasklist .trow:hover{background:var(--color-neutral-100)}.tasklist .trow.now{background:var(--color-accent-100);box-shadow:inset 3px 0 0 var(--color-accent);padding-left:13px}.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{justify-self:start;padding:3px 7px;border-radius:var(--r-mark);background:var(--color-neutral-100);color:var(--ink-55)}.tasklist .day.kind-learn{background:var(--color-pass-soft);color:var(--color-pass)}.tasklist .day.kind-code{background:var(--color-accent-200);color:var(--color-accent-700)}.tasklist .day.kind-upload{background:var(--color-warn-soft);color:var(--color-warn)}.module-meter{display:flex;align-items:center;gap:14px;margin-bottom:16px}.module-meter .kbar{flex:1;margin-top:0}.st{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(--on-blue-2)}.panel.dark>.pcap{background:var(--color-accent-900);border-bottom-color:var(--paper-25)}.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:0 0 6px;font-size:var(--text-note);color:var(--ink-55)}.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-body);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:1px solid var(--hair)}.kcol .khead:before{content:"";width:7px;height:7px;flex:none;border-radius:var(--r-pill);background:var(--color-divider-strong)}.kcol .khead.building:before{background:var(--color-accent)}.kcol .khead.gated:before{background:var(--color-pass)}.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{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-body);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-body);font-size:var(--text-label);letter-spacing:var(--track-tight);text-transform:none;color:var(--ink-50)}.kcard .kk{display:flex;align-items:center;gap:7px}.kcard .kk:before{content:"";width:6px;height:6px;flex:none;border-radius:var(--r-pill);background:var(--color-divider-strong)}.kcard.current{box-shadow:inset 3px 0 0 var(--color-accent)}.kcard.current .kk{color:var(--color-accent-700)}.kcard.current .kk:before{background:var(--color-accent)}.kcard.done .kk{color:var(--color-pass)}.kcard.done .kk:before{background:var(--color-pass)}.kcard.done .kt{color:var(--ink-50)}.kcard.done .km{color:var(--ink-45)}.kbar{height:8px;border-radius:var(--r-pill);background:var(--color-accent-100);margin-top:2px;overflow:hidden}.kbar i{display:block;height:8px;border-radius:var(--r-pill);background:repeating-linear-gradient(115deg,var(--color-accent) 0 7px,var(--color-accent-600) 7px 14px)}.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-body);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-body);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-body);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-body);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-body);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-body);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-title{display:block;margin-bottom:4px}.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;color:var(--ink-50);padding:8px 12px;background:var(--color-neutral-100);border-bottom:1px solid var(--color-divider-strong)}.table td{padding:9px 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-body);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{min-height:100vh;display:grid;grid-template-columns:1fr 1.15fr;background:var(--color-accent-900)}.auth-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:26px;padding:48px 56px;text-align:center;color:var(--color-white);background:linear-gradient(177deg,var(--color-text) 0%,var(--color-accent-900) 22%,var(--color-accent-600) 52%,var(--color-accent) 70%,var(--color-sky) 92%,var(--color-sky-soft) 100%)}.auth-brand:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(var(--paper-25) 1px,transparent 1px);background-size:22px 22px;opacity:.5;pointer-events:none}.auth-brand>*{position:relative;z-index:1}.auth-tile{width:96px;height:96px;border-radius:22px;box-shadow:var(--elevation-overlay)}.auth-brand h2{max-width:15ch;font-size:var(--text-h1);font-weight:800;line-height:1.12;letter-spacing:var(--track-tight);text-wrap:balance}.auth-brand p{max-width:42ch;margin:0;font-size:var(--text-body);line-height:1.6;color:var(--on-blue-2);text-wrap:pretty}.auth-sheet{position:relative;display:flex;flex-direction:column;align-items:center;padding:26px 24px;background:var(--color-surface);border-radius:var(--r-card) 0 0 var(--r-card)}.auth-sheet .login-card{width:min(396px,100%);margin:auto;padding:24px 0;text-align:left}.login-card img.mark{height:26px;width:auto;display:block;margin:0 auto 10px}.auth-kicker{margin-bottom:26px;text-align:center;font-size:var(--text-card);font-weight:700;color:var(--color-accent)}.auth-foot{margin:0;font-size:var(--text-note);color:var(--ink-45)}.login-note{margin:16px 0 0;text-align:center;font-size:var(--text-note);color:var(--ink-55)}.login-note a{font-weight:700;text-decoration:none;color:var(--color-text)}.login-note a:hover{color:var(--color-accent)}@media(max-width:900px){.auth{grid-template-columns:1fr}.auth-brand{display:none}.auth-sheet{border-radius:0;padding:20px var(--pad-page-mobile)}.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.tutor{max-width:100%}.msg .who{font-family:var(--font-body);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:12px 14px;overflow-x:auto;border-radius:var(--r-ctl);background:var(--color-surface-sunken);border:1px solid var(--hair)}.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{padding:2px 0 0;background:transparent;border:0;color:var(--color-text)}.msg.tutor .who{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--color-accent-700)}.msg.tutor .who:before{content:"";width:16px;height:16px;flex:none;border-radius:var(--r-mark);background:var(--surface-dark)}.msg.interrupted .bubble{border-left:2px solid var(--color-warn);padding-left:12px}.msg.streaming .bubble:after{content:"";display:inline-block;width:2px;height:1em;margin-left:3px;vertical-align:-.15em;background:var(--color-accent);animation:caret 1s steps(2,start) infinite}@keyframes caret{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.msg.streaming .bubble:after{animation:none}}.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:760px;margin-inline:auto}.chat-composer{max-width:760px;margin:14px auto 0;padding:14px 16px 16px;background:var(--color-surface);border:1px solid var(--color-divider-strong);box-shadow:var(--elevation-raised);transition:border-color var(--duration-state) var(--ease-standard),box-shadow var(--duration-state) var(--ease-standard)}.chat-composer:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-100)}.chat-input{max-width:none}.chat-input .textarea{border:0;padding:2px 0;min-height:52px;background:transparent}.chat-input .textarea:focus{outline:none;box-shadow:none}.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-body);font-size:var(--text-label);letter-spacing:var(--track);text-transform:none;color:var(--ink-45)}main.stage:has(.tutor-layout){height:100vh;overflow:hidden}.tutor-layout{flex:1;min-height:0;display:grid;grid-template-columns:var(--aside-width) 1fr;gap:16px;padding:16px var(--pad-page) var(--pad-page)}.tutor-sessions{display:flex;flex-direction:column;gap:10px;min-height:0;padding:12px;background:var(--color-surface);border:1px solid var(--hair);border-radius:var(--r-sheet);box-shadow:var(--elevation-raised)}.tutor-sessions-top{display:flex;align-items:center;gap:8px}.tutor-sessions-top .btn{flex:1}.tutor-sessions-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.session-group+.session-group{margin-top:16px}.session-group .mono-label{display:block;padding:0 10px;margin-bottom:4px}.session-empty,.session-more{padding:10px;margin:0;font-size:var(--text-note);color:var(--ink-55)}.tutor-thread{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--color-surface);border:1px solid var(--hair);border-radius:var(--r-sheet);box-shadow:var(--elevation-raised)}.tutor-scroll{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;padding:16px var(--pad-card) 10px}.tutor-scroll .chat-panel{flex:1;display:flex;flex-direction:column}.tutor-scroll .chat-panel .empty{margin-block:auto}.tutor-scroll:focus-visible,.tutor-sessions-scroll:focus-visible{outline-offset:-3px}.tutor-dock{flex:none;display:flex;flex-direction:column;gap:10px;padding:12px var(--pad-card) 14px;border-top:1px solid var(--hair)}.tutor-dock>*,.tutor-scroll>*{width:100%;max-width:var(--thread-width);margin-inline:auto}.tutor-scroll .chat-panel{border:0;box-shadow:none;padding:0;background:transparent}.tutor-scroll .chat-panel>.pcap{margin:0 0 14px;border:1px solid var(--hair);border-radius:var(--r-ctl)}.ask-tutor .suggestions{margin-bottom:14px}.ask-row{display:flex;gap:10px;align-items:center}.ask-row .input{flex:1}.suggestions{display:flex;flex-direction:column;gap:8px}.suggestion-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.chip-suggest{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:8px 13px;border:1px solid var(--hair);border-radius:var(--r-pill);background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-note);text-align:left;cursor:pointer;transition:background var(--duration-state) var(--ease-standard),border-color var(--duration-state) var(--ease-standard)}.chip-suggest:hover{background:var(--color-accent-100);border-color:var(--color-accent-300)}.chip-dot{width:8px;height:8px;flex:none;border-radius:var(--r-pill);background:var(--color-accent)}.chip-suggest.review .chip-dot{background:var(--color-warn)}.chip-suggest.learn .chip-dot{background:var(--color-pass)}.chip-suggest.gate .chip-dot{background:var(--color-accent-900)}.chip-suggest.module .chip-dot{background:var(--color-cool)}.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-radius:var(--r-ctl);padding:8px 10px;display:flex;flex-direction:column;gap:2px;cursor:pointer;font-family:var(--font-body);color:var(--color-text);transition:background var(--duration-state) var(--ease-standard)}.session-item:hover{background:var(--color-neutral-100)}.session-item[aria-current=true]{background:var(--color-accent-100);color:var(--color-accent-700)}.session-item[aria-current=true] .session-title{font-weight:600}.session-title{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-body);line-height:1.45}.session-item .mono-label{font-size:var(--text-micro)}.tutor-toggle{display:none}@media(max-width:900px){main.stage:has(.tutor-layout){height:auto;overflow:visible}.tutor-thread,.tutor-scroll{overflow:visible;min-height:0}.tutor-layout{grid-template-columns:1fr;padding:12px var(--pad-page-mobile) var(--pad-page-mobile)}.tutor-sessions{display:none}.tutor-sessions.open{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-menu);border-radius:0}.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-body);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-body);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);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;justify-content:flex-end;z-index:var(--z-overlay);animation:overlay-in var(--duration-state) var(--ease-standard)}.overlay.center{align-items:center;justify-content:center;z-index:var(--z-overlay-top)}@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:14px 14px 14px 22px;background:var(--color-surface-sunken);border-bottom:1px solid var(--hair);border-radius:var(--r-card) var(--r-card) 0 0}.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-body);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:var(--z-toast)}.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-divider-strong);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-cool);border-radius:var(--r-mark);transform:rotate(45deg)}.empty-error:before{border-style:solid;border-color:var(--color-fail)}.chat-panel .empty{border:0;background:radial-gradient(72% 90% at 50% 42%,var(--color-accent-100) 0%,transparent 74%);padding:64px 24px 72px}.chat-panel .empty:before{display:none}.chat-panel .empty h3{font-size:var(--text-h2);letter-spacing:var(--track-tight)}.chat-panel .empty p{margin-inline:auto;max-width:46ch}.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;border-radius:var(--r-ctl);background:linear-gradient(90deg,var(--color-neutral-200) 0%,var(--color-neutral-100) 42%,var(--color-neutral-200) 84%);background-size:260% 100%;animation:skel-shimmer 1.5s linear infinite}@keyframes skel-shimmer{0%{background-position:130% 0}to{background-position:-130% 0}}@media(prefers-reduced-motion:reduce){.skel{animation:none}}.skel-sm{height:12px}.skel-md{height:26px}.skel-lg{height:96px}.skel:nth-child(2n){width:72%}.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:var(--gap-grid)}.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap-grid);align-items:start}.dash-grid>*{grid-column:span 12}@media(min-width:901px){.dash-grid>.col-7{grid-column:span 7}.dash-grid>.col-5{grid-column:span 5}.dash-grid>.col-6{grid-column:span 6}}.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{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-body);font-size:var(--text-label);letter-spacing:var(--track-tight);color:var(--ink-45);margin-top:3px}.prof-grid dt{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-body);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)}.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}.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}}.shots{display:flex;flex-wrap:wrap;gap:8px}.shots img{max-width:180px;border:1px solid var(--color-divider)}.suggested{display:flex;flex-direction:column;align-items:stretch;gap:8px}.suggested>.plabel{margin:0}.suggested ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.suggested button.chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:8px 13px;font-family:var(--font-body);font-size:var(--text-note);font-weight:500;letter-spacing:var(--track);text-transform:none;text-align:left;color:var(--color-text);background:var(--color-surface);border:1px solid var(--hair);border-radius:var(--r-pill);cursor:pointer;transition:background var(--duration-state) var(--ease-standard),border-color var(--duration-state) var(--ease-standard)}.suggested button.chip:before{content:"";width:7px;height:7px;flex:none;border-radius:var(--r-pill);background:var(--color-accent-300);transition:background var(--duration-state) var(--ease-standard)}.suggested button.chip:hover:not(:disabled){background:var(--color-accent-100);border-color:var(--color-accent-300)}.suggested button.chip:hover:not(:disabled):before{background:var(--color-accent)}.suggested button.chip:disabled{cursor:default;opacity:.55}.menu{position:relative;display:inline-flex}.menu-trigger{display:inline-flex;align-items:center;gap:8px;font:inherit;color:var(--fg);background:transparent;border:1px solid var(--hair);border-radius:var(--r-sheet);cursor:pointer;transition:background var(--duration-state) var(--ease-standard),border-color var(--duration-state) var(--ease-standard)}.menu-trigger:hover,.menu-trigger.open{border-color:var(--color-accent-300);background:var(--color-accent-100)}.menu-panel{--ground: var(--color-surface);--fg: var(--color-text);--fg-2: var(--ink-60);--hair: var(--color-divider);--mark: var(--color-accent);color:var(--color-text);position:absolute;top:calc(100% + 8px);z-index:var(--z-menu);min-width:232px;padding:6px;background:var(--color-surface);border:1px solid var(--hair);border-radius:var(--r-sheet);box-shadow:var(--elevation-overlay);animation:menu-in var(--duration-state) var(--ease-standard)}.menu-end{right:0;transform-origin:top right}.menu-start{left:0;transform-origin:top left}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.985)}}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;font:inherit;font-size:var(--text-body);text-align:left;color:var(--color-text);background:transparent;border:0;border-radius:var(--r-ctl);cursor:pointer;transition:background var(--duration-state) var(--ease-standard)}.menu-item:hover{background:var(--color-neutral-100)}.menu-item svg{flex:none;color:var(--ink-45)}.menu-item.danger{color:var(--color-fail)}.menu-item.danger svg{color:var(--color-fail)}.menu-item.danger:hover{background:var(--color-fail-soft)}.menu-trigger.identity{padding:5px 10px 5px 5px}.menu-trigger.identity svg{color:var(--ink-45)}.account-panel{min-width:248px}.account-head{display:flex;align-items:center;gap:10px;padding:8px 10px 12px;margin-bottom:4px;border-bottom:1px solid var(--hair)}.inbox-trigger{position:relative;width:var(--control-md);height:var(--control-md);justify-content:center;padding:0}.inbox-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;font-size:var(--text-micro);font-weight:700;line-height:1;color:var(--color-white);background:var(--color-accent);border:2px solid var(--color-surface);border-radius:var(--r-pill)}.inbox-panel{width:min(392px,calc(100vw - 32px));padding:0;overflow:hidden}.inbox-head{display:flex;flex-direction:column;gap:8px;padding:12px var(--pad-card) 0;background:var(--color-surface-sunken);border-bottom:1px solid var(--hair)}.inbox-body{max-height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain;padding:12px}.notification-list{display:flex;flex-direction:column;gap:14px}.notification-actions{display:flex;justify-content:flex-end}.notification-group .mono-label{display:block;padding:0 8px 4px}.notification-rows{list-style:none;margin:0;padding:0}.notification{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:baseline;gap:10px;width:100%;padding:9px 8px;font:inherit;text-align:left;color:var(--ink-60);background:transparent;border:0;border-radius:var(--r-ctl);cursor:pointer;transition:background var(--duration-state) var(--ease-standard)}.notification:hover{background:var(--color-neutral-100)}.notification .dot{width:7px;height:7px;border-radius:var(--r-pill);background:transparent}.notification.unread{color:var(--color-text);font-weight:600}.notification.unread .dot{background:var(--color-accent)}.notification.unread.attention .dot{background:var(--color-warn)}.notification.unread.good .dot{background:var(--color-pass)}.notification .when{font-size:var(--text-micro);color:var(--ink-45);font-weight:400}/*! 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}.col-5{grid-column:5}.col-7{grid-column:7}.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}
