:root,[data-theme=light]{--ink:#3b2418;--ink-soft:#8a5e48;--paper:#e0b090;--sheet:#d4a07e;--panel:#ebc4a4;--filter:#c88868;--banner:#1a6b66;--banner-ink:#e8fffa;--tray:#155e59;--tray-well:#0f4a46;--tray-ink:#e8fffa;--tray-muted:#7ec4bc;--panel-head-base:#1f7570;--chip-on:#1a6b66;--chip-on-ink:#e8fffa;--chip:#2a8f88;--chip-ink:#e8fffa;--day-fill:#2a8f88;--day-ink:#e8fffa;--head-fill:#248a83;--head-ink:#e8fffa;--slot-empty:#dcb090;--slot-hover:#c8ddd4;--action:#e2553d;--action-ink:#fff5f2;--positive:#1f8378;--positive-ink:#f2fffc;--positive-bright:#5fd3bf;--positive-bright-ink:#06302a;--break-fill:#e8a838;--breakfast-fill:#e3944a;--break-ink:#5a3a08;--bevel-lift:18%;--bevel-sink:14%;--day-w:72px;--period-min:clamp(140px, calc((100vw - 600px) / 8), 200px);--break-w:120px;--grid-table-width:calc(var(--day-w) + (8 * var(--period-min)) + (3 * var(--break-w)));--slot-row-min:48px;--card-grid-min:40px;--sans:"Nunito Sans", system-ui, sans-serif;--mono:"Source Sans 3", "Nunito Sans", system-ui, sans-serif}[data-theme=dark]{--ink:#ffe8d6;--ink-soft:#c4a08a;--paper:#2a1810;--sheet:#351e14;--panel:#422618;--filter:#3a2218;--banner:#0f5c58;--banner-ink:#d8fffa;--tray:#0a2e2c;--tray-well:#051a19;--tray-ink:#d8fffa;--tray-muted:#5aaba4;--panel-head-base:#0f4a46;--chip-on:#2a9d8f;--chip-on-ink:#04201c;--chip:#1a5c58;--chip-ink:#d8fffa;--day-fill:#1a5c58;--day-ink:#d8fffa;--head-fill:#175450;--head-ink:#c8f5f0;--slot-empty:#3e281c;--slot-hover:#2a4a42;--action:#f06a50;--action-ink:#2a1008;--positive:#2a9d8f;--positive-ink:#04201c;--positive-bright:#4fc4b0;--positive-bright-ink:#04201c;--break-fill:#b87820;--breakfast-fill:#b2622a;--break-ink:#ffe8b0;--bevel-lift:14%;--bevel-sink:20%;--day-w:72px;--period-min:clamp(140px, calc((100vw - 600px) / 8), 200px);--break-w:120px;--grid-table-width:calc(var(--day-w) + (8 * var(--period-min)) + (3 * var(--break-w)));--slot-row-min:48px;--card-grid-min:40px;--sans:"Nunito Sans", system-ui, sans-serif;--mono:"Source Sans 3", "Nunito Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--paper);letter-spacing:.005em;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button{font:inherit;cursor:pointer}.app{background:var(--paper);flex-direction:column;height:100%;display:flex;overflow:hidden}.filter-check,.class-panel,.tray-rail,.tray-grip{border-style:solid;border-width:1px;border-color:color-mix(in srgb, var(--surface), white var(--bevel-lift)) color-mix(in srgb, var(--surface), black var(--bevel-sink)) color-mix(in srgb, var(--surface), black var(--bevel-sink)) color-mix(in srgb, var(--surface), white var(--bevel-lift))}.header{background:var(--banner);color:var(--banner-ink);border-bottom:1px solid color-mix(in srgb, var(--banner), black var(--bevel-sink));justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.header-left{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.header-actions{flex-shrink:0;align-items:center;gap:14px;display:flex}.header h1{letter-spacing:-.03em;color:var(--banner-ink);margin:0;font-size:20px;font-weight:700;line-height:1}.header-meta{color:color-mix(in srgb, var(--banner-ink) 78%, transparent);white-space:nowrap;margin:0;font-size:12px}.view-tabs{align-items:center;gap:28px;margin:0 0 0 20px;display:inline-flex}.view-tab{font:inherit;letter-spacing:.01em;color:color-mix(in srgb, var(--banner-ink) 72%, transparent);cursor:pointer;background:0 0;border:0;padding:6px 4px;font-size:16px;font-weight:800;text-decoration:none;transition:color .2s;position:relative}.view-tab:hover{color:#ffc8a0}.view-tab.is-on{color:var(--banner-ink)}.view-tab.is-on:after{content:"";background:var(--action);border-radius:2px;height:4px;position:absolute;top:calc(100% + 2px);left:0;right:0}.header-group{align-items:center;gap:8px;display:flex}.header-group.is-utility{border-left:1px solid color-mix(in srgb, var(--banner-ink) 18%, transparent);gap:4px;padding-left:12px}.header-group:first-child.is-utility{border-left:0;padding-left:0}.hb-svg{flex:none;width:16px;height:16px}.hb-btn{letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:7px;height:34px;padding:0 15px;font-size:13px;font-weight:700;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .12s;display:inline-flex}.hb-btn:focus-visible,.hb-icon:focus-visible,.hb-user:focus-visible{outline:2px solid var(--positive-bright);outline-offset:2px}.hb-btn:active:not(:disabled),.hb-icon:active,.hb-user:active{transform:translateY(1px)scale(.98)}.hb-btn:disabled{opacity:.4;cursor:not-allowed}.hb-btn.is-primary{background:linear-gradient(180deg, color-mix(in srgb, var(--positive-bright), white 18%), var(--positive-bright));color:var(--positive-bright-ink);box-shadow:0 1px 0 #ffffff59 inset, 0 6px 16px -6px color-mix(in srgb, var(--positive-bright), black 30%);padding:0 18px}.hb-btn.is-primary:hover{box-shadow:0 1px 0 #ffffff59 inset, 0 8px 22px -6px color-mix(in srgb, var(--positive-bright), black 20%);background:linear-gradient(180deg, color-mix(in srgb, var(--positive-bright), white 28%), color-mix(in srgb, var(--positive-bright), white 6%))}.hb-btn.is-secondary{background:color-mix(in srgb, var(--banner-ink) 8%, transparent);border-color:color-mix(in srgb, var(--banner-ink) 28%, transparent);color:var(--banner-ink)}.hb-btn.is-secondary:hover:not(:disabled),.hb-btn.is-secondary[aria-expanded=true]{background:color-mix(in srgb, var(--banner-ink) 16%, transparent);border-color:color-mix(in srgb, var(--banner-ink) 45%, transparent)}.hb-chevron{opacity:.8;width:14px;height:14px;margin-right:-4px;transition:transform .18s}.hb-btn[aria-expanded=true] .hb-chevron{transform:rotate(180deg)}.hb-btn.is-ghost{color:color-mix(in srgb, var(--banner-ink) 78%, transparent);background:0 0;padding:0 12px}.hb-btn.is-ghost.is-danger:hover:not(:disabled){background:color-mix(in srgb, var(--action) 22%, transparent);color:#ffd9d0}.hb-icon{width:34px;height:34px;color:color-mix(in srgb, var(--banner-ink) 82%, transparent);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;transition:background-color .18s,color .18s,transform .12s;display:inline-grid}.hb-icon:hover{background:color-mix(in srgb, var(--banner-ink) 14%, transparent);color:var(--banner-ink)}.hb-icon .hb-svg{width:18px;height:18px}.hb-user{background:color-mix(in srgb, var(--banner-ink) 10%, transparent);max-width:220px;height:34px;color:var(--banner-ink);border:0;border-radius:999px;align-items:center;gap:8px;padding:0 12px 0 3px;font-size:13px;font-weight:600;transition:background-color .18s,transform .12s;display:inline-flex}.hb-user:hover{background:color-mix(in srgb, var(--banner-ink) 18%, transparent)}.hb-avatar{background:linear-gradient(135deg, #ffb48a, var(--action));color:#fff;border-radius:999px;flex:none;place-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:inline-grid}.hb-user-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.filter-row{background:var(--filter);border-bottom:1px solid color-mix(in srgb, var(--filter), black var(--bevel-sink));flex-wrap:wrap;gap:8px;padding:10px 14px;display:flex;overflow-x:auto}.filter-accordion{background:var(--filter);border-bottom:1px solid color-mix(in srgb, var(--filter), black var(--bevel-sink))}.filter-accordion-bar{align-items:center;gap:10px;padding:8px 14px;display:flex}.filter-accordion-toggle{--surface:color-mix(in srgb, var(--chip) 14%, var(--filter));border-style:solid;border-width:2px;border-color:color-mix(in srgb, var(--chip) 36%, transparent);background:var(--surface);min-width:0;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;flex:1;align-items:center;gap:8px;margin:0;padding:.45rem .7rem;display:flex}.filter-accordion-toggle:hover{border-color:color-mix(in srgb, var(--chip) 65%, transparent)}.filter-accordion-chevron{width:1em;color:color-mix(in srgb, var(--ink) 70%, transparent);flex-shrink:0;font-size:12px}.filter-accordion-title{letter-spacing:.02em;flex-shrink:0;font-size:13px;font-weight:700}.filter-accordion-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:color-mix(in srgb, var(--ink) 72%, transparent);font-size:12px;font-weight:500;overflow:hidden}.filter-accordion-all{flex-shrink:0}.filter-row.is-accordion-panel{border-bottom:0;max-height:min(42vh,320px);padding-top:0;overflow-y:auto}.filter-accordion-toggle.is-free{flex:0 auto;max-width:260px}.filter-accordion-toggle.is-free.is-active{--surface:color-mix(in srgb, var(--chip-on) 28%, var(--filter));border-color:var(--chip-on)}.free-picker{flex-direction:column;align-items:flex-start;gap:6px;max-height:min(42vh,320px);padding:0 14px 12px;display:flex;overflow:auto}.free-picker-hint{color:color-mix(in srgb, var(--ink) 72%, transparent);margin:0 0 2px;font-size:12px}.free-picker-row{align-items:center;gap:6px;display:flex}.free-picker-day{flex-shrink:0;width:2.6em;font-size:12px;font-weight:700}.free-picker-slot{border:2px solid color-mix(in srgb, var(--chip) 42%, transparent);background:color-mix(in srgb, var(--chip) 18%, var(--filter));min-width:3.6em;color:var(--ink);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;margin:0;padding:.3rem .45rem;font-size:12px}.free-picker-slot:hover{border-color:color-mix(in srgb, var(--chip) 70%, transparent)}.free-picker-slot[aria-pressed=true]{border-color:var(--chip-on);background:color-mix(in srgb, var(--chip-on) 28%, var(--filter));font-weight:700}.free-picker-clear{color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;margin:2px 0 0;padding:.25rem .6rem;font-size:12px;font-weight:600;text-decoration:underline}.filter-check{--surface:color-mix(in srgb, var(--chip) 18%, var(--filter));background:var(--surface);border-style:solid;border-width:2px;border-color:color-mix(in srgb, var(--chip) 42%, transparent);color:var(--ink);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:.55rem;padding:.45rem .75rem;transition:border-color .2s,background .2s;display:inline-flex}.filter-check:hover{border-color:color-mix(in srgb, var(--chip) 70%, transparent)}.filter-check.is-checked{--surface:color-mix(in srgb, var(--chip-on) 28%, var(--filter));border-color:var(--chip-on);background:var(--surface)}.filter-check.is-checked .filter-check-text{font-weight:650}.filter-check.is-disabled{opacity:.5;cursor:not-allowed}.filter-check.is-all{font-weight:600}.filter-check.is-abbreviate{flex-shrink:0;margin-left:auto}.filter-check-input{width:16px;height:16px;accent-color:var(--chip-on);cursor:pointer;border-radius:3px;flex-shrink:0;margin:0}.filter-check.is-disabled .filter-check-input{cursor:not-allowed}.filter-check-text{color:var(--ink);font-size:13px;font-weight:500;line-height:1.3}[data-theme=dark] .filter-check{color:var(--ink)}[data-theme=dark] .filter-check.is-checked{--surface:color-mix(in srgb, var(--chip-on) 34%, var(--filter))}.workspace{flex-direction:column;flex:1;min-height:0;display:flex}.grid-scroll{background:var(--sheet);flex:1;min-height:0;overflow:auto}.grid-empty{color:var(--ink);flex:1;place-items:center;font-size:14px;font-weight:600;display:grid}.grid-stage{flex-direction:column;gap:6px;width:max-content;min-width:100%;padding:12px 14px 16px;display:flex}@media (width>=1760px){.grid-stage{background:color-mix(in srgb, var(--sheet), black 5%);min-width:0;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sheet), black 10%);border-radius:20px;margin:20px auto 24px;padding:14px}}.class-panel{--panel-accent:#1a8a82;--panel-fill:var(--panel);--surface:var(--panel-fill);content-visibility:auto;contain-intrinsic-size:auto 760px;background:var(--panel-fill);width:max-content;min-width:calc(var(--grid-table-width) + 20px);border-radius:14px;flex-direction:column;align-items:stretch;transition:opacity .14s,filter .14s;display:flex;overflow:hidden}.class-panel.is-drag-dimmed{opacity:.38;filter:grayscale(.55);pointer-events:none}.class-panel-head{background:color-mix(in srgb, var(--panel-accent) 55%, var(--panel-head-base));border-bottom:1px solid color-mix(in srgb, var(--panel-accent), black var(--bevel-sink));align-items:center;padding:10px 14px;display:flex}.class-panel-title{align-items:center;gap:14px;min-width:0;display:inline-flex;position:sticky;left:14px}.class-panel-badge{color:#fff;letter-spacing:.01em;white-space:nowrap;text-shadow:0 1px 2px #0003;font-size:24px;font-weight:800;line-height:1.1}.class-panel-teacher{white-space:nowrap;letter-spacing:.01em;color:#e8fffa;border-left:1px solid #ffffff4d;padding-left:14px;font-size:15px;font-weight:600}.class-panel-badge.is-teacher{letter-spacing:.02em;text-transform:none}.class-panel-body{background:var(--panel-fill);padding:8px 10px 10px;overflow:auto}.timetable{border-collapse:separate;border-spacing:0;table-layout:fixed;width:var(--grid-table-width);min-width:var(--grid-table-width);font-size:12px}.timetable .is-saturday td.slot{width:auto;min-width:0;max-width:none}.timetable th,.timetable td{vertical-align:top;background:0 0;border:0}.timetable thead th{z-index:4;text-align:left;padding:0;font-weight:600;position:sticky;top:0}.day-col{z-index:3;width:var(--day-w);min-width:var(--day-w);max-width:var(--day-w);background:var(--day-fill);vertical-align:stretch;padding:0;position:sticky;left:0}.timetable thead .day-col{z-index:5;background:var(--day-fill);vertical-align:bottom;padding-bottom:0}.day-head{--surface:var(--day-fill);box-sizing:border-box;background:var(--day-fill);width:100%;height:100%;min-height:64px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--day-ink);border:0;border-right:1px solid color-mix(in srgb, var(--day-fill), black 28%);border-bottom:1px solid color-mix(in srgb, var(--day-fill), black 22%);box-shadow:none;border-radius:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.day-head:has(.day-head-day){--diagonal:linear-gradient(to top right, transparent calc(50% - .6px), color-mix(in srgb, var(--day-ink), transparent 55%) 50%, transparent calc(50% + .6px));font-size:11px;display:block;position:relative}.day-head:has(.day-head-day):before{content:"";position:absolute;inset:0}.day-head:has(.day-head-day):after{content:"";position:absolute;inset:0}.day-head:has(.day-head-day):before{clip-path:polygon(0 0,100% 0,100% 100%);background:var(--diagonal), linear-gradient(to right, color-mix(in srgb, var(--head-fill), white 12%), var(--head-fill))}.day-head:has(.day-head-day):after{clip-path:polygon(0 0,0 100%,100% 100%);background:var(--diagonal), linear-gradient(to bottom, color-mix(in srgb, var(--day-fill), white 12%), var(--day-fill))}.day-head-time,.day-head-day{z-index:1;line-height:1;position:absolute}.day-head-time{top:6px;right:5px}.day-head-day{bottom:6px;left:5px}.day-pill{--surface:var(--day-fill);min-height:var(--slot-row-min);box-sizing:border-box;background:var(--day-fill);width:100%;height:100%;font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--day-ink);box-shadow:none;border:0;border-radius:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.timetable tbody .day-col{background:var(--day-fill);vertical-align:middle;border-right:1px solid color-mix(in srgb, var(--day-fill), black 28%);border-bottom:1px solid color-mix(in srgb, var(--day-fill), white 10%)}.timetable tbody td.slot{vertical-align:middle}.timetable tbody:not(.is-saturday) tr:nth-child(2n)>td,.timetable tbody.is-saturday tr:nth-child(odd)>td{background:color-mix(in srgb, var(--panel-fill), black 10%)}.timetable tbody:last-child tr:last-child .day-col{border-bottom:0}.timetable thead .day-col{padding-bottom:0}.timetable th.slot-head{width:var(--period-min);min-width:var(--period-min);max-width:var(--period-min);vertical-align:bottom;background:var(--head-fill);border-right:1px solid color-mix(in srgb, var(--head-fill), black 26%);border-bottom:1px solid color-mix(in srgb, var(--head-fill), black 22%);padding:0}.is-breakfast{--break-fill:var(--breakfast-fill)}.timetable th.slot-head.is-break{width:var(--break-w);min-width:var(--break-w);max-width:var(--break-w);background:var(--break-fill);border-right-color:color-mix(in srgb, var(--break-fill), black 28%);border-bottom-color:color-mix(in srgb, var(--break-fill), black 24%);overflow:hidden}.timetable th.slot-head.is-fixed{width:var(--break-w);min-width:var(--break-w);max-width:var(--break-w);background:color-mix(in srgb, var(--head-fill) 72%, var(--panel));border-right-color:color-mix(in srgb, var(--head-fill), black 30%);border-bottom-color:color-mix(in srgb, var(--head-fill), black 24%);overflow:hidden}.timetable thead .slot-head:last-child{border-right:0}.slot-time{box-sizing:border-box;width:100%;font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--head-ink);white-space:nowrap;text-align:center;background:0 0;border:0;border-radius:0;margin:0;padding:8px 6px 2px;font-size:11px;font-weight:600;display:block}.slot-label{box-sizing:border-box;width:100%;font-family:var(--sans);letter-spacing:.04em;text-transform:uppercase;text-align:center;color:color-mix(in srgb, var(--head-ink) 82%, transparent);background:0 0;border:0;border-radius:0;margin:0;padding:0 6px 8px;font-size:10px;font-weight:650;display:block}.slot-head.is-break .slot-time,.slot-head.is-break .slot-label{color:var(--break-ink);max-width:100%;overflow:hidden}.slot-head.is-fixed .slot-time,.slot-head.is-fixed .slot-label{color:var(--head-ink);max-width:100%;overflow:hidden}.slot-head.is-break .slot-time,.slot-head.is-fixed .slot-time{letter-spacing:0;padding:7px 3px 1px;font-size:10px}.slot-head.is-break .slot-time.is-stacked,.slot-head.is-fixed .slot-time.is-stacked{white-space:normal;flex-direction:column;justify-content:center;align-items:center;gap:1px;line-height:1.15;display:flex}.slot-head.is-break .slot-label,.slot-head.is-fixed .slot-label{letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;padding:0 3px 7px;font-size:9px}.slot{height:auto;min-height:var(--slot-row-min);width:var(--period-min);min-width:var(--period-min);max-width:var(--period-min);vertical-align:middle;padding:4px 3px}.slot.is-break,.slot.is-fixed{width:var(--break-w);min-width:var(--break-w);max-width:var(--break-w)}.break-cell{--surface:var(--break-fill);height:100%;min-height:var(--card-grid-min);background:var(--break-fill);border-style:solid;border-width:1px;border-color:color-mix(in srgb, var(--surface), black var(--bevel-sink)) color-mix(in srgb, var(--surface), white var(--bevel-lift)) color-mix(in srgb, var(--surface), white var(--bevel-lift)) color-mix(in srgb, var(--surface), black var(--bevel-sink));border-radius:14px;place-items:center;display:grid}.break-label{letter-spacing:.04em;text-transform:uppercase;color:var(--break-ink);text-align:center;font-size:9px;font-weight:700}.fixed-cell{--surface:color-mix(in srgb, var(--head-fill) 55%, var(--slot-empty));height:100%;min-height:var(--card-grid-min);background:var(--surface);border-style:solid;border-width:1px;border-color:color-mix(in srgb, var(--surface), black 18%) color-mix(in srgb, var(--surface), white 10%) color-mix(in srgb, var(--surface), white 10%) color-mix(in srgb, var(--surface), black 18%);border-radius:14px;place-items:center;display:grid}:is(.break-cell:has(.cell-time),.fixed-cell:has(.cell-time)){align-content:center;gap:1px}.cell-time{font-variant-numeric:tabular-nums;opacity:.75;font-size:9px;font-weight:600}.break-cell .cell-time{color:var(--break-ink)}.fixed-cell .cell-time{color:var(--head-ink)}.fixed-cell.is-duty{--surface:color-mix(in srgb, var(--head-fill) 30%, var(--slot-empty))}.fixed-label{letter-spacing:.03em;text-transform:uppercase;color:var(--head-ink);text-align:center;max-height:100%;font-size:9px;font-weight:700}.slot-placeholder{--slot-fill:var(--slot-empty);--surface:var(--slot-fill);height:100%;min-height:calc(var(--slot-row-min) - 8px);background:var(--slot-fill);border:1px solid color-mix(in srgb, var(--surface), black 15%);border-radius:14px;box-shadow:inset .55px .55px #0000001f,inset -.55px -.55px #ffffff5c}.slot:hover:not(.is-break) .slot-placeholder{--slot-fill:var(--slot-hover);background:var(--slot-fill);border-color:color-mix(in srgb, var(--surface), black 15%)}.tray{pointer-events:none;background:0 0;flex-shrink:0;min-height:0;padding:0 12px 10px;transition:height .18s}.tray.is-empty{padding-bottom:6px}.tray.is-empty .tray-rail{justify-content:center;align-items:center;gap:0;padding:4px 12px 6px}.tray.is-empty .tray-grip{cursor:default;opacity:.85}.tray-empty-hint{letter-spacing:.04em;color:var(--tray-muted);pointer-events:none;margin:0;font-size:11px;line-height:1}.tray.is-resizing{-webkit-user-select:none;user-select:none;transition:none}.tray.is-resizing .tray-grip{background:#6abab1}.tray-rail{--surface:var(--tray);pointer-events:auto;background:linear-gradient(180deg, color-mix(in srgb, var(--tray), white 6%) 0%, var(--tray) 38%, color-mix(in srgb, var(--tray), black 5%) 100%);height:100%;min-height:0;color:var(--tray-ink);border-radius:16px 16px 12px 12px;flex-direction:column;gap:6px;padding:8px 12px 10px;display:flex;box-shadow:0 -6px 18px #14080233,inset 0 1px #ffffff26}.tray-grip{--surface:#2a9d8f;cursor:ns-resize;touch-action:none;background:linear-gradient(#45b8a7,#2a9d8f);border-radius:999px;flex-shrink:0;align-self:center;width:56px;height:6px;box-shadow:0 1px 1px #0000002e}.tray-grip:focus-visible{outline-offset:3px;outline:2px solid #7fc4bc}.tray-head{flex-shrink:0;justify-content:space-between;align-items:baseline;gap:12px;padding:0 2px;display:flex}.tray-head h2{letter-spacing:.02em;margin:0;font-size:13px;font-weight:650}.tray-head p{color:var(--tray-muted);margin:2px 0 0;font-size:11px}.tray-body{background:linear-gradient(180deg, color-mix(in srgb, var(--tray-well), black 9%) 0%, var(--tray-well) 22%);border:1px solid;border-color:color-mix(in srgb, var(--tray-well), black 20%) color-mix(in srgb, var(--tray), white 9%) color-mix(in srgb, var(--tray), white 9%) color-mix(in srgb, var(--tray-well), black 20%);scrollbar-width:thin;border-radius:10px;flex-direction:column;flex:1;gap:8px;min-height:0;padding:8px 10px 10px;display:flex;overflow:hidden auto;box-shadow:inset 0 2px 6px #0003}.tray-group{flex-direction:column;flex:none;gap:6px;width:100%;min-width:0;display:flex}.tray-group+.tray-group{border-top:1px dashed color-mix(in srgb, var(--tray-muted) 35%, transparent);padding-top:8px}.tray-group h3{letter-spacing:.08em;text-transform:uppercase;color:var(--tray-ink);background:linear-gradient(180deg, color-mix(in srgb, var(--tray-muted) 30%, var(--tray-well)), color-mix(in srgb, var(--tray-muted) 22%, var(--tray-well)));border-radius:999px;align-self:flex-start;margin:0;padding:2px 8px;font-size:10px;font-weight:700;box-shadow:inset 0 1px #ffffff1f,0 1px 1px #0000002e}.tray-cards{scrollbar-width:thin;gap:7px;padding-bottom:2px;display:flex;overflow-x:auto}.tray-card-wrap{--card-w:112px;flex:0 0 var(--card-w);will-change:transform}.tray-card-wrap:has(.lesson-card.is-double){flex-basis:calc(var(--card-w) * 2 + 7px)}.tray-card-wrap:has(.lesson-card.is-tray-bundle){flex-basis:calc(var(--card-w) * 1.6)}.tray-card-wrap:has(.lesson-card.is-tray-bundle.is-double){flex-basis:calc(var(--card-w) * 2.4)}.tray-card-wrap .lesson-card{box-sizing:border-box;flex:none;width:100%;height:100%}.lesson-card-badges{flex-shrink:0;gap:4px;display:flex}.lesson-card-badge{letter-spacing:.06em;background:#0000002e;border-radius:999px;padding:1px 5px;font-size:9px;box-shadow:inset 0 0 0 1px #ffffff4d}.lesson-card-stream{opacity:.9;font-size:10px;font-weight:600}.lesson-card-lines{flex-direction:column;gap:1px;margin:0;padding:0;font-size:11px;line-height:1.3;list-style:none;display:flex}.lesson-card-lines strong{font-weight:650}.lesson-card{--card-w:128px;flex:0 0 var(--card-w);color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #ffffff42;border-radius:10px;flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:4px 10px;display:flex;box-shadow:0 1px 4px #00000017,inset .55px .55px #ffffff61,inset -.55px -.55px #00000014}.lesson-card[draggable=false]{cursor:default}.lesson-card[draggable=true]{touch-action:none}@media (pointer:coarse){.grid-scroll,.tray{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}.touch-drag-ghost{z-index:2147483000;pointer-events:none;opacity:.92;will-change:transform;box-shadow:0 10px 24px -6px #00000073}.touch-drag-ghost.is-refused{opacity:.6}.lesson-card[draggable=true]:active{cursor:grabbing;box-shadow:inset .55px .55px #0000001a,inset -.55px -.55px #ffffff38}.lesson-card.is-double{flex-basis:calc(var(--card-w) * 2 + 7px)}.lesson-card.is-grid{width:100%;height:auto;min-height:var(--card-grid-min);box-sizing:border-box;flex-flow:wrap;flex:none;place-content:center flex-start;align-items:baseline;gap:2px 6px;overflow:visible}.lesson-card.is-grid:not(.is-abbr)>.lesson-card-teacher{flex-basis:100%}.lesson-card.is-grid>.lesson-card-subject,.lesson-card.is-grid>.lesson-card-teacher{flex-shrink:1;min-width:0;max-width:100%}.lesson-card-top{letter-spacing:.08em;text-transform:uppercase;opacity:.95;flex-shrink:0;justify-content:space-between;gap:8px;font-size:10px;font-weight:650;display:flex}.lesson-card-subject{overflow-wrap:anywhere;word-break:break-word;flex-shrink:0;font-size:13px;font-weight:650;line-height:1.25}.lesson-card-teacher{opacity:.95;white-space:normal;overflow-wrap:anywhere;word-break:break-word;flex-shrink:0;font-size:11px;line-height:1.3}.lesson-card.is-coteach{min-height:var(--card-grid-min);gap:2px;height:auto;padding:4px 10px}.lesson-card-coteach-count{letter-spacing:.04em;text-transform:uppercase;opacity:.9;font-size:10px}.slot.has-lesson{vertical-align:middle;max-width:none;height:auto;min-height:var(--slot-row-min);padding:0}.slot.has-lesson .lesson-card{border-radius:12px}.slot.has-lesson.is-stack{vertical-align:middle}.lesson-stack{height:100%;min-height:var(--card-grid-min);flex-direction:column;gap:4px;padding:3px;display:flex}.lesson-stack.is-elective{--batch-hue:var(--panel-accent);--batch-wash:color-mix(in srgb, var(--panel-fill) 45%, white);--surface:color-mix(in srgb, var(--batch-hue) 50%, var(--batch-wash));background:var(--surface);border-style:solid;border-width:1px;border-color:color-mix(in srgb, var(--surface), white calc(var(--bevel-lift) + 8%)) color-mix(in srgb, var(--surface), black calc(var(--bevel-sink) + 8%)) color-mix(in srgb, var(--surface), black calc(var(--bevel-sink) + 8%)) color-mix(in srgb, var(--surface), white calc(var(--bevel-lift) + 8%));box-shadow:inset 1px 1px 0 color-mix(in srgb, var(--surface), white 14%), inset -1px -1px 0 color-mix(in srgb, var(--surface), black 12%);border-radius:14px;gap:3px;padding:4px}[data-theme=dark] .lesson-stack.is-elective{--batch-wash:var(--panel-fill)}.lesson-stack.is-elective[data-shade="0"]{--batch-hue:#3f6fd1}.lesson-stack.is-elective[data-shade="1"]{--batch-hue:#d69a1f}.lesson-stack.is-elective[data-shade="2"]{--batch-hue:#3f9f4f}.lesson-stack.is-elective[data-shade="3"]{--batch-hue:#b8479a}.lesson-stack.is-elective[data-shade="4"]{--batch-hue:#1f9fb8}.lesson-stack.is-elective[data-shade="5"]{--batch-hue:#c84a3a}.lesson-stack.is-elective[data-shade="6"]{--batch-hue:#7a55c8}.lesson-stack.is-elective[data-shade="7"]{--batch-hue:#8a9a2a}.lesson-stack.is-elective>.lesson-card{border-color:#00000026}.elective-bundle-label{letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb, var(--ink) 75%, var(--batch-hue,var(--panel-accent)));white-space:nowrap;text-overflow:ellipsis;flex:none;padding:0 2px 2px;font-size:10px;font-weight:700;line-height:1.2;overflow:hidden}.lesson-stack .lesson-card{flex:auto;height:auto;min-height:36px;font-size:11px}.lesson-card.is-compact{height:auto;min-height:36px;padding:5px 8px}.lesson-card.is-compact .lesson-card-subject{font-size:11px}.lesson-card.is-compact .lesson-card-teacher{font-size:10px}.lesson-card.is-abbr{flex-flow:wrap;place-content:center flex-start;align-items:baseline;gap:2px 6px}.lesson-card.is-abbr:not(.is-grid)>.lesson-card-top,.lesson-card.is-abbr>.lesson-card-stream,.lesson-card.is-abbr>.lesson-card-lines{flex-basis:100%}.lesson-card.is-abbr .lesson-card-subject,.lesson-card.is-abbr .lesson-card-teacher{overflow-wrap:normal;word-break:normal}.lesson-stack .lesson-card.is-abbr,.lesson-card.is-compact.is-abbr{min-height:22px;padding:3px 8px}.lesson-stack:has(>.lesson-card.is-abbr){flex-flow:wrap;align-content:flex-start}.lesson-stack:has(>.lesson-card.is-abbr)>.elective-bundle-label{flex-basis:100%}.lesson-stack>.lesson-card.is-abbr{flex:1 0 auto;width:auto}.slot.is-drop-hover .slot-placeholder{background:color-mix(in srgb, #3b82f6 30%, var(--slot-empty));border-color:color-mix(in srgb, #3b82f6 38%, var(--slot-empty));box-shadow:inset .55px .55px #1d4ed824,inset -.55px -.55px #ffffff57}.slot.is-drop-conflict .slot-placeholder{background:color-mix(in srgb, #f43f3f 68%, var(--slot-empty));border-color:color-mix(in srgb, #c81e1e 80%, var(--slot-empty));box-shadow:inset .55px .55px #991b1b24,inset -.55px -.55px #ffffff47}.slot.is-slot-taken .slot-placeholder{background:color-mix(in srgb, #f43f3f 48%, var(--slot-empty));border-color:color-mix(in srgb, #dc2626 60%, var(--slot-empty));box-shadow:inset .55px .55px #991b1b1f,inset -.55px -.55px #ffffff3d}.placement-error{color:#fff5f5;background:#b91c1c;border-bottom:1px solid #591414;margin:0;padding:6px 14px;font-size:12px;font-weight:600}.schedule-note{background:color-mix(in srgb, var(--chip-on) 88%, black);color:var(--chip-on-ink);border-bottom:1px solid color-mix(in srgb, var(--chip-on), black 25%);margin:0;padding:6px 14px;font-size:12px;font-weight:600}.boot-screen,.login-page{background:var(--paper);min-height:100%;color:var(--ink);place-items:center;gap:12px;padding:24px;font-size:14px;display:grid}.boot-screen{align-content:center}.error-card{background:var(--panel);border-radius:18px;justify-items:start;gap:10px;width:min(400px,100%);padding:26px 26px 22px;display:grid;box-shadow:0 18px 40px -24px #00000073}.error-card h1{margin:0;font-size:18px}.error-card p{color:var(--ink-soft);margin:0 0 6px;line-height:1.45}.section-error{justify-items:center;gap:10px;display:grid}.offline-banner{color:#fff7ed;background:#92400e;border-bottom:1px solid #54250b;margin:0;padding:6px 14px;font-size:12px;font-weight:600}.login-card{background:var(--panel);border-radius:18px;gap:14px;width:min(380px,100%);padding:28px 26px 22px;display:grid;box-shadow:0 18px 40px -24px #00000073}.login-card h1{color:var(--banner);margin:0;font-size:22px}[data-theme=dark] .login-card h1{color:var(--tray-muted)}.login-hint{color:var(--ink-soft);margin:0;line-height:1.45}.field{color:var(--ink-soft);gap:5px;font-size:12px;font-weight:700;display:grid}.field input{font:inherit;color:var(--ink);border:1px solid color-mix(in srgb, var(--ink) 22%, transparent);background:#fff;border-radius:9px;min-width:0;padding:8px 10px;font-size:14px;font-weight:400}[data-theme=dark] .field input{background:var(--sheet)}.field input:focus{outline:2px solid var(--chip);outline-offset:1px}.primary-button,.small-button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:9px;font-weight:700}.primary-button{background:var(--positive);color:var(--positive-ink);padding:9px 14px;font-size:13px}.primary-button:disabled,.small-button:disabled{opacity:.55;cursor:default}.small-button{background:color-mix(in srgb, var(--ink) 10%, transparent);color:var(--ink);padding:4px 9px;font-size:12px}.small-button.is-primary{background:var(--chip);color:var(--chip-ink)}.small-button.is-danger{color:#b3261e}[data-theme=dark] .small-button.is-danger{color:#ff8a80}.form-error{background:color-mix(in srgb, var(--action) 18%, transparent);color:var(--ink);border-radius:10px;margin:0;padding:8px 10px;font-size:13px}.pdf-menu{position:relative}.pdf-menu-list{z-index:40;background:#fff;border-radius:10px;min-width:180px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px -12px #00000073}.pdf-menu-list button{color:#222;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;gap:1px;padding:8px 10px;font-size:13px;font-weight:700;display:grid}.pdf-menu-list button:hover,.pdf-menu-list button:focus-visible{background:#f0f0f0}.pdf-menu-list span{color:#666;font-size:11px;font-weight:400}[data-theme=dark] .pdf-menu-list{background:var(--sheet)}[data-theme=dark] .pdf-menu-list button{color:var(--ink)}[data-theme=dark] .pdf-menu-list button:hover,[data-theme=dark] .pdf-menu-list button:focus-visible{background:color-mix(in srgb, var(--ink) 10%, transparent)}[data-theme=dark] .pdf-menu-list span{color:var(--ink-soft)}.save-status{color:color-mix(in srgb, var(--banner-ink) 75%, transparent);white-space:nowrap;align-items:center;gap:6px;margin-right:4px;font-size:12px;font-weight:600;display:inline-flex}.save-dot{background:#f5c35b;border-radius:999px;width:7px;height:7px;animation:1.2s ease-in-out infinite save-pulse}.save-status.is-saved .save-dot{background:var(--positive-bright);animation:none}.save-status.is-error{color:#ffb4a8}.save-status.is-error .save-dot{background:#ff7a66}@keyframes save-pulse{50%{opacity:.35}}.header-role{text-transform:uppercase;background:color-mix(in srgb, var(--banner-ink) 18%, transparent);border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.manage{min-height:0;color:var(--ink);flex-direction:column;flex:1 1 0;padding:28px 32px 20px;font-size:14px;display:flex;overflow-y:auto}.manage>:not(.modal-overlay){width:100%;max-width:1200px;margin-left:auto;margin-right:auto}.manage-head{align-items:center;gap:14px;margin-bottom:14px;display:flex}.manage-tabs{gap:10px;display:inline-flex}.manage-tab{font:inherit;background:var(--panel);color:var(--ink);cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:7px;padding:8px 17px;font-size:15px;font-weight:800;text-decoration:none;display:inline-flex}.manage-tab.is-on{background:var(--chip-on);color:var(--chip-on-ink)}.manage-count{text-align:center;background:color-mix(in srgb, currentColor 14%, transparent);border-radius:999px;min-width:24px;padding:1px 7px;font-size:11px}.manage-head{margin-bottom:22px}.manage-note,.muted{color:var(--ink-soft);font-size:13px}.manage-error{justify-content:space-between;gap:12px;margin-bottom:12px;display:flex}.manage-empty{color:var(--ink-soft);list-style:none}.manage-section{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.manage>:not(.is-table){flex-shrink:0}.manage-section.is-table{flex-direction:column;flex:1 1 0;min-height:360px;display:flex}.manage-section.is-table>*{flex-shrink:0}.manage-section.is-table>.charismap-table{flex-direction:column;flex:0 auto;min-height:0;display:flex}.manage-add{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.manage-add>div,.link-row>div,.link-editor-foot>div{margin-bottom:0}.manage-add>div:not(.manage-filter){flex:200px}.manage-add>.manage-filter{flex:0 0 240px}.manage-add>div.manage-abbr{flex:0 0 150px}.manage-hint{margin:0}.abbr-cell{letter-spacing:.03em;font-weight:700}.abbr-cell.is-auto{color:var(--ink-soft);font-weight:400}.inline-field{color:var(--ink-soft);align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.row-actions{white-space:nowrap;justify-content:flex-end;gap:.35rem;display:flex}.charismap-table .row-actions{justify-content:center}.icon-action{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.45rem;line-height:0;transition:background-color .2s;display:inline-flex}.icon-action:hover{background-color:#64b5f624}.icon-action.is-delete:hover{background-color:#ef535024}.link-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.link-card{background:var(--background);border-radius:14px;grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:10px 14px;display:grid;box-shadow:0 1px 3px #00000014}.link-main{gap:4px;display:grid}.link-member{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.link-class{text-align:center;background:var(--chip);min-width:42px;color:var(--chip-ink);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.link-tag{background:color-mix(in srgb, var(--break-fill) 45%, transparent);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.link-tag.is-soft{background:color-mix(in srgb, var(--ink) 10%, transparent)}.link-counts{justify-items:end;gap:2px;font-size:13px;display:grid}.link-editor{background:var(--background);outline:2px solid var(--chip);border-radius:14px;gap:12px;padding:16px;display:grid}.link-editor p{margin:0}.link-row{grid-template-columns:110px 1.3fr 1.5fr 1fr 1fr auto;align-items:center;gap:10px;display:grid}.link-editor-foot{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.manage>.toast-stack{top:calc(var(--header-h,56px) + 10px);z-index:50;pointer-events:none;justify-items:center;gap:8px;width:max-content;max-width:min(480px,100vw - 24px);margin:0;display:grid;position:fixed;left:50%;transform:translate(-50%)}.toast{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;border-radius:12px;align-items:center;gap:12px;padding:10px 12px 10px 14px;font-size:14px;font-weight:600;animation:.18s ease-out toast-in;display:flex;box-shadow:0 14px 30px -14px #00000080}.toast.is-success{background:color-mix(in srgb, var(--chip-on) 78%, transparent);color:var(--chip-on-ink)}.toast.is-error{background:color-mix(in srgb, var(--action) 80%, transparent);color:var(--action-ink)}.toast span{flex:1}.toast-close{font:inherit;color:inherit;opacity:.8;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:18px;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.manage-add.is-editing{background:color-mix(in srgb, var(--chip) 14%, transparent);outline:2px solid var(--chip);border-radius:12px;padding:10px 12px}.manage-editing-label{text-transform:uppercase;letter-spacing:.05em;color:var(--chip-on);font-size:12px}.charismap-table{color:var(--text-body)}.app{overflow:auto}.header{z-index:30;flex-wrap:wrap;row-gap:10px;position:sticky;top:0}.header-actions{flex-wrap:wrap;flex-shrink:1;min-width:0}.workspace{flex:1 0 0;min-height:520px}.workspace[hidden]{display:none}@media (width<=900px){.header{padding:10px 14px}.header-left{flex-wrap:nowrap;max-width:100%}.view-tabs{scrollbar-width:none;gap:18px;margin-left:10px;overflow-x:auto}.view-tab{white-space:nowrap;font-size:15px}.filter-row:not(.is-accordion-panel){flex-wrap:nowrap}.filter-check{flex-shrink:0}.manage{padding:18px 14px 14px}.manage-head{flex-wrap:wrap}.manage-tabs{scrollbar-width:none;max-width:100%;overflow-x:auto}.manage-tab{flex-shrink:0}.manage-add>.manage-filter{flex:200px}.link-row{grid-template-columns:repeat(2,minmax(0,1fr))}.link-card{grid-template-columns:1fr auto}.link-card .row-actions{grid-column:1/-1}}@media (width<=560px){.header-actions{justify-content:space-between;gap:6px;width:100%}.hb-btn{padding:0 11px}.hb-user-name,.header-role{display:none}.hb-user{padding-right:3px}.link-row{grid-template-columns:minmax(0,1fr)}.link-editor-foot .spacer{display:none}}@media (height<=560px){.workspace{min-height:420px}}@media (width<=760px),(height<=560px) and (pointer:coarse){:root,:root[data-theme]{--day-w:38px;--break-w:52px;--grid-gutter:24px;--slot-row-min:30px;--card-grid-min:26px}.timetable tbody:not(.is-saturday) tr:nth-child(2n)>td,.timetable tbody.is-saturday tr:nth-child(odd)>td{background:0 0}.timetable{--period-min:max(80px, calc((100vw - var(--grid-gutter) - var(--day-w) - var(--breaks,3) * var(--break-w)) / var(--periods,8)));--grid-table-width:calc(var(--day-w) + var(--periods,8) * var(--period-min) + var(--breaks,3) * var(--break-w));font-size:11px}.app>*{flex-shrink:0}.header,.header-left,.header-actions{flex-wrap:nowrap}.header{gap:8px;padding:4px 8px;position:static}.header h1{display:none}.header-left{flex:1;min-width:0}.view-tabs{gap:14px;margin:0;padding:0 2px 6px}.view-tab{padding:6px 0 2px;font-size:14px}.view-tab.is-on:after{height:3px;top:100%}.header-actions{gap:6px;width:auto}.header-group,.header-group.is-utility{gap:2px}.header-group.is-utility{padding-left:6px}.hb-btn,.hb-btn.is-primary,.hb-btn.is-ghost,.save-status{gap:0;height:30px;padding:0 8px;font-size:0}.hb-icon{width:30px;height:30px}.hb-user{height:30px;padding:0 2px}.hb-avatar{width:26px;height:26px}.hb-user-name,.header-role{display:none}.workspace{flex:none;min-height:0}.grid-scroll{flex:none;overflow:auto hidden}.grid-stage{gap:8px;padding:6px 6px 12px}.tray{z-index:20;max-height:45vh;padding:0 6px 4px;position:sticky;bottom:0}.tray-rail{padding:6px 8px 8px}.tray-head p{display:none}.lesson-card[draggable=true]{-webkit-touch-callout:none}.filter-row:not(.is-accordion-panel){flex-wrap:nowrap;gap:6px;padding:5px 8px}.filter-accordion-bar{gap:6px;padding:5px 8px}.filter-check,.filter-accordion-toggle{flex-shrink:0;padding:.2rem .55rem;font-size:12px}.filter-accordion-toggle{flex-shrink:1}.filter-check.is-abbreviate{display:none}.class-panel{contain-intrinsic-size:auto 330px;border-radius:10px;min-width:0;overflow:clip}.class-panel-head{padding:5px 8px}.class-panel-title{gap:8px;left:8px}.class-panel-badge{font-size:16px}.class-panel-teacher{padding-left:8px;font-size:12px}.class-panel-body{padding:4px;overflow:visible}.day-head{min-height:0}.day-head-time,.day-head-day{display:none}.day-pill{letter-spacing:.02em;font-size:11px}.slot-time{letter-spacing:0;padding:4px 2px 1px;font-size:10px}.slot-label{white-space:normal;padding:0 2px 4px;font-size:8.5px}.slot-head.is-break .slot-time,.slot-head.is-fixed .slot-time{padding:4px 1px 1px;font-size:8.5px}.slot-head.is-break .slot-label,.slot-head.is-fixed .slot-label{letter-spacing:0;white-space:nowrap;padding:0 1px 4px;font-size:8px}.slot{padding:1px 2px}.slot-placeholder{min-height:calc(var(--slot-row-min) - 2px);border-radius:6px}.break-cell,.fixed-cell{min-height:var(--card-grid-min);border-radius:6px;container-type:inline-size}.break-label,.fixed-label,.cell-time{letter-spacing:0;max-width:100%;font-size:7.5px;line-height:1.15;overflow:hidden}@container (width<=30px){.break-label,.fixed-label,.cell-time{display:none}}.slot.has-lesson .lesson-card,.lesson-card.is-grid,.lesson-card.is-coteach{min-height:var(--card-grid-min);border-radius:6px;gap:0 4px;padding:1px 5px}.lesson-card.is-grid .lesson-card-subject{font-size:10px;line-height:1.15}.lesson-card.is-grid .lesson-card-teacher{font-size:8.5px;line-height:1.15}.lesson-card.is-grid .lesson-card-top{letter-spacing:.02em;font-size:8px;line-height:1.15}.lesson-stack,.lesson-stack.is-elective{border-radius:8px;gap:2px;padding:2px}.elective-bundle-label{padding:0 2px 1px;font-size:8px}.lesson-stack .lesson-card.is-abbr{min-height:0;padding:1px 4px}}.confirm-message{color:var(--ink);margin:0;font-size:15px;line-height:1.5}.confirm-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:1.4rem;display:flex}.view-tab-badge{background:var(--action);color:#fff;vertical-align:2px;border-radius:9px;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:800;display:inline-grid}.chat-panel{flex-direction:column;flex:1 1 0;width:min(100%,1100px);min-height:0;margin:0 auto;padding:12px 16px 16px;display:flex}.chat-panel .str-chat{--str-chat__font-family:var(--sans);--str-chat__accent-primary:var(--positive);--str-chat__text-on-accent:var(--positive-ink);--str-chat__text-primary:var(--ink);--str-chat__text-secondary:var(--ink-soft);--str-chat__text-tertiary:color-mix(in srgb, var(--ink-soft), var(--room-bg) 15%);--str-chat__text-link:var(--positive);--str-chat__background-core-app:var(--room-bg);--str-chat__background-core-elevation-0:var(--room-bg);--str-chat__background-core-elevation-1:var(--room-theirs);--str-chat__background-core-surface-default:var(--room-well);--str-chat__background-core-surface-subtle:var(--room-well);--str-chat__border-core-default:var(--room-line);--str-chat__chat-bg-incoming:var(--room-theirs);--str-chat__chat-text-incoming:var(--ink);--str-chat__chat-border-incoming:var(--room-theirs-edge);--str-chat__chat-bg-attachment-incoming:var(--room-well);--str-chat__chat-bg-outgoing:var(--room-mine);--str-chat__chat-text-outgoing:var(--room-mine-ink);--str-chat__chat-border-outgoing:var(--room-mine-edge);--str-chat__chat-bg-attachment-outgoing:color-mix(in srgb, var(--room-mine), black 18%);--str-chat__chat-reply-indicator-outgoing:var(--positive-bright);--str-chat__chat-text-mention:var(--positive);--str-chat__input-text-default:var(--ink);--str-chat__input-text-placeholder:var(--ink-soft);--str-chat__avatar-palette-bg-1:color-mix(in srgb, var(--positive), var(--room-bg) 72%);--str-chat__avatar-palette-text-1:color-mix(in srgb, var(--positive), black 45%);--str-chat__avatar-palette-bg-2:color-mix(in srgb, var(--action), var(--room-bg) 70%);--str-chat__avatar-palette-text-2:color-mix(in srgb, var(--action), black 50%);--str-chat__avatar-palette-bg-3:color-mix(in srgb, var(--banner), var(--room-bg) 60%);--str-chat__avatar-palette-text-3:color-mix(in srgb, var(--banner), black 40%);--str-chat__avatar-palette-bg-4:color-mix(in srgb, var(--paper), black 14%);--str-chat__avatar-palette-text-4:var(--ink);--str-chat__avatar-palette-bg-5:color-mix(in srgb, var(--positive-bright), var(--room-bg) 55%);--str-chat__avatar-palette-text-5:color-mix(in srgb, var(--positive), black 50%)}.chat-panel{--room-bg:color-mix(in srgb, var(--paper), white 50%);--room-well:color-mix(in srgb, var(--paper), white 35%);--room-side:color-mix(in srgb, var(--paper), white 30%);--room-line:color-mix(in srgb, var(--paper), black 12%);--room-theirs:#fffaf5;--room-theirs-edge:color-mix(in srgb, var(--paper), black 6%);--room-mine:var(--positive);--room-mine-ink:var(--positive-ink);--room-mine-edge:color-mix(in srgb, var(--positive), black 15%);--room-mine-mention:#c9fff4}[data-theme=dark] .chat-panel{--room-bg:var(--sheet);--room-well:var(--paper);--room-side:color-mix(in srgb, var(--sheet), black 18%);--room-line:color-mix(in srgb, var(--panel), white 10%);--room-theirs:color-mix(in srgb, var(--panel), white 11%);--room-theirs-edge:color-mix(in srgb, var(--panel), white 20%);--room-mine:color-mix(in srgb, var(--positive), black 28%);--room-mine-ink:var(--banner-ink);--room-mine-edge:color-mix(in srgb, var(--positive), black 10%);--room-mine-mention:var(--positive-bright)}.chat-layout{background:var(--room-bg);border-radius:14px;flex:1;min-height:0;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 12px #00000024}[data-theme=dark] .chat-panel .str-chat{--str-chat__text-link:var(--positive-bright);--str-chat__chat-text-mention:var(--positive-bright);--str-chat__avatar-palette-text-1:var(--banner-ink);--str-chat__avatar-palette-text-2:var(--banner-ink);--str-chat__avatar-palette-text-3:var(--banner-ink);--str-chat__avatar-palette-bg-4:color-mix(in srgb, var(--panel), white 12%);--str-chat__avatar-palette-text-4:var(--ink);--str-chat__avatar-palette-text-5:var(--banner-ink)}.chat-panel .str-chat__message-bubble{box-shadow:0 0 0 1px var(--chat-border), 0 1px 2px #0000001a}.chat-panel .str-chat__message--me{--str-chat__chat-text-link:var(--room-mine-mention)}.chat-panel .str-chat__message-mention{color:var(--str-chat__chat-text-mention)}.chat-panel .str-chat__message--me .str-chat__message-mention{color:var(--room-mine-ink);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--room-mine-ink), transparent 45%);text-decoration-color:color-mix(in srgb, var(--room-mine-ink), transparent 45%);text-underline-offset:2px;font-weight:800}.chat-panel .str-chat__channel{flex:1;min-width:0}.chat-panel .str-chat__channel-header{z-index:3;background:var(--panel-head-base);border-bottom:1px solid color-mix(in srgb, var(--panel-head-base), black var(--bevel-sink));position:relative;box-shadow:0 2px 3px -1px #00000073}.chat-panel .str-chat__message-metadata__name{display:none}.chat-sender{max-width:100%;color:hsl(var(--sender-hue) 55% 30%);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;margin:0 0 1px;padding:0;font-size:11px;font-weight:700;line-height:1.3;display:block;overflow:hidden}.chat-panel .str-chat__li.str-chat__li--top{padding-block-start:4px}.chat-panel .str-chat__li.str-chat__li--bottom{padding-block-end:2px}.chat-panel .str-chat__li.str-chat__li--single{padding-block:4px 2px}.chat-panel .str-chat__message .str-chat__message-metadata{height:16px}.str-chat__li--middle .chat-sender,.str-chat__li--bottom .chat-sender{display:none}[data-theme=dark] .chat-sender{color:hsl(var(--sender-hue) 70% 74%)}.chat-sender:hover{text-underline-offset:2px;text-decoration:underline}.chat-panel .str-chat__message .str-chat__message-bubble.chat-deleted{box-shadow:none;border:1px dashed color-mix(in srgb, var(--ink-soft), transparent 45%);color:var(--ink-soft);background:0 0}.chat-deleted .str-chat__message-text{align-items:center;gap:6px;font-size:13px;font-style:italic;display:flex}.chat-deleted svg{opacity:.75;flex:none;width:14px;height:14px}.chat-panel .str-chat__channel-header .str-chat__channel-header__data__title{color:var(--banner-ink);font-size:16px;font-weight:800}.chat-panel .str-chat__channel-header .str-chat__channel-header__data__subtitle{color:color-mix(in srgb, var(--banner-ink), transparent 30%)}.chat-panel .str-chat__main-panel{flex:1;min-width:0}.chat-panel .str-chat__thread{flex:0 0 40%;max-width:40%}.chat-side{background:var(--room-side);border-right:1px solid var(--room-line);flex-direction:column;flex:0 0 270px;min-width:0;display:flex}.chat-side-head{background:var(--panel-head-base);min-height:56px;color:var(--banner-ink);border-bottom:1px solid color-mix(in srgb, var(--panel-head-base), black var(--bevel-sink));justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 16px;font-size:16px;font-weight:800;display:flex}.chat-side .str-chat__channel-list{visibility:visible;background:0 0;border:0;flex:1;width:auto;min-width:0;max-width:none;min-height:0;position:static;overflow-y:auto;transform:none}.chat-new-btn{background:var(--positive-bright);color:var(--positive-bright-ink);font:inherit;cursor:pointer;border:0;border-radius:999px;flex:none;padding:7px 14px;font-size:13px;font-weight:800}.chat-new-btn:hover{background:color-mix(in srgb, var(--positive-bright), white 15%)}.chat-side .str-chat__channel-list__header,.chat-side .str-chat__channel-list-item__action-buttons [aria-label="Open Channel Actions Menu"]{display:none}.chat-new{border-bottom:1px solid var(--room-line);background:var(--room-bg);flex-direction:column;min-height:0;max-height:60%;display:flex}.chat-new-head{background:var(--panel-head-base);align-items:center;gap:6px;min-height:56px;padding:8px 8px 8px 10px;display:flex}.chat-new-head .chat-notify-later{color:color-mix(in srgb, var(--banner-ink), transparent 20%)}.chat-new-search{background:var(--room-theirs);min-width:0;color:var(--ink);font:inherit;border:0;border-radius:999px;flex:1;padding:8px 12px;font-size:14px}.chat-new-search:focus{outline:2px solid var(--positive-bright);outline-offset:1px}.chat-new-list{margin:0;padding:4px 0;list-style:none;overflow-y:auto}.chat-new-list button{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:9px 16px;font-size:14px;font-weight:700}.chat-new-list button:hover:not(:disabled){background:color-mix(in srgb, var(--positive), transparent 88%)}.chat-new-note{color:var(--ink-soft);margin:0;padding:8px 16px;font-size:13px;font-weight:600}.chat-new-email{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;display:block;overflow:hidden}.chat-layout .str-chat__message .str-chat__avatar,.chat-layout .str-chat__message-mention[data-user-id]{cursor:pointer}.profile-card{z-index:70;border:1px solid var(--room-line);background:var(--room-bg);width:min(320px,100vw - 16px);color:var(--ink);border-radius:14px;padding:14px;font-size:13px;animation:.12s ease-out profile-card-in;position:fixed;box-shadow:0 10px 32px #0000003d}@keyframes profile-card-in{0%{opacity:0;transform:translateY(4px)}}.profile-card-head{align-items:center;gap:10px;display:flex}.profile-card-avatar{background:var(--panel-head-base);width:40px;height:40px;color:var(--banner-ink);border-radius:50%;flex:none;place-items:center;font-size:15px;font-weight:800;display:grid}.profile-card-who{flex:1;gap:1px;min-width:0;display:grid}.profile-card-who strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:800;overflow:hidden}.profile-card-who span,.profile-card-you{color:var(--ink-soft);font-weight:600}.profile-card-close{width:26px;height:26px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;align-self:flex-start;font-size:18px;line-height:1}.profile-card-close:hover{background:color-mix(in srgb, var(--ink), transparent 90%);color:var(--ink)}.profile-card-email{background:var(--room-well);border-radius:10px;align-items:center;gap:8px;margin-top:12px;padding:7px 8px 7px 10px;display:flex}.profile-card-email a{min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.profile-card-email button,.profile-card-link{border:1px solid var(--room-line);background:var(--room-bg);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;flex:none;padding:4px 10px;font-size:12px;font-weight:700}.profile-card-email button:hover,.profile-card-link:hover{border-color:var(--positive)}.profile-card-now{align-items:baseline;gap:8px;margin:10px 0 0;line-height:1.4;display:flex}.profile-card-now strong{font-weight:800}.profile-card-dot{background:var(--positive-bright);border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.profile-card-now.is-busy .profile-card-dot{background:#e8833a}.profile-card-facts{grid-template-columns:auto 1fr;gap:4px 10px;margin:10px 0 0;display:grid}.profile-card-facts dt{color:var(--ink-soft);font-weight:600}.profile-card-facts dd{margin:0;font-weight:600}.profile-card-actions{gap:8px;margin-top:14px;display:flex}.profile-card-link{padding:7px 14px;font-size:13px}.chat-new-list .chat-new-note{padding:0;display:inline}.chat-delete{z-index:4;background:color-mix(in srgb, var(--room-bg), transparent 30%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;padding:16px;animation:.12s ease-out chat-delete-fade;display:grid;position:absolute;inset:0 0 0 270px}@keyframes chat-delete-fade{0%{opacity:0}}.chat-delete-card{border:1px solid var(--room-line);background:var(--room-bg);width:min(360px,100%);color:var(--ink);border-radius:16px;padding:20px;animation:.14s ease-out profile-card-in;box-shadow:0 16px 40px #00000042}.chat-delete-card h2{margin:0 0 12px;font-size:17px;font-weight:800}.chat-delete-preview{border-left:3px solid var(--action);background:var(--room-well);white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:3;border-radius:8px;-webkit-box-orient:vertical;margin:0;padding:10px 12px;font-size:14px;line-height:1.4;display:-webkit-box;overflow:hidden}.chat-delete-note{color:var(--ink-soft);margin:12px 0 0;font-size:13px;line-height:1.45}.chat-delete-error{color:var(--action);margin:10px 0 0;font-size:13px;font-weight:700}.chat-delete-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.chat-delete-cancel,.chat-delete-go{font:inherit;cursor:pointer;border-radius:999px;padding:8px 18px;font-size:14px;font-weight:800}.chat-delete-cancel{border:1px solid var(--room-line);color:var(--ink);background:0 0}.chat-delete-cancel:hover{background:color-mix(in srgb, var(--ink), transparent 92%)}.chat-delete-go{background:var(--action);color:var(--action-ink);border:0}.chat-delete-go:hover:not(:disabled){background:color-mix(in srgb, var(--action), black 10%)}.chat-delete-go:disabled{opacity:.7;cursor:progress}.chat-delete-cancel:focus-visible,.chat-delete-go:focus-visible{outline:2px solid var(--positive);outline-offset:2px}.chat-opening{z-index:2;background:var(--room-bg);flex-direction:column;display:flex;position:absolute;inset:0 0 0 270px}.chat-opening-head{background:var(--panel-head-base);min-height:56px;color:var(--banner-ink);border-bottom:1px solid color-mix(in srgb, var(--panel-head-base), black var(--bevel-sink));justify-content:center;align-items:center;padding:8px 16px;font-size:16px;font-weight:800;display:flex}.chat-opening-body{color:var(--ink-soft);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:14px;font-weight:600;display:flex}.chat-opening-body p{margin:0}.chat-spinner{border:3px solid color-mix(in srgb, var(--positive), transparent 75%);border-top-color:var(--positive);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite chat-spin}@keyframes chat-spin{to{transform:rotate(360deg)}}.chat-back{display:none}@media (width<=720px){.chat-panel{padding:8px}.chat-side{border-right:0;flex-basis:100%;display:none}.chat-layout.is-list .chat-side{display:flex}.chat-layout.is-list .str-chat__channel{display:none}.chat-opening,.chat-delete{left:0}.chat-back{background:var(--panel-head-base);color:var(--banner-ink);font:inherit;text-align:left;cursor:pointer;border:0;padding:8px 14px;font-size:14px;font-weight:800;display:block}}.chat-notify{background:var(--banner);color:var(--banner-ink);border-radius:14px;align-items:center;gap:12px;margin-bottom:10px;padding:9px 10px 9px 14px;font-size:14px;display:flex;box-shadow:0 2px 12px #00000024}.chat-notify-icon{fill:none;width:20px;height:20px;stroke:var(--positive-bright);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none}.chat-notify-text{flex:1;min-width:0;line-height:1.35}.chat-notify-text strong{font-weight:800}.chat-notify-later{color:color-mix(in srgb, var(--banner-ink), transparent 25%);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:6px 8px;font-size:13px;font-weight:700}.chat-notify-later:hover{color:var(--banner-ink)}.chat-notify-on{color:var(--ink-soft);justify-content:flex-end;align-items:baseline;gap:6px;margin:-4px 4px 6px;font-size:12px;display:flex}.chat-notify-test{color:var(--positive);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}[data-theme=dark] .chat-notify-test{color:var(--positive-bright)}.mention-toast{z-index:60;background:var(--banner);width:min(380px,100vw - 36px);color:var(--banner-ink);border-radius:14px;align-items:center;gap:12px;padding:12px 8px 12px 14px;font-size:14px;animation:.18s ease-out mention-toast-in;display:flex;position:fixed;bottom:18px;right:18px;box-shadow:0 8px 28px #00000047}@keyframes mention-toast-in{0%{opacity:0;transform:translateY(10px)}}.mention-toast-text{flex:1;gap:2px;min-width:0;line-height:1.35;display:grid}.mention-toast-text strong{font-weight:800}.mention-toast-text span{color:color-mix(in srgb, var(--banner-ink), transparent 20%);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mention-toast-close{width:28px;height:28px;color:color-mix(in srgb, var(--banner-ink), transparent 25%);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;font-size:20px;line-height:1}.mention-toast-close:hover{color:var(--banner-ink);background:color-mix(in srgb, var(--banner-ink), transparent 88%)}.chat-panel{--chat-side-w:300px;--chat-head-h:64px;width:min(100%,1280px)}.chat-side{flex-basis:var(--chat-side-w)}.chat-opening,.chat-delete{left:var(--chat-side-w)}.chat-side-head,.chat-new-head,.chat-opening-head,.chat-panel .str-chat__channel-header{min-height:var(--chat-head-h);height:var(--chat-head-h);box-sizing:border-box}.chat-panel .str-chat__channel-header{justify-content:flex-start;align-items:center;gap:12px;padding:0 18px;display:flex}.chat-panel .str-chat__channel-header .str-chat__channel-header__start:empty{display:none}.chat-panel .str-chat__channel-header .str-chat__channel-header__end{order:-1}.chat-panel .str-chat__channel-header .str-chat__channel-header__data{text-align:left;flex:1;align-items:flex-start;min-width:0}.chat-panel .str-chat__channel-header .str-chat__channel-header__data__title{font-size:15px}.chat-panel .str-chat__channel-header .str-chat__channel-header__data__subtitle{font-size:12px}.chat-side .str-chat__channel-list{padding:6px 0}.chat-side .str-chat__channel-list-item{background:0 0;border-radius:12px;width:calc(100% - 12px);margin:1px 6px;padding:10px;transition:background-color .12s}.chat-side .str-chat__channel-list-item:hover{background:color-mix(in srgb, var(--ink), transparent 93%)}.chat-side .str-chat__channel-list-item[aria-selected=true]{background:var(--room-theirs);box-shadow:inset 3px 0 0 var(--positive), 0 1px 3px #0000001a}.chat-side .str-chat__channel-list-item-data__title{font-weight:700}.chat-side .str-chat__channel-list-item--unread .str-chat__channel-list-item-data__title,.chat-side .str-chat__channel-list-item--unread .str-chat__summarized-message-preview{color:var(--ink);font-weight:800}.chat-side .str-chat__channel-list-item-timestamp,.chat-side .str-chat__summarized-message-preview{font-size:12px}.chat-panel .str-chat__message-bubble .str-chat__quoted-message-preview{--chat-bg-attachment:color-mix(in srgb, currentColor 10%, transparent);--str-chat__chat-bg-incoming:var(--chat-bg-attachment);--str-chat__chat-text-incoming:currentColor;height:auto;color:inherit;border-radius:10px;margin-bottom:4px}.chat-panel .str-chat__message-bubble .str-chat__quoted-message-indicator{opacity:.55;background:currentColor;align-self:stretch;height:auto}.chat-panel .str-chat__message-bubble .str-chat__quoted-message-preview__content{gap:2px;height:auto}.chat-panel .str-chat__message-bubble .str-chat__quoted-message-preview__author{color:inherit;flex-shrink:0;font-size:12px;font-weight:800}.chat-panel .str-chat__message-bubble .str-chat__quoted-message-preview__message{opacity:.85;height:auto}.chat-panel .str-chat__message-bubble .str-chat__quoted-message-preview__message-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;height:auto;display:-webkit-box;overflow:hidden}.chat-panel .str-chat__message-bubble .str-chat__quoted-message-preview__message-text *{margin:0}.chat-panel .str-chat__message-options{border:1px solid var(--room-line);background:var(--room-bg);border-radius:999px;padding:2px;box-shadow:0 2px 8px #00000024}.chat-panel .str-chat__message-composer-container{border-top:1px solid var(--room-line);background:var(--room-bg);padding:10px 14px 14px}.chat-panel .str-chat__message-composer{align-items:flex-end;gap:8px}.chat-panel .str-chat__message-composer-compose-area{border:1px solid var(--room-line);background:var(--room-theirs);border-radius:22px;transition:border-color .12s,box-shadow .12s;box-shadow:0 1px 2px #00000014}.chat-panel .str-chat__message-composer-compose-area:focus-within{border-color:var(--positive);box-shadow:0 0 0 3px color-mix(in srgb, var(--positive), transparent 80%)}.chat-panel .str-chat__message-composer-compose-area .str-chat__message-composer-controls,.chat-panel .str-chat__message-composer-compose-area .str-chat__textarea,.chat-panel .str-chat__message-composer-compose-area textarea{box-shadow:none;background:0 0;border:0;outline:none}.chat-panel .str-chat__attachment-selector__menu-button{color:var(--ink-soft);background:0 0;border:0}.chat-panel .str-chat__attachment-selector__menu-button:hover{background:color-mix(in srgb, var(--ink), transparent 92%);color:var(--ink)}.chat-panel .str-chat__send-button:not(:disabled){background:var(--positive);color:var(--positive-ink)}.chat-panel .str-chat__send-button:not(:disabled):hover{background:color-mix(in srgb, var(--positive), black 10%)}.chat-panel .str-chat__send-button:disabled{color:color-mix(in srgb, var(--ink-soft), transparent 40%);background:0 0}.chat-panel .str-chat__date-separator-date,.chat-panel .str-chat__unread-messages-separator{border:1px solid var(--room-line);background:color-mix(in srgb, var(--room-bg), transparent 10%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:12px;font-weight:700;box-shadow:0 1px 3px #0000001a}@media (width<=720px){.chat-opening,.chat-delete{left:0}.chat-panel .str-chat__channel-header{padding:0 12px}}:root{--text-body:var(--ink);--text-h1:var(--ink);--text-h2:var(--ink-soft);--background:color-mix(in srgb, var(--panel) 72%, white 28%);--table-stripe-mix:color-mix(in srgb, var(--panel) 92%, white 8%);--secondary-bg:#40b0c0;--card-bg:#fffffff2;--card-border:#fff3;--primary:var(--chip-on);--secondary:var(--action);--accent:var(--chip);--link:var(--banner);--link-hover:var(--action);--table-header-bg:var(--chip-on);--table-header-fg:var(--chip-on-ink);--table-row-name-bg:transparent;--divider-primary:var(--chip);--divider-secondary:#ccc;--divider-accent:var(--chip-on);--input-bg:#fff;--input-border:#aeb4bd;--input-placeholder:#2222228c;--button-disabled-bg:#d3d3d3;--button-disabled-text:#888;--glassy-bg:#ffffff26;--glassy-bg-light:#fff3;--glassy-border:#ffffff4d;--glassy-border-light:#fff6;--glassy-bevel-highlight:#ffffff59;--glassy-bevel-shadow:#0000000e;--glassy-bevel-outer:0 2px 13px #0001;--glassy-bevel-highlight-saturated:#ffffff24;--glassy-bevel-shadow-saturated:#48162c57;--loader-ring:color-mix(in srgb, var(--chip) 25%, transparent);--loader-spinner:var(--chip);--shadow:#0000001a;--error:var(--action)}[data-theme=dark]{--card-bg:color-mix(in srgb, var(--sheet) 95%, transparent);--card-border:#ffffff1a;--secondary-bg:var(--sheet);--divider-secondary:color-mix(in srgb, var(--ink) 18%, transparent);--input-border:#6b7280;--input-placeholder:#ffffff80;--glassy-bg:#0003;--glassy-bg-light:#0000004d;--glassy-border:#ffffff1a;--glassy-border-light:#fff3;--glassy-bevel-highlight:#ffffff14;--glassy-bevel-shadow:#00000038;--glassy-bevel-outer:0 2px 11px #0000002e;--shadow:#0000004d;--button-disabled-bg:#444;--button-disabled-text:#888;--input-bg:var(--sheet);--background:color-mix(in srgb, var(--panel) 86%, white 14%);--table-stripe-mix:color-mix(in srgb, var(--panel) 95%, white 5%);--link:var(--chip-on)}:root button[class*=charismaBtnPrimary][type]{background:var(--positive)!important;color:var(--positive-ink)!important}:root button[class*=charismaBtnSecondary][type]{background:color-mix(in srgb, var(--ink) 7%, var(--input-bg))!important;color:var(--ink)!important;border-color:color-mix(in srgb, var(--ink) 20%, transparent)!important}:root button[class*=charismaBtn][type]:disabled{background:var(--button-disabled-bg)!important;color:var(--button-disabled-text)!important}.modal-header{color:var(--text-h1);border-bottom-color:var(--divider-secondary)!important}.modal-header .close-btn:hover{background:color-mix(in srgb, var(--ink) 10%, transparent)!important}.modal-overlay.modal-open{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
