@layer tokens{:root{--ink-950:#0d1117;--ink-900:#161b22;--ink-700:#3d4451;--ink-500:#646b78;--toast-offset:74px;--hairline:2px;--ink-400:#97a1af;--ink-300:#cbd2db;--ink-100:#e7eaee;--ink-50:#f4f5f7;--brand-50:#eef0fd;--brand-100:#dfe1fb;--brand-200:#bfc4f7;--brand-300:#9aa1ef;--brand-400:#7b82e8;--brand-500:#565fdb;--brand-600:#3f47c2;--brand-700:#313798;--brand-900:#1f2361;--on-brand-500:#fff;--on-brand-600:#fff;--on-brand-700:#fff;--brand-text:#565fdb;--link-text:color-mix(in srgb, var(--brand-text) 88%, black);--ok-50:#eaf8ee;--ok-600:#2f9e56;--ok-700:#227a41;--warn-50:#fdf1e2;--warn-600:#d97f1a;--warn-700:#8f5209;--danger-50:#fbebea;--danger-600:#c93a3a;--danger-700:#a83333;--bg:#f2f3f6;--surface:#fff;--surface-sunk:#f6f7fa;--line:#e3e5ea;--line-soft:#eef0f3;--line-control:#7d8494;--font-sans:system-ui, -apple-system, "Segoe UI", roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.75rem;--fld-err-line:calc(var(--text-xs) * 1.5 + var(--space-1));--leading-tight:1.15;--leading-normal:1.5;--leading-loose:1.65;--weight-normal:400;--weight-medium:500;--weight-bold:700;--weight-heavy:800;--tracking-tight:-.03em;--tracking-normal:0;--space-unit:4px;--space-1:calc(var(--space-unit) * 1);--space-2:calc(var(--space-unit) * 2);--space-3:calc(var(--space-unit) * 3);--space-4:calc(var(--space-unit) * 4);--space-5:calc(var(--space-unit) * 5);--space-6:calc(var(--space-unit) * 6);--space-8:calc(var(--space-unit) * 8);--space-12:calc(var(--space-unit) * 12);--space-16:calc(var(--space-unit) * 16);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--chip-tint:7%;--chip-edge:3px;--chip-radius:6px;--shadow-sm:0 1px 2px rgba(0,0,0,.06);--shadow-md:0 4px 12px -2px rgba(0,0,0,.1);--shadow-lg:0 16px 40px -12px rgba(0,0,0,.18);--ease:cubic-bezier(.22, .61, .36, 1);--duration-fast:.12s;--duration-normal:.22s;--focus-ring-color:var(--brand-500);--focus-ring-width:2px;--tap-min:44px;--target-min:24px;--btn-h:36px;--btn-h-sm:28px;--chip-h:4rem;--cell-gutter:.3rem;--cell-w:calc(10rem + var(--cell-gutter) * 2);--cell-rule:1px;--cell-h:calc(var(--chip-h) + var(--cell-gutter) * 2 + var(--cell-rule));--grid-hover:rgba(15,23,42,.043)}@media (hover:none) and (pointer:coarse){:root{--touch:1;--btn-h:var(--tap-min);--btn-h-sm:var(--tap-min);--target-min:var(--tap-min);--chip-h:4.5rem}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-normal:0s}}}@layer base{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{background:var(--bg);color:var(--ink-900);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,p,figure,blockquote{margin:0}ul,ol{margin:0;padding:0;list-style:none}img,svg,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}:where(input:not(:is([type=checkbox],[type=radio],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=reset])),select,textarea){padding:var(--space-2) var(--space-3);border:1px solid var(--line-control);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-900);font-size:var(--text-base)}input[type=date]::-webkit-datetime-edit{padding-block:0}:where(input,textarea)::placeholder{color:var(--ink-500);opacity:1}:where(input:not(:is([type=checkbox],[type=radio],[type=file],[type=range],[type=color],[type=submit],[type=button],[type=reset])),textarea){appearance:none}button{cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}@media (hover:none) and (pointer:coarse){button{min-height:var(--tap-min);min-inline-size:var(--tap-min)}}a{color:var(--link-text)}a:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}@media (hover:none) and (pointer:coarse){.btn,.crumbs a,select,textarea{min-height:var(--tap-min)}input:not(:is([type=checkbox],[type=radio],[type=hidden])){min-height:var(--tap-min)}label:has(>input:is([type=checkbox],[type=radio])){min-height:var(--tap-min)}}:where(input,select,textarea):focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:0;border-radius:var(--radius-sm)}main:focus{outline:none}[hidden]{display:none!important}h1{font-size:var(--text-2xl);font-weight:var(--weight-heavy);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}h2{font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}h3{font-size:var(--text-lg);font-weight:var(--weight-bold)}p{max-width:68ch}.createrow p,.tbl p,.row p,.toolbar p,[class*=__hint]{max-width:none}small,.u-text-sm{font-size:var(--text-sm)}.u-text-lg{font-size:var(--text-lg)}.u-muted{color:var(--ink-500)}:is(h1,h2,h3,h4)>a{--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach))}.skip-link{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus-visible{top:var(--space-2);left:var(--space-2);z-index:100;clip-path:none;width:auto;height:auto;padding:var(--space-2) var(--space-4);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);margin:0;position:fixed}.sr-only,.icon-sprite{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@layer components{.config-warning{padding:var(--space-2) var(--space-4);background:var(--warn-50);color:var(--warn-700);font-size:var(--text-sm);text-align:center;margin:0}.topbar{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--surface);border-bottom:1px solid var(--line);z-index:10;flex-wrap:wrap;display:flex;position:sticky;top:0}.account-switch{min-width:0}@media (width<=440px){.topbar{gap:var(--space-2);padding:var(--space-1) var(--space-3);min-height:0}.pillnav{background:0 0;padding:0}.week-says--routine{display:none}.gridbar .daybar{padding-bottom:var(--hairline);flex-wrap:nowrap;overflow-x:auto}.gridbar .dayjump{padding:var(--space-1) var(--space-2);flex:none}.gridbar .segmented__item{padding-inline:var(--space-2)}}.brand{align-items:center;gap:var(--space-2);font-weight:var(--weight-heavy);letter-spacing:var(--tracking-tight);display:flex}.brand .brand__name{font-size:var(--text-lg)}.brand .mark{border-radius:var(--radius-md);background:var(--brand-600);width:30px;height:30px;color:var(--on-brand-600);font-size:var(--text-base);place-items:center;display:grid}.mark-img{object-fit:contain;width:auto;max-width:180px;height:26px}.pillnav{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-pill);background:var(--surface-sunk);display:flex}.pill{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--ink-700);transition:background var(--duration-fast) var(--ease);text-decoration:none;display:inline-flex}@media (hover:none) and (pointer:coarse){.pill{min-height:var(--tap-min);min-inline-size:var(--tap-min)}}.pill:hover{background:var(--surface);color:var(--ink-900)}.pill.active{background:var(--brand-600);color:var(--on-brand-600)}main{padding:var(--space-6) var(--space-5) var(--space-12);display:block}@media (width<=440px){main{padding:var(--space-4) var(--space-3) var(--space-8)}}main :is(form,.form).stack{max-width:40rem}.crumbs{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-500);margin-bottom:var(--space-3);display:flex}.crumbs a{--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach))}.pagehead{align-items:baseline;gap:var(--space-3)}.pagehead h1{margin:0}.term-today{padding:var(--space-2) var(--space-3);border:1px solid var(--warn-600);border-radius:var(--radius-md);background:var(--warn-50);color:var(--warn-700);margin:0}.term-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);grid-template-columns:minmax(0,1.6fr) minmax(0,1.4fr) minmax(0,1.4fr) minmax(0,.8fr) minmax(10rem,auto);display:grid;overflow:hidden}.term-list__head,.term-list .term-row{grid-template-columns:subgrid;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);grid-column:1/-1;display:grid}.term-list__head{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-500);border-bottom:1px solid var(--line);padding-block:var(--space-2)}.term-list__rows{display:contents}.term-list__rows>.term-row:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.term-list__rows>.term-row:last-child{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}@supports not (grid-template-columns:subgrid){.term-list__head,.term-list .term-row{grid-template-columns:minmax(0,1.6fr) minmax(0,1.4fr) minmax(0,1.4fr) minmax(0,.8fr) minmax(10rem,auto)}}.term-row{border-bottom:1px solid var(--line-soft)}.term-row:last-child{border-bottom:0}.term-row:hover{background:var(--surface-sunk)}.term-row__name{font-size:var(--text-md);font-weight:var(--weight-bold);overflow-wrap:anywhere}.term-row__dates,.term-row__size{color:var(--ink-700)}.term-row__year{font-weight:var(--weight-medium)}.term-row__actions{justify-content:flex-end;gap:var(--space-2);white-space:nowrap}.term-row__life{min-width:5.5rem}@media (width<=960px){.term-list__head{display:none}.term-list .term-row{gap:var(--space-1) var(--space-3);padding:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.term-list .term-row .term-row__name{font-size:var(--text-base);grid-column:1}.term-list .term-row .term-row__status{grid-area:1/2;justify-self:end}.term-list .term-row .term-row__dates,.term-list .term-row .term-row__size{grid-column:1/-1}.term-list .term-row .term-row__actions{margin-top:var(--space-1);flex-wrap:wrap;grid-column:1/-1;justify-content:flex-start}}.empty-state{align-items:flex-start;gap:var(--space-2);padding:var(--space-6);border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface)}.empty-state h2{font-size:var(--text-lg)}.empty-state p{max-width:56ch;margin:0}.setup{gap:var(--space-6);grid-template-columns:210px minmax(0,1fr);display:grid}@media (width<=960px){.setup{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}}.setup-fold{align-self:start}.setup-fold>summary{display:none}@media (width>=961px){.setup-fold{top:calc(var(--space-16) + var(--space-2));position:sticky}.setup-fold::details-content{content-visibility:visible}.setup-fold .setup-nav{display:flex}}@media (width<=960px){.setup-fold:not([open])>.setup-nav{display:none}.setup-fold>summary{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);display:flex}}@media (width<=960px) and (hover:none) and (pointer:coarse){.setup-fold>summary{min-height:var(--tap-min);min-inline-size:var(--tap-min)}}.setup-fold .setup-fold__marker{color:var(--ink-500);transition:transform var(--duration-fast) var(--ease);display:inline-flex}.setup-fold[open] .setup-fold__marker{transform:rotate(180deg)}.setup-fold__current{font-weight:var(--weight-medium);color:var(--ink-900)}.setup-fold__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500)}.setup-nav{gap:var(--space-4);flex-direction:column;align-self:start;display:flex}@media (width<=960px){.setup-nav{margin-top:var(--space-3)}}.setup-group__title{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);margin-bottom:var(--space-1)}.navlink{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--ink-700);font-size:var(--text-base);text-decoration:none;display:flex}@media (hover:none) and (pointer:coarse){.navlink{min-height:var(--tap-min);min-inline-size:var(--tap-min)}}.navlink:hover{background:var(--surface-sunk);color:var(--ink-900)}.navlink.active{background:var(--brand-50);color:var(--link-text);font-weight:var(--weight-medium)}.navlink>.icon{color:var(--ink-500);flex:none}.navlink.active>.icon{color:currentColor}.navlink--tab{background:0 0;border-bottom:2px solid transparent;border-radius:0}.navlink--tab .navlink__count{margin-left:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--ink-100);color:var(--ink-700);font-size:var(--text-xs);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;line-height:1.5;display:inline-block}.navlink--tab.active .navlink__count{background:var(--brand-100);color:var(--brand-700)}.navlink--tab.active{border-bottom-color:var(--brand-600);color:var(--link-text);background:0 0}.tabs{gap:var(--space-1);border-bottom:1px solid var(--line);margin-bottom:var(--space-3);flex-wrap:nowrap;overflow-x:auto}.daybar{gap:var(--space-1);margin-bottom:var(--space-2)}.segmented{gap:var(--hairline);padding:var(--hairline);border:1px solid var(--line-control);border-radius:var(--radius-pill);background:var(--surface-sunk);display:inline-flex}.segmented__item{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);color:var(--ink-700);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:0}.segmented__item:hover{color:var(--ink-900)}.segmented__item.active{background:var(--surface);color:var(--ink-900);font-weight:var(--weight-bold);box-shadow:var(--shadow-sm)}.gridbar__entity select{padding:var(--space-1) var(--space-2);border:1px solid var(--line-control);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-900);font:inherit;font-size:var(--text-sm);max-width:220px}.toolbar__sep,.gridbar__sep{width:1px;margin-inline:var(--space-1);background:var(--line);align-self:stretch}.toolbar{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.panel.toolbar{padding:var(--space-2) var(--space-3)}.toolbar .sharebar{order:1}.sharebar{align-items:center;gap:var(--space-2);flex-wrap:wrap}.grow{flex:1}.toolbar .toolbar__more-btn{display:none}.toolbar__status{gap:var(--space-2);white-space:nowrap;flex-wrap:nowrap;align-items:center}.toolbar .grow{flex:1 1 0;min-width:0}@media (width<=1280px){.toolbar__status .toolbar__counts{display:none}}.toolbar .verdict .badge{padding:var(--hairline) var(--space-3);font-size:var(--text-sm)}.toolbar .verdict .badge__label{letter-spacing:normal;font-variant-caps:normal}@media (width<=440px){.toolbar{gap:var(--space-1)}.toolbar .toolbar__status{display:none}.toolbar .toolbar__more-btn{display:inline-flex}.toolbar__sep,.toolbar__more.closed{display:none}.toolbar__more{gap:var(--space-1);flex-wrap:wrap;flex-basis:100%}h1{font-size:var(--text-xl)}.pagehead{gap:var(--space-1)}.pagehead .crumbs{display:none}.topbar{padding:var(--space-1) var(--space-2)}.topbar .grow{display:none}.topbar .pillnav{gap:var(--space-1)}.topbar .pill{padding-inline:var(--space-2)}.topbar .brand__name{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar .mark,.topbar .mark-img{width:28px;height:28px}}.account__panel{width:auto;height:auto;color:inherit;align-items:center;gap:var(--space-4);background:0 0;border:0;margin:0;padding:0;display:flex;position:static;inset:auto;overflow:visible}.account__menu{display:none}@media (width<=440px){.account__menu{background:0 0;border:0;border-radius:50%;margin-left:auto;padding:0;display:inline-flex}.account__menu:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.account__panel:not(:popover-open){display:none}.account__panel:popover-open{position-area:bottom span-left;position-try-fallbacks:flip-block;margin:var(--space-1) 0;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);align-items:stretch;gap:var(--space-2);width:min(20rem, 100vw - var(--space-4));padding:var(--space-3);flex-direction:column;position:fixed}.account__panel:popover-open .uni{white-space:normal}}.uni{color:var(--ink-500);font-size:var(--text-sm);white-space:nowrap}.account-switch{padding:var(--space-1) var(--space-2);border:1px solid var(--line-control);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);max-width:300px}.account-switch .ssel__input{--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding:0;padding-block:var(--reach);margin-block:calc(-1 * var(--reach));field-sizing:content;background:0 0;border:0;border-radius:0;width:auto;min-width:14ch}@media (width<=440px){.account-switch{max-width:none;font-size:var(--text-xs)}.brand .mark,.brand .mark-img{width:auto;height:22px}.brand .mark{width:22px}.brand{padding:1px}}.sep{color:var(--ink-300)}.workspace-row{gap:var(--space-4);align-items:flex-start;display:flex}.workspace-row .grid-col{gap:var(--space-3);flex-direction:column;flex:1 1 0;min-width:0;display:flex}@media (width<=960px){.workspace-row{flex-direction:column;align-items:stretch}}.pool-row{gap:var(--space-4);grid-template-columns:minmax(0,1fr) 260px;align-items:start;display:grid}@media (width<=960px){.pool-row{grid-template-columns:minmax(0,1fr)}}.entity-rail{top:var(--space-4);gap:var(--space-2);flex-direction:column;flex:0 0 17rem;min-width:0;max-width:17rem;display:flex;position:sticky}.entity-rail--collapsed{flex-basis:2rem;align-self:stretch;margin-inline-end:calc(var(--space-2) - var(--space-4))}@media (width<=960px){.entity-rail{flex-basis:auto;max-width:none;position:static}.entity-rail--collapsed{margin-inline-end:0}}.entity-rail__strip{top:var(--space-4);align-items:center;gap:var(--space-2);width:100%;height:100%;min-height:12rem;max-height:calc(100vh - var(--space-8));padding:var(--space-2) 0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-700);cursor:pointer;flex-direction:column;display:flex;position:sticky}.entity-rail__strip:hover{background:var(--surface-sunk);color:var(--ink-900)}.entity-rail__strip:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}@media (width<=960px){.entity-rail__strip{height:auto;min-height:0;padding:var(--space-2) var(--space-3);flex-direction:row}}.entity-rail__strip-label{writing-mode:vertical-rl;font-size:var(--text-sm);font-weight:var(--weight-medium)}@media (width<=960px){.entity-rail__strip-label{writing-mode:horizontal-tb}}.row.entity-rail__head{justify-content:flex-start;gap:var(--space-1);flex-wrap:nowrap}.entity-rail__title{font-size:var(--text-sm);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);margin:0}.entity-rail .roomlist__filters>.fld{flex-basis:100%}.issues-drawer{top:var(--space-4);max-height:calc(100vh - var(--space-8));padding:var(--space-4);gap:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md);flex:0 0 22rem;position:sticky;overflow-y:auto}@media (width<=960px){.issues-drawer{z-index:50;width:min(24rem,100%);max-height:none;box-shadow:var(--shadow-lg);border-radius:0;position:fixed;inset:0 0 0 auto}}.row.issues-drawer__head{flex-wrap:nowrap}.row.issues-drawer__head h2{font-size:var(--text-lg);margin:0}.issues-drawer__section{padding-top:var(--space-3);border-top:1px solid var(--line-soft);gap:var(--space-2)}.row.issues-drawer__title{gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-bold);flex-wrap:nowrap;margin:0}.issues-drawer__chips{gap:var(--space-1);flex-direction:column;display:flex}.issues-drawer__prefs summary{cursor:pointer;list-style-position:inside}.issues-drawer__prefs summary h3{font-size:var(--text-sm);font-weight:var(--weight-bold);display:inline}.issues-drawer__prefs[open] summary{margin-bottom:var(--space-2)}.issues-drawer__issue{text-align:left;justify-content:flex-start}.board__pick{font-size:var(--text-sm);color:var(--ink-700);margin:0}.board__nearby-group{margin-right:var(--space-3)}.board__nearby-group a+a{margin-left:var(--space-2)}.solve-progress{font-variant-numeric:tabular-nums}.board-status{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--line);background:var(--surface);color:var(--ink-700);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;border-radius:999px;display:inline-flex}.board-status--ok{border-color:var(--ok-600);background:var(--ok-50);color:var(--ok-700)}.board-status--warn{border-color:var(--warn-600);background:var(--warn-50);color:var(--warn-700)}.board-status[aria-expanded=true]{box-shadow:inset 0 0 0 1px}.entity-actions{align-items:center;display:flex;position:relative}.btn.entity-actions__more{display:none}.row.entity-actions__items{gap:var(--space-1);flex-wrap:nowrap}@media (width<=1280px){.btn.entity-actions__more{display:inline-flex}.row.entity-actions__items{top:calc(100% + var(--space-1));z-index:30;padding:var(--space-2);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-lg);flex-direction:column;align-items:stretch;display:none;position:absolute;right:0}.row.entity-actions__items.open{display:flex}}.term-row__stale{margin-top:var(--space-1);color:var(--warn-700);text-align:right;display:block}.loginbg{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}@media (width<=880px){.loginbg{grid-template-columns:1fr}}.login-visual{justify-content:center;gap:var(--space-5);padding:var(--space-16) clamp(var(--space-8), 6vw, var(--space-16));color:var(--on-brand-600);background:linear-gradient(to right, color-mix(in srgb, var(--on-brand-600) 7%, transparent) 1px, transparent 1px) 0 0/72px 100%, linear-gradient(to bottom, color-mix(in srgb, var(--on-brand-600) 7%, transparent) 1px, transparent 1px) 0 0/100% 44px, radial-gradient(120% 90% at 0% 0%, var(--brand-500), transparent 60%), linear-gradient(160deg, var(--brand-600), var(--brand-900));flex-direction:column;display:flex}.login-visual .mark{border:1px solid color-mix(in srgb, var(--on-brand-600) 30%, transparent);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--on-brand-600) 14%, transparent);width:48px;height:48px;font-size:var(--text-lg);font-weight:var(--weight-heavy);place-items:center;display:grid}.login-visual h2{max-width:16ch;font-size:clamp(var(--text-2xl), 3.4vw, 3rem);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin:0}.login-visual p{max-width:44ch;font-size:var(--text-md);line-height:var(--leading-normal);opacity:.88;margin:0}@media (width<=880px){.login-visual{display:none}}.login-panel{padding:var(--space-6);background:var(--surface-sunk);place-items:center;display:grid}.login{width:min(360px,100%);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md)}.login h1{font-size:var(--text-2xl);margin:0}.login .mark{border-radius:var(--radius-md);background:var(--brand-600);width:36px;height:36px;color:var(--on-brand-600);font-weight:var(--weight-heavy);place-items:center;display:grid}.login .sub{color:var(--ink-500);font-size:var(--text-sm);margin:0}.login .foot{color:var(--ink-500);font-size:var(--text-xs);text-align:center;margin:0}.login .err{color:var(--danger-600);font-size:var(--text-sm);margin:0}.login .note{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--brand-50);color:var(--brand-700);font-size:var(--text-sm);margin:0}.login .demo-notice{gap:var(--space-2);padding:var(--space-3);border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface-sunk);font-size:var(--text-sm);flex-direction:column;display:flex}.login .demo-notice p{margin:0}.login .demo-notice code{padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--surface);font-family:var(--font-mono)}.login button[type=submit]{justify-content:center;width:100%}.setup-guide{gap:var(--space-4);margin-bottom:var(--space-5);background:var(--brand-50)}.setup-guide h2{font-size:var(--text-lg);margin:0}@media (width<=880px){.setup-guide{flex-wrap:wrap}}.setup-guide__bar{width:min(220px,40%);accent-color:var(--brand-600)}.dash-group{gap:var(--space-2);margin-top:var(--space-5);flex-direction:column;display:flex}.dash-group__title{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-500);margin:0}.dash-cards{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));display:grid}.dash-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);color:inherit;transition:border-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease);text-decoration:none;display:flex}.dash-card:hover{border-color:var(--brand-300);box-shadow:var(--shadow-md)}.dash-card:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.dash-card__icon{border-radius:var(--radius-md);flex:none;place-items:center;width:2.5rem;height:2.5rem;display:grid}.dash-card--g0 .dash-card__icon{background:var(--brand-50);color:var(--brand-700)}.dash-card--g1 .dash-card__icon{background:var(--ok-50);color:var(--ok-700)}.dash-card--g2 .dash-card__icon{background:var(--warn-50);color:var(--warn-700)}.dash-card__body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.dash-card__title{font-weight:var(--weight-bold)}.dash-card__state{font-size:var(--text-sm);color:var(--ink-500)}.dash-card__state--done{color:var(--ok-700)}.dash-card__state--missing{color:var(--warn-700)}.stepper{gap:var(--space-2);margin:var(--space-3) 0 var(--space-5);flex-wrap:wrap;padding:0;list-style:none;display:flex}.step{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink-500);font-size:var(--text-sm)}.step--active{border-color:var(--brand-600);background:var(--brand-600);color:var(--on-brand-600);font-weight:var(--weight-bold)}.step--done{border-color:var(--brand-500);color:var(--brand-700);background:var(--brand-50)}.import-strip{align-items:center;gap:var(--space-1);padding:var(--hairline);border-radius:var(--radius-md);border:1px dashed transparent;flex-wrap:wrap;display:flex}.import-strip--active{border-color:var(--brand-500);background:var(--brand-50)}.curriculum-layout{gap:var(--space-4);grid-template-columns:1fr;align-items:stretch;display:grid}@media (width>=961px){.curriculum-layout--plan{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}.curriculum-layout--rail{grid-template-columns:minmax(0,1fr) minmax(220px,20%)}.curriculum-layout--rail.curriculum-layout--plan{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(220px,20%)}}.curriculum__bar{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.curriculum__bar .fld{flex:14rem}.curriculum__tree,.curriculum__plan{min-width:0}.curriculum__plan>.panel{box-shadow:none;max-height:70vh;overflow-y:auto}.pane{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);max-height:70vh;overflow-y:auto}.pane h2{margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:var(--weight-bold);letter-spacing:normal;line-height:var(--leading-normal)}.tree{margin:0;padding:0;list-style:none}.tree__program{border-bottom:1px solid var(--line-soft)}.tree__program:last-child{border-bottom:0}.tree__head,.tree__year{align-items:center;gap:var(--space-2);display:flex}.tree__toggle,.tree__open{align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;flex:auto;display:flex}.tree__toggle:hover,.tree__open:hover{background:var(--surface-sunk)}.tree__toggle:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.tree__open:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.tree__toggle[aria-expanded=true] .tree__caret,.tree__open[aria-expanded=true] .tree__caret{transform:rotate(90deg)}.tree__caret{color:var(--ink-500);transition:transform var(--duration-fast) var(--ease);flex:none}.tree__toggle{font-weight:var(--weight-bold)}.tree__open{font-size:var(--text-sm)}.tree__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tree__counts{font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:none;margin-left:auto}.tree__actions{gap:var(--space-1);flex:none}@media (width<=640px){.tree__head,.tree__year{flex-wrap:wrap}.tree__toggle,.tree__open{flex-wrap:wrap;flex-basis:100%}.tree__counts{margin-left:calc(1em + var(--space-2));flex-basis:100%}.tree__actions{padding-left:var(--space-5)}}.tree__years{margin:0 0 var(--space-2);padding:0 0 0 var(--space-4);list-style:none}.tree__study-year{border-left:2px solid var(--line-soft)}.tree__none{padding:var(--space-2);list-style:none}.tree__edit{gap:var(--space-2);padding:var(--space-2);background:var(--surface-sunk);border-radius:var(--radius-sm);flex-wrap:wrap}.is-fresh>.tree__head,.is-fresh>.tree__year{animation:fresh-row 2.4s var(--ease)}@keyframes fresh-row{0%{background:var(--brand-100)}to{background:0 0}}@media (prefers-reduced-motion:reduce){.is-fresh>.tree__head,.is-fresh>.tree__year{box-shadow:inset 2px 0 0 var(--brand-500);animation:none}}.plan-board{gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-3) var(--space-4);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}@media (width<=880px){.plan-board{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}}.plan-col{gap:var(--space-2);min-height:6rem;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-sunk);flex-direction:column;display:flex}.plan-col__head{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--ink-700);margin:0}.plan-col__carry{font-size:var(--text-sm);color:var(--brand-700);margin:0}.plan-col__add{width:100%;min-height:calc(var(--target-min) * 2);padding:var(--space-3);border:1px dashed var(--line-control);border-radius:var(--radius-sm);color:var(--ink-500);font:inherit;text-align:center;cursor:pointer;background:0 0;display:block}.plan-col__add:hover{border-color:var(--brand-500);color:var(--brand-700);background:var(--brand-50)}.plan-col__add:focus-visible{border-color:var(--brand-500);color:var(--brand-700);background:var(--brand-50)}.rail__action{margin-top:var(--space-2)}.elective-box{gap:var(--space-1);padding:var(--space-2);border:1px solid var(--line-control);border-left:3px solid var(--brand-300);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;display:flex}.elective-box--empty{background:0 0;border-style:dashed}.elective-box__head{align-items:center;gap:var(--space-1);flex-wrap:wrap}.elective-box__name{min-width:5rem;font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--ink-950);overflow-wrap:break-word;flex:5rem}button.elective-box__name{font:inherit;text-align:left;cursor:text;background:0 0;border:0;padding:0;font-family:inherit}button.elective-box__name:hover{color:var(--brand-700);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}button.elective-box__name:focus-visible{color:var(--brand-700);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.elective-box--empty .elective-box__name{font-weight:var(--weight-normal);color:var(--ink-500)}.elective-box__input{width:100%;min-width:0;padding:var(--space-1);font-size:var(--text-sm)}.elective-box__hint{margin:0}.plan-col__add-group{width:100%;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--ink-500);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:0;display:block}.plan-col__add-group:hover{color:var(--brand-700);background:var(--brand-50)}.plan-col__add-group:focus-visible{color:var(--brand-700);background:var(--brand-50)}.plan-card{gap:0 var(--space-2);padding:var(--space-2);border:1px solid var(--line);border-left:3px solid var(--brand-500);border-radius:var(--radius-sm);background:var(--surface);cursor:grab;grid-template-columns:minmax(0,1fr);display:grid}.plan-card:hover{background:var(--surface-sunk)}.plan-card__code{font-family:var(--font-mono);font-weight:var(--weight-bold);color:var(--ink-950)}.plan-card__name{overflow-wrap:break-word}.menu{text-align:right}.menu__list{position-area:bottom span-left;position-try-fallbacks:flip-block;margin:var(--space-1) 0;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);text-align:left;flex-direction:column;align-items:stretch;min-width:12rem;list-style:none;position:fixed}.menu__item{width:100%;padding:var(--space-2);border-radius:var(--radius-sm);text-align:left;font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;display:block}.menu__item:hover{background:var(--surface-sunk)}.menu__item:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.menu__item--warn{color:var(--danger-700)}.rail{top:var(--space-4);gap:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;min-height:0;max-height:70vh;display:flex;position:sticky}.rail__head{gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--line);flex-direction:column;flex:none;display:flex}.rail__head h3{font-size:var(--text-base);margin:0}.rail__head .row{justify-content:space-between}.rail__list{min-height:0;padding:var(--space-3);flex:auto;overflow-y:auto}.rail__rows{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rail__row{border-radius:var(--radius-sm);cursor:grab;padding:0}.rail__row:hover{background:var(--surface-sunk)}.rail__pick{align-items:baseline;gap:0 var(--space-2);padding:var(--space-2);cursor:pointer;grid-template-columns:auto minmax(0,1fr);display:grid}.rail__code{font-family:var(--font-mono);font-weight:var(--weight-bold)}.rail__name{overflow-wrap:break-word;grid-column:2}.rail__note{overflow-wrap:break-word;grid-column:2;font-style:italic}.rail__foot{gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--line);flex-direction:column;flex:none;display:flex}.rail__foot p{margin:0}.rail__foot .row{gap:var(--space-1);flex-wrap:wrap}.classes__bar{gap:var(--space-2);flex-wrap:wrap}.classes__filter{width:min(280px,100%)}.btn.is-on{border-color:var(--brand-500);background:var(--brand-50);color:var(--brand-700)}.attention.is-on{border-color:var(--warn-600);background:var(--warn-50);color:var(--warn-700)}.bulk-bar__group{gap:var(--space-2)}.bulk-bar__value{width:220px}.bulk-bar__num{width:4.5rem}.drawer{z-index:61;background:var(--surface);width:min(480px,100%);box-shadow:var(--shadow-lg);outline:none;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer__head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line);align-items:center}.drawer__head h2{font-size:var(--text-lg);margin:0}.drawer__body{min-height:0;padding:var(--space-4) var(--space-5) 0;flex:1;overflow-y:auto}.row.drawer__pair{align-items:flex-start;gap:var(--space-3)}.row.drawer__pair>.fld{flex:1}@media (width<=440px){.row.drawer__pair{flex-direction:column;align-items:stretch}}.drawer__more summary{cursor:pointer;font-weight:var(--weight-medium);margin-bottom:var(--space-2)}.drawer__note{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--warn-50);color:var(--warn-700);margin:0}.drawer__foot{gap:var(--space-2);padding:var(--space-3) 0 var(--space-4);border-top:1px solid var(--line);background:var(--surface);margin-top:auto;position:sticky;bottom:0}.picker{border:0;margin:0;padding:0}.picker legend{margin-bottom:var(--space-1);font-weight:var(--weight-medium);padding:0}.picker__chosen{gap:var(--space-1);margin:0 0 var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.picker__hint{margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--brand-50)}.picker__list{max-height:13rem;margin:var(--space-2) 0 0;padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);list-style:none;overflow-y:auto}.picker__list label{gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer}.tag{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--brand-50);color:var(--brand-700);font-size:var(--text-sm);display:inline-flex}.tag__x{border-radius:var(--radius-pill);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px}.tag__x:hover{background:var(--brand-100)}.classes__gap,.classes__teaching{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--warn-600);border-radius:var(--radius-md);background:var(--warn-50);color:var(--warn-700)}.classes__teaching summary{gap:var(--space-2);cursor:pointer}.classes__teaching ul{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.start{max-width:60ch}.start h2{margin:0}.plan__decisions h3{font-size:var(--text-base);margin:0}.plan__lines{gap:var(--space-1);margin:var(--space-2) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.plan__line{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunk);flex-wrap:wrap;display:flex}.plan__line--ask{border:1px solid var(--line);background:var(--surface)}.plan__code{min-width:6rem;font-weight:var(--weight-bold)}.plan__name{flex:12rem}.plan__who{flex:14rem}.plan__size{margin-left:auto}.plan__warn{color:var(--warn-700)}.plan__note{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--brand-50);margin:0}.plan__rest summary{cursor:pointer;font-weight:var(--weight-medium)}.plan__group{margin-top:var(--space-2)}.plan__group summary{padding:var(--space-1) 0;cursor:pointer;font-weight:var(--weight-medium);color:var(--ink-700)}.plan__group .plan__lines{margin-left:var(--space-4)}.planner__foot{gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--line);background:var(--surface);position:sticky;bottom:0}.plan__bulk{gap:var(--space-2);margin-top:var(--space-2)}.seg{padding:var(--hairline);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);font-size:var(--text-sm);display:inline-flex}.seg label{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-pill);cursor:pointer;display:inline-flex}.seg label:has(input:checked){background:var(--surface);box-shadow:var(--shadow-sm);font-weight:var(--weight-medium)}.seg input{opacity:0;pointer-events:none;position:absolute}.seg label:has(input:focus-visible){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:1px}.plan__numbers{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.plan__numbers .fld input[type=number]{width:8rem;min-width:0}.expected>summary{cursor:pointer}.expected:not([open]){gap:0}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--btn-h);padding:var(--space-1) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);background:var(--brand-600);color:var(--on-brand-600);border:1px solid transparent;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--brand-700);color:var(--on-brand-700)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--secondary{background:var(--surface);color:var(--ink-900);border:1px solid var(--line-control)}.btn--secondary:hover:not(:disabled){background:var(--surface-sunk);color:var(--ink-900)}.btn--ghost{color:var(--ink-700);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--ink-50);border-color:var(--line);color:var(--ink-900)}.btn--icon{width:36px;padding:0}.btn-group{align-items:center;gap:var(--hairline);padding:var(--hairline);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-sunk);display:inline-flex}.btn-group>.btn{min-height:var(--btn-h-sm);border-radius:var(--radius-sm)}.btn-group>.btn--icon{width:32px}.btn-group>.btn--ghost:hover:not(:disabled){background:var(--surface);box-shadow:var(--shadow-sm)}.btn-group:has(.sharebar){display:contents}.btn--danger{background:var(--danger-600);color:#fff}.btn--danger:hover:not(:disabled){background:var(--danger-700)}label.btn:has(>input:focus-visible){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}.confirm__warn{font-size:var(--text-sm)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.panel h2{font-size:var(--text-md);font-weight:var(--weight-bold);letter-spacing:-.01em;line-height:1.3}.panel h3{font-size:var(--text-base);color:var(--ink-700)}.scroller{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.fld.invite__email{min-width:min(16rem,100%)}.logo-preview{object-fit:contain;width:auto;max-width:200px;height:32px}.createrow{align-items:start;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));display:grid}.createrow .fld:has(.checkset){grid-column:span 2}.createrow .fld--submit{place-self:end start}.createrow .fld:not(.fld--submit){min-width:0;max-width:100%}.createrow .fld:not(.fld--submit) select{width:100%;min-width:0}.createrow .fld:not(.fld--submit) input:not(:is([type=checkbox],[type=radio])){width:100%;min-width:0}form:has(.fld__err:not(.fld__err--idle)) .fld--submit{padding-bottom:var(--fld-err-line)}.row:has(>.fld>.fld__err){align-items:flex-end}.row:has(>.fld>.fld__err:not(.fld__err--idle))>.fld:not(:has(>.fld__err:not(.fld__err--idle))){padding-bottom:var(--fld-err-line)}.row:has(>.fld>.fld__err:not(.fld__err--idle))>.btn{margin-bottom:var(--fld-err-line)}.row:has(>.fld)>.btn{min-height:max(38px, var(--btn-h));padding-inline:var(--space-4);font-size:var(--text-sm)}.fld{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.fld>span:first-child{font-weight:var(--weight-medium);color:var(--ink-700)}.fld input:not(:is([type=checkbox],[type=radio])){padding:var(--space-2) var(--space-3);border:1px solid var(--line-control);border-radius:var(--radius-md);background:var(--surface);min-width:180px}.fld input[aria-invalid=true]{border-color:var(--danger-600)}.fld.fld--short{max-width:20rem}.fld input[type=color]{width:3rem;min-width:3rem;height:2.5rem;padding:2px}.fld__req{color:var(--danger-700)}.fld__err--idle{display:none}.fld__err{line-height:1.5;font-size:var(--text-xs);color:var(--danger-700)}.status-msg{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--danger-50);color:var(--danger-700);font-size:var(--text-sm)}.btn--sm{min-height:var(--btn-h-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}.fld select{padding:var(--space-2) var(--space-3);border:1px solid var(--line-control);border-radius:var(--radius-md);background:var(--surface);min-width:180px;max-width:100%}@media (width<=440px){.fld{min-width:0;max-width:100%}.fld select,.fld input{width:100%;min-width:0}}.fld select[aria-invalid=true]{border-color:var(--danger-600)}.invitations{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.roomlist__filters{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.roomlist__filters>.fld{flex:7rem;min-width:0}.roomlist__filters>label.row{white-space:nowrap;flex:none}.roomlist__filters input,.roomlist__filters select{width:100%;min-width:0}.roomlist__free{gap:var(--space-1);border:0;flex-basis:100%;grid-template-columns:1fr 1.4fr 1fr;margin:0;padding:0;display:grid}.roomlist__free legend{margin-bottom:var(--space-1);color:var(--ink-700);padding:0}.roomlist__free--on{padding:var(--space-2);border:1px solid var(--brand-300);border-radius:var(--radius-md);background:var(--brand-50)}.roomlist__free--on legend{padding-inline:var(--space-1)}.data-checks{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.data-check{gap:2px;display:grid}.data-check a{justify-self:start;min-height:24px;padding-block:2px;display:inline-block}.roomlist__active{color:var(--brand-700);font-size:var(--text-sm);flex-wrap:nowrap;flex-basis:100%;margin:0}.roomlist__items{gap:var(--space-2)}.roomlist__head{margin:0 0 var(--space-1);padding:0 var(--space-2)}.roomlist__rooms{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.roomlist__row{align-items:center;gap:var(--space-2);display:flex}.entitylist__item.roomlist__open{min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:auto;justify-content:flex-start;align-items:flex-start;gap:0}.roomlist__code{font-weight:var(--weight-bold)}.roomlist__meta{font-weight:var(--weight-normal)}.switch{border:1px solid var(--line-control);background:var(--surface-sunk);cursor:pointer;border-radius:999px;flex:none;width:2.25rem;height:1.25rem;padding:0;position:relative}.switch:after{content:"";background:var(--ink-500);border-radius:50%;width:calc(1.25rem - 4px);height:calc(1.25rem - 4px);transition:transform .12s;position:absolute;top:1px;left:1px}.switch[aria-checked=true]{border-color:var(--brand-500);background:var(--brand-500)}.switch[aria-checked=true]:after{background:var(--surface);transform:translate(1rem)}.switch:disabled{opacity:.6;cursor:progress}.switch:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.drop-target{border-radius:var(--radius-md);transition:background-color .12s,box-shadow .12s}.course-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.issue{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--line-soft)}.issue p{font-size:var(--text-sm)}.issue__lessons{gap:var(--space-1);flex-wrap:wrap;display:flex}.issue__lesson{padding:var(--hairline) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunk);color:var(--ink-900);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer}.issue__lesson:hover{border-color:var(--brand-300);background:var(--brand-50);color:var(--brand-700)}.issue__lesson:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.agenda{gap:var(--space-3);flex-direction:column;display:none}.agenda__day{padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.agenda__day h2{margin:0 0 var(--space-2);font-size:var(--text-base)}.agenda__day ul{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.agenda__day li{gap:var(--space-3);display:flex}.agenda__when{width:6.5rem;color:var(--ink-700);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:none}.agenda__date{color:var(--warn-700);font-size:var(--text-sm);font-weight:600}.agenda__cancelled strong{text-decoration:line-through}.agenda__what{flex-direction:column;min-width:0;display:flex}.agenda__what .u-muted{font-size:var(--text-sm)}.agenda__name{font-weight:var(--weight-normal)}.agenda__none{color:var(--ink-500);font-size:var(--text-sm);margin:0}.person-week{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.person-week__day{padding:var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.person-week__day h3{margin:0 0 var(--space-2);font-size:var(--text-base)}.person-week__day ul{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.person-week__day li{flex-direction:column;display:flex}.person-week__day--today{border-color:var(--brand-500);box-shadow:inset 0 0 0 1px var(--brand-500)}@media (width<=640px){.agenda{display:flex}.agenda-wide{display:none}p.agenda{display:block}}.panic-surface{z-index:100;padding:var(--space-4);background:color-mix(in srgb, var(--ink-900) 45%, transparent);place-items:center;display:grid;position:fixed;inset:0}.panic-surface__card{gap:var(--space-3);max-width:32rem;padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);flex-direction:column;align-items:flex-start;display:flex}.panic-surface__card p{margin:0}.panic-surface__title{font-size:var(--text-lg);font-weight:var(--weight-bold)}.panic-surface__why,.panic-surface__how{color:var(--ink-700)}.section__head{gap:var(--space-2)}.section__head h2,.empty-line{margin:0}.prereq{padding:var(--space-2) var(--space-3);margin:0}.disclosure{border-top:1px solid var(--line)}.disclosure:first-child{border-top:0}.disclosure__head{padding:var(--space-1) 0;justify-content:space-between}.disclosure__toggle{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-1);color:var(--ink-900);font:inherit;font-weight:var(--weight-medium);text-align:left;cursor:pointer;background:0 0;border:0;display:inline-flex}.disclosure__marker{color:var(--ink-500);transition:transform var(--duration-fast) var(--ease);display:inline-flex;transform:rotate(-90deg)}.disclosure.is-open .disclosure__marker{transform:rotate(0)}.disclosure__body{padding:0 0 var(--space-2) var(--space-5)}.filterbar{gap:var(--space-3)}.tbl{--pick-w:2.5rem;border-collapse:collapse;width:100%;font-size:var(--text-base)}.tbl th,.tbl td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--line-soft);white-space:nowrap}.tbl th{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500);background:var(--surface-sunk);position:sticky;top:0}.tbl th[scope=row]{text-transform:none;letter-spacing:normal;font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--ink-900);z-index:1;background:var(--surface);position:sticky;top:auto;left:0}.tbl.progress tbody :is(th[scope=row],td.u-num) a{position:relative}.tbl.progress tbody :is(th[scope=row],td.u-num) a:before{content:"";position:absolute;inset:-8px}.tbl:where(:not(.grid-tbl--week)) tbody tr:nth-child(2n) :is(td,th){background-color:color-mix(in srgb, var(--surface-sunk) 55%, var(--surface))}.tbl:where(:not(.grid-tbl--week)) tbody tr:hover :is(td,th){background-color:var(--brand-50)}.tbl tbody tr:last-child :is(td,th){border-bottom:0}.tbl .tbl__pick{z-index:2;width:var(--pick-w);min-width:var(--pick-w);max-width:var(--pick-w);text-align:center;background:var(--surface);padding-inline:0;position:sticky;left:0}.tbl .tbl__hit{min-block-size:var(--target-min);cursor:pointer;place-items:center;display:grid}.tbl thead .tbl__pick{z-index:3;background:var(--surface-sunk);top:0}.tbl:has(.tbl__pick) th[scope=row]{left:var(--pick-w)}.tbl tbody tr.row--picked :is(td,th){background:color-mix(in srgb, var(--brand-500) 8%, var(--surface))}.tbl__num{text-align:right;font-variant-numeric:tabular-nums}.tbl-panel{scroll-margin-top:calc(var(--space-16) + var(--space-2))}.panel.scroller{padding:0;overflow:auto hidden}.panel.tbl-panel{padding:0;overflow:hidden}.panel.tbl-panel .tbl-search{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line-soft)}.grid-tbl th[scope=row]{background:var(--surface);z-index:2;font-weight:var(--weight-medium);text-transform:none;letter-spacing:0;font-size:var(--text-base);color:var(--ink-900);position:sticky;left:0}.grid-tbl .cell{min-width:var(--cell-w);vertical-align:top;padding:var(--space-1)}.grid-tbl .cell:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.chip{--chip-color:var(--brand-500);width:100%;height:var(--chip-h);padding:var(--space-1) 6px var(--hairline);border-inline:var(--chip-edge) solid var(--chip-color);border-radius:var(--chip-radius);background:color-mix(in srgb, var(--chip-color) var(--chip-tint), var(--surface));box-shadow:var(--shadow-sm);text-align:left;cursor:default;transition:background var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease);grid-template-rows:auto 1fr auto;display:grid;position:relative}.chip[draggable=true]{cursor:grab}.chip[draggable=true]:active{cursor:grabbing}.chip:hover{background:color-mix(in srgb, var(--chip-color) 13%, var(--surface));box-shadow:var(--shadow-md)}.chip.chip--selected{outline:2px solid var(--brand-600)}.chip.chip--conflict{border-color:var(--danger-600);box-shadow:inset 0 0 0 1px var(--danger-600)}.chip.chip--rule{border-color:var(--danger-600)}.chip.chip--bulk{background:color-mix(in srgb, var(--brand-500) 12%, var(--surface));box-shadow:inset 0 0 0 2px var(--brand-500)}.chip.chip--glow{outline:3px solid var(--warn-600);outline-offset:1px}.chip.chip--solved{outline:2px dashed var(--brand-500);outline-offset:1px}.chip.chip--cancelled{opacity:.6}.chip.chip--cancelled .chip__code{text-decoration:line-through}.chip .chip__date{text-align:center;min-width:0;font-size:var(--text-xs);color:var(--warn-700);white-space:nowrap;text-overflow:ellipsis;grid-row:2;align-self:center;font-weight:600;overflow:hidden}.chip[draggable=true]:before{content:"";background:radial-gradient(circle, var(--ink-400) 1px, transparent 1.3px) 0 0/4px 3px;opacity:.6;width:18px;height:3px;position:absolute;top:2px;left:50%;transform:translate(-50%)}.chip__top{min-width:0;margin-top:var(--hairline);grid-template-columns:1fr minmax(0,auto) 1fr;align-items:center;display:grid}.chip__top>:first-child{justify-self:start}.chip__top>:last-child{justify-self:end}.chip__code{text-overflow:ellipsis;min-width:0;font-size:var(--text-lg);white-space:nowrap;color:var(--ink-950);display:block;overflow:hidden}.chip__warn{margin-left:var(--space-1);vertical-align:middle;color:var(--danger-700);display:inline-flex}.pin-toggle,.chip__open,.chip .pin-toggle{position:relative}.pin-toggle:before,.chip__open:before,.chip .pin-toggle:before{content:"";position:absolute;inset:-6px}.chip__open,.chip .pin-toggle{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--ink-400);cursor:pointer;transition:color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.chip__open:hover,.chip .pin-toggle:hover{color:var(--ink-900);background:color-mix(in srgb, var(--ink-900) 9%, transparent)}.chip:hover .pin-toggle,.chip:hover .chip__open{color:var(--ink-700)}.chip:focus-within .pin-toggle{color:var(--ink-700)}.chip:focus-within .chip__open{color:var(--ink-700)}.chip .pin-toggle.active{color:var(--warn-700);background:0 0}.chip:is(:hover,:focus-within) .pin-toggle.active{color:var(--warn-700);background:0 0}@media (hover:hover) and (pointer:fine){.chip .pin-toggle:not(.active),.chip .chip__open{opacity:0;transition:opacity var(--duration-fast) var(--ease)}.chip:is(:hover,:focus-within) :is(.pin-toggle,.chip__open){opacity:1}}.chip__slot{width:22px}.chip--document .chip__top{grid-template-columns:minmax(0,1fr)}.chip--document .chip__top>*{justify-self:center}.chip__meta{place-content:flex-end space-between;align-items:center;column-gap:var(--space-2);min-width:0;font-size:var(--text-xs);color:var(--ink-700);flex-wrap:wrap;grid-row:3;row-gap:0;line-height:1.25;display:flex}.chip__item{--reach:max(0px, calc((24px - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach));white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;display:inline-block;overflow:hidden}.chip__item .icon{vertical-align:-2px;width:12px;height:12px;color:var(--ink-500);margin-right:3px}.chip__item:is(a){color:inherit;border-radius:var(--radius-sm);text-decoration:none}.chip__item:is(a):hover{color:var(--link-text);text-decoration:underline}.chip__item:is(a):hover .icon{color:currentColor}.chip__meta>:not(.chip__lect){flex-shrink:0;max-width:55%}.chip__study-years-line{align-items:center;min-width:0;display:inline-flex;position:relative}.chip__study-years-line--more{max-width:50%}.chip__study-years-line--more .chip__study-year{text-overflow:clip;padding-right:1.7rem;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 1.9rem),transparent calc(100% - 1.2rem));mask-image:linear-gradient(90deg,#000 calc(100% - 1.9rem),transparent calc(100% - 1.2rem))}.chip__more{padding:0 var(--space-1);border:1px solid var(--line-control);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-700);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;line-height:1.4;position:absolute;top:50%;right:0;transform:translateY(-50%)}.chip__more:before{content:"";position:absolute;inset:-4px}.chip__more:hover{border-color:var(--ink-500);color:var(--ink-900)}.chip__more:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.chip--document .chip__more{cursor:default}.chip.chip--study-years-open{z-index:20}:is(.grid-tbl--week td.cell,.minigrid__tbl td.minigrid__cell):has(>.chip--study-years-open){z-index:20;overflow:visible}.chip__study-years{top:calc(100% - var(--space-1));left:var(--space-1);z-index:6;gap:var(--hairline);min-width:7rem;padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);font-size:var(--text-xs);color:var(--ink-700);flex-direction:column;display:flex;position:absolute}.spinner{width:12px;height:12px;margin-right:var(--space-2);border:2px solid var(--line);border-top-color:var(--brand-500);vertical-align:-1px;border-radius:50%;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.chip-select{top:50%;left:var(--space-1);z-index:2;line-height:0;display:none;position:absolute;transform:translateY(-50%)}.chip-select input{margin:0}@media (hover:none) and (pointer:coarse){:root.selecting .chip-select{display:inline-flex}.chip{-webkit-user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.grid-tbl--pending .cell{cursor:copy}.grid-tbl--pending .cell:hover{outline:1px dashed var(--brand-300);outline-offset:-3px}.grid-tbl--week{--grid-head-row:calc(var(--text-xs) + var(--space-2) * 2 + 2px)}.grid-tbl--week tbody tr.stripe :is(td,th){background-color:color-mix(in srgb, var(--surface-sunk) 55%, var(--surface))}.grid-tbl--week td.cell{--cell-wash:none;--cell-stripe:none;background-image:var(--cell-wash), var(--cell-stripe)}.grid-tbl--week tbody tr:hover td.cell{--cell-wash:linear-gradient(var(--grid-hover), var(--grid-hover))}.grid-tbl--week tbody tr:hover th{background-image:linear-gradient(var(--grid-hover), var(--grid-hover))}.grid-tbl--week td.cell{scroll-margin-top:calc(var(--grid-head-row) * 2)}.grid-tbl--week .grid-spacer td{background:0 0;border:0;padding:0}.grid-tbl--week thead th{height:var(--grid-head-row);padding-block:var(--space-2);z-index:3;line-height:1}.grid-tbl--week thead tr:nth-child(2) th{top:var(--grid-head-row)}.grid-tbl--week .corner{z-index:4;top:0;left:0}.grid-tbl--week .corner__rooms{--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach));font-weight:var(--weight-normal);text-transform:none;letter-spacing:normal;display:block}.grid-tbl--week tr.rowgroup th{text-align:left;text-transform:none;letter-spacing:0;font-size:var(--text-sm);color:var(--ink-900);background:var(--surface-sunk);border-top:var(--cell-rule) solid var(--line);box-shadow:inset 0 1px 0 var(--line);border-bottom:var(--cell-rule) solid var(--line-soft);padding-block:var(--space-1);position:static}.grid-tbl--week tr.rowgroup th .badge{margin-left:var(--space-2)}.grid-tbl--week:has(tr.rowgroup) tbody th[scope=row]{padding-left:var(--space-5);font-weight:var(--weight-normal)}.grid-tbl--week th.daygroup{text-align:center;border-left:2px solid var(--line);color:var(--ink-700)}.grid-tbl--week th.daygroup.active{background:var(--brand-50);color:var(--brand-700);box-shadow:inset 0 -2px 0 var(--brand-600)}.grid-tbl--week .daygroup__label{left:calc(var(--corner-w,0px) + var(--space-3));right:var(--space-3);display:inline-block;position:sticky}.grid-tbl--week .cell{min-width:var(--cell-w)}.grid-tbl--week .cell.cell--day-start{border-left:2px solid var(--line)}.panel.scroller--week{max-height:clamp(20rem, 100dvh - var(--board-top,24rem), 60rem);overscroll-behavior-x:contain;position:relative;overflow:auto}.scroller-edge{--corner-w:0px;min-width:0;position:relative}.scroller-edge:after{content:"";border-radius:0 var(--radius-lg) var(--radius-lg) 0;opacity:0;pointer-events:none;width:40px;transition:opacity var(--duration-fast) var(--ease);background:linear-gradient(270deg,rgba(0,0,0,.1),transparent);position:absolute;top:1px;bottom:1px;right:1px}.scroller-edge--more:after{opacity:1}.scroller-edge__page{z-index:4;width:max(2rem, var(--target-min));height:max(2rem, var(--target-min));border:1px solid var(--line-control);background:var(--surface);color:var(--ink-700);box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.scroller-edge__page .icon{transform:rotate(-90deg)}.scroller-edge__page:hover{color:var(--ink-900);border-color:var(--ink-500)}.scroller-edge__page:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.scroller-edge__page[hidden]{display:none}.scroller-edge__next{right:var(--space-2)}.scroller-edge__page--back{left:calc(var(--corner-w) + var(--space-2))}.scroller-edge__page--back .icon{transform:rotate(90deg)}.gridbar{align-items:center;gap:var(--space-2);flex-wrap:wrap}.gridbar .daybar{flex-wrap:nowrap;flex:0 auto;min-width:0;margin-bottom:0;overflow-x:auto}.gridbar .gridbar__search{flex:150px;min-width:120px}.gridbar .gridbar__search input{width:100%;min-width:0}@media (width<=440px){.gridbar .gridbar__search{flex:90px;min-width:80px}}.gridbar .gridbar__toggle{--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach));align-items:center;gap:var(--space-1);margin-right:var(--space-2);font-size:var(--text-sm);color:var(--ink-700);white-space:nowrap;cursor:pointer;display:inline-flex}@media (width<=440px){.gridbar .gridbar__toggle{font-size:var(--text-xs)}}@media (width<=1519px){.gridbar{gap:var(--space-1)}.gridbar .hint{display:none}}.dayjump{padding:var(--space-1) var(--space-2);border:1px solid var(--line-control);border-radius:var(--radius-pill);background:var(--surface);min-width:2.75rem;color:var(--ink-700);font-size:var(--text-sm);cursor:pointer}.dayjump:hover{background:var(--surface-sunk);color:var(--ink-900)}.dayjump.active{background:var(--brand-600);border-color:var(--brand-600);color:var(--on-brand-600);font-weight:var(--weight-bold)}.minigrid{padding:0}.minigrid__scroll{overflow:auto hidden}.minigrid.minigrid--pending .cell{cursor:copy}.minigrid.minigrid--pending .cell:hover{outline:1px dashed var(--brand-300);outline-offset:-3px}.minigrid__head{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line-soft);display:flex}.minigrid__title{font-size:var(--text-md);margin:0}.minigrid__tbl{--minigrid-hours:9;width:100%;min-width:calc(var(--minigrid-hours) * var(--cell-w) + 6rem);table-layout:fixed}.minigrid__tbl th,.minigrid__tbl td{text-align:left}.minigrid__tbl thead th{border-bottom:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;position:static;overflow:hidden}.minigrid__tbl th.corner{width:6rem}.minigrid__tbl .minigrid__day{white-space:nowrap;font-weight:var(--weight-medium);text-transform:none;letter-spacing:0;font-size:var(--text-sm);color:var(--ink-700);position:static}.minigrid__tbl th[scope=row]{white-space:nowrap;font-weight:var(--weight-medium);text-transform:none;letter-spacing:0;font-size:var(--text-sm);color:var(--ink-700);position:static}.minigrid__tbl td.minigrid__cell{vertical-align:top;min-width:0;padding:var(--hairline);border-left:1px solid var(--line-soft);overflow:visible}.minigrid__tbl td.minigrid__cell:first-of-type{border-left:0}.minigrid__tbl td.minigrid__cell>:is(.chip,.drop-ghost){left:calc(var(--at) * 100%);top:calc(var(--lane) / var(--lanes) * 100% + var(--hairline));z-index:1;width:calc(var(--span) * 100% - var(--hairline) * 2);height:calc(100% / var(--lanes) - var(--hairline) * 2);min-width:1.5rem;position:absolute;overflow:hidden}.minigrid__tbl td.minigrid__cell>:is(.chip,.drop-ghost).chip--study-years-open{overflow:visible}@media (width<=440px){.minigrid__tbl td.minigrid__cell .chip{padding:var(--space-1);border-left-width:2px}.minigrid__tbl td.minigrid__cell .chip__code{font-size:var(--text-xs)}.minigrid__tbl td.minigrid__cell .pin-toggle{display:none}}.util-bar{align-items:center;gap:var(--space-2);min-width:120px;display:flex}.util-bar__track{border-radius:var(--radius-sm);background:var(--surface-sunk);height:8px;box-shadow:inset 0 0 0 1px var(--line);flex:1;overflow:hidden}.util-bar__fill{background:var(--brand-500);height:100%}.util-bar__fill--warn{background:var(--warn-600)}.util-bar__fill--high{background:var(--danger-600)}.util-bar__label{font-variant-numeric:tabular-nums;white-space:nowrap}.util-legend{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.util-legend li{align-items:center;gap:var(--space-1);display:inline-flex}.util-legend__swatch{border-radius:var(--radius-sm);width:14px;height:8px}.entity-cell__link{--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach));color:inherit;text-decoration:none;display:block}.entity-cell__link:hover{text-decoration:underline}.entity-cell__detail{color:var(--ink-500);font-size:var(--text-xs);font-weight:var(--weight-normal);display:block}@media (width<=440px){.entity-cell__detail{display:none}}.entity-cell__actions{gap:var(--space-1);margin-top:2px;display:flex}.entity-cell__action{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--ink-500);cursor:pointer;background:0 0;border:1px solid transparent;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.entity-cell__action:before{content:"";position:absolute;inset:-6px}.entity-cell__action:hover{border-color:var(--danger-600);color:var(--danger-700);background:var(--danger-50)}.entity-cell__action:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.entitylist{gap:var(--space-2)}.entitylist__items{max-height:calc(100dvh - var(--list-top,16rem) - var(--space-4));flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.entitylist__item{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--ink-900);font-size:var(--text-sm);text-decoration:none;display:flex}.entitylist__item:hover{background:var(--surface-sunk)}.entitylist__item.active{background:var(--brand-50);color:var(--brand-700);font-weight:var(--weight-bold)}.entitylist__item .roomlist__meta{flex:none}.entitylist__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.entitylist__item--all{color:var(--link-text)}.entitylist__group summary{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--ink-700);cursor:pointer}.entitylist__group summary:hover{background:var(--surface-sunk)}.entitylist__group summary:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.entitylist__group .entitylist__group-meta{font-weight:var(--weight-normal);padding-left:1.1em;display:block}.entitylist__group .entitylist__items{max-height:none;padding-left:var(--space-3);overflow:visible}.entitylist__setup{margin-top:var(--space-1);align-self:flex-start}@media (width<=640px){.entitylist>.entitylist__items{max-height:12rem}}.tbl-toolbar{margin-bottom:var(--space-2);justify-content:flex-end}.tbl-toolbar:empty{display:none}.search{padding:var(--space-2) var(--space-3);border:1px solid var(--line-control);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-900);font-size:var(--text-sm);min-width:220px}.th-sort{align-items:center;gap:var(--space-1);--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding:0;padding-block:var(--reach);margin-block:calc(-1 * var(--reach));color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;display:inline-flex}.th-sort .arr{color:var(--link-text)}.bulk-bar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border-color:var(--brand-300);background:color-mix(in srgb, var(--brand-500) 6%, var(--surface));flex-wrap:wrap}.bulk-bar .fld input,.bulk-bar .fld select{min-width:0}.edit-panel{z-index:61;max-height:85vh;padding:var(--space-4);border-top:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-lg);position:fixed;inset:auto 0 0;overflow-y:auto}.edit-panel :is(input,select){width:100%;min-width:0}@media (width<=640px){.bulk-bar{z-index:20;box-shadow:var(--shadow-lg);border-radius:0;margin:0;position:fixed;inset:auto 0 0}}.bulk-bar__count{color:var(--brand-700)}.bulk-bar__shift input{width:4.5rem}.bulk-bar__danger{color:var(--danger-700)}.tbl-pager{justify-content:center;gap:var(--space-3);margin-top:var(--space-3);z-index:2;padding-block:var(--space-2);background:var(--surface);border-top:1px solid var(--line-soft);position:sticky;bottom:0}.tbl tr.row--editing{display:none}.tbl tr.row--opens{cursor:pointer}.tbl tr.row--open>th,.tbl tr.row--open>td{background:var(--surface-sunk)}.tbl tbody th[scope=row]>.badge{margin-left:var(--space-2)}.tbl__disclose{width:1.25rem;height:1.25rem;margin-right:var(--space-2);border-radius:var(--radius-sm);color:var(--ink-500);vertical-align:-.25rem;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.tbl__disclose:before{content:"";position:absolute;inset:-6px}.tbl__disclose svg{transition:transform .12s}.tbl__disclose[aria-expanded=true] svg{transform:rotate(90deg)}.tbl__disclose:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.tbl tr.tbl__detail>td{padding:var(--space-3) var(--space-4) var(--space-4);background:var(--surface-sunk);border-top:0}.tbl .edit-row td{vertical-align:top}.row-actions{gap:var(--space-1);white-space:nowrap;justify-content:flex-end;display:flex}@media (width<=440px){.row-actions{gap:0}.row-actions .btn{min-height:var(--btn-h-sm);padding-inline:var(--space-2);font-size:var(--text-xs)}}.tbl th.row-actions-head{width:1%}.row-actions__inline{gap:var(--space-1);display:flex}.row-actions__phone{display:none}.row-actions__menu:not(:popover-open){display:none}.row-actions__menu:popover-open{position-area:bottom span-left;position-try-fallbacks:flip-block;margin:var(--space-1) 0;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);align-items:stretch;gap:var(--space-1);flex-direction:column;min-width:10rem;display:flex;position:fixed}.row-actions__menu:popover-open .btn{justify-content:flex-start}.row-actions__more--phone{display:none}@media (width<=440px){.row-actions__inline{display:none}.row-actions__phone{display:contents}.row-actions__more--phone{display:inline-flex}}.tbl th.row-actions-head,.tbl td.row-actions{background:var(--surface);box-shadow:-1px 0 0 var(--line-soft), -10px 0 10px -10px rgba(0,0,0,.14);position:sticky;right:0}.tbl th.row-actions-head,.tbl th.tbl__num,.tbl td.tbl__num{text-align:right}.confirm__trigger{color:var(--danger-700)}.confirm__trigger[aria-expanded=true]{background:var(--danger-50);border-color:var(--danger-600)}.issued-link__address{font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere;margin:0}.edit-cell{padding:var(--space-1) var(--space-2);border:1px solid var(--line-control);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:6ch;font-size:var(--text-sm)}.checkset{gap:var(--space-2);background:linear-gradient(var(--surface) 30%, transparent) center top, linear-gradient(transparent, var(--surface) 70%) center bottom, radial-gradient(farthest-side at 50% 0, rgba(0,0,0,.16), transparent) center top, radial-gradient(farthest-side at 50% 100%, rgba(0,0,0,.16), transparent) center bottom;background-repeat:no-repeat;background-size:100% 24px,100% 24px,100% 10px,100% 10px;background-attachment:local,local,scroll,scroll;flex-wrap:wrap;align-items:center;max-height:100px;padding:1px;display:flex;overflow-y:auto}.cell--clamp{-webkit-line-clamp:2;line-clamp:2;white-space:normal;-webkit-box-orient:vertical;max-width:380px;display:-webkit-box;overflow:hidden}.checkset__item{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid var(--line-control);border-radius:var(--radius-pill);background:var(--surface);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;display:inline-flex}.checkset__item:has(input:checked){border-color:var(--brand-500);background:var(--brand-50)}.checkset__item:has(input:focus-visible){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}@media (hover:none) and (pointer:coarse){.pin-toggle,.chip__open{width:28px;height:28px}.chip__slot{width:28px}.chip-select input{width:20px;height:20px}}.grid-tbl--week td.cell,.minigrid__tbl td.minigrid__cell{height:var(--cell-h);padding:var(--cell-gutter);border-bottom:var(--cell-rule) solid var(--line-soft);position:relative}.grid-tbl--week td.cell{width:var(--cell-w);max-width:var(--cell-w)}.grid-tbl--week tbody tr[aria-rowindex]>th[scope=row]{height:var(--cell-h);max-width:12rem;padding-block:0}.grid-tbl--week tbody tr[aria-rowindex]>th[scope=row] .entity-cell__link{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.grid-tbl--week tbody tr[aria-rowindex]>th[scope=row] .entity-cell__link>.row{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.grid-tbl--week tbody tr[aria-rowindex]>th[scope=row] .entity-cell__link>.row{flex-wrap:nowrap}.grid-tbl--week tbody tr[aria-rowindex]>th[scope=row]:has(.entity-cell__actions) .entity-cell__link{padding-right:28px}.grid-tbl--week tbody tr[aria-rowindex]>th[scope=row] .entity-cell__actions{top:50%;right:var(--space-2);margin-top:0;position:absolute;transform:translateY(-50%)}:is(.chip,.drop-ghost){--at:0;--span:1;--lane:0;--lanes:1}.grid-tbl--week tbody tr{--lanes:1;--cell-h:calc(var(--lanes) * (var(--chip-h) + var(--cell-gutter)) + var(--cell-gutter) + var(--cell-rule))}.grid-tbl--week td.cell>:is(.chip,.drop-ghost){top:calc(var(--cell-gutter) + var(--lane) * (var(--chip-h) + var(--cell-gutter)));left:calc(var(--at) * 100% + var(--hairline));z-index:1;width:calc(var(--span) * 100% - var(--cell-gutter));height:var(--chip-h);position:absolute}.minigrid__tbl td.cell{--cell-wash:none;--cell-stripe:none;background-image:var(--cell-wash), var(--cell-stripe)}:is(.grid-tbl--week,.minigrid__tbl) td.cell--closed{--cell-stripe:repeating-linear-gradient(135deg, transparent 0 6px, var(--ink-300) 6px 7px)}.drop-ghost{border:2px dashed var(--brand-500);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--brand-500) 10%, transparent);color:var(--brand-700);font-size:var(--text-xs);font-weight:var(--weight-bold);pointer-events:none;justify-content:center;align-items:center;display:flex}td.drop--refused>.drop-ghost{border-color:var(--danger-600);background:color-mix(in srgb, var(--danger-600) 10%, transparent);color:var(--danger-700)}.grid-tbl--week td.cell[data-col-hover]{--cell-wash:linear-gradient(var(--grid-hover), var(--grid-hover))}.tbl-drop{border-radius:var(--radius-lg);display:block}.tbl-drop--active{outline:2px dashed var(--brand-500);outline-offset:4px}.edit-cell__parts{gap:var(--space-1);flex-wrap:wrap;display:flex}.edit-cell__parts .edit-part{flex-direction:column;min-width:7rem;display:flex}.icon{vertical-align:-.125em;flex:none;display:inline-block}.status-msg{align-items:center;gap:var(--space-2);display:flex}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--ink-50);color:var(--ink-700);display:inline-flex}.badge--ok{background:var(--ok-50);color:var(--ok-700)}.badge--warn{background:var(--warn-50);color:var(--warn-700)}.badge--error{background:var(--danger-50);color:var(--danger-700)}.badge--neutral{background:var(--surface-sunk);color:var(--ink-500);font-weight:var(--weight-normal)}.badge__label{display:inline-block}.badge__label:first-letter{text-transform:uppercase}.hint{color:var(--ink-500);font-size:var(--text-sm);font-weight:var(--weight-normal);letter-spacing:normal;cursor:help}h1>.hint,h2>.hint,.pagehead>.hint{margin-left:var(--space-2);vertical-align:middle;font-size:var(--text-md)}.empty-state{max-width:34rem;margin:var(--space-12) auto;padding:var(--space-8) var(--space-6);text-align:center;align-items:center}.empty-state p{margin-inline:auto}.empty-state .row{justify-content:center}.empty-state__code{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.12em;color:var(--brand-text)}.load-error__said{font-weight:var(--weight-medium);color:var(--ink-900)}.toasts{bottom:var(--space-5);right:var(--space-5);z-index:100;gap:var(--space-2);max-width:360px;max-height:calc(100dvh - var(--toast-offset) - var(--space-5));pointer-events:none;flex-direction:column;display:flex;position:fixed;overflow-y:auto}.toast{pointer-events:auto;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--ink-900);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-bold);box-shadow:var(--shadow-lg);animation:toast-in var(--duration-normal) var(--ease);display:flex}.toast__text{flex:1}.toast__count{border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;background:rgba(255,255,255,.22);flex:none;padding:0 6px}.toast__action{color:inherit;border-color:rgba(255,255,255,.45);flex:none;margin-block:-4px}.toast__action:hover{background:rgba(255,255,255,.18)}.toast__close{padding:var(--hairline) 6px;border-radius:var(--radius-sm);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex:none;margin:-2px -6px -2px 0;line-height:1}.toast__close:hover{background:rgba(255,255,255,.18)}.toast.ok{background:var(--ok-700)}.toast.err{background:var(--danger-700)}.toast.info{background:var(--ink-700)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}.import-progress{margin-block:var(--space-2);font-size:var(--text-sm)}.import-progress__status{margin-block:var(--space-1);color:var(--ink-700)}.import-progress summary{cursor:pointer}.import-progress ul{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.modal-backdrop{z-index:60;background:rgba(0,0,0,.35);position:fixed;inset:0}.modal{z-index:61;width:min(380px, 100vw - var(--space-8));padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);gap:var(--space-3);outline:none;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.modal h2,.modal p{margin:0}.modal .row{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}.modal .row.modal__fields{justify-content:flex-start;align-items:flex-end}.modal .row.modal__fields>.fld{flex:9rem}.modal .fld>input:not(:is([type=checkbox],[type=radio])){width:100%;min-width:0}.modal .confirm__warn{white-space:normal}.modal .dirty__actions{gap:var(--space-4)}.modal .dirty__discard{color:var(--danger-600)}.modal .feed-address__url{padding:var(--space-2);border:1px solid var(--line-control);border-radius:var(--radius-sm);background:var(--surface-sunk);font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;margin:0}.avail-picker{max-width:360px;margin-bottom:var(--space-4)}.avail-marked{max-width:640px;margin:var(--space-4) auto 0}.avail-marked__list{align-items:baseline;column-gap:var(--space-3);grid-template-columns:auto 1fr;margin:0;padding:0;list-style:none;display:grid}.avail-marked__list li{display:contents}.avail-marked__list .btn{justify-self:start}.avail-legend{gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.avail-key{align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--ink-500);display:inline-flex}.avail-key:before{content:"";border-radius:var(--radius-sm);background:var(--key-bg,var(--surface));border:1.5px solid var(--key-border,var(--line));width:12px;height:12px}.avail-key.avail-no{--key-bg:var(--danger-50);--key-border:var(--danger-600)}.avail-key.avail-maybe{--key-bg:var(--warn-50);--key-border:var(--warn-600)}.avail-key.avail-closed{--key-bg:var(--surface-sunk);--key-border:var(--ink-400)}.avail-key.avail-opened{--key-bg:var(--ok-50);--key-border:var(--ok-700)}.minigrid__cell.avail-no{background:var(--danger-50);box-shadow:inset 0 0 0 1.5px var(--danger-600)}.minigrid__cell.avail-maybe{background:var(--warn-50);box-shadow:inset 0 0 0 1.5px var(--warn-600)}.avail-scroll{overflow-x:auto}@media (width<=599px){.avail-scroll{margin-inline:calc(var(--space-3) * -1);padding-inline:var(--space-3)}}.avail-grid{table-layout:fixed}@media (width<=440px){.avail-grid{min-width:34rem}}.avail-grid th.time,.avail-grid td.time{background:var(--surface);z-index:1;position:sticky;left:0}.avail-grid .avail-line{width:100%;min-width:1.5rem;min-height:1.5rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:inherit;font:inherit;display:block}.avail-grid .avail-line:hover{background:var(--ink-50);text-decoration:underline}.avail-grid td[role=button]{-webkit-user-select:none;user-select:none}.avail-grid th.time,.avail-grid td.time{color:var(--ink-500);font-weight:var(--weight-medium)}.avail-grid td.avail-cell{cursor:pointer;text-align:center;font-size:var(--text-xs);font-weight:var(--weight-bold);transition:background var(--duration-fast) var(--ease)}.avail-grid td.avail-cell:hover{box-shadow:inset 0 0 0 1.5px var(--brand-400)}.avail-grid td.avail-cell:focus-visible{outline:2px solid var(--brand-500);outline-offset:-2px}.avail-grid td.avail-no{background:var(--danger-50);color:var(--danger-700);box-shadow:inset 0 0 0 1.5px var(--danger-600)}.avail-grid td.avail-maybe{background:var(--warn-50);color:var(--warn-700);box-shadow:inset 0 0 0 1.5px var(--warn-600)}.avail-grid td.avail-closed{background:var(--surface-sunk);color:var(--ink-500);font-weight:var(--weight-medium)}.avail-grid td.avail-opened{background:var(--ok-50);color:var(--ok-700);box-shadow:inset 0 0 0 1.5px var(--ok-700)}.avail-grid tbody tr{height:1.5rem}.avail-grid tbody tr.avail-hour :is(td,th){border-top:var(--cell-rule) solid var(--line)}.avail-grid td.avail-cell{white-space:nowrap;padding-block:0;line-height:1.5rem}@media (hover:hover) and (pointer:fine){.avail-grid td.time,.avail-grid .avail-line{padding-block:0}}.popover-backdrop{z-index:60;position:fixed;inset:0}.popover{z-index:61;gap:var(--space-3);width:min(360px, 100vw - var(--space-6));max-height:calc(100vh - var(--space-4));padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);outline:none;flex-direction:column;display:flex;position:fixed;overflow-y:auto}.popover p{margin:0}.popover .miniform{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.popover .fld{flex:140px}.popover .fld>span{font-size:var(--text-xs)}.popover .fld select{width:100%;min-width:0}.popover .issues{gap:var(--space-1);flex-wrap:wrap;display:flex}.popover .suggest{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.popover .popover__delete{margin-left:auto}.popover .popover__part{margin:var(--space-2) 0 0;padding-top:var(--space-2);border-top:1px solid var(--line)}.popover .popover__actions{bottom:calc(var(--space-4) * -1);margin:0 calc(var(--space-4) * -1) calc(var(--space-4) * -1);padding:var(--space-2) var(--space-4) var(--space-4);border-top:1px solid var(--line-soft);background:var(--surface);position:sticky}.popover .fld>input[type=time]{width:100%;min-width:0}.ssel{width:100%;display:block;position:relative}.ssel__input{text-overflow:ellipsis;width:100%}.ssel__menu{z-index:40;max-height:15rem;padding:var(--space-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin:0;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.ssel__option{padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer}.ssel__option.active{background:var(--surface-sunk)}.ssel__option[aria-selected=true]{font-weight:var(--weight-medium)}.ssel__empty{padding:var(--space-2);color:var(--ink-500)}input[type=checkbox]{accent-color:var(--brand-600);vertical-align:-.15em;cursor:pointer;width:1.05em;height:1.05em}input[type=radio]{accent-color:var(--brand-600);vertical-align:-.15em;cursor:pointer;width:1.05em;height:1.05em}input[type=checkbox]:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}input[type=radio]:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}input[type=checkbox]:disabled{cursor:not-allowed;opacity:.55}input[type=radio]:disabled{cursor:not-allowed;opacity:.55}select:not([multiple]){appearance:none;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23646b78' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-2) center;padding-right:calc(var(--space-3) + 14px);cursor:pointer;background-size:14px 14px}select:not([multiple]):disabled{cursor:not-allowed;opacity:.55}@media (hover:none) and (pointer:coarse){input[type=checkbox]{width:20px;height:20px}input[type=radio]{width:20px;height:20px}label:has(>input[type=checkbox]){align-items:center;min-height:44px}label:has(>input[type=radio]){align-items:center;min-height:44px}select:not([multiple]){min-height:44px}}.choice{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;display:flex}.choice input{margin-top:.2rem}.choice:has(input:checked){border-color:var(--brand-500);background:var(--brand-50)}.minutes-input{align-items:center;gap:var(--space-1);display:inline-flex}.minutes-input input{text-align:right;width:5.5rem}.fld .minutes-input input[type=number]{min-width:0}.minutes-input__unit{color:var(--ink-500);font-size:var(--text-sm)}.hours-set{padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md)}.hours-set__name input{min-width:12rem}.hours-set__only{align-items:center;gap:var(--space-1);min-height:var(--target-min);white-space:nowrap;display:inline-flex}.hours-set__days{margin:0;padding:0;list-style:none}.hours-set__day{gap:var(--space-2);padding-block:var(--space-1);border-bottom:1px solid var(--line-soft);flex-wrap:wrap}.hours-set__day-name{width:7rem;font-weight:var(--weight-medium)}.hours-set__add{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap}.chip-token{align-items:center;gap:var(--space-1);padding:0 var(--space-1) 0 var(--space-2);border:1px solid var(--line-control);border-radius:var(--radius-pill);font-size:var(--text-sm);font-variant-numeric:tabular-nums;display:inline-flex}.chip-token--avoid{color:var(--ink-700);border-style:dashed}.chip-token__remove{padding:0 var(--space-1);color:var(--ink-500);font:inherit;cursor:pointer;background:0 0;border:0;position:relative}.chip-token__remove:before{content:"";position:absolute;inset:-6px}.chip-token__remove:hover{color:var(--danger-700)}.chip-token__remove:focus-visible:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.hours-new{align-items:flex-end}.calendar{padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md)}.calendar__name input{min-width:12rem}.calendar__terms{max-width:36rem;margin:0;padding-inline-start:var(--space-5)}.calendar__term{gap:var(--space-2);padding-block:var(--space-1);flex-wrap:nowrap}.calendar__term input{flex:10rem;width:auto;min-width:5rem}.calendar__term .btn{flex:none}.years th[scope=row] input{min-width:9rem}.years td:last-child .row{flex-wrap:nowrap;justify-content:flex-end}.publish{display:inline-flex;position:relative}.publish__readers{padding-inline:var(--space-2);white-space:nowrap;align-self:center}@media (width<=440px){.publish__readers{display:none}}.publish__trigger--pending{font-weight:var(--weight-bold);color:var(--warn-700,var(--ink-900))}.publish__panel{top:calc(100% + var(--space-1));z-index:30;width:min(22rem,90vw);box-shadow:var(--shadow-md,0 4px 16px rgba(0,0,0,.12));position:absolute;right:0}.publish__warn{color:var(--warn-700);background:var(--warn-50);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm,4px)}.versions-list{margin:0;padding:0}.versions-list__entry{padding-block:var(--space-1);border-bottom:1px solid var(--line-soft)}.versions-list__entry summary{cursor:pointer}.this-date{border-top:1px solid var(--line-soft);padding-top:var(--space-2)}.this-date>summary{cursor:pointer}.this-date__body{margin-top:var(--space-2);gap:var(--space-2)}.this-date__move{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap}.this-week__move{flex-basis:100%}.clash-warn{color:var(--warn-700);background:var(--warn-50);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm,4px);flex-basis:100%}.publish__clashes{padding-left:var(--space-3);margin:0}.this-date__extras{margin:0;padding:0}.weeks:not([open]){gap:0}.weeks>summary{cursor:pointer;min-height:1.5rem;line-height:1.5rem;display:list-item}.org-tree{--depth:0;margin:0;padding:0}.org-tree__unit{padding:var(--space-1) 0 var(--space-1) calc(var(--depth) * var(--space-5));border-bottom:1px solid var(--line-soft)}.org-new{flex-wrap:wrap;align-items:flex-end}.staff-year{border-top:1px solid var(--line-soft);padding-top:var(--space-2)}.staff-year__list{margin:0;padding:0}.staff-year__form,.avail-scope{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap}.account-page>.panel{inline-size:100%;max-inline-size:42rem}.sessions{margin:0;padding:0}.sessions>li{padding-block:var(--space-2);border-bottom:1px solid var(--line-soft);align-items:center}.recovery-codes{columns:2;margin:0;padding:0;list-style:none}.two-factor__qr svg{block-size:200px;inline-size:200px}.facilities__form{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap}.cohorts__bar,.cohorts__new{flex-wrap:wrap;align-items:flex-end}.cohorts th[scope=row]{font-weight:var(--weight-medium);white-space:nowrap}.cohorts td:last-child{text-align:end}.cohorts input:not([type=number]){width:12rem}.progression select{min-width:12rem}.year-end__unended{gap:var(--space-1);color:var(--warn-700);align-items:flex-start;margin:0;display:flex}.year-end__reference{display:block}.hours-assign th[scope=row]{font-weight:var(--weight-medium)}.hours-assign select{min-width:min(14rem,50vw)}.hours-year{min-height:var(--target-min);padding:var(--space-1) 0}.hours-program select,.hours-year select{min-width:min(14rem,50vw)}.hours-year__applies{margin:calc(-1 * var(--space-1)) 0 var(--space-2)}.drop--potential{background-color:var(--brand-50);box-shadow:inset 0 0 0 1px var(--brand-300)}.drop--refused{background-color:var(--surface-sunk);box-shadow:none}.drop--active{background-color:var(--brand-100);box-shadow:inset 0 0 0 2px var(--brand-500)}.drop--active.drop--refused{background-color:var(--danger-50);box-shadow:inset 0 0 0 2px var(--danger-700)}.drop--active.drop--refused>.drop-ghost{border-color:var(--danger-700);background:color-mix(in srgb, var(--danger-600) 10%, transparent);color:var(--danger-700)}.is-fresh:is(.chip,.plan-card){animation:settled 2.4s var(--ease)}@keyframes settled{0%{outline:2px solid var(--brand-500);outline-offset:1px}to{outline-offset:1px;outline:2px solid transparent}}@media (prefers-reduced-motion:reduce){.is-fresh:is(.chip,.plan-card){outline:2px solid var(--brand-500);outline-offset:1px;animation:none}}.public{background:var(--surface-sunk);color:var(--ink-900);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0}.public__head{z-index:5;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex;position:sticky;top:0}.public__tt{flex:1;min-width:200px}.public__tt h1{font-size:var(--text-lg);font-weight:var(--weight-heavy);letter-spacing:var(--tracking-tight);margin:0}.public__title{align-items:center;gap:var(--space-2);display:flex}.public__head .mark{width:40px;height:40px;font-size:var(--text-sm);font-weight:var(--weight-heavy);letter-spacing:var(--tracking-tight)}.public__actions{gap:var(--space-2);flex-wrap:wrap;min-width:0;max-width:100%;display:flex}.public__feed{overflow-wrap:anywhere;min-width:0;max-width:100%}.public__print,.public__print-note,.public__qr{display:none}.public__directory{gap:var(--space-2);margin-bottom:var(--space-5);flex-direction:column;display:flex}.public__directory h2{font-size:var(--text-base);margin:0}.public__group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.public__group summary{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-4);cursor:pointer;font-weight:var(--weight-bold);display:flex}.public__group summary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-sm)}.public__group ul{columns:14rem;column-gap:var(--space-6);padding:0 var(--space-4) var(--space-3);margin:0;list-style:none}.public__group li{break-inside:avoid}.public__group a{--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach));color:var(--link-text);text-decoration:none;display:block}.public__group a:hover{text-decoration:underline}.public__sub{color:var(--ink-500);font-size:var(--text-sm)}.public__weeks{gap:var(--space-1) var(--space-3);margin-top:var(--space-1);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.public__weeks span{color:var(--ink-700);flex:1 0 100%;font-weight:600}.public__head .btn{white-space:nowrap;text-decoration:none}.public__download{flex-direction:column;align-items:center;line-height:1.2;display:inline-flex}.public__download-note{font-size:var(--text-xs);font-weight:var(--weight-normal,400);color:var(--ink-500);white-space:normal}.public__main{padding:var(--space-5) var(--space-6) var(--space-8)}.public__tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.doc__pages table{table-layout:fixed}.public__foot{padding:var(--space-4) var(--space-6);color:var(--ink-500);font-size:var(--text-sm);text-align:center}.public__foot a{color:var(--brand-600)}.public__next{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line)}.public__pick{color:var(--ink-700);font-size:var(--text-sm);margin:0}@media (width<=640px){.public__head{padding:var(--space-2) var(--space-4);gap:var(--space-2);position:static}.public__head .brand{display:none}.public__title{font-size:var(--text-base)}.public__weeks{font-size:var(--text-xs)}.public__weeks span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.public__sub{font-size:var(--text-xs)}.public__main{padding:var(--space-3) var(--space-4)}}.list-detail{gap:var(--space-3);align-items:start;display:grid}.list-detail__list{min-width:0}.list-detail__list tbody th a{--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach));display:inline-block}@media (width>=961px){.list-detail--open{grid-template-columns:minmax(0,3fr) minmax(320px,2fr)}.list-detail__pane{top:var(--space-3);position:sticky}}.wizard{z-index:50;padding:var(--space-5) var(--space-3);background:color-mix(in srgb, var(--ink-900) 45%, transparent);place-items:center;display:grid;position:fixed;inset:0;overflow:auto}.wizard__panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(1440px,100%);max-height:100%;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.wizard__head{gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--line);flex:none;align-items:flex-start}.wizard__head h1{font-size:var(--text-2xl);margin:0}.wizard__eyebrow{color:var(--brand-700);font-weight:var(--weight-bold)}.wizard__body{min-height:0;padding:var(--space-5);overflow:auto}.wizard__steps{gap:var(--space-1);padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;margin:0;list-style:none;display:flex}.wizard__steps a{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:var(--ink-700);white-space:nowrap;--reach:max(0px, calc((var(--target-min) - 1lh) / 2));padding-block:var(--reach);margin-block:calc(-1 * var(--reach));text-decoration:none;display:flex}.wizard__steps a:hover{background:var(--brand-50)}.wizard__item--current a{background:var(--brand-50);color:var(--brand-700);font-weight:var(--weight-bold)}.wizard__mark{min-width:1.75rem;height:1.75rem;padding-inline:var(--space-1);border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-bold);flex:none;justify-content:center;align-items:center;display:inline-flex}.wizard__item--done .wizard__mark{border-color:var(--ok-600);background:var(--ok-600);color:#fff}.wizard__item--current .wizard__mark{border-color:var(--brand-600);color:var(--brand-700)}.wizard__step{min-width:0}.wizard__aside{align-self:flex-start}.wizard__ticks,.wizard__days{gap:var(--space-3);flex-wrap:wrap}.wizard__warn{color:var(--warn-700)}.wizard__foot{gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--line);flex:none;align-items:center}}@layer pages,theme;.act-says{color:var(--ok-700)}.act-says--refused{color:var(--danger-600)}.lesson-face__lines{gap:var(--space-1) var(--space-3);margin:var(--space-2) 0 0;grid-template-columns:max-content 1fr;display:grid}.lesson-face__lines dt{color:var(--ink-500)}.lesson-face__lines dd{margin:0}@media print{@page{size:A4 landscape;margin:.35in .3in .4in}.public{background:0 0}.public__head{background:0 0;border-bottom:0;padding:0 0 4mm;position:static}.public__screen,.agenda,.public__actions,.public__directory,.public__foot{display:none}.public__print,.public__print-note,.public__qr{display:block}.public__main{max-width:none;padding:0}.doc__band--week{break-inside:avoid;margin:0 0 4mm}.doc__band--day+.doc__band--day{break-before:page}.doc__band tr{break-inside:avoid}.doc__band table{margin:0 auto}.public--sheet{flex-direction:column;height:7.47in;display:flex}.public--sheet :is(.public__main,.public__print,.doc__pages,.doc__band,.minigrid,.minigrid__scroll){flex-direction:column;flex:1;min-height:0;margin:0;display:flex}.public--sheet .minigrid__tbl{flex:1}.public--sheet .minigrid__tbl td.minigrid__cell>.chip{top:calc(50% - (var(--chip-h) + var(--cell-gutter) * 2) / 2 + var(--lane) * (var(--chip-h) + var(--cell-gutter) * 2) / var(--lanes) + var(--hairline));height:calc((var(--chip-h) + var(--cell-gutter) * 2) / var(--lanes) - var(--hairline) * 2)}}