@import "https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@500;700&family=Heebo:wght@400;500;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg:#eef0eb;--surface:#fff;--surface-2:#f6f7f4;--ink:#171d29;--muted:#5b6471;--faint:#8a93a0;--rule:#cfd5cb;--rule-strong:#9aa39a;--accent:#2f4e8a;--accent-ink:#24407a;--accent-soft:#e1e8f6;--hard:#a83a2a;--hard-soft:#f6e2de;--soft:#b5791c;--soft-soft:#f7ebd5;--ok:#3b7a4e;--ok-soft:#dfeee3;--pin:#171d29;--focus:#f2d76b;--m-homeroom:#fff;--m-math:#f4dd7b;--m-hebrew:#f3bfae;--m-english:#b4cdea;--m-science:#bddbb6;--m-bible:#ebc99f;--m-art:#e5cbd6;--m-arabic:#d9d3ea;--m-life-skills:#d7e3c6;--m-pe:#a3d6d0;--m-music:#d3bfe4;--m-choir:#c9b9e0;--m-orchestra:#bfb0d8;--m-trip:#cfe3d9;--m-mentoring:#f0dcc0;--m-activity:#dcdcd8;--m-none:#e4e6e1;--m-assist:#ececea;--serif:"Frank Ruhl Libre", Georgia, "Times New Roman", serif;--sans:"Heebo", "Segoe UI", Arial, sans-serif;--mono:"IBM Plex Mono", Menlo, Consolas, monospace;--cell-w:96px;--cell-h:44px;--radius:3px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14181f;--surface:#1b2129;--surface-2:#202832;--ink:#e7eaef;--muted:#9aa4b2;--faint:#6c7684;--rule:#2c343f;--rule-strong:#4a5563;--accent:#8fb1ec;--accent-ink:#a9c4f2;--accent-soft:#22314a;--hard:#e0705d;--hard-soft:#3a2320;--soft:#e0a257;--soft-soft:#3a2e1e;--ok:#7fc08f;--ok-soft:#1f3326;--pin:#e7eaef;--focus:#8a6f12;--m-homeroom:#2a3340;--m-math:#6e5f1e;--m-hebrew:#6b3f36;--m-english:#2f4a6b;--m-science:#325a34;--m-bible:#6a4b25;--m-art:#5e3f4c;--m-arabic:#4a3f66;--m-life-skills:#48592f;--m-pe:#245852;--m-music:#4d3a66;--m-choir:#46355e;--m-orchestra:#3f2f58;--m-trip:#2f4a3f;--m-mentoring:#5c4a2e;--m-activity:#3a3f45;--m-none:#262c34;--m-assist:#2a3038;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#14181f;--surface:#1b2129;--surface-2:#202832;--ink:#e7eaef;--muted:#9aa4b2;--faint:#6c7684;--rule:#2c343f;--rule-strong:#4a5563;--accent:#8fb1ec;--accent-ink:#a9c4f2;--accent-soft:#22314a;--hard:#e0705d;--hard-soft:#3a2320;--soft:#e0a257;--soft-soft:#3a2e1e;--ok:#7fc08f;--ok-soft:#1f3326;--pin:#e7eaef;--focus:#8a6f12;--m-homeroom:#2a3340;--m-math:#6e5f1e;--m-hebrew:#6b3f36;--m-english:#2f4a6b;--m-science:#325a34;--m-bible:#6a4b25;--m-art:#5e3f4c;--m-arabic:#4a3f66;--m-life-skills:#48592f;--m-pe:#245852;--m-music:#4d3a66;--m-choir:#46355e;--m-orchestra:#3f2f58;--m-trip:#2f4a3f;--m-mentoring:#5c4a2e;--m-activity:#3a3f45;--m-none:#262c34;--m-assist:#2a3038;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:13px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent-ink)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.shell{grid-template-rows:auto 1fr;height:100%;display:grid}.bar{background:var(--surface);border-block-end:1px solid var(--rule);align-items:center;gap:18px;height:48px;padding:0 16px;display:flex}.bar .brand{white-space:nowrap;align-items:baseline;gap:10px;display:flex}.bar .brand .school{font-family:var(--serif);font-size:18px;font-weight:700}.bar .brand .app{color:var(--muted);font-size:12px}.bar nav{flex:1;gap:2px;display:flex}.bar nav a{color:var(--muted);border-radius:var(--radius);padding:6px 10px;font-weight:500;text-decoration:none}.bar nav a:hover{color:var(--ink);background:var(--surface-2)}.bar nav a[aria-current=page]{color:var(--accent-ink);background:var(--accent-soft)}.bar .right{align-items:center;gap:8px;display:flex}.ttstatus{border-inline-end:1px solid var(--rule);align-items:center;gap:8px;padding-inline-end:10px;display:flex}.ttstatus select{border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius);max-width:220px;padding:4px 6px}.pill{border:1px solid #0000;border-radius:10px;padding:1px 8px;font-size:11.5px;font-weight:500;display:inline-block}.pill.published{background:var(--ok-soft);color:var(--ok)}.pill.draft{background:var(--soft-soft);color:var(--soft)}.pill.archived{background:var(--surface-2);color:var(--muted);border-color:var(--rule)}.scorechip{font-family:var(--mono);gap:10px;font-size:12px;display:inline-flex}.scorechip b{font-weight:500}.scorechip .h{color:var(--hard)}.scorechip .s{color:var(--soft)}.scorechip .z{color:var(--ok)}.btn{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);border-radius:var(--radius);align-items:center;gap:6px;padding:5px 12px;font-weight:500;line-height:1.3;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-ink)}.btn.quiet{color:var(--muted);background:0 0;border-color:#0000}.btn.quiet:hover{color:var(--ink);background:var(--surface-2)}.btn.small{padding:2px 8px;font-size:12px}.btn.danger{color:var(--hard);border-color:var(--hard)}.btn svg{width:14px;height:14px}.iconbtn{border-radius:var(--radius);color:var(--muted);background:0 0;border:0;padding:4px;display:inline-flex}.iconbtn:hover{color:var(--ink);background:var(--surface-2)}.iconbtn svg{width:16px;height:16px}main{min-height:0;overflow:auto}.page{max-width:1400px;padding:20px 24px 40px}.page h1{font-family:var(--serif);margin:0 0 4px;font-size:24px;font-weight:700}.page .lede{color:var(--muted);max-width:70ch;margin:0 0 20px}h2{font-family:var(--serif);margin:24px 0 8px;font-size:17px;font-weight:500}h3{margin:16px 0 6px;font-size:13px;font-weight:700}.loading,.errorbox{color:var(--muted);padding:40px}.errorbox{color:var(--hard)}.seg{border:1px solid var(--rule-strong);border-radius:var(--radius);display:inline-flex;overflow:hidden}.seg button{background:var(--surface);color:var(--muted);border:0;padding:4px 10px}.seg button+button{border-inline-start:1px solid var(--rule)}.seg button[aria-pressed=true]{background:var(--accent);color:#fff}table.data{border-collapse:collapse;width:100%}table.data th{text-align:start;color:var(--muted);border-block-end:1px solid var(--rule-strong);white-space:nowrap;padding:6px 8px;font-weight:500}table.data td{border-block-end:1px solid var(--rule);vertical-align:middle;padding:6px 8px}table.data tr:hover td{background:var(--surface-2)}table.data td.num,table.data th.num{text-align:end;font-family:var(--mono);font-variant-numeric:tabular-nums}table.data tr.selected td{background:var(--accent-soft)}.rid{font-family:var(--mono);color:var(--accent-ink);letter-spacing:.02em;font-size:11.5px}.tag{background:var(--surface-2);border:1px solid var(--rule);color:var(--muted);border-radius:9px;padding:0 6px;font-size:11px;display:inline-block}.tag.hard{color:var(--hard);border-color:var(--hard);background:var(--hard-soft)}.tag.soft{color:var(--soft);border-color:var(--soft);background:var(--soft-soft)}.dash{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);align-items:start;gap:32px;display:grid}.dash .facts{grid-template-columns:repeat(3,auto);gap:6px 28px;margin:12px 0 20px;display:grid}.dash .facts .v{font-family:var(--mono);font-size:22px;line-height:1.1}.dash .facts .v.h{color:var(--hard)}.dash .facts .v.s{color:var(--soft)}.dash .facts .v.z{color:var(--ok)}.dash .facts .k{color:var(--muted);font-size:12px}.vbars{gap:4px;display:grid}.vbars .row{grid-template-columns:200px 1fr 40px;align-items:center;gap:10px;font-size:12.5px;display:grid}.vbars .row .bar-track{background:var(--surface-2);border-radius:4px;height:8px;display:block;overflow:hidden}.vbars .row .bar-fill{background:var(--soft);height:100%;display:block}.vbars .row.hard .bar-fill{background:var(--hard)}.vbars .row .n{font-family:var(--mono);text-align:end}.steps{margin:0;padding:0;list-style:none}.steps li{border-block-end:1px solid var(--rule);align-items:baseline;gap:10px;padding:8px 0;display:flex}.steps li .dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px;position:relative;top:-1px}.steps li.warn .dot{background:var(--hard)}.steps li.ok .dot{background:var(--ok)}.steps li.info .dot{background:var(--faint)}.mini-week{grid-auto-flow:column;align-items:end;gap:4px;margin-top:8px;display:inline-grid}.mini-week .d{color:var(--muted);justify-items:center;gap:2px;font-size:11px;display:grid}.mini-week .d .col{gap:1px;display:grid}.mini-week .d .col i{background:var(--rule-strong);border-radius:1px;width:18px;height:6px;display:block}.mini-week .d .col i.long{background:var(--accent)}.versions li{border-block-end:1px solid var(--rule);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:6px 0;display:grid}.versions button.link{color:var(--accent-ink);text-align:start;background:0 0;border:0;padding:0}.versions{margin:0;padding:0;list-style:none}.tt{grid-template-rows:auto 1fr;height:100%;min-height:0;display:grid}.tt .toolbar{border-block-end:1px solid var(--rule);background:var(--surface);flex-wrap:wrap;align-items:center;gap:14px;padding:8px 16px;display:flex}.tt .toolbar select{border:1px solid var(--rule-strong);background:var(--surface);border-radius:var(--radius);min-width:160px;padding:4px 8px}.tt .toolbar .spacer{flex:1}.tt .body{grid-template-columns:1fr auto;min-height:0;display:grid}.tt .body.nopanel{grid-template-columns:1fr}.gridwrap{min-width:0;padding:14px 16px 24px;overflow:auto}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:11.5px;display:flex}.legend .sw{border:1px solid var(--rule-strong);vertical-align:-2px;border-radius:2px;width:12px;height:12px;margin-inline-end:4px;display:inline-block}.notice{color:var(--muted);background:var(--accent-soft);border-radius:var(--radius);padding:6px 10px;font-size:12px}.toast{background:var(--ink);color:var(--bg);border-radius:var(--radius);z-index:30;align-items:center;gap:12px;padding:8px 14px;display:flex;position:fixed;inset-block-end:16px;inset-inline-start:16px;box-shadow:0 6px 20px #00000040}.toast button{color:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.board{border-collapse:separate;border-spacing:0;table-layout:fixed;background:var(--surface)}.board td.cell,.lesson{overflow:hidden}.board th,.board td{border-inline-end:1px solid var(--rule);border-block-end:1px solid var(--rule);padding:0}.board th{color:var(--muted);background:var(--surface-2);z-index:3;height:26px;font-size:12px;font-weight:500;position:sticky;top:0}.board th.corner{z-index:4;inset-inline-start:0}.board thead tr:first-child th{border-block-start:1px solid var(--rule)}.board th.day{border-block-end:1px solid var(--rule-strong)}.board th.cls{font-size:11.5px;font-weight:400}.board th.pcol,.board td.pcol{text-align:center;width:64px;min-width:64px;font-family:var(--mono);color:var(--muted);background:var(--surface-2);z-index:2;border-inline-end:1px solid var(--rule-strong);font-size:12px;position:sticky;inset-inline-start:0}.board td.pcol small{font-family:var(--mono);color:var(--faint);letter-spacing:-.02em;direction:ltr;unicode-bidi:isolate;font-size:9px;line-height:1.2;display:block}.board td.pcol small.ld{font-family:var(--sans);color:var(--accent-ink);direction:inherit}.board tr.brk td{background:var(--surface-2);border-block-end:1px solid var(--rule-strong);height:14px;color:var(--faint);white-space:nowrap;font-size:9.5px;overflow:hidden}.board tr.brk td.cell{vertical-align:middle;height:14px;padding:0 5px;overflow:hidden}.board tr.brk td.cell span{text-overflow:ellipsis;font-family:var(--sans);display:block;overflow:hidden}.board tr.brk td.cell.off{background:repeating-linear-gradient(135deg, transparent 0 6px, var(--rule) 6px 7px)}.board tr.brk td.pcol{height:14px}.board tr.brk td.pcol small{line-height:1}.board td.cell{width:var(--cell-w);min-width:var(--cell-w);height:var(--cell-h);vertical-align:top;position:relative}.board td.daystart,.board th.daystart{border-inline-start:2px solid var(--rule-strong)}.board td.off{background:repeating-linear-gradient(135deg, transparent 0 6px, var(--rule) 6px 7px)}.board td.empty{background:var(--surface-2)}.board td.blocked{background:var(--hard-soft)}.board td.prefernot{background:var(--soft-soft)}.board td.blocked:after,.board td.prefernot:after{content:attr(data-label);color:var(--muted);font-size:10px;position:absolute;inset-block-start:2px;inset-inline-start:4px}.board tr.long td.cell{border-block-end:1px solid var(--rule)}.board tr.long td.pcol{color:var(--accent-ink)}.lesson{height:100%;min-height:calc(var(--cell-h) - 1px);cursor:grab;border-inline-start:3px solid #0000;flex-direction:column;justify-content:center;gap:2px;padding:3px 5px;display:flex;position:relative}.lesson.span{z-index:1;position:absolute;inset:0}.lesson[draggable=false]{cursor:default}.lesson:hover{box-shadow:inset 0 0 0 1px var(--accent)}.lesson.focus{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}.lesson.dragging{opacity:.4}.lesson.over-ok{box-shadow:inset 0 0 0 2px var(--ok)}.lesson.over-bad{box-shadow:inset 0 0 0 2px var(--hard)}.lesson .magnets{flex-wrap:wrap;gap:3px;display:flex}.magnet{background:var(--m-none);white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000001f;border-radius:2px;max-width:100%;padding:0 5px;font-size:12px;font-weight:500;line-height:17px;display:inline-block;overflow:hidden}.magnet.homeroom{background:var(--m-homeroom);font-weight:700}.magnet.assist,.magnet.soldier{background:var(--m-assist);color:var(--muted);border-style:dashed;font-weight:400}.lesson .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;line-height:1.1;overflow:hidden}.lesson .sub.ph{font-style:italic}.lesson .mark{border-style:solid;border-width:0 9px 9px 0;border-color:transparent var(--soft) transparent transparent;width:0;height:0;position:absolute;inset-block-start:0;inset-inline-end:0}[dir=rtl] .lesson .mark{border-width:9px 0 0 9px;border-color:var(--soft) transparent transparent transparent}.lesson .mark.hard{border-color:transparent var(--hard) transparent transparent}[dir=rtl] .lesson .mark.hard{border-color:var(--hard) transparent transparent transparent}.lesson .pinmark{width:10px;height:10px;color:var(--pin);position:absolute;inset-block-end:2px;inset-inline-end:3px}.lesson .fixmark{width:10px;height:10px;color:var(--faint);position:absolute;inset-block-end:2px;inset-inline-end:3px}.lesson.multi{border-inline-start-color:var(--accent)}.lesson.pinned{background:var(--surface-2)}.split{height:100%;min-height:calc(var(--cell-h) - 1px);display:flex}.split .lesson{flex:1 1 0;min-width:0}.split .lesson+.lesson{border-inline-start:1px dashed var(--rule-strong)}.lesson.half{background-image:repeating-linear-gradient(135deg,#0000 0 10px,#00000008 10px 12px)}.lesson.half .sub{color:var(--accent-ink)}.magnet.open{color:var(--faint);background:0 0;border-style:dotted;font-style:italic}.legend .sw.half{background:repeating-linear-gradient(135deg, transparent 0 3px, var(--rule-strong) 3px 4px)}.hover{z-index:40;background:var(--surface);width:280px;color:var(--ink);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:10px 12px;font-size:12.5px;position:fixed;box-shadow:0 10px 30px #0003}.hover .title{margin-bottom:4px;font-weight:700}.hover dl{grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0;display:grid}.hover dt{color:var(--muted)}.hover dd{margin:0}.hover .vio{border-block-start:1px solid var(--rule);margin-top:6px;padding-top:6px}.hover .vio p{margin:2px 0}.hover .actions{gap:6px;margin-top:8px;display:flex}.vpanel{border-inline-start:1px solid var(--rule);background:var(--surface);grid-template-rows:auto 1fr;width:360px;min-height:0;display:grid}.vpanel .head{border-block-end:1px solid var(--rule);align-items:center;gap:8px;padding:8px 12px;display:flex}.vpanel .head h2{flex:1;margin:0;font-size:15px}.vpanel .list{overflow:auto}.vgroup{border-block-end:1px solid var(--rule)}.vgroup>button.gh{text-align:start;background:0 0;border:0;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;padding:8px 12px;display:grid}.vgroup>button.gh:hover{background:var(--surface-2)}.vgroup .gh .n{font-family:var(--mono);color:var(--muted);font-size:12px}.vgroup .gh .name{font-weight:500}.vgroup .gh .name small{color:var(--muted);font-size:11.5px;font-weight:400;display:block}.vitem{border-block-start:1px solid var(--rule);gap:4px;padding:8px 12px 8px 20px;display:grid}.vitem:hover,.vitem.active{background:var(--accent-soft)}.vitem p{margin:0}.vitem .row{align-items:center;gap:6px;display:flex}.vitem .cost{font-family:var(--mono);color:var(--muted);margin-inline-start:auto;font-size:11.5px}.staffgrid{grid-template-columns:minmax(0,1fr) 460px;align-items:start;gap:24px;display:grid}.staffgrid input.search{border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface);width:240px;margin-bottom:10px;padding:5px 8px}.avail{border-collapse:collapse}.avail th,.avail td{border:1px solid var(--rule);text-align:center;width:64px;height:30px;font-size:12px}.avail th{background:var(--surface-2);color:var(--muted);cursor:pointer;font-weight:500}.avail th.p{width:40px;font-family:var(--mono)}.avail td button{background:var(--surface);border:0;width:100%;height:100%}.avail td button.lesson-here{background:var(--m-homeroom)}.avail td button.unavailable{background:var(--hard-soft);color:var(--hard)}.avail td button.prefer-not{background:var(--soft-soft);color:var(--soft)}.avail td.off{background:repeating-linear-gradient(135deg, transparent 0 6px, var(--rule) 6px 7px)}.avail-reasons{gap:4px;margin-top:10px;font-size:12px;display:grid}.avail-reasons input{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);width:100%;padding:2px 6px}.detail{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:14px 16px;position:sticky;top:12px}.detail h2{margin:0 0 2px}.detail .sub{color:var(--muted);margin-bottom:10px}.detail dl{grid-template-columns:auto 1fr;gap:3px 14px;margin:0 0 12px;display:grid}.detail dt{color:var(--muted)}.detail dd{margin:0}.detail .foot{align-items:center;gap:10px;margin-top:12px;display:flex}.rules{gap:0;display:grid}.rule{border-block-end:1px solid var(--rule);grid-template-columns:64px minmax(0,1fr) 150px 170px 90px;align-items:start;gap:14px;padding:12px 0;display:grid}.rule .stmt{color:var(--muted);margin-top:2px;font-size:12.5px}.rule .he{unicode-bidi:isolate}.rule .kname{font-weight:500}.rule .krow{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.rule .params{font-family:var(--mono);color:var(--muted);font-size:11.5px}.rule input[type=number]{border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface);width:64px;padding:2px 6px}.rule .count{font-family:var(--mono);text-align:end}.rule .count.h{color:var(--hard)}.rule .count.s{color:var(--soft)}.rule .count.z{color:var(--ok)}.rule.disabled{opacity:.55}.rule .kind{font-size:12px}.rule details.answers{margin-top:6px}.rule details.answers summary{cursor:pointer;color:var(--accent-ink);align-items:center;gap:6px;font-size:12px;list-style:none;display:inline-flex}.rule details.answers summary:before{content:"";border:4px solid #0000;border-left:5px solid;border-right-width:0;width:0;height:0;transition:transform .12s}[dir=rtl] .rule details.answers summary:before{transform:scaleX(-1)}.rule details.answers[open] summary:before{transform:rotate(90deg)}.rule details.answers blockquote{border-inline-start:3px solid var(--accent);background:var(--surface-2);border-radius:var(--radius);font-family:var(--serif);unicode-bidi:isolate;margin:6px 0 4px;padding:6px 10px;font-size:13px;line-height:1.5}.rule details.answers blockquote .q{font-family:var(--mono);color:var(--muted);margin-bottom:2px;font-size:11px;display:block}.rule details.answers .en{color:var(--muted);margin:0 0 6px;font-size:12px}.rule .tbc{color:var(--soft);font-size:11.5px}.rule .gapbudget{border-inline-start:2px solid var(--rule-strong);margin:8px 0 0;padding-inline-start:12px}.rule .gapbudget .gbtitle{font-size:12.5px;font-weight:500}.rule .gapbudget .krow{margin-top:8px}.rule .gapbudget .krow .stmt{margin-top:0}.rule .gapbudget .nums{align-items:center;gap:10px;display:inline-flex}.rule .gapbudget .nums label.num{align-items:center;gap:6px;font-size:12px;display:inline-flex}.rule .gapbudget .example{font-family:var(--mono);margin-top:8px;font-size:11.5px}.rule .krow.disabled{opacity:.55}.roomgrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.room{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:14px 16px}.room h2{margin:0 0 2px}.room .kind{color:var(--muted);margin-bottom:8px;font-size:12px}.room dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 8px;display:grid}.room dt{color:var(--muted)}.room dd{margin:0}.room .vlist{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.room .vlist li{align-items:baseline;gap:8px;font-size:12.5px;display:flex}.room .vlist button.link{color:var(--accent-ink);text-align:start;cursor:pointer;background:0 0;border:0;padding:0}table.data td.over{color:var(--hard);font-weight:500}table.data td.est{color:var(--muted)}.detail .budget{grid-template-columns:1fr auto;gap:2px 12px;margin:4px 0 10px;font-size:12.5px;display:grid}.detail .budget .tot{border-block-start:1px solid var(--rule);padding-top:3px;font-weight:500}.detail .budget .over{color:var(--hard)}.detail .budget .ok{color:var(--ok)}.detail .meet{color:var(--muted);margin:0 0 8px;padding:0;font-size:12px;list-style:none}.switch{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.switch input{appearance:none;background:var(--rule-strong);cursor:pointer;border-radius:8px;width:30px;height:16px;margin:0;position:relative}.switch input:after{content:"";top:2px;background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .12s;position:absolute;inset-inline-start:2px}.switch input:checked{background:var(--accent)}.switch input:checked:after{transform:translate(14px)}[dir=rtl] .switch input:checked:after{transform:translate(-14px)}dialog.dlg{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);border-radius:4px;width:440px;max-width:calc(100vw - 32px);padding:0;box-shadow:0 20px 60px #0000004d}dialog.dlg::backdrop{background:#14181f73}.dlg .dhead{border-block-end:1px solid var(--rule);align-items:center;padding:12px 16px;display:flex}.dlg .dhead h2{flex:1;margin:0;font-size:17px}.dlg .dbody{gap:12px;padding:14px 16px;display:grid}.dlg .dfoot{border-block-start:1px solid var(--rule);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.dlg label.field{gap:4px;display:grid}.dlg label.field span.help{color:var(--muted);font-size:12px}.dlg input[type=number]{border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface);width:90px;padding:4px 8px}.dlg .check{align-items:flex-start;gap:8px;display:flex}.progress{gap:8px;display:grid}.progress .phases{gap:4px;display:flex}.progress .phases span{background:var(--surface-2);border-radius:3px;flex:1;height:6px}.progress .phases span.on{background:var(--accent)}.progress .phases span.done{background:var(--ok)}.progress .nums{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.progress .nums div{background:var(--surface-2);border-radius:var(--radius);padding:6px 10px}.progress .nums .v{font-family:var(--mono);font-size:18px}.progress .nums .k{color:var(--muted);font-size:11.5px}.designed{border:1px dashed var(--rule-strong);border-radius:var(--radius);color:var(--muted);margin-bottom:20px;padding:10px 14px}.checks{margin:0 0 20px;padding:0;list-style:none}.checks li{border-block-end:1px solid var(--rule);align-items:center;gap:10px;padding:8px 0;display:flex}.checks .box{border:1px solid var(--rule-strong);border-radius:2px;place-items:center;width:16px;height:16px;display:inline-grid}.checks .box.ok{background:var(--ok);border-color:var(--ok);color:#fff}.checks .box.no{background:var(--hard-soft);border-color:var(--hard)}.checks .box svg{width:12px;height:12px}.dropzone{border:2px dashed var(--rule-strong);text-align:center;color:var(--muted);background:var(--surface);border-radius:4px;padding:40px}.stepsline{counter-reset:s;gap:8px;margin:16px 0;padding:0;list-style:none;display:grid}.stepsline li{align-items:baseline;gap:10px;display:flex}.stepsline li:before{counter-increment:s;content:counter(s);font-family:var(--mono);color:var(--accent-ink);width:18px}.two{grid-template-columns:1fr 1fr;gap:28px;display:grid}.btnrow{flex-wrap:wrap;gap:8px;display:flex}@media (width<=900px){.dash,.staffgrid,.two{grid-template-columns:1fr}.rule{grid-template-columns:56px 1fr}.vpanel{width:300px}.bar nav a{padding:6px 7px}}
