:root{--brand-primary: #0077cc;--brand-primary-rgb: 0, 119, 204;--brand-secondary: #005fa3;--brand-accent: #ff9800;--primary-text: #333333;--secondary-text: #666666;--text-muted: #aaa;--accent-text-light: #ffffff;--primary-background: #ffffff;--secondary-background: #f5f5f5;--subtle-border: #ccc;--medium-border: #999;--strong-border: #666666;--accent-success: #4caf50;--accent-warning: #ffb300;--accent-error: #e53935;--chart-1: #0072B2;--chart-2: #E69F00;--chart-3: #009E73;--chart-4: #CC79A7;--chart-5: #D55E00;--chart-benchmark: #000000;--zbin-exceptional: #2ca25f;--zbin-strong: #99d8c9;--zbin-above-average: #fee08b;--zbin-below-average: #fdae61;--zbin-low: #f46d43;--zbin-very-low: #d73027;--ol-foreground-color: var(--primary-text);--ol-subtle-foreground-color: var(--secondary-text);--ol-accent-background-color: var(--secondary-background);--ol-control-background-color: var(--primary-background);--ol-control-hover-background-color: var(--secondary-background);--ol-highlight-color: var(--brand-primary)}*,:before,:after{margin:0;padding:0;box-sizing:border-box}html,body,#map-container{margin:0;height:100%;width:100%;font-family:sans-serif}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.base-close-btn{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--primary-background, #fff);cursor:pointer;font-size:1.1em;width:1.375em;height:1.375em;color:var(--secondary-text, #666666);transition:background .2s,border-color .2s}.base-close-btn:hover,.base-close-btn:focus{background:var(--secondary-background, #f5f5f5);color:var(--primary-text, #333333);border:1px solid var(--subtle-border, #ccc);border-radius:.2em;outline:none}@media (max-width: 768px){.base-close-btn{display:inline-flex}}.generic-btn{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .5rem;font-weight:700;font-size:.95rem;border-radius:.25rem;border:1px solid var(--subtle-border);background-color:var(--primary-background);color:var(--secondary-text);cursor:pointer;text-decoration:none;transition:background .2s,color .2s,border-color .2s}.generic-btn:hover{background-color:var(--secondary-background);border-color:var(--strong-border)}.control-button.is-active{background:var(--brand-primary);color:var(--accent-text-light)}.control-button:not(.is-active) span{color:var(--text-muted)}.control-button:not(.is-active):hover{background:#fff;color:var(--accent-text-light)}.control-button.map-compare-control:hover,.control-button.map-compare-control:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--accent-text-light)}.cta-btn{background-color:var(--brand-primary);color:var(--accent-text-light);margin-top:1rem}.cta-btn:hover{background-color:var(--brand-accent);color:var(--primary-text)}.locality-btn{display:inline-block;width:8em;max-width:8em;background-color:var(--brand-primary, #0077cc);color:var(--primary-background, #fff);border:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.locality-btn:hover{background-color:var(--brand-secondary, #005fa3)}.chips-container{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem}.metric-chip{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .75rem;border:1px solid var(--subtle-border);border-radius:999px;background-color:var(--secondary-background);color:var(--secondary-text, #666666);cursor:pointer;font-size:.95rem;font-weight:700;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}.metric-chip.active{background:var(--brand-primary);color:var(--accent-text-light)}.metric-chip:focus{outline:1px solid var(--strong-border);outline-offset:2px}.metric-chip:hover{outline:1px solid var(--strong-border);outline-offset:2px}.ol-control button:hover,.ol-control button:focus{color:var(--secondary-text)}.overlay-wrapper{position:fixed;top:0;left:0;width:100%;height:100%;z-index:3000;display:flex;justify-content:center;align-items:center;overflow-y:auto;background:#0000004d;padding:2rem;box-sizing:border-box;opacity:0;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease}.overlay-wrapper.visible{opacity:1;transform:translateY(0)}.overlay-wrapper.hidden{display:none}.base-overlay{position:relative;background:#fff;border-radius:8px;max-width:900px;width:100%;padding:1.5rem;box-shadow:0 4px 12px #00000026;overflow:hidden;box-sizing:border-box;transition:transform .3s ease,opacity .3s ease;display:flex;flex-direction:column}.overlay-header{display:flex;flex-direction:column}.overlay-header .base-close-btn{align-self:flex-end}.overlay-header .overlay-title{display:flex;flex-direction:column;align-self:center;font-size:1.3rem;color:var(--primary-text, #333333)}.overlay-chart{overflow:hidden}.overlay-school-name{font-size:1.3rem;font-weight:600;color:var(--primary-text, #333);text-align:center}.overlay-metric-name{font-size:1.1rem;color:var(--secondary-text, #666);text-align:center;margin-top:.2rem;display:block}.overlay-content{display:flex;flex-direction:column}.overlay-controls{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;margin-bottom:.5rem}.overlay-metric-slider{display:flex;flex-direction:column;align-items:center}.overlay-nav{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--primary-background);border-radius:50%;cursor:pointer;font-size:1.5em;width:1.375em;height:1.375em;color:var(--secondary-text, #666666);transition:background .2s,border-color .2s;padding:1rem}.overlay-nav:hover{background:none;color:var(--primary-text, #333333);border:1px solid var(--subtle-border, #ccc);border-radius:50%;outline:none;padding:1rem}.chart-track{display:flex;width:100%;transition:transform .35s ease}.chart-slide{flex:0 0 100%;display:flex;justify-content:center;align-items:center;padding:.3rem 0}.chart-slide canvas{width:100%!important;height:auto!important}.chart-nav-button{position:absolute;top:50%;transform:translateY(-50%);z-index:20;background:#ffffffe6;border:1px solid var(--subtle-border, #ccc);border-radius:50%;width:34px;height:34px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;align-items:center;font-size:18px;color:var(--primary-text, #333);transition:background .2s,border-color .2s}.chart-nav-button:hover{background:#fff;border-color:var(--primary-color, #0077cc)}.chart-nav-button.prev{left:10px}.chart-nav-button.next{right:10px}@media (min-width: 769px){.chart-nav-button{width:28px;height:28px;font-size:16px;opacity:.6}.chart-nav-button:hover{opacity:1}}.metric-progress{margin-top:.5rem;margin-bottom:.5rem;display:flex;gap:.3rem;justify-content:center}.metric-progress .dot{width:8px;height:8px;border-radius:50%;background:var(--subtle-border, #ccc);cursor:pointer;transition:background .2s}.metric-progress .dot.active{background:var(--primary-color, #0077cc)}@media (max-width: 768px),(max-height: 500px){.overlay-wrapper{align-items:stretch;padding:0}.base-overlay{border-radius:0;max-width:none;width:100%;height:100%;padding:1rem;display:flex;flex-direction:column}.overlay-title{text-align:center;margin-top:1rem;margin-bottom:1rem}.overlay-chart{display:flex;justify-content:center;align-items:center}.overlay-chart canvas{width:100%!important;height:auto!important}.overlay-content{flex:1 1 50%;display:flex;flex-direction:column;justify-content:space-between;align-items:center;margin-top:.5rem}.overlay-content .overlay-metric-slider{display:flex}.overlay-content .chips-container.metric-chips{display:none}}@media (max-width: 768px){.overlay-metric-slider{display:flex;flex-direction:column;align-items:center;overflow:hidden}.slider-track{display:flex;transition:transform .5s ease;width:100%}.metric-label{flex:0 0 100%;text-align:center}.metric-progress{margin-top:.5rem;margin-bottom:.5rem;display:flex;gap:.3rem;justify-content:center}.metric-progress .dot{width:8px;height:8px;border-radius:50%;background:var(--subtle-border, #ccc);cursor:pointer;transition:background .2s}.metric-progress .dot.active{background:var(--primary-color, #0077cc)}}@media (max-height: 500px){.base-overlay{display:grid;grid-template-columns:70% 30%;grid-template-rows:10% 80% 10%;height:100%}.overlay-header{grid-column:1 / -1;grid-row:1 / 2;display:flex;justify-content:space-between;align-items:center;flex-direction:row-reverse}.overlay-title{margin-bottom:0;padding-left:1.5rem}.overlay-chart{grid-column:1 / 2;grid-row:2 / 4;display:flex;justify-content:center;align-items:center}.overlay-metric-slider{grid-column:2 / 3;grid-row:3 / 4}.overlay-content{grid-column:2 / 3;grid-row:2 / 3;display:flex;flex-direction:column;overflow-y:auto;padding:1rem}.overlay-content .overlay-metric-slider{width:100%;padding-bottom:1rem}}.compare-overlay .overlay-title{flex-direction:row;gap:.5rem}.compare-overlay .overlay-metric-name{font-size:1.3rem;font-weight:600;color:var(--primary-text, #666);margin-top:0}.overlay-buttons{display:flex;justify-content:flex-end;gap:.5rem;margin-bottom:.5rem}.clear-all-btn{font-size:.95rem;border:1px solid var(--primary-background);padding:0 .5rem}.compare-legend{margin-top:.5rem;font-size:.9rem;max-height:200px;overflow-y:auto;display:flex;justify-content:center;gap:0em 1.5em;flex-wrap:wrap;flex-direction:row}.legend-item{display:flex;align-items:center;margin-bottom:.25rem;padding:.2rem .5rem;transition:transform .15s ease,background .15s ease}.legend-item:hover{transform:scale(1.05);background:#00000008;border-radius:.5rem}.legend-item.legend-clicked{transform:scale(.95);background:#0000001a}.legend-color-box{display:inline-block;width:36px;height:2px}@media (max-width: 768px){.compare-legend{gap:.5rem;flex-direction:column;flex-wrap:nowrap}}@media (max-width: 768px) and (orientation: landscape){.compare-legend{justify-content:flex-start;flex-direction:column;flex-wrap:nowrap}}@media (max-height: 500px){.compare-legend{justify-content:flex-start}}.top-right-wrapper{position:absolute;top:.5em;right:.5em;display:flex;flex-direction:row;gap:.25em;z-index:1000}.base-control-wrapper{position:relative}.top-right-wrapper>.base-control-wrapper.ol-control{position:relative}.back-control-highlight .control-button{animation:backPulse 1.6s ease-in-out 3}@keyframes backPulse{0%{box-shadow:0 0 rgba(var(--brand-primary-rgb),.6)}70%{box-shadow:0 0 0 12px rgba(var(--brand-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--brand-primary-rgb),0)}}.control-button .control-badge.list{position:absolute;bottom:3px;right:3px;width:5px;height:5px;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--brand-primary)!important}.control-button .control-badge.map{position:absolute;bottom:1px;right:0;width:3px;height:3px;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--brand-primary)!important}@media (max-width: 768px){.control-button .control-badge.map{bottom:3px;right:3px;width:5px;height:5px}.filter-icon{line-height:0}}.base-panel{position:fixed;display:none;z-index:2000;padding:.5rem;width:40vw;max-height:80vh;border-radius:.3rem;background-color:var(--primary-background, #ffffff);box-shadow:0 2px 12px #0000004d;overflow:auto;transition:transform .2s ease,opacity .2s ease}.base-panel.open{display:block}.base-panel.fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;padding:0;max-height:none;z-index:2000}.panel-header{display:flex;justify-content:space-between;align-items:stretch;padding:.5rem;background:var(--primary-background, #ffffff);font-weight:700;font-size:.95rem;color:var(--secondary-text, #666666)}.panel-header-left{flex:1}.panel-header-right{display:flex;flex-direction:column;justify-content:flex-start}.panel-content{display:flex;justify-content:flex-start;padding:.5rem;overflow:auto;max-height:90vh;color:var(--secondary-text, #666666)}.panel-footer{padding:1.5rem .5rem .5rem;color:var(--secondary-text);display:flex;justify-content:center}@media (max-width: 1024px){.base-panel{width:80vw;max-width:none}}@media (max-width: 768px){.base-panel{position:fixed;top:0;right:0;left:0;bottom:0;width:100vw;height:100vh;padding:0;max-height:100vh;border-radius:0;box-shadow:none;z-index:2000}.base-panel .panel-content{justify-content:center;overflow-y:auto}.base-panel .panel-footer{padding-top:3rem}.panel-header{padding:1em;font-size:1.1em}.base-close-btn{font-size:1.3em}}.base-panel.search-panel{max-width:450px}@media (max-width: 768px){.base-panel.search-panel{max-width:100vw}}.panel-header-left-wrapper{display:flex;flex-direction:column;gap:.5em;padding:.5em}.header-row{display:flex;flex-wrap:wrap;gap:.5em;align-items:center}.panel-header .search-result-container{position:relative;margin-top:.25em}.search-module{width:100%}@media (max-width: 768px){.search-module{padding:.5rem 1rem}}.search-div{display:flex;align-items:center;gap:.5em;border:1px solid var(--subtle-border);border-radius:.25em;padding:.25em .5em}.search-div input{border:none;width:100%;padding:.25em .5em;font-size:.95rem;border-radius:.25em;color:var(--primary-text);background:var(--primary-background)}.search-div input:focus{outline:none;border-color:var(--brand-primary)}.search-clear{width:1.2em;height:1.2em;line-height:1;border-radius:50%;padding:0;margin:0;font-weight:400;font-size:1rem;opacity:0;pointer-events:none}.search-clear svg{height:.5em}.search-clear.visible{opacity:1;pointer-events:auto}.search-toggle{position:relative;width:3.5em;height:1.6em;border-radius:1em;background:var(--secondary-background);border:1px solid var(--medium-border);cursor:pointer;transition:background .2s;flex-shrink:0}.search-toggle:after{content:"";position:absolute;top:0;left:0;width:1.5em;height:1.5em;border-radius:50%;background:var(--brand-primary);transition:left .2s}.search-toggle.locality:after{left:calc(100% - 1.5em)}.search-result-container{border-radius:.25;overflow-y:auto;background:var(--primary-background);box-shadow:0 4px 12px var(--subtle-border)}.search-result-container.collapsed{display:none}.search-results{position:relative;top:100%;left:0;right:0;list-style:none;margin:0;padding:0;overflow-y:auto;border:1px solid var(--subtle-border);border-radius:.3em;background:var(--primary-background);z-index:1200;box-shadow:0 4px 12px #0000001a;display:block}.search-results li{padding:.5em .75em;cursor:pointer}.search-results li:hover,.search-results li.active{background-color:var(--brand-primary);color:var(--accent-text-light)}.search-results li.placeholder{color:var(--subtle-text);font-style:italic;cursor:default}.search-results li.placeholder:hover{color:var(--accent-text-light)}.search-results mark{background-color:var(--brand-accent);font-weight:700}.base-panel.filter-panel{max-width:350px}@media (max-width: 768px){.base-panel.filter-panel{max-width:100vw}}.filter-container{background:var(--primary-background);margin-top:.25em;border-radius:.25em;padding:1em}.filter-container.collapsed{display:none}.filter-item{margin-top:.5em}.filter-item strong{display:block;margin-bottom:.25em;font-size:.9rem}.filter-item label{display:flex;align-items:center;gap:.25em;font-size:.85rem;font-weight:400;cursor:pointer}.filter-container{display:flex;flex-direction:row;gap:2rem;padding:.5rem 0}.filter-item{display:flex;flex-direction:column;gap:.3rem}.filter-item strong{color:var(--primary-text);font-size:.95rem;margin-bottom:.25rem}.filter-item label{display:flex;align-items:center;gap:.4em;font-size:.95rem;color:var(--secondary-text);cursor:pointer;-webkit-user-select:none;user-select:none}.filter-item input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:1.1em;height:1.1em;border:1px solid var(--medium-border);border-radius:.25em;background-color:var(--primary-background);position:relative;cursor:pointer;transition:all .2s ease}.filter-item input[type=checkbox]:hover{border-color:var(--brand-primary)}.filter-item input[type=checkbox]:checked{background-color:var(--brand-primary);border-color:var(--brand-primary)}.filter-item input[type=checkbox]:checked:after{content:"";position:absolute;left:.28em;top:.05em;width:.35em;height:.7em;border-right:2px solid var(--accent-text-light);border-bottom:2px solid var(--accent-text-light);transform:rotate(45deg);transition:transform .2s ease}@media (max-width: 768px){.filter-container{gap:2rem}.filter-item strong,.filter-item label{font-size:.9rem}}
