.ss-msg{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.ss-muted{color:var(--ink-mid)}.ss-summary{grid-template-columns:minmax(240px,1fr) minmax(0,2.6fr);gap:12px;margin-bottom:16px;display:grid}.ss-next{background:var(--ink);color:var(--ink-inverse);border-radius:14px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.ss-next-none{background:var(--surface-elev);color:var(--ink);border:1px solid var(--border)}.ss-next-kicker{font-family:var(--font-dm-sans), sans-serif;letter-spacing:.08em;text-transform:uppercase;opacity:.85;font-size:12px}.ss-next-none .ss-next-kicker,.ss-next-none .ss-next-sub{color:var(--ink-mid);opacity:1}.ss-next-title{font-family:var(--font-display);font-size:26px;line-height:1.15}.ss-next-none .ss-next-title{font-size:20px}.ss-next-when{font-size:16px;font-weight:600}.ss-next-sub{opacity:.85;font-size:15px}.ss-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.ss-tile{background:var(--surface-elev);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:14px;padding:12px 14px}.ss-tile-open{background:var(--open-bg);border-color:var(--open-border)}.ss-tile-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-mid);margin-bottom:4px;font-size:13px}.ss-tile-value{color:var(--ink);font-size:17px;font-weight:600}.ss-tile-sub{color:var(--ink-mid);margin-top:2px;font-size:14px}.ss-tile-unit{color:var(--ink-mid);font-size:14px;font-weight:400}.ss-tile-season{color:var(--ink-mid)}.ss-link{appearance:none;font:inherit;color:var(--amber-text);cursor:pointer;background:0 0;border:0;margin-top:4px;padding:0;font-size:14px;text-decoration:underline}.ss-strip{margin-bottom:16px}.ss-strip-head{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.ss-strip .ss-link{color:var(--blue-text);margin:0 0 0 auto}.ss-strip-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-mid);margin:0;font-size:13px;font-weight:600}.ss-strip-count{color:var(--ink-mid);opacity:.8;font-size:13px}.ss-pill-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.ss-pill{background:var(--blue-bg);min-width:0;color:var(--blue-text);border:1px solid var(--blue-border);border-radius:var(--r);align-items:center;gap:12px;padding:10px 10px 10px 14px;font-size:14px;display:flex}.ss-pill-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ss-pill-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.ss-pill-meta{opacity:.8;white-space:nowrap}.ss-pill-action{white-space:nowrap;flex-shrink:0}.ss-pill-action,.ss-slot-action{appearance:none;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:999px;min-height:32px;padding:2px 12px;font-size:14px;font-weight:500}.ss-pill--live{background:var(--green-bg);color:var(--green-text);border-color:var(--green-border)}.ss-pill-status{background:var(--green-text);min-height:32px;color:var(--green-bg);letter-spacing:.02em;white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:7px;padding:2px 12px;font-size:13px;font-weight:600;display:inline-flex}.ss-live-dot{background:currentColor;border-radius:50%;width:7px;height:7px;position:relative}.ss-live-dot:after{content:"";background:currentColor;border-radius:50%;animation:1.8s ease-out infinite ss-live-pulse;position:absolute;inset:0}@keyframes ss-live-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.ss-live-dot:after{animation:none}}.ss-pill-action:disabled,.ss-slot-action:disabled,.ss-slot-open:disabled{opacity:.5;cursor:default}.ss-board{margin-bottom:20px}.ss-board-nav{align-items:center;gap:8px;margin-bottom:10px;display:flex}.ss-board .day-strip{margin-bottom:6px}.ss-daypick-key{color:var(--ink-mid);align-items:center;gap:6px;margin:0 0 10px;font-size:13px;display:flex}.ss-daypick-key .is-attention{margin-left:10px}.ss-days{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.ss-day{background:var(--surface-elev);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.ss-day-today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.ss-day-past{background:var(--surface-2)}.ss-day-past .ss-day-name{color:var(--ink-mid)}.ss-day-head{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.ss-day-name{font-size:16px;font-weight:600}.ss-day-hours{color:var(--ink-mid);margin-left:auto;font-size:14px}.ss-today-badge{text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:600}.ss-day-flag{background:var(--out-bg);color:var(--out-text);border-radius:var(--r-sm);padding:3px 6px;font-size:14px}.ss-day-empty{font-size:14px}.ss-room{flex-direction:column;gap:4px;display:flex}.ss-room-name{color:var(--ink-mid);text-transform:uppercase;letter-spacing:.04em;font-size:13px}.ss-closed{color:var(--coral-text);text-transform:none;letter-spacing:0}.ss-slot{border-radius:var(--r-sm);justify-content:space-between;align-items:center;gap:6px;min-height:40px;padding:4px 6px 4px 10px;font-size:15px;display:flex}.ss-slot-me{background:var(--green-bg);color:var(--green-text);border:1px solid var(--green-border);font-weight:600}.ss-slot-other{background:var(--surface-2);color:var(--ink-mid)}.ss-slot-na{border:1px dashed var(--border);color:var(--ink-mid)}.ss-slot-open{appearance:none;width:100%;font:inherit;background:var(--open-bg);color:var(--amber-text);border:1px dashed var(--amber-border);cursor:pointer;justify-content:center;font-size:15px;font-weight:600}.ss-slot-open:not(:disabled):hover{border-style:solid}.ss-session{background:var(--blue-bg);color:var(--blue-text);border-radius:var(--r-sm);flex-direction:column;padding:6px 10px;font-size:15px;display:flex}.ss-session-name{font-weight:600}.ss-session-meta{font-size:14px}.ss-section{margin-bottom:20px}.ss-heading{color:var(--ink);margin:0 0 10px;font-size:18px;font-weight:600}.ss-class-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.ss-class-card{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.ss-class-card .btn{align-self:flex-start;margin-top:6px}.ss-class-name{font-size:15px;font-weight:600}.ss-class-meta{color:var(--ink-mid);font-size:14px}@media (max-width:1100px){.ss-summary{grid-template-columns:1fr}}@media (max-width:640px){.ss-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ss-tiles>:last-child{grid-column:1/-1}.ss-tile{padding:10px 12px}.ss-tile-label{font-size:12px}.ss-tile-value{font-size:16px}}@media (max-width:760px){.ss-board-nav .week-stepper{flex:1}.ss-slot{min-height:52px;font-size:16px}.ss-slot-action,.ss-pill-action,.ss-pill-status{min-height:var(--touch);padding:4px 14px;font-size:15px}button.ss-session{min-height:var(--touch)}.ss-pill-grid{grid-template-columns:1fr}.ss-pill{font-size:15px}.ss-pill-name{white-space:normal}.ss-strip .ss-link{min-height:var(--touch);font-size:15px}}.preview-banner{background:var(--coral-bg);color:var(--coral-text);border-bottom:1px solid var(--coral-border);justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:15px;display:flex}.preview-picker{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ss-pill-name,.ss-class-name{appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.ss-pill-name:hover,.ss-class-name:hover{text-decoration:underline}button.ss-session{appearance:none;font:inherit;text-align:left;cursor:pointer;border:0}button.ss-session:hover{box-shadow:inset 0 0 0 1px var(--blue-border)}.ss-class-actions{gap:6px;margin-top:6px;display:flex}.ss-class-card .ss-class-actions .btn{margin-top:0}.ss-details-grid{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 12px;font-size:15px;display:grid}.ss-details-grid dt{color:var(--ink-mid);text-transform:uppercase;letter-spacing:.04em;padding-top:2px;font-size:13px}.ss-details-grid dd{margin:0}.ss-needs{color:var(--amber-text);font-weight:600}.ss-details-text{white-space:pre-line;margin:0 0 10px;font-size:15px;line-height:1.5}.ss-details-text a{color:var(--blue-text)}.ss-cal{background:var(--surface-2);border-radius:var(--r);margin:14px 0;padding:10px 12px}.ss-cal-title{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-mid);margin-bottom:6px;font-size:13px}.ss-cal-buttons{flex-wrap:wrap;gap:6px;display:flex}.ss-cal-buttons a.btn{text-decoration:none}.ss-cal-hint{color:var(--ink-mid);margin:6px 0 0;font-size:13px}.ss-sessions{margin:0;padding:0;font-size:15px;list-style:none}.ss-sessions li{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:5px 0;display:flex}.ss-sessions li:last-child{border-bottom:0}.ss-session-past{color:var(--ink-mid)}.ss-session-no{text-align:right;width:22px;color:var(--ink-mid);font-family:var(--font-dm-mono), monospace;min-height:36px;font-size:14px}.ss-session-links{gap:10px;margin-left:auto;font-size:14px;display:flex}.ss-session-links a{color:var(--blue-text)}.ss-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.ss-title-row .section-title{margin-bottom:0}.self-service>.ss-title-row{justify-content:flex-end;margin:-8px 0 10px}.ss-sub-buttons{margin:12px 0 16px}.ss-sub-copy{gap:6px;display:flex}.ss-sub-copy input{min-width:0;font-family:var(--font-dm-mono), monospace;flex:1;font-size:12px}.ss-sub-notes{color:var(--ink-mid);margin:14px 0 0;padding-left:18px;font-size:14px;line-height:1.5}.ss-sub-notes .ss-link{color:var(--blue-text);margin-top:0}.ss-tile-link{color:inherit;text-decoration:none;transition:border-color .15s;display:block}.ss-tile-link:hover{border-color:var(--amber-border)}.ss-tile-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ss-tile-room2{color:var(--ink-mid);margin-top:1px;font-size:15px;font-weight:500}.ss-tile-cta{color:var(--amber-text);margin-top:4px;font-size:14px;text-decoration:underline}.ss-page-intro{color:var(--ink-mid);margin:0 0 14px;font-size:15px}.ss-room-section{border-left:3px solid var(--border-strong);padding-left:12px}.ss-room-darkroom{border-left-color:var(--amber-border)}.ss-heading .ss-count,.ss-past .ss-count{color:var(--ink-mid);margin-left:8px;font-size:13px;font-weight:500}.ss-week{margin-bottom:10px}.ss-week-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-mid);margin-bottom:4px;font-size:13px}.ss-open-list{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);margin:0;padding:0;list-style:none}.ss-open-row{border-bottom:1px solid var(--border);grid-template-columns:110px 90px 1fr auto;align-items:center;gap:8px;padding:10px 12px;font-size:16px;display:grid}.ss-open-row:last-child{border-bottom:0}.ss-open-date{font-weight:600}.ss-open-hours,.ss-open-count{color:var(--ink-mid);font-size:15px}.ss-open-flags{flex-wrap:wrap;align-items:center;gap:4px;display:flex}@media (max-width:480px){.ss-open-row{grid-template-columns:1fr auto;row-gap:2px}.ss-open-hours,.ss-open-flags{grid-column:1}.ss-open-take{grid-area:1/2}}.ss-tile-value.ss-muted{color:var(--ink-mid);font-weight:500}.self-service a.btn{text-decoration:none}.ss-covered{color:var(--green-text);background:var(--green-bg);border:1px solid var(--green-border);border-radius:var(--r-sm);margin-bottom:16px;padding:6px 10px;font-size:15px}.ss-search{min-width:160px;max-width:280px;font:inherit;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border-strong);border-radius:var(--r-sm);flex:1;padding:6px 10px;font-size:15px}@media (max-width:760px){.ss-search{max-width:none;min-height:var(--touch);flex-basis:100%;font-size:16px}}.ss-search:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ss-class-list{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);margin:0;padding:0;list-style:none;overflow:hidden}.ss-class-list li+li{border-top:1px solid var(--border)}.ss-class-row{appearance:none;width:100%;min-height:56px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.ss-class-row:hover{background:var(--surface-2)}.ss-class-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ss-class-row-ended .ss-class-row-name{color:var(--ink-mid);font-weight:500}.ss-class-row-main{flex-direction:column;min-width:0;display:flex}.ss-class-row-name{font-size:16px;font-weight:600}.ss-class-row-meta{color:var(--ink-mid);font-size:15px}.ss-class-row-side{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;max-width:45%;font-size:14px;display:flex}.ss-class-row-teacher{color:var(--ink-mid)}.ss-status{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-sm);padding:1px 6px;font-size:12px;font-weight:600}.ss-status-running{background:var(--green-bg);color:var(--green-text)}.ss-status-ended{background:var(--surface-2);color:var(--ink-mid)}.ss-status-open{background:var(--open-bg);color:var(--amber-text)}@media (max-width:640px){.ss-class-row{flex-direction:column;align-items:flex-start;gap:4px}.ss-class-row-side{justify-content:flex-start;max-width:none}}.ss-title-actions{flex-wrap:wrap;gap:6px;display:flex}a.ss-day-flag{text-decoration:none}a.ss-day-flag:hover{text-decoration:underline}a.ss-day-flag:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ss-availability{max-width:760px}.ss-prefs{background:var(--surface-elev);border:1px solid var(--border);border-radius:14px;overflow:hidden}.ss-pref-day{align-items:center;gap:12px;min-height:60px;padding:8px 8px 8px 16px;display:flex}.ss-pref-day+.ss-pref-day{border-top:1px solid var(--border)}.ss-pref-name{flex-direction:column;flex:1;min-width:0;display:flex}.ss-pref-legend{color:var(--ink);font-size:16px;font-weight:600}.ss-pref-hours{font-family:var(--font-dm-mono), monospace;color:var(--ink-mid);white-space:nowrap;font-size:13px}.ss-seg{background:var(--surface-3);border-radius:11px;flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;width:min(270px,62%);padding:3px;display:grid}.ss-seg-opt{cursor:pointer;position:relative}.ss-seg-opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.ss-seg-opt span{min-height:40px;color:var(--ink-mid);border-radius:9px;justify-content:center;align-items:center;font-size:15px;display:flex}.ss-seg-opt:hover span{color:var(--ink)}.ss-seg-opt input:focus-visible+span{outline:3px solid var(--focus);outline-offset:0}.ss-seg-opt input:checked+span{background:var(--surface-elev);color:var(--ink);box-shadow:0 0 0 1px var(--border-strong), 0 1px 2px #00000024;font-weight:600}.ss-seg-prefer input:checked+span{color:var(--green-text)}.ss-seg-avoid input:checked+span{color:var(--coral-text)}.ss-seg[aria-disabled=true]{opacity:.6}.ss-seg[aria-disabled=true] .ss-seg-opt,.ss-seg[aria-disabled=true] .ss-seg-opt input{cursor:not-allowed}.ss-range-list{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);margin:0 0 10px;padding:0;list-style:none;overflow:hidden}.ss-range{justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:6px 8px 6px 14px;display:flex}.ss-range+.ss-range{border-top:1px solid var(--border)}.ss-range-editing{outline:2px solid var(--accent);outline-offset:-2px}.ss-range-main{flex-direction:column;min-width:0;font-size:16px;display:flex}.ss-range-main .ss-muted{overflow-wrap:anywhere;font-size:14px}.ss-range-dates{color:var(--ink);font-weight:600}.ss-range-actions{flex:none;gap:2px;display:flex}.ss-add-range{justify-content:center}.ss-range-form{flex-direction:column;gap:14px;display:flex}.ss-range-dates-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ss-field{min-width:0;color:var(--ink);flex-direction:column;gap:6px;font-size:15px;font-weight:500;display:flex}.ss-field input{min-width:0;min-height:46px;font:inherit;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:6px 10px;font-size:16px;font-weight:400}.ss-field input:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.ss-range-hint{margin:0;font-size:14px}.ss-form-error{color:var(--coral-text);margin:0;font-size:15px}.ss-past{margin-top:12px}.ss-past summary{cursor:pointer;color:var(--ink-mid);margin-bottom:6px;font-size:14px}.ss-save-bar{align-items:center;gap:10px;margin-top:8px;display:flex}@media (max-width:760px){.ss-add-range{width:100%}.ss-save-bar-dirty{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 8px);z-index:5;background:var(--surface-elev);border:1px solid var(--border-strong);box-shadow:var(--shadow-row-menu);border-radius:14px;padding:8px 8px 8px 14px;position:sticky}.ss-save-bar-dirty .btn{order:1;margin-left:auto}}.ss-save-bar .ss-muted{font-size:14px}.ss-availability .btn:disabled{opacity:.5;cursor:not-allowed}.ss-intro-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;margin-bottom:14px;display:flex}.ss-intro-row .ss-page-intro{margin:0}.ss-show-more{white-space:normal;text-align:left;max-width:100%}
.notify-list{gap:10px;margin:0 0 10px;padding:0;list-style:none;display:grid}.notify-item{grid-template-columns:auto 1fr;align-items:start;gap:2px 10px;display:grid}.notify-item input[type=checkbox]{accent-color:var(--green-text);margin-top:3px}.notify-item label{color:var(--ink);cursor:pointer;font-size:15px}.notify-help{color:var(--ink-mid);grid-column:2;font-size:14px}.notify-day{color:var(--ink-mid);grid-column:2;align-items:center;gap:8px;font-size:14px;display:flex}.notify-day select{width:auto}.notify-subhead{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-mid);margin:6px 0 2px;font-size:13px}
.swap-slot-offered{background:var(--purple-bg);color:var(--purple-text);border:1px dashed var(--purple-border)}.swap-slot-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.swap-slot-sub{opacity:.85;overflow-wrap:anywhere;font-size:13px;font-weight:500}.swap-slot-actions{gap:4px;display:flex}.swap-section .ss-open-list+.swap-mine-label{margin-top:10px}.swap-intro{margin:0 0 8px;font-size:14px}.swap-row{grid-template-columns:110px 150px 1fr auto}.swap-row-who{flex-direction:column;gap:2px;min-width:0;display:flex}.swap-row-note{color:var(--ink-mid);overflow-wrap:anywhere;font-size:14px;font-style:italic}@media (max-width:480px){.swap-row{grid-template-columns:1fr auto}.swap-row-who{grid-column:1}}.swap-form{flex-direction:column;gap:6px;display:flex}.swap-form label{color:var(--ink-mid);margin-top:4px;font-size:14px}.swap-form select,.swap-form textarea{font:inherit;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:6px 8px;font-size:15px}.swap-form textarea{resize:vertical}.swap-form select:focus-visible,.swap-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.swap-targets{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.swap-targets legend{color:var(--ink);margin-bottom:8px;padding:0;font-size:15px;font-weight:600}.swap-form .swap-target{min-height:52px;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:12px;margin:0;padding:6px 14px;font-size:16px;display:flex}.swap-form .swap-target-on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--surface)}.swap-target input{width:20px;height:20px;accent-color:var(--ink);flex:none;margin:0}.swap-target:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.swap-target-text{flex-direction:column;min-width:0;display:flex}.swap-target-name{font-weight:500}.swap-target-text .ss-muted{font-size:14px}.swap-form textarea{font-size:16px}
.publish-group+.publish-group{margin-top:14px}.publish-group-title{color:var(--ink);margin-bottom:8px;font-size:15px;font-weight:600}.publish-item{border:1px solid var(--border);border-radius:var(--r);background:var(--surface-elev);padding:8px 10px}.publish-item+.publish-item{margin-top:6px}.publish-item.skipped{opacity:.6}.publish-item-head{flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:15px;display:flex}.publish-item-head>b{overflow-wrap:anywhere;min-width:0}.publish-item-when{color:var(--ink-mid);font-size:14px}.publish-item-head>button{margin-left:auto}.publish-why{color:var(--amber-text);margin-top:4px;font-size:14px}.publish-why.blocked{color:var(--coral-text)}.publish-diff{flex-direction:column;gap:4px;margin-top:6px;font-size:14px;display:flex}.publish-diff label{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.publish-from{color:var(--ink-mid);text-decoration:line-through}.publish-kept{color:var(--ink-mid);font-style:italic}.publish-source{background:var(--slate-bg);color:var(--slate-text);border-radius:999px;padding:0 6px;font-size:13px}.publish-result{margin:0;padding-left:18px}.publish-headline{margin:0 0 10px;font-weight:500}.publish-result li+li{margin-top:2px}.offering-status{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.status-pill{white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:13px;font-weight:500}.status-published{background:var(--green-bg);color:var(--green-text)}.status-changed{background:var(--blue-bg);color:var(--blue-text)}.status-ready{background:var(--teal-bg);color:var(--teal-text)}.status-warn{background:var(--amber-bg);color:var(--amber-text)}.status-blocked{background:var(--coral-bg);color:var(--coral-text)}.status-past{background:var(--slate-bg);color:var(--slate-text)}.status-why{color:var(--ink-mid);margin:2px 0 0;padding:0;font-size:14px;line-height:1.4;list-style:none}.schedule-note{color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;margin:0 0 12px;padding:8px 14px;font-size:15px;display:flex}.schedule-note .linklike{font-weight:500}.add-offering-body{flex-direction:column;gap:10px;display:flex}.add-offering-body .panel-search{width:100%;min-width:0}.add-offering-list{max-height:50vh;margin:0;padding:0;list-style:none;overflow-y:auto}.add-offering-item{appearance:none;width:100%;min-height:40px;font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:15px;display:block}.add-offering-item:hover,.add-offering-item:focus-visible{background:var(--surface-2)}@media (max-width:760px){.add-offering-item{min-height:var(--touch)}.publish-diff label{min-height:var(--touch);align-items:center}.publish-item{padding:10px 12px}}.publish-season{color:var(--ink-mid);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.publish-season select{font:inherit;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface-elev);color:var(--ink);padding:6px 10px;font-size:15px}.publish-note{color:var(--ink-mid);margin:14px 0 0;font-size:14px}.publish-result li{font-size:14px}.schedule-selection-bar{z-index:5;box-shadow:var(--shadow-row-menu);color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0 0;padding:8px 14px;font-size:15px;display:flex;position:sticky;bottom:16px}@media (max-width:760px){.schedule-selection-bar{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 8px)}}.schedule-selection-bar>span{margin-right:auto;font-weight:600}.review-draft-menu{white-space:nowrap;min-width:260px}.draft-wizard{width:min(560px,100%)}.draft-wizard-count{color:var(--ink-mid);font-weight:400}.draft-wizard-body{flex-direction:column;gap:14px;display:flex}.draft-wizard-checks{flex-direction:column;gap:6px;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.draft-wizard-checks li{background:var(--surface-2);border-radius:10px;padding:8px 12px}.draft-wizard-block{color:var(--attention);font-weight:500}.draft-wizard-warn:before{content:"⚠ "}.draft-wizard-ok{color:var(--ink-mid)}.draft-wizard-spacer{flex:1}.schedule-note-inline{display:block}.review-drafts-note{margin:0 0 12px}
.seasons-tbl .season-row-now td{background:var(--green-bg)}.season-spill{color:var(--ink-mid)}.season-hidden-note,.season-hint,.season-footnote{color:var(--ink-mid);font-size:14px}.season-footnote{margin:6px 0 0}.season-status{background:var(--surface-2);color:var(--ink-mid);border-radius:10px;padding:2px 8px;font-size:13px;display:inline-block}.season-status-now{background:var(--green-bg);color:var(--green-text)}.season-adjust{background:var(--surface-2);border-radius:var(--r);padding:12px}.season-adjust-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.season-months{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:8px;display:grid}.season-month{border:1px solid var(--border);border-radius:var(--r);background:var(--surface-elev);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 10px;display:flex}.season-month small{color:var(--ink-mid);font-size:13px}.season-month.is-spill{border-style:dashed}.season-month.is-hidden{opacity:.6;background:0 0}.season-warn{color:var(--coral-text);margin-top:4px;font-size:14px}@media (max-width:760px){.seasons-tbl,.seasons-tbl tbody,.seasons-tbl td{display:block}.seasons-tbl thead{display:none}.seasons-tbl tr{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px 10px;padding:12px 14px;display:flex}.seasons-tbl .season-row-now{background:var(--green-bg)}.seasons-tbl td{border:0;padding:0;background:0 0!important}.seasons-tbl td.season-name{order:-3;font-size:17px}.seasons-tbl td.season-status-cell{flex:1;order:-2}.seasons-tbl td.tbl-actions{box-shadow:none;order:-1;position:static}.seasons-tbl td[data-label]{flex-basis:100%;font-size:15px}.seasons-tbl td[data-label]:before{content:attr(data-label) ": ";color:var(--ink-mid);font-weight:500}.seasons-tbl .season-adjust-tr td{flex-basis:100%}}.season-dates-tbl input[type=date]{max-width:100%}.season-dates-tbl .season-name .season-status{margin-left:4px}.deadline-reminders{gap:12px;margin-bottom:12px;display:grid}.deadline-reminder-when{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.deadline-reminder-when input[type=number]{width:5em}.deadline-reminder-enabled{margin-left:auto}.deadline-reminder .season-hint{margin:6px 0 10px}
.modal-export{max-width:640px}.export-format-seg{background:var(--surface-3);border-radius:11px;grid-template-columns:1fr 1fr;gap:2px;padding:3px;display:grid}.export-format-opt{min-height:40px;color:var(--ink-mid);cursor:pointer;text-align:center;border-radius:9px;justify-content:center;align-items:center;padding:4px 8px;font-size:14px;display:flex;position:relative}.export-format-opt input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.export-format-opt:hover{color:var(--ink)}.export-format-opt input:focus-visible+span{outline:3px solid var(--focus);outline-offset:0}.export-format-opt:has(input:checked){background:var(--surface-elev);color:var(--ink);box-shadow:0 0 0 1px var(--border-strong), 0 1px 2px #00000024;font-weight:600}.export-type-rows{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-elev);flex-direction:column;display:flex;overflow:hidden}.export-type-row-group+.export-type-row-group{border-top:1px solid var(--border)}.export-type-row{cursor:pointer;align-items:center;gap:10px;padding:8px 10px;display:flex}.export-type-rows .export-type-row,.export-type-row-group .export-checkbox-row,.export-ics-options .export-checkbox-row{margin-bottom:0}.export-type-row input{flex:none}.export-type-row-checked{background:var(--surface-2)}.export-type-row-text{flex-direction:column;min-width:0;display:flex}.export-type-row-name{color:var(--ink);font-size:14px;font-weight:500}.export-type-row-desc{color:var(--ink-mid);font-size:12px;line-height:1.3}.export-inline-row{background:var(--surface-2);padding:6px 10px 10px 34px}.export-checkbox-row{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.export-checkbox-row input{flex:none}.export-month-chips{flex-wrap:wrap;gap:6px;display:flex}.export-month-chip{appearance:none;font:inherit;border:1px solid var(--border-strong);background:var(--surface-elev);min-height:32px;color:var(--ink);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:13px}.export-month-chip:hover{background:var(--surface-2)}.export-month-chip[aria-pressed=true]{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink)}.export-month-chip-all{font-weight:600}.export-ics-options{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-elev);flex-direction:column;gap:10px;padding:10px 12px;display:flex}@media (max-width:760px){.export-type-row{padding:10px}.export-type-row-name{font-size:15px}.export-month-chip{min-height:var(--touch);font-size:14px}.export-format-opt{min-height:var(--touch)}}
.modal-hours-report{max-width:640px}.hours-report-filters{margin-bottom:16px}.hours-report-range{margin-top:10px;margin-bottom:0}.hours-report-range-note{color:var(--ink-mid);margin:10px 0 0;font-size:14px}.hours-report-toolbar{justify-content:flex-end;margin-bottom:10px;display:flex}.hours-report-figure{font-family:var(--font-dm-mono), monospace}.hours-report-total{font-weight:600}.hours-report-lines-row td{background:var(--surface-2);padding:10px 16px}.hours-report-rows tr.hours-report-lines-row:hover td{background:var(--surface-2)}.hours-report-lines{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.hours-report-lines li{flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:14px;display:flex}.hours-report-line-date{color:var(--ink-mid);min-width:64px}.hours-report-line-label{flex:auto}.hours-report-line-hours{font-family:var(--font-dm-mono), monospace;color:var(--ink-mid)}@media (max-width:900px){.hours-report-rows tr.hours-report-lines-row{background:var(--surface-2);padding:0 14px 14px}.hours-report-rows tr.hours-report-lines-row td{background:0 0;padding:10px 0 0}}
.activenet-import-pick{margin-bottom:12px}.activenet-file{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);margin-bottom:12px;padding:12px 14px}.activenet-file-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.activenet-file-name{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.activenet-file-kind{color:var(--ink-mid);font-size:14px}.activenet-file-captured input{max-width:260px}.activenet-file-captured .modal-section-hint,.activenet-file-captured .modal-error{margin:4px 0 0;display:block}.activenet-counts{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin:0 0 8px;display:grid}.activenet-counts>div{background:var(--surface-2);border-radius:var(--r);padding:6px 10px}.activenet-counts dt{color:var(--ink-mid);font-size:13px}.activenet-counts dd{font-family:var(--font-dm-mono), monospace;color:var(--ink);margin:0;font-size:18px}.activenet-counts dd.activenet-count-dates{padding-top:3px;font-family:inherit;font-size:14px}.activenet-center-notes{margin:4px 0;padding-left:18px}.activenet-season-warnings{margin:0 0 10px;list-style:none}.activenet-warnings,.activenet-ignored{margin-top:6px;font-size:14px}.activenet-warnings summary,.activenet-ignored summary{cursor:pointer;color:var(--ink-mid);padding:4px 0}.activenet-warnings ul{margin:4px 0 0;padding-left:18px;line-height:1.45}.activenet-ignored p{color:var(--ink-mid);overflow-wrap:anywhere;margin:4px 0 0}.activenet-imported{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.activenet-imported .activenet-file-name{display:block}.activenet-import-delete{color:var(--amber-text);background:var(--amber-bg);border:1px solid var(--amber-border);border-radius:var(--r);margin:12px 0 0;padding:8px 12px;font-size:14px}.activenet-match-prompt{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:10px;display:flex}.activenet-match-prompt .modal-section-hint{flex:260px;margin:0}.activenet-match-summary{color:var(--ink-mid);margin:0 0 8px;font-size:14px}.activenet-match-list{flex-direction:column;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.activenet-match-row{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);flex-direction:column;gap:6px;padding:8px 12px;display:flex}.activenet-match-tick{cursor:pointer;overflow-wrap:anywhere;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;display:grid}.activenet-match-tick input{grid-row:span 3;margin-top:3px}.activenet-match-tick>:not(input){grid-column:2}.activenet-match-pick{overflow-wrap:anywhere;flex-direction:column;gap:2px;min-width:0;display:flex}.activenet-match-when,.activenet-match-class{color:var(--ink-mid);font-size:14px}.activenet-match-row select{width:100%;max-width:100%}.still-filling-imports{color:var(--ink-mid);flex-wrap:wrap;gap:2px 16px;margin:0 0 8px;padding:0;font-size:14px;list-style:none;display:flex}.still-filling-note{margin:6px 0 0;font-size:14px}@media (max-width:900px){.tbl-rows.still-filling-rows td.row-main{flex-basis:100%}}@media (max-width:760px){.activenet-file-captured input{max-width:none}.activenet-file-head .btn,.activenet-match-prompt .btn{min-height:var(--touch)}.still-filling-imports{flex-direction:column}}
:root{--viz-series-1:#2a78d6;--viz-series-1-soft:#9ec5f4;--viz-series-2:#eb6834;--viz-grid:#ece8df;--viz-axis:#d6d1c4;--viz-seq-1:#cde2fb;--viz-seq-2:#9ec5f4;--viz-seq-3:#6da7ec;--viz-seq-4:#3987e5;--viz-seq-5:#256abf;--viz-seq-6:#184f95;--viz-empty:#f3f0e9;--viz-green:#1baf7a;--viz-yellow:#eda100;--viz-magenta:#e87ba4;--viz-violet:#4a3aa7;--viz-red:#e34948;--viz-ord-1:#fde8dc;--viz-ord-2:#fac6aa;--viz-ord-3:#f5a076;--viz-ord-4:#eb6834;--viz-ord-5:#c9501f;--viz-ord-6:#9a3a12}[data-theme=dark]{--viz-series-1:#3987e5;--viz-series-1-soft:#1c4f8a;--viz-series-2:#d95926;--viz-grid:#2e2c26;--viz-axis:#4d4a42;--viz-seq-1:#1c2a3d;--viz-seq-2:#184f95;--viz-seq-3:#1c5cab;--viz-seq-4:#256abf;--viz-seq-5:#3987e5;--viz-seq-6:#86b6ef;--viz-empty:#26241f;--viz-green:#199e70;--viz-yellow:#c98500;--viz-magenta:#d55181;--viz-violet:#9085e9;--viz-red:#d03b3b;--viz-ord-1:#3a2016;--viz-ord-2:#6e3319;--viz-ord-3:#a3461f;--viz-ord-4:#d95926;--viz-ord-5:#ec8a5f;--viz-ord-6:#f5b596}.stats-view{gap:14px;min-width:0;display:grid}.stats-view .page-toolbar{margin-bottom:0}.stats-filters{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.stats-filters .sort-dropdown{min-width:0;max-width:100%}.stats-type-select{max-width:min(320px,60vw)}.stats-source{color:var(--ink-mid);margin:0 0 0 auto;font-size:13px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.stats-card{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-card);align-content:start;gap:8px;min-width:0;padding:14px 16px 16px;display:grid}.stats-card-wide{grid-column:1/-1}.stats-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.stats-card-title{font-family:var(--font-display);color:var(--ink);margin:0;font-size:18px;font-weight:600}.stats-card-sub,.stats-note{color:var(--ink-mid);margin:0;font-size:14px}.stats-empty{color:var(--ink-mid);margin:0;padding:18px 0}.stats-muted{color:var(--ink-mid);font-size:13px}.stats-table-toggle{white-space:nowrap}.stats-scroll{min-width:0;overflow-x:auto}.stats-back{color:var(--link);justify-self:start;font-weight:600}.stats-typehead{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.stats-type-name{font-family:var(--font-display);margin:0;font-size:26px;font-weight:600}.stats-tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.stats-tile{background:var(--surface-elev);border:1px solid var(--border);border-radius:12px;align-content:start;gap:2px;min-width:0;padding:12px 14px;display:grid}.stats-card .stats-tile{background:var(--surface)}.stats-tile-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mid);font-size:12px;font-weight:600}.stats-tile-value{font-family:var(--font-display);color:var(--ink);font-size:28px;font-weight:600;line-height:1.15}.stats-tile-note{color:var(--ink-mid);overflow-wrap:anywhere;font-size:13px}.stats-chart{width:100%;min-width:0}.stats-chart svg{max-width:100%;display:block;overflow:visible}.stats-chart svg:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:4px}.stats-chart text{fill:var(--ink-mid);font-size:12px;font-family:var(--font-dm-sans), sans-serif;font-variant-numeric:tabular-nums}.stats-chart text.stats-val,.stats-chart text.stats-axis-strong{fill:var(--ink);font-weight:600}line.stats-gridline{stroke:var(--viz-grid);stroke-width:1px}line.stats-baseline{stroke:var(--viz-axis);stroke-width:1px}line.stats-marker{stroke:var(--ink-light);stroke-width:1px;stroke-dasharray:3 3}line.stats-crosshair{stroke:var(--ink-light);stroke-width:1px;opacity:.6;pointer-events:none}.stats-bar{fill:var(--viz-series-1);transition:opacity .1s}.stats-bar-soft{fill:var(--viz-series-1-soft)}.stats-bar.is-active,.stats-cell.is-active{opacity:.75}.stats-line{fill:none;stroke:var(--viz-series-1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.stats-dot{fill:var(--viz-series-1);stroke:var(--surface-elev);stroke-width:2px}.stats-dot-2{fill:var(--viz-series-2);stroke:var(--surface-elev);stroke-width:2px}.stats-hit{fill:#0000}.stats-cell{stroke:none}.stats-cell.stats-seq-0{fill:var(--viz-empty)}.stats-cell.stats-seq-1{fill:var(--viz-seq-1)}.stats-cell.stats-seq-2{fill:var(--viz-seq-2)}.stats-cell.stats-seq-3{fill:var(--viz-seq-3)}.stats-cell.stats-seq-4{fill:var(--viz-seq-4)}.stats-cell.stats-seq-5{fill:var(--viz-seq-5)}.stats-cell.stats-seq-6{fill:var(--viz-seq-6)}.stats-spark{display:block}.stats-spark-none{fill:var(--viz-axis)}.stats-multiples{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 20px;display:grid}.stats-multiple{min-width:0}.stats-multiple-title{color:var(--ink);margin:0 0 2px;font-size:14px;font-weight:600}.stats-legend{color:var(--ink-mid);flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px;display:flex}.stats-legend span{align-items:center;display:inline-flex}.stats-key{border-radius:3px;flex:none;width:10px;height:10px;margin-right:6px;display:inline-block}.stats-legend>.stats-key{margin-right:0}.stats-key-line{border-radius:1px;width:14px;height:2px}.stats-key-dot{border-radius:50%}.stats-series-1{background:var(--viz-series-1)}.stats-series-2{background:var(--viz-series-2)}.stats-key.stats-seq-1{background:var(--viz-seq-1)}.stats-key.stats-seq-2{background:var(--viz-seq-2)}.stats-key.stats-seq-3{background:var(--viz-seq-3)}.stats-key.stats-seq-4{background:var(--viz-seq-4)}.stats-key.stats-seq-5{background:var(--viz-seq-5)}.stats-key.stats-seq-6{background:var(--viz-seq-6)}.stats-tip{z-index:60;pointer-events:none;background:var(--ink);max-width:240px;color:var(--ink-inverse);box-shadow:var(--shadow-modal);border-radius:8px;padding:7px 10px;font-size:13px;line-height:1.4;position:fixed}.stats-tip-title{margin-bottom:2px;font-weight:600}.stats-tip-row{align-items:center;gap:4px;display:flex}.stats-tip-row .stats-key{margin-right:2px}.stats-tip-note{opacity:.8}.stats-meter{background:var(--surface-3);border-radius:4px;flex:auto;min-width:40px;height:12px;display:block;position:relative;overflow:hidden}.stats-meter-bare{background:0 0}.stats-meter i{border-radius:4px;position:absolute;inset:0 auto 0 0}.stats-meter-sm{flex:none;width:64px;height:8px}.stats-fill{gap:2px;display:grid}.stats-fill-head,.stats-fill-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);align-items:center;gap:4px 14px;display:grid}.stats-fill-head{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mid);padding:0 6px 4px;font-size:12px;font-weight:600}.stats-fill-head span{align-items:center;display:inline-flex}.stats-fill-row{appearance:none;font:inherit;color:var(--ink);text-align:left;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:0;padding:5px 6px}.stats-fill-row:hover,.stats-fill-row.is-active{background:var(--surface)}.stats-fill-name{overflow-wrap:anywhere;font-size:14px}.stats-fill-cell{align-items:center;gap:8px;min-width:0;display:flex}.stats-fill-num,.stats-num{font-variant-numeric:tabular-nums;white-space:nowrap}.stats-fill-num{flex:none;min-width:42px;font-size:14px;font-weight:600}.stats-tbl td,.stats-tbl th{padding:7px 10px;font-size:14px}.stats-tbl th{white-space:nowrap}.stats-types td{vertical-align:middle}.stats-type-link{color:var(--ink);min-width:160px;font-weight:600}.stats-type-link:hover{color:var(--link)}.stats-seats{align-items:center;gap:8px;display:inline-flex}.stats-movers .section-title{margin-top:0}.stats-movers-lists{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 20px;display:grid}.stats-movers ul{margin:0;padding:0;list-style:none}.stats-mover{justify-content:space-between;gap:10px;width:100%;padding:4px 0;display:flex}.stats-mover-name{overflow-wrap:anywhere;min-width:0}.stats-mover-by{white-space:nowrap;font-weight:600}.stats-mover-by .stats-muted{font-weight:400}.stats-unlinked{margin:0;padding:0;list-style:none}.stats-unlinked li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 0;display:flex}.stats-unlinked li:last-child{border-bottom:0}.stats-unlinked-name{overflow-wrap:anywhere;min-width:0;font-weight:600}.stats-unlinked .btn{margin-left:auto}.stats-people{gap:6px;margin:0;padding:0;list-style:none;display:grid}.stats-people li{grid-template-columns:minmax(70px,120px) minmax(0,1fr) 32px;align-items:center;gap:10px;font-size:14px;display:grid}.stats-people-name{overflow-wrap:anywhere}@media (max-width:900px){.stats-grid{grid-template-columns:minmax(0,1fr)}.stats-source{flex-basis:100%;margin-left:0}}@media (max-width:760px){.stats-card{padding:12px}.stats-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-tile-value{font-size:22px}.stats-fill-head>span:first-child{display:none}.stats-fill-head,.stats-fill-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.stats-fill-name{grid-column:1/-1;font-weight:600}.stats-unlinked .btn{margin-left:0}}
.stats-limited,.stats-series-1{background:var(--viz-series-1)}.stats-unlimited{background:var(--viz-series-2)}.stats-locker,.stats-age,.stats-staff-full,.stats-renew-30{background:var(--viz-green)}.stats-yellow,.stats-staff-short{background:var(--viz-yellow)}.stats-staff-none{background:var(--viz-red)}.stats-violet,.stats-residency,.stats-renew-365{background:var(--viz-violet)}.stats-magenta,.stats-gender{background:var(--viz-magenta)}.stats-renew-90{background:var(--viz-series-1)}.stats-renew-not,.stats-use-0{background:var(--surface-3)}.stats-open{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border-strong)}.stats-use-1,.stats-ord-2{background:var(--viz-ord-2)}.stats-use-2,.stats-ord-4{background:var(--viz-ord-4)}.stats-use-3,.stats-ord-6{background:var(--viz-ord-6)}.stats-ord-1{background:var(--viz-ord-1)}.stats-ord-3{background:var(--viz-ord-3)}.stats-ord-5{background:var(--viz-ord-5)}.stats-fill-series-1,.stats-fill-limited{fill:var(--viz-series-1)}.stats-fill-unlimited{fill:var(--viz-series-2)}.stats-fill-locker,.stats-fill-staff-full{fill:var(--viz-green)}.stats-fill-staff-short{fill:var(--viz-yellow)}.stats-fill-staff-none{fill:var(--viz-red)}.stats-fill-violet{fill:var(--viz-violet)}.stats-fill-ord-2{fill:var(--viz-ord-2)}.stats-fill-ord-3{fill:var(--viz-ord-3)}.stats-fill-ord-4{fill:var(--viz-ord-4)}.stats-fill-ord-5{fill:var(--viz-ord-5)}.stats-fill-ord-6{fill:var(--viz-ord-6)}.stats-cell.stats-ord-0{fill:var(--viz-empty)}.stats-cell.stats-ord-1{fill:var(--viz-ord-1)}.stats-cell.stats-ord-2{fill:var(--viz-ord-2)}.stats-cell.stats-ord-3{fill:var(--viz-ord-3)}.stats-cell.stats-ord-4{fill:var(--viz-ord-4)}.stats-cell.stats-ord-5{fill:var(--viz-ord-5)}.stats-cell.stats-ord-6{fill:var(--viz-ord-6)}.stats-line-2{stroke:var(--viz-series-2)}.stats-chart .stats-line{pointer-events:none}.stats-chart g.is-faded>path,.stats-chart g.is-faded>rect:not(.stats-hit){opacity:.45}.stats-chart g.is-active>path,.stats-chart g.is-active>rect:not(.stats-hit){opacity:.75}.stats-band{fill:color-mix(in srgb, var(--viz-series-1) 7%, var(--surface-elev))}.stats-band-alt{fill:var(--surface-2)}.center-tiles .stats-tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.stats-tile[class*=stats-hue-]{border-top:4px solid var(--hue);background:color-mix(in srgb, var(--hue) 9%, var(--surface-elev))}.stats-hue-limited{--hue:var(--viz-series-1)}.stats-hue-unlimited{--hue:var(--viz-series-2)}.stats-hue-locker{--hue:var(--viz-green)}.stats-hue-violet{--hue:var(--viz-violet)}.stats-hue-magenta{--hue:var(--viz-magenta)}.stats-hue-yellow{--hue:var(--viz-yellow)}.stats-card-head{flex-wrap:wrap}.stats-card-aside{align-items:center;gap:8px;margin-right:auto;font-size:13px;display:flex}.center-stats{grid-template-columns:minmax(0,1fr)}.center-privacy{color:var(--ink-mid);border-left:3px solid var(--border-strong);margin:0;padding:2px 0 2px 10px;font-size:13px}.center-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.center-pill,.center-asof{background:var(--surface-2);color:var(--ink-mid);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.center-link{color:var(--link);white-space:nowrap;font-weight:600;text-decoration:none}.center-link:hover{text-decoration:underline}.center-range{z-index:5;background:var(--surface);flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 0;display:flex;position:sticky;top:0}.center-range .seg-tabs{flex-wrap:wrap;max-width:100%}.center-range-dates{flex-wrap:wrap;gap:8px;display:flex}.center-range-dates label,.center-search{color:var(--ink-mid);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.center-range-dates input,.center-search input{font:inherit;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border-strong);border-radius:8px;padding:5px 8px;font-size:14px;font-weight:400}.center-search input{width:72px}.center-range-text{color:var(--ink-mid);font-size:13px}.center-subhead{color:var(--ink);margin:0 0 2px;font-size:15px;font-weight:600}.center-chip{background:color-mix(in srgb, var(--viz-green) 18%, var(--surface-elev));color:var(--ink);white-space:nowrap;border-radius:999px;justify-self:start;padding:1px 8px;font-size:12px;font-weight:600}.center-chip.is-empty{visibility:hidden}.center-chip.is-low{background:color-mix(in srgb, var(--viz-red) 16%, var(--surface-elev))}.center-busy{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 20px;margin-top:6px;padding-top:12px;display:grid}.center-busy .stats-note{margin-bottom:6px;font-size:13px}.center-days{counter-reset:day;gap:5px;margin:0;padding:0;list-style:none;display:grid}.center-days li{counter-increment:day;grid-template-columns:18px 128px minmax(30px,1fr) 34px 72px;align-items:center;gap:8px;font-size:13px;display:grid}.center-days li:before{content:counter(day);color:var(--ink-light);font-size:11px}.center-days .stats-meter{height:9px}.center-ini{width:40px;height:40px;color:var(--ink);background:var(--surface-2);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:inline-grid;position:relative}.center-ini-limited{background:color-mix(in srgb, var(--viz-series-1) 20%, var(--surface-elev));box-shadow:inset 0 0 0 2px var(--viz-series-1)}.center-ini-unlimited{background:color-mix(in srgb, var(--viz-series-2) 20%, var(--surface-elev));box-shadow:inset 0 0 0 2px var(--viz-series-2)}.center-dup{color:var(--ink-mid);background:var(--surface-elev);border-radius:999px;padding:0 3px;font-size:10px;font-weight:600;position:absolute;bottom:-4px;right:-8px}.center-member-btn,.center-top-row{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:2px}.center-member-btn:hover .center-ini{filter:brightness(.95)}.center-member-btn:focus-visible,.center-top-row:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.center-top{gap:4px;margin:0;padding:0;list-style:none;display:grid}.center-top-row{text-align:left;border-radius:10px;grid-template-columns:22px 46px minmax(0,1fr) 40px;align-items:center;gap:10px;width:100%;padding:2px 4px;display:grid}.center-top-row:hover{background:var(--surface)}.center-top-rank{color:var(--ink-light);order:-1;font-size:12px}.center-top .stats-meter{height:10px}.center-members td{vertical-align:middle;white-space:nowrap}.center-rows{grid-template-columns:minmax(110px,38%) minmax(40px,1fr) auto;align-items:center;gap:8px 10px;font-size:14px;display:grid}.center-rows+.center-rows{margin-top:8px}.center-rows>.center-subhead{grid-column:1/-1}.center-row{display:contents}.center-row-label{overflow-wrap:anywhere}.center-row-value{text-align:right}.center-ladder,.center-use-bar{gap:2px;min-width:0;height:26px;display:flex}.center-ladder i,.center-use-bar i{min-width:2px;color:var(--ink);border-radius:4px;flex-basis:0;place-items:center;font-size:11px;font-style:normal;font-weight:600;display:grid}.center-use-bar .stats-use-2,.center-use-bar .stats-use-3{color:#fff}.center-use{gap:8px;display:grid}.center-use-row{grid-template-columns:minmax(150px,190px) minmax(130px,160px) minmax(0,1fr);align-items:center;gap:10px;font-size:14px;display:grid}.center-use-figs{color:var(--ink-mid)}.center-use-figs b{color:var(--ink)}.center-lockers{grid-template-columns:repeat(auto-fill,minmax(12px,1fr));gap:3px;display:grid}.center-lockers i{aspect-ratio:1;border-radius:3px}.center-funnel,.center-classes{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:14px;display:grid}.center-funnel .stats-tiles{grid-template-columns:minmax(0,1fr)}.center-classes .stats-tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.overlay:has(>.member-panel){justify-content:flex-end;align-items:stretch}.modal.member-panel{flex-direction:column;max-width:560px;max-height:none;display:flex}.member-panel-head{justify-content:flex-start;gap:12px}.member-panel-head>.btn{margin-left:auto}.member-panel-head .center-ini{width:52px;height:52px;font-size:17px}.member-panel-title h2{margin:0}.member-panel-body{gap:16px;padding:16px 18px 24px;display:grid}.member-kv{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.member-kv div{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.member-kv dt{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-mid);font-size:12px;font-weight:600}.member-kv dd{font-family:var(--font-display);color:var(--ink);margin:0;font-size:20px;font-weight:600}.member-panel-chart{gap:4px;display:grid}@media (max-width:900px){.center-funnel,.center-classes{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.center-days li{grid-template-columns:16px 112px minmax(24px,1fr) 30px 64px}.center-use-row{grid-template-columns:minmax(0,1fr) auto}.center-use-bar{grid-column:1/-1}.modal.member-panel{max-width:100%}.center-range .seg-tabs{flex-wrap:nowrap;flex:100%;min-width:0;overflow-x:auto}.center-range .seg-tab{flex:none;padding:4px 10px}}
.ov-header{margin-bottom:20px}.ov-header .page-title{margin:0}.ov-subtitle{color:var(--ink-mid);margin:4px 0 0;font-size:16px}.ov-muted{color:var(--ink-mid)}.ov-flag{color:var(--coral-text);background:var(--coral-bg);border:1px solid var(--coral-border);border-radius:var(--r-sm);white-space:nowrap;align-self:flex-start;padding:1px 8px;font-size:13px;font-weight:600}.ov-link{color:var(--link);text-underline-offset:2px;white-space:nowrap;font-size:15px;text-decoration:underline}.ov-link:hover{text-decoration-thickness:2px}.ov-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.ov-tile{appearance:none;background:var(--surface-elev);border:2px solid var(--border);min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:14px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.ov-tile:hover{border-color:var(--ink-light)}.ov-tile[aria-pressed=true]{border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}.ov-tile-count{align-items:baseline;gap:8px;display:flex}.ov-tile-num{font-family:var(--font-display);font-size:38px;line-height:1}.ov-tile-alert .ov-tile-num{color:var(--attention)}.ov-tile-clear .ov-tile-num{color:var(--success)}.ov-tile-unit{color:var(--ink-mid);font-size:14px}.ov-tile-label{font-size:16px;font-weight:600}.ov-tile-sub{color:var(--ink-mid);overflow-wrap:anywhere;font-size:14px}.ov-also{flex-wrap:wrap;gap:8px 20px;margin:12px 0 24px;padding:0;list-style:none;display:flex}.ov-also-link{min-height:32px;color:var(--ink-mid);text-underline-offset:2px;align-items:center;gap:8px;font-size:15px;text-decoration:underline;display:inline-flex}.ov-also-alert{color:var(--ink)}.ov-also-dot{background:var(--attention);border-radius:50%;width:8px;height:8px}.ov-layout{grid-template-columns:minmax(0,1fr) minmax(300px,400px);grid-template-areas:"focus recent""week week";align-items:start;gap:20px 24px;display:grid}.ov-focus{grid-area:focus}.ov-week{grid-area:week}.ov-changes{grid-area:recent}.ov-section{background:var(--surface-elev);border:1px solid var(--border);border-radius:14px;min-width:0;padding:18px 20px}.ov-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.ov-section-title{color:var(--ink);margin:0;font-size:19px;font-weight:600}.ov-section-meta{color:var(--ink-mid);font-weight:400}.ov-empty{color:var(--ink-mid);margin:0;padding:8px 0;font-size:15px}.ov-swap-note{overflow-wrap:anywhere;font-style:italic}.ov-focus-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-bottom:8px;font-size:15px;display:flex}.ov-list,.ov-agenda{margin:0;padding:0;list-style:none}.ov-fill-week+.ov-fill-week{margin-top:16px}.ov-fill-week-label{font-family:var(--font-dm-sans), sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid);margin:8px 0 4px;font-size:12px;font-weight:500}.ov-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px 16px;padding:14px 0;font-size:15px;display:flex}.ov-fill-darkroom{box-shadow:inset 3px 0 0 var(--orange-border);padding-left:12px}.ov-fill-digital-lab{box-shadow:inset 3px 0 0 var(--teal-border);padding-left:12px}.ov-row-main{flex-direction:column;gap:3px;min-width:0;display:flex}.ov-row-title{color:var(--ink);font-size:16px;font-weight:600}.ov-row-meta{color:var(--ink-mid);font-size:15px}.ov-row-why{color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;margin-top:3px;font-size:15px;display:flex}.ov-suggest{font-family:var(--font-dm-sans), sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--green-text);background:var(--green-bg);border-radius:4px;padding:2px 6px;font-size:12px}.ov-row-action{flex-shrink:0;text-decoration:none}.ov-row-button{appearance:none;width:100%;font:inherit;text-align:left;color:inherit;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;padding:0;display:flex}.ov-row-button:hover .ov-row-title{text-decoration:underline}.ov-change{align-items:flex-start;padding:12px 0}.ov-change-when{color:var(--ink-mid);white-space:nowrap;flex-shrink:0;font-size:14px}.ov-change-summary{color:var(--ink);overflow-wrap:anywhere}.ov-week-nav{gap:6px;display:flex}.ov-week-nav .btn{min-width:40px}.ov-week .day-strip{margin-bottom:16px}.ov-more-link{margin-top:10px;display:inline-block}.ov-cols{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.ov-col{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;min-width:0;padding:8px;display:flex}.ov-col.is-today{border:2px solid var(--ink);padding:7px}.ov-col.is-past{color:var(--ink-mid)}.ov-col-head{align-items:baseline;gap:6px;margin:0;font-size:14px;font-weight:500;display:flex}.ov-col-dow{color:var(--ink-mid)}.ov-col-num{font-size:18px;font-weight:600}.ov-col-attn{text-align:center;min-width:20px;color:var(--amber-text);background:var(--open-bg);border:1px dashed var(--attention);border-radius:10px;margin-left:auto;padding:0 6px;font-size:13px;font-weight:600}.ov-col-tech{color:var(--ink);background:var(--surface-2);border-radius:6px;flex-direction:column;gap:2px;padding:4px 6px;font-size:13px;text-decoration:none;display:flex}.ov-col-tech:hover{text-decoration:underline}.ov-col-techline.is-open{color:var(--amber-text);font-weight:600}.ov-col-items{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ov-col-item{flex-direction:column;min-width:0;font-size:13px;line-height:1.3;display:flex}.ov-col-time{font-family:var(--font-dm-mono), monospace;color:var(--ink-mid);font-size:12px}.ov-col-name{overflow-wrap:anywhere;font-weight:600}.ov-col-meta{color:var(--ink-mid);overflow-wrap:anywhere}.ov-col-flag{color:var(--coral-text);background:var(--coral-bg);border-radius:6px;align-self:flex-start;margin-top:2px;padding:0 6px;font-size:12px;font-weight:600}.ov-col-notice{overflow-wrap:anywhere}.ov-col-item.is-closed .ov-col-notice{color:var(--conflict-text)}.ov-col-item.is-out .ov-col-notice{color:var(--out-text)}.ov-col-item.is-exhibition .ov-col-notice{color:var(--exhibition-text)}.ov-col-empty{color:var(--ink-mid);margin:0;font-size:13px}.ov-agenda-title{margin:0 0 4px;font-size:16px;font-weight:600}.ov-agenda-item{border-top:1px solid var(--border);gap:14px;padding:12px 0;display:flex}.ov-agenda-past .ov-agenda-item{color:var(--ink-mid)}.ov-agenda-time{font-family:var(--font-dm-mono), monospace;color:var(--ink-mid);flex:0 0 88px;padding-top:2px;font-size:13px}.ov-agenda-main{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.ov-agenda-line{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.ov-agenda-name{color:var(--ink);overflow-wrap:anywhere;font-size:16px;font-weight:600}.ov-agenda-link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px}.ov-agenda-link:hover{text-decoration-color:currentColor}.ov-agenda-meta{color:var(--ink-mid);overflow-wrap:anywhere;font-size:14px}.ov-agenda-closed .ov-agenda-name{color:var(--conflict-text)}.ov-agenda-out .ov-agenda-name{color:var(--out-text);font-weight:500}.ov-agenda-exhibition .ov-agenda-name{color:var(--exhibition-text);font-weight:500}.ov-roomtag{background:var(--surface-2);color:var(--ink-mid);white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:13px;font-weight:500}.ov-open-chip{color:var(--amber-text);background:var(--open-bg);border:1px dashed var(--attention);border-radius:10px;padding:1px 8px;font-size:13px;font-weight:600}@media (max-width:1100px){.ov-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-layout{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"focus""week""recent"}}@media (max-width:760px){.ov-tiles{gap:10px}.ov-tile{min-height:104px;padding:14px}.ov-tile-num{font-size:32px}.ov-tile-sub{display:none}.ov-also-link{min-height:var(--touch)}.ov-section{padding:16px}.ov-agenda-time{flex-basis:64px;font-size:12px}.ov-row{flex-wrap:wrap}.ov-row-action{justify-content:center;width:100%}}
.display{--display-gutter:84px;--display-now:#f5c451;--display-now-ink:#1b1400;--display-closed:var(--filmclose-border);--display-open:var(--green-text);background:var(--surface);color:var(--ink);cursor:none;line-height:1.2;position:fixed;inset:0;overflow:hidden}.display-waiting{height:100%;color:var(--ink-mid);place-content:center;font-size:40px;display:grid}.display-screen{grid-template-rows:128px minmax(0,1fr);height:100%;display:grid}.display-bar{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;padding:0 48px;display:grid}.display-brand{align-items:baseline;gap:28px;min-width:0;display:flex}.display-name{font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;font-size:46px;font-weight:600}.display-date{color:var(--ink-mid);white-space:nowrap;font-size:34px}.display-clock{align-items:baseline;gap:28px;display:flex}.display-hours{color:var(--ink-mid);white-space:nowrap;font-size:30px}.display-time{font-family:var(--font-dm-sans), sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:76px;font-weight:500}.display-time small{color:var(--ink-mid);margin-left:8px;font-size:36px}.display-main{grid-template-columns:minmax(0,1fr) 440px;min-height:0;display:grid}.display-room-blue{--rc:var(--blue-text);--rb:var(--blue-bg)}.display-room-green{--rc:var(--green-text);--rb:var(--green-bg)}.display-room-amber{--rc:var(--amber-text);--rb:var(--amber-bg)}.display-room-coral{--rc:var(--coral-text);--rb:var(--coral-bg)}.display-room-purple{--rc:var(--purple-text);--rb:var(--purple-bg)}.display-room-teal{--rc:var(--teal-text);--rb:var(--teal-bg)}.display-room-pink{--rc:var(--pink-text);--rb:var(--pink-bg)}.display-room-slate{--rc:var(--slate-text);--rb:var(--slate-bg)}.display-timeline{grid-template-rows:auto minmax(0,1fr);min-height:0;padding-bottom:22px;display:grid}.display-heads,.display-body{grid-template-columns:var(--display-gutter) repeat(var(--display-cols), minmax(0, 1fr));display:grid}.display-head{border-top:8px solid var(--rc);flex-direction:column;align-items:flex-start;gap:8px;min-width:0;padding:16px 16px 14px;display:flex}.display-head h2{font-family:var(--font-display);text-wrap:balance;overflow-wrap:anywhere;font-size:32px;font-weight:600;line-height:1.02}.display-status,.display-tag{letter-spacing:.06em;text-transform:uppercase;color:var(--display-now-ink);background:var(--display-closed);border-radius:6px;padding:3px 9px;font-size:20px;font-weight:700}.display-body{min-height:0;position:relative}.display-gutter{position:relative}.display-hour{font-family:var(--font-dm-sans), sans-serif;color:var(--ink-light);font-variant-numeric:tabular-nums;font-size:24px;transition:opacity .2s;position:absolute;right:14px;transform:translateY(-50%)}.display-hour.is-hidden{opacity:0}.display-openbar{background:color-mix(in srgb, var(--display-open) 60%, transparent);border-radius:3px;width:6px;position:absolute;left:6px}.display-openbar span{transform-origin:0 0;letter-spacing:.3em;text-transform:uppercase;color:var(--display-open);white-space:nowrap;font-size:20px;font-weight:700;position:absolute;top:calc(50% + 36px);left:12px;transform:rotate(-90deg)}.display-line{left:var(--display-gutter);background:var(--surface-3);z-index:1;height:1px;position:absolute;right:0}.display-line.is-half{background:repeating-linear-gradient(90deg, var(--surface-3) 0 6px, transparent 6px 14px)}.display-col{border-left:1px solid var(--border);position:relative}.display-open{background:color-mix(in srgb, var(--display-open) 8%, transparent);position:absolute;left:0;right:0}.display-slot{z-index:2;padding:4px 8px;position:absolute;container-type:size}.display-block{background:var(--rb);height:100%;box-shadow:inset 5px 0 0 var(--rc);border-radius:10px;flex-direction:column;gap:4px;padding:10px 14px;display:flex;overflow:hidden}.display-block>*{flex-shrink:0}.display-title{-webkit-line-clamp:3;text-wrap:balance;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;-webkit-box-orient:vertical;font-size:28px;font-weight:600;line-height:1.12;display:-webkit-box;overflow:hidden}.display-meta{color:var(--ink-mid);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:22px}.display-meta b{color:var(--ink);font-weight:600}.display-kind{letter-spacing:.1em;text-transform:uppercase;color:var(--rc);font-size:18px;font-weight:700}.display-tag{align-self:flex-start;padding:2px 8px;font-size:18px}.display-block.is-event{background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--rc)}.display-block.is-closure{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--display-closed) 24%, transparent) 0 14px, color-mix(in srgb, var(--display-closed) 8%, transparent) 14px 28px), var(--surface);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--display-closed) 60%, transparent)}.display-block.is-closure .display-title{color:var(--display-closed);letter-spacing:.06em;text-transform:uppercase}.display-block.closes-room{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--display-closed) 16%, transparent) 0 14px, transparent 14px 28px), var(--rb)}.display-block.is-short{gap:0;padding:6px 12px}.display-block.is-short .display-title{-webkit-line-clamp:2;font-size:24px;line-height:1.05}.display-block.is-short .display-meta{font-size:20px}.display-block.is-past{opacity:.35}.display-block.is-now{outline:3px solid var(--display-now)}@container (max-width:230px){.display-slot .display-title{font-size:24px}.display-slot .display-meta{font-size:20px}}@container (max-height:200px){.display-slot .display-block .display-title{-webkit-line-clamp:2}}@container (max-height:140px){.display-slot .display-block .display-title{-webkit-line-clamp:1}.display-slot .display-block .display-meta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}@container (max-height:96px){.display-slot .display-block.display-block{gap:0;padding:5px 12px}.display-slot .display-block .display-title{-webkit-line-clamp:1;font-size:22px;line-height:1.1}.display-slot .display-block .display-meta{white-space:nowrap;text-overflow:ellipsis;font-size:18px;overflow:hidden}.display-slot .display-kind,.display-slot .display-tag{display:none}}@container (max-width:150px){.display-slot .display-block.display-block{padding:6px 8px 6px 10px}.display-slot .display-block.display-block .display-title{font-size:17px;line-height:1.1}.display-slot .display-block.display-block .display-meta{font-size:15px}.display-slot .display-block.display-block .display-kind,.display-slot .display-block.display-block .display-tag{font-size:13px}}@container (max-width:150px) and (min-height:200px){.display-slot .display-block.display-block .display-title{-webkit-line-clamp:6}}.display-past{top:0;left:var(--display-gutter);pointer-events:none;z-index:3;background:#00000047;position:absolute;right:0}.display-now{pointer-events:none;z-index:4;height:0;position:absolute;left:0;right:0}.display-now:after{content:"";left:var(--display-gutter);background:color-mix(in srgb, var(--display-now) 50%, transparent);height:3px;position:absolute;top:-1.5px;right:0}.display-now span{background:var(--display-now);color:var(--display-now-ink);font-family:var(--font-dm-sans), sans-serif;font-variant-numeric:tabular-nums;border-radius:6px;padding:3px 7px;font-size:22px;font-weight:500;position:absolute;top:0;left:4px;transform:translateY(-50%)}.display-rail{background:var(--surface-2);border-left:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.display-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);font-size:22px;font-weight:600}.display-gallery{border-top:8px solid var(--purple-text);border-bottom:1px solid var(--border);gap:12px;padding:24px 32px 28px;display:grid}.display-gallery h2{font-family:var(--font-display);text-wrap:balance;font-size:42px;font-weight:600;line-height:1.05}.display-by{color:var(--ink-mid);font-size:28px}.display-run{color:var(--purple-text);font-size:26px}.display-notes{border-bottom:1px solid var(--border);gap:8px;padding:20px 32px;display:grid}.display-notes ul{font-size:26px;list-style:none}.display-soon{flex-direction:column;flex:1;gap:18px;min-height:0;padding:24px 32px;display:flex}.display-days{flex-flow:column wrap;flex:1;align-content:flex-start;gap:22px 64px;min-height:0;display:flex;overflow:hidden}.display-day{gap:8px;width:100%;display:grid}.display-day h3{font-size:30px;font-weight:700}.display-day h3 small{color:var(--ink-light);margin-left:8px;font-size:26px;font-weight:500}.display-day-hours{color:var(--display-open);font-size:24px}.display-day ul{gap:6px;list-style:none;display:grid}.display-day li{color:var(--ink-mid);grid-template-columns:110px minmax(0,1fr);gap:12px;font-size:26px;display:grid}.display-day li span{font-family:var(--font-dm-sans), sans-serif;color:var(--ink-light);font-variant-numeric:tabular-nums;font-size:24px}.display-closed{text-align:center;place-content:center;gap:24px;display:grid}.display-closed h1{font-family:var(--font-display);font-size:112px;font-weight:600;line-height:1}.display-closed p{color:var(--display-open);font-size:48px}@media (prefers-reduced-motion:no-preference){.display-now,.display-past{transition:top .25s linear,height .25s linear}}
.ann-stack{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.ann-card{background:var(--blue-bg);border:1px solid var(--blue-border);border-radius:var(--r);min-width:0;color:var(--ink);border-left-width:4px;padding:12px 14px 12px 16px}.ann-card-pinned{background:var(--amber-bg);border-color:var(--amber-border)}.ann-head{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.ann-title{overflow-wrap:anywhere;flex:12ch;min-width:0;margin:0;font-size:17px;font-weight:600;line-height:1.3}.ann-tag{border:1px solid var(--amber-border);border-radius:var(--r-sm);color:var(--amber-text);white-space:nowrap;padding:1px 8px;font-size:12px;font-weight:600}.ann-tag-admins{border-color:var(--slate-border);color:var(--slate-text)}.ann-dismiss{min-width:var(--touch);min-height:var(--touch);justify-content:center;margin:-4px -6px -4px auto}.ann-body{overflow-wrap:anywhere;margin-top:6px;font-size:15px;line-height:1.5}.ann-body p,.ann-body ul,.ann-body ol{margin:0 0 .5em}.ann-body>:last-child{margin-bottom:0}.ann-body ul,.ann-body ol{padding-left:1.25em}.ann-body a,.ann-link a{color:var(--link);text-underline-offset:2px;text-decoration:underline}.ann-link{flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:8px 0 0;font-size:14px;display:flex}.ann-link-label{color:var(--ink-mid);overflow-wrap:anywhere}.ann-link a{white-space:nowrap}.ann-more{appearance:none;min-height:var(--touch);background:var(--surface-elev);border:1px dashed var(--border-strong);border-radius:var(--r);color:var(--ink);font:inherit;cursor:pointer;align-self:flex-start;padding:0 12px;font-size:14px}.ann-more:hover{border-color:var(--ink-light)}.ann-page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ann-page-head .page-lede{margin-bottom:0}.ann-section{margin-top:24px}.ann-section h2{font-family:var(--font-display);align-items:baseline;gap:10px;margin:0 0 8px;font-size:22px;font-weight:400;display:flex}.ann-count{font-family:var(--font-dm-sans), sans-serif;color:var(--ink-mid);font-size:13px}.ann-empty{color:var(--ink-mid);background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);padding:16px}.ann-list{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);margin:0;padding:0;list-style:none;overflow:hidden}.ann-row{align-items:center;gap:12px;padding:10px 12px 10px 16px;display:flex}.ann-row+.ann-row{border-top:1px solid var(--border)}.ann-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ann-row-title{overflow-wrap:anywhere;font-weight:600}.ann-row-meta{color:var(--ink-mid);font-size:14px}.ann-row-actions{gap:4px;display:flex}@media (max-width:480px){.ann-row{flex-direction:column;align-items:stretch}.ann-row-actions{justify-content:flex-end}}@media (min-width:761px){.modal.modal-announcement{max-width:560px}}.ann-preview{margin:12px 0 4px}.ann-preview summary{cursor:pointer;color:var(--ink-mid);margin-bottom:8px;font-size:14px}.comms-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}@media (max-width:760px){.comms-actions{flex-direction:column;align-items:flex-end}}
.presence-chip{font-family:var(--font-dm-sans), sans-serif;color:var(--green-text);background:var(--green-bg);border:1px solid var(--green-border);border-radius:var(--r-sm);cursor:help;white-space:nowrap;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:inline-flex}.presence-dot{background:var(--presence-dot-ok);width:7px;height:7px;box-shadow:0 0 0 3px var(--presence-pulse-ok);border-radius:50%;animation:1.8s ease-in-out infinite presence-pulse}@keyframes presence-pulse{0%,to{box-shadow:0 0 0 3px var(--presence-pulse-ok)}50%{box-shadow:0 0 0 6px var(--presence-pulse-ok-fade)}}.presence-chip-editing{background:var(--amber-bg);border-color:var(--amber-border);color:var(--amber-text)}.presence-chip-editing .presence-dot{background:var(--presence-dot-edit);box-shadow:0 0 0 3px var(--presence-pulse-edit);animation-name:presence-pulse-edit}@keyframes presence-pulse-edit{0%,to{box-shadow:0 0 0 3px var(--presence-pulse-edit)}50%{box-shadow:0 0 0 6px var(--presence-pulse-edit-fade)}}.presence-editing-count{font-weight:500}@media (max-width:760px){.app-header .presence-chip{display:none}}
.app-header{flex-wrap:nowrap;align-items:center}.header-brand{min-width:0}.brand .brand-full{font-weight:400}.brand .brand-short{font-weight:600;display:none}.header-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex;position:relative}.header-actions>*{flex-shrink:0}.header-actions>.season-control{flex-shrink:1}.header-export svg{flex-shrink:0;width:16px;height:16px}.season-control{align-items:center;gap:4px;min-width:0;display:flex}.season-pill{min-width:0;height:32px;font-family:var(--font-dm-sans), sans-serif;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:500;line-height:1;display:inline-flex;position:relative}.season-pill-picker{cursor:pointer}.season-pill-picker:hover{background:var(--surface-2)}.season-pill-picker:has(.season-pill-select:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.season-pill-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.season-pill-marker{color:var(--ink-mid);font-size:13px;font-weight:400}.season-pill-dot{border:1.5px solid var(--ink-light);border-radius:50%;flex-shrink:0;width:7px;height:7px}.season-pill-dot[data-status=now]{background:var(--green-text);border-color:var(--green-text)}.season-pill-dot[data-status=upcoming]{border-color:var(--accent)}.season-pill-chevron{width:12px;height:12px;color:var(--ink-mid);flex-shrink:0}.season-pill-select{opacity:0;cursor:pointer;appearance:none;border:0;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.season-browse-hint{color:var(--ink-mid);white-space:nowrap;font-size:13px}.account-btn{height:36px;font-family:var(--font-dm-sans), sans-serif;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border-strong);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:0 12px 0 3px;font-size:14px;font-weight:500;display:inline-flex}.account-btn:hover{background:var(--surface-2)}.account-avatar{letter-spacing:.02em;width:28px;height:28px;color:var(--green-text);background:var(--green-bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.account-name{text-overflow:ellipsis;max-width:180px;overflow:hidden}.row-menu.account-menu{min-width:200px}.account-menu a{color:var(--ink);border-radius:4px;padding:7px 10px;font-size:14px;text-decoration:none;display:block}.account-menu a:hover,.account-menu a:focus-visible{background:var(--surface-2)}.account-menu a:focus-visible{outline-offset:-2px}@media (max-width:760px){.app-header{gap:8px}.brand-full span{display:block}.header-actions{gap:6px}.season-pill{height:var(--touch);padding:0 12px;font-size:15px}.season-browse-hint,.season-back-label,.header-export-label,.account-name,.presence-text{display:none}.season-back{min-width:var(--touch);justify-content:center}.header-export{width:var(--touch);justify-content:center;padding:0}.header-export svg{width:20px;height:20px}.account-btn{width:var(--touch);height:var(--touch);justify-content:center;padding:0}.account-avatar{width:32px;height:32px;font-size:13px}.account-menu a,.account-menu button{min-height:var(--touch);align-items:center;display:flex}}@media (max-width:480px){.brand .brand-full{display:none}.brand .brand-short{display:inline}.app-header .save-dot{margin:-3px 0 0;position:absolute;top:50%;left:-6px}.header-actions{gap:4px}.season-back{display:none}.season-pill-marker{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}
.header-search{align-items:center;gap:6px;display:inline-flex}.header-search .qs-icon{width:16px;height:16px}.header-search-kbd{font:inherit;color:var(--ink-light);border:1px solid var(--border);border-radius:var(--r-sm);padding:0 4px;font-size:11px;line-height:16px}.overlay:has(>.qs-modal){align-items:flex-start;padding-top:12vh}.modal.qs-modal{flex-direction:column;max-width:620px;max-height:72vh;display:flex;overflow:hidden}.qs-bar{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 14px;display:flex}.qs-bar .qs-icon{width:18px;height:18px;color:var(--ink-light);flex-shrink:0}.qs-input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;flex:1;padding:6px 0;font-size:17px}.qs-input:focus{outline:none}.qs-bar:focus-within{box-shadow:inset 0 -2px 0 var(--focus)}.qs-cancel{display:none}.qs-list{overscroll-behavior:contain;padding:4px 6px 8px;overflow-y:auto}.qs-group+.qs-group{margin-top:4px}.qs-group-label{color:var(--ink-mid);padding:8px 10px 4px;font-size:12px;font-weight:500}.qs-option{border-radius:var(--r-sm);cursor:pointer;flex-direction:column;gap:1px;padding:7px 10px;display:flex}.qs-option.is-active{background:var(--surface-3);box-shadow:inset 3px 0 0 var(--accent)}.qs-title{color:var(--ink);align-items:baseline;gap:8px;min-width:0;display:flex}.qs-more .qs-title{color:var(--link);font-size:14px}.qs-season{color:var(--blue-text);background:var(--blue-bg);border:1px solid var(--blue-border);white-space:nowrap;border-radius:999px;padding:0 7px;font-size:12px}.qs-detail{color:var(--ink-mid);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.qs-empty{color:var(--ink-mid);padding:16px}.qs-hint{border-top:1px solid var(--border);color:var(--ink-light);padding:8px 14px;font-size:12px}.qs-hint kbd{font:inherit;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 4px}@media (max-width:760px){.header-search{width:var(--touch);justify-content:center;padding:0}.header-search .qs-icon{width:20px;height:20px}.header-search-label,.header-search-kbd{display:none}.overlay:has(>.qs-modal){padding-top:0}.modal.qs-modal{max-height:100dvh}.qs-bar{padding:8px 8px 8px 14px}.qs-input{font-size:16px}.qs-cancel{min-height:var(--touch);display:inline-flex}.qs-list{flex:1}.qs-option{min-height:var(--touch);justify-content:center}.qs-hint{display:none}}
.login-page{background:var(--surface);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:96px 16px 48px;display:flex;position:relative}.login-brand{top:max(28px, env(safe-area-inset-top));left:max(32px, env(safe-area-inset-left));align-items:center;gap:12px;display:flex;position:absolute}.login-brand-mark{background:var(--ink);width:40px;height:40px;color:var(--ink-inverse);font-family:var(--font-display);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:19px;font-weight:600;display:inline-flex}.login-brand-text{flex-direction:column;display:flex}.login-brand-name{font-family:var(--font-display);font-size:19px;font-weight:600;line-height:1.15}.login-brand-org{color:var(--ink-mid);font-size:14px}.login-theme-corner{top:max(28px, env(safe-area-inset-top));right:max(24px, env(safe-area-inset-right));z-index:10;position:absolute}.login-card{background:var(--surface-elev);border:1px solid var(--border);border-radius:20px;width:100%;max-width:440px;padding:36px 36px 32px;box-shadow:0 16px 48px #1b1a1714}.login-heading{flex-direction:column;gap:6px;display:flex}.login-heading h1{font-family:var(--font-display);font-size:32px;font-weight:400;line-height:1.15}.login-heading p{color:var(--ink-mid);font-size:16px}.login-card>.login-heading{margin-bottom:20px}.login-form{flex-direction:column;gap:18px;display:flex}.login-form .login-heading{margin-bottom:4px}.login-field{flex-direction:column;gap:8px;display:flex}.login-field label{font-size:15px;font-weight:600}.login-field input,.login-password{height:48px;font-size:16px;font-family:var(--font-dm-sans), sans-serif;border:1px solid var(--border-strong);background:var(--surface-elev);color:var(--ink);border-radius:10px}.login-field>input{padding:0 14px}.login-field>input:focus{border-color:var(--focus)}.login-password{align-items:center;padding-left:14px;display:flex}.login-password:focus-within{border-color:var(--focus)}.login-password input{outline-offset:6px;background:0 0;border:0;flex:1;min-width:0;height:100%;padding:0}.login-reveal{appearance:none;min-width:64px;height:46px;color:var(--link);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;flex-shrink:0;font-size:15px;font-weight:500}.login-reveal:hover{background:var(--surface-2)}.login-field-hint{color:var(--ink-mid);margin-top:-10px;font-size:14px}.login-submit{border-radius:12px;justify-content:center;height:52px;font-size:17px;font-weight:600}.login-form a.login-submit{align-items:center;text-decoration:none;display:flex}.login-error{background:var(--coral-bg);color:var(--coral-text);border:1px solid var(--coral-border);border-radius:10px;padding:12px 14px;font-size:15px}.login-hint{color:var(--ink-mid);font-size:15px}.login-form>.login-hint:last-child{text-align:center;font-size:14px}.login-link{appearance:none;min-height:var(--touch);font:inherit;color:var(--link);cursor:pointer;background:0 0;border:0;align-self:center;padding:8px 4px;font-size:15px;text-decoration:underline}@media (max-width:560px){.login-page{justify-content:flex-start;padding:88px 16px 32px}.login-brand{left:16px;top:max(20px, env(safe-area-inset-top))}.login-theme-corner{right:16px;top:max(20px, env(safe-area-inset-top))}.login-card{border-radius:16px;padding:24px 20px}.login-heading h1{font-size:28px}}
.rte{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface-elev);flex-direction:column;display:flex}.rte-toolbar{border-bottom:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm) var(--r-sm) 0 0;gap:4px;padding:4px;display:flex}.rte-btn{min-width:28px;height:24px;font-size:14px;font-family:var(--font-dm-sans), sans-serif;color:var(--ink-mid);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0 6px;display:inline-flex}.rte-btn:hover{background:var(--surface-elev);border-color:var(--border)}.rte-btn.is-active{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink)}.rte-content{min-height:96px;max-height:320px;font-size:14px;font-family:var(--font-dm-sans), sans-serif;color:var(--ink);outline:none;padding:8px;line-height:1.5;overflow-y:auto}.rte-content:focus{outline:none}.rte:focus-within{border-color:var(--ink)}.rte:has(.rte-content:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.rte-content p{margin:0 0 .5em}.rte-content p:last-child{margin-bottom:0}.rte-content ul,.rte-content ol{margin:0 0 .5em;padding-left:1.25em}.rte-content a{color:var(--blue-text,#2563eb);text-decoration:underline}.rte-content p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--ink-mid);float:left;pointer-events:none;height:0}.reminder-tpl{flex-direction:column;gap:6px;display:flex}.reminder-tpl-inserts{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.reminder-tpl-inserts-label{color:var(--ink-mid);font-size:12px;font-family:var(--font-dm-sans), sans-serif;margin-right:2px}.reminder-tpl-chip{font-size:12px;font-family:var(--font-dm-sans), sans-serif;background:var(--surface);border:1px solid var(--border-strong);color:var(--ink-mid);cursor:pointer;border-radius:999px;padding:2px 8px}.reminder-tpl-chip:hover{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink)}.reminder-tpl-preview{border:1px dashed var(--border-strong);border-radius:var(--r-sm);background:var(--surface)}.reminder-tpl-preview>summary{cursor:pointer;color:var(--ink-mid);font-size:14px;font-family:var(--font-dm-sans), sans-serif;-webkit-user-select:none;user-select:none;padding:6px 10px}.reminder-tpl-preview>summary::marker{color:var(--ink-mid)}.reminder-tpl-preview-body{color:var(--ink);padding:0 10px 10px;font-size:14px;line-height:1.5}.reminder-tpl-preview-body p{margin:0 0 .5em}.reminder-tpl-preview-body p:last-child{margin-bottom:0}.reminder-tpl-preview-body ul,.reminder-tpl-preview-body ol{margin:0 0 .5em;padding-left:1.25em}.reminder-tpl-preview-body a{color:var(--blue-text,#2563eb);text-decoration:underline}
.room-color-swatch-btn{cursor:pointer;border-radius:4px;width:24px;height:24px;padding:0;position:relative}.room-color-swatch-default-dot{pointer-events:none;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;inset:0}.tech-copy-conflict-banner{background:var(--amber-bg);border:1px solid var(--border-strong);border-radius:var(--r-sm);flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;font-size:14px;display:flex}.session-toggle-btn{cursor:pointer;font-size:13px;font-family:var(--font-dm-mono), monospace;border-radius:12px;padding:3px 9px}.download-preview-textarea{width:100%;height:300px;font-family:var(--font-dm-mono), monospace;border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--ink);background:var(--surface);padding:8px;font-size:13px}.schedule-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;display:grid}.schedule-layout-picking{grid-template-columns:minmax(0,1fr) 360px}.teacher-cell{flex-direction:column;align-items:flex-start;gap:4px;display:inline-flex}.teacher-cell-line{flex-wrap:wrap;align-items:center;gap:4px 6px;display:inline-flex}.teacher-cell-btn{padding:2px 8px}.assign-state{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:14px;font-weight:500;display:inline-block}.assign-state-open{background:var(--amber-bg);color:var(--amber-text)}.assign-state-out{background:var(--coral-bg);color:var(--coral-text)}@media (max-width:760px){.teacher-cell-btn{min-height:var(--touch);padding:8px 14px}}.audit-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.audit-filter{color:var(--ink-mid);flex-direction:column;gap:4px;font-size:14px;font-weight:500;display:flex}.audit-filter input,.audit-filter select{min-height:40px;font:inherit;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:6px 10px;font-size:15px;font-weight:400}.audit-search{flex:260px;max-width:380px}.audit-refresh{min-height:40px}.audit-error{border-radius:var(--r-sm);border:1px solid var(--coral-border);background:var(--coral-bg);color:var(--coral-text);margin-bottom:16px;padding:12px 14px}.audit-empty{text-align:center;color:var(--ink-mid);padding:32px 0}.audit-day+.audit-day{margin-top:24px}.audit-day-title{font-family:var(--font-dm-sans), sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid);margin-bottom:8px;font-size:13px;font-weight:500}.audit-list{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);list-style:none;overflow:hidden}.audit-row{grid-template-columns:76px minmax(0,1fr);gap:12px;padding:12px 16px;display:grid}.audit-row+.audit-row{border-top:1px solid var(--border)}.audit-time{font-family:var(--font-dm-mono), monospace;color:var(--ink-mid);white-space:nowrap;padding-top:2px;font-size:13px}.audit-summary{overflow-wrap:anywhere;font-size:15px;line-height:1.45}.audit-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.audit-area,.audit-action{font-family:var(--font-dm-sans), sans-serif;border:1px solid var(--border-strong);color:var(--ink-mid);border-radius:999px;padding:1px 8px;font-size:12px}.audit-action-insert{color:var(--green-text);background:var(--green-bg);border-color:var(--green-border)}.audit-action-delete{color:var(--coral-text);background:var(--coral-bg);border-color:var(--coral-border)}@media (max-width:760px){.audit-filter{flex:140px}.audit-search{flex-basis:100%;max-width:none}.audit-filter input,.audit-filter select,.audit-refresh{min-height:var(--touch);font-size:16px}.audit-row{grid-template-columns:1fr;gap:2px;padding:12px 14px}}.comms-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.comms-header .page-lede{margin-bottom:0}.comms-section{margin-top:24px}.comms-section-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:8px;display:flex}.comms-section-head h2{font-family:var(--font-display);font-size:22px;font-weight:400;line-height:1.2}.comms-count{font-family:var(--font-dm-sans), sans-serif;color:var(--attention);font-size:13px}.comms-empty{color:var(--ink-mid);background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);padding:20px 16px}.comms-list{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--r);list-style:none;overflow:hidden}.comms-row{grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 12px 12px 16px;display:grid}.comms-row+.comms-row{border-top:1px solid var(--border)}.comms-row-staff{grid-template-columns:minmax(140px,220px) minmax(0,1fr);padding-right:16px}.comms-date{flex-direction:column;line-height:1.2;display:flex}.comms-dow{font-family:var(--font-dm-sans), sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mid);font-size:12px}.comms-day{font-size:15px;font-weight:600}.comms-body{flex-direction:column;gap:2px;min-width:0;display:flex}.comms-title{font-size:15px;font-weight:600}.comms-note{color:var(--ink-mid);font-size:15px}.comms-copy{min-width:64px;color:var(--link);justify-content:center}@media (max-width:760px){.comms-row{grid-template-columns:56px minmax(0,1fr) auto;align-items:start;gap:10px;padding:12px 6px 12px 14px}.comms-row-staff{grid-template-columns:1fr;gap:2px}}.settings-layout{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:32px;display:grid}.settings-nav{flex-direction:column;gap:2px;display:flex;position:sticky;top:16px}.settings-nav a{border-radius:var(--r-sm);color:var(--ink);padding:8px 12px;font-size:15px;text-decoration:none;display:block}.settings-nav a:hover{background:var(--surface-2)}@media (min-width:901px){.settings-nav a.settings-nav-page{border-top:1px solid var(--border);border-radius:0 0 var(--r-sm) var(--r-sm);margin-top:8px;padding-top:12px}}.settings-sections{flex-direction:column;gap:36px;min-width:0;display:flex}.settings-section{scroll-margin-top:16px}.settings-head{max-width:75ch;margin-bottom:12px}.settings-head h2{font-family:var(--font-display);margin-bottom:4px;font-size:24px;font-weight:400;line-height:1.2}.settings-head p{color:var(--ink-mid);font-size:15px}.settings-card{padding:18px}.settings-rooms,.settings-table{overflow-x:auto}.settings-section .banner-warn{margin-bottom:10px}.settings-narrow-field{max-width:200px}.settings-test-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.settings-test-status{margin:0}.settings-test-status.is-error{color:var(--coral-text)}.settings-room-name{flex-direction:column;gap:2px;display:flex}.settings-room-name span{font-weight:600}.settings-room-name code{font-family:var(--font-dm-mono), monospace;color:var(--ink-mid);font-size:13px}.settings-room-input,.settings-activenet-input{width:100%;min-height:38px;font:inherit;color:var(--ink);background:var(--surface-elev);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:6px 10px;font-size:15px}.settings-activenet-input{font-family:var(--font-dm-mono), monospace;font-size:14px}.room-color-picker{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.room-color-custom{font-family:var(--font-dm-sans), sans-serif;color:var(--ink-mid);font-size:13px}@media (max-width:900px){.settings-layout{grid-template-columns:1fr;gap:16px}.settings-nav{scrollbar-width:none;flex-direction:row;gap:6px;margin:0 -14px;padding:0 14px 4px;position:static;overflow-x:auto}.settings-nav a{min-height:var(--touch);border:1px solid var(--border-strong);background:var(--surface-elev);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;padding:0 14px;display:inline-flex}}@media (max-width:760px){.settings-card{padding:14px}.settings-narrow-field{max-width:none}.settings-rooms-tbl,.settings-rooms-tbl tbody,.settings-rooms-tbl tr,.settings-rooms-tbl td{display:block}.settings-rooms-tbl thead{display:none}.settings-rooms-tbl tr{border-bottom:1px solid var(--border);padding:14px;position:relative}.settings-rooms-tbl tr:last-child{border-bottom:0}.settings-rooms-tbl td{border:0;padding:0}.settings-rooms-tbl td+td{margin-top:10px}.settings-rooms-tbl td.settings-room-name{flex-direction:row;align-items:baseline;gap:8px;padding-right:80px;font-size:17px;display:flex}.settings-rooms-tbl td[data-label]:before{content:attr(data-label);color:var(--ink-mid);margin-bottom:4px;font-size:14px;font-weight:500;display:block}.settings-rooms-tbl td.tbl-actions{box-shadow:none;background:0 0;margin:0;position:absolute;top:8px;right:8px}.settings-room-input,.settings-activenet-input{min-height:var(--touch);font-size:16px}.room-color-swatch-btn{width:36px;height:36px}}
.undo-toast{z-index:400;background:var(--ink);color:var(--ink-inverse);border-radius:var(--r);align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:10px 14px;font-size:15px;animation:.18s toast-in;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000047}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.undo-toast-message{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.undo-toast-btn{background:var(--ink-inverse);color:var(--ink);border-color:var(--ink-inverse);flex-shrink:0;font-weight:500}.undo-toast-btn:hover{opacity:.88;background:var(--ink-inverse)}.undo-toast-close{color:var(--ink-inverse);opacity:.65;background:0 0;border-color:#0000;flex-shrink:0}.undo-toast-close:hover{opacity:1;color:var(--ink-inverse);background:#ffffff1f}[data-theme=dark] .undo-toast{background:var(--surface-elev);color:var(--ink);box-shadow:0 6px 24px #000000b3}[data-theme=dark] .undo-toast-btn{background:var(--surface-3);color:var(--ink);border-color:var(--border-strong)}[data-theme=dark] .undo-toast-close{color:var(--ink-mid)}[data-theme=dark] .undo-toast-close:hover{background:var(--surface-2);color:var(--ink)}@media (max-width:760px){.undo-toast{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 12px);max-width:none;left:16px;right:16px;transform:none}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
@keyframes skeleton-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-block{background:linear-gradient(90deg, var(--surface-3) 25%, var(--surface-2) 50%, var(--surface-3) 75%);border-radius:var(--r-sm);background-size:800px 100%;animation:1.4s ease-in-out infinite skeleton-shimmer}.season-badge-skeleton{width:120px;height:32px;display:inline-block}.app-skeleton{flex-direction:column;gap:12px;padding:24px 0;display:flex}.app-skeleton-row{border-radius:var(--r);height:36px}.app-skeleton-row:first-child{width:60%}.app-skeleton-row:nth-child(2){width:85%}.app-skeleton-row:nth-child(3){width:72%}.app-skeleton-row:nth-child(4){width:50%}.app-skeleton-row:nth-child(5){width:78%}

