@font-face{font-family:Geist;src:url(fonts/Geist-Variable.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Geist Mono';src:url(fonts/GeistMono-Variable.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
/* ===== Design tokens =====
   Neutrals n0–n10 run from card surface to ink. Data hues (heat / cool / air) are the ONLY saturated colours in the UI;
   brand and accent are neutral slate so nothing competes with the data. Every data set below passes the CVD validator
   (light surface #fcfcfb, dark surface #14222a): protan/deutan/tritan separation, contrast >= 3:1. Sequential ramps vary in lightness. */
/* ===== Type tokens (Geist defaults) =====
   Sizes never go below 12px. Weights are the standard 400 / 500 / 600 only. Tracking is zero for body and UI text;
   only large headings tighten (Geist is designed for it) and only small caps labels open up. */
:root{--font-sans:Geist,system-ui,-apple-system,'Segoe UI',sans-serif;--font-mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
 --text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:32px;--text-4xl:40px;
 --track-display:-.02em;--track-tight:-.01em;--track-caps:.06em;--leading-tight:1.2;--leading-body:1.5;
 --weight-regular:400;--weight-medium:500;--weight-semibold:600}
:root{color-scheme:light;
 --n0:#ffffff;--n1:#fbfaf8;--n2:#f4f3ef;--n3:#eae9e4;--n4:#dedcd6;--n5:#c6c4bd;--n6:#9b9c96;--n7:#767870;--n8:#5a5e58;--n9:#3a3f3d;--n10:#1b2428;
 --brand:#17323c;--brand-hi:#bfe3ef;--on-brand:#f3f6f4;--accent:#2b4a56;--shadow-base:#10242b;
 --good:#2f7d4f;--warn-bg:var(--heat-1);--warn-fg:var(--heat-5);
 --heat:#cf5a22;--cool:#1f7fa6;--air:#8a7a00;
 --heat-1:#fbeee4;--heat-2:#f4c3a3;--heat-3:#e98f5c;--heat-4:#cf5a22;--heat-5:#8f3511;
 --cool-1:#e3f0f6;--cool-2:#a9d2e3;--cool-3:#5fa8c8;--cool-4:#1f7fa6;--cool-5:#0f4a66;
 --air-1:#f6efc9;--air-2:#e6d57e;--air-3:#c2ad2e;--air-4:#8a7a00;--air-5:#544a00;
 --cell-text-lo:#3a3f3d;--cell-text-hi:#ffffff;--on-brand-2:#b9ccd2;--tip-bg:#17323c;
 /* semantic aliases */
 --bg:var(--n2);--paper:var(--n0);--soft:var(--n3);--line:var(--n4);--muted:var(--n8);--ink:var(--n10);
 --green:var(--brand);--lime:var(--brand-hi);--nodata:var(--n3);--ref:var(--n10);
 --shadow:0 4px 24px color-mix(in srgb,var(--shadow-base) 6%,transparent);
 --orange:var(--heat);--blue:var(--cool);--purple:var(--air)}
:root[data-theme=dark]{color-scheme:dark;
 --n0:#15242b;--n1:#111e24;--n2:#0c161b;--n3:#1d2f37;--n4:#29404a;--n5:#3a535e;--n6:#5f7883;--n7:#8ea4ad;--n8:#a9bcc4;--n9:#cbd8dd;--n10:#eef3f5;
 --brand:#1b3b48;--brand-hi:#bfe3ef;--on-brand:#f3f6f4;--accent:#b6cdd6;--shadow-base:#000000;
 --good:#5fbf86;--warn-bg:#3a2218;--warn-fg:#ffb089;
 --heat:#e2663a;--cool:#2f9bd0;--air:#a8941c;
 --heat-1:#43281d;--heat-2:#7a3a1f;--heat-3:#b5502a;--heat-4:#e2663a;--heat-5:#ffb089;
 --cool-1:#12303e;--cool-2:#1a5674;--cool-3:#2a8abb;--cool-4:#2f9bd0;--cool-5:#a9ddf5;
 --air-1:#2c280d;--air-2:#585011;--air-3:#857615;--air-4:#a8941c;--air-5:#ebd96a;
 --cell-text-lo:#cbd8dd;--cell-text-hi:#10181c;--on-brand-2:#b9ccd2;--tip-bg:#050b0e}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;
 --n0:#15242b;--n1:#111e24;--n2:#0c161b;--n3:#1d2f37;--n4:#29404a;--n5:#3a535e;--n6:#5f7883;--n7:#8ea4ad;--n8:#a9bcc4;--n9:#cbd8dd;--n10:#eef3f5;
 --brand:#1b3b48;--brand-hi:#bfe3ef;--on-brand:#f3f6f4;--accent:#b6cdd6;--shadow-base:#000000;
 --good:#5fbf86;--warn-bg:#3a2218;--warn-fg:#ffb089;
 --heat:#e2663a;--cool:#2f9bd0;--air:#a8941c;
 --heat-1:#43281d;--heat-2:#7a3a1f;--heat-3:#b5502a;--heat-4:#e2663a;--heat-5:#ffb089;
 --cool-1:#12303e;--cool-2:#1a5674;--cool-3:#2a8abb;--cool-4:#2f9bd0;--cool-5:#a9ddf5;
 --air-1:#2c280d;--air-2:#585011;--air-3:#857615;--air-4:#a8941c;--air-5:#ebd96a;
 --cell-text-lo:#cbd8dd;--cell-text-hi:#10181c;--on-brand-2:#b9ccd2;--tip-bg:#050b0e}}*{box-sizing:border-box}body{font-feature-settings:'tnum' 0}.stat-value,.rank-value,td,.ring-text b,.compare-value b,.tile-values,.room-mini-stats b,.ins-big{font-variant-numeric:tabular-nums}body{margin:0;background:var(--bg);color:var(--ink);font:var(--weight-regular) var(--text-base)/var(--leading-body) var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-optical-sizing:auto}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:var(--font-sans)}h1{font-weight:var(--weight-semibold);letter-spacing:var(--track-display);font-size:var(--text-4xl);line-height:1.2}h2{font-size:var(--text-lg);letter-spacing:var(--track-tight);font-weight:var(--weight-semibold)}h3{font-size:var(--text-base);font-weight:var(--weight-semibold)}p{line-height:1.65;color:var(--muted)}small{font-size:var(--text-xs)}.shell{display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:226px;background:var(--n1);border-right:1px solid var(--line);padding:33px 23px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;font-size:var(--text-xl);font-weight:var(--weight-medium);line-height:1.15;letter-spacing:var(--track-tight)}.brand strong{font-weight:var(--weight-semibold)}.brandmark{font-family:var(--font-sans);font-size:var(--text-4xl);line-height:1;color:var(--ink)}.district-label{font-size:var(--text-xs);letter-spacing:var(--track-caps);color:var(--n7);margin:29px 0 23px 7px;font-weight:var(--weight-semibold)}nav{display:grid;gap:6px}nav a{padding:13px 12px;border-radius:8px;font-size:var(--text-xs);font-weight:var(--weight-medium);display:flex;gap:11px;align-items:center;color:var(--n7);transition:.15s}nav a>span{font-size:var(--text-lg);line-height:1;width:20px}nav a.active{color:var(--ink);background:var(--n3)}nav a:hover{background:var(--n3);color:var(--ink)}.saved-label{border-top:1px solid var(--line);padding-top:28px;margin:28px 8px 13px;font-size:var(--text-xs);letter-spacing:var(--track-caps);color:var(--n7);display:flex;justify-content:space-between}.saved-label>span{background:var(--n3);border-radius:4px;padding:0 5px}.saved-schools{font-size:var(--text-xs);color:var(--n7);display:grid;gap:4px}.saved-schools a{padding:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-schools a:before{content:'↳';margin-right:8px;color:var(--accent)}.saved-schools p{font-size:var(--text-xs);padding:3px 8px}.sidebar-bottom{margin-top:auto;padding:25px 8px 0}.sidebar-bottom strong{font-size:var(--text-base);line-height:1.5;font-weight:var(--weight-medium)}.sidebar-bottom p{font-size:var(--text-xs);margin-top:10px}.sidebar-bottom a{font-size:var(--text-xs);display:block;margin-top:20px;text-decoration:underline;text-underline-offset:4px}.tiny-orbit{display:flex;gap:4px;margin-bottom:15px}.tiny-orbit span{height:9px;width:9px;border-radius:50%;background:var(--brand-hi)}.tiny-orbit span:nth-child(2){background:var(--accent)}.tiny-orbit span:nth-child(3){background:var(--accent)}.workspace{margin-left:226px;width:calc(100% - 226px)}.topbar{height:79px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;font-size:var(--text-xs);background:var(--n1)}.breadcrumb{color:var(--n7)}.breadcrumb>span{margin-left:13px}.breadcrumb>span:last-child{color:var(--n8)}.top-actions{display:flex;align-items:center;gap:8px;color:var(--n7);font-size:var(--text-xs)}.snapshot-dot{height:6px;width:6px;border-radius:100%;background:var(--accent)}.icon-button{border:1px solid var(--line);border-radius:50%;height:26px;width:26px;background:transparent;margin-left:9px}main{max-width:1550px;margin:0 auto;padding:35px 40px 50px;min-height:calc(100vh - 155px)}.eyebrow{font-size:var(--text-xs);letter-spacing:var(--track-caps);font-weight:var(--weight-semibold);color:var(--n7);text-transform:uppercase;margin-bottom:11px}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:27px}.page-intro p{margin-top:12px;font-size:var(--text-xs);max-width:680px}.intro-controls{display:flex;gap:9px;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--n0);border:1px solid var(--n4);padding:11px 15px;border-radius:7px;font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1.25}.button:hover{background:var(--n3)}.button.primary{background:var(--green);color:var(--on-brand);border-color:var(--green)}.button.primary:hover{background:var(--brand)}.button.dark{color:var(--brand-hi);background:color-mix(in srgb,var(--on-brand) 4%,transparent);border-color:color-mix(in srgb,var(--on-brand) 16%,transparent)}.hero{background:var(--green);color:var(--on-brand);border-radius:13px;padding:29px 32px;display:grid;grid-template-columns:1fr 1fr;gap:40px;overflow:hidden;position:relative;margin-bottom:22px;min-height:206px}.hero .eyebrow{color:var(--on-brand-2);letter-spacing:var(--track-caps);font-size:var(--text-xs)}.hero h2{font-size:var(--text-2xl);letter-spacing:var(--track-display);max-width:440px;font-weight:var(--weight-medium);line-height:1.35}.hero h2 em{color:var(--brand-hi);font-style:normal}.hero p{color:var(--on-brand-2);font-size:var(--text-xs);max-width:400px;margin:10px 0 18px}.hero .button{padding:8px 13px;font-size:var(--text-xs)}.hero-visual{display:flex;flex-direction:column;justify-content:center}.hero-visual .mini-label{font-size:var(--text-xs);color:var(--on-brand-2);letter-spacing:var(--track-caps);text-transform:uppercase;display:flex;justify-content:space-between}.hero .chart{height:125px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 26px}.stat{background:var(--n0);border:1px solid var(--line);border-radius:10px;padding:19px 20px;box-shadow:var(--shadow);position:relative}.stat .stat-label{font-size:var(--text-xs);color:var(--n7)}.stat-value{font-family:var(--font-sans);font-size:var(--text-3xl);letter-spacing:var(--track-display);line-height:1.3;margin-top:8px;font-weight:var(--weight-medium)}.stat-value>small{font-size:var(--text-base);letter-spacing:var(--track-tight);font-weight:var(--weight-regular)}.stat-note{font-size:var(--text-xs);line-height:1.5;color:var(--n7);margin-top:7px}.stat .stat-icon{position:absolute;right:19px;top:16px;height:28px;width:28px;background:var(--n3);display:grid;place-items:center;border-radius:8px;font-size:var(--text-md);color:var(--accent)}.stat.orange .stat-icon{color:var(--heat);background:var(--heat-1)}.stat.purple .stat-icon{color:var(--air);background:var(--air-1)}.stat.blue .stat-icon{color:var(--cool);background:var(--cool-1)}.grid{display:grid;gap:20px;margin-bottom:20px}.grid.two{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--n0);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:23px 24px;min-width:0}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:19px}.card-header p{font-size:var(--text-xs);margin-top:5px}.card-header h2{font-size:var(--text-md)}.overline{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--n7);margin-bottom:7px}.tag{display:inline-flex;align-items:center;gap:5px;background:var(--n3);color:var(--accent);border-radius:5px;padding:5px 7px;line-height:1.3;font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap}.tag.warn{background:var(--n2);color:var(--heat-4)}.tag.gray{background:var(--n3);color:var(--n7)}.segmented{display:flex;gap:3px;padding:3px;background:var(--n2);border-radius:7px}.segmented button{border:0;background:transparent;border-radius:5px;padding:7px 12px;font-size:var(--text-xs);color:var(--n7)}.segmented button.active{background:var(--n0);color:var(--n9);box-shadow:0 1px 4px color-mix(in srgb,var(--shadow-base) 7%,transparent)}.legend{display:flex;gap:17px;align-items:center;flex-wrap:wrap;font-size:var(--text-xs);color:var(--n7)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.chart{width:100%;height:250px;position:relative}.chart svg{display:block;width:100%;height:100%;overflow:visible}.chart text{font-family:var(--font-sans);fill:var(--n6);font-size:var(--text-xs)}.chart .gridline{stroke:var(--n3);stroke-width:1}.chart .axis-label{fill:var(--n7);font-size:var(--text-xs)}.chart .point{cursor:crosshair}.chart-foot{display:flex;justify-content:space-between;gap:16px;font-size:var(--text-xs);color:var(--n6);margin-top:14px;line-height:1.55}.chart-foot button{background:none;border:0;font-size:var(--text-xs);color:var(--accent);padding:0;text-decoration:underline;text-underline-offset:3px}.insight-strip{background:var(--n2);border:1px solid var(--n3);border-radius:7px;display:flex;gap:10px;align-items:flex-start;padding:11px 13px;font-size:var(--text-xs);line-height:1.6;color:var(--n7);margin-top:17px}.insight-strip .insight-symbol{color:var(--accent);font-size:var(--text-md);line-height:1.2}.rank-list{display:grid;gap:16px}.rank-row{display:grid;grid-template-columns:20px minmax(0,1fr) 53px;gap:8px;align-items:center;border:0;background:none;text-align:left;padding:0;width:100%}.rank-row .rank-number{font-size:var(--text-xs);color:var(--n6)}.rank-label{font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-detail{font-size:var(--text-xs);color:var(--n6);margin-top:3px}.rank-bar{margin-top:7px;height:4px;background:var(--n3);border-radius:5px;overflow:hidden}.rank-bar i{height:100%;background:var(--heat-3);display:block;border-radius:4px}.rank-value{text-align:right;font-size:var(--text-base);font-family:var(--font-sans);letter-spacing:var(--track-tight)}.rank-value small{font-size:var(--text-xs);color:var(--n6)}.text-link{font-size:var(--text-xs);color:var(--accent);border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:4px}.calendar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;max-width:100%;margin-top:12px}.calendar .cal-cell{border:0;border-radius:4px;height:27px;font-size:var(--text-xs);transition:transform .12s}.calendar .cal-cell:hover{transform:scale(1.1);z-index:1}.cal-weekdays{display:grid;grid-template-columns:repeat(5,1fr);text-align:center;color:var(--n6);font-size:var(--text-xs);gap:5px}.calendar-wrap{max-width:360px;margin:auto}.cal-month{font-size:var(--text-xs);font-weight:var(--weight-medium);margin-bottom:12px;color:var(--n7)}.calendar-scale{display:flex;justify-content:center;align-items:center;gap:4px;margin:12px auto;color:var(--n7);font-size:var(--text-xs)}.calendar-scale i{width:18px;height:7px;border-radius:2px}.coverage-ring{position:relative;height:150px;width:150px;margin:10px auto 16px}.coverage-ring svg{transform:rotate(-90deg);height:100%;width:100%}.coverage-ring .ring-text{position:absolute;inset:0;display:grid;align-content:center;justify-content:center;text-align:center}.ring-text b{font-size:var(--text-3xl);font-weight:var(--weight-medium);letter-spacing:var(--track-display)}.ring-text span{font-size:var(--text-xs);color:var(--n7);margin-top:4px}.coverage-key{display:flex;justify-content:center;gap:20px;text-align:center}.coverage-key b{display:block;font-size:var(--text-base);font-weight:var(--weight-medium);margin-bottom:4px}.coverage-key span{font-size:var(--text-xs);color:var(--n7)}.mini-callout{font-size:var(--text-xs);color:var(--n7);border-top:1px solid var(--line);padding-top:15px;margin-top:19px;line-height:1.65}.filters{display:flex;align-items:flex-end;gap:16px;background:var(--n0);border:1px solid var(--line);border-radius:10px;padding:18px 21px;margin-bottom:20px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:var(--text-xs);color:var(--n7);text-transform:uppercase;letter-spacing:var(--track-caps)}.field input,.field select{border:1px solid var(--n4);border-radius:7px;padding:11px 12px;background:var(--n0);color:var(--n9);min-width:0;max-width:100%;font-size:var(--text-xs)}.field select{padding-right:27px}.field.wide{flex:1;min-width:180px}.filter-right{display:flex;gap:9px;margin-left:auto;align-items:center}.search-icon{position:relative}.search-icon input{width:100%;padding-left:34px}.search-icon:before{content:'⌕';position:absolute;top:7px;left:12px;font-size:var(--text-xl);color:var(--n7)}.school-info{display:flex;gap:12px;align-items:center;margin-bottom:21px}.school-avatar{width:49px;height:49px;display:grid;place-items:center;border:1px solid var(--n4);border-radius:12px;background:var(--n3);font-size:var(--text-xl);color:var(--accent)}.school-info h2{font-size:var(--text-2xl);letter-spacing:var(--track-tight)}.school-info p{font-size:var(--text-xs);margin-top:5px}.school-info .button{margin-left:auto}.room-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}.room-list-panel{padding:19px 16px;max-height:910px;display:flex;flex-direction:column;position:sticky;top:20px}.room-list-panel .field{margin:15px 0 10px}.room-list-panel .field input{padding:9px;font-size:var(--text-xs)}.room-list{overflow:auto;max-height:690px;scrollbar-width:thin}.room-choice{display:block;width:100%;text-align:left;border:1px solid transparent;border-radius:7px;background:none;padding:12px 10px;margin-bottom:3px}.room-choice:hover{background:var(--n2)}.room-choice.active{background:var(--n3);border-color:var(--n4)}.room-choice-top{display:flex;justify-content:space-between;align-items:center;gap:7px}.room-choice b{font-size:var(--text-xs);font-weight:var(--weight-semibold)}.room-choice small{font-size:var(--text-xs);color:var(--n7)}.room-choice p{font-size:var(--text-xs);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-choice .tiny-bar{height:3px;border-radius:4px;background:var(--n4);margin-top:9px}.tiny-bar i{height:100%;display:block;background:var(--n5);border-radius:4px}.room-detail{min-width:0}.room-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:0 0 18px}.room-heading h2{font-size:var(--text-xl)}.room-heading p{font-size:var(--text-xs);margin-top:7px}.room-controls{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.room-controls label{font-size:var(--text-xs);color:var(--n7);display:flex;align-items:center;gap:6px}.room-controls select,.room-controls input{font-size:var(--text-xs);border:1px solid var(--n4);border-radius:6px;padding:7px;background:var(--n0);color:var(--accent)}.room-controls input{width:63px}.room-controls .spacer{flex:1}.room-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:17px}.room-mini-stats>div{border-left:2px solid var(--heat-2);padding:4px 12px}.room-mini-stats>div:nth-child(2){border-color:var(--air-2)}.room-mini-stats>div:nth-child(3){border-color:var(--cool-2)}.room-mini-stats b{font-size:var(--text-2xl);font-weight:var(--weight-medium);letter-spacing:var(--track-tight);display:block}.room-mini-stats small{font-size:var(--text-xs);color:var(--n6);line-height:1.5;display:block;margin-top:5px}.room-mini-stats b span{font-size:var(--text-xs);color:var(--n6);margin-left:3px}.chart-label{font-size:var(--text-xs);color:var(--n7);display:flex;align-items:center;justify-content:space-between}.room-detail .chart{height:210px}.room-detail .chart.short{height:160px}.no-data{display:grid;place-items:center;min-height:180px;color:var(--n6);font-size:var(--text-xs);text-align:center;line-height:1.8;padding:20px}.heatmap-scroll{overflow:auto}.heatmap{display:grid;gap:2px;min-width:430px}.heatmap .heat-label{color:var(--n7);font-size:var(--text-xs);display:flex;align-items:center;justify-content:end;padding-right:5px}.heatmap .heat-cell{border:0;padding:0;min-height:10px;border-radius:1.5px}.heatmap .heat-cell:hover{outline:1px solid var(--brand);z-index:1}.axis-note{font-size:var(--text-xs);text-align:center;color:var(--n6);margin-top:10px}.tip-anchor{cursor:help}.table-wrap{overflow:auto;max-height:420px;scrollbar-width:thin}table{width:100%;border-collapse:collapse;font-size:var(--text-xs);text-align:left}th{position:sticky;top:0;background:var(--n2);color:var(--n7);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:11px 12px;white-space:nowrap}td{padding:12px;border-bottom:1px solid var(--n3);color:var(--n8);white-space:nowrap}td:first-child{color:var(--n9);font-weight:var(--weight-medium)}tbody tr:hover{background:var(--n2)}.table-button{background:none;border:0;color:inherit;text-align:left;font:inherit;font-weight:var(--weight-semibold);padding:0;text-decoration:underline;text-underline-offset:3px}.school-directory{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:20px}.school-tile{background:var(--n0);border:1px solid var(--line);border-radius:9px;padding:18px;text-align:left;display:block}.school-tile:hover{border-color:var(--accent);box-shadow:0 5px 16px color-mix(in srgb,var(--shadow-base) 5%,transparent)}.school-tile h3{font-size:var(--text-sm);line-height:1.5}.school-tile p{font-size:var(--text-xs);margin-top:7px}.school-tile .tile-values{display:flex;gap:22px;margin-top:16px;font-size:var(--text-lg);font-family:var(--font-sans)}.tile-values small{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--n6);display:block;margin-top:4px}.directory-toolbar{display:flex;gap:12px;margin-top:18px;align-items:center}.directory-toolbar input{border:1px solid var(--line);border-radius:7px;padding:11px 14px;flex:1;max-width:360px;background:var(--n0)}.directory-toolbar select{padding:10px;border:1px solid var(--line);border-radius:6px;color:var(--n7);background:var(--n0);font-size:var(--text-xs)}.about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}.prose p{font-size:var(--text-xs);margin:12px 0}.prose h2{margin:25px 0 12px}.prose h2:first-child{margin-top:0}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.prose ul{font-size:var(--text-xs);color:var(--n7);line-height:1.9;padding-left:20px}.prose strong{color:var(--accent);font-weight:var(--weight-semibold)}.prose details{border-top:1px solid var(--line);padding:17px 0}.prose summary{cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-semibold)}.source-card{padding:17px;background:var(--n2);border-radius:7px;margin:16px 0}.source-card h3{font-size:var(--text-xs)}.source-card p{font-size:var(--text-xs)}.quality-bars{display:grid;gap:18px;margin:20px 0}.quality-bar{font-size:var(--text-xs);display:grid;grid-template-columns:1fr auto;gap:8px;color:var(--n7)}.quality-bar .bar{grid-column:1/-1;height:7px;background:var(--n3);border-radius:8px;overflow:hidden}.quality-bar i{display:block;height:100%;background:var(--accent)}.compare-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:23px}.compare-card{border-top:3px solid var(--compare-color);padding:20px}.compare-card label{font-size:var(--text-xs);color:var(--n7);display:block;margin-bottom:10px}.compare-card select{width:100%;border:1px solid var(--line);border-radius:6px;padding:10px;font-size:var(--text-xs);color:var(--n9);background:var(--n0)}.compare-card .compare-value{display:flex;justify-content:space-between;align-items:flex-end;margin-top:21px}.compare-value b{font-size:var(--text-3xl);font-weight:var(--weight-medium);letter-spacing:var(--track-display)}.compare-value small{font-size:var(--text-xs);color:var(--n6)}.compare-card p{font-size:var(--text-xs);margin-top:11px}.comparison-note{font-size:var(--text-xs);padding:15px 20px;background:var(--n3);border-radius:8px;margin-bottom:22px;color:var(--n7);line-height:1.8}.compare-heat-grid{display:grid;gap:3px;overflow:auto}.compare-heat-grid>div{display:grid;grid-template-columns:130px repeat(51,minmax(8px,1fr));gap:3px;min-width:700px;align-items:center}.compare-heat-grid span{font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding-right:10px}.compare-heat-grid button{height:25px;border:0;border-radius:3px;padding:0}#tooltip{position:fixed;z-index:100;background:color-mix(in srgb,var(--tip-bg) 96%,transparent);color:var(--on-brand);padding:11px 14px;border:1px solid color-mix(in srgb,var(--on-brand) 22%,transparent);border-radius:7px;font-size:var(--text-xs);line-height:1.7;max-width:280px;box-shadow:0 6px 22px color-mix(in srgb,var(--shadow-base) 13%,transparent);pointer-events:none}#tooltip b{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--brand-hi);display:block;margin-bottom:2px}#toast{position:fixed;left:calc(50% + 100px);bottom:30px;background:var(--tip-bg);color:var(--on-brand);border-radius:8px;padding:13px 22px;font-size:var(--text-xs);box-shadow:0 4px 30px color-mix(in srgb,var(--shadow-base) 13%,transparent);z-index:200;opacity:0;pointer-events:none;transform:translate(-50%,20px);transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid var(--line);border-radius:12px;padding:32px;max-width:850px;width:calc(100% - 40px);max-height:85vh;background:var(--n0);color:var(--ink)}dialog::backdrop{background:color-mix(in srgb,var(--brand) 33%,transparent);backdrop-filter:blur(3px)}.close-dialog{float:right;background:none;border:0;font-size:var(--text-2xl);color:var(--n7)}.dialog-title{font-size:var(--text-2xl);margin-bottom:18px}.skip{position:fixed;z-index:300;top:-60px;left:20px;padding:12px;background:var(--brand-hi);color:var(--n9);border-radius:6px}.skip:focus{top:15px}.loading{min-height:60vh;display:flex;align-items:center;justify-content:center;gap:15px;font-size:var(--text-xs);color:var(--n7)}.loader{width:16px;height:16px;border:2px solid var(--n4);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}footer{padding:23px 40px;border-top:1px solid var(--line);font-size:var(--text-xs);color:var(--n6);display:flex;justify-content:space-between;gap:15px}.inline-empty{padding:20px;color:var(--n7);font-size:var(--text-xs);text-align:center}.view-all{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.scatter-label{font-size:var(--text-xs)!important;fill:var(--n7)!important;pointer-events:none}.chart .dot{transition:r .15s;cursor:pointer}.chart .dot:hover{r:8;stroke:var(--n9);stroke-width:2}.badge-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.swatch-bar{display:flex;height:9px;overflow:hidden;border-radius:10px;background:var(--n3);margin:10px 0}.swatch-bar i{height:100%}.number-note{font-size:var(--text-xs);color:var(--n7);line-height:1.8}.heat-legend{display:flex;gap:4px;align-items:center;font-size:var(--text-xs);color:var(--n7)}.heat-legend i{width:16px;height:8px;border-radius:2px}.subtle-note{color:var(--n7);font-size:var(--text-xs);line-height:1.7;margin-top:13px}.mobile-school-select{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){main{padding-top:42px}.hero{min-height:215px}}@media(max-width:1200px){.sidebar{width:200px;padding-left:17px;padding-right:17px}.workspace{margin-left:200px;width:calc(100% - 200px)}main{padding:28px}.topbar{padding:0 28px}.hero{gap:20px;padding:25px}.stats-grid{gap:12px}.stat{padding:17px}.stat-icon{display:none!important}.grid.two{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.room-layout{grid-template-columns:220px minmax(0,1fr)}.room-detail .grid.equal{grid-template-columns:1fr}.school-directory{grid-template-columns:repeat(2,1fr)}h1{font-size:var(--text-3xl)}.card{padding:20px}.page-intro{align-items:flex-start}.intro-controls .button{padding:10px}.about-grid{grid-template-columns:1fr 1fr}}@media(max-width:960px){.sidebar{width:175px;padding:26px 12px}.brand{font-size:var(--text-lg);gap:7px}.brandmark{font-size:var(--text-4xl)}.workspace{margin-left:175px;width:calc(100% - 175px)}nav a{font-size:var(--text-xs);gap:7px;padding:12px 9px}.district-label{font-size:var(--text-xs);letter-spacing:var(--track-caps)}.sidebar-bottom{padding:18px 6px 0}.sidebar-bottom strong{font-size:var(--text-xs)}.hero{grid-template-columns:1fr}.hero-visual{display:none}.hero h2{font-size:var(--text-2xl);max-width:none}.hero p{max-width:none}.grid.two,.grid.equal,.about-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.room-layout{grid-template-columns:1fr}.room-list-panel{display:none}.mobile-school-select{display:block}.room-detail .grid.equal{grid-template-columns:1fr 1fr}.room-mini-stats b{font-size:var(--text-xl)}.intro-controls{flex-direction:column}.compare-cards{gap:10px}.compare-card{padding:13px}.compare-value b{font-size:var(--text-2xl)}.page-intro p{font-size:var(--text-xs)}.top-actions{font-size:var(--text-xs)}.card-header h2{font-size:var(--text-md)}.chart{height:250px}}@media(max-width:650px){.sidebar{position:relative;width:100%;padding:15px 19px 0;border-right:0;border-bottom:1px solid var(--line);background:var(--n1)}.shell{display:block}.brand{font-size:var(--text-base);gap:8px}.brand br{display:none}.brand strong{margin-left:4px}.brandmark{font-size:var(--text-3xl)}.district-label,.saved-label,.saved-schools,.sidebar-bottom{display:none}.sidebar nav{display:flex;overflow:auto;gap:14px;margin-top:13px;justify-content:space-between}.sidebar nav a{white-space:nowrap;padding:12px 0;border-radius:0;font-size:var(--text-xs);gap:6px}.sidebar nav a.active{background:none;border-bottom:2px solid var(--accent)}.sidebar nav a>span{display:none}.workspace{margin-left:0;width:100%}.topbar{height:48px;padding:0 19px}.breadcrumb{font-size:var(--text-xs)}.breadcrumb>span{margin-left:7px}.top-actions{gap:5px;font-size:var(--text-xs)}.top-actions .icon-button{height:22px;width:22px;margin-left:4px}main{padding:24px 18px 34px}h1{font-size:var(--text-3xl);letter-spacing:var(--track-display)}.eyebrow{font-size:var(--text-xs);letter-spacing:var(--track-caps)}.page-intro{gap:10px;display:block;margin-bottom:22px}.page-intro p{font-size:var(--text-xs);margin-top:10px}.intro-controls{margin-top:15px;flex-direction:row}.hero{padding:23px;min-height:0;margin-bottom:17px}.hero h2{font-size:var(--text-2xl)}.hero p{font-size:var(--text-xs)}.hero .eyebrow{font-size:var(--text-xs)}.stats-grid{gap:10px;margin-bottom:18px}.stat{padding:15px}.stat-value{font-size:var(--text-3xl)}.stat .stat-label{font-size:var(--text-xs)}.stat-note{font-size:var(--text-xs)}.grid{gap:16px;margin-bottom:16px}.card{padding:19px 17px}.card-header{gap:8px;margin-bottom:14px}.card-header h2{font-size:var(--text-base)}.card-header p{font-size:var(--text-xs)}.segmented button{padding:6px 8px;font-size:var(--text-xs)}.chart{height:240px}.chart text{font-size:var(--text-xs)}.chart-foot{font-size:var(--text-xs)}.filters{padding:15px;gap:12px}.field.wide{min-width:100%;width:100%}.field select{padding:10px 7px}.filter-right{margin-left:0}.school-info h2{font-size:var(--text-xl)}.school-avatar{height:39px;width:39px;font-size:var(--text-md)}.school-info .button{font-size:var(--text-xs);padding:9px}.school-info p{font-size:var(--text-xs)}.school-info{gap:9px}.room-heading{display:block}.room-heading .tag{margin-top:10px}.room-detail .grid.equal{grid-template-columns:1fr}.room-mini-stats{gap:5px}.room-mini-stats>div{padding-left:8px}.room-mini-stats b{font-size:var(--text-xl)}.room-mini-stats small{font-size:var(--text-xs)}.room-controls{gap:9px}.room-controls .spacer{display:none}.room-controls label{font-size:var(--text-xs)}.school-directory{grid-template-columns:1fr}.directory-toolbar{flex-wrap:wrap}.directory-toolbar input{min-width:100%}.compare-cards{grid-template-columns:1fr}.compare-card{display:grid;grid-template-columns:1fr 85px;gap:0 20px;padding:15px}.compare-card label{grid-column:1/-1}.compare-card select{align-self:center}.compare-card .compare-value{margin-top:0}.compare-card p{grid-column:1/-1}.compare-value b{font-size:var(--text-2xl)}.compare-value{display:block!important;text-align:right}.compare-value small{display:block}.comparison-note{font-size:var(--text-xs);padding:13px 16px}.legend{gap:12px;font-size:var(--text-xs)}footer{padding:20px;font-size:var(--text-xs);display:block;line-height:1.8}footer span{display:block}#toast{left:50%;width:max-content;max-width:calc(100% - 30px);font-size:var(--text-xs)}.top-actions .snapshot-dot{display:none}.tag{font-size:var(--text-xs)}.coverage-ring{height:140px;width:140px}.calendar .cal-cell{height:31px}.chart .scatter-label{font-size:var(--text-xs)!important}.hero .button{font-size:var(--text-xs)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---- Insights page ---- */
.ins-card{margin-bottom:14px;padding:18px 22px}
.ins-card h2{font-size:var(--text-xl);line-height:1.25;margin:4px 0 4px;max-width:880px}
.ins-sub{font-size:var(--text-sm);line-height:1.5;max-width:860px;margin-bottom:10px}
.ins-card .chart{height:auto;width:100%}
.ins-card .chart svg{display:block;width:100%;height:auto;overflow:visible}
.ins-card .chart .ins-t{font:var(--weight-medium) var(--text-xs) var(--font-sans);fill:var(--n8)}
.ins-card .chart .ins-t.strong{font-weight:var(--weight-semibold);fill:var(--n10)}
.ins-card .chart .ins-t.ink{fill:var(--n10);font-size:var(--text-xs)}
.ins-card .chart .ins-big{font:var(--weight-semibold) var(--text-base) var(--font-sans);fill:var(--n10)}
.ins-card .chart .ins-big.hotv{fill:var(--heat-5)}
.ins-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:2px 0 4px;font-size:var(--text-xs);color:var(--n8)}
.ins-legend i{width:11px;height:11px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:-1px}
.ins-two{display:grid;grid-template-columns:1fr 1fr;gap:6px 26px}
.ins-mini{font-size:var(--text-xs);color:var(--n8);margin:2px 0}
.ins-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.ins-note{font-size:var(--text-xs);color:var(--n8)}
.ins-more{margin-top:8px;font-size:var(--text-xs)}
.ins-card .chart-foot{font-size:var(--text-xs);color:var(--n7);margin-top:8px}
.ins-card .chart-foot button{font-size:var(--text-xs)}
.take-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.take{border-radius:9px;padding:12px 14px;background:var(--n2);border-top:3px solid var(--accent)}
.take-maybe{border-top-color:var(--heat-3)}.take-unknown{border-top-color:var(--n6)}
.take h3{font-size:var(--text-base);margin-bottom:6px}
.take ul{margin:0;padding-left:17px;display:grid;gap:7px;font-size:var(--text-sm);line-height:1.5;color:var(--n9)}
.ins-buckets{display:grid;gap:10px;margin-top:6px}
.bk-row{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center}
.bk-label{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.bk-label small{display:block;font-weight:var(--weight-regular);color:var(--n7);font-size:var(--text-xs)}
.bk-bar{display:flex;gap:2px;height:38px}
.bk-seg{display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:4px;min-width:2px}
.bk-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--text-xs);color:var(--n8);align-items:center}
.bk-legend i{width:18px;height:10px;border-radius:2px;display:inline-block;margin-right:5px}
.bk-cap{width:100%}
.gap-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px;margin:10px 0 0}
.gap-list dt{font-weight:var(--weight-semibold);font-size:var(--text-sm)}.gap-list dd{margin:2px 0 0;font-size:var(--text-sm);line-height:1.5;color:var(--n8)}

/* ---- Compact vertical rhythm, all pages ---- */
.topbar{height:56px}
main{padding-top:22px;padding-bottom:28px}
.page-intro{margin-bottom:16px}
h1{font-size:var(--text-3xl);letter-spacing:var(--track-display)}
.page-intro p{margin-top:4px}
.stats-grid{margin-bottom:14px}.grid{gap:14px;margin-bottom:14px}
.hero{min-height:0}
footer{padding:14px 40px}
@media(max-width:960px){.take-grid,.gap-list{grid-template-columns:1fr}.ins-two{grid-template-columns:1fr}}
@media(max-width:650px){
 .sidebar{padding:8px 16px 0}.sidebar nav{margin-top:4px;gap:16px}.sidebar nav a{padding:8px 0;font-size:var(--text-xs)}.brand{font-size:var(--text-base)}.brandmark{font-size:var(--text-2xl)}
 .topbar{height:36px;padding:0 16px}.breadcrumb,.top-actions{font-size:var(--text-xs)}
 main{padding:12px 12px 20px}
 h1{font-size:var(--text-2xl);letter-spacing:var(--track-display);line-height:1.15}
 .page-intro{margin-bottom:10px}.page-intro p{font-size:var(--text-xs);margin-top:4px}
 .eyebrow{font-size:var(--text-xs)}
 .hero{padding:16px;margin-bottom:10px}.hero h2{font-size:var(--text-xl)}
 .stats-grid{gap:8px;margin-bottom:10px}.stat{padding:11px}.stat-value{font-size:var(--text-2xl)}.stat .stat-label,.stat-note{font-size:var(--text-xs)}
 .grid{gap:10px;margin-bottom:10px}
 .card{padding:12px}.card-header{margin-bottom:8px}.card-header h2{font-size:var(--text-md)}.card-header p{font-size:var(--text-xs)}
 .chart-foot{font-size:var(--text-xs);margin-top:6px}
 .chart text{font-size:var(--text-xs)}
 .ins-card{padding:12px 12px 10px;margin-bottom:10px}.ins-card h2{font-size:var(--text-md)}.ins-sub{font-size:var(--text-xs);margin-bottom:6px}
 .ins-card .chart .ins-t{font-size:var(--text-xs)}.ins-card .chart .ins-t.ink{font-size:var(--text-xs)}.ins-card .chart .ins-big{font-size:var(--text-xs)}
 .ins-legend{font-size:var(--text-xs);gap:2px 12px}
 .take-grid{gap:8px}.take{padding:9px 11px}.take ul{font-size:var(--text-xs);gap:5px}
 .bk-row{grid-template-columns:1fr;gap:4px}.bk-bar{height:34px}
 .gap-list{gap:8px}
 footer{padding:12px 16px;font-size:var(--text-xs)}
 .filters{padding:10px;gap:8px}
}
svg.brandmark{width:44px;height:44px;flex:none;color:var(--ink)}
.take{border-top-color:var(--cool-4)}.take-maybe{border-top-color:var(--air-4)}.take-unknown{border-top-color:var(--n6)}
@media(max-width:650px){svg.brandmark{width:30px;height:30px}}
.cal-grid{display:grid;grid-template-columns:18px repeat(var(--weeks),minmax(0,1fr));gap:4px;margin-top:6px;width:100%}
.cal-grid .cal-cell{height:clamp(28px,4.2vw,46px);border:0;border-radius:6px;font-size:var(--text-xs);font-weight:var(--weight-semibold);display:flex;align-items:center;justify-content:center;padding:0;transition:transform .12s}
.cal-grid button.cal-cell:hover{transform:scale(1.08);z-index:1;box-shadow:0 2px 8px color-mix(in srgb,var(--shadow-base) 20%,transparent)}
.cal-grid .cal-none{background:repeating-linear-gradient(45deg,var(--n4) 0 2px,var(--nodata) 2px 6px);color:var(--n6);font-weight:var(--weight-regular)}
.cal-mon,.cal-dow{font-size:var(--text-xs);color:var(--n8);font-weight:var(--weight-semibold);align-self:center}
.cal-mon{text-align:left;white-space:nowrap;overflow:visible;height:16px}
.calendar-scale{font-size:var(--text-xs);gap:8px;margin:10px 0 0;justify-content:flex-start;color:var(--n8);flex-wrap:wrap}
.cal-none-key{width:16px;height:10px;border-radius:2px;background:repeating-linear-gradient(45deg,var(--n5) 0 2px,var(--nodata) 2px 5px);margin-left:10px}
@media(max-width:650px){.cal-grid{gap:3px;grid-template-columns:14px repeat(var(--weeks),minmax(0,1fr))}.cal-grid .cal-cell{height:30px;font-size:var(--text-xs);border-radius:4px}}
.scatter-label{font-size:var(--text-xs)!important;font-weight:var(--weight-semibold);fill:var(--n10)!important;paint-order:stroke;stroke:var(--n0);stroke-width:3px}
@media(max-width:650px){.scatter-label{font-size:var(--text-xs)!important}}
.chart svg{max-width:100%}
/* Agent access uses the atlas's existing palette and component styles. */
.ai-download{margin:24px 0}.ai-prompt{padding:20px;background:var(--cream,var(--n3));border-radius:12px}.ai-prompt label,.ai-endpoint label{display:block;font-size:var(--text-xs);font-weight:var(--weight-semibold);margin-bottom:10px}.ai-prompt textarea{width:100%;font:inherit;font-size:var(--text-xs);line-height:1.7;padding:14px;background:var(--n0);border:1px solid var(--n5);border-radius:8px;resize:vertical;color:var(--n9)}.ai-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.ai-endpoint input{flex:1;min-width:0;width:100%;font-family:var(--font-mono);font-size:var(--text-xs);padding:12px;border:1px solid var(--n5);border-radius:8px}.ai-prompt textarea:focus,.ai-endpoint input:focus{outline:2px solid var(--accent);outline-offset:2px}.ai-links .text-link{font-size:var(--text-xs)}.ai-download .filter-right{align-self:end}.prose ol{padding-left:22px}.prose ol li{margin:9px 0;line-height:1.7}@media(max-width:600px){.ai-endpoint .ai-links{align-items:stretch}.ai-endpoint input{flex-basis:100%}.ai-prompt{padding:14px}.ai-download .filters{align-items:stretch}}

.ai-code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--n3);border-radius:8px;padding:14px;font-size:var(--text-xs);line-height:1.7;max-width:100%}

/* One-click classroom browsing stays available while readings load. */
.room-content{min-width:0}.room-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:14px 18px;background:var(--n0);border:1px solid var(--n4);border-radius:12px}.room-position{text-align:center;min-width:0}.room-position strong,.room-position span{display:block}.room-position strong{font-size:var(--text-base)}.room-position span{font-size:var(--text-xs);color:var(--n8);margin-top:3px;overflow-wrap:anywhere}.room-navigation .button{min-height:44px;white-space:nowrap}.room-navigation .button:disabled{opacity:.4;cursor:default}.room-navigation .button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:450px){.room-navigation{padding:12px 8px;gap:6px}.room-navigation .button{padding:8px;font-size:var(--text-xs)}.room-position strong{font-size:var(--text-sm)}.room-position span{font-size:var(--text-xs)}}

.theme-switch{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:999px;background:var(--n2);margin-left:6px}
.theme-switch button{border:0;background:transparent;color:var(--n7);width:26px;height:22px;border-radius:999px;font-size:var(--text-sm);line-height:1;padding:0}
.theme-switch button:hover{color:var(--ink)}
.theme-switch button.active{background:var(--n0);color:var(--ink);box-shadow:0 1px 3px color-mix(in srgb,var(--shadow-base) 18%,transparent)}
.theme-switch+.icon-button{margin-left:6px}
@media(max-width:650px){.theme-switch button{width:24px;height:20px}.snapshot-dot+span{display:none}}

/* Shared reference controls, metadata comparisons and the parent guide. */
.cutoff-controls{margin:24px 38px 0;padding:20px 24px;border:1px solid var(--n4);border-radius:16px;background:var(--n0)}
.cutoff-controls[hidden]{display:none}.cutoff-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.cutoff-title strong{font-size:var(--text-sm)}.cutoff-controls form{display:flex;align-items:center;gap:24px}.cutoff-controls p{font-size:var(--text-xs);line-height:1.65;color:var(--n8);margin:12px 0 0}.cutoff-field{display:grid;grid-template-columns:auto 100px;align-items:center;column-gap:12px;row-gap:8px;flex:1}.cutoff-field label{font-weight:var(--weight-semibold);font-size:var(--text-xs)}.cutoff-input{display:flex;align-items:center;border:1px solid var(--n5);border-radius:7px;padding:0 9px;background:var(--n1);gap:3px}.cutoff-input input{min-width:0;width:100%;padding:8px 0;background:transparent;border:0;color:var(--n10);font:inherit;font-weight:var(--weight-semibold)}.cutoff-input span{font-size:var(--text-xs);color:var(--n8)}.cutoff-presets{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}.cutoff-presets button{border:1px solid var(--n4);border-radius:20px;background:var(--n1);color:var(--n9);font:inherit;font-size:var(--text-xs);padding:6px 10px;cursor:pointer}.cutoff-presets button[aria-pressed=true]{border-color:var(--heat);color:var(--heat-5);background:var(--heat-1)}.cutoff-field:nth-child(2) .cutoff-presets button[aria-pressed=true]{border-color:var(--air);color:var(--air-5);background:var(--air-1)}
.reference-comparison{margin-bottom:22px}.reference-comparison h2{font-size:var(--text-2xl)}.reference-comparison p,.group-card>p{font-size:var(--text-xs);color:var(--n8);line-height:1.7}.reference-pairs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}.reference-pairs>div{border-left:2px solid var(--heat);padding-left:16px;display:flex;flex-direction:column;gap:7px;color:var(--heat-5)}.reference-pairs>div.air{border-color:var(--air);color:var(--air-5)}.reference-pairs strong{font-size:var(--text-3xl);line-height:1.2;letter-spacing:var(--track-display)}.reference-pairs strong small{font-size:var(--text-base);letter-spacing:0}.reference-pairs span{font-size:var(--text-xs)}.reference-pairs span:last-child{color:var(--n8);font-size:var(--text-xs)}.reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:26px 0}.reference-grid article{border-top:1px solid var(--n4);padding-top:20px}.reference-value{font-size:var(--text-3xl);font-weight:var(--weight-semibold);letter-spacing:var(--track-display);color:var(--heat-5)}.reference-value.air{color:var(--air-5)}.reference-grid h3{font-size:var(--text-base);margin:7px 0}.reference-grid p,.reference-caveat{font-size:var(--text-xs);line-height:1.8;color:var(--n9)}.reference-grid a,.reference-caveat a{font-size:var(--text-xs);text-decoration:underline;text-underline-offset:3px;color:var(--accent)}.reference-caveat{margin:14px 0}.reference-caveat strong{color:var(--n10)}
.metadata-notice{border-left:3px solid var(--cool);background:var(--n2);padding:16px 20px;color:var(--n9);font-size:var(--text-xs);line-height:1.8;margin:20px 0;border-radius:0 10px 10px 0}.metadata-notice strong{display:block;color:var(--n10)}.group-card{margin-bottom:24px}.group-axis{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--n8);margin:22px 0 8px}.group-bars{display:grid;gap:6px}.group-bar-row{display:block;width:100%;background:transparent;text-align:left;color:var(--n10);border:1px solid transparent;border-radius:10px;padding:16px 14px;cursor:pointer;font:inherit}.group-bar-row:hover,.group-bar-row.selected{background:var(--n2);border-color:var(--n4)}.group-bar-heading,.group-bar-caption{display:flex;justify-content:space-between;gap:15px}.group-bar-heading{font-size:var(--text-sm);margin-bottom:10px}.group-bar-heading b{font-size:var(--text-lg);font-variant-numeric:tabular-nums}.group-track{height:12px;background:var(--n3);border-radius:4px;position:relative;overflow:hidden}.group-track i{display:block;height:100%;background:var(--heat);border-radius:4px}.group-track i.air{background:var(--air)}.group-track>span{font-size:var(--text-xs);position:absolute;inset:0;text-align:center;color:var(--n9)}.group-bar-caption{font-size:var(--text-xs);color:var(--n8);margin-top:8px}.group-bar-row>small{display:block;margin-top:7px;font-size:var(--text-xs);color:var(--heat-5)}.metadata-table-wrap{overflow:auto;max-width:100%;margin-top:20px}.metadata-table{border-collapse:collapse;width:100%;font-size:var(--text-xs);text-align:left;min-width:690px}.metadata-table td,.metadata-table th{padding:13px 12px;border-bottom:1px solid var(--n4);vertical-align:top}.metadata-table thead th{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--n8);background:var(--n2)}.metadata-table tbody th{font-weight:var(--weight-medium)}.metadata-table td small,.metadata-table th small{display:block;color:var(--n8);font-size:var(--text-xs);margin-top:5px}.metadata-table a{color:var(--accent)}
.guide-hero{background:var(--brand);color:var(--on-brand);border-radius:20px;padding:42px;margin-bottom:24px;position:relative;overflow:hidden}.guide-hero .eyebrow{color:var(--on-brand-2)}.guide-hero h2{font-size:clamp(var(--text-2xl),3.5vw,var(--text-4xl));font-weight:var(--weight-medium);line-height:1.2;letter-spacing:var(--track-display);margin:16px 0 22px;max-width:760px}.guide-hero p{font-size:var(--text-base);line-height:1.8;max-width:620px;color:var(--on-brand-2)}.guide-hero-key{display:flex;flex-wrap:wrap;gap:20px;margin-top:30px;font-size:var(--text-xs)}.guide-hero-key span{display:flex;align-items:center;gap:8px}.guide-hero-key i{width:9px;height:9px;border-radius:50%}.guide-topic-grid .card{height:100%}.guide-question{border-left:2px solid var(--n6);padding:12px 16px;background:var(--n2);border-radius:0 8px 8px 0;margin-top:20px;font-size:var(--text-xs);line-height:1.8}.guide-question strong{color:var(--n10)}.guide-question p{margin:6px 0 0!important}.guide-references{margin-bottom:24px}.guide-references>p{font-size:var(--text-xs);line-height:1.8;color:var(--n9)}.guide-patterns{display:grid;grid-template-columns:210px 1fr;gap:30px;margin-top:24px}.guide-tabs{display:flex;flex-direction:column;gap:8px}.guide-tabs button{display:flex;justify-content:space-between;text-align:left;padding:16px;border-radius:8px;border:1px solid var(--n4);background:var(--n1);color:var(--n9);font:inherit;font-size:var(--text-xs);cursor:pointer}.guide-tabs button.active{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.guide-pattern-detail{padding:20px 0;min-height:230px}.guide-pattern-detail h3{font-size:var(--text-2xl);line-height:1.3;margin:12px 0}.guide-pattern-detail>p{font-size:var(--text-sm);line-height:1.9;color:var(--n9)}.guide-detail{border-top:1px solid var(--n4);margin-top:20px;padding-top:15px;font-size:var(--text-xs);line-height:1.8}.guide-detail summary{cursor:pointer;font-weight:var(--weight-semibold)}.guide-glossary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:26px}.guide-glossary h3{font-size:var(--text-base);margin:0 0 10px}.guide-glossary p{font-size:var(--text-xs);line-height:1.85;color:var(--n9)}.guide-action{margin-top:24px}.guide-action>p{font-size:var(--text-sm);line-height:1.9;max-width:800px;color:var(--n9)}.guide-action-links{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.guide-patterns a,.guide-topic-grid a,.guide-references a{color:var(--accent)}
@media(max-width:1100px){.cutoff-controls{margin-left:24px;margin-right:24px}.cutoff-controls form{gap:14px}.cutoff-field{grid-template-columns:1fr 95px}.guide-glossary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.cutoff-controls{margin:16px 16px 0;padding:16px}.cutoff-controls form{flex-wrap:wrap;gap:16px}.cutoff-field{flex-basis:calc(50% - 10px);grid-template-columns:1fr;gap:8px}.cutoff-presets{grid-column:auto}.cutoff-controls form>.button{width:100%;justify-content:center}.cutoff-presets button{padding:5px 8px;font-size:var(--text-xs)}.cutoff-title{align-items:flex-start}.cutoff-title .text-link{max-width:135px;font-size:var(--text-xs)}.reference-pairs{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}.reference-pairs strong{font-size:var(--text-3xl)}.reference-grid{gap:20px}.reference-grid h3{font-size:var(--text-sm)}.reference-grid p{font-size:var(--text-xs)}.reference-value{font-size:var(--text-2xl)}.reference-caveat{font-size:var(--text-xs)}.group-bar-row{padding:14px 0}.group-bar-caption{flex-direction:column;gap:4px}.metadata-notice{padding:14px;font-size:var(--text-xs)}.guide-hero{padding:28px 24px}.guide-hero h2{font-size:var(--text-3xl);letter-spacing:var(--track-tight)}.guide-hero p{font-size:var(--text-xs)}.guide-hero-key{gap:14px;font-size:var(--text-xs)}.guide-patterns{grid-template-columns:1fr;gap:8px}.guide-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px}.guide-tabs button{padding:12px;font-size:var(--text-xs)}.guide-pattern-detail{padding:16px 0;min-height:0}.guide-pattern-detail h3{font-size:var(--text-xl)}.guide-glossary{grid-template-columns:1fr;gap:16px}.guide-glossary h3{margin-bottom:5px}.guide-action-links{flex-direction:column}.guide-action-links .button{justify-content:center}}
@media(prefers-reduced-motion:reduce){.group-track i{transition:none}}

.guide-pattern-card{margin-bottom:24px}

.cutoff-scope{font-size:var(--text-xs);color:var(--n8);margin-top:13px}.cutoff-scope summary{cursor:pointer}.cutoff-scope p{margin-top:8px}@media(max-width:700px){.cutoff-controls form{align-items:flex-start}}

/* Parent explanations are part of the chart, with sources one link away. */
.chart-education{--education-color:var(--heat-5);border-left:2px solid var(--heat);padding:14px 16px;background:var(--n2);border-radius:0 9px 9px 0;color:var(--n9);margin-top:14px;font-size:var(--text-xs);line-height:1.7}
.chart-education.air{--education-color:var(--air-5);border-color:var(--air)}
.chart-education h3{font-size:var(--text-sm);line-height:1.4;margin:0 0 8px;color:var(--n10)}
.chart-education p{margin:0;font-size:var(--text-xs);line-height:1.7}
.chart-education-levels{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0;font-size:var(--text-xs);color:var(--n8)}
.chart-education-levels span{display:block}.chart-education-levels b{color:var(--education-color);font-weight:var(--weight-semibold)}
.chart-education .chart-education-limit{font-size:var(--text-xs);color:var(--n8)}
.chart-education a{display:inline-block;color:var(--accent);font-weight:var(--weight-semibold);font-size:var(--text-xs);text-decoration:underline;text-underline-offset:3px;margin-top:9px}
.room-chart-row{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.room-chart-row>.chart-education{margin:0}.room-chart-row>.chart{min-width:0}
@media(min-width:1500px){.room-chart-row{grid-template-columns:minmax(0,1fr) 220px}.room-chart-row .chart-education-levels{display:block}.room-chart-row .chart-education-levels span+span{margin-top:4px}}
.guide-anchor{scroll-margin-top:80px}.guide-anchor:focus{outline:none}.guide-anchor:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
@media(max-width:700px){.chart-education{padding:12px 14px}.guide-anchor{scroll-margin-top:135px}}

/* Reference bands use value-based SVG gradients; default controls live in Settings. */
.reference-chart-key{display:flex;align-items:center;gap:7px 16px;flex-wrap:wrap;font-size:var(--text-xs);color:var(--n8);line-height:1.6;margin:8px 0 12px}
.reference-chart-key span{display:inline-flex;align-items:center;gap:6px}.reference-chart-key i{display:inline-block;width:17px;height:3px;border-radius:2px}
.reference-chart-key a{margin-left:auto;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.chart .reference-axis-label{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.settings-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.settings-references,.settings-reference-notes,.settings-chart-context{width:100%}.settings-references{margin-bottom:24px}.settings-references .card-header{margin-bottom:28px}.settings-references .card-header>button{flex-shrink:0;font-size:var(--text-xs)}
.settings-cutoff-form{display:grid;grid-template-columns:1fr 1fr;gap:24px 40px}.settings-cutoff-form .cutoff-field{display:grid;grid-template-columns:1fr 110px}.settings-cutoff-form .cutoff-field>p{grid-column:1/-1;color:var(--n8);font-size:var(--text-xs);line-height:1.7}
.settings-save{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--n4)}#settings-status{font-size:var(--text-xs);color:var(--n8)}
.settings-chart-context p{font-size:var(--text-xs);line-height:1.85;color:var(--n9);margin:14px 0}.settings-chart-context .button{margin-top:8px}
@media(max-width:700px){.settings-cutoff-form{grid-template-columns:1fr;gap:24px}.settings-references .card-header{display:block}.settings-references .card-header>button{margin-top:14px}.settings-save>.button{flex:1;justify-content:center;white-space:nowrap;font-size:var(--text-xs)}.settings-save #settings-status{width:100%}.reference-chart-key{font-size:var(--text-xs);gap:6px 12px}.reference-chart-key a{margin-left:0;width:100%}.chart .reference-axis-label{font-size:var(--text-xs)}}
/* type-scale follow-ups: labels got larger (min 12px), so keep them on one line */
.saved-label{letter-spacing:var(--track-caps);white-space:nowrap}
.district-label{letter-spacing:var(--track-caps)}
.hero-visual .mini-label{gap:8px;flex-wrap:wrap}
.overline,.eyebrow{letter-spacing:var(--track-caps)}

/* Shared reference colors; school identity is carried by line style. */
.school-line-legend{margin:12px 0;gap:10px 20px}.school-line-legend svg{flex:0 0 28px}.school-number{color:var(--n8);font-variant-numeric:tabular-nums}.chart-color-note{font-size:var(--text-xs);line-height:1.7;color:var(--n8);margin-top:12px}
#district-scatter,#room-weather{height:auto;min-height:230px}#district-scatter>svg,#room-weather>svg{height:auto}

/* Mobile charts keep 12px text and give dense values their own wrapping rows. */
.ins-axis-caption{font-size:var(--text-xs);line-height:var(--leading-body);color:var(--n8);margin:4px 0 10px;overflow-wrap:anywhere}
.ins-bin-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin:8px 0 12px;font-size:var(--text-xs)}
.ins-bin-values>div{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--line)}
.ins-bin-values dt{color:var(--n8)}.ins-bin-values dd{margin:0;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--heat-5)}
@media(max-width:650px){.chart-foot{align-items:flex-start;gap:12px}.chart-foot>span{min-width:0}.chart-foot>button{flex-shrink:0;max-width:90px}.ins-two>div{min-width:0}}

/* Concise overview coverage and optional AI prompt. */
.overview-coverage{font-size:var(--text-sm);color:var(--n8);margin:0 0 18px}.ai-prompt-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ai-prompt-actions>strong{flex:1;min-width:150px;font-size:var(--text-sm)}#ai-prompt-detail{margin-top:16px}

/* Shared page composition: frame width and gutters belong to main. */
:root{--page-section-gap:20px}
.page-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--page-section-gap)}
.page-stack> .card{margin:0}
.page-stack>[role=status]:empty{display:none}
@media(max-width:760px){:root{--page-section-gap:8px}}
