/* Page shell: shared tokens, readable body text, independent routes and admin pages. */
.nav-compact{display:none}.sidebar-collapse{width:100%;margin:14px 0 2px;background:var(--page);color:var(--muted);font-size:.8rem}
@media(min-width:901px){.sidebar-minimized{padding-left:76px!important}.sidebar-minimized #app-sidebar{width:76px;padding:18px 8px}.sidebar-minimized .sidebar-brand{padding:0 0 14px;justify-content:center}.sidebar-minimized .sidebar-brand>span,.sidebar-minimized #app-sidebar nav h3,.sidebar-minimized .nav-label,.sidebar-minimized .display-preferences,.sidebar-minimized .sidebar-resizer{display:none}.sidebar-minimized .nav-compact{display:block;font-size:.76rem}.sidebar-minimized #app-sidebar nav a{padding:9px 3px;text-align:center}.sidebar-minimized .sidebar-collapse{font-size:1.3rem;margin-top:8px}}
@media(max-width:900px){.sidebar-collapse{display:none}}
.workspace-shell{padding-left:var(--sidebar-width)}
.workspace-shell>.container,.workspace-shell .top-banner>.container{width:100%;max-width:1680px;padding-inline:30px}
.workspace-shell .site-header{gap:20px;padding-block:22px;flex-wrap:wrap}
.workspace-shell .site-header h1{font-size:1.35rem}.workspace-shell .motto{font-size:.88rem}
.workspace-shell .site-header .brand{min-width:0}.workspace-shell .header-date{font-size:.88rem}
.workspace-shell .quick-tools,.workspace-shell .work-nav{display:none}
.workspace-shell .page-heading{display:flex;align-items:center;gap:16px;padding:26px 0 24px}
.page-heading h2{font-size:1.55rem;line-height:1.4}.page-eyebrow{font-size:.78rem;color:var(--muted);margin-bottom:4px}
.page-text-control{margin-left:auto;flex-shrink:0;font-size:.78rem;color:var(--muted)}.page-text-control select{display:block;margin-top:4px;min-width:150px}.meal-photo-guide{margin-top:24px;font-size:.8rem}.meal-photo-guide p{margin:10px 0}.meal-photo-guide summary{cursor:pointer}
@media(max-width:600px){.workspace-shell .page-heading{flex-wrap:wrap}.page-text-control{flex-basis:100%;display:flex;align-items:center;gap:10px}.page-text-control select{margin:0;flex:1}}
.workspace-shell .section-tabs{display:none}
.workspace-shell .widgets{margin-bottom:24px}.workspace-shell .widget-label{font-size:.9rem}.workspace-shell .widget strong{font-size:1.1rem}
.workspace-shell .panel{padding:26px;border-radius:16px}.workspace-shell #content{min-height:540px}
.workspace-shell #section-description,.workspace-shell #empty-message,.workspace-shell #notice{font-size:.94rem;line-height:1.7}
.workspace-shell input,.workspace-shell select,.workspace-shell textarea{font-size:1rem;min-height:44px}
.workspace-shell button{min-height:42px}.workspace-shell .secondary,.workspace-shell .filter-actions button,.workspace-shell .lookup-form button,.workspace-shell #module-actions button{font-size:.9rem}
.workspace-shell #items p,.workspace-shell #items label{font-size:.94rem}.workspace-shell #items small{font-size:.8rem}
.workspace-shell #editor label{font-size:.94rem}.workspace-shell #editor form{max-width:940px;gap:18px}
.workspace-shell #editor{margin:20px 0}.workspace-shell #editor:empty{display:none}
.workspace-shell #empty-message:empty{display:none}
.workspace-shell #content:has(#editor form) :is(#filters,#module-actions,#items,#empty-message,#load-more){display:none}
.workspace-shell .calendar-caption,.workspace-shell .school-info-status,.workspace-shell .school-info-details{font-size:.84rem}
.workspace-shell .school-info-source,.workspace-shell .safety-note{font-size:.78rem}
.workspace-shell .cal-chip{font-size:.72rem}.workspace-shell .calendar-grid button{min-height:100px}
.workspace-shell .hub-grid small,.workspace-shell .resource-shortcuts button{font-size:.84rem}
.workspace-shell .meal-week .meal-dishes{font-size:.84rem}.workspace-shell .meal-week small{font-size:.78rem}
.workspace-shell .meal-week strong,.workspace-shell .meal-day-button,.workspace-shell .week-controls button{font-size:.88rem}
.workspace-shell .meal-week{grid-template-columns:repeat(4,minmax(0,1fr))}.workspace-shell .meal-hero-content{font-size:1rem}
.workspace-shell .meal-hero small,.workspace-shell .meal-week-status{font-size:.8rem}.workspace-shell .meal-hero details{font-size:.94rem}
.workspace-shell .meal-menu li{font-size:1rem}.workspace-shell .top-banner{font-size:.85rem}
#app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--line);padding:26px 18px 18px;overflow-y:auto;z-index:25;scrollbar-width:thin}
.sidebar-brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--text);padding:0 4px 24px;border-bottom:1px solid var(--line)}
.sidebar-brand img{flex-shrink:0;object-fit:contain}.sidebar-brand strong{display:block;font-size:.94rem}.sidebar-brand small{display:block;font-size:.8rem;color:var(--muted)}
#app-sidebar nav h3{font-size:.73rem;font-weight:700;letter-spacing:.03em;color:var(--muted);margin:24px 12px 8px}
#app-sidebar nav a{display:block;padding:11px 14px;margin:3px 0;border-radius:9px;text-decoration:none;color:var(--text);font-size:.94rem;font-weight:550;line-height:1.5}
#app-sidebar nav a:hover{background:var(--page);color:var(--primary)}#app-sidebar nav a[aria-current]{background:var(--primary-light);color:var(--primary-dark);font-weight:800;box-shadow:inset 3px 0 var(--primary)}
.display-preferences{border-top:1px solid var(--line);padding:18px 10px 10px;margin-top:24px;font-size:.8rem}.display-preferences summary{cursor:pointer}.display-preferences label{display:block;margin-top:14px}.display-preferences input,.display-preferences select{width:100%;margin-top:7px}
.sidebar-resizer{position:fixed;left:calc(var(--sidebar-width) - 4px);top:0;bottom:0;width:8px;cursor:col-resize;touch-action:none}.sidebar-resizer:hover,.sidebar-resizer:focus-visible{background:#2563eb33}
#sidebar-toggle{display:none}
.sidebar-close{display:none}
@media(max-width:900px){.sidebar-close{display:block;width:100%;margin-top:16px}}
#work-view,#utility-view,#info-view{padding-bottom:32px}
#work-view>.calendar-panel{margin-bottom:24px}
.admin-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:26px;border-top:1px solid var(--line);padding-top:24px;margin-top:22px}
#master-links.admin-nav{display:flex;flex-direction:column;gap:4px;align-items:stretch;max-height:calc(100dvh - 120px);overflow:auto;position:sticky;top:20px;align-self:start;padding-right:16px;border-right:1px solid var(--line)}
.admin-nav button{flex-shrink:0;background:transparent;color:var(--muted);text-align:left;border:0;font-size:.88rem;padding:12px 10px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.admin-nav button:hover,.admin-nav button[aria-current]{background:var(--primary-light);color:var(--primary-dark)}
#admin-body{min-width:0}#admin-body>#content,#admin-body>#utility-panel{border:0;box-shadow:none;padding:0}
#admin-overview>p{margin:12px 0 22px;font-size:.9rem}.admin-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}
.admin-shortcuts button{background:var(--primary-light);color:var(--primary-dark);padding:20px;text-align:left;border:1px solid var(--line)}.admin-shortcuts strong{display:block;font-size:.94rem;margin-bottom:8px}.admin-shortcuts span{font-size:.8rem;line-height:1.6;color:var(--muted)}
.admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.admin-metrics>div{padding:18px;background:var(--page);border-radius:12px}.admin-metrics span{display:block;font-size:.8rem;color:var(--muted)}.admin-metrics strong{display:block;font-size:1.5rem;margin-top:6px}
.table-scroll{overflow-x:auto}.admin-audit-table{border-collapse:collapse;width:100%;font-size:.82rem}.admin-audit-table :is(td,th){padding:12px;text-align:left;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.directory-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start;margin-top:22px}
.directory-group{border:1px solid var(--line);border-radius:12px;overflow:hidden}.directory-group>h3{background:var(--primary-light);padding:14px 16px;font-size:1rem;color:var(--primary-dark)}
.directory-table{border-collapse:collapse;width:100%;font-size:.9rem}.directory-table :is(td,th){padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}.directory-table th{font-size:.8rem;color:var(--muted);background:var(--page)}
.directory-table small{display:block;font-size:.78rem!important;font-weight:400;color:var(--muted);margin-top:4px}.directory-table td:last-child{width:100px;vertical-align:top}.directory-table .extension-copy{font-size:.83rem;margin:0;padding:7px 9px;background:var(--primary-light);color:var(--primary-dark)}
.directory-table .extension-copy{white-space:nowrap;font-size:1rem;font-weight:800;min-width:60px}
.class-picker{display:flex;align-items:end;gap:16px;flex-wrap:wrap;background:var(--primary-light);border:1px solid var(--line);padding:22px;border-radius:12px;margin:24px 0}.class-picker h3{flex-basis:100%}.class-picker label{flex:1;min-width:120px;max-width:220px}
.class-picker select{display:block;width:100%;margin-top:6px}.class-roster{margin-top:24px}.class-roster>p{margin:8px 0 18px}
.roster-names{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:0;list-style:none}.roster-names li{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px}.roster-names strong{font-size:1.06rem}.roster-names span{display:block;font-size:.78rem;color:var(--muted);margin-top:5px}
@media(min-width:1700px){.workspace-shell .meal-week{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:1300px){.directory-board{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-layout{grid-template-columns:190px minmax(0,1fr);gap:18px}.admin-shortcuts{grid-template-columns:1fr}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-names{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-shell .dashboard-grid{grid-template-columns:1fr}.workspace-shell .site-header #global-search{width:100%}}
@media(max-width:900px){.workspace-shell{padding-left:0}#app-sidebar{display:none;position:relative;width:100%;max-height:65dvh;inset:auto;border-bottom:1px solid var(--line)}.sidebar-open #app-sidebar{display:block}.sidebar-resizer{display:none}#sidebar-toggle{display:block;flex-shrink:0}.workspace-shell>.container,.workspace-shell .top-banner>.container{padding-inline:18px}.workspace-shell .site-header{padding-block:18px}.workspace-shell .page-heading{padding-block:20px}.page-heading h2{font-size:1.2rem}.admin-layout{grid-template-columns:1fr}#master-links.admin-nav{position:static;display:flex;flex-direction:row;flex-wrap:wrap;max-height:220px;border-right:0;border-bottom:1px solid var(--line);padding:0 0 14px}.admin-nav button{flex:0 0 auto}.workspace-shell .panel{padding:20px}}
@media(max-width:600px){.directory-board{grid-template-columns:1fr}.workspace-shell .widgets{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-shell .widget{padding:16px}.workspace-shell .widget-icon{display:none}.workspace-shell .widget-label{padding-right:0;font-size:.8rem}.workspace-shell .widget strong{font-size:.94rem}.workspace-shell .meal-week{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-shell .meal-week .meal-dishes{font-size:.8rem}.roster-names{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-shell .toolbar{flex-wrap:wrap}.workspace-shell .top-banner>.container{flex-wrap:wrap}.workspace-shell .site-header h1{font-size:1.1rem}.workspace-shell .header-date{display:none}.workspace-shell #account #auth-actions button{font-size:.94rem}.workspace-shell .calendar-grid button{min-height:80px}.workspace-shell .cal-chip{font-size:.65rem}.workspace-shell .calendar-options{grid-template-columns:1fr 1fr}.workspace-shell .calendar-options label{min-width:0}}

/* Typography-aware composition: grow columns with rem text, not broken syllables. */
.workspace-shell :is(h1,h2,h3,p,button,a,label,strong){word-break:keep-all;overflow-wrap:break-word}
.workspace-shell .site-header .brand{flex:1 1 28rem}.workspace-shell .site-header #global-search{flex:0 1 22rem;max-width:22rem;width:auto}
.workspace-shell .brand h1{line-height:1.55}.workspace-shell .year-tag{white-space:nowrap}
@media(min-width:901px) and (max-width:1599px){.workspace-shell .site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 22px}.workspace-shell .site-header .brand{grid-column:1;grid-row:1}.workspace-shell .site-header .header-date{grid-column:2;grid-row:1}.workspace-shell .site-header #global-search{grid-column:1/-1;grid-row:2;width:100%;max-width:30rem;justify-self:end}}
.workspace-shell .widgets{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:16px}
.workspace-shell .widget{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto 1fr;gap:7px 14px;padding:22px;text-align:left;min-height:118px}
.workspace-shell .widget-icon{position:static;grid-column:1;grid-row:1/3;width:40px;height:40px;display:grid;place-items:center;align-self:center;font-size:1.3rem}
.workspace-shell .widget-label,.workspace-shell .widget strong{grid-column:2;padding:0;line-height:1.5}.workspace-shell .widget strong{font-size:1rem}
#page-title:focus:not(:focus-visible){outline:none}#page-title{scroll-margin-top:24px}
.workspace-shell .page-heading{align-items:center}.workspace-shell .page-heading>div{min-width:0}
.dashboard-insights{margin-bottom:24px}.insight-heading{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:16px}.insight-heading p{font-size:.8rem}
.insight-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.insight-metrics button{padding:22px 24px;text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 12px #17255404}
.insight-metrics button>span{display:block;color:var(--muted);font-size:.86rem}.insight-metrics strong{display:block;font-size:2.1rem;line-height:1.2;margin-top:14px;font-variant-numeric:tabular-nums}.insight-metrics small{font-size:.8rem;color:var(--muted);margin-left:8px;font-weight:500}
.insight-panels{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px}.insight-chart{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;min-width:0}.insight-chart h3{font-size:1.05rem}
.insight-caption{font-size:.8rem;line-height:1.65;margin-top:8px}.grade-bars{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:11px}.grade-bars li{display:grid;grid-template-columns:3em minmax(30px,1fr) 4em 3.5em;gap:10px;align-items:center;font-size:.84rem}.grade-bars strong,.grade-bars small{text-align:right;font-variant-numeric:tabular-nums}.grade-bars small{font-size:.82em;color:var(--muted)}
.bar-track{height:14px;background:var(--primary-light);border-radius:4px;overflow:hidden}.bar-track i{display:block;height:100%;background:var(--primary);border-radius:4px}
.event-totals{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px 12px;margin:26px 0}.event-totals dt{font-size:.9rem;color:var(--muted)}.event-totals dd{margin:0;font-size:1.5rem;font-weight:750;font-variant-numeric:tabular-nums}
.directory-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:18px 0;border-bottom:1px solid var(--line)}.directory-tabs button{background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:.84rem;padding:9px 14px}.directory-tabs button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:white}
.directory-board{grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr))}.directory-table td{vertical-align:middle!important}.directory-table td:first-child{width:44%}.directory-table .directory-staff{font-size:.9rem;line-height:1.7}.directory-table td:last-child{width:90px}.directory-table small{line-height:1.5}.directory-table :is(td,th){padding:10px 14px}
.roster-names .roster-number{display:inline-block;color:var(--primary-dark);background:var(--primary-light);border-radius:5px;padding:3px 8px;margin:0 0 9px;font-weight:750}.roster-names strong{display:block}
@media(max-width:1100px){.insight-panels{grid-template-columns:1fr}.insight-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.workspace-shell .widgets{grid-template-columns:1fr 1fr;gap:10px}.workspace-shell .widget{display:block;padding:16px;min-height:110px}.workspace-shell .widget-icon{display:none}.workspace-shell .widget-label{display:block;font-size:.75rem;margin-bottom:8px}.workspace-shell .widget strong{font-size:.9rem}.insight-metrics{gap:10px}.insight-metrics button{padding:18px 14px}.insight-metrics strong{font-size:1.65rem}.insight-chart{padding:18px}.grade-bars li{gap:7px;font-size:.76rem}.directory-table :is(td,th){padding:10px 8px}.directory-table .directory-staff{font-size:.8rem}.directory-table td:first-child{width:38%}.directory-table .extension-copy{font-size:.85rem;min-width:48px;padding:6px}.workspace-shell .site-header #global-search{max-width:none;flex-basis:100%}}
/* Space viewer extends the existing panel/button tokens. Keyboard list mirrors the diagram. */
.space-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:20px 0}
.space-toolbar label{flex:1 1 150px;min-width:0}
.space-view-toggle{display:flex;gap:6px;flex-wrap:wrap}
.space-toolbar button[aria-pressed=true],.space-list button[aria-pressed=true]{background:var(--primary);color:#fff;border-color:var(--primary)}
#utility-panel .space-view-toggle button[aria-pressed=false],#utility-panel .space-list button[aria-pressed=false]{background:var(--surface);color:var(--text);border:1px solid var(--line)}
.space-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,230px);gap:18px;align-items:start}
.space-visual{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:12px;min-width:0;min-height:260px;overflow:hidden}
.space-visual svg{width:100%;height:auto;max-height:600px;display:block}
.space-cell{cursor:pointer}.space-cell rect{fill:var(--primary-light);stroke:var(--line);stroke-width:.6}.space-cell .classroom{fill:#fff0dd}
.space-cell:hover rect,.space-cell.selected rect{fill:#c4d8ff;stroke:var(--primary);stroke-width:1.2}.space-cell text{fill:var(--text);pointer-events:none}
.space-list{display:grid;gap:6px;max-height:420px;overflow:auto;padding:4px}.space-list p{margin:0 0 8px}.space-list button{text-align:left;font-size:.86rem;min-height:42px;white-space:normal;overflow-wrap:anywhere}
.space-detail{margin:auto;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--text);width:min(520px,calc(100vw - 32px));max-height:80dvh;overflow:auto;box-shadow:0 20px 80px #0f172a33}.space-detail::backdrop{background:#0f172a66}.space-detail small{display:block;margin-bottom:16px;color:var(--muted)}.space-detail h3{padding-right:65px}.space-detail-close{float:right}
.space-model{min-width:0;width:100%;min-height:400px}.space-model canvas{display:block;max-width:100%;touch-action:none}
.space-viewport{position:relative;isolation:isolate;min-width:0;overflow:hidden;border-radius:18px;background:radial-gradient(ellipse at 50% 95%,#b8caba80,transparent 65%),linear-gradient(180deg,#deebf3 0%,#f6f6ef 58%,#e4e9de 100%)}.space-labels{position:absolute;inset:0;pointer-events:none}
#utility-panel .space-room-label{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;max-width:110px;min-height:24px;padding:3px 7px;font-size:11px;line-height:1.3;border-radius:7px;border:1px solid #acb8b6;background:rgba(255,255,255,.94);color:#183f38;box-shadow:0 2px 8px #17342c20;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#utility-panel .space-room-label[hidden]{display:none}#utility-panel .space-room-label[aria-pressed=true]{background:var(--primary);color:#fff}
.space-visual .space-label-leaders{position:absolute;inset:0;width:100%;height:100%;max-height:none;pointer-events:none;z-index:1;stroke:#42685f;stroke-width:1;stroke-opacity:.6}
.space-labels{z-index:2}
#utility-panel .all-room-names .space-room-label{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;max-width:112px;min-height:28px;max-height:none;padding:4px;line-height:1.25}
#utility-panel .room-interior-names .space-room-label{background:#ffffffbd;border:0;box-shadow:0 1px 3px #263e3520;border-radius:4px;min-height:0;padding:2px;max-width:130px;line-height:1.15;word-break:keep-all;overflow-wrap:anywhere}
#utility-panel .room-interior-names .space-room-label[aria-pressed=true]{background:var(--primary);color:#fff}
.space-floor-select{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.space-floor-select:focus-within{position:static;width:auto;height:auto;clip-path:none}
.space-floor-tabs{display:flex;flex-wrap:wrap;gap:5px;grid-column:1/-1;padding:5px;border-radius:18px;background:var(--surface)}
#utility-panel .space-floor-tabs button{border:0;border-radius:12px;padding:9px 15px;min-height:42px;background:transparent;color:var(--text)}
#utility-panel .space-floor-tabs button[aria-pressed=true]{background:var(--primary);color:#fff;box-shadow:0 3px 10px #20253020}
.space-control-help{font-size:.78rem;line-height:1.6}.space-control-pad{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.space-control-pad button{min-width:34px;padding:5px}
.space-all-toggle{display:flex;gap:6px;align-items:center;font-size:.8rem;margin:10px 0}.space-all-toggle input{width:18px;min-height:18px}
.space-weather{border-radius:12px;padding:10px;background:var(--soft);font-size:.8rem}
.space-viewport[data-sky=day]{background:radial-gradient(circle at 85% 14%,#fff8c7 0%,transparent 22%),linear-gradient(#a6d7f6,#eef8ff 65%,#cddfc2)}
.space-viewport[data-sky=sunset],.space-viewport[data-sky=dawn]{background:radial-gradient(circle at 82% 62%,#fff0b9,transparent 24%),linear-gradient(#b7bddf,#f5c6ae 65%,#c5ccb8)}
.space-viewport[data-sky=night],.space-viewport[data-sky=cloud-night],.space-viewport[data-sky=rain-night],.space-viewport[data-sky=snow-night]{background:radial-gradient(circle at 80% 16%,#c2d7ef 0%,transparent 5%),linear-gradient(#12213d,#364565 75%,#47554c)}
.space-viewport[data-sky=cloud]{background:radial-gradient(ellipse at 30% 20%,#fff9,transparent 45%),linear-gradient(#b5c8da,#ebeff0 70%,#cbd5c3)}
.space-viewport[data-sky=rain]{background:repeating-linear-gradient(110deg,transparent 0 35px,#e7f0f622 36px 37px,transparent 38px 65px),linear-gradient(#778d9f,#becbd4 75%,#9eafa3)}
.space-viewport[data-sky=snow]{background:radial-gradient(circle at 20% 30%,#fff 1px,transparent 3px) 0 0/43px 47px,linear-gradient(#adc1d8,#f6faff)}
.campus-home-card{position:relative;padding:24px;border-radius:24px;background:radial-gradient(ellipse at 90% 10%,#b9dcec99,transparent 65%),linear-gradient(120deg,var(--surface),var(--soft));border:1px solid var(--line);margin:18px 0;overflow:hidden}.campus-home-card>span{font-size:.7rem;letter-spacing:.14em;color:var(--muted)}.campus-home-card h2{margin:6px 0}.campus-home-card p{margin:8px 0 16px}
.space-source{font-size:.85rem;color:var(--muted);margin:.5rem 0}.space-source summary{cursor:pointer;padding:.4rem 0}.space-source p{line-height:1.7}
.campus-review .space-toolbar{margin:12px 0;gap:10px}.campus-review .space-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}
.campus-review .space-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto}.campus-review .space-floor-tabs{grid-column:1/-1}.campus-review .space-toolbar>.space-floor-select{position:absolute}.space-sidebar .space-source{font-size:.72rem}
.campus-review .space-visual{border-radius:24px;overflow:hidden;background:#eff3f1}.campus-review .space-sidebar{min-width:0;padding:12px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.space-sidebar h3{font-size:1rem;margin:0 0 10px}.space-introduction{font-size:.82rem;line-height:1.7;color:var(--muted)}
.space-camera-controls{display:flex;flex-wrap:wrap;gap:6px;padding:12px;background:var(--surface)}
#utility-panel .space-camera-controls button{font-size:.8rem;min-height:38px;padding:7px 11px;border-radius:20px;background:var(--surface);color:var(--text);border:1px solid var(--line)}
#utility-panel .space-camera-controls button[aria-pressed=true]{background:var(--primary);color:white}
.space-camera-controls span{flex-basis:100%;font-size:.72rem;color:var(--muted);padding:3px}.space-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8rem;margin-top:10px}.space-pagination button{padding:6px 10px;min-height:36px}
@media(max-width:1000px){.campus-review .space-layout{grid-template-columns:minmax(0,1fr)}.campus-review .space-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px}.campus-review .space-list p{grid-column:1/-1}}
@media(max-width:800px){.space-layout{grid-template-columns:minmax(0,1fr)}.space-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px}.space-list p{grid-column:1/-1}.space-visual{min-height:180px}.space-toolbar{gap:10px}}
/* Import review: existing surface/primary/line tokens; no source-file upload. */
.import-review{min-width:0;overflow-wrap:anywhere}
.import-review h4{margin:1.25rem 0 .65rem;font-size:1.05rem}
.import-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;padding:0;list-style-position:inside}
.import-steps li{padding:.8rem;background:var(--primary-light);border-radius:var(--radius);color:var(--primary);font-weight:700}
.import-mapping fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:1rem 0}
.import-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.8rem}
.import-fields label,.import-review .toolbar label{display:grid;gap:.4rem;min-width:0}
.import-review select{width:100%;min-width:0;max-width:100%}
.import-drafts{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.import-drafts button{text-align:left;white-space:normal}
.import-drafts button[aria-pressed="true"]{background:var(--primary);color:var(--surface)}
.import-detail{border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:1rem 0;background:var(--surface)}
.import-review .table-scroll{max-width:100%;overflow:auto;margin:.8rem 0}
.import-review table{min-width:25rem;width:100%;border-collapse:collapse}
.import-review caption{text-align:left;color:var(--muted);padding:.5rem 0}
.import-review td,.import-review th{vertical-align:top;white-space:normal;min-width:7rem}
.import-review details{margin:1rem 0}.import-review summary{cursor:pointer;font-weight:700}
.import-backup{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap;padding:.7rem 0;border-bottom:1px solid var(--line)}
.import-review .flag input{width:1.1rem;height:1.1rem;flex:0 0 1.1rem}
.import-issues:not(:empty){border-left:4px solid var(--primary);padding:.6rem 1rem;margin:1rem 0;background:var(--primary-light)}
@media(max-width:1100px){.import-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.import-review .toolbar{align-items:stretch}.import-review .toolbar>*{width:100%}.import-detail{padding:.8rem}.import-steps{font-size:.85rem}.import-review .admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
