.school-progress-ring-wrap{z-index:2;vertical-align:middle;align-items:center;gap:.85rem;display:inline-flex;position:relative}.school-progress-ring-wrap.is-open{z-index:120!important}.school-progress-ring-interactive{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;outline:none;align-items:center;gap:.75rem;margin:-.25rem -.45rem;padding:.25rem .45rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.school-progress-ring-interactive:hover,.school-progress-ring-interactive:focus-visible{background:color-mix(in oklab, var(--pg-celadon) 8%, var(--surface));border-color:color-mix(in oklab, var(--pg-celadon) 28%, transparent);box-shadow:var(--shadow-sm)}.school-progress-ring-core{flex-shrink:0;width:52px;height:52px;position:relative}.school-progress-donut-svg{width:100%;height:100%;display:block}.school-progress-donut-track,.school-progress-donut-pending,.school-progress-donut-done{fill:none;stroke-linecap:butt;transition:stroke .2s}.school-progress-donut-track{stroke:color-mix(in oklab, var(--pg-ink) 8%, var(--surface))}.school-progress-donut-pending{stroke:color-mix(in oklab, var(--pg-ochre) 58%, var(--surface))}.school-progress-donut-done{stroke:var(--pg-moss)}.school-progress-donut-pending:hover,.school-progress-donut-pending.is-active{stroke:var(--pg-ochre)}.school-progress-donut-done:hover,.school-progress-donut-done.is-active{stroke:color-mix(in oklab, var(--pg-moss) 78%, var(--pg-ink))}.school-progress-ring-wrap.is-idle .school-progress-donut-pending{stroke:color-mix(in oklab, var(--pg-ink) 22%, var(--surface))}.school-progress-ring-wrap.is-done .school-progress-donut-done{stroke:var(--pg-moss)}.school-progress-ring-side{flex-direction:column;gap:.15rem;min-width:3.5rem;display:flex}.school-progress-ring-pct-row{align-items:baseline;gap:.35rem;display:flex}.school-progress-ring-pct-val{font-family:var(--font-data), var(--font-body), system-ui, sans-serif;color:var(--pg-ink);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700;line-height:1.2}.school-progress-ring-wrap.is-done .school-progress-ring-pct-val{color:var(--pg-moss)}.school-progress-ring-wrap.is-idle .school-progress-ring-pct-val{color:var(--ink-500)}.school-progress-ring-count{font-family:var(--font-data), var(--font-body), system-ui, sans-serif;color:var(--ink-500);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:500;line-height:1.2}.school-progress-ring-label{color:var(--ink-500);font-size:.75rem;line-height:1.2}.school-progress-ring-wrap.is-idle .school-progress-ring-bar{stroke:color-mix(in oklab, var(--pg-ink) 32%, var(--surface))}.school-progress-ring-wrap.is-idle .school-progress-ring-pct{color:var(--ink-500)}.school-progress-ring-wrap.is-mid .school-progress-ring-bar{stroke:var(--pg-ink)}.school-progress-ring-wrap.is-mid .school-progress-ring-pct{color:var(--pg-ink)}.school-progress-ring-wrap.is-done .school-progress-ring-bar{stroke:var(--pg-moss)}.school-progress-ring-wrap.is-done .school-progress-ring-pct{color:var(--pg-moss)}.school-progress-popover{z-index:1050;background:var(--surface);border:1px solid color-mix(in oklab, var(--pg-ink) 18%, transparent);border-radius:var(--radius-lg);width:360px;box-shadow:var(--shadow-lg);cursor:default;text-align:left;padding:1rem;animation:.2s cubic-bezier(.16,1,.3,1) progressPopoverFadeIn}.school-progress-popover.is-fixed{margin:0;position:fixed}.school-progress-popover.is-top{animation:.2s cubic-bezier(.16,1,.3,1) progressPopoverFadeInTop}@keyframes progressPopoverFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes progressPopoverFadeInTop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.school-progress-popover-head{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.75rem;display:flex}.school-progress-popover-title-box{flex-direction:column;gap:.15rem;display:flex}.school-progress-popover-title{color:var(--pg-ink);font-size:.875rem;font-weight:700}.school-progress-popover-stats{color:var(--ink-500);font-size:.775rem}.school-progress-popover-close{color:var(--ink-500);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.15rem .35rem;font-size:1.1rem}.school-progress-popover-close:hover{background:color-mix(in oklab, var(--pg-ink) 6%, var(--surface));color:var(--ink-700)}.school-progress-popover-tabs{gap:.35rem;padding:.65rem 0 .5rem;display:flex}.school-progress-popover-tab{border:1px solid color-mix(in oklab, var(--pg-ink) 14%, transparent);background:color-mix(in oklab, var(--pg-ink) 4%, var(--surface));color:var(--ink-700);cursor:pointer;border-radius:6px;padding:.25rem .6rem;font-size:.75rem;font-weight:600;transition:all .15s}.school-progress-popover-tab:hover{background:color-mix(in oklab, var(--pg-celadon) 10%, var(--surface));border-color:color-mix(in oklab, var(--pg-celadon) 28%, transparent)}.school-progress-popover-tab.is-active{background:var(--pg-ink);color:var(--surface);border-color:var(--pg-ink)}.school-progress-indicator-list{flex-direction:column;gap:.45rem;max-height:260px;margin-top:.35rem;padding-right:.35rem;display:flex;overflow-y:auto}.school-progress-indicator-row{text-align:left;background:#f8fafc;border:1px solid #f1f5f9;border-radius:6px;align-items:flex-start;gap:.55rem;padding:.45rem .6rem;transition:all .15s;display:flex}.school-progress-indicator-row:hover{background:#f1f5f9;border-color:#e2e8f0}.school-progress-indicator-row.is-done{border-left:3px solid var(--pg-moss)}.school-progress-indicator-row.is-pending{border-left:3px solid var(--pg-ochre)}.school-progress-indicator-badge{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:1.1rem;height:1.1rem;margin-top:.1rem;font-size:.725rem;font-weight:700;display:inline-flex}.school-progress-indicator-row.is-done .school-progress-indicator-badge{background:color-mix(in oklab, var(--pg-moss) 14%, var(--surface));color:var(--pg-moss)}.school-progress-indicator-row.is-pending .school-progress-indicator-badge{background:color-mix(in oklab, var(--pg-ochre) 16%, var(--surface));color:color-mix(in oklab, var(--pg-ochre) 72%, var(--ink-700))}.school-progress-indicator-text-wrap{flex-direction:column;flex:auto;gap:.1rem;min-width:0;display:flex}.school-progress-indicator-code{color:var(--ink-500);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;font-weight:700}.school-progress-indicator-name{color:var(--pg-ink);text-align:left;word-break:break-word;font-size:.8rem;font-weight:600;line-height:1.35}.school-progress-empty-tip{color:var(--ink-500);text-align:center;padding:1.5rem 0;font-size:.775rem}.school-progress-ring-wrap.is-card{justify-content:center;width:100%;display:flex}.school-progress-ring-wrap.is-card .school-progress-ring-interactive{justify-content:center;width:100%;margin:0;padding:.35rem .5rem}.school-progress-card-view{flex-direction:row;justify-content:center;align-items:center;gap:.7rem;width:100%;padding:0;display:flex}.school-progress-donut-stage{flex-shrink:0;width:72px;height:72px;position:relative}.school-progress-donut-stage .school-progress-donut-svg{filter:drop-shadow(0 4px 10px color-mix(in oklab, var(--pg-ink) 12%, transparent))}.school-progress-donut-center{pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:18%}.school-progress-donut-center strong{font-family:var(--font-title), var(--font-data), serif;letter-spacing:.01em;color:var(--pg-ink);font-variant-numeric:tabular-nums;font-size:.98rem;font-weight:700;line-height:1}.school-progress-ring-wrap.is-done .school-progress-donut-center strong{color:var(--pg-moss)}.school-progress-ring-wrap.is-idle .school-progress-donut-center strong{color:var(--ink-500)}.school-progress-donut-center span{font-family:var(--font-data), var(--font-body), sans-serif;color:var(--ink-600);font-variant-numeric:tabular-nums;margin-top:.18rem;font-size:.68rem;font-weight:600}.school-progress-card-copy{flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0;display:flex}.school-progress-card-legend{flex-direction:column;justify-content:center;align-items:flex-start;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.school-progress-card-legend li{color:var(--ink-700);align-items:center;gap:.35rem;font-size:.8rem;display:inline-flex}.school-progress-card-legend i{border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem}.school-progress-card-legend .is-done i{background:var(--pg-moss)}.school-progress-card-legend .is-pending i{background:color-mix(in oklab, var(--pg-ochre) 72%, var(--surface))}.school-progress-card-legend b{font-family:var(--font-data), var(--font-body), sans-serif;font-variant-numeric:tabular-nums;color:var(--pg-ink);font-weight:700}.school-progress-card-status{color:var(--ink-500);margin:0;font-size:.75rem}html:has(.portal-page--workbench){height:100%;max-height:100%}html:has(.portal-page--workbench) body{height:100%;max-height:100%}html:has(.portal-page--workbench) #root{height:100%;max-height:100%}html:has(.portal-page--workbench) #root{flex-direction:column;display:flex}.portal-page.portal-page--workbench{flex-direction:column;flex:auto;width:100%;min-height:0;display:flex;overflow:hidden}.portal-page.portal-page--workbench>.portal-top{flex-shrink:0}.portal-page.portal-page--workbench #portal-main.portal-main--workbench{flex-direction:column;flex:auto;width:100%;max-width:none;min-height:0;margin:0;padding:0;display:flex;overflow:hidden}.portal-page.portal-page--workbench .school-workspace.school-workspace--workbench{flex-direction:column;flex:auto;width:100%;max-width:none;height:auto;min-height:0;margin:0;padding:0;display:flex}.school-shell{flex:1;grid-template-columns:.7fr 6px 9.3fr;min-height:0;display:grid}.school-shell-main{background:var(--canvas);min-width:0;height:100%;min-height:0;overflow:auto}.school-shell-main:has(.school-workbench){overflow:hidden}.school-shell-main:not(:has(.school-workbench)){padding:16px 20px 32px}.school-shell-main .school-workbench{height:100%;overflow:hidden}.school-shell-menu{flex-direction:column;min-height:0;padding:8px 0 12px;display:flex;overflow:auto}.school-shell-item{color:inherit;border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:3px solid #0000;margin:0 4px;padding:8px;text-decoration:none;display:block}.school-shell-item.is-on{border-left-color:var(--sidebar-active);background:var(--sidebar-active-soft);color:var(--sidebar-text-strong)}.school-shell-item:hover,.school-shell-item:focus-visible{background:color-mix(in oklab, var(--sidebar-active) 22%, transparent);outline:none}.school-wb-cards.school-shell-projects{border-left:1px solid oklab(100% 0 5.96046e-8/.18);gap:6px;margin:0 6px 8px 14px;padding:2px 0 2px 8px}.school-shell-projects-error{gap:8px;margin:0 6px 8px 14px;padding:2px 0 8px 8px;display:grid}.school-wb-cards{flex-direction:column;flex:1;gap:8px;margin:0;padding:8px;list-style:none;display:flex;overflow:auto}.school-wb-card{text-align:left;border-radius:var(--radius-md);width:100%;color:var(--sidebar-text-strong);cursor:pointer;background:oklab(100% 0 5.96046e-8/.06);border:1px solid oklab(100% 0 5.96046e-8/.12);flex-direction:column;gap:2px;padding:7px 8px;display:flex;box-shadow:inset 2px 0 #0000}.school-wb-card:hover,.school-wb-card:focus-visible{border-color:color-mix(in oklab, var(--sidebar-active) 40%, transparent);background:color-mix(in oklab, var(--sidebar-active) 14%, transparent);outline:none}.school-wb-card.is-on{background:var(--sidebar-active-soft);border-color:color-mix(in oklab, var(--sidebar-active) 48%, transparent);box-shadow:inset 2px 0 0 var(--sidebar-active)}.school-wb-card strong{font-family:var(--font-body), sans-serif;letter-spacing:.02em;font-size:.75rem;font-weight:600;line-height:1.35}.school-wb-card span,.school-wb-card em{color:var(--sidebar-text);font-size:.6875rem;font-style:normal;line-height:1.3}.school-wb-card em{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:color-mix(in oklab, var(--sidebar-text) 82%, var(--sidebar-active))}.school-wb-match-progress{z-index:2;border-radius:var(--radius-md);background:color-mix(in oklab, var(--pg-celadon) 10%, var(--surface));border:1px solid color-mix(in oklab, var(--pg-celadon) 22%, transparent);flex-shrink:0;margin:0 0 8px;padding:8px 10px;position:sticky;bottom:0}.school-wb-match-progress.is-complete{background:color-mix(in oklab, var(--pg-moss) 10%, var(--surface));border-color:color-mix(in oklab, var(--pg-moss) 22%, transparent)}.school-wb-match-progress__meta{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:.82rem;display:flex}.school-wb-match-progress__meta strong{font-variant-numeric:tabular-nums}.school-wb-match-progress__bar{background:color-mix(in oklab, var(--pg-celadon) 16%, var(--surface));border-radius:99px;height:8px;overflow:hidden}.school-wb-match-progress.is-complete .school-wb-match-progress__bar{background:color-mix(in oklab, var(--pg-moss) 16%, var(--surface))}.school-wb-match-progress__bar i{background:var(--pg-celadon);width:0;height:100%;display:block}.school-wb-match-progress.is-complete .school-wb-match-progress__bar i{background:var(--pg-moss)}.school-wb-match-progress.is-indeterminate .school-wb-match-progress__bar i{width:36%}@media (prefers-reduced-motion:no-preference){.school-wb-match-progress:not(.is-indeterminate) .school-wb-match-progress__bar i{transition:width .35s}.school-wb-match-progress.is-indeterminate .school-wb-match-progress__bar i{animation:1.4s ease-in-out infinite school-wb-match-indet}}@keyframes school-wb-match-indet{0%{transform:translate(-40%)}to{transform:translate(180%)}}.school-workbench{background:linear-gradient(180deg, color-mix(in oklab, var(--pg-ink) 4%, var(--canvas)) 0%, var(--canvas) 28%);grid-template-columns:4.3fr 6px 5fr;height:100%;min-height:0;display:grid}.school-wb-resizer{background:color-mix(in oklab, var(--pg-ink) 16%, var(--canvas));cursor:col-resize;border:0;width:6px;padding:0}.school-wb-resizer:hover,.school-wb-resizer:focus-visible{background:color-mix(in oklab, var(--pg-celadon) 55%, var(--canvas))}.school-wb-resizer:disabled{cursor:default;background:0 0}.school-shell-resizer{z-index:2}.school-wb-left,.school-wb-mid,.school-wb-right{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.school-wb-pane-bar{min-height:44px;box-shadow:inset 0 2px 0 color-mix(in oklab, var(--sec) 70%, transparent);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.school-wb-pane-title{font-family:var(--font-display), serif;letter-spacing:.1em;color:color-mix(in oklab, var(--sec) 62%, var(--ink-900));font-size:.82rem}.school-wb-pane-cluster{background:color-mix(in oklab, var(--sec) 10%, var(--surface));border:1px solid color-mix(in oklab, var(--sec) 18%, transparent);border-radius:10px;align-items:center;gap:2px;margin-left:auto;padding:2px;display:inline-flex}.school-wb-mid-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.school-wb-pane-cluster--float{z-index:3;position:absolute;top:6px;right:8px}.school-wb-mid-body .school-wb-chat{padding-top:4px}.school-wb-mid-body .school-wb-chat__log{padding-right:84px}.school-wb-pane-btn{width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.school-wb-pane-btn:hover,.school-wb-pane-btn:focus-visible{background:color-mix(in oklab, var(--sec) 16%, var(--surface));outline:none}.school-wb-pane-btn:focus-visible{box-shadow:0 0 0 2px color-mix(in oklab, var(--sec) 45%, transparent)}.school-wb-rail-label{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.18em;color:inherit;align-self:center;margin:8px 0 0;font-size:.75rem}.school-wb-left{--sec:var(--on-dark-indigo);background:linear-gradient(180deg, var(--sidebar-bg-mid) 0%, var(--sidebar-bg) 100%);min-width:0;color:var(--sidebar-text);border-right:1px solid var(--sidebar-border)}.school-wb-left .school-wb-pane-title,.school-wb-left .school-wb-pane-btn,.school-wb-left .school-wb-rail-label{color:var(--sidebar-text-strong)}.school-wb-left .school-wb-pane-bar{border-bottom:1px solid var(--sidebar-border);box-shadow:none}.school-wb-left .school-wb-pane-cluster{border-color:var(--sidebar-border);background:oklab(100% 0 5.96046e-8/.09)}.school-wb-left .school-wb-pane-btn:hover,.school-wb-left .school-wb-pane-btn:focus-visible{background:color-mix(in oklab, var(--sidebar-active) 22%, transparent)}.school-wb-left .role-muted{color:var(--sidebar-text);padding:0 12px}.school-wb-mid{--sec:var(--pg-celadon);background:linear-gradient(180deg, color-mix(in oklab, var(--pg-celadon) 11%, var(--canvas)) 0%, color-mix(in oklab, var(--pg-celadon) 3%, var(--canvas)) 36%, var(--canvas) 100%)}.school-wb-mid .school-wb-pane-bar{border-bottom:1px solid color-mix(in oklab, var(--pg-celadon) var(--sec-line), transparent);background:color-mix(in oklab, var(--pg-celadon) 12%, var(--surface))}.school-wb-right{--sec:var(--pg-ink);background:linear-gradient(180deg, color-mix(in oklab, var(--pg-ink) 8%, var(--canvas)) 0%, color-mix(in oklab, var(--pg-indigo) 5%, var(--canvas)) 42%, var(--canvas) 100%);border-left:1px solid color-mix(in oklab, var(--pg-ink) var(--sec-line), transparent)}.school-wb-right .school-wb-pane-bar{border-bottom:1px solid color-mix(in oklab, var(--pg-ink) var(--sec-line), transparent);background:color-mix(in oklab, var(--pg-ink) 10%, var(--surface))}.school-wb-left.is-collapsed,.school-wb-mid.is-collapsed,.school-wb-right.is-collapsed{align-items:center}.school-wb-left.is-collapsed .school-wb-pane-bar,.school-wb-mid.is-collapsed .school-wb-pane-bar,.school-wb-right.is-collapsed .school-wb-pane-bar{border-bottom:0;flex-direction:column;width:100%;height:auto;padding:8px 4px}.school-wb-left.is-collapsed .school-wb-pane-cluster,.school-wb-mid.is-collapsed .school-wb-pane-cluster,.school-wb-right.is-collapsed .school-wb-pane-cluster{flex-direction:column;margin-left:0}.school-wb-mid{padding:0}.school-wb-chat{flex-direction:column;flex:1;height:100%;min-height:0;padding:0 12px 12px;display:flex}.school-wb-chat__log{flex-direction:column;flex:1;gap:10px;padding:12px 0;display:flex;overflow:auto}.school-wb-bubble pre{white-space:pre-wrap;margin:0;font-family:inherit}.school-wb-bubble--user{background:color-mix(in oklab, var(--pg-celadon) 18%, var(--surface));border:1px solid color-mix(in oklab, var(--pg-celadon) 28%, transparent);border-radius:var(--radius-lg);align-self:flex-end;max-width:85%;padding:8px 12px}.school-wb-bubble--assistant{max-width:100%;box-shadow:none;background:0 0;border:0;align-self:stretch;padding:4px 2px 8px}.school-wb-thinking{--sec:var(--pg-celadon);width:100%;max-width:100%;color:var(--ink-700);background:0 0;border:0;align-self:flex-start;margin:0 0 8px;padding:0;font-size:.8rem}.school-wb-bubble--assistant>.school-wb-thinking{margin-bottom:8px}.school-wb-thinking summary{cursor:pointer;color:var(--pg-ink);background:0 0;border:0;align-items:center;gap:.45rem;margin:0;padding:0;font-weight:650;list-style:none;display:flex}.school-wb-thinking summary::-webkit-details-marker{display:none}.school-wb-thinking summary:before{content:"";border-bottom:1.5px solid;border-right:1.5px solid;flex-shrink:0;width:.38rem;height:.38rem;transform:rotate(45deg)}.school-wb-thinking:not([open]) summary:before{transform:rotate(-45deg)translateY(-1px)}.school-wb-thinking__title{margin:0;font-size:.82rem;font-weight:650}.school-wb-thinking__steps{border-left:2px solid color-mix(in oklab, var(--sec) 32%, transparent);margin:8px 0 2px;padding:2px 0 0 12px;list-style:none}.school-wb-thinking__steps li{color:color-mix(in oklab, var(--pg-ink) 78%, var(--ink-500));white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:0;padding:.18rem 0 .18rem .15rem;font-size:.8rem;line-height:1.55;position:relative}.school-wb-thinking__steps li+li{margin-top:.1rem}.school-wb-thinking__steps li.is-current{color:var(--pg-ink);font-weight:600}@media (prefers-reduced-motion:no-preference){.school-wb-thinking--live .school-wb-thinking__title{animation:1.6s ease-in-out infinite school-wb-thinking-pulse}}@keyframes school-wb-thinking-pulse{50%{opacity:.62}}.school-wb-confirm{border:1px solid color-mix(in oklab, var(--pg-ochre) 28%, transparent);border-radius:var(--radius);background:color-mix(in oklab, var(--pg-ochre) 8%, var(--surface));margin-top:8px;padding:10px}.school-wb-confirm p{margin:0}.school-wb-confirm__actions{gap:8px;margin-top:8px;display:flex}.school-wb-chat__bar{border:1px solid color-mix(in oklab, var(--pg-celadon) 22%, transparent);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--pg-celadon) 6%, var(--surface));box-shadow:var(--shadow-sm);align-items:flex-end;gap:8px;margin:0 0 4px;padding:8px;display:flex}.school-wb-chat__bar textarea{resize:none;border:1px solid color-mix(in oklab, var(--pg-celadon) 18%, var(--border));border-radius:var(--radius-md);background:var(--surface);flex:1;min-height:44px;padding:8px 10px}.school-wb-chat__bar textarea:focus-visible{outline:2px solid color-mix(in oklab, var(--pg-celadon) 45%, transparent);outline-offset:1px}.school-wb-chat__bar .school-wb-stop{justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding:0;display:inline-flex}.school-wb-stop__icon{background:currentColor;border-radius:1.5px;width:11px;height:11px;display:block}.school-wb-add,.school-wb-phrases{position:relative}.school-wb-add__menu,.school-wb-phrases__list{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:220px;margin:0;padding:6px;list-style:none;position:absolute;bottom:44px;left:0}.school-wb-add__menu button,.school-wb-phrases__list button{text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;width:100%;padding:6px 8px;display:block}.school-wb-add__menu button:hover,.school-wb-phrases__list button:hover{background:color-mix(in oklab, var(--pg-celadon) 10%, var(--surface))}.school-wb-tabs{border-bottom:1px solid color-mix(in oklab, var(--pg-ink) var(--sec-line), transparent);background:linear-gradient(180deg, color-mix(in oklab, var(--pg-ink) 7%, var(--surface)) 0%, color-mix(in oklab, var(--pg-indigo) 4%, var(--surface)) 100%);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px;padding:8px 10px;display:flex}.school-wb-tabs__list{flex-wrap:wrap;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.school-wb-tabs__list button{border-radius:var(--radius);cursor:pointer;color:var(--ink-700);background:0 0;border:0;padding:6px 10px}.school-wb-tabs__list button[aria-selected=true]{background:color-mix(in oklab, var(--pg-celadon) 18%, var(--surface));color:var(--pg-ink);box-shadow:inset 0 -2px 0 var(--pg-celadon);font-weight:600}.school-wb-panel{flex:1;padding:8px 12px 16px;overflow:auto}.school-wb-drawer-btn,.school-wb-right-mask{display:none}.school-prep-coverage{align-items:center;gap:8px;min-width:0;display:flex}.school-prep-coverage__bar{background:color-mix(in oklab, var(--meter,var(--pg-ink)) 28%, var(--surface));border-radius:999px;flex:88px;min-width:72px;max-width:140px;height:10px;overflow:hidden}.school-prep-coverage__bar>i{border-radius:inherit;background:var(--meter,var(--pg-ink));height:100%;display:block}.school-prep-coverage__pct{font-family:var(--font-data), var(--font-body), sans-serif;font-variant-numeric:tabular-nums;color:var(--meter,var(--ink-700));text-align:right;min-width:2.6em;font-size:.8rem;font-weight:600}.school-prep-coverage.is-green{--meter:var(--pg-moss)}.school-prep-coverage.is-yellow{--meter:var(--pg-ochre)}.school-prep-coverage.is-red{--meter:var(--pg-cinnabar)}.school-prep-coverage.is-empty{--meter:color-mix(in oklab, var(--pg-ink) 32%, var(--surface));color:color-mix(in oklab, var(--pg-ink) 58%, var(--ink-700))}.school-prep-coverage.is-ramp{--meter:color-mix(in oklab, var(--p-danger) 70%, var(--p-ok))}.school-prep-coverage.is-ramp .school-prep-coverage__bar,.school-prep-coverage.is-ramp .school-prep-coverage__pct{color:var(--meter)}.school-wb-rate-pies{--sec:var(--pg-ink);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}.school-wb-rate-pie{--pg:var(--pg-ink);border:1px solid color-mix(in oklab, var(--pg) 16%, var(--line));border-top:2px solid var(--pg);border-radius:var(--radius-md,12px);background:color-mix(in oklab, var(--pg) 6%, var(--surface));align-items:center;gap:10px;min-height:76px;padding:10px 12px;display:flex}.school-wb-rate-pie.is-arrival{--pg:var(--pg-celadon)}.school-wb-rate-pie.is-match{--pg:var(--pg-indigo)}.school-wb-rate-pie.is-coverage{--pg:var(--pg-moss)}.school-wb-rate-pie.is-empty{background:color-mix(in oklab, var(--pg) 4%, var(--surface))}.school-wb-rate-pie__solid{background:conic-gradient(var(--meter,var(--pg)) 0 calc(var(--pct,0) * 1%), color-mix(in oklab, var(--meter,var(--pg)) 28%, var(--surface)) calc(var(--pct,0) * 1%) 100%);width:64px;height:64px;box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--meter,var(--pg)) 18%, transparent);border-radius:50%;flex-shrink:0}.school-wb-rate-pie.is-empty .school-wb-rate-pie__solid{background:color-mix(in oklab, var(--pg-ink) 12%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--pg-ink) 14%, transparent)}.school-wb-rate-pie__copy h3{font-family:var(--font-display), serif;letter-spacing:.04em;color:var(--pg);margin:0 0 4px;font-size:.88rem;font-weight:600;line-height:1.35}.school-wb-rate-pie__value{font-family:var(--font-data), var(--font-body), sans-serif;font-variant-numeric:tabular-nums;color:var(--meter,var(--pg-ink));flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;font-size:.95rem;font-weight:700;line-height:1.3;display:flex}.school-wb-rate-pie__note{color:color-mix(in oklab, var(--pg-ink) 62%, var(--ink-700));margin:4px 0 0;font-size:.74rem;font-weight:500;line-height:1.4}.school-wb-rate-pie__value span{color:color-mix(in oklab, var(--pg) 72%, var(--ink-700));font-size:.78rem;font-weight:600}.school-wb-rate-pie.is-empty .school-wb-rate-pie__value{color:color-mix(in oklab, var(--pg-ink) 58%, var(--ink-700));font-size:.82rem;font-weight:600}@media (width<=840px){.school-wb-rate-pies{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.school-wb-rate-pie__solid{transition:none}}.school-wb-jump{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;margin:0;padding:0;display:flex}.school-wb-jump:hover,.school-wb-jump:focus-visible{color:var(--pg-indigo)}.school-wb-jump:focus-visible{outline:2px solid var(--pg-ink);outline-offset:2px}.school-wb-overview-empty{--sec:var(--pg-celadon);border-left:2px solid var(--sec);background:color-mix(in oklab, var(--sec) 6%, var(--surface));flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;padding:8px 12px;display:flex}.school-wb-overview-empty p{color:var(--ink-800);margin:0}.school-wb-progress-notes{color:color-mix(in oklab, var(--pg-ink) 62%, var(--ink-700));border-left:2px solid color-mix(in oklab, var(--pg-ochre) 70%, transparent);background:color-mix(in oklab, var(--pg-ochre) 6%, var(--surface));gap:4px;margin:10px 0 0;padding:8px 10px;font-size:.78rem;line-height:1.45;display:grid}.school-wb-progress-notes span{display:block}@media (width<=960px){.school-shell{grid-template-columns:132px 1fr!important}.school-workbench{grid-template-columns:1fr!important}.school-wb-resizer,.school-shell-resizer,.school-wb-pane-bar{display:none}.school-wb-right{z-index:40;width:min(100vw,420px);display:none;position:fixed;top:72px;bottom:0;right:0}.school-wb-right.is-open{display:flex}.school-wb-drawer-btn,.school-wb-right-mask.is-open{display:block}.school-wb-right-mask.is-open{z-index:30;background:#0f172a59;position:fixed;inset:72px 0 0}.school-wb-drawer-btn{z-index:20;position:fixed;bottom:12px;right:12px}}.school-wb-chat-table{margin-top:8px;overflow:auto}.school-wb-chat-table table,.school-wb-progress-table table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.85rem}.school-wb-progress-table table{border:1px solid color-mix(in oklab, var(--pg-ink) var(--sec-line), transparent);border-radius:var(--radius-lg);overflow:hidden}.school-wb-chat-table th,.school-wb-chat-table td,.school-wb-progress-table th,.school-wb-progress-table td{border-bottom:1px solid color-mix(in oklab, var(--pg-ink) 10%, transparent);text-align:left;padding:8px 10px}.school-wb-progress-table thead th{background:color-mix(in oklab, var(--pg-ink) var(--sec-head), var(--surface));color:color-mix(in oklab, var(--pg-ink) 70%, var(--ink-700));font-weight:600}.school-wb-progress-table tbody tr:nth-child(2n){background:color-mix(in oklab, var(--pg-ink) var(--sec-zebra), var(--surface))}.school-wb-progress-table tbody tr:hover{background:color-mix(in oklab, var(--pg-celadon) var(--sec-hover), var(--surface))}.school-wb-bubble__text{white-space:pre-wrap;margin:0}.school-wb-bubble--upload{--sec:var(--pg-celadon);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--sec) 7%, var(--surface));border:1px solid color-mix(in oklab, var(--sec) 18%, transparent);max-width:100%;box-shadow:inset 0 2px 0 var(--sec);align-self:stretch;margin:0;padding:10px 12px}.school-wb-bubble--upload.is-error{--sec:var(--pg-cinnabar)}.school-wb-bubble--upload.is-done{--sec:var(--pg-moss)}.school-wb-file-notes{--sec:var(--pg-celadon);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--sec) 7%, var(--surface));border:1px solid color-mix(in oklab, var(--sec) 16%, transparent);max-height:240px;box-shadow:inset 0 2px 0 var(--sec);margin:0;padding:10px 12px 12px;overflow:auto}.school-wb-file-notes h2{font-family:var(--font-serif);letter-spacing:.04em;color:color-mix(in oklab, var(--sec) 55%, var(--ink-900));margin:0 0 8px;font-size:.95rem;font-weight:600}.school-wb-file-notes ol{margin:0;padding-left:1.25em}.school-wb-file-notes li{margin:0 0 6px;font-size:.86rem;line-height:1.5}.school-wb-file-notes li:last-child{margin-bottom:0}.school-wb-arrival{--sec:var(--pg-indigo);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--sec) 7%, var(--surface));border:1px solid color-mix(in oklab, var(--sec) 16%, transparent);padding:10px 12px}.school-wb-arrival h2{margin:0 0 6px;font-size:1rem}.school-wb-arrival__lead{border-left:2px solid var(--sec);color:var(--ink-700);margin:0;padding-left:8px;font-size:.86rem;line-height:1.5}.school-wb-arrival__tree,.school-wb-arrival__branch{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.school-wb-arrival__branch{margin-top:6px;margin-left:2px}.school-wb-arrival__node{border-left:3px solid var(--sec);flex-direction:column;gap:2px;padding:6px 0 6px 10px;display:flex}.school-wb-arrival__node details{min-width:0}.school-wb-arrival__node summary{cursor:pointer;flex-direction:column;gap:2px;display:flex}.school-wb-arrival__node summary:focus-visible{outline:2px solid color-mix(in oklab, var(--sec) 55%, transparent);outline-offset:2px}.school-wb-arrival__node span{color:var(--ink-700);font-size:.86rem}.school-wb-arrival__row{flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;display:flex}.school-wb-arrival__toggle{border:1px solid color-mix(in oklab, var(--sec) 22%, transparent);background:color-mix(in oklab, var(--sec) 8%, var(--surface));cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;display:inline-flex}.school-wb-arrival__toggle:focus-visible,.school-wb-arrival__name:focus-visible,.school-wb-arrival__crumbs button:focus-visible,.school-wb-arrival__search input:focus-visible{outline:2px solid color-mix(in oklab, var(--sec) 55%, transparent);outline-offset:2px}.school-wb-arrival__toggle-spacer{flex-shrink:0;width:32px}.school-wb-arrival__name{cursor:pointer;text-align:left;background:0 0;border:0;min-height:44px;padding:6px 4px}.school-wb-arrival__name strong{font-size:.9rem}.school-wb-arrival__name.is-selected strong{text-underline-offset:3px;text-decoration:underline}.school-wb-arrival__name mark,.school-wb-arrival__tags mark{background:color-mix(in oklab, var(--pg-ochre) 32%, transparent);border-radius:4px;padding:0 2px}.school-wb-arrival__tags{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.school-wb-tag{font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:99px;align-items:center;min-height:24px;padding:2px 8px;font-size:.78rem;display:inline-flex}.school-wb-tag--arrived{color:var(--pg-ink);background:color-mix(in oklab, var(--pg-ink) 10%, var(--surface));border-color:color-mix(in oklab, var(--pg-ink) 22%, transparent)}.school-wb-tag--done{color:var(--pg-moss);background:color-mix(in oklab, var(--pg-moss) 10%, var(--surface));border-color:color-mix(in oklab, var(--pg-moss) 22%, transparent)}.school-wb-tag--todo,.school-wb-tag--pending{color:var(--pg-ochre);background:color-mix(in oklab, var(--pg-ochre) 10%, var(--surface));border-color:color-mix(in oklab, var(--pg-ochre) 24%, transparent)}.school-wb-arrival__node[data-empty=true]{border-left-style:dashed}.school-wb-arrival__node[data-level=a][data-sec="0"],.school-wb-arrival__legend-item[data-sec="0"]{--sec:var(--pg-ink)}.school-wb-arrival__node[data-level=a][data-sec="1"],.school-wb-arrival__legend-item[data-sec="1"]{--sec:var(--pg-indigo)}.school-wb-arrival__node[data-level=a][data-sec="2"],.school-wb-arrival__legend-item[data-sec="2"]{--sec:var(--pg-celadon)}.school-wb-arrival__node[data-level=a][data-sec="3"],.school-wb-arrival__legend-item[data-sec="3"]{--sec:var(--pg-ochre)}.school-wb-arrival__node[data-level=a][data-sec="4"],.school-wb-arrival__legend-item[data-sec="4"]{--sec:var(--pg-moss)}.school-wb-arrival__node[data-level=a][data-sec="5"],.school-wb-arrival__legend-item[data-sec="5"]{--sec:var(--pg-cinnabar)}.school-wb-arrival__node[data-level=a]>.school-wb-arrival__row{background:color-mix(in oklab, var(--sec) 7%, transparent);border-radius:var(--radius-sm)}.school-wb-arrival__crown{background:var(--sec);border-radius:50%;flex-shrink:0}.school-wb-arrival__crown[data-size="0"]{display:none}.school-wb-arrival__crown[data-size="1"]{width:6px;height:6px}.school-wb-arrival__crown[data-size="2"]{width:9px;height:9px}.school-wb-arrival__crown[data-size="3"]{width:12px;height:12px}.school-wb-arrival__node[data-sec-cycle=true] .school-wb-arrival__crown[data-size="1"],.school-wb-arrival__node[data-sec-cycle=true] .school-wb-arrival__crown[data-size="2"],.school-wb-arrival__node[data-sec-cycle=true] .school-wb-arrival__crown[data-size="3"],.school-wb-arrival__legend-item[data-sec-cycle=true] i{box-shadow:0 0 0 2px var(--surface), 0 0 0 3.5px var(--sec)}.school-wb-arrival__legend{color:var(--ink-700);flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px;font-size:.78rem;display:flex}.school-wb-arrival__legend-title{color:var(--ink-900);font-weight:600}.school-wb-arrival__legend-item{align-items:center;gap:4px;display:inline-flex}.school-wb-arrival__legend-item i{background:var(--sec);border-radius:50%;flex-shrink:0;width:10px;height:10px}.school-wb-arrival__legend-note{color:var(--ink-500);flex-basis:100%}.school-wb-arrival__toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;display:flex}.school-wb-arrival__search input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);min-width:min(240px,100%);min-height:44px;padding:8px 10px}.school-wb-arrival__crumbs{flex-wrap:wrap;align-items:center;gap:2px;font-size:.85rem;display:flex}.school-wb-arrival__crumbs button{cursor:pointer;min-height:44px;color:var(--pg-ink);background:0 0;border:0;padding:10px 6px}.school-wb-arrival__actions{margin-top:8px}.school-wb-arrival__pager{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:.82rem;display:flex}.school-wb-arrival__selected{border-radius:var(--radius-md);border:1px solid color-mix(in oklab, var(--sec) 18%, transparent);background:color-mix(in oklab, var(--sec) 5%, var(--surface));margin-top:10px;padding:8px 10px}.school-wb-arrival__selected h3{margin:0 0 4px;font-size:.9rem}.school-wb-overview{flex-direction:column;gap:12px;padding:2px 2px 8px;display:flex}.school-wb-overview-counts{--sec:var(--pg-ink);border-left:2px solid var(--sec);background:color-mix(in oklab, var(--sec) 6%, var(--surface));grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;margin:0 0 10px;padding:8px 12px;font-size:.82rem;line-height:1.45;list-style:none;display:grid}.school-wb-overview-counts li{min-width:0;color:var(--ink-800);grid-template-columns:6.6em minmax(0,1fr);align-items:center;gap:8px;margin:0;display:grid}.school-wb-overview-counts__name{letter-spacing:.02em;font-weight:600}.school-wb-overview-counts .school-prep-coverage{min-width:0}.school-wb-overview-counts .school-prep-coverage>span:first-child{font-variant-numeric:tabular-nums;width:3.8em;font-family:var(--font-data), var(--font-body), sans-serif;flex:0 0 3.8em}.school-wb-overview-counts b{font-variant-numeric:tabular-nums;font-family:var(--font-data), var(--font-body), sans-serif}.school-wb-overview>.school-progress-ring-wrap,.school-wb-overview>.school-progress-ring{border-radius:var(--radius-lg);background:color-mix(in oklab, var(--pg-indigo) 7%, var(--surface));border:1px solid color-mix(in oklab, var(--pg-indigo) 16%, transparent);padding:4px 8px}.school-wb-chat__live-status{color:var(--ink-800);background:color-mix(in oklab, var(--pg-ochre) 12%, var(--surface));border:1px solid color-mix(in oklab, var(--pg-ochre) 28%, transparent);border-radius:var(--radius-md);box-shadow:inset 3px 0 0 var(--pg-ochre);flex-shrink:0;margin:8px 0 0;padding:6px 10px;font-size:.8rem;line-height:1.45}.school-wb-coverage-error{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 14px;display:flex}.school-wb-coverage-error .role-page__status{margin:0}.school-wb-director{--sec:var(--pg-ochre);border:1px solid color-mix(in oklab, var(--sec) 22%, transparent);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--sec) 7%, var(--surface));box-shadow:inset 0 2px 0 var(--sec);padding:10px 12px 12px}.school-wb-director h2{margin:0 0 6px;font-size:1rem}.school-wb-director__lead{margin:0 0 10px;font-size:.85rem;line-height:1.45}.school-wb-director__toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}.school-wb-director__check{flex:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.school-wb-director__check input{width:18px;height:18px;accent-color:var(--pg-ochre);margin:0}.school-wb-director__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.school-wb-director__list li{border-top:1px solid color-mix(in oklab, var(--sec) 16%, transparent);flex-wrap:wrap;justify-content:space-between;gap:8px 12px;padding:8px 0 0;display:flex}.school-wb-director__list li:first-child{border-top:0;padding-top:0}.school-wb-director__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.school-wb-progress-table__head{border-bottom:1px solid color-mix(in oklab, var(--pg-ochre) 22%, transparent);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:6px;display:flex}.school-wb-progress-table__head h2{font-size:1rem;font-family:var(--font-display), serif;box-shadow:inset 3px 0 0 var(--pg-ochre);margin:0;padding-left:10px}.school-wb-progress-filters{justify-content:flex-end;align-items:center;min-width:12.5rem;display:flex}.school-wb-progress-filters .school-cascade,.school-wb-progress-filters .school-cascade__trigger{width:auto;min-width:12.5rem}.school-wb-gap-list{margin:6px 0 0;padding-left:1.1rem;font-size:.8125rem;line-height:1.45}.school-wb-file-link{color:inherit;cursor:pointer;text-decoration:none}.school-wb-file-link:hover,.school-wb-file-link:focus-visible{color:var(--pg-indigo);text-decoration:underline}.school-wb-progress-table details summary{cursor:pointer}.portal-page--subpage #portal-main.portal-main--subpage{max-width:1200px;margin:0 auto;padding:16px 20px 32px}.school-prep-tree{--sec:var(--pg-celadon);margin:8px 0 16px}.school-prep-tree__toolbar{flex-wrap:wrap;gap:8px;margin:0 0 10px;display:flex}.school-prep-tree__root,.school-prep-tree__children,.school-prep-tree__files{margin:0;padding:0;list-style:none}.school-prep-tree__children{border-left:2px solid color-mix(in oklab, var(--pg-ink) 16%, var(--canvas));margin-left:18px;padding-left:4px}.school-prep-tree__node{margin:1px 0;padding-left:6px;position:relative}.school-prep-tree__node.is-focus>.school-prep-tree__row .school-prep-tree__card{outline:2px solid color-mix(in oklab, var(--pg-ochre) 55%, var(--line));background:color-mix(in oklab, var(--pg-ochre) 8%, var(--surface))}.school-prep-tree__row{align-items:center;gap:6px;display:flex}.school-prep-tree__tw{border:1px solid color-mix(in oklab, var(--pg-ink) 16%, var(--line));background:color-mix(in oklab, var(--pg-ink) 6%, var(--surface));width:1.6em;height:1.6em;color:var(--ink-700);cursor:pointer;border-radius:4px;flex:none;font-size:13px;line-height:1}.school-prep-tree__tw.is-leaf{color:color-mix(in oklab, var(--pg-ink) 40%, var(--canvas));cursor:default;background:0 0;border:0}.school-prep-tree__tw:focus-visible{outline:2px solid var(--pg-ink);outline-offset:1px}.school-prep-tree__card{--prep-meter-col:16.8em;grid-template-columns:minmax(0, 1fr) var(--prep-meter-col) 4.6em 6.6em 3.6em;border:1px solid color-mix(in oklab, var(--sec) 16%, var(--line));border-left:4px solid var(--sec);background:color-mix(in oklab, var(--sec) 5%, var(--surface));border-radius:6px;flex:1;align-items:center;column-gap:8px;min-width:0;min-height:1.6em;padding:0 10px;line-height:1.4;display:grid}.school-prep-tree__node.is-a>.school-prep-tree__row .school-prep-tree__card{--sec:var(--pg-ink)}.school-prep-tree__node.is-b>.school-prep-tree__row .school-prep-tree__card{--sec:var(--pg-indigo)}.school-prep-tree__node.is-c>.school-prep-tree__row .school-prep-tree__card{--sec:var(--pg-celadon)}.school-prep-tree__node.is-d>.school-prep-tree__row .school-prep-tree__card{--sec:color-mix(in oklab, var(--pg-celadon) 55%, var(--line))}.school-prep-tree__node.is-ungrouped>.school-prep-tree__row .school-prep-tree__card,.school-prep-tree__node.is-unmatched>.school-prep-tree__row .school-prep-tree__card{--sec:var(--pg-ochre);border-style:dashed}.school-prep-tree__title{flex-wrap:nowrap;flex:1;align-items:baseline;gap:8px;min-width:0;margin:0;display:flex}.school-prep-tree__code{font-family:var(--font-data), var(--font-body), sans-serif;color:var(--sec);font-size:.75rem;font-weight:700}.school-prep-tree__name{font-family:var(--font-display), serif;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.school-prep-tree__ratio{color:var(--ink-700);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.school-prep-tree__mark{border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.2em;height:1.2em;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.school-prep-tree__mark.is-yes{color:var(--pg-moss);background:color-mix(in oklab, var(--pg-moss) 16%, var(--surface))}.school-prep-tree__mark.is-no{color:var(--pg-cinnabar);background:color-mix(in oklab, var(--pg-cinnabar) 14%, var(--surface))}.school-prep-tree__count{background:color-mix(in oklab, var(--pg-ink) 8%, var(--surface));color:var(--ink-700);cursor:pointer;border:0;border-radius:999px;padding:2px 8px;font-size:.75rem}.school-prep-tree__meters{align-items:center;width:100%;min-width:0;display:flex}.school-prep-tree__meters .school-prep-coverage{grid-template-columns:7em minmax(3.2em,1fr) 2.8em;column-gap:6px;width:100%;min-width:0;display:grid}.school-prep-tree__meters .school-prep-coverage>span:first-child{text-align:right;white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;min-width:0;overflow:hidden}.school-prep-tree__meters .school-prep-coverage__bar{flex:none;width:100%;min-width:0;max-width:none;height:8px}.school-prep-tree__meters .school-prep-coverage__pct{text-align:right;min-width:0}.school-prep-tree__col-count,.school-prep-tree__col-upload,.school-prep-tree__col-delete{justify-content:flex-end;align-items:center;min-width:0;display:flex}.school-prep-tree__slot{min-height:1em;display:block}.school-prep-tree__actions .ui-btn,.school-prep-tree__col-upload .ui-btn,.school-prep-tree__col-delete .ui-btn,.school-prep-tree .school-prep-upload-link{width:100%;min-width:0;height:auto;min-height:0;line-height:inherit;font-size:inherit;padding:0 8px}.school-prep-tree__files{margin:4px 0 8px 36px}.school-prep-tree__files li{color:var(--ink-700);padding:2px 0 2px 12px;position:relative}.school-prep-tree__files li:before{content:"";background:color-mix(in oklab, var(--pg-ink) 35%, var(--canvas));border-radius:50%;width:6px;height:6px;position:absolute;top:.7em;left:0}@media (width<=720px){.school-prep-tree__card{grid-template-columns:minmax(0,1fr) 4.4em;row-gap:4px}.school-prep-tree__meters,.school-prep-tree__col-upload,.school-prep-tree__col-delete{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (hover:hover) and (pointer:fine){.ui-btn:hover:not(:disabled):not(.is-disabled){background:color-mix(in oklab, var(--brand,#24344c) 8%, var(--surface,#fff));border-color:color-mix(in oklab, var(--brand,#24344c) 35%, var(--line))}}@media (hover:hover) and (pointer:fine){.ui-btn--primary:hover:not(:disabled):not(.is-disabled){background:var(--brand-600,#1b283b);color:var(--on-brand,#fff)}}@media (hover:hover) and (pointer:fine){.ui-btn--ghost:hover:not(:disabled):not(.is-disabled){background:color-mix(in oklab, var(--brand,#24344c) 8%, transparent)}}@media (hover:hover) and (pointer:fine){.ui-btn--danger:hover:not(:disabled):not(.is-disabled){background:var(--danger,#a33b32);color:var(--on-fill,#fff)}}.ws-page{--ws-font:"Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ws-sidebar-grad:linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-mid) 100%);--ws-chat-rail:var(--chat-rail);--ws-results-rail:var(--results-rail);background:var(--chat-bg);height:100vh;color:var(--text);font-family:var(--ws-font);font-size:max(var(--font-xs,12px), calc(var(--font-sm,14px) * var(--font-scale,1)));letter-spacing:.01em;flex-direction:column;line-height:1.55;display:flex;overflow:hidden}.ws-layout{flex:1;grid-template-columns:272px minmax(0,1fr);min-height:0;display:grid}.ws-pane{background:var(--surface);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.ws-pane--sidebar{background:var(--ws-sidebar-grad);color:var(--sidebar-text);border-right:1px solid var(--sidebar-border);z-index:2;padding:16px 12px;box-shadow:inset -1px 0 #ffffff0a}.ws-stage{flex-direction:column;min-width:0;min-height:0;display:flex}.ws-stage__work{flex:1;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.ws-stage.is-assistant-open .ws-stage__work{grid-template-columns:minmax(0,1fr) minmax(280px,360px)}.ws-stage__work>.ws-pane--results{min-width:0;min-height:0}.ws-pane--chat{background:var(--chat-bg)}.ws-assistant-drawer{--sec:var(--pg-celadon);border-left:1px solid color-mix(in oklab, var(--sec) 20%, var(--border));background:color-mix(in oklab, var(--sec) 6%, var(--chat-bg))}.ws-assistant-drawer:before{content:"";background:var(--sec);pointer-events:none;width:2px;position:absolute;top:0;bottom:0;left:0}.ws-pane--results{background:var(--results-bg)}.ws-pane__head{border-bottom:1px solid var(--border);background:var(--chat-surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;display:flex}.ws-pane--results .ws-pane__head{background:color-mix(in srgb, var(--results-bg) 70%, var(--surface));border-bottom-color:color-mix(in srgb, var(--results-accent) 18%, var(--border))}.ws-pane--sidebar .ws-pane__head{border-bottom:1px solid var(--sidebar-border);color:var(--sidebar-text-strong);background:0 0;padding:0 4px 14px}.ws-pane__body{flex:1;min-height:0;padding:16px;overflow:auto}.ws-pane--sidebar .ws-pane__body{flex-direction:column;gap:12px;padding:0 2px;display:flex}.ws-pane__title{font-size:var(--font-md,16px);letter-spacing:.04em;color:var(--text);font-weight:600;font-family:var(--font-display);margin:0}.ws-pane--chat .ws-pane__title{color:color-mix(in srgb, var(--fn-process) 28%, var(--ink-900))}.ws-pane--results .ws-pane__title{color:color-mix(in srgb, var(--results-accent) 38%, var(--ink-900))}.ws-stage-badge{color:var(--fn-field);background:var(--results-accent-soft);border:1px solid color-mix(in srgb, var(--results-accent) 22%, transparent);white-space:nowrap;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.ws-brand{align-items:center;gap:10px;margin-bottom:4px;display:flex}.ws-brand__logo{width:40px;height:40px;color:var(--sidebar-text-strong);font-family:var(--font-display);box-shadow:inset 0 0 0 1px #ffffff47, inset 0 -3px 0 var(--seal);background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:inline-flex}.ws-brand strong{color:var(--sidebar-text-strong);font-size:15px;line-height:1.25;display:block}.ws-brand span{opacity:.78;color:var(--sidebar-text);font-size:12px;display:block}.ws-btn{appearance:none;border-radius:var(--radius);background:var(--surface);color:var(--brand-800);cursor:pointer;font:inherit;font-size:var(--font-sm,14px);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:1px solid #0000;padding:7px 12px;font-weight:600}.ws-btn:disabled{opacity:.5;cursor:not-allowed}.ws-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.ws-btn--primary{background:var(--brand);color:var(--on-brand,#fff);box-shadow:inset 3px 0 0 var(--seal-ink,var(--seal));border-color:#0000}.ws-btn--primary:hover:not(:disabled){background:var(--brand-600)}.ws-btn--danger{background:var(--fn-danger);border-color:color-mix(in srgb, var(--fn-danger) 80%, #881337);color:var(--on-fill,#fff)}.ws-btn--soft{background:var(--brand-50);border-color:color-mix(in srgb, var(--brand) 22%, var(--line));color:var(--brand-navy)}.ws-btn--soft:hover:not(:disabled){background:var(--brand-100)}.ws-btn--ghost{color:var(--sidebar-text-strong);background:0 0;border-color:#ffffff29}.ws-btn--ghost:hover:not(:disabled){background:#ffffff14}.ws-pane--sidebar .ui-btn--secondary{color:var(--sidebar-text-strong);background:#ffffff0f;border-color:#ffffff1f}.ws-pane--sidebar .ui-btn--secondary:hover:not(:disabled):not(.is-disabled){background:var(--sidebar-active-soft);border-color:color-mix(in srgb, var(--sidebar-active) 45%, transparent)}.ws-pane--sidebar .ui-btn--ghost{color:var(--sidebar-text-strong);background:0 0;border-color:#ffffff29}.ws-pane--sidebar .ui-btn--ghost:hover:not(:disabled):not(.is-disabled){color:var(--sidebar-text-strong);background:#ffffff14}.ws-pane--sidebar .ui-btn--danger{background:color-mix(in srgb, var(--fn-danger) 88%, transparent);color:var(--on-fill,#fff);border-color:#ffffff14}.ws-pane--sidebar .ws-btn--soft:hover:not(:disabled){background:var(--sidebar-active-soft);border-color:color-mix(in srgb, var(--sidebar-active) 45%, transparent)}.ws-pane--sidebar .ws-btn--danger{background:color-mix(in srgb, var(--fn-danger) 88%, transparent);border-color:#ffffff14}.ws-btn--fn-upload,.ws-btn--fn-analyze{color:var(--fn-process)!important;border-color:color-mix(in srgb, var(--fn-process) 28%, white)!important;background:var(--fn-process-soft)!important}.ws-btn--fn-cancel{color:var(--ink-600)!important;border-color:var(--line)!important;background:var(--surface-tint)!important}.ws-btn--fn-verify{color:var(--fn-verify)!important;border-color:color-mix(in srgb, var(--fn-verify) 30%, white)!important;background:var(--fn-verify-soft)!important}.ws-btn--fn-field{color:var(--fn-field)!important;border-color:color-mix(in srgb, var(--fn-field) 28%, white)!important;background:var(--fn-field-soft)!important}.ws-btn--fn-docs{color:var(--fn-export)!important;border-color:color-mix(in srgb, var(--fn-export) 22%, white)!important;background:var(--fn-export-soft)!important}.ws-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:12px}.ws-pane--sidebar .ws-card{border-color:var(--sidebar-border);box-shadow:none;background:#ffffff0a;border-radius:12px;margin-bottom:0}.ws-card h3{letter-spacing:.02em;color:var(--brand-800);margin:0 0 8px;font-size:13px}.ws-card--upgrade{border-color:var(--warning);background:var(--warning-50)}.ws-pane--sidebar .ws-card h3,.ws-pane--sidebar .ws-card label,.ws-pane--sidebar .ws-card legend{color:var(--sidebar-text)}.ws-form-row{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.ws-form-row:last-child{margin-bottom:0}.ws-form-row label,.ws-form-row legend{color:var(--text-secondary);font-size:12px;font-weight:600}.ws-form-row input,.ws-form-row select,.ws-form-row textarea,.ws-chat-compose textarea{border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;background:var(--surface);color:var(--text);padding:8px 10px}.ws-pane--sidebar .ws-form-row input,.ws-pane--sidebar .ws-form-row select{border-color:var(--sidebar-border);color:var(--sidebar-text-strong);background:#080c1673}.ws-pane--sidebar .ws-form-row input::placeholder{color:color-mix(in srgb, var(--sidebar-text) 70%, transparent)}.ws-form-row input:focus,.ws-form-row select:focus,.ws-form-row textarea:focus,.ws-chat-compose textarea:focus,.ws-form-row input:focus-visible,.ws-form-row select:focus-visible,.ws-form-row textarea:focus-visible,.ws-chat-compose textarea:focus-visible,.ws-theme-mode-select select:focus-visible,.ws-op-edit textarea:focus-visible,.ws-op-edit__heading:focus-visible{border-color:color-mix(in srgb, var(--fn-process) 70%, white);box-shadow:0 0 0 3px color-mix(in srgb, var(--fn-process) 18%, transparent);outline:none}.ws-check{align-items:center;gap:8px;margin:4px 0;font-size:13px;display:flex}.ws-session-list{flex:1;margin:0;padding:0;list-style:none;overflow:auto}.ws-session-item{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:10px;margin-bottom:4px;padding:11px 12px;transition:background .2s,border-color .2s,box-shadow .2s}.ws-session-item:hover{border-color:var(--sidebar-border);background:#ffffff0d}.ws-session-item.is-active{background:var(--sidebar-active-soft);border-color:color-mix(in srgb, var(--sidebar-active) 40%, transparent);color:var(--sidebar-text-strong);box-shadow:inset 3px 0 0 var(--sidebar-active)}.ws-session-item:focus-visible{outline:2px solid var(--sidebar-active);outline-offset:1px}.ws-session-item__title{color:inherit;margin:0 0 4px;font-size:14px;font-weight:600}.ws-session-item.is-active .ws-session-item__title{color:var(--sidebar-text-strong)}.ws-session-item__meta{opacity:.72;margin:0;font-size:12px}.ws-sidebar-foot{border-top:1px solid var(--sidebar-border);margin-top:auto;padding-top:12px}.ws-sidebar-foot__user{opacity:.75;margin:0 0 8px;font-size:12px}.ws-sidebar-foot__links{flex-wrap:wrap;gap:6px;display:flex}.ws-empty{color:var(--text-secondary);text-align:center;border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface-muted);margin:8px 0;padding:32px 16px;font-size:13px}.ws-pane--sidebar .ws-empty{color:#c8ccd8a6;border-color:var(--sidebar-border);background:0 0;padding:16px 8px}.ws-chat-log{flex-direction:column;gap:16px;min-height:160px;padding:8px 8px 16px;display:flex}.ws-msg{max-width:88%;animation:ws-fade-in .25s var(--ease-out);gap:12px;display:flex}.ws-msg--user{flex-direction:row-reverse;align-self:flex-end}.ws-msg--system{align-self:center;max-width:94%}.ws-msg__avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:flex}.ws-msg--assistant .ws-msg__avatar{background:var(--brand-50);color:var(--brand);border:1px solid var(--brand-200)}.ws-msg--user .ws-msg__avatar{background:var(--user-bubble);color:var(--user-text)}.ws-msg--system .ws-msg__avatar{display:none}.ws-msg__body{border-radius:var(--radius-md);white-space:pre-wrap;word-break:break-word;box-shadow:var(--shadow-sm);padding:11px 14px;font-size:14px;line-height:1.65}.ws-msg--assistant .ws-msg__body{background:var(--agent-bubble);border:1px solid color-mix(in srgb, var(--fn-process) 18%, var(--line));color:var(--text)}.ws-msg--user .ws-msg__body{background:var(--user-bubble);color:var(--user-text);border:1px solid color-mix(in srgb, var(--user-bubble) 78%, var(--brand-600))}.ws-msg--system .ws-msg__body{background:var(--warning-25);border:1px solid var(--warning-200);color:var(--warning);padding:8px 12px;font-size:12px}@media (prefers-reduced-motion:reduce){.ws-msg{animation:none}}.ws-chat-actions{border-top:1px solid var(--ws-chat-rail);background:var(--chat-surface);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 20px;display:flex}.ws-chat-actions .ws-muted{margin-left:auto}.ws-chat-compose{border-top:1px solid var(--ws-chat-rail);background:var(--chat-surface);gap:10px;padding:14px 20px 18px;display:flex}.ws-chat-compose textarea{resize:vertical;background:var(--surface);min-height:56px;max-height:160px;color:var(--text);flex:1;box-shadow:inset 0 1px 2px #0f172a08}.ws-assistant-dock{--sec:var(--pg-celadon);border-top:1px solid color-mix(in oklab, var(--sec) 18%, var(--border));background:color-mix(in oklab, var(--sec) 5%, var(--surface));flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px 12px;min-height:56px;padding:8px 16px;display:flex}.ws-assistant-dock__lead{flex-wrap:wrap;flex:220px;align-items:center;gap:8px 12px;min-width:0;display:flex}.ws-assistant-dock__next{--sec:var(--pg-ochre);color:color-mix(in oklab, var(--sec) 55%, var(--ink-900));border-left:2px solid var(--sec);flex-shrink:0;padding:4px 0 4px 10px;font-size:13px;font-weight:600}.ws-assistant-dock__preview{--sec:var(--pg-celadon);min-width:0;color:var(--text-secondary);border-left:2px solid color-mix(in oklab, var(--sec) 70%, transparent);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:160px;margin:0;padding-left:10px;font-size:12.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.ws-assistant-dock__readonly{color:var(--text-secondary);flex:240px;margin:0;font-size:13px}.ws-assistant-dock__compose{flex:280px;align-items:center;gap:8px;min-width:0;display:flex}.ws-assistant-dock__compose input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;height:44px;min-height:44px;color:var(--text);font:inherit;flex:1;padding:0 12px}.ws-assistant-dock__compose input:focus,.ws-assistant-dock__compose input:focus-visible{border-color:color-mix(in oklab, var(--pg-celadon) 70%, white);box-shadow:0 0 0 3px color-mix(in oklab, var(--pg-celadon) 18%, transparent);outline:none}.ws-assistant-dock .ui-btn{flex-shrink:0}.ws-assistant-dock__compose .ws-chat-stop{justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding:0;display:inline-flex}.ws-chat-stop__icon{background:currentColor;border-radius:1.5px;width:11px;height:11px;display:block}.ws-tabs{border-bottom:1px solid color-mix(in srgb, var(--results-accent) 14%, var(--border));background:color-mix(in srgb, var(--results-bg) 55%, var(--surface));flex-wrap:nowrap;flex-shrink:0;gap:0;padding:0 12px;display:flex;overflow-x:auto}.ws-tab{appearance:none;color:var(--text-secondary);font:inherit;cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 12px;font-size:12px;font-weight:600}.ws-tab:hover{color:var(--text);background:color-mix(in srgb, var(--results-accent) 5%, transparent)}.ws-tab:focus-visible{outline:2px solid var(--results-accent);outline-offset:-2px}.ws-tab.is-active{color:var(--results-accent);border-bottom-color:var(--results-accent);background:0 0}.ws-muted{color:var(--text-secondary);font-size:12px}.ws-kpi-row{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin-top:12px;display:grid}.ws-kpi{background:var(--surface);border:1px solid color-mix(in srgb, var(--results-accent) 14%, var(--line));border-radius:var(--radius);padding:12px}.ws-kpi strong,.ws-kpi__value{font-size:var(--font-3xl,32px);color:var(--results-accent);font-variant-numeric:var(--font-tabular,tabular-nums);letter-spacing:-.02em;font-weight:700;line-height:1.15;display:block}.ws-kpi span{color:var(--text-secondary);font-size:var(--font-xs,12px);line-height:1.4}.ws-kpi small{font-size:var(--font-xs,12px);color:var(--danger);margin-top:2px;font-weight:600;line-height:1.4;display:block}button.ws-kpi--clickable{font:inherit;text-align:left;cursor:pointer;width:100%}button.ws-kpi--clickable:hover{border-color:color-mix(in srgb, var(--results-accent) 40%, var(--line));box-shadow:0 0 0 2px color-mix(in srgb, var(--results-accent) 12%, transparent)}.ws-coverage-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;display:grid}.ws-coverage-metrics--actions{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=960px){.ws-coverage-metrics--actions{grid-template-columns:1fr}}.ws-coverage-metric{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-tint);color:var(--text);font:inherit;cursor:pointer;gap:2px;padding:10px;display:grid}.ws-coverage-metric strong{color:var(--results-accent);font-size:var(--font-lg,18px);font-variant-numeric:var(--font-tabular,tabular-nums);font-weight:700;line-height:1.2}.ws-coverage-metric small{color:var(--text-secondary);font-size:12px}.ws-coverage-metric.is-active,.ws-btn.is-active,.ui-btn.is-active{border-color:color-mix(in srgb, var(--results-accent) 45%, var(--line));background:color-mix(in srgb, var(--results-accent) 10%, var(--surface))}.ws-coverage-metric--todo{--sec:var(--pg-ochre,var(--warning));border-color:color-mix(in oklab, var(--sec) 26%, var(--line));background:color-mix(in oklab, var(--sec) 8%, var(--surface))}.ws-coverage-metric--todo strong{color:color-mix(in oklab, var(--pg-ochre,var(--warning)) 70%, var(--ink-900))}.ws-coverage-metric--todo.is-active{border-color:var(--pg-ochre,var(--warning));background:color-mix(in oklab, var(--pg-ochre,var(--warning)) 12%, var(--surface));box-shadow:0 0 0 2px color-mix(in oklab, var(--pg-ochre,var(--warning)) 16%, transparent)}.ws-coverage-metric--usable{border-color:color-mix(in srgb, var(--success) 24%, var(--line));background:color-mix(in srgb, var(--success-50) 70%, var(--surface))}.ws-coverage-metric--usable strong{color:var(--success)}.ws-coverage-metric--usable.is-active{border-color:var(--success);background:var(--success-50);box-shadow:0 0 0 2px color-mix(in srgb, var(--success) 14%, transparent)}.ws-coverage-metric--onsite{border-color:color-mix(in srgb, var(--warning) 26%, var(--line));background:color-mix(in srgb, var(--warning-50) 75%, var(--surface))}.ws-coverage-metric--onsite strong{color:var(--warning)}.ws-coverage-metric--onsite.is-active{border-color:var(--warning);background:var(--warning-50);box-shadow:0 0 0 2px color-mix(in srgb, var(--warning) 16%, transparent)}.ws-coverage-metric--insufficient{border-color:color-mix(in srgb, var(--danger) 26%, var(--line));background:color-mix(in srgb, var(--danger-50,var(--warning-50)) 70%, var(--surface))}.ws-coverage-metric--insufficient strong{color:var(--danger)}.ws-coverage-metric--insufficient.is-active{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--surface));box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 14%, transparent)}.ws-coverage-metric small{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ws-btn--level-neutral.is-active{background:var(--ink-700);border-color:var(--ink-700);color:var(--white)}.ws-btn--level-ok{color:var(--success);border-color:color-mix(in srgb, var(--success) 28%, white);background:color-mix(in srgb, var(--success-50) 70%, white)}.ws-btn--level-ok.is-active{background:var(--success);border-color:var(--success);color:var(--on-fill,#fff)}.ws-btn--level-hint{color:var(--info);border-color:color-mix(in srgb, var(--info) 28%, white);background:color-mix(in srgb, var(--info-50) 70%, white)}.ws-btn--level-hint.is-active{background:var(--info);border-color:var(--info);color:var(--on-fill,#fff)}.ws-btn--level-need{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 30%, white);background:color-mix(in srgb, var(--warning-50) 75%, white)}.ws-btn--level-need.is-active{background:var(--warning);border-color:var(--warning);color:var(--on-fill,#fff)}.ws-btn--level-blank{color:var(--ink-500);border-color:var(--line);background:var(--surface-muted)}.ws-btn--level-blank.is-active{background:var(--ink-500);border-color:var(--ink-500);color:var(--white)}.ws-btn--level-reset{color:var(--ink-500);text-underline-offset:2px;box-shadow:none;background:0 0;border-color:#0000;text-decoration:underline}.ws-btn--level-reset:hover:not(:disabled){background:var(--surface-muted);color:var(--ink-900)}.ws-btn--mode-auto{color:var(--brand-navy);border-color:color-mix(in srgb, var(--brand) 28%, var(--line));background:var(--brand-50)}.ws-btn--mode-auto.is-active{background:var(--brand);border-color:var(--brand);color:var(--on-brand,#fff);box-shadow:inset 3px 0 0 var(--seal-ink,var(--seal))}.ws-btn--mode-expert{color:color-mix(in srgb, var(--fn-verify) 82%, #7c2d12);border-color:color-mix(in srgb, var(--fn-verify) 28%, white);background:color-mix(in srgb, var(--fn-verify-soft) 60%, white)}.ws-btn--mode-expert.is-active{background:var(--fn-verify);border-color:var(--fn-verify);color:var(--on-fill,#fff);box-shadow:inset 0 1px #ffffff1f}.ws-coverage-level-filters{flex-wrap:wrap}.ws-coverage-item.is-need{border-left:3px solid var(--danger);padding-left:10px}.ws-coverage-item--onsite.is-need{border-left-color:var(--pg-ochre,var(--warning))}.ws-coverage-item.is-compact{padding-top:8px;padding-bottom:8px}.ws-clause-reason{color:var(--ink-800,var(--text));margin:4px 0 6px;font-size:13px;line-height:1.5}.ws-onsite-hint{--sec:var(--pg-ochre,var(--warning));border-left:2px solid var(--sec);color:color-mix(in oklab, var(--sec) 45%, var(--ink-900));margin:0 0 8px;padding-left:10px;font-size:13px;line-height:1.5}.ws-clause-quotes{margin:6px 0 8px}.ws-clause-quotes li{color:var(--ink-800,var(--text));font-size:13px;line-height:1.55}.ws-spec-fold{margin:6px 0;font-size:13px}.ws-spec-fold>summary{cursor:pointer;color:var(--text-secondary)}.ws-clause-issue-body{margin:6px 0;font-size:13px;line-height:1.5}.ws-clause-verify{border-top:1px dashed color-mix(in oklab, var(--pg-ochre,var(--line)) 22%, var(--line));margin-top:8px;padding-top:8px}.ws-obs-flag{border-radius:999px;margin-right:4px;padding:1px 6px;font-size:12px;display:inline-block}.ws-obs-flag.ok{background:var(--success-50);color:var(--success)}.ws-obs-flag.bad{background:var(--danger-50);color:var(--danger)}.ws-issue{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:8px;padding:12px}.ws-issue.is-focused{outline:2px solid var(--fn-process);outline-offset:1px}.ws-issue__actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ws-banner{border-radius:var(--radius-sm);background:var(--warning-50);border:1px solid var(--warning-200);color:var(--warning);flex-wrap:wrap;align-items:center;gap:8px;margin:10px 16px 0;padding:9px 12px;font-size:13px;display:flex}.ws-banner--error{background:var(--danger-50);border-color:var(--danger-200);color:var(--danger-700)}.ws-banner--ok{background:var(--success-50);border-color:var(--success-200);color:var(--success)}.ws-inline-toast{text-align:center;width:100%;color:var(--ink-800);background:0 0;border:none;margin:10px 0 0;padding:0;font-size:13px;line-height:1.55}.ws-inline-toast--error{color:var(--danger-700)}.ws-banner--warn{background:var(--warning-50);border-color:var(--warning-200);color:var(--ink-900)}.ws-banner--info{background:var(--brand-50);border-color:var(--line);color:var(--ink-700)}.export-blocker-detail{width:100%;color:inherit;margin:0;font-size:13px}.export-blocker-detail>summary{cursor:pointer;font-weight:600}.export-blocker-summary{margin:6px 0 4px}.export-blocker-list{margin:4px 0 4px 16px;padding:0}.export-blocker-list li{margin:2px 0}.export-blocker-more{opacity:.85;margin:2px 0;font-style:italic}.export-blocker-hint-action{margin:6px 0 0;font-weight:600}.ws-doc-export-bar .export-blocker-detail{flex:100%;margin-top:4px}.ws-toast-stack{z-index:1200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:14px;right:16px}.ws-toast{pointer-events:auto;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);max-width:420px;color:var(--text);align-items:center;gap:12px;padding:10px 12px 10px 16px;font-size:13px;line-height:1.5;animation:.18s ease-out ws-toast-in;display:flex;box-shadow:0 10px 28px #0f172a2e}.ws-toast--ok{background:var(--success-50);border-color:var(--success-200)}.ws-toast--error{background:var(--danger-50);border-color:var(--danger-200)}.ws-toast__text{flex:1;min-width:0}.ws-toast__close{width:22px;height:22px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;font-size:15px;line-height:1}.ws-toast__close:hover{color:var(--text);background:#0f172a14}@keyframes ws-toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.ws-need-guide strong{color:var(--warning);margin-bottom:4px;display:block}.ws-need-guide p{color:var(--ink-700);margin:3px 0}.ws-need-guide b{color:var(--ink-900)}.ws-pane--results .ws-lede{margin:0 0 12px}.ws-lede{--sec:var(--pg-celadon);color:var(--text-secondary);border-left:2px solid var(--sec);margin:0 0 12px;padding-left:10px;font-size:13px;line-height:1.6}.ws-material-list{--sec:var(--pg-celadon);border:1px solid color-mix(in oklab, var(--sec) 16%, var(--line));background:color-mix(in oklab, var(--sec) 5%, var(--surface));border-radius:12px;margin-bottom:12px;overflow:hidden}.ws-material-list__head{border-bottom:1px solid color-mix(in oklab, var(--sec) 14%, var(--line));background:color-mix(in oklab, var(--sec) 8%, var(--surface));justify-content:space-between;align-items:baseline;gap:12px;padding:10px 14px;display:flex}.ws-material-list__head h3{letter-spacing:.02em;color:color-mix(in oklab, var(--sec) 42%, var(--ink-900));margin:0;font-size:13px;font-weight:600}.ws-material-list__head span{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:12px}.ws-material-list .ws-empty{margin:12px}.ws-material{border-bottom:1px solid color-mix(in oklab, var(--sec,var(--line)) 12%, var(--line));grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.ws-material:last-child{border-bottom:none}.ws-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.ws-list{margin:0;padding-left:18px}.ws-tree{background:var(--surface);border:1px solid color-mix(in srgb, var(--results-accent) 12%, var(--line));border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:10px;padding:10px 12px}.ws-tree>summary{cursor:pointer;color:color-mix(in srgb, var(--results-accent) 40%, var(--ink-900));font-weight:700}.ws-coverage-item,.ws-claim,.ws-doc-section{border-top:1px solid color-mix(in srgb, var(--results-accent) 10%, var(--line));padding:9px 2px}.ws-pane--results .ws-pane__body{background:0 0}.ws-pane--results .ws-card{background:var(--surface);color:var(--text);border-color:color-mix(in srgb, var(--results-accent) 12%, var(--line));border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.ws-pane--results .ws-card h3{color:color-mix(in srgb, var(--results-accent) 35%, var(--ink-900))}.ws-pre{white-space:pre-wrap;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.ws-modal{background:color-mix(in srgb, var(--brand-navy) 55%, transparent);z-index:40;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.ws-modal__card{background:var(--surface);border-radius:var(--radius-md);width:min(920px,100%);max-height:85vh;box-shadow:var(--shadow-lg);padding:14px;overflow:auto}.ws-modal__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.ws-issues.is-expanded{z-index:30;background:var(--canvas);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px;position:fixed;inset:12px;overflow:auto}.ws-issues.is-contrast{color:#fff;background:#000}.ws-issues.is-contrast .ws-card,.ws-issues.is-contrast .ws-issue{color:#fff;background:#111;border-color:#444}.ws-rating-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.ws-rating-item,.ws-comparison-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-tint);padding:10px}.ws-comparison-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.ws-workflow{border:1px solid color-mix(in srgb, var(--fn-process) 22%, var(--line));border-left:4px solid var(--fn-process);background:var(--fn-process-soft);box-shadow:none;border-radius:12px;padding:12px}.ws-workflow__note,.ws-workflow__hint{color:var(--text-secondary);margin:8px 0 0;font-size:.9rem}.ws-workflow h3{color:color-mix(in srgb, var(--fn-process) 55%, var(--ink-900))}.ws-workflow-stages{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.ws-workflow-stage{background:var(--surface-tint);color:var(--text-secondary);border:1px solid color-mix(in srgb, var(--fn-process) 18%, var(--line));border-radius:8px;padding:3px 9px;font-size:12px}.ws-workflow-stage.is-done{background:var(--fn-process-soft);color:var(--fn-process);border-color:#0000}.ws-workflow-stage.is-active{background:var(--seal-soft);color:var(--seal);border-color:var(--seal);box-shadow:inset 3px 0 0 var(--seal);font-weight:600}.ws-progress{gap:6px;margin:8px 0 4px;display:grid}.ws-progress__bar{background:color-mix(in srgb, var(--fn-process-soft) 70%, white);border-radius:999px;height:6px;overflow:hidden}.ws-progress__bar>i{border-radius:inherit;background:var(--fn-process);height:100%;transition:width .25s;display:block}.report-paper{background:var(--surface);border:1px solid var(--line)}@media (width<=1100px){.ws-page{height:auto;min-height:100vh;overflow:auto}.ws-layout{grid-template-columns:1fr}.ws-stage.is-assistant-open .ws-stage__work{grid-template-rows:minmax(280px,1fr) 280px;grid-template-columns:1fr}.ws-pane--results,.ws-assistant-drawer{min-height:280px;max-height:none}.ws-pane--sidebar{min-height:320px}}.ws-theme-mode-select{color:var(--sidebar-text);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.ws-theme-mode-select select{border:1px solid var(--sidebar-border);background:var(--sidebar-bg-elevated);max-width:140px;color:var(--sidebar-text-strong);font:inherit;border-radius:6px;flex:1;padding:4px 8px}html[data-theme=dark] .ws-page{--ws-sidebar-grad:linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-mid) 100%)}html[data-theme=dark] .ws-pane--chat{background:var(--chat-bg)}html[data-theme=dark] .ws-assistant-drawer:before{background:var(--pg-celadon)}html[data-theme=dark] .ws-pane--results{background:var(--results-bg)}html[data-theme=dark] .ws-kpi{background:var(--surface);border-color:var(--line);color:var(--text)}html[data-theme=dark] .ws-assistant-dock{background:color-mix(in oklab, var(--pg-celadon) 8%, var(--chat-surface))}html[data-theme=dark] .ws-progress__bar{background:color-mix(in srgb, var(--fn-process-soft) 70%, var(--surface))}html[data-theme=dark] .ws-pane--sidebar{box-shadow:none}.ws-doc-paper{background:var(--surface);border:1px solid color-mix(in srgb, var(--fn-export) 14%, var(--line));color:var(--text);border-radius:12px;padding:18px 20px;box-shadow:0 1px 2px #0f172a08}.ws-doc-paper__title{font-family:var(--font-display,"Noto Serif SC", serif);color:color-mix(in srgb, var(--fn-export) 35%, var(--ink-900));margin:0 0 8px;font-size:20px;font-weight:600}.ws-doc-paper__meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.ws-doc-badge{border:1px solid var(--line);background:var(--surface-tint);color:var(--text-secondary);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;display:inline-flex}.ws-doc-badge--ok{background:var(--success-50);border-color:var(--success-200);color:var(--success)}.ws-doc-badge--warn{background:var(--warning-50);border-color:var(--warning-200);color:var(--warning)}.ws-doc-badge--muted{background:var(--surface-muted,var(--surface-tint));color:var(--text-secondary)}.ws-doc-chapter{font-family:var(--font-display,"Noto Serif SC", serif);color:var(--text);margin:16px 0 8px;font-size:16px;font-weight:600}.ws-doc-export-bar{z-index:5;background:color-mix(in srgb, var(--results-bg) 88%, var(--surface));border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding:10px 0 12px;display:flex;position:sticky;top:0}.ws-report-subtabs{border-bottom:1px solid var(--line);gap:0;margin-bottom:12px;display:flex}.ws-report-subtab{appearance:none;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px}.ws-report-subtab:focus-visible{outline:2px solid var(--results-accent);outline-offset:-2px}.ws-coverage-metric:focus-visible,.ws-module__head:focus-visible{outline:2px solid var(--results-accent);outline-offset:2px}.ws-report-subtab.is-active{color:var(--results-accent);border-bottom-color:var(--results-accent);font-weight:600}.ws-new-session-form{border:1px solid color-mix(in srgb, var(--sidebar-active) 28%, var(--sidebar-border));background:var(--sidebar-bg-elevated);border-radius:10px;margin-bottom:12px;padding:12px}.ws-new-session-form .ws-form-row label,.ws-new-session-form .ws-form-row legend,.ws-new-session-form .ws-check{color:var(--sidebar-text-strong)}.ws-new-session-form input,.ws-new-session-form select{background:var(--sidebar-bg);color:var(--sidebar-text-strong);border-color:var(--sidebar-border)}.ws-dev-seed{color:#fff;background:#047857;border:1px solid #065f46;width:100%;margin-top:8px}.ws-dev-seed:hover:not(:disabled){filter:brightness(1.05)}.ws-dev-seed-note{color:var(--warning);margin:8px 0 0;font-size:12px}.ws-issue{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:12px;margin-bottom:10px;padding:12px 14px}.ws-issue.is-focused{border-color:color-mix(in srgb, var(--fn-verify) 45%, var(--line));box-shadow:0 0 0 2px color-mix(in srgb, var(--fn-verify) 16%, transparent)}.ws-issue__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.ws-issue__tags{flex-wrap:wrap;gap:6px;display:flex}.ws-issue__assist{margin-top:8px}.ws-issue__assist summary{cursor:pointer;color:var(--text-secondary);font-size:13px}.ws-assist-row{grid-template-columns:88px 1fr;gap:8px;padding:4px 0;font-size:13px;display:grid}.ws-assist-k{color:var(--text-secondary)}.ws-status-badge{border:1px solid var(--line);background:var(--surface-tint);color:var(--text-secondary);border-radius:999px;align-items:center;padding:1px 7px;font-size:12px;display:inline-flex}.ws-status-badge--green{background:var(--success-50);border-color:var(--success-200);color:var(--success)}.ws-status-badge--amber{background:var(--warning-50);border-color:var(--warning-200);color:var(--warning)}.ws-status-badge--red{background:var(--danger-50);border-color:var(--danger-200);color:var(--danger)}.ws-status-badge--gray{background:var(--surface-tint);color:var(--text-secondary)}.ws-gap-tag{color:var(--warning);margin:4px 0;font-size:12px;display:inline-block}.ws-evidence-funnel{--sec:var(--pg-indigo,var(--brand));border:1px solid color-mix(in oklab, var(--sec) 16%, var(--line));border-left:3px solid var(--sec);border-radius:var(--radius,12px);background:color-mix(in oklab, var(--sec) 5%, var(--surface));margin:10px 0;padding:10px 14px}.ws-evidence-funnel h4{letter-spacing:.02em;color:color-mix(in oklab, var(--sec) 70%, var(--ink-900));margin:0 0 8px;font-size:13px}.ws-funnel__layers{gap:8px;margin:0;padding:0;list-style:none;display:grid}.ws-funnel__layer{border-bottom:1px solid color-mix(in oklab, var(--sec) 10%, var(--line));grid-template-columns:minmax(88px,auto) minmax(56px,auto) minmax(64px,1fr);grid-template-areas:"label count meter""hint hint hint";align-items:center;gap:4px 10px;padding-bottom:8px;display:grid}.ws-funnel__layer:last-child{border-bottom:none;padding-bottom:0}.ws-funnel__label{color:var(--ink-900);grid-area:label;font-size:13px;font-weight:600}.ws-funnel__count{font-size:var(--font-lg,18px);font-variant-numeric:var(--font-tabular,tabular-nums);color:color-mix(in oklab, var(--sec) 78%, var(--ink-900));grid-area:count;line-height:1.1}.ws-funnel__count small{color:var(--text-secondary);font-size:12px;font-weight:400}.ws-funnel__meter{background:color-mix(in oklab, var(--sec) 16%, var(--line));border-radius:999px;grid-area:meter;height:4px;display:block;overflow:hidden}.ws-funnel__meter i{background:var(--sec);border-radius:999px;height:100%;display:block}.ws-funnel__hint{color:var(--text-secondary);grid-area:hint;font-size:12px;line-height:1.55}.ws-funnel__layer--independent .ws-funnel__count{color:var(--pg-cinnabar,var(--danger))}.ws-funnel__layer--independent .ws-funnel__meter i{background:var(--pg-cinnabar,var(--danger))}.ws-funnel__summary,.ws-funnel__note{color:var(--ink-900);margin:8px 0 0;font-size:13px;line-height:1.65}.ws-funnel__summary{font-weight:600}.ws-funnel__note--conflict{border-radius:var(--radius-sm,8px);background:color-mix(in oklab, var(--warning) 8%, var(--surface));border:1px solid color-mix(in oklab, var(--warning) 20%, var(--line));padding:8px 10px}.ws-funnel__breakdown{margin-top:8px;font-size:12px}.ws-funnel__breakdown summary{cursor:pointer;color:color-mix(in oklab, var(--sec) 70%, var(--ink-900))}.ws-funnel__breakdown .ws-list{word-break:break-all}.ws-gap-summary{border-color:color-mix(in srgb, var(--warning) 26%, var(--line))}.ws-gap-summary .ws-tree{box-shadow:none;margin-top:8px}.ws-gap-domain{margin:6px 0}.ws-gap-domain>p{margin:0 0 2px;font-weight:600}.ws-evidence-grid{gap:6px;margin:8px 0;display:grid}.ws-evidence{background:var(--surface-tint);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px}.ws-module{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:12px}.ws-module__head{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;list-style:none;display:flex}.ws-module__head::-webkit-details-marker{display:none}.ws-module__head:after{content:"▾";color:var(--text-secondary);margin-left:auto;transition:transform .15s}details.ws-module:not([open])>.ws-module__head:after{transform:rotate(-90deg)}.ws-module--static>.ws-module__head{cursor:default}.ws-module--static>.ws-module__head:after{content:none}.ws-module__step{background:var(--results-accent);width:22px;height:22px;color:var(--on-fill,#fff);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.ws-module__title{color:var(--text);font-weight:600}.ws-module__desc{color:var(--text-secondary);font-size:12px}.ws-module__body{border-top:1px solid var(--line);padding:12px 14px 14px}.ws-module__subhead{color:var(--text);margin:14px 0 8px;font-size:13px}.ws-doc-gen-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.ws-coverage-item__badges{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.ws-tag{background:var(--surface-tint);border:1px solid var(--line);color:var(--text-secondary);border-radius:999px;padding:1px 8px;font-size:12px;display:inline-block}.ws-tag--code{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.ws-ev-count{color:var(--text-secondary);margin-left:8px;font-size:12px}.ws-issue-domain{margin-bottom:18px}.ws-issue-domain__head{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);z-index:2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:8px 12px;display:flex;position:sticky;top:0}.ws-issue-domain__head h4{margin:0;font-size:14px}.ws-issue-domain__head .ws-muted{margin-left:6px;font-size:12px;font-weight:400}.ws-issue-domain__batch{flex-wrap:wrap;gap:8px;display:flex}.ws-opinion-editor{--ws-edit-human:var(--pg-ochre);--ws-edit-ai:var(--pg-celadon)}.ws-opinion-editor__desktop-hint{background:var(--warning-50);color:var(--warning);border-radius:10px;margin:0 0 12px;padding:12px 14px;font-size:.95rem;font-weight:600}.ws-opinion-editor.is-narrow-locked .ws-op-toolbar,.ws-opinion-editor.is-narrow-locked .ws-op-paper{pointer-events:none;opacity:.55}.ws-op-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.ws-op-legend{align-items:center;gap:10px;font-size:12px;display:inline-flex}.ws-op-legend__item{font-weight:600}.ws-op-status{color:var(--text-secondary);align-items:center;gap:8px;margin-left:auto;font-size:12.5px;display:inline-flex}.ws-op-paper{padding:24px 30px}.ws-op-head{border-bottom:1px solid var(--line);text-align:center;margin-bottom:14px;padding-bottom:12px}.ws-op-head h3{font-family:var(--font-display,"Noto Serif SC", serif);color:var(--text);margin:0 0 8px;font-size:20px}.ws-op-intro{color:var(--text-secondary);text-align:justify;margin:0;font-size:13.5px;line-height:1.85}.ws-op-section{margin-bottom:14px}.ws-op-item{margin-bottom:12px}.ws-op-heading{border-radius:var(--radius-sm);width:100%;font-family:var(--font-display,"Noto Serif SC", serif);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;padding:6px 8px;font-weight:700;display:block;position:relative}.ws-op-heading:hover{border-color:var(--brand-600);background:var(--bg)}.ws-op-h1{margin:20px 0 8px;font-size:17px}.ws-op-h2{margin:14px 0 6px;font-size:15px}.ws-op-block{margin-bottom:10px;position:relative}.ws-op-block:after,.ws-op-heading:after{content:"✎ 点击编辑";border:1px solid var(--line);background:var(--surface);color:var(--text-secondary);opacity:0;pointer-events:none;border-radius:999px;padding:0 7px;font-size:12px;line-height:1.7;transition:opacity .15s;position:absolute;top:2px;right:6px}.ws-op-block:hover:after,.ws-op-heading:hover:after{opacity:1}.ws-op-para{border-radius:var(--radius-sm);color:var(--text);text-align:justify;white-space:pre-wrap;cursor:pointer;border:1px solid #0000;margin:0;padding:6px 8px;font-size:14px;line-height:1.95}.ws-op-para:hover{border-color:var(--brand-600);background:var(--bg)}.ws-op-para--rec{color:var(--text-secondary)}.ws-op-para.is-human-edited,.ws-op-heading.is-human-edited,.ws-op-legend__item.is-human-edited,.ws-op-flag.is-human-edited{color:var(--ws-edit-human)}.ws-op-para.is-ai-edited,.ws-op-heading.is-ai-edited,.ws-op-legend__item.is-ai-edited,.ws-op-flag.is-ai-edited{color:var(--ws-edit-ai)}.ws-op-block__foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;padding-left:8px;font-size:11.5px;display:flex}.ws-op-flag{white-space:nowrap;border:1px solid;border-radius:999px;padding:1px 8px;font-size:11.5px}.ws-op-flag.is-pending{color:var(--warning)}.ws-op-cite{border:1px solid var(--line);background:var(--bg);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:1px 10px;font-size:11.5px}.ws-op-evidence{border-left:3px solid var(--line);background:var(--bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:6px 0 0;padding:8px 12px;font-size:12.5px;line-height:1.7;list-style:none}.ws-op-edit{border:1px solid var(--brand-600);border-radius:var(--radius-sm);background:var(--surface);margin:8px 0 12px;padding:10px 12px}.ws-op-edit textarea,.ws-op-edit__heading{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);resize:vertical;padding:8px 10px;font-size:14px;line-height:1.85}.ws-op-edit__heading{font-family:var(--font-display,"Noto Serif SC", serif);font-size:16px;font-weight:700}.ws-op-edit__bar{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.ws-op-edit__flag{color:var(--text-secondary);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.ws-op-edit__evidence{margin-top:8px;font-size:12.5px}.ws-op-edit__evidence summary{cursor:pointer;color:var(--text-secondary)}.ws-op-candidates{margin:4px 0 0;padding:0;list-style:none}.ws-op-candidates li{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:flex-start;gap:8px;padding:5px 0;display:flex}.ws-editor-overlay{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);margin-top:14px;padding:14px 16px}.ws-editor-overlay__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.ws-editor-overlay__head h4{margin:0;font-size:14px}@media (width<=960px){.ws-op-paper{padding:18px 16px}}.ws-job-progress{--pg:var(--pg-celadon,var(--accent));border:1px solid color-mix(in oklab, var(--pg) 20%, var(--line));border-left:2px solid var(--pg);border-radius:var(--radius-sm);background:color-mix(in oklab, var(--pg) 6%, var(--surface));margin:10px 0 12px;padding:10px 12px}.ws-job-progress__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.ws-job-progress__title{letter-spacing:.04em;color:var(--text-secondary);font-size:12px}.ws-job-progress__pct{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;color:color-mix(in oklab, var(--pg) 78%, var(--text));font-size:20px}.ws-job-progress__bar{background:color-mix(in oklab, var(--pg) 16%, var(--ink-100));border-radius:999px;height:6px;margin:8px 0;position:relative;overflow:hidden}.ws-job-progress__bar>i{border-radius:inherit;background:var(--pg);height:100%;transition:width .4s;display:block}.ws-job-progress__bar.is-indeterminate>i{animation:1.4s ease-in-out infinite ws-job-progress-slide;width:35%!important}@keyframes ws-job-progress-slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}.ws-job-progress__stage{color:var(--text);margin:0;font-size:13px}.ws-job-progress__count{font-variant-numeric:tabular-nums;color:color-mix(in oklab, var(--pg) 70%, var(--text));background:color-mix(in oklab, var(--pg) 14%, transparent);border-radius:999px;margin-left:8px;padding:1px 6px;font-size:11px}.ws-job-progress__msg,.ws-job-progress__meta,.ws-job-progress__note{color:var(--text-secondary);margin:4px 0 0;font-size:12px}.ws-job-progress__meta{font-variant-numeric:tabular-nums}.ws-job-progress__note{opacity:.85;font-style:normal}.ws-job-progress__error{border-left:2px solid var(--danger);border-radius:var(--radius-sm);background:color-mix(in oklab, var(--danger) 8%, var(--surface));color:var(--danger);margin:8px 0 10px;padding:8px 10px;font-size:12px}@media (prefers-reduced-motion:reduce){.ws-job-progress__bar>i{transition:none}.ws-job-progress__bar.is-indeterminate>i{opacity:.5;animation:none;width:100%!important}}.ws-coverage-head{--sec:var(--pg-ochre);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.ws-coverage-head h3{font-family:var(--font-display);letter-spacing:.02em;margin:0}.ws-coverage-head h3:after{content:"";background:var(--seal);border-radius:2px;width:32px;height:2px;margin-top:8px;display:block}.ws-query{--sec:var(--pg-ochre);border:1px solid color-mix(in oklab, var(--sec) 16%, var(--line));border-radius:var(--radius-md);border-top:3px solid var(--sec);background:color-mix(in oklab, var(--sec) 6%, var(--surface));flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 1.25rem;margin:0 0 12px;padding:14px 16px 16px;display:flex}.ws-query__fields{flex-wrap:wrap;flex:16rem;gap:.85rem 1.15rem;display:flex}.ws-query__field{gap:.35rem;min-width:10.5rem;display:grid}.ws-query__label{color:var(--ink-700);font-size:12px}.ws-query input,.ws-query select{border:1px solid var(--border,var(--line));border-radius:var(--radius-md);background:var(--surface);min-width:10.5rem;min-height:44px;color:var(--ink-900);padding:8px 12px}.ws-query input:focus,.ws-query select:focus{outline:2px solid var(--brand);outline-offset:1px}.ws-query__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ws-work-tabs{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.ws-work-tab{border:1px solid color-mix(in oklab, var(--pg-celadon) 18%, var(--line));border-radius:var(--radius-md);background:var(--surface);min-height:44px;color:var(--ink-800);font:inherit;cursor:pointer;padding:8px 14px}.ws-work-tab.is-active{border-color:color-mix(in oklab, var(--pg-celadon) 42%, var(--line));background:color-mix(in oklab, var(--pg-celadon) 10%, var(--surface));box-shadow:inset 0 -2px 0 var(--pg-celadon);color:var(--ink-900)}.ws-work-tab small{font-variant-numeric:tabular-nums;color:var(--text-secondary);margin-left:6px}.ws-work-confirm{border-top:1px dashed color-mix(in oklab, var(--pg-ochre) 22%, var(--line));margin-top:10px;padding-top:10px}.ws-work-confirm__label{color:var(--ink-800);margin-bottom:8px;font-size:13px;display:block}.ws-work-confirm__btns,.ws-work-confirm__sub{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.ws-work-confirm__sub{border-radius:var(--radius-sm);background:color-mix(in oklab, var(--pg-ochre) 8%, var(--surface));border:1px solid color-mix(in oklab, var(--pg-ochre) 16%, var(--line));margin-top:8px;padding:8px 10px}.ws-history-table{border-collapse:collapse;width:100%;font-size:13px}.ws-history-table th,.ws-history-table td{text-align:left;border-bottom:1px solid color-mix(in oklab, var(--pg-indigo) 14%, var(--line));vertical-align:top;padding:8px 10px}.ws-history-table thead th{background:color-mix(in oklab, var(--pg-indigo) 8%, var(--surface));font-weight:600}.ws-history-table tbody tr:nth-child(2n){background:color-mix(in oklab, var(--pg-indigo) 3%, var(--surface))}.ws-revoke-copy{text-align:center;margin:1rem 0 .35rem;line-height:1.7}.ws-material-link{color:var(--pg-indigo,#2f4d7a);word-break:break-all;text-decoration:underline}.ws-material-link:hover{color:var(--brand,#24344c)}:root{--p-navy-950:oklch(20% .042 255);--p-navy-900:oklch(26% .05 255);--p-navy-800:oklch(32% .048 254);--p-navy-700:oklch(38% .05 252);--p-teal-700:oklch(42% .055 195);--p-teal-600:oklch(46% .06 195);--p-teal-500:oklch(52% .065 192);--p-teal-100:oklch(94% .018 195);--p-teal-50:oklch(97.5% .01 195);--p-blue-500:oklch(46% .08 250);--p-blue-400:oklch(56% .08 248);--p-blue-100:oklch(94% .018 250);--p-blue-50:oklch(97.5% .01 250);--p-ink-900:oklch(24% .028 255);--p-ink-700:oklch(38% .022 255);--p-ink-500:oklch(50% .016 255);--p-ink-300:oklch(80% .01 250);--p-gray-100:oklch(96% .006 250);--p-paper:oklch(97.2% .007 250);--p-white:oklch(99.5% .002 250);--p-ok:oklch(48% .09 155);--p-warn:oklch(58% .11 75);--p-danger:oklch(52% .14 25);--p-seal:oklch(50% .155 28);--s-bg-canvas:var(--p-paper);--s-bg-surface:var(--p-white);--s-bg-tint:var(--p-blue-50);--s-text:var(--p-ink-900);--s-text-muted:var(--p-ink-500);--s-border:oklch(90% .012 250);--s-brand:var(--p-navy-800);--s-brand-strong:var(--p-navy-950);--s-accent:var(--p-teal-600);--s-seal:var(--p-seal);--s-header:linear-gradient(180deg, oklch(24% .04 255) 0%, oklch(26% .038 252) 100%);--ink-900:#1a2433;--ink-700:#3a4658;--ink-600:#4d5b70;--ink-500:#5a6980;--ink-400:#7c8898;--ink-300:#c5ccd6;--ink-100:#eef1f5;--canvas:#f3f5f7;--white:#fbfcfd;--surface:var(--white);--surface-tint:#f4f6f9;--surface-muted:#f6f7f9;--line:#e2e7ee;--border:#d8dee7;--brand:#24344c;--brand-600:#1b283b;--brand-500:#24344c;--brand-700:#1b283b;--brand-50:#eef2f7;--brand-100:#e4eaf2;--brand-200:#cfd8e4;--brand-300:#dbe3ee;--brand-800:#152033;--brand-navy:#1e2d44;--brand-blue:#3d5a7a;--brand-blue-2:#3d5a7a;--accent:#376b66;--accent-50:#eef6f5;--seal:#a33b32;--seal-soft:#f8eeec;--success:#2f6b52;--success-50:#eaf4ee;--success-200:#b7d4c4;--ok:var(--success);--warning:#8a5a12;--warning-50:#f8f1e4;--warning-200:#e6d3a8;--warning-300:#ddc48a;--warning-400:#c49a45;--warning-25:#fbf7ef;--warn:var(--warning);--danger:#a33b32;--danger-25:#fdf8f7;--danger-50:#f8eeec;--danger-100:#efd4d1;--danger-200:#e0b3ae;--danger-300:#c98c86;--danger-700:#7e2d27;--danger-900:#5c221e;--info:#3d5a7a;--info-50:#eef2f7;--on-brand:#fff;--on-fill:#fff;--on-gold:#1b1b1f;--on-paper:#1e2d44;--seal-ink:var(--seal);--pg-ink:var(--brand);--pg-indigo:var(--info);--pg-celadon:var(--accent);--pg-ochre:var(--warning);--pg-moss:var(--success);--pg-cinnabar:var(--seal);--sec-wash:4%;--sec-zebra:2%;--sec-hover:5%;--sec-line:14%;--sec-line-strong:19%;--sec-edge:22%;--sec-head:8%;--sec-head-2:3%;--sec-head-text:55%;--sec-ring:16%;--sec-fade:8%;--map-out:6%;--map-land-a:20%;--map-land-b:24%;--map-coast:42%;--map-grat:13%;--map-edge:66%;--map-dot-none:40%;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius:8px;--radius-md:10px;--radius-lg:12px;--control-h:44px;--page-max:1680px;--focus-ring:2px solid var(--brand-blue-2);--shadow-sm:0 1px 2px oklch(28% .03 255/.05);--shadow-md:0 8px 24px oklch(28% .035 255/.07);--shadow-lg:0 18px 40px oklch(26% .04 255/.1);--shadow:0 2px 8px oklch(28% .03 255/.06);--font-xs:12px;--font-sm:14px;--font-md:16px;--font-lg:18px;--font-xl:20px;--font-2xl:24px;--font-3xl:32px;--font-scale:1;--font-tabular:tabular-nums;--bp-sm:768px;--bp-md:1100px;--bp-lg:1440px;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--font-body:"Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-data:"IBM Plex Sans", "Noto Sans SC", "PingFang SC", sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.15s;--dur-base:.25s;--bg:var(--canvas);--sidebar-bg:#172033;--sidebar-bg-mid:#1b263c;--sidebar-bg-elevated:#243044;--sidebar-text:#b7c2d3;--sidebar-text-strong:#f3f6fa;--sidebar-active:#d7c4a3;--sidebar-active-soft:#d7c4a329;--sidebar-border:#bac6d624;--on-dark-ink:#a5acc3;--on-dark-indigo:#89c5f7;--on-dark-celadon:#82d1ce;--on-dark-ochre:#e6c183;--on-dark-moss:#8cc98e;--on-dark-cinnabar:#e38377;--chat-bg:#f1f3f6;--chat-surface:#f8f9fb;--chat-rail:#d5dbe4;--results-bg:#f5f6f8;--results-accent:#376b66;--results-accent-soft:#eef6f5;--results-rail:#c9d6d4;--agent-bubble:#eef2f6;--user-bubble:#24344c;--user-text:#fff;--text:var(--ink-900);--text-secondary:var(--ink-500);--fn-process:#3d5a7a;--fn-process-soft:#eef2f7;--fn-verify:#8a5a12;--fn-verify-soft:#f8f1e4;--fn-field:#376b66;--fn-field-soft:#eef6f5;--fn-export:#1e2d44;--fn-export-soft:#eef2f7;--fn-danger:#a33b32;--fn-danger-soft:#f8eeec;--toast-bg:#102a5d;--toast-text:#fff;--toast-line:transparent}html.elder-mode{--font-scale:1.125}html.elder-mode-lg{--font-scale:1.25}html.elder-mode,html.elder-mode-lg{--ink-900:#121926;--ink-700:#243044;--line:#c5cedd;--border:#b8c2d4}html[data-theme=dark].elder-mode,html[data-theme=dark].elder-mode-lg{--ink-700:#e8eaed;--ink-600:#ccd0d5;--ink-500:#b9bdc4;--line:#41454c;--border:#6e737c}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:focus-visible{outline:2px solid var(--brand-blue-2);outline-offset:3px}.font-tabular,.num-tabular{font-variant-numeric:var(--font-tabular,tabular-nums)}:root,html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--p-navy-950:oklch(12.8% .004 268);--p-navy-900:oklch(15.5% .004 268);--p-navy-800:oklch(20.5% .005 268);--p-navy-700:oklch(30% .006 268);--p-teal-700:oklch(72% .075 192);--p-teal-600:oklch(77% .078 192);--p-teal-500:oklch(81% .078 192);--p-teal-100:oklch(23.6% .024 192);--p-teal-50:oklch(20% .018 192);--p-blue-500:oklch(80% .095 245);--p-blue-400:oklch(86% .07 245);--p-blue-100:oklch(23.8% .03 245);--p-blue-50:oklch(20.5% .022 245);--p-ink-900:oklch(99% .002 268);--p-ink-700:oklch(92% .004 268);--p-ink-500:oklch(78% .006 268);--p-ink-300:oklch(62% .006 268);--p-gray-100:oklch(26.8% .006 268);--p-paper:oklch(0% 0 0);--p-white:oklch(16% .005 268);--p-ok:oklch(80% .105 145);--p-warn:oklch(85% .09 80);--p-danger:oklch(74% .12 28);--p-seal:oklch(74% .12 28);--s-bg-canvas:var(--p-paper);--s-bg-surface:var(--p-white);--s-bg-tint:var(--p-blue-50);--s-text:var(--p-ink-900);--s-text-muted:var(--p-ink-500);--s-border:oklch(30% .006 268);--s-brand:oklch(74.5% .034 272);--s-brand-strong:oklch(89.5% .02 272);--s-accent:var(--p-teal-500);--s-seal:var(--p-seal);--s-header:linear-gradient(168deg, oklch(9% .003 268) 0%, oklch(0% 0 0) 100%);--ink-900:#fff;--ink-700:#e8eaed;--ink-600:#ccd0d5;--ink-500:#b9bdc4;--ink-400:#9a9da3;--ink-300:#74767b;--ink-100:#252629;--canvas:#000;--white:#fff;--surface:#101114;--surface-tint:#0a0b0d;--surface-muted:#060708;--elevated:#17191d;--line:#41454c;--border:#6e737c;--brand:#a5acc3;--brand-600:#bdc3d8;--brand-500:#a5acc3;--brand-700:#bdc3d8;--brand-50:#181b22;--brand-100:#1f222a;--brand-200:#2c2f3b;--brand-300:#262933;--brand-800:#d7dcea;--brand-navy:#d7dcea;--brand-blue:#bdc3d8;--brand-blue-2:#bdc3d8;--on-brand:#0b0c0e;--on-fill:#0b0c0e;--on-gold:#1b1b1f;--on-paper:#111114;--seal-ink:#9a322a;--accent:#82d1ce;--accent-50:#102221;--seal:#f09286;--seal-soft:#2d1815;--success:#93d196;--success-50:#142114;--success-200:#243824;--ok:var(--success);--warning:#e6c183;--warning-50:#261d0e;--warning-200:#41331b;--warning-300:#574424;--warning-400:#b6965f;--warning-25:#1a150d;--warn:var(--warning);--danger:#f09286;--danger-25:#1e1211;--danger-50:#2d1815;--danger-100:#3e221d;--danger-200:#5e342d;--danger-300:#8a5046;--danger-700:#f2b6ad;--danger-900:#fbd3cd;--info:#89c5f7;--info-50:#12202c;--pg-ink:#a5acc3;--pg-indigo:#89c5f7;--pg-celadon:#82d1ce;--pg-ochre:#e6c183;--pg-moss:#93d196;--pg-cinnabar:#f09286;--sec-wash:8%;--sec-zebra:4%;--sec-hover:11%;--sec-line:26%;--sec-line-strong:34%;--sec-edge:42%;--sec-head:11%;--sec-head-2:5%;--sec-head-text:70%;--sec-ring:30%;--sec-fade:16%;--map-out:4%;--map-land-a:26%;--map-land-b:32%;--map-coast:58%;--map-grat:22%;--map-edge:80%;--map-dot-none:66%;--shadow-sm:inset 0 1px 0 #ffffff0a;--shadow:inset 0 1px 0 #ffffff0d;--shadow-md:0 10px 26px #0000008c, 0 0 0 1px #ffffff12;--shadow-lg:0 20px 48px #000000ad, 0 0 0 1px #ffffff17;--bg:var(--canvas);--sidebar-bg:#000;--sidebar-bg-mid:#0a0b0d;--sidebar-bg-elevated:#15171b;--sidebar-text:#c2c4c9;--sidebar-text-strong:#fff;--sidebar-active:#e0cba6;--sidebar-active-soft:#e0cba629;--sidebar-border:#ffffff38;--chat-bg:#000;--chat-surface:#101114;--chat-rail:#41454c;--results-bg:#000;--results-accent:#82d1ce;--results-accent-soft:#102221;--results-rail:#41454c;--agent-bubble:#17191d;--user-bubble:#2c2f3b;--user-text:#fff;--text:var(--ink-900);--text-secondary:var(--ink-500);--text-primary:var(--ink-900);--fn-process:#89c5f7;--fn-process-soft:#12202c;--fn-verify:#e6c183;--fn-verify-soft:#261d0e;--fn-field:#82d1ce;--fn-field-soft:#102221;--fn-export:#a5acc3;--fn-export-soft:#181b22;--fn-danger:#e38377;--fn-danger-soft:#2d1815;--toast-bg:#17191d;--toast-text:#fff;--toast-line:#6e737c}@media (hover:hover) and (pointer:fine){.ui-btn:hover:not(:disabled):not(.is-disabled){background:color-mix(in oklab, var(--brand,#24344c) 8%, var(--surface,#fff));border-color:color-mix(in oklab, var(--brand,#24344c) 35%, var(--line))}}@media (hover:hover) and (pointer:fine){.ui-btn--primary:hover:not(:disabled):not(.is-disabled){background:var(--brand-600,#1b283b);color:var(--on-brand,#fff)}}@media (hover:hover) and (pointer:fine){.ui-btn--ghost:hover:not(:disabled):not(.is-disabled){background:color-mix(in oklab, var(--brand,#24344c) 8%, transparent)}}@media (hover:hover) and (pointer:fine){.ui-btn--danger:hover:not(:disabled):not(.is-disabled){background:var(--danger,#a33b32);color:var(--on-fill,#fff)}}*,:before,:after{box-sizing:border-box}html{--prep-freeze-top:0px;scroll-behavior:smooth}html:has(.instance-banner:not(.is-collapsed)){--prep-freeze-top:1.65rem}html,body,#root{min-height:100%;margin:0}.instance-banner{--sec:var(--pg-ochre);z-index:60;text-align:center;min-height:1.65rem;font-family:var(--font-body), system-ui, sans-serif;letter-spacing:.03em;color:color-mix(in oklab, var(--sec) 68%, var(--ink-900));background:color-mix(in oklab, var(--sec) 14%, var(--canvas));border-bottom:1px solid color-mix(in oklab, var(--sec) 55%, transparent);justify-content:center;align-items:center;gap:.65rem;margin:0;padding:.2rem .75rem;font-size:.72rem;font-weight:650;display:flex;position:sticky;top:0}.instance-banner__text{min-width:0}.instance-banner__toggle{border:1px solid color-mix(in oklab, var(--sec) 40%, transparent);background:color-mix(in oklab, var(--sec) 8%, var(--surface));min-height:1.35rem;color:inherit;font:inherit;letter-spacing:.02em;cursor:pointer;border-radius:999px;flex-shrink:0;margin:0;padding:.1rem .55rem;font-size:.68rem;font-weight:650}.instance-banner__toggle:hover,.instance-banner__toggle:focus-visible{background:color-mix(in oklab, var(--sec) 18%, var(--surface))}.instance-banner__toggle:focus-visible{outline:2px solid var(--pg-ink);outline-offset:2px}.instance-banner.is-collapsed{pointer-events:none;background:0 0;border:0;height:0;min-height:0;padding:0;overflow:visible}.instance-banner.is-collapsed .instance-banner__text{display:none}.instance-banner.is-collapsed .instance-banner__toggle{pointer-events:auto;z-index:70;background:color-mix(in oklab, var(--pg-ochre) 22%, var(--surface));border-color:color-mix(in oklab, var(--pg-ochre) 48%, transparent);box-shadow:var(--shadow-sm);padding:.15rem .7rem;position:fixed;top:.45rem;right:.75rem}body{font-family:var(--font-body), system-ui, sans-serif;background:var(--canvas);color:var(--ink-900);font-size:max(var(--font-xs,12px), calc(var(--font-sm,14px) * var(--font-scale,1)));-webkit-font-smoothing:antialiased;line-height:1.55}body:before{content:"";pointer-events:none;z-index:0;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;position:relative}.primitive-badge,.tag,.demo-badge{font-size:var(--font-xs,12px);font-weight:600;line-height:1.4}.primitive-table,.role-data-table,.task-detail__table{font-size:var(--font-sm,14px);line-height:1.4}.primitive-table th,.primitive-table td,.role-data-table th,.role-data-table td,.task-detail__table th,.task-detail__table td{line-height:1.4}.primitive-form input,.primitive-form select,.primitive-form textarea,.role-form-row input,.role-form-row select,.role-form-row textarea,.tasks-page__filters select,.tasks-page__filters input{font-size:var(--font-sm,14px);line-height:1.4}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.skip-link{color:var(--brand);z-index:1000;background:#fff;padding:8px 12px;position:absolute;top:0;left:-9999px}.skip-link:focus{top:12px;left:12px}.portal-page{--portal-gutter:28px;--page-measure:var(--page-max,1680px);--wb-line:#e5eaf3;--wb-shadow:0 12px 32px oklch(28% .08 260/.08);--wb-radius:12px;width:100%;max-width:100%;min-height:100vh;overflow-x:clip}.portal-boot{text-align:center;padding:48px 24px}.portal-top{color:#fff;box-sizing:border-box;background:oklch(28% .08 260);width:100%;max-width:100%;padding:0;position:relative;overflow:visible}.portal-top__inner{box-sizing:border-box;z-index:1;justify-content:flex-start;align-items:center;gap:1.25rem;width:100%;max-width:100%;padding:.85rem 1.5rem;display:flex;position:relative}.portal-top:before,.portal-top__mesh,.portal-top:after{display:none}.portal-top__grid{z-index:1;flex:1;grid-template-columns:1.1fr 2fr;align-items:center;gap:26px;min-width:0;display:grid;position:relative}.portal-brand{flex-direction:row;flex:none;align-items:center;gap:.7rem;min-width:13rem;display:flex}.portal-brand__mark{width:2.15rem;height:2.15rem;font-family:var(--font-display);border:1px solid oklch(100% 0 0/.45);border-radius:8px;place-items:center;font-size:1.05rem;font-weight:700;display:grid}.portal-brand__title,.portal-brand h1{font-family:var(--font-display);letter-spacing:.06em;margin:0;font-size:1.12rem;font-weight:700;line-height:1.3}.portal-brand__sub{letter-spacing:.08em;color:oklch(100% 0 0/.62);margin:.1rem 0 0;font-size:.72rem}.portal-ribbon{border:1px solid oklch(100% 0 0/.22);border-radius:10px;flex:1;min-width:0;display:flex;overflow:auto}.portal-ribbon__item{text-align:center;color:oklch(100% 0 0/.82);letter-spacing:.02em;white-space:nowrap;border-right:1px solid oklch(100% 0 0/.18);flex:1;min-width:5.6rem;padding:.55rem .45rem;font-size:.78rem;font-weight:500;text-decoration:none}.portal-ribbon__item:last-child{border-right:0}.portal-ribbon__item.is-on{color:#fff;background:oklch(100% 0 0/.12);box-shadow:inset 0 -2px #fff}.portal-ribbon__item:focus-visible{outline-offset:-2px;outline:2px solid #fff}.portal-values{border-radius:var(--radius-lg);background:oklch(100% 0 0/.04);border:1px solid oklch(100% 0 0/.14);grid-template-columns:repeat(6,1fr);gap:0;padding:8px 4px;display:grid}.portal-value{text-align:center;border-right:1px solid oklch(100% 0 0/.12);padding:8px 10px}.portal-value:last-child{border-right:0}.portal-value__ico{color:oklch(92% .02 85);background:0 0;border-radius:999px;place-items:center;width:28px;height:28px;margin:auto;font-size:13px;line-height:1;display:grid;box-shadow:inset 0 0 0 1px oklch(100% 0 0/.28)}.portal-value b{letter-spacing:.04em;margin-top:8px;font-size:13px;font-weight:600;display:block}.portal-value small{color:oklch(84% .015 250/.78);white-space:pre-line;margin-top:4px;font-size:12px;line-height:1.45;display:block}.portal-top__tools{z-index:1;flex-direction:row;flex:none;justify-content:flex-end;align-items:center;gap:10px;min-width:0;margin-left:0;display:flex;position:relative}.portal-top__greet{color:oklch(100% 0 0/.88);letter-spacing:.01em;white-space:nowrap;text-align:left;flex:none;min-width:0;max-width:100%;margin:0;font-size:.86rem;font-weight:500;line-height:1.4}.portal-top__greet--empty{min-height:1.4em;display:block}.portal-top__actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.portal-theme-status{color:#fff;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff47;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;line-height:1.5;text-decoration:none;display:inline-flex}.portal-theme-status:hover{color:#fff;background:#ffffff29}.portal-theme-status__dot{background:#f3f6fa;border:1px solid #fff9;border-radius:50%;width:8px;height:8px}.portal-theme-status__dot.is-dark{background:#000;border-color:#fffc}.settings-page{max-width:760px;margin:0 auto;padding:24px 16px 48px}.settings-page__title{color:var(--ink-900);margin:0 0 4px;font-size:20px}.settings-page__sub{color:var(--ink-500);margin:0 0 20px;font-size:13px}.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:16px;padding:20px}.settings-card h2{color:var(--ink-900);margin:0 0 14px;font-size:15px}.settings-seg{gap:10px;display:grid}.settings-seg__item{border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;background:var(--surface-tint);grid-template-columns:auto 1fr;grid-template-areas:"radio label""radio hint";align-items:center;column-gap:10px;padding:12px 14px;display:grid}.settings-seg__item.is-on{border-color:var(--brand);background:color-mix(in oklab, var(--brand) 8%, var(--surface))}.settings-seg__item input{accent-color:var(--brand);grid-area:radio;width:16px;height:16px}.settings-seg__label{color:var(--ink-900);grid-area:label;font-weight:600}.settings-seg__hint{color:var(--ink-500);grid-area:hint;font-size:12px}.settings-form{gap:12px;max-width:420px;display:grid}.settings-form__actions{justify-content:flex-end;margin-top:4px;display:flex}html[data-theme=dark] .settings-card{box-shadow:none}.portal-top__tools .ui-btn,.portal-top__tools .ui-btn--ghost,.portal-top__tools .ui-btn--secondary{color:#fff;background:#ffffff14;border:1px solid #ffffff47;min-height:2.25rem}.portal-top__tools .portal-bell__trigger{background:0 0;border:none;width:2.5rem;min-width:2.5rem;padding:0}.portal-more{position:relative}.portal-more__trigger{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff47;border-radius:8px;width:2.5rem;min-width:2.5rem;min-height:2.25rem;font-size:1.2rem;line-height:1}.portal-more__list{z-index:40;background:#fff;border:1px solid #e5eaf3;border-radius:10px;min-width:140px;margin:0;padding:6px 0;list-style:none;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0f172a1f}.portal-more__list a{color:#1f2937;padding:8px 14px;text-decoration:none;display:block}.portal-more__list a:hover{background:#f1f5f9}.portal-top__tools .ui-btn:hover:not(:disabled):not(.is-disabled){color:#fff;background:#ffffff29;border-color:#ffffff73}.portal-top__tools .portal-bell__trigger:hover:not(:disabled):not(.is-disabled){background:#ffffff1f;border-color:#0000}.portal-top__tools .ui-btn--primary{color:var(--on-paper,#1e3a5f);background:#fff;border-color:#0000}.portal-top__tools .ui-btn--primary:hover:not(:disabled):not(.is-disabled){color:var(--on-paper,#1e3a5f);background:#fff}.portal-top__tools .ui-btn:focus-visible{outline-offset:2px;outline:2px solid #ffffffd9}.portal-tool-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-sm,14px);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #ffffff47;padding:8px 14px;font-weight:600}.portal-tool-btn:hover{background:#ffffff1f}.portal-tool-btn:focus-visible{outline-offset:2px;outline:2px solid #ffffffd9}.portal-tool-btn--primary{color:var(--on-paper,#1e3a5f);box-shadow:var(--shadow-md);background:#fff;border-color:#0000;font-weight:700}.portal-tool-btn--ghost{color:#fff;background:#ffffff14;border-color:#ffffff57}.portal-tool-btn--ghost:hover{background:#ffffff29}.portal-tool-btn--ghost:focus-visible{outline-offset:2px;outline:2px solid #ffffffd9}.role-placeholder__actions .portal-tool-btn,.role-placeholder__actions-secondary .portal-tool-btn,.role-placeholder__body .portal-tool-btn,.role-placeholder__section .portal-tool-btn,.role-placeholder__actions .ui-btn,.role-placeholder__actions-secondary .ui-btn,.role-placeholder__body .ui-btn,.role-placeholder__section .ui-btn{border-color:color-mix(in oklab, var(--brand-navy,#1e3a5f) 22%, var(--line,#e4e9ef));background:var(--surface-tint,#f4f8f8);color:var(--brand-navy,#1e3a5f)}.role-placeholder__actions .portal-tool-btn:hover,.role-placeholder__actions-secondary .portal-tool-btn:hover,.role-placeholder__body .portal-tool-btn:hover,.role-placeholder__section .portal-tool-btn:hover,.role-placeholder__actions .ui-btn:hover:not(:disabled):not(.is-disabled),.role-placeholder__actions-secondary .ui-btn:hover:not(:disabled):not(.is-disabled),.role-placeholder__body .ui-btn:hover:not(:disabled):not(.is-disabled),.role-placeholder__section .ui-btn:hover:not(:disabled):not(.is-disabled){background:color-mix(in oklab, var(--brand,#24344c) 10%, var(--surface));border-color:var(--brand,#24344c)}.role-placeholder__actions .portal-tool-btn:focus-visible,.role-placeholder__actions-secondary .portal-tool-btn:focus-visible,.role-placeholder__body .portal-tool-btn:focus-visible,.role-placeholder__section .portal-tool-btn:focus-visible,.role-placeholder__actions .ui-btn:focus-visible,.role-placeholder__actions-secondary .ui-btn:focus-visible,.role-placeholder__body .ui-btn:focus-visible,.role-placeholder__section .ui-btn:focus-visible{outline:2px solid var(--brand,#24344c);outline-offset:2px}.role-placeholder__actions .portal-tool-btn--primary,.role-placeholder__actions-secondary .portal-tool-btn--primary,.role-placeholder__body .portal-tool-btn--primary,.role-placeholder__section .portal-tool-btn--primary,.role-placeholder__actions .ui-btn--primary,.role-placeholder__actions-secondary .ui-btn--primary,.role-placeholder__body .ui-btn--primary,.role-placeholder__section .ui-btn--primary{background:var(--brand,#24344c);color:var(--on-brand,#fff);border-color:#0000}.role-placeholder__actions .ui-btn--primary:hover:not(:disabled):not(.is-disabled),.role-placeholder__actions-secondary .ui-btn--primary:hover:not(:disabled):not(.is-disabled),.role-placeholder__body .ui-btn--primary:hover:not(:disabled):not(.is-disabled),.role-placeholder__section .ui-btn--primary:hover:not(:disabled):not(.is-disabled){background:var(--brand-600,#1b283b);color:var(--on-brand,#fff)}.role-placeholder__actions .portal-tool-btn--ghost,.role-placeholder__actions-secondary .portal-tool-btn--ghost,.role-placeholder__body .portal-tool-btn--ghost,.role-placeholder__section .portal-tool-btn--ghost,.role-placeholder__actions .ui-btn--ghost,.role-placeholder__actions-secondary .ui-btn--ghost,.role-placeholder__body .ui-btn--ghost,.role-placeholder__section .ui-btn--ghost{border-color:color-mix(in oklab, var(--brand-navy,#1e3a5f) 18%, var(--line,#e4e9ef));color:var(--brand-navy,#1e3a5f);background:0 0}.role-placeholder__actions .portal-tool-btn--ghost:focus-visible,.role-placeholder__actions-secondary .portal-tool-btn--ghost:focus-visible,.role-placeholder__body .portal-tool-btn--ghost:focus-visible,.role-placeholder__section .portal-tool-btn--ghost:focus-visible,.role-placeholder__actions .ui-btn--ghost:focus-visible,.role-placeholder__actions-secondary .ui-btn--ghost:focus-visible,.role-placeholder__body .ui-btn--ghost:focus-visible,.role-placeholder__section .ui-btn--ghost:focus-visible{outline:2px solid var(--brand,#24344c);outline-offset:2px}.portal-shell{background:oklch(97% .01 250);grid-template-columns:248px minmax(0,1fr) 248px;gap:0;width:100%;min-width:0;max-width:100%;min-height:calc(100vh - 120px);display:grid}.portal-shell--no-right{grid-template-columns:13.5rem minmax(0,1fr)}.portal-top__grid--brand-only{grid-template-columns:1fr}.portal-sidebar,.portal-rightbar{padding:1.15rem .85rem}.portal-sidebar{background:var(--surface);color:var(--ink-900);box-shadow:none;border-right:1px solid #e5eaf3}.portal-rightbar{background:var(--surface);border-right:0;border-left:1px solid var(--line)}.portal-logo{color:oklch(55% .02 260);align-items:center;gap:12px;padding:0 .4rem .7rem;display:flex}.portal-logo strong{font-family:var(--font-body);letter-spacing:.12em;color:oklch(55% .02 260);font-size:.72rem;font-weight:600;line-height:1.35;display:block}.portal-logo__sub,.portal-logo__dot{display:none}.portal-side-card{border-radius:var(--radius-md);background:var(--sidebar-bg-elevated);border:1px solid var(--sidebar-border);margin:0 4px 12px;padding:14px}.portal-side-card__title{color:var(--sidebar-active);margin:0 0 6px;font-size:12px;font-weight:700}.portal-side-card p,.portal-side-card li{color:var(--sidebar-text);margin:0;font-size:12px;line-height:1.5}.portal-side-card ul{margin:0;padding-left:16px}.portal-role-list{flex-direction:column;gap:8px;list-style:none;display:flex;padding:0!important}.portal-role-list li{align-items:center;gap:8px;display:flex}.portal-role-dot{width:22px;height:22px;color:var(--on-brand,#fff);background:var(--brand);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.portal-role-dot--teal{background:var(--brand-600)}.portal-role-dot--navy{background:var(--brand-navy)}.portal-nav{flex-direction:column;gap:2px;display:flex}.portal-nav--roomy{gap:8px}.portal-nav--roomy .portal-nav__item{min-height:44px;padding:12px 14px}.portal-nav__item{text-align:left;color:var(--ink-900);cursor:pointer;width:100%;min-height:40px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:.5rem .7rem;font-size:.9rem;display:flex}.portal-nav__item:hover{color:oklch(52% .18 255);background:oklch(96% .02 250)}.portal-nav__item:focus-visible{outline-offset:1px;outline:2px solid oklch(52% .18 255)}.portal-nav__item.is-active{color:oklch(52% .18 255);box-shadow:none;background:oklch(96% .02 250);font-weight:600}.portal-nav__group{flex-direction:column;gap:0;display:flex}.portal-nav__item--parent.is-current-section{color:oklch(52% .18 255);box-shadow:none;background:0 0;font-weight:600}.portal-nav__item--child{border-left:1px solid #e5eaf3;border-radius:0 8px 8px 0;margin-left:.85rem;padding-left:.95rem}.role-list-search{max-width:22rem;color:var(--ink-700);gap:.35rem;margin:0 0 .85rem;font-size:.88rem;display:grid}.role-list-search input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;min-height:44px;padding:10px 12px}.portal-main-wrap{min-width:0;position:relative}.portal-main{padding:22px var(--portal-gutter,28px) 32px;box-sizing:border-box;width:100%;min-width:0;max-width:100%}.portal-mainnav{background:var(--surface);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:28px;height:56px;padding:0 18px;display:flex;position:sticky;top:0}.portal-mainnav__item{color:var(--ink-500);align-items:center;height:56px;font-size:14px;display:flex;position:relative}.portal-mainnav__item:hover{color:var(--brand)}.portal-mainnav__item.is-active{color:var(--brand-navy);font-weight:700}.portal-mainnav__item.is-active:after{content:"";background:var(--brand);height:2px;position:absolute;bottom:0;left:0;right:0}.portal-mainnav__item:focus-visible,.portal-link:focus-visible,.portal-link-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}.portal-hero{border-radius:var(--radius-lg);background:radial-gradient(520px 160px at 88% -30%, color-mix(in oklab, var(--pg-celadon) 9%, transparent), transparent 70%), linear-gradient(112deg, color-mix(in oklab, var(--pg-ink) 10%, var(--surface)), var(--surface) 62%);border:1px solid color-mix(in oklab, var(--pg-ink) 16%, var(--line));color:var(--ink-900);z-index:1;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:flex-start;gap:16px;margin-top:20px;padding:22px 24px;display:flex;position:relative;overflow:hidden}.portal-hero:before{content:"";background:var(--seal);width:3px;position:absolute;top:0;bottom:0;left:0}.portal-hero__glow{display:none}.portal-hero h2{font-family:var(--font-display);letter-spacing:.06em;z-index:1;color:var(--brand-navy);margin:0 0 6px;font-size:1.35rem;font-weight:700;position:relative}.portal-hero p{color:var(--ink-500);z-index:1;max-width:42em;margin:0;font-size:.95rem;line-height:1.6;position:relative}.portal-hero__cta{z-index:1;background:var(--brand);color:var(--on-brand,#fff);border-radius:var(--radius-md);box-shadow:inset 3px 0 0 var(--seal-ink,var(--seal));flex:none;padding:10px 16px;font-size:13px;font-weight:600;position:relative}.portal-hero__cta:hover{filter:brightness(.97)}.card,.primitive-card{transition:box-shadow var(--dur-fast) var(--ease-out);background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.card:hover{box-shadow:var(--shadow-md)}.kpis{z-index:2;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px;padding:0;display:grid;position:relative}.kpi{padding:18px 18px 16px;position:relative}.kpi__value,.kpi strong{font-variant-numeric:var(--font-tabular);letter-spacing:-.03em}.kpi:before{display:none}.kpi__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.kpi__icon{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--brand);background:var(--brand-50);place-items:center;font-size:12px;font-weight:700;display:grid}.kpi--tasks{--pg:var(--pg-celadon)}.kpi--fix{--pg:var(--pg-ochre)}.kpi--schools{--pg:var(--pg-indigo)}.kpi--risks{--pg:var(--pg-cinnabar)}.kpis .kpi{border-color:color-mix(in oklab, var(--pg,var(--pg-ink)) 18%, var(--line));background:linear-gradient(152deg, color-mix(in oklab, var(--pg,var(--pg-ink)) 9%, var(--surface)), var(--surface) 62%);padding-left:20px;position:relative;overflow:hidden}.kpis .kpi:after{content:"";background:var(--pg,var(--pg-ink));opacity:.85;width:3px;position:absolute;inset:0 auto 0 0}.kpis .kpi strong{font-family:var(--font-display);color:color-mix(in oklab, var(--pg,var(--pg-ink)) 76%, var(--ink-900))}.kpis .kpi label{color:color-mix(in oklab, var(--pg,var(--pg-ink)) 58%, var(--ink-600))}.workbench-welcome{color:oklch(28% .03 260);background:oklch(93% .03 250);border-radius:12px 12px 0 0;margin:1.15rem 0 0;padding:1.15rem 1.35rem 2.35rem}.workbench-welcome__eyebrow{color:oklch(55% .02 260);letter-spacing:.08em;margin:0;font-size:.8rem}.workbench-welcome__title{font-family:var(--font-body), system-ui, sans-serif;letter-spacing:.04em;margin:.25rem 0 0;font-size:1.45rem;font-weight:700;line-height:1.3}.workbench-welcome__desc{color:oklch(55% .02 260);margin:.35rem 0 0;font-size:.9rem}.workbench-kpis{z-index:1;margin-top:-1.35rem;position:relative}.kpis.workbench-kpis{margin-top:-1.35rem}.workbench-kpis.school-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.workbench-kpis .kpi,.workbench-kpis .school-kpi{background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.kpis.workbench-kpis .kpi{background:oklch(100% 0 0);border-color:#e5eaf3;padding:.9rem .95rem .85rem;overflow:visible}.kpis.workbench-kpis .kpi:after,.workbench-kpis .kpi__icon{display:none}.workbench-kpis .kpi strong,.workbench-kpis .school-kpi strong,.kpis.workbench-kpis .kpi strong{font-family:var(--font-data), var(--font-body), sans-serif;font-variant-numeric:tabular-nums;color:oklch(52% .18 255);font-size:1.85rem;font-weight:600;line-height:1}.workbench-kpis .kpi label,.kpis.workbench-kpis .kpi label{color:oklch(55% .02 260)}.district-overview-kpis .role-muted{margin:.85rem 0 0}.kpi__icon,.kpi--fix .kpi__icon,.kpi--schools .kpi__icon,.kpi--risks .kpi__icon{color:var(--pg,var(--pg-ink));background:color-mix(in oklab, var(--pg,var(--pg-ink)) 12%, var(--surface));border:1px solid color-mix(in oklab, var(--pg,var(--pg-ink)) 22%, transparent)}@media (hover:hover) and (pointer:fine){.kpis .kpi--link:hover{border-color:color-mix(in oklab, var(--pg,var(--pg-ink)) 45%, var(--line));box-shadow:0 10px 26px color-mix(in oklab, var(--pg,var(--pg-ink)) 18%, transparent)}.kpis.workbench-kpis .kpi--link:hover{border-color:#e5eaf3;box-shadow:0 12px 32px oklch(28% .08 260/.12)}}.kpi--link:hover{transform:translateY(-1px)}.kpi label{color:var(--ink-500);font-size:13px}.kpi strong,.kpi__value{font-size:var(--font-3xl,32px);color:var(--brand-navy);font-variant-numeric:var(--font-tabular,tabular-nums);letter-spacing:-.02em;margin:12px 0 4px;font-weight:700;line-height:1.15;display:block}.kpi small{color:var(--ink-500);font-size:var(--font-xs,12px);line-height:1.4}.portal-grid{grid-template-columns:1.05fr 1fr;gap:16px;margin-top:16px;display:grid}.portal-panel{background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;padding:16px 16px 14px;scroll-margin-top:72px;position:relative;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.portal-panel:before{display:none}.portal-panel__head{border-bottom:1px solid #e5eaf3;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:10px;display:flex}.portal-panel__head h3{font-family:var(--font-body), "Noto Sans SC", system-ui, sans-serif;font-size:var(--font-md,16px);letter-spacing:.04em;color:oklch(28% .03 260);align-items:center;gap:9px;margin:0;font-weight:700;display:flex}.portal-panel__head h3:before{display:none}.portal-panel__foot{color:var(--ink-500);margin-top:12px;font-size:12px}.portal-link,.portal-link-btn{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:600}.portal-link:hover{color:var(--brand-600)}.task-list,.risk-list,.todo-list,.flow-list,.top5{margin:0;padding:0;list-style:none}.task--link,.risk-row,.todo-row,.top5__link,.flow-step__link,.metric--link{width:100%;color:inherit;border-radius:10px;align-items:center;gap:10px;transition:background .15s;display:grid}.task--link{border-top:1px solid var(--line);grid-template-columns:66px 1fr 56px;padding:11px 6px}.task-list li:first-child .task--link{border-top:0}.task--link:hover,.risk-row:hover,.todo-row:hover,.top5__link:hover,.metric--link:hover,.agent:hover,.flow-step__link:hover{background:var(--surface-tint)}.tag{border-radius:var(--radius-sm);text-align:center;letter-spacing:0;padding:3px 8px;font-size:12px;font-weight:500}.tag--danger{background:var(--danger-50);color:var(--danger)}.tag--info{background:var(--info-50);color:var(--info)}.tag--cyan{background:var(--brand-50);color:var(--brand)}.tag--high{background:var(--danger-50);color:var(--danger)}.tag--medium{background:var(--warning-50);color:var(--warning)}.tag--low{background:var(--info-50);color:var(--info)}.tag--ok{background:var(--success-50);color:var(--success)}.tag--off{background:var(--ink-100);color:var(--ink-500)}.tag--demo{background:var(--warning-50);color:var(--warning)}.progress{background:var(--ink-100);border-radius:var(--radius-sm);height:6px;margin-top:8px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--brand-navy), var(--brand));border-radius:var(--radius-sm);height:100%;display:block}.donut-wrap{grid-template-columns:160px 1fr;align-items:center;gap:14px;display:grid}.donut{filter:drop-shadow(0 6px 12px oklch(35% .04 250/.12));border-radius:50%;place-items:center;width:130px;height:130px;margin:auto;display:grid}.donut.is-empty{background:color-mix(in oklab, var(--line) 70%, var(--surface));filter:none}.donut__center{background:var(--surface);text-align:center;width:84px;height:84px;box-shadow:inset 0 0 0 1px var(--line);border-radius:50%;place-items:center;line-height:1.25;display:grid}.donut__center strong{font-size:var(--font-xl,20px);color:var(--brand-navy);font-variant-numeric:var(--font-tabular,tabular-nums);font-weight:700}.donut__center small{color:var(--ink-500);font-size:12px}.legend p{color:var(--ink-500);margin:9px 0;font-size:12px}.legend b{float:right;color:var(--brand-navy)}.dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.portal-data{grid-template-columns:1fr 1fr;gap:12px;display:grid}.radar{place-items:center;height:185px;display:grid}.radar svg{width:190px;height:170px}.top5{counter-reset:top5;padding-left:0}.top5 li{counter-increment:top5;border-bottom:1px dashed var(--line);padding:0;font-size:12px}.top5__link{grid-template-columns:none;justify-content:space-between;gap:10px;padding:9px 4px;display:flex}.top5__link:before{content:counter(top5);border-radius:var(--radius-sm);background:var(--brand-50);width:18px;height:18px;color:var(--brand);flex:none;place-items:center;font-weight:700;display:grid}.top5 b{color:var(--ink-500);white-space:nowrap}.risk-list li,.todo-list li{border-top:1px solid var(--line);font-size:13px}.risk-list li:first-child,.todo-list li:first-child{border-top:0}.risk-row,.todo-row{grid-template-columns:none;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;display:flex}.todo-due{color:var(--ink-500);white-space:nowrap}.todo-due--urgent{color:var(--danger);font-weight:600}.school-panel{grid-column:1/-1}.school-grid{grid-template-columns:minmax(200px,1.15fr) repeat(auto-fit,minmax(108px,1fr));align-items:stretch;gap:10px;display:grid}.school-info{align-items:center;gap:12px;min-width:0;display:flex}.school-info p{color:var(--ink-500);margin:6px 0;font-size:12px}.school-thumb{background:var(--brand-navy);width:76px;height:56px;box-shadow:inset 0 -2px 0 var(--seal);border-radius:8px;flex:none}.metric{border:1px solid var(--line);text-align:center;background:var(--surface);border-radius:10px;flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:10px 8px;display:flex}.metric small{color:var(--ink-500);font-size:12px;line-height:1.3}.metric strong{font-size:var(--font-xl,20px);color:var(--brand-navy);font-variant-numeric:var(--font-tabular,tabular-nums);margin-top:4px;font-weight:700;line-height:1.2;display:block}.metric__rating{color:var(--ink-500);word-break:break-word;margin-top:2px;font-size:12px;line-height:1.3;display:block}.metric__sub{display:none}.metric-bar{background:linear-gradient(160deg, transparent 35%, var(--brand) 36% 40%, transparent 41% 52%, var(--brand) 53% 57%, transparent 58%);opacity:.75;border-radius:0;height:18px;margin-top:6px;display:block;overflow:hidden}.metric-bar i{display:none}.metric__score--good{color:var(--success)}.metric__score--mid{color:var(--brand)}.metric__score--ok,.metric__score--warn{color:var(--warning)}.spark{background:linear-gradient(160deg, transparent 35%, var(--brand) 36% 40%, transparent 41% 52%, var(--brand) 53% 57%, transparent 58%);height:18px;margin-top:6px}.agent-grid{flex-direction:column;gap:9px;display:flex}.agent:first-child{--pg:var(--pg-ink)}.agent:nth-child(2){--pg:var(--pg-ochre)}.agent:nth-child(3){--pg:var(--pg-celadon)}.agent:nth-child(4){--pg:var(--pg-indigo)}.agent:nth-child(5){--pg:var(--pg-moss)}.agent:nth-child(6){--pg:var(--pg-cinnabar)}.agent{border:1px solid color-mix(in oklab, var(--pg,var(--pg-ink)) 18%, var(--line));border-left:3px solid var(--pg,var(--pg-ink));border-radius:var(--radius-md);background:linear-gradient(120deg, color-mix(in oklab, var(--pg,var(--pg-ink)) 8%, var(--surface)), var(--surface) 60%);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);gap:10px;padding:11px 12px;display:flex}@media (hover:hover) and (pointer:fine){.agent:hover{border-color:color-mix(in oklab, var(--pg,var(--pg-ink)) 50%, var(--line));box-shadow:0 6px 16px color-mix(in oklab, var(--pg,var(--pg-ink)) 16%, transparent)}}.agent-icon{border-radius:var(--radius);border:1px solid color-mix(in oklab, var(--pg,var(--pg-ink)) 24%, transparent);background:color-mix(in oklab, var(--pg,var(--pg-ink)) 13%, var(--surface));width:32px;height:32px;color:var(--pg,var(--pg-ink));font-family:var(--font-display);flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.agent b{color:var(--ink-900);font-size:13px}.agent p{color:var(--ink-500);margin:3px 0 0;font-size:12px;line-height:1.4}.flow-step{flex-direction:column;margin:4px 0;font-size:12px;display:flex;position:relative}.flow-step__link{grid-template-columns:none;align-items:center;gap:10px;padding:6px 4px;display:flex}.num{border:1px solid var(--brand-200);width:36px;height:30px;color:var(--brand-navy);background:var(--brand-50);font-variant-numeric:var(--font-tabular,tabular-nums);border-radius:8px;place-items:center;font-weight:700;display:grid}.flow-arrow{background:var(--line);width:1px;height:10px;margin-left:21px}.portal-status{color:var(--ink-500);font-size:13px}.portal-status--error{color:var(--danger)}.portal-status--ok{color:var(--ok,#027a48)}.portal-status--muted{color:var(--ink-500,#667085);font-size:.9rem}.role-page__status{margin:0 0 12px;font-size:.95rem}.role-page__status--error{color:var(--danger,#b42318)}.role-page__status--ok{color:var(--ok,#027a48)}.role-page__status--muted{color:var(--ink-500,#667085)}.portal-menu-btn,.portal-drawer-mask{display:none}.portal-mobile-right{gap:16px;margin-top:16px;display:none}.portal-toast{color:oklch(28% .03 260);opacity:0;pointer-events:none;z-index:50;background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;padding:12px 16px;transition:opacity .25s,transform .25s;position:fixed;bottom:24px;right:24px;transform:translateY(10px);box-shadow:0 12px 32px oklch(28% .08 260/.08)}.portal-toast.show{opacity:1;transform:translateY(0)}@media (width<=1279px){.portal-shell{grid-template-columns:210px 1fr}.portal-rightbar{display:none}.portal-mobile-right{grid-template-columns:1fr 1fr;display:grid}.portal-values{grid-template-columns:repeat(3,1fr)}.portal-value:nth-child(3){border-right:0}.portal-top__grid{grid-template-columns:1fr}.school-grid{grid-template-columns:minmax(180px,1fr) repeat(3,minmax(100px,1fr))}.metric:nth-child(n+6){display:flex}}@media (width<=899px){.portal-ribbon{display:none}.portal-brand{min-width:0}.workbench-kpis.school-kpi-grid,.kpis.workbench-kpis,.district-overview-kpis .workbench-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-shell{display:block}.portal-sidebar{z-index:40;width:270px;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.portal-sidebar.is-open{transform:translate(0)}.portal-drawer-mask{z-index:30;background:#0f172a59;display:block;position:fixed;inset:0}.portal-drawer-mask:not(.is-open){display:none}.portal-menu-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;margin:10px 12px 0;padding:8px 12px;display:inline-flex}.portal-menu-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.portal-mobile-right{grid-template-columns:1fr}.portal-hero{flex-direction:column;align-items:flex-start}}@media (width<=767px){.portal-top__inner{padding:18px 16px}.portal-values{display:none}.portal-main{padding:0 12px 18px}.portal-mainnav{gap:18px;overflow:auto}.kpis{grid-template-columns:1fr 1fr;margin-top:-40px;padding:0 6px}.portal-hero{padding-bottom:70px}.portal-grid,.portal-data{grid-template-columns:1fr}.school-grid{grid-template-columns:1fr 1fr}.school-info{grid-column:1/-1}.portal-brand h1{font-size:24px}.donut-wrap{grid-template-columns:1fr}.role-placeholder{padding:16px 12px}.role-placeholder__head{flex-direction:column;align-items:stretch}.role-placeholder__actions{width:100%}.role-placeholder__actions .portal-tool-btn,.role-placeholder__body .portal-tool-btn,.role-placeholder__actions .ui-btn,.role-placeholder__body .ui-btn{box-sizing:border-box;min-width:44px;min-height:44px;padding:10px 14px}.role-placeholder__body{padding:14px;overflow-x:hidden}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;margin-bottom:.75rem;overflow-x:auto}.role-placeholder__body table,.table-scroll table{min-width:36rem}.task-detail__steps{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:6px;overflow-x:auto}.eight-step-nav__btn{min-height:44px;padding:10px 14px}.tasks-page__filters{flex-direction:column;align-items:stretch}.tasks-page__filters select,.tasks-page__filters input{width:100%;min-height:44px}.task-detail__table{-webkit-overflow-scrolling:touch;min-width:32rem;display:block;overflow-x:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}html.reduce-motion *,html.elder-mode.reduce-motion *,html.elder-mode-lg.reduce-motion *{transition:none!important;animation:none!important}@keyframes portal-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.portal-hero,.kpi,.portal-panel{animation:.38s cubic-bezier(.22,1,.36,1) both portal-rise}.kpi:first-child{animation-delay:40ms}.kpi:nth-child(2){animation-delay:80ms}.kpi:nth-child(3){animation-delay:.12s}.kpi:nth-child(4){animation-delay:.16s}@media (prefers-reduced-motion:reduce){.portal-hero,.kpi,.portal-panel{animation:none}}.login-page{--login-ink:oklch(96% .01 90);--login-muted:oklch(84% .02 85/.82);--login-panel:var(--surface);isolation:isolate;min-height:100vh;color:var(--login-ink);background:var(--s-header);place-items:center;padding:clamp(20px,4vw,40px);display:grid;position:relative;overflow:hidden}.login-page__glow{display:none}.login-page__grid{z-index:0;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");position:absolute;inset:0}.login-page:after{content:"";background:var(--seal);z-index:2;height:2px;position:absolute;bottom:0;left:0;right:0}.login-stage{z-index:1;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(28px,5vw,56px);width:min(980px,100%);display:grid;position:relative}.login-brand{animation:.7s ease-out both login-rise}.login-brand__mark{width:52px;height:52px;font-family:var(--font-display);color:oklch(96% .02 85);box-shadow:inset 0 0 0 1px oklch(100% 0 0/.28), inset 0 -3px 0 var(--seal);background:0 0;border-radius:4px;place-items:center;margin-bottom:22px;font-size:1.45rem;font-weight:700;display:grid}.login-brand__eyebrow{letter-spacing:.22em;color:oklch(82% .04 70/.9);margin:0 0 12px;font-size:.78rem}.login-brand__title{font-family:var(--font-display);letter-spacing:.1em;color:#fff;text-wrap:balance;margin:0;font-size:clamp(2rem,4vw,2.7rem);font-weight:700;line-height:1.22}.login-brand__tagline{max-width:22em;color:var(--login-muted);margin:16px 0 0;font-size:1.02rem;line-height:1.7}.login-brand__points{letter-spacing:.14em;color:oklch(90% .015 85);flex-wrap:wrap;gap:0;margin:28px 0 0;padding:0;font-size:.82rem;list-style:none;display:flex}.login-brand__points li{background:0 0;border:0;padding:0}.login-brand__points li+li:before{content:"·";color:color-mix(in oklab, var(--seal) 70%, white);margin:0 .7em}.login-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--login-panel);width:min(420px,100%);color:var(--ink-900);box-shadow:var(--shadow-lg);justify-self:end;gap:14px;padding:clamp(22px,3vw,30px);animation:.75s ease-out .12s both login-rise;display:grid}.login-panel__head h2{font-family:var(--font-display);color:var(--brand-navy);margin:0;font-size:1.35rem}.login-panel__head p{color:var(--ink-500);margin:6px 0 4px;font-size:.92rem}.login-field{color:var(--ink-700);gap:7px;font-size:.88rem;display:grid}.login-field input{border:1px solid var(--border);border-radius:var(--radius-md);min-height:44px;font:inherit;background:var(--surface-muted);padding:12px 14px;transition:border-color .2s,box-shadow .2s,background .2s}.login-field input:focus,.login-field input:focus-visible{border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);outline:none}.login-panel__error{border-radius:var(--radius-sm);background:var(--danger-50);color:var(--danger-700);border:1px solid var(--danger-100);margin:0;padding:8px 10px;font-size:.88rem}.login-submit{appearance:none;border-radius:var(--radius-md);min-height:2.5rem;font:inherit;letter-spacing:.06em;color:var(--on-brand,#fff);cursor:pointer;background:var(--brand);box-shadow:inset 3px 0 0 var(--seal-ink,var(--seal));border:0;margin-top:4px;padding:12px 16px;font-weight:600}.login-submit:hover:not(:disabled){background:var(--brand-600)}.login-submit:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.login-submit:disabled{opacity:.65;cursor:not-allowed}.login-panel__foot{text-align:center;color:var(--ink-500);margin:2px 0 0;font-size:.78rem}@keyframes login-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes login-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(18px,-22px)scale(1.06)}}@media (width<=860px){.login-stage{grid-template-columns:1fr;gap:22px}.login-panel{justify-self:stretch;width:100%}.login-brand__title{font-size:clamp(1.75rem,7vw,2.2rem)}}@media (prefers-reduced-motion:reduce){.login-page__glow,.login-brand,.login-panel{animation:none}}.portal-user-chip,.portal-auth-mode{color:oklch(90% .02 250/.88);font-size:.85rem}.portal-role-links{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 0;display:flex}.portal-demo-notice,.page-demo-banner{border:1px solid var(--warn,#f1ad34);background:color-mix(in oklab, var(--warn,#f1ad34) 12%, transparent);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;padding:10px 14px;font-size:.9rem;display:flex}.page-demo-banner--compact{padding:6px 10px;font-size:.85rem}.demo-badge{background:var(--warn,#f1ad34);color:var(--on-fill,#2b1d00);white-space:nowrap;border-radius:999px;padding:2px 10px;font-weight:600;display:inline-block}.demo-badge--compact{padding:1px 8px;font-size:.8rem}.demo-badge--historical,.page-demo-banner--historical .demo-badge{background:color-mix(in oklab, var(--brand-600,#1a5276) 88%, var(--surface));color:var(--on-brand,#fff)}.page-demo-banner--historical{border-color:color-mix(in oklab, var(--brand-600,#1a5276) 45%, transparent);background:color-mix(in oklab, var(--brand-600,#1a5276) 10%, transparent)}.error-page{background:radial-gradient(80% 60% at 10% 0%, color-mix(in oklab, var(--brand-500,#24344c) 12%, transparent), transparent), var(--bg,#f4f7f9);justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex}.error-page__card{background:var(--surface,#fff);border:1px solid var(--line,#d8e0e8);text-align:center;border-radius:16px;width:100%;max-width:440px;padding:36px 32px;box-shadow:0 8px 28px #0f172a0f}.error-page__card--form{text-align:left}.error-page__actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.error-page__card--form .error-page__actions{justify-content:space-between}.error-page__code{letter-spacing:.04em;color:color-mix(in oklab, var(--brand-700,#1b283b) 80%, #334155);font-size:2.75rem;font-weight:700;font-family:var(--font-display,"Noto Serif SC", serif);margin:0 0 4px}.error-page__title{color:var(--ink-900,#0f172a);margin:0 0 12px;font-size:1.35rem;font-weight:600}.error-page__reason,.error-page__meta{color:var(--ink-700,#334155);margin:0 0 10px;font-size:.95rem;line-height:1.55}.error-page__path{background:color-mix(in oklab, var(--brand-500,#24344c) 8%, transparent);border-radius:4px;padding:1px 6px;font-size:.9em}.error-page__cta{background:var(--brand);color:var(--on-brand,#fff);box-shadow:inset 3px 0 0 var(--seal-ink,var(--seal));border-radius:10px;margin-top:18px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}.error-page__cta.ui-btn--primary,a.error-page__cta{background:var(--brand);color:var(--on-brand,#fff);box-shadow:inset 3px 0 0 var(--seal-ink,var(--seal));border-color:#0000}.error-page__cta:hover{filter:brightness(1.06)}html[data-theme=dark] .error-page__card{background:var(--surface);border-color:var(--line)}.district-map{gap:.75rem;display:grid}.district-map__caveat{opacity:.75;margin:0;font-size:.9rem}.district-map__svg{border:1px solid color-mix(in oklab, var(--pg-indigo) 26%, var(--line));border-radius:var(--radius-md);width:100%;max-width:40rem;height:auto;color:var(--ink-700);touch-action:none;cursor:grab}.district-map__svg.is-dragging{cursor:grabbing}.district-map__canvas{fill:color-mix(in oklab, var(--pg-ink) var(--map-out), var(--surface))}.district-map__land-stop-a{stop-color:color-mix(in oklab, var(--pg-celadon) var(--map-land-a), var(--surface))}.district-map__land-stop-b{stop-color:color-mix(in oklab, var(--pg-indigo) var(--map-land-b), var(--surface))}.district-map__coast{fill:none;stroke:color-mix(in oklab, var(--pg-ink) var(--map-coast), transparent);stroke-width:13px}.district-map__graticule line{stroke:color-mix(in oklab, var(--pg-ink) var(--map-grat), transparent);stroke-width:.6px;stroke-dasharray:3 4}.district-map__street{fill:color-mix(in oklab, var(--pg-celadon) 8%, transparent);stroke:color-mix(in oklab, var(--surface) 55%, transparent);stroke-width:.8px}.district-map__boundary{fill:none;stroke:color-mix(in oklab, var(--pg-ink) var(--map-edge), transparent);stroke-width:1.6px}.district-map [data-status-group]{--dot:var(--pg-ink)}.district-map [data-status-group=none]{--dot:color-mix(in oklab, var(--pg-ink) var(--map-dot-none), var(--surface))}.district-map [data-status-group=active]{--dot:var(--pg-indigo)}.district-map [data-status-group=rectifying]{--dot:var(--pg-ochre)}.district-map [data-status-group=closed]{--dot:var(--pg-moss)}.district-map__dot{fill:var(--dot,var(--pg-ink));stroke:var(--surface);stroke-width:1.6px;paint-order:stroke}.district-map__dot-ring{fill:none;stroke:var(--dot,var(--pg-ink));stroke-width:1.2px;opacity:.42}.district-map__dot:not([data-geo-precision=name]){fill:color-mix(in oklab, var(--surface) 90%, transparent);stroke:var(--dot,var(--pg-ink));stroke-width:2.1px}a:hover>g>.district-map__dot,a:focus-visible>g>.district-map__dot{stroke:var(--pg-cinnabar);stroke-width:2.6px}.district-map__label{fill:var(--ink-700);stroke:var(--surface);stroke-width:3.2px;stroke-linejoin:round;paint-order:stroke;pointer-events:none;font-size:11px;font-weight:600}.district-map__sheet-title{font-family:var(--font-display);letter-spacing:.14em;fill:var(--ink-700);font-size:15px;font-weight:700}.district-map__sheet-sub,.district-map__bar-label,.district-map__compass-label{letter-spacing:.08em;fill:var(--ink-500);font-size:9.5px}.district-map__compass-label{text-anchor:middle;font-size:10px;font-weight:700}.district-map__compass-n{fill:var(--pg-cinnabar)}.district-map__bar-a{fill:var(--ink-700)}.district-map__bar-b{fill:var(--surface);stroke:var(--ink-700);stroke-width:.8px}.district-map__scale-note{color:var(--ink-500);margin:0;font-size:.75rem}.district-map__zoom{color:var(--ink-500);font-variant-numeric:tabular-nums;align-self:center;font-size:.75rem}.district-map__legend-shape{flex:none;width:13px;height:13px;overflow:visible}.district-map__legend{flex-wrap:wrap;gap:1rem;font-size:.85rem;display:flex}.district-map__grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.district-map__grid li{border:1px solid color-mix(in oklab, var(--text,#1a1a1a) 10%, transparent);border-radius:8px;gap:.15rem;padding:.6rem .75rem;display:grid}.district-map__precision{opacity:.7;font-size:.8rem}.district-map__missing summary{cursor:pointer}.portal-bell{display:inline-flex;position:relative}.portal-bell__trigger{min-width:2.5rem;min-height:2.5rem;padding:0;position:relative}.portal-bell__icon{width:1.15rem;height:1.15rem;display:block}.portal-bell__dot{background:var(--danger,#d92d20);width:8px;height:8px;box-shadow:0 0 0 2px color-mix(in oklab, var(--s-brand-strong,#152033) 70%, #1a2433);border-radius:50%;position:absolute;top:7px;right:7px}.portal-bell__badge,.portal-nav__badge{background:var(--danger,#d92d20);min-width:18px;color:var(--on-fill,#fff);text-align:center;border-radius:999px;margin-left:6px;padding:0 6px;font-size:.72rem;line-height:18px;display:inline-block}.portal-bell__panel{z-index:40;border:1px solid var(--line,#e4e7ec);background:var(--surface,#fff);width:min(360px,90vw);color:var(--ink-900,#1a2433);box-shadow:var(--shadow-lg,0 12px 32px #10182829);text-align:left;border-radius:12px;padding:12px;position:absolute;top:calc(100% + 8px);right:0}.portal-bell__head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.portal-bell__link{cursor:pointer;color:var(--brand);font:inherit;background:0 0;border:none}.portal-bell__notice{opacity:.75;margin:0 0 8px;font-size:.8rem}.portal-bell__empty{color:var(--ink-500);text-align:left;background:0 0;border:0;margin:8px 0 4px;padding:0;font-size:.88rem}.portal-bell__list{margin:0;padding:0;list-style:none}.portal-bell__list li+li{border-top:1px solid var(--line,#eee)}.portal-bell__list li.is-unread .portal-bell__title{font-weight:600}.portal-bell__list button{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--ink-900,#1a2433);background:0 0;border:none;gap:2px;padding:8px 2px;display:grid}.portal-bell__title{color:var(--ink-900,#1a2433)}.portal-bell__body,.portal-bell__time{opacity:.75;font-size:.8rem}.portal-bell__more{color:var(--brand);margin-top:8px;text-decoration:none;display:inline-block}.messages-notice{border-left:3px solid var(--brand);background:var(--surface-tint,#f6f8fc);margin:0 0 12px;padding:8px 12px;font-size:.9rem}.messages-filter{margin-bottom:8px;font-size:.9rem}.messages-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.messages-list li{border:1px solid var(--line,#e4e7ec);border-radius:10px;padding:12px 14px}.messages-list li.is-unread{border-color:var(--brand)}.role-data-table .messages-title{font-weight:400}.role-data-table .messages-title.is-unread{font-weight:700}.messages-list__meta{opacity:.8;align-items:center;gap:10px;font-size:.8rem;display:flex}.messages-list__dot{color:var(--danger,#d92d20)}.messages-list__title{margin:4px 0 0;font-weight:600}.messages-list__body{opacity:.85;margin:2px 0 0;font-size:.9rem}.messages-list__actions{gap:12px;margin-top:6px;font-size:.88rem;display:flex}.messages-list__actions button{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.messages-pager{color:var(--ink-700);align-items:center;gap:10px;margin-top:12px;font-size:.875rem;display:flex}.task-timeline{border:1px solid var(--line,#e4e7ec);background:var(--surface-tint,#f8fafc);border-radius:10px;margin-top:8px;padding:10px 12px}.task-timeline h3{margin:0 0 8px;font-size:.95rem}.task-timeline__list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.task-timeline__head{opacity:.8;justify-content:space-between;gap:10px;font-size:.8rem;display:flex}.task-timeline__what{margin:2px 0 0;font-size:.9rem}.task-timeline__who{opacity:.75}.task-timeline__note{border-left:2px solid var(--line,#ddd);margin:2px 0 0;padding-left:10px;font-size:.88rem}.school-delivery__hint{opacity:.8;margin:0 0 8px;font-size:.9rem}.school-delivery__list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.school-delivery__list li{border:1px solid var(--line,#e4e7ec);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.project-task-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.project-task-list li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-task-list__ops{gap:6px;display:inline-flex}.lifecycle-dialog{border:1px solid var(--warn,#f1ad34);background:var(--surface,#fff);border-radius:12px;padding:14px 16px}.lifecycle-dialog h3{margin:0 0 8px}.lifecycle-dialog__preview ul{margin:4px 0 10px;padding-left:20px;font-size:.9rem}.lifecycle-dialog__reason{gap:4px;margin:10px 0;font-size:.9rem;display:grid}.lifecycle-dialog__reason input{min-width:min(28rem,100%);padding:6px 10px}.lifecycle-dialog__actions{gap:8px;display:flex}.role-placeholder,.role-page{--page-measure:var(--page-max,1680px);padding:22px var(--portal-gutter,28px) 40px;max-width:var(--page-measure);width:100%;color:var(--ink-900);background:0 0;margin:0 auto}.portal-page.role-placeholder,.portal-page.role-page{background:var(--canvas,#eef2f7);max-width:none;min-height:100vh;margin:0}.portal-page.role-placeholder>.role-placeholder__head,.portal-page.role-placeholder>.page-demo-banner,.portal-page.role-placeholder>.role-page__status,.portal-page.role-placeholder>.role-placeholder__body,.portal-page.role-placeholder>.role-placeholder__sections,.portal-page.role-placeholder>.tasks-page__filters,.portal-page.role-placeholder>.tasks-board,.portal-page.role-placeholder>.tasks-page__empty,.portal-page.role-placeholder>.tasks-page__error,.portal-page.role-placeholder>.messages-pager,.portal-page.role-page>.role-placeholder__head,.portal-page.role-page>.page-demo-banner,.portal-page.role-page>.role-page__status,.portal-page.role-page>.role-placeholder__body,.portal-page.role-page>.role-placeholder__sections{max-width:var(--page-measure,1680px);width:100%;margin-left:auto;margin-right:auto}.role-placeholder__head{background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;padding:18px 20px;display:flex;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.role-placeholder__intro{flex:1;min-width:0}.role-placeholder__toast{max-width:22rem;color:var(--pg-moss,#3d6b4f);text-align:right;margin:0;font-size:.92rem;font-weight:600;line-height:1.4}.role-placeholder__eyebrow{letter-spacing:.12em;color:var(--brand-navy);margin:0 0 6px;font-size:.8rem;font-weight:600}.role-placeholder__head h1{font-family:var(--font-body), "Noto Sans SC", system-ui, sans-serif;letter-spacing:.04em;color:oklch(28% .03 260);margin:0;font-size:1.45rem;font-weight:700}.role-placeholder__subtitle,.role-placeholder__head>div>p{color:oklch(55% .02 260);max-width:42em;margin:10px 0 0;font-size:.95rem;line-height:1.6}.role-placeholder__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.role-placeholder__actions-secondary{border-top:1px solid color-mix(in oklab, var(--ink-900,#1a1a1a) 8%, transparent);flex-wrap:wrap;gap:8px;width:100%;margin-top:4px;padding-top:10px;display:flex}.role-placeholder__body{background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;margin-top:16px;padding:20px;position:relative;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.role-placeholder__sections{gap:16px;margin-top:16px;display:grid}.role-placeholder__section{background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;padding:18px 20px;position:relative;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.role-placeholder__body:before,.role-placeholder__section:before{display:none}.role-placeholder__section h2{font-family:var(--font-body), "Noto Sans SC", system-ui, sans-serif;letter-spacing:.04em;color:oklch(28% .03 260);margin:0 0 12px;font-size:1.08rem;font-weight:700}.role-placeholder__section>p:first-of-type{margin-top:0}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;margin-bottom:.75rem;overflow-x:auto}.table-scroll table,.role-placeholder__body table,.role-placeholder__section table{border-collapse:collapse;width:100%;min-width:36rem}.role-data-table th,.role-data-table td,.role-placeholder__body table th,.role-placeholder__body table td,.role-placeholder__section table th,.role-placeholder__section table td{text-align:left;border-top:1px solid color-mix(in oklab, var(--ink-900,#1a1a1a) 8%, transparent);vertical-align:top;padding:10px 12px;font-size:.92rem;line-height:1.4}@media (width<=1440px){.col-tertiary{display:none}}@media (width<=1100px){.col-secondary,.col-tertiary{display:none}}.role-data-table tbody td,.task-detail__table tbody td{font-variant-numeric:var(--font-tabular,tabular-nums)}.role-data-table th,.role-placeholder__body table th,.role-placeholder__section table th{color:var(--ink-500,#667085);background:var(--surface-tint);border-top:none;font-weight:600}.role-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;display:grid}.role-kpi-grid a.card{color:inherit;text-decoration:none}.role-form-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.role-form-row input,.role-form-row select,.role-form-row textarea,.role-field-full{box-sizing:border-box;width:100%;max-width:100%}.role-form-stack input:not([type=checkbox]),.role-form-stack select,.role-form-stack textarea,.role-form-row input:not([type=checkbox]),.role-form-row select,.role-form-row textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-height:44px;padding:10px 12px}.role-form-stack textarea,.role-form-row textarea{min-height:6.5rem}.role-data-table .ui-btn,.role-data-table .portal-tool-btn{min-height:2.25rem;padding:.28rem .75rem;font-weight:500}.role-form-row input:focus-visible,.role-form-row select:focus-visible,.role-form-row textarea:focus-visible,.role-data-table .portal-tool-btn:focus-visible,.role-data-table .ui-btn:focus-visible,.login-theme-btn:focus-visible{outline:2px solid var(--brand,#24344c);outline-offset:2px}.role-stack{gap:1.5rem;display:grid}.role-muted{color:var(--ink-500);font-size:.9rem}.role-material-list{margin:0;padding:0;list-style:none}.role-material-list__item{border:1px solid var(--border,#ddd);border-radius:8px;margin-bottom:.5rem;padding:.75rem}.role-material-list__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.role-material-list__versions{margin:.5rem 0 0;padding:0;list-style:none}.role-material-list__version{margin-bottom:.35rem}.role-material-list__version-label{align-items:center;gap:.35rem;display:inline-flex}.role-danger-dialog{border:1px solid var(--danger,#b42318);background:var(--danger-25);border-radius:8px;margin-top:.75rem;padding:.75rem}.role-timeline-list{margin:0;padding-left:1.25rem}.role-timeline-list>li{margin-bottom:.5rem}.task-detail .role-placeholder__body{margin-top:16px}.task-detail__steps{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.task-detail__step{border:1px solid var(--line,#e4e7ec);background:var(--surface-tint,#f8fafc);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:flex}.task-detail__step-no{background:var(--line,#e4e7ec);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;display:inline-flex}.task-detail__step.is-done{border-color:var(--brand,#24344c);opacity:.75}.task-detail__step.is-done .task-detail__step-no{background:var(--brand,#24344c);color:var(--on-brand,#fff)}.task-detail__step.is-current{border-color:var(--seal);background:var(--seal-soft);box-shadow:inset 3px 0 0 var(--seal);font-weight:600}.task-detail__step.is-current .task-detail__step-no{background:var(--seal);color:var(--on-fill,#fff)}.task-detail__meta{flex-wrap:wrap;gap:24px;margin:0;display:flex}.task-detail__meta dt{opacity:.7;font-size:.8rem}.task-detail__meta dd{margin:2px 0 0;font-size:.95rem}.task-detail__summary{flex-wrap:wrap;gap:24px;margin:8px 0 12px;display:flex}.task-detail__summary>div{gap:2px;min-width:9rem;display:grid}.task-detail__summary-label{opacity:.7;font-size:.8rem}.task-detail__summary strong{font-size:var(--font-2xl,24px);font-variant-numeric:var(--font-tabular,tabular-nums);font-weight:700;line-height:1.15}.task-detail__summary-sub{opacity:.75;font-size:.8rem}.task-detail__warning{border-left:3px solid var(--warning);background:color-mix(in oklab, var(--warning) 12%, transparent);margin:0 0 12px;padding:8px 12px;font-size:.9rem}.task-detail__table{border-collapse:collapse;width:100%;font-size:.9rem}.task-detail__caption{caption-side:top;text-align:left;opacity:.75;padding-bottom:8px;font-size:.85rem}.task-detail__table th,.task-detail__table td{border-bottom:1px solid var(--line,#e4e7ec);text-align:left;vertical-align:top;padding:6px 8px;line-height:1.4}.task-detail__table thead th{opacity:.75;white-space:nowrap;font-size:.8rem}.task-detail__table tbody th{border-bottom:0;flex-wrap:wrap;align-items:baseline;gap:6px;font-weight:500;display:flex}.task-detail__group{background:var(--surface-tint,#f8fafc)}.task-detail__group.is-level-1{font-weight:600}.task-detail__toggle{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.task-detail__code{opacity:.7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.task-detail__badge,.task-detail__stale{border:1px solid var(--line,#e4e7ec);border-radius:999px;padding:1px 6px;font-size:.72rem}.task-detail__stale{border-color:var(--warning);color:var(--warning);margin-left:6px}.task-detail__bonus{opacity:.7}.task-detail__link{color:var(--brand,#24344c);cursor:pointer;font:inherit;background:0 0;border:0;margin-left:8px;padding:0}.task-detail__review{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.task-detail__review input[type=number]{width:4.5rem}.task-detail__review input[type=text]{width:9rem}.task-detail__confirmed,.task-detail__pending{margin-top:2px;font-size:.75rem;display:block}.task-detail__confirmed{color:var(--success)}.task-detail__pending{opacity:.7}.task-detail__table td.is-down{color:var(--danger)}.task-detail__drawer{border:1px solid var(--line,#e4e7ec);background:var(--surface-tint,#f8fafc);border-radius:10px;margin-top:12px;padding:12px 14px}.task-detail__drawer header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.task-detail__drawer h3{margin:0 0 8px;font-size:.95rem}.task-detail__standard{opacity:.85;margin:0 0 8px;font-size:.88rem}.task-detail__ops{gap:10px;margin:0;padding-left:1.1rem;display:grid}.task-detail__op-head{opacity:.75;margin:0;font-size:.8rem}.task-detail__op-text{margin:2px 0 0;font-size:.9rem}.task-detail__op-reason{opacity:.8;margin:2px 0 0;font-size:.85rem}.task-detail__evidence{gap:6px;margin:4px 0 0;padding:0;font-size:.85rem;list-style:none;display:grid}.task-detail__evidence blockquote{border-left:2px solid var(--line,#ddd);margin:2px 0;padding-left:8px}.task-detail__evidence-src{opacity:.7}.login-panel__head-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.login-theme-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink-700);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px}.login-theme-btn:hover{border-color:var(--brand);color:var(--brand)}html[data-theme=dark] .portal-shell,html[data-theme=dark] .portal-rightbar,html[data-theme=dark] .portal-main-wrap,html[data-theme=dark] .portal-main{background:var(--canvas);color:var(--ink-900);border-color:var(--line)}html[data-theme=dark] .portal-rightbar{background:var(--surface);border-color:var(--line)}html[data-theme=dark] .portal-mainnav__item,html[data-theme=dark] .portal-panel__foot,html[data-theme=dark] .portal-status,html[data-theme=dark] .donut__center small,html[data-theme=dark] .legend p,html[data-theme=dark] .login-panel__head p,html[data-theme=dark] .login-panel__foot{color:var(--ink-600)}html[data-theme=dark] .portal-side-card{background:var(--sidebar-bg-elevated);border-color:var(--sidebar-border)}html[data-theme=dark] .portal-mainnav{background:var(--surface);border-bottom-color:var(--line)}html[data-theme=dark] .portal-panel,html[data-theme=dark] .portal-data,html[data-theme=dark] .donut__center{background:var(--surface);color:var(--ink-900);border-color:var(--line);box-shadow:none}html[data-theme=dark] .portal-panel__head h3,html[data-theme=dark] .donut__center strong,html[data-theme=dark] .legend b,html[data-theme=dark] .login-panel__head h2,html[data-theme=dark] .login-field,html[data-theme=dark] .portal-panel,html[data-theme=dark] .top5 li,html[data-theme=dark] .portal-boot{color:var(--ink-900)}html[data-theme=dark] .top5 li{border-bottom-color:var(--line)}html[data-theme=dark] .login-page{--login-panel:var(--surface)}html[data-theme=dark] .login-panel{background:var(--surface);color:var(--ink-900);border-color:var(--line);box-shadow:var(--shadow-lg)}html[data-theme=dark] .login-field input{background:var(--surface-tint);border-color:var(--line);color:var(--ink-900)}html[data-theme=dark] .login-field input:focus{background:var(--surface-muted);border-color:var(--brand)}html[data-theme=dark] .login-theme-btn{background:var(--surface-tint);color:var(--ink-700);border-color:var(--line)}html[data-theme=dark] .skip-link{background:var(--surface)}html[data-theme=dark] .role-placeholder__body,html[data-theme=dark] .role-placeholder__section{border-color:color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-line), var(--line))}.tasks-page__filters{border:1px solid color-mix(in oklab, var(--sec,var(--pg-ochre)) var(--sec-line), var(--line));background:linear-gradient(180deg, color-mix(in oklab, var(--sec,var(--pg-ochre)) var(--sec-wash), var(--surface)), var(--surface-tint));border-radius:12px;flex-wrap:wrap;gap:12px 16px;margin:0 0 18px;padding:12px 14px;display:flex}.tasks-page__filters label{color:var(--ink-700);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.tasks-page__filters select{min-width:160px}.tasks-page__filters select:focus-visible,.tasks-page__filters input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.tasks-page__error{color:var(--danger);border-radius:var(--radius);background:var(--danger-50);border:1px solid var(--danger-100);padding:10px 12px}.tasks-page__empty{color:var(--ink-500);text-align:center;background:var(--surface-muted);border:1px dashed var(--line);border-radius:var(--radius-lg);margin:28px 0;padding:28px 16px}.tasks-board{gap:12px;margin:0 0 18px;padding:0;list-style:none;display:grid}.tasks-board__card{--pg:var(--pg-celadon);border:1px solid color-mix(in oklab, var(--pg) 18%, var(--line));border-left:3px solid var(--pg);background:linear-gradient(116deg, color-mix(in oklab, var(--pg) 7%, var(--surface)), var(--surface) 48%);border-radius:12px;padding:14px 16px 14px 18px;transition:border-color .15s,box-shadow .15s;display:block}.tasks-board__card[data-tone=low]{--pg:var(--pg-ochre)}.tasks-board__card[data-tone=mid]{--pg:var(--pg-celadon)}.tasks-board__card[data-tone=high]{--pg:var(--pg-indigo)}.tasks-board__card[data-tone=done]{--pg:var(--pg-moss)}.tasks-board__card[data-tone=off]{--pg:var(--ink-300)}.tasks-board__card:hover{border-color:color-mix(in oklab, var(--pg) 55%, var(--line));box-shadow:0 6px 18px color-mix(in oklab, var(--pg) 16%, transparent)}.tasks-board__card b{font-family:var(--font-display);letter-spacing:.01em;color:var(--brand-navy);margin:8px 0 4px;font-size:1.05rem;display:block}.tasks-board__card small{color:var(--ink-600)}.tasks-board__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.tasks-board__todo{border:1px solid color-mix(in oklab, var(--pg-cinnabar) 26%, transparent);background:color-mix(in oklab, var(--pg-cinnabar) 10%, var(--surface));color:var(--pg-cinnabar);border-radius:999px;padding:2px 9px;font-size:.78rem;font-weight:600}.tasks-board__progress{border-top:1px solid var(--line);gap:8px;margin-top:12px;padding-top:12px;display:grid}.tasks-board__progress strong{color:var(--ink-700);font-size:.85rem;font-weight:500}.tasks-board__restart{color:var(--ink-600);margin-top:8px;font-size:.8rem;display:inline-block}.tasks-board__actions{gap:12px;margin:6px 4px 12px;font-size:.85rem;display:flex}.briefing-page__note,.briefing-page__disclaimer{border:1px solid var(--line);background:var(--surface);color:var(--ink-700);border-radius:10px;margin:0 0 14px;padding:10px 14px;font-size:.9rem}.briefing-page__disclaimer{border-style:dashed}.briefing-page__error{color:var(--danger)}.briefing-page__meta{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px 16px;margin:0 0 12px;display:grid}.briefing-page__meta dt{color:var(--ink-600);font-size:.8rem}.briefing-page__meta dd{margin:2px 0 0;font-weight:600}.briefing-checklist,.briefing-weak,.briefing-issues,.briefing-suggestions{gap:10px;margin:0;padding:0;list-style:none;display:grid}.briefing-checklist li,.briefing-issues li,.briefing-weak li{border:1px solid var(--line);background:var(--canvas);border-radius:10px;padding:10px 12px}.briefing-checklist__top,.briefing-issues__top,.briefing-weak li{justify-content:space-between;align-items:center;gap:8px;display:flex}.briefing-checklist ul{color:var(--ink-700);margin:6px 0 0;padding-left:18px;font-size:.85rem}.briefing-chat__readonly{color:var(--ink-600)}.briefing-chat__list{gap:8px;max-height:280px;margin:0 0 12px;padding:0;list-style:none;display:grid;overflow:auto}.briefing-chat__bubble{background:var(--canvas);border:1px solid var(--line);border-radius:10px;padding:8px 10px}.briefing-chat__bubble.is-user{border-color:color-mix(in oklab, var(--brand) 35%, var(--line))}.briefing-chat__bubble p{white-space:pre-wrap;margin:4px 0 0}.briefing-chat__composer{gap:8px;display:flex}.briefing-chat__composer input{border:1px solid var(--line);background:var(--canvas);color:var(--ink-900);border-radius:8px;flex:1;padding:8px 10px}.eight-step-nav{margin:0 0 16px}.eight-step-nav__banner{background:color-mix(in oklab, var(--danger) 12%, var(--surface-tint));color:var(--danger);border-radius:8px;margin:0 0 10px;padding:8px 12px;font-size:.9rem}.eight-step-nav__list{-webkit-overflow-scrolling:touch;gap:8px;margin:0;padding:0 0 4px;list-style:none;display:flex;overflow-x:auto}.eight-step-nav__item{flex:none}.eight-step-nav__btn{border:1px solid var(--line,#e4e7ec);background:var(--surface-tint,#f8fafc);color:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:flex}.eight-step-nav__item.is-done .eight-step-nav__btn{border-color:color-mix(in oklab, var(--success) 40%, var(--line))}.eight-step-nav__item.is-current .eight-step-nav__btn{border-color:var(--seal);background:var(--seal-soft);box-shadow:inset 3px 0 0 var(--seal);font-weight:600}.eight-step-nav__item.is-action .eight-step-nav__btn{border-style:dashed}.eight-step-nav__item.is-selected .eight-step-nav__btn{outline:2px solid color-mix(in oklab, var(--brand,#24344c) 55%, transparent);outline-offset:1px}.eight-step-nav__no{background:var(--line,#e4e7ec);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;font-weight:600;display:inline-flex}.eight-step-nav__item.is-current .eight-step-nav__no{background:var(--seal);color:var(--on-fill,#fff)}.eight-step-nav__item.is-done .eight-step-nav__no{background:var(--brand);color:var(--on-brand,#fff)}.eight-step-nav__tag{background:var(--warning-50);color:var(--warning);border-radius:999px;padding:1px 6px;font-size:.7rem}.step-panel,.step-chat{border:1px solid var(--line,#e4e7ec);background:var(--canvas,#fff);border-radius:12px;margin:12px 0;padding:12px 14px}.step-panel__head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.step-panel__head h3{margin:0;font-size:1rem}.step-panel__badge{background:var(--warning-50);color:var(--warning);border-radius:999px;padding:2px 8px;font-size:.75rem}.step-panel__badge.is-current{background:var(--seal-soft);color:var(--seal)}.step-panel__summary,.step-panel__hint,.step-panel__disclaimer,.step-panel__entry-note{color:var(--ink-700,#344054);margin:0 0 8px;font-size:.9rem}.step-panel__block h4,.step-chat__title{margin:0 0 6px;font-size:.9rem}.step-panel__entries,.step-panel__block ul,.step-chat__list{margin:0;padding-left:1.1rem}.step-panel__pending{color:var(--warning);margin-left:4px;font-style:normal}.step-panel__due{color:var(--ink-500,#667085);font-size:.85rem}.step-chat__readonly{color:var(--ink-500,#667085);margin:8px 0;font-size:.9rem}.step-chat__bubble{margin-bottom:8px}.step-chat__bubble p{white-space:pre-wrap;margin:4px 0 0}.step-chat__composer{gap:8px;margin-top:8px;display:flex}.step-chat__composer input{border:1px solid var(--line);background:var(--canvas);border-radius:8px;flex:1;padding:8px 10px}.step-chat__error{color:var(--danger)}.eight-step-nav__btn:focus-visible,.step-chat__composer input:focus-visible,.briefing-chat__composer input:focus-visible{outline:2px solid var(--brand,#24344c);outline-offset:2px}.rectification-page__list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.rectification-page__list a{border:1px solid var(--line,#e4e7ec);color:inherit;border-radius:10px;justify-content:space-between;gap:12px;padding:10px 12px;text-decoration:none;display:flex}.rectification-page__materials{margin:0 0 12px;padding:0;list-style:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eight-step{--step-dot:22px;--step-line:var(--line);gap:8px;min-width:0;display:grid}.eight-step__track{align-items:flex-start;min-width:0;margin:0;padding:0;list-style:none;display:flex}.eight-step__node{text-align:center;flex:1 1 0;justify-items:center;gap:6px;min-width:0;display:grid;position:relative}.eight-step__node:before,.eight-step__node:after{content:"";top:calc(var(--step-dot) / 2 - 1px);background:var(--step-line);height:2px;position:absolute}.eight-step__node:before{left:0;right:50%}.eight-step__node:after{left:50%;right:0}.eight-step__node:first-child:before,.eight-step__node:last-child:after{display:none}.eight-step__node--done:before,.eight-step__node--done:after,.eight-step__node--current:before,.eight-step__node--action:before{background:var(--brand)}.eight-step__dot{z-index:1;width:var(--step-dot);height:var(--step-dot);background:var(--surface);color:var(--ink-500);box-shadow:inset 0 0 0 2px var(--step-line);font-variant-numeric:var(--font-tabular,tabular-nums);border-radius:50%;place-items:center;font-size:11px;font-weight:700;line-height:1;display:grid;position:relative}.eight-step__node--done .eight-step__dot{background:var(--brand);color:var(--on-brand,#fff);box-shadow:none}.eight-step__node--current .eight-step__dot{background:var(--seal);color:var(--on-fill,#fff);box-shadow:0 0 0 4px var(--seal-soft)}.eight-step__node--action .eight-step__dot{color:var(--warning);box-shadow:inset 0 0 0 2px var(--warning)}.eight-step__name{letter-spacing:.02em;color:var(--ink-500);word-break:break-word;font-size:11px;line-height:1.35}.eight-step__node--done .eight-step__name{color:var(--ink-600)}.eight-step__node--current .eight-step__name{color:var(--seal);font-weight:700}.eight-step__meta{color:var(--ink-500);font-variant-numeric:var(--font-tabular,tabular-nums);margin:0;font-size:12px}.eight-step--compact{--step-dot:14px;gap:6px}.eight-step--compact .eight-step__dot{box-shadow:inset 0 0 0 2px var(--step-line);font-size:9px}.eight-step--compact .eight-step__node--current .eight-step__dot{box-shadow:0 0 0 3px var(--seal-soft)}.eight-step.is-cancelled{opacity:.55}.eight-step.is-cancelled .eight-step__node--current .eight-step__dot{background:var(--ink-400);box-shadow:none}@media (width<=640px){.eight-step__name{display:none}}.district-progress-board__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.district-progress-board__head h2{margin:0}.district-progress-board__tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.district-progress-board__select select{min-width:220px}.district-progress-board__lanes{gap:10px;display:grid}.task-progress-lane{--pg:var(--pg-celadon);border:1px solid color-mix(in oklab, var(--pg) 18%, var(--line));border-left:3px solid var(--pg);border-radius:var(--radius-md);background:linear-gradient(118deg, color-mix(in oklab, var(--pg) 7%, var(--surface)), var(--surface) 46%);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);gap:10px;padding:12px 14px 14px 16px;display:grid}.task-progress-lane[data-tone=low]{--pg:var(--pg-ochre)}.task-progress-lane[data-tone=mid]{--pg:var(--pg-celadon)}.task-progress-lane[data-tone=high]{--pg:var(--pg-moss)}.task-progress-lane[data-tone=off]{--pg:var(--ink-300);opacity:.72}@media (hover:hover) and (pointer:fine){.task-progress-lane:hover{border-color:color-mix(in oklab, var(--pg) 55%, var(--line));box-shadow:0 6px 18px color-mix(in oklab, var(--pg) 14%, transparent)}}.task-progress-lane__meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.task-progress-lane__school{font-family:var(--font-display);letter-spacing:.02em;color:var(--brand-navy);font-weight:600;text-decoration:none}.task-progress-lane__school:hover{text-decoration:underline}.task-progress-lane__status{border:1px solid color-mix(in oklab, var(--pg) 24%, transparent);background:color-mix(in oklab, var(--pg) 11%, var(--surface));color:color-mix(in oklab, var(--pg) 72%, var(--ink-700));font-variant-numeric:var(--font-tabular,tabular-nums);border-radius:999px;padding:2px 10px;font-size:.78rem}.task-progress-lane__rail{cursor:default}.school-flow{counter-reset:school-step;gap:1.75rem}.school-flow__step{counter-increment:school-step;border:1px solid var(--s-border,var(--border,#dbe3ec));background:var(--s-bg-surface,#fff);border-radius:12px;padding:1.1rem 1.15rem 1.15rem 3.4rem;position:relative}.school-flow__step:before{content:counter(school-step);background:var(--s-brand-strong,var(--p-navy-900,#1b3a4b));width:1.7rem;height:1.7rem;color:var(--on-brand,#fff);border-radius:999px;place-items:center;font-size:.8rem;font-weight:700;display:grid;position:absolute;top:1.05rem;left:.9rem}.school-flow__step h2{margin-top:0}.receipt-banner{border-left:3px solid var(--brand);background:var(--surface-tint);border-radius:0 10px 10px 0;gap:.6rem;margin:0 0 1rem;padding:.9rem 1rem;display:grid}.plan-summary{background:var(--surface-tint);border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.65rem 1rem;margin:.75rem 0 1rem;padding:.85rem 1rem;display:grid}.plan-summary dt{color:var(--s-text-muted,#667085);font-size:.75rem}.plan-summary dd{margin:.15rem 0 0;font-weight:600}.school-checklist__domain h3,.school-catalog h4{margin:.8rem 0 .35rem;font-size:.95rem}.onsite-sheet{margin:0;padding:0;list-style:none}.onsite-sheet li{border-bottom:1px solid var(--s-border,#e8eef3);padding:.65rem 0}.ws-workflow__detail .plan-summary{margin-top:.5rem}.school-work{grid-template-columns:minmax(0,1.25fr) minmax(18rem,.9fr);align-items:start;gap:1rem;display:grid}.school-work__main,.school-work__side{gap:1rem;display:grid}.school-readonly-banner,.school-deadline-banner,.school-checklist-badge{border:1px solid var(--line,#d5dee8);border-radius:10px;margin:0 1.25rem .85rem;padding:.7rem .9rem}.school-readonly-banner{background:var(--warning-50,#fff6e5)}.school-deadline-banner{background:var(--brand-50)}.school-deadline-banner.is-soon{background:var(--warning-50,#fff6e5);border-color:var(--warning,#9a5b00)}.school-deadline-banner.is-overdue{background:var(--danger-50,#fde8e8);border-color:var(--danger,#c0392b)}.school-checklist-badge{background:var(--warning-50,#fff6e5);font-weight:600}.district-cockpit{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);grid-template-areas:"map left""map right""monthly monthly";align-items:start;gap:1rem;display:grid}@media (width>=1101px){.district-cockpit__right .col-secondary{display:none}}.portal-page.district-page>.role-placeholder__head,.portal-page.district-page>.page-demo-banner,.portal-page.district-page>.role-page__status{max-width:none}.district-page{background:0 0}.district-page--experts,.dossier-page--admin{--sec:var(--pg-ink)}.district-page--schools,.dossier-page--school,.dossier-page--projects{--sec:var(--pg-celadon)}.tasks-page{--sec:var(--pg-ochre)}.messages-page,.briefing-page{--sec:var(--pg-indigo)}.rectification-page{--sec:var(--pg-cinnabar)}.district-page>.role-placeholder__head{box-shadow:0 12px 32px oklch(28% .08 260/.08)}.district-cockpit__kpis{--sec:var(--pg-ink)}.district-cockpit__left{--sec:var(--pg-celadon)}.district-cockpit__map{--sec:var(--pg-indigo)}.district-cockpit__right{--sec:var(--pg-cinnabar)}.district-cockpit__monthly{--sec:var(--pg-ochre)}.district-cockpit>.role-placeholder__section,.district-cockpit>.ui-card{background:oklch(100% 0 0);border-color:#e5eaf3;border-radius:12px;height:100%;margin:0;padding-top:20px;position:relative;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.district-cockpit>.role-placeholder__section:before,.district-cockpit>.ui-card:before{display:none}.district-cockpit>.role-placeholder__section>h2,.district-cockpit .district-map>h2,.district-cockpit .district-progress-board__head{border-bottom:1px solid color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-line-strong), var(--line));margin-bottom:14px;padding-bottom:10px}.district-cockpit>.role-placeholder__section>h2,.district-cockpit .district-map>h2,.district-cockpit .district-progress-board__head h2{font-family:var(--font-body), "Noto Sans SC", system-ui, sans-serif;color:oklch(28% .03 260);align-items:center;gap:9px;font-size:1.1rem;font-weight:700;display:flex}.district-cockpit>.role-placeholder__section>h2:before,.district-cockpit .district-map>h2:before,.district-cockpit .district-progress-board__head h2:before{display:none}.district-cockpit .role-muted,.district-cockpit .district-map__caveat{border-left:2px solid color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-edge), var(--line));opacity:1;color:var(--ink-500);padding-left:10px;font-size:.82rem;line-height:1.6}.district-cockpit .role-form-row .role-muted{border-left:0;padding-left:0}.district-cockpit .role-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.9rem}.district-cockpit .role-kpi-grid>:first-child{--pg:var(--pg-ink)}.district-cockpit .role-kpi-grid>:nth-child(2){--pg:var(--pg-celadon)}.district-cockpit .role-kpi-grid>:nth-child(3){--pg:var(--pg-indigo)}.district-cockpit .role-kpi-grid>:nth-child(4){--pg:var(--pg-ochre)}.district-cockpit .kpi{border-color:color-mix(in oklab, var(--pg,var(--pg-ink)) 18%, var(--line));background:linear-gradient(152deg, color-mix(in oklab, var(--pg,var(--pg-ink)) 9%, var(--surface)), var(--surface) 62%);transition:box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);padding:15px 18px 14px 20px;position:relative;overflow:hidden}.district-cockpit .kpi:after{content:"";background:var(--pg,var(--pg-ink));opacity:.85;width:3px;position:absolute;inset:0 auto 0 0}@media (hover:hover) and (pointer:fine){.district-cockpit a.kpi:hover{border-color:color-mix(in oklab, var(--pg,var(--pg-ink)) 45%, var(--line));box-shadow:0 10px 26px color-mix(in oklab, var(--pg,var(--pg-ink)) 18%, transparent);transform:translateY(-2px)}}.district-cockpit .kpi label{letter-spacing:.08em;color:color-mix(in oklab, var(--pg,var(--pg-ink)) 62%, var(--ink-600));font-size:.8rem}.district-cockpit .kpi strong{font-family:var(--font-display);letter-spacing:.01em;color:color-mix(in oklab, var(--pg,var(--pg-ink)) 78%, var(--ink-900));margin:8px 0 2px;font-size:2.1rem;font-weight:700}.kpi__meter{background:color-mix(in oklab, var(--pg,var(--pg-ink)) 16%, var(--line));border-radius:999px;height:4px;margin-top:10px;overflow:hidden}.kpi__meter span{background:linear-gradient(90deg, color-mix(in oklab, var(--pg,var(--pg-ink)) 55%, var(--surface)), var(--pg,var(--pg-ink)));border-radius:999px;height:100%;display:block}.district-cockpit .district-map__svg{border-color:color-mix(in oklab, var(--pg-indigo) 24%, var(--line));border-radius:var(--radius-md);max-width:none;box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--pg-indigo) 8%, transparent)}.district-cockpit .district-map__legend{opacity:1;gap:.35rem .4rem;font-size:.75rem}.district-map__legends{gap:6px;display:grid}.district-map__legend span{border:1px solid var(--line);background:var(--surface-tint);color:var(--ink-500);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.district-map__legend-title{letter-spacing:.1em;color:var(--ink-600);align-self:center;font-size:.72rem;font-weight:600}.district-map__legend-dot{background:var(--dot,var(--pg-ink));width:8px;height:8px;box-shadow:0 0 0 2px color-mix(in oklab, var(--surface) 80%, transparent);border-radius:50%}.role-empty-note{border:1px dashed color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-line-strong), var(--line));border-radius:var(--radius-md);background:color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-zebra), var(--surface));color:var(--ink-500);gap:4px;margin:0;padding:14px 16px;font-size:.85rem;line-height:1.6;display:grid}.role-empty-note strong{color:var(--ink-700);font-size:.95rem}.district-monthly__tables{gap:1rem 1.25rem;display:grid}.district-monthly__block{min-width:0}.district-monthly__block h3{margin:0 0 .5rem}@media (width>=1200px){.district-monthly__tables{grid-template-columns:repeat(2,minmax(0,1fr))}}.rect-stats{grid-template-columns:repeat(auto-fit,minmax(9rem,13rem));gap:.6rem;margin:0 0 14px;padding:0;list-style:none;display:grid}.district-cockpit__right .rect-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.district-cockpit__right .rect-stats a,.district-cockpit__right .rect-stats>li>span{padding:8px 10px}.district-cockpit__right .rect-stat__value{font-size:1.3rem}.rect-stats>li:first-child{--pg:var(--pg-ochre)}.rect-stats>li:nth-child(2){--pg:var(--pg-indigo)}.rect-stats>li:nth-child(3){--pg:var(--pg-cinnabar)}.rect-stats>li:nth-child(4){--pg:var(--pg-moss)}.rect-stats a,.rect-stats>li>span{border:1px solid color-mix(in oklab, var(--pg) 20%, var(--line));border-left:3px solid var(--pg);border-radius:var(--radius-md);background:linear-gradient(150deg, color-mix(in oklab, var(--pg) 10%, var(--surface)), var(--surface) 78%);color:inherit;transition:box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);gap:1px;padding:10px 14px;text-decoration:none;display:grid}@media (hover:hover) and (pointer:fine){.rect-stats a:hover{border-color:color-mix(in oklab, var(--pg) 55%, var(--line));box-shadow:0 6px 18px color-mix(in oklab, var(--pg) 16%, transparent)}}.rect-stat__label{letter-spacing:.04em;color:var(--ink-500);font-size:.78rem}.rect-stat__value{font-family:var(--font-display);color:color-mix(in oklab, var(--pg) 82%, var(--ink-900));font-variant-numeric:var(--font-tabular,tabular-nums);font-size:1.55rem;font-weight:700;line-height:1.2}.rect-stats .is-alert a{border-color:color-mix(in oklab, var(--pg) 45%, var(--line));background:linear-gradient(150deg, color-mix(in oklab, var(--pg) 16%, var(--surface)), var(--surface) 78%)}.district-cockpit__right .role-form-row{border:1px solid color-mix(in oklab, var(--sec) var(--sec-line), var(--line));border-radius:var(--radius-md);background:linear-gradient(180deg, color-mix(in oklab, var(--sec) var(--sec-wash), var(--surface)), var(--surface-tint));gap:10px 16px;padding:10px 14px}.district-cockpit__right .role-form-row label{color:var(--ink-600);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.district-cockpit__right .role-form-row select{width:auto;min-width:8.5rem}.district-cockpit__right .role-form-row input[type=checkbox]{width:auto}.district-cockpit .role-data-table thead th{z-index:1;white-space:nowrap;position:sticky;top:0}.table-scroll{border:1px solid color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-line), var(--line));border-radius:var(--radius-md);background:var(--surface)}.role-data-table thead th{letter-spacing:.02em;color:color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-head-text), var(--ink-600));background:color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-head), var(--surface));border-bottom:1px solid color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-line-strong), var(--line));padding-top:10px;padding-bottom:10px;font-size:.8rem;font-weight:600}.role-data-table tbody tr:nth-child(2n) td{background:color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-zebra), transparent)}@media (hover:hover) and (pointer:fine){.role-data-table tbody tr:hover td{background:color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-hover), transparent)}}.role-data-table tbody td:first-child{color:var(--ink-700);font-weight:600}.role-data-table caption{text-align:left;color:var(--ink-500);padding:8px 12px;font-size:.8rem}.role-placeholder select,.role-placeholder input[type=month],.role-placeholder input[type=date]{appearance:none;border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface);color:var(--ink-900);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%2366758a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;padding:7px 32px 7px 12px}html[data-theme=dark] .role-placeholder select,html[data-theme=dark] .role-placeholder input[type=month],html[data-theme=dark] .role-placeholder input[type=date]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23a8b2c3' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.role-placeholder select:hover,.role-placeholder input[type=month]:hover{border-color:color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-head-text), var(--border))}.role-placeholder select:focus-visible,.role-placeholder input[type=month]:focus-visible,.role-placeholder input[type=date]:focus-visible{border-color:var(--sec,var(--pg-ink));box-shadow:0 0 0 3px color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-ring), transparent);outline:none}.role-data-table .is-overdue{color:var(--danger);font-weight:600}.role-data-table .is-empty{text-align:center;color:var(--ink-500);padding:22px 12px}.district-cockpit__kpis{grid-area:kpis}.district-cockpit__left{grid-area:left}.district-cockpit__map{grid-area:map}.district-cockpit__right{grid-area:right}.district-cockpit__monthly{grid-area:monthly}.district-map__toolbar{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);align-items:stretch;gap:0;width:fit-content;display:flex;overflow:hidden}.district-map__toolbar .district-map__zoom{border-left:1px solid var(--line);padding:0 12px}.district-map__toolbar .ui-btn,.district-map__toolbar .portal-tool-btn{border:0;border-right:1px solid var(--line);background:0 0;border-radius:0;min-height:2rem;padding:6px 16px}.district-map__toolbar .ui-btn:last-child,.district-map__toolbar .portal-tool-btn:last-child{border-right:0}.district-map__hover{background:var(--surface-tint,#f4f8f8);border-radius:8px;margin:0;padding:.4rem .6rem}.district-map__svg{cursor:grab}.task-timeline__steps{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.task-timeline__step-label{font-weight:700}@media (width<=1100px){.district-cockpit{grid-template-columns:1fr;grid-template-areas:"map""left""right""monthly"}.school-work{grid-template-columns:1fr}}html[data-theme=dark] .school-readonly-banner,html[data-theme=dark] .school-deadline-banner.is-soon,html[data-theme=dark] .school-checklist-badge{background:var(--warning-50);color:var(--ink-900)}html[data-theme=dark] .school-deadline-banner.is-overdue{background:var(--danger-50)}html[data-theme=dark] .ui-modal__card,html[data-theme=dark] .ui-card,html[data-theme=dark] .school-flow__step{background:var(--surface);color:var(--ink-900);border-color:var(--line)}.role-form-stack{gap:.75rem;display:grid}.role-form-stack .password-field,.role-form-stack .password-field__control,.role-form-stack .password-field__control input{box-sizing:border-box;width:100%;max-width:100%}.role-form-stack label{color:var(--ink-700,#3a4658);gap:.3rem;display:grid}.role-switch-field{min-height:2.75rem;color:var(--ink-700,#3a4658);justify-content:space-between;align-items:center;gap:.75rem;display:flex}.role-switch{min-width:2.75rem;min-height:2.75rem;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.role-switch:disabled{cursor:not-allowed;opacity:.72}.role-switch:focus-visible{outline:2px solid var(--brand,#24344c);outline-offset:3px;border-radius:var(--radius-md,10px)}.role-switch__track{background:color-mix(in oklab, var(--ink-500,#6b7789) 28%, var(--surface-muted,#eef1f5));border:1px solid color-mix(in oklab, var(--pg-ink,var(--brand,#24344c)) 18%, var(--line,#e2e7ee));width:44px;height:24px;transition:background var(--dur-fast,.15s) var(--ease-out,ease), border-color var(--dur-fast,.15s) var(--ease-out,ease);border-radius:999px;flex-shrink:0;position:relative}.role-switch[aria-checked=true] .role-switch__track{background:color-mix(in oklab, var(--pg-moss) 70%, var(--surface,#fff));border-color:color-mix(in oklab, var(--pg-moss) 42%, var(--line,#e2e7ee))}.role-switch__thumb{background:var(--surface,#fff);width:18px;height:18px;transition:transform var(--dur-fast,.15s) var(--ease-out,ease);border-radius:999px;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px oklch(0% 0 0/.16)}.role-switch[aria-checked=true] .role-switch__thumb{transform:translate(20px)}@media (prefers-reduced-motion:reduce){.role-switch__track,.role-switch__thumb{transition:none}}.expert-nav-fieldset{border:1px solid color-mix(in oklab, var(--pg-ink,var(--brand,#24344c)) 16%, var(--line,#e2e7ee));border-radius:var(--radius-md,10px);background:color-mix(in oklab, var(--pg-ink,var(--brand,#24344c)) 5%, var(--surface,#fff));margin:0;padding:.75rem 1rem .85rem}.expert-nav-fieldset legend{color:var(--ink-900);padding:0 .35rem;font-weight:600}.expert-nav-fieldset label{align-items:center;gap:.5rem;min-height:2.5rem;margin:0;display:flex}.role-form-stack .expert-nav-fieldset{flex-direction:column;gap:2px;display:flex}.role-form-stack .expert-nav-fieldset label{flex-direction:row;align-items:center;gap:.5rem;min-height:2.5rem;margin:0;display:flex}.school-workspace{--sec:var(--pg-celadon);--page-measure:var(--page-max,1680px);box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:22px var(--portal-gutter,28px) 40px;position:relative}.school-page-toast-host{z-index:80;pointer-events:none;position:fixed;top:1.25rem;left:50%;transform:translate(-50%)}.school-page-toast{color:oklch(28% .03 260);white-space:nowrap;background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;margin:0;padding:.7rem 1.15rem;font-size:.95rem;font-weight:600;line-height:1.4;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.school-confirm-copy{text-align:center;margin:0}.portal-page--bare{background:oklch(97% .01 250)}.portal-page--bare #portal-main{min-height:100vh}.portal-page--bare .portal-shell,.portal-page--bare .portal-shell--no-right{grid-template-columns:minmax(0,1fr);min-height:100vh;display:block}.portal-page--bare .portal-menu-btn{display:none}@media (prefers-reduced-motion:reduce){.school-page-toast,.school-kpi{transition:none}.school-kpi:hover{transform:none}}.school-kpi-panel{background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;margin:1.1rem 0 1.5rem;padding:1.1rem 1.2rem .55rem;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.school-kpi-panel h2{font-family:var(--font-body), system-ui, sans-serif;margin:0 0 .35rem;font-size:1.02rem;font-weight:700}.school-progress-panel__lead{color:oklch(55% .02 260);margin:0 0 .85rem;font-size:.82rem}.school-progress-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.school-progress-item{border:0;border-bottom:1px solid color-mix(in oklab, var(--pg-ink,#1e3a5f) 10%, var(--line,#e4e9ef));background:0 0;border-radius:0;flex-wrap:wrap;align-items:center;gap:.45rem 1rem;min-height:2.7rem;padding:.4rem .15rem;display:flex}.school-progress-item:last-child{border-bottom:0}.school-progress-item__identity{flex:0 15.5rem;align-items:center;gap:.5rem;min-width:0;display:flex}.school-progress-item__title{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:650;overflow:hidden}.school-progress-item .tag{white-space:nowrap;flex-shrink:0}.school-progress-item{border-bottom:1px solid var(--border-subtle,#e8edf3);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem .25rem;display:flex}.school-overview-ring-wrap{flex:auto;justify-content:flex-end;align-items:center;display:flex}.school-progress-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.25rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}@media (width>=860px){.school-progress-grid{grid-template-columns:repeat(2,1fr)}}.school-progress-card{z-index:1;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;padding:1.25rem 1.5rem;transition:transform .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 2px 8px -2px #1e3a5f0d}.school-progress-card:hover{z-index:5;border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 8px 20px -4px #1e3a5f17}.school-progress-card.is-active-card{z-index:100!important}.school-progress-card:has(.school-progress-popover){z-index:100!important}.school-progress-card:has(.school-progress-ring-wrap.is-open){z-index:100!important}.school-progress-card-inner{flex-direction:column;gap:1rem;width:100%;display:flex}.school-progress-card-head{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.75rem;display:flex}.school-progress-card-title{color:#1e3a5f;text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:700;overflow:hidden}.school-progress-card-tags{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.school-progress-card-body{justify-content:center;align-items:center;padding:.25rem 0;display:flex}.school-progress-card-empty-label{color:#64748b;padding:1rem 0;font-size:.9rem}.school-overview-meter{flex:14rem;align-items:center;gap:.65rem;min-width:0;display:flex}.school-overview-meter__track{background:var(--ink-100,#eef1f5);min-width:4.5rem;height:.625rem;box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--brand-navy,#1e3a5f) 12%, transparent);border-radius:999px;flex:auto;overflow:hidden}.school-overview-meter__fill{border-radius:inherit;background:var(--brand-navy,#24344c);height:100%;display:block}.school-overview-meter.is-complete .school-overview-meter__fill{background:var(--success,#2f6b52)}.school-overview-meter__pct{font-family:var(--font-data), var(--font-body), sans-serif;font-variant-numeric:tabular-nums;text-align:right;min-width:3.1rem;color:var(--ink-800,#243044);font-size:.88rem;font-weight:650}.school-overview-meter__count{font-family:var(--font-data), var(--font-body), sans-serif;font-variant-numeric:tabular-nums;min-width:3.4rem;color:var(--ink-500,#5a6980);font-size:.82rem}.school-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:1rem;display:grid}.school-kpi{text-align:left;cursor:pointer;background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;gap:.45rem;min-height:6.75rem;padding:.9rem .95rem .85rem;transition:transform .18s cubic-bezier(.22,1,.36,1);display:grid}.school-kpi:hover{transform:translateY(-2px)}.school-kpi span{color:oklch(55% .02 260);font-size:.78rem}.school-kpi strong{font-family:var(--font-data), var(--font-body), sans-serif;font-variant-numeric:tabular-nums;color:oklch(52% .18 255);font-size:1.85rem;font-weight:600;line-height:1}.school-filter{flex-wrap:wrap;align-items:end;gap:.65rem;margin:0 0 1rem;display:flex}.school-filter input,.school-filter select{min-height:44px}.school-query{border:1px solid var(--border,#d8dee7);border-radius:var(--radius-lg,12px);background:var(--surface,#fbfcfd);box-shadow:var(--shadow-md);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 1.25rem;margin:0 0 1rem;padding:1rem 1.15rem 1.1rem;display:flex}.school-query__fields{flex-wrap:wrap;flex:16rem;gap:.85rem 1.15rem;display:flex}.school-query__field{gap:.35rem;min-width:10.5rem;display:grid}.school-query__label{color:var(--ink-700);font-size:.82rem}.school-query input,.school-query select{min-height:var(--control-h,44px);border:1px solid var(--border);border-radius:var(--radius-md,10px);background:var(--surface,#fff);min-width:10.5rem;color:var(--ink-900);padding:7px 11px}.school-query input:focus-visible,.school-query select:focus-visible{outline:var(--focus-ring,2px solid var(--brand,#24344c));outline-offset:1px}.school-query input[type=date]{color:#111;-webkit-text-fill-color:#111;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;accent-color:#111;min-width:11.5rem}.school-query select.is-empty{color:color-mix(in oklab, var(--ink-900) 42%, var(--surface,#fff))}.school-query__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.school-action-bar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;margin:0 0 1rem;display:flex}.school-file-check-cell{text-align:center;vertical-align:middle;width:2.4rem}.school-file-check-cell input{margin:0}.school-batch-names{text-align:left;max-height:12rem;margin:.75rem 0 0;padding-left:1.25rem;overflow:auto}.school-batch-names li{margin:.15rem 0}.school-table-card{background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;min-width:0;max-width:100%;overflow:auto;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.school-table-card table{border-collapse:collapse;width:100%;min-width:36rem}.school-table-card .role-data-table th,.school-table-card .role-data-table td{padding:12px 14px}.school-cascade{width:100%;min-width:10.5rem;position:relative}.school-cascade__trigger{border:1px solid var(--border);border-radius:var(--radius-md,10px);background:var(--surface,#fff);width:100%;min-width:10.5rem;min-height:44px;color:var(--ink-900);text-align:left;font:inherit;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--ink-500,#66758a) 50%), linear-gradient(135deg, var(--ink-500,#66758a) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 12px);background-repeat:no-repeat;background-size:6px 6px;justify-content:space-between;align-items:center;padding:8px 36px 8px 12px;display:flex}.school-cascade__trigger.is-empty{color:var(--ink-400,#8b97a8)}.school-cascade__trigger:focus-visible{outline:2px solid var(--brand,#24344c);outline-offset:2px}.school-cascade__trigger:disabled{cursor:not-allowed;opacity:.65}.school-cascade__panel{z-index:110;border:1px solid color-mix(in oklab, var(--pg-celadon,var(--brand)) 22%, var(--line));border-radius:var(--radius-md,10px);background:var(--surface,#fff);max-height:min(18rem,50vh);box-shadow:var(--shadow-md,0 10px 28px oklch(28% .03 255/.12));display:flex;position:fixed;overflow:hidden}.school-cascade__col{border-right:1px solid color-mix(in oklab, var(--pg-celadon,var(--brand)) 14%, var(--line));flex-direction:column;flex:9rem;min-width:9rem;max-width:14rem;display:flex}.school-cascade__col:last-child{border-right:0}.school-cascade__col-title{color:var(--ink-700,#3a4658);background:color-mix(in oklab, var(--pg-celadon,var(--brand)) 8%, var(--surface,#fff));border-bottom:1px solid color-mix(in oklab, var(--pg-celadon,var(--brand)) 14%, var(--line));margin:0;padding:.55rem .75rem .4rem;font-size:.78rem}.school-cascade__list{margin:0;padding:.25rem 0;list-style:none;overflow:auto}.school-cascade__option{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:.45rem .75rem;display:block}.school-cascade__option.has-kids{background-image:linear-gradient(45deg, transparent 50%, var(--ink-400,#8b97a8) 50%), linear-gradient(135deg, var(--ink-400,#8b97a8) 50%, transparent 50%);background-position:calc(100% - 14px),calc(100% - 10px);background-repeat:no-repeat;background-size:5px 5px;padding-right:1.4rem}.school-cascade__option.is-on{background-color:color-mix(in oklab, var(--pg-celadon,var(--brand)) 10%, var(--surface,#fff));box-shadow:inset 3px 0 0 var(--seal,#9a3412)}.school-cascade__option:hover,.school-cascade__option:focus-visible{background-color:color-mix(in oklab, var(--pg-celadon,var(--brand)) 7%, var(--surface,#fff))}@media (prefers-reduced-motion:reduce){.school-cascade__option,.school-cascade__trigger{transition:none}}.school-file-pick{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.school-file-pick__btn.ui-btn{background:var(--brand,#24344c);color:var(--on-brand,#fff);box-shadow:none;border-color:#0000}@media (hover:hover) and (pointer:fine){.school-file-pick__btn.ui-btn:hover:not(:disabled):not(.is-disabled){background:var(--brand-600,#1b283b);color:var(--on-brand,#fff)}}.school-file-pick__name{color:var(--ink-700,#3a4658);word-break:break-all;margin:.35rem 0 0;line-height:1.45}.school-file-pick__list{gap:.35rem;max-height:16rem;margin:.65rem 0 0;padding:0;list-style:none;display:grid;overflow:auto}.school-file-pick__row{text-align:left;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.school-file-pick__row .school-file-pick__name{flex:1;min-width:0;margin:0}.school-file-name-cell,.school-file-name-cell .school-file-link{text-align:left}.school-task-name{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.school-file-history{overflow-x:auto}.school-table-card__empty{color:var(--ink-500);margin:0;padding:1.2rem 1.15rem 1.35rem}.role-ops{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.school-work-panel{border:1px solid color-mix(in oklab, var(--sec,var(--pg-ink)) 12%, var(--line));border-radius:var(--radius-md,10px);background:var(--surface,#fff);margin-top:1.5rem;padding:1.1rem 1.2rem 1.25rem}.school-work-panel h2,.school-work-panel h3{font-family:Noto Serif SC,serif}.school-work-panel h2{margin:0 0 1rem}.school-row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.school-stepper{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.school-stepper__item{border:1px solid var(--line);color:var(--ink-500);border-radius:999px;padding:.35rem .7rem}.school-stepper__item.is-done{color:var(--pg-moss,#3d6b4f);border-color:color-mix(in oklab, var(--pg-moss,#3d6b4f) 40%, var(--line))}.school-stepper__item.is-current{color:var(--seal,#9a3412);border-color:var(--seal,#9a3412);font-weight:600}.school-stepper__item.is-todo{opacity:.45}.school-file-cat-row{flex-wrap:wrap;justify-content:flex-start;align-items:stretch;gap:.75rem;margin:0 0 1rem;display:flex}.school-file-cat-card{min-width:7.5rem;min-height:3.25rem;font:inherit;color:oklch(32% .04 260);cursor:pointer;text-align:left;background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;padding:.7rem .95rem;font-weight:600;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.school-file-cat-card.is-on{box-shadow:inset 3px 0 0 var(--seal,#9a3412), 0 12px 32px oklch(28% .08 260/.08);background:color-mix(in oklab, var(--pg-celadon,var(--brand)) 10%, var(--surface,#fff))}.school-file-cat-add-wrap{align-items:center;gap:.35rem;display:inline-flex}.school-file-cat-add-wrap--center{justify-content:center}.school-files-empty{justify-items:center;gap:1rem;padding:3.5rem 1rem;display:grid}.school-files-empty__title{text-align:center;margin:.5rem 0 1rem;font-size:1.15rem;font-weight:600}.school-file-cat-editor{gap:.65rem;display:grid}.school-file-cat-editor__row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.school-file-cat-editor__row input{flex:1;min-width:0}.school-file-cat-checks{border:0;gap:.65rem;margin:0;padding:0;display:grid}.school-file-cat-checks legend{margin-bottom:.35rem;padding:0;font-size:.92rem}.school-file-cat-checks label{align-items:center;gap:.5rem;display:flex}.school-file-cat-checks__hint{color:var(--danger,#b42318);margin:.5rem 0 0;font-size:.88rem}.school-guide-pointer{color:oklch(52% .18 255);transform-origin:12% 40%;animation:1.05s ease-in-out infinite school-guide-nudge;display:inline-flex}.school-guide-pointer__hand{width:1.85rem;height:1.85rem}@keyframes school-guide-nudge{0%,to{transform:translate(3px)}50%{transform:translate(-5px)}}@media (prefers-reduced-motion:reduce){.school-guide-pointer{animation:none}}.school-ai-classify{place-items:center;min-height:12rem;padding:1.25rem .5rem;display:grid}.school-ai-classify__stage{place-items:center;width:11.5rem;height:11.5rem;display:grid;position:relative}.school-ai-classify__ring{border:3px solid oklab(52% -.0465874 -.173867/.22);border-top-color:oklch(52% .18 255);border-radius:50%;animation:.9s linear infinite school-ai-classify-spin;position:absolute;inset:0}.school-ai-classify__label{z-index:1;color:oklch(32% .04 260);text-align:center;margin:0;font-weight:650}@keyframes school-ai-classify-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.school-ai-classify__ring{border-color:oklch(52% .18 255);animation:none}}.school-upload-summary{text-align:left;gap:.65rem;display:grid}.school-upload-summary p{margin:0}.school-upload-summary__group{text-align:left;gap:.25rem;display:grid}.school-upload-summary__files{text-align:left;gap:.2rem;max-height:8.7rem;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.school-upload-summary__files li{word-break:break-all;margin:0;line-height:1.45}.school-file-category{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;display:block;overflow:hidden}.school-file-link{color:var(--pg-indigo,#2f4d7a);text-align:left;text-decoration:underline}.school-file-preview{white-space:pre-wrap;background:color-mix(in oklab, var(--pg-ink) 5%, var(--surface));max-height:18rem;padding:.75rem;overflow:auto}.school-check,.school-file-pick label{align-items:center;gap:.5rem;min-height:2.5rem;display:flex}.school-assign-roster{border-top:1px solid #e5eaf3;margin:1rem 0 0;padding-top:.85rem}.school-assign-roster h4{font-family:var(--font-body), "Noto Sans SC", system-ui, sans-serif;color:var(--ink-500,#667085);margin:0 0 .35rem;font-size:.82rem;font-weight:600}.school-assign-roster ul{margin:0;padding:0;list-style:none}.school-assign-roster li,.school-assign-roster p{min-height:2.25rem;font-family:var(--font-body), "Noto Sans SC", system-ui, sans-serif;color:oklch(28% .03 260);align-items:center;margin:0;display:flex}.school-pending-receipts{--sec:var(--pg-ochre)}.school-pending-receipts__hint{color:var(--ink-700,#3a4658);margin:0}.school-pending-receipts .school-table-card{box-shadow:none}.school-pending-receipts .role-data-table th:first-child,.school-pending-receipts .role-data-table td:first-child{text-align:center;width:3rem;font-weight:400}.school-pending-receipts input[type=checkbox]{width:1.15rem;height:1.15rem}.school-pending-receipts td:first-child,.school-pending-receipts th:first-child{min-height:2.75rem}.tag--overdue{color:var(--pg-cinnabar,#9a3412);margin-left:.4rem}.school-rect-card{border-bottom:1px solid var(--line);padding:.85rem 0}.material-preview-page{--sec:var(--pg-celadon)}.material-preview-page__body{white-space:pre-wrap;word-break:break-word;background:var(--surface);border:1px solid color-mix(in oklab, var(--sec) 16%, var(--line));border-radius:var(--radius-md,10px);font-family:var(--font-body,inherit);margin:0;padding:1.25rem 1.5rem;font-size:.95rem;line-height:1.7}.school-prep-head{justify-content:space-between;align-items:baseline;gap:1rem;margin:0 0 1.25rem;display:flex}.school-prep-head h1{font-family:var(--font-body), "Noto Sans SC", system-ui, sans-serif;letter-spacing:.04em;color:oklch(28% .03 260);margin:0;font-size:1.45rem;font-weight:700}.school-prep-lede{--sec:var(--pg-celadon);border-left:2px solid var(--sec);color:var(--ink-700);max-width:46rem;margin:0 0 1rem;padding-left:10px;font-size:.9rem;line-height:1.65}.school-prep-upload-plan{--sec:var(--pg-celadon)}.school-prep-upload-plan__count{font-family:var(--font-display), "Noto Serif SC", serif;letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--pg-ink);margin:.35rem 0 .5rem;font-size:2.1rem;font-weight:700;line-height:1.1}.school-query .school-cascade,.school-query .school-cascade__trigger{min-width:10.5rem}.ui-modal__body>.school-query__field{margin-top:.85rem}.school-prep-upload-link{min-height:44px;color:var(--pg-indigo,#2f4d7a);cursor:pointer;font:inherit;background:0 0;border:0;margin:0;padding:0;text-decoration:underline}.school-prep-picker-table th:first-child,.school-prep-picker-table td:first-child{text-align:center;width:3rem}.ui-modal__card.is-max .school-prep-picker-table{table-layout:fixed;width:100%}.ui-modal__card.is-max .school-prep-picker-table th:nth-child(3),.ui-modal__card.is-max .school-prep-picker-table td:nth-child(3){text-overflow:ellipsis;overflow:hidden}.ui-modal__card.is-max .school-prep-picker-table .school-file-category{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.school-prep-files{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.school-prep-files li{text-align:left;align-items:center;min-height:44px;display:flex}.school-prep-score{border:1px solid var(--border);border-radius:var(--radius-md,10px);width:5.5rem;min-height:44px;padding:8px 10px}.school-prep-table-card{overflow:visible}.school-prep-table-card .table-wrap{max-height:none;overflow:visible}.school-prep-table-card.is-frozen .table-wrap{top:var(--prep-freeze-top,0px);z-index:4;max-height:calc(100dvh - var(--prep-freeze-top,0px) - 5.75rem);background:var(--surface,#fff);position:sticky;overflow:auto}.school-prep-grid{border-collapse:separate;border-spacing:0}.school-prep-grid thead th{vertical-align:bottom}.school-prep-th-sum{color:var(--pg-cinnabar,#a33b32);white-space:nowrap;margin-top:.2rem;font-size:.78rem;font-weight:650;display:block}.school-prep-grid.is-frozen thead th{z-index:2;background:var(--surface,#fff);background:color-mix(in oklab, var(--sec,var(--pg-ink)) var(--sec-head), var(--surface));box-shadow:0 1px 0 color-mix(in oklab, var(--sec,var(--pg-ink)) 18%, var(--line));position:sticky;top:0}.school-prep-freeze-th{white-space:nowrap}.school-prep-freeze{color:var(--ink-600,#5a6980);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;margin-top:.4rem;font-size:.78rem;font-weight:500;display:flex}.school-prep-freeze input{width:1.05rem;height:1.05rem;accent-color:var(--brand,#24344c)}.school-prep-score-stack{flex-direction:column;align-items:flex-start;gap:.25rem;line-height:1.35;display:flex}.school-prep-score-stack .school-prep-score{width:4.75rem;min-height:2.25rem;padding:4px 8px}.school-prep-coverage{align-items:center;gap:8px;display:flex}.school-prep-coverage progress{width:88px;height:8px}.school-prep-clauses{color:#4b5563;margin:6px 0 0;padding-left:1.1rem;font-size:.8rem}.school-upload-stay-note{border-radius:var(--radius-md,8px);background:color-mix(in oklab, #d4a017 22%, var(--surface));color:#5c4300;border:1px solid oklab(73.4969% .0146058 .145484/.4);margin:0 0 10px;padding:6px 12px;font-size:.9rem;line-height:1.45}.school-upload-banner{--sec:var(--pg-celadon);border-radius:var(--radius-lg,12px);background:color-mix(in oklab, var(--sec) 7%, var(--surface));border:1px solid color-mix(in oklab, var(--sec) 22%, transparent);box-shadow:inset 0 2px 0 var(--sec);flex-direction:column;gap:8px;margin:0 0 10px;padding:10px 12px;display:flex}.school-upload-banner__text{color:var(--ink-900);margin:0;font-size:.9rem;line-height:1.55}.school-upload-banner__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.school-upload-banner__actions .ui-btn--ghost{margin-left:auto}.school-upload-banner--done{--sec:var(--pg-moss)}.school-upload-banner--queue,.school-upload-banner--ingesting{--sec:var(--pg-celadon)}.school-upload-banner--error{--sec:var(--pg-cinnabar)}.school-upload-banner--error .school-upload-banner__text{color:var(--danger,#a33b32)}.school-upload-banner__detail{color:var(--ink-700);margin:0;font-size:.85rem}.school-upload-banner__detail summary{cursor:pointer;width:fit-content;min-height:44px;color:var(--pg-ink);align-items:center;display:inline-flex}.school-upload-banner__detail summary:focus-visible,.school-upload-banner__actions .ui-btn:focus-visible{outline:2px solid color-mix(in oklab, var(--sec) 55%, transparent);outline-offset:2px}.school-upload-banner__detail p{border-left:2px solid var(--sec);margin:4px 0 0;padding-left:8px}.school-upload-banner__skip{border-left:2px solid var(--pg-ochre);color:var(--ink-800);margin:0;padding-left:8px;font-size:.85rem;line-height:1.55}.school-upload-banner__progress{background:color-mix(in oklab, var(--sec) 16%, var(--surface));border-radius:99px;height:8px;overflow:hidden}.school-upload-banner__progress i{background:var(--sec);height:100%;display:block}.school-query--collapsed{justify-content:flex-end;padding:4px 0;display:flex}.school-query__toggle{cursor:pointer;color:#334155;background:0 0;border:0;font-size:1.1rem;line-height:1}.school-subpage-back{margin:0 0 12px}.school-prep-pager{color:var(--ink-700);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;margin:.75rem 0 0;font-size:.875rem;display:flex}.school-prep-foot{background:color-mix(in oklab, var(--surface,#fff) 88%, transparent);border-top:1px solid color-mix(in oklab, var(--sec,var(--pg-celadon)) 18%, var(--line));flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin:1.25rem 0 0;padding:.85rem 0 .15rem;display:flex;position:sticky;bottom:0}.school-prep-picker{gap:.35rem;max-height:22rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid;overflow:auto}.school-prep-picker label{align-items:center;gap:.65rem;min-height:2.75rem;display:flex}.school-circle-check{appearance:none;border:2px solid var(--pg-ink,#24344c);background:var(--surface,#fff);border-radius:50%;flex:0 0 1.15rem;width:1.15rem;height:1.15rem}.school-circle-check:checked{background:var(--pg-ink,#24344c);box-shadow:inset 0 0 0 3px var(--surface,#fff)}.school-circle-check:focus-visible{outline:2px solid var(--pg-ink,#24344c);outline-offset:2px}.school-prep-grid td.is-locked,.school-prep-grid tr.is-locked td{color:color-mix(in oklab, var(--ink-900) 55%, var(--surface,#fff))}.school-prep-grid tbody tr.is-focus td{background:color-mix(in oklab, var(--pg-ochre) 14%, var(--surface));box-shadow:inset 3px 0 0 var(--pg-ochre)}.school-prep-tip-trigger{appearance:none;font:inherit;color:inherit;text-align:left;cursor:help;border:0;border-bottom:1px dotted color-mix(in oklab, currentColor 42%, transparent);background:0 0;max-width:100%;margin:0;padding:0}.school-prep-tip-trigger.is-strong{font-weight:700}.school-prep-tip-trigger:focus-visible{outline:2px solid var(--brand,#24344c);outline-offset:2px;border-radius:4px}.school-prep-tip{z-index:80;background:var(--surface,#fff);color:oklch(28% .03 260);white-space:pre-wrap;text-align:left;pointer-events:auto;border:1px solid #d8dee7;border-radius:10px;max-height:12rem;padding:.7rem .85rem;line-height:1.5;position:fixed;overflow:auto;box-shadow:0 10px 28px oklab(27.4532% -.00843437 -.0389071/.18)}.school-prep-index{font-variant-numeric:tabular-nums;width:3rem;color:var(--ink-500,#5a6980)}.school-prep-pager__size{align-items:center;gap:.35rem;display:inline-flex}.school-prep-pager__size select{border:1px solid var(--border,#d8dee7);border-radius:var(--radius-md,10px);background:var(--surface,#fff);min-height:2.25rem;padding:0 .5rem}.school-prep-meter{--meter:var(--pg-celadon,#376b66);--meter-soft:var(--accent-50,#eef6f5);min-width:9.5rem;max-width:14rem}.school-prep-meter.is-idle{--meter:var(--ink-400,#7c8898);--meter-soft:var(--ink-100,#eef1f5)}.school-prep-meter.is-start{--meter:var(--accent,#376b66);--meter-soft:var(--accent-50,#eef6f5)}.school-prep-meter.is-mid{--meter:var(--warning,#8a5a12);--meter-soft:var(--warning-50,#f8f1e4)}.school-prep-meter.is-ready{--meter:var(--info,#3d5a7a);--meter-soft:var(--info-50,#eef2f7)}.school-prep-meter.is-done{--meter:var(--success,#2f6b52);--meter-soft:var(--success-50,#eaf4ee)}.school-prep-meter__head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.28rem;display:flex}.school-prep-meter__pct{font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--meter);font-size:.98rem}.school-prep-meter__count{font-variant-numeric:tabular-nums;color:var(--ink-700,#3a4658);font-size:.82rem}.school-prep-meter__track{background:var(--meter-soft);height:.55rem;box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--meter) 18%, transparent);border-radius:999px;overflow:hidden}.school-prep-meter__fill{border-radius:inherit;background:linear-gradient(90deg, color-mix(in oklab, var(--meter) 82%, var(--brand,#24344c)), var(--meter));height:100%;display:block}.school-prep-meter__status{color:var(--ink-500,#5a6980);margin-top:.22rem;font-size:.78rem;display:block}.confidentiality-gate .ui-modal__footer{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem}.confidentiality-notice__consent{text-align:left;margin-right:auto}.confidentiality-notice__check{text-align:left;justify-content:flex-start;align-items:center;gap:.45rem;display:flex}.confidentiality-notice__hint{text-align:left;color:var(--danger,#b42318);margin:.35rem 0 0;font-size:.9rem}.ui-btn{min-height:var(--control-h,44px);border-radius:var(--radius,8px);border:1px solid var(--line,#d8dee7);background:var(--surface,#fbfcfd);min-width:44px;color:var(--ink-900,#1a2433);font:inherit;letter-spacing:0;cursor:pointer;transition:background var(--dur-fast,.15s) var(--ease-out,ease), border-color var(--dur-fast,.15s) var(--ease-out,ease), color var(--dur-fast,.15s) var(--ease-out,ease), box-shadow var(--dur-fast,.15s) var(--ease-out,ease);justify-content:center;align-items:center;gap:.35rem;padding:.4rem .95rem;font-weight:600;text-decoration:none;display:inline-flex}@media (hover:hover) and (pointer:fine){.ui-btn:hover:not(:disabled):not(.is-disabled){background:color-mix(in oklab, var(--brand,#24344c) 8%, var(--surface,#fff));border-color:color-mix(in oklab, var(--brand,#24344c) 35%, var(--line))}}.ui-btn:focus-visible{outline:var(--focus-ring,2px solid var(--brand,#24344c));outline-offset:3px}.ui-btn:disabled,.ui-btn.is-disabled{cursor:not-allowed;background:var(--surface-muted);color:var(--ink-500);border-color:var(--line);box-shadow:none}label.ui-btn{cursor:pointer}.ui-btn--primary{background:var(--brand,#24344c);color:var(--on-brand,#fff);border-color:#0000}@media (hover:hover) and (pointer:fine){.ui-btn--primary:hover:not(:disabled):not(.is-disabled){background:var(--brand-600,#1b283b);color:var(--on-brand,#fff)}}.ui-btn--ghost{color:var(--brand-navy,#1e2d44);background:0 0;border-color:#0000}@media (hover:hover) and (pointer:fine){.ui-btn--ghost:hover:not(:disabled):not(.is-disabled){background:color-mix(in oklab, var(--brand,#24344c) 8%, transparent)}}.ui-btn--danger{background:var(--danger-50,#f8eeec);border-color:color-mix(in oklab, var(--danger,#a33b32) 40%, var(--line));color:var(--danger,#a33b32)}@media (hover:hover) and (pointer:fine){.ui-btn--danger:hover:not(:disabled):not(.is-disabled){background:var(--danger,#a33b32);color:var(--on-fill,#fff)}}.ui-btn--secondary{background:var(--surface-tint,#f4f6f9);color:var(--brand-navy,#1e2d44)}.ui-btn.is-active{box-shadow:inset 0 0 0 1px var(--brand,#24344c);background:color-mix(in oklab, var(--brand,#24344c) 10%, var(--surface,#fff))}.ui-btn--ghost.is-active{background:color-mix(in oklab, var(--brand,#24344c) 10%, transparent)}.ui-card{background:oklch(100% 0 0);border:1px solid #e5eaf3;border-radius:12px;padding:1.1rem 1.2rem;box-shadow:0 12px 32px oklch(28% .08 260/.08);container-type:inline-size}.ui-modal{z-index:80;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.ui-modal.is-max{place-items:stretch stretch;padding:0}.ui-modal--nested{z-index:90}.ui-modal--layer3{z-index:100}.ui-modal__backdrop{cursor:pointer;background:oklch(28% .08 260/.4);border:0;padding:0;position:absolute;inset:0}.ui-modal__backdrop--locked{cursor:default}.ui-modal__card{z-index:1;background:var(--surface,#fbfcfd);width:min(36rem,100%);max-height:min(86vh,40rem);color:var(--ink-900,#1a2433);border:1px solid var(--border,#d8dee7);border-radius:12px;flex-direction:column;padding:1rem 1.15rem 1.1rem;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 32px oklch(28% .08 260/.08)}.ui-modal__card--wide{width:min(52rem,100%)}.ui-modal__card.is-max{border-radius:0;width:100%;max-width:none;height:100%;max-height:none}.ui-modal__head{border-bottom:1px solid #e5eaf3;flex-shrink:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:.75rem;margin-bottom:.75rem;padding-bottom:.75rem;display:grid}.ui-modal__head h3{font-family:var(--font-display), serif;letter-spacing:.04em;color:var(--ink-900,#1a2433);margin:0;font-size:1.05rem;font-weight:700}.ui-modal__head-slot{min-width:0}.ui-modal__head-alert{min-width:0;color:var(--ink-600,#4a5568);text-align:center;margin:0;font-size:.95rem;line-height:1.45}.ui-modal__head-actions{justify-content:flex-end;align-items:center;gap:.15rem;display:flex}.ui-modal__win-btn{color:#64748b;border-radius:6px;justify-content:center;align-items:center;width:2rem;min-width:2rem;height:2rem;padding:0;transition:all .15s;display:inline-flex}.ui-modal__win-btn:hover{color:#1e3a5f;background:#f1f5f9}.ui-modal__win-icon{width:.95rem;height:.95rem;display:block}.ui-modal__main{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.ui-modal__body{flex:auto;gap:.75rem;min-height:0;display:grid;overflow:auto}.ui-modal__alert{z-index:2;pointer-events:none;place-items:center;padding:1.25rem;display:grid;position:absolute;inset:0}.ui-modal__alert p{max-width:min(28rem,100%);color:var(--ink-500,#667085);text-align:center;margin:0;font-size:1rem;line-height:1.55}.ui-modal__footer{flex-shrink:0;justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.ui-modal__footer--center{justify-content:center}.password-field{color:var(--ink-700,#3a4658);gap:.3rem;display:grid}.password-field__control{position:relative}.password-field__control input{width:100%;padding-right:2.75rem}.password-field__toggle{width:44px;height:44px;color:var(--ink-500,#5a6980);cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.password-field__toggle:hover:not(:disabled){color:var(--ink-900,#1a2433)}.password-field__toggle:focus-visible{outline:2px solid var(--brand,#24344c);outline-offset:1px}.password-field__toggle:disabled{cursor:not-allowed;color:var(--ink-400,#7c8898)}
