/* User-supplied brand charter. Fonts are served locally. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/assets/fonts/inter-400-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/poppins-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/poppins-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/poppins-800.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{--ink:#0B2D5B;--red:#FF2D3D;--amber:#FFB020;--muted:#567095;--line:#E5E7EB;--surface:#FAFAFB;--blue:#0B2D5B}body{background:var(--surface);font-family:Inter,Arial,sans-serif;color:var(--ink)}h1,h2,h3,.metrics b{font-family:Poppins,Inter,sans-serif}.header{border-bottom:1px solid var(--line);background:#fff}.brand{gap:7px;flex:none;letter-spacing:0;font-style:normal}.brand-emblem{width:80px;height:55px;flex:none}.brand-wordmark{width:195px;height:38px;flex:none}

/* The supplied charter: navy structure, red alerts, amber vigilance. */
body{font-size:16px;background:#FAFAFB}
button,input,select,textarea{font-family:Inter,Arial,sans-serif}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #1474CA;outline-offset:4px}
a{color:var(--ink)}
h1,h2,h3{letter-spacing:-.6px}
.header{height:92px;width:calc(100% - 64px);max-width:1456px;margin:16px auto 0;padding:12px 24px;border:1px solid #E5E7EB;border-radius:16px;gap:24px;box-shadow:0 3px 20px #0B2D5B06}
.brand{gap:8px;margin:0;font-weight:700}
.header nav{font-size:14px;gap:24px;font-weight:600}
.header nav a,.header nav button{padding:10px 0;font-size:14px}
.header .share{margin:0;border-radius:10px;min-height:44px;padding:11px 16px;background:var(--ink);color:white;border:1px solid var(--ink);font-weight:600}
.header nav a:hover,.header nav button:hover{color:#D51930}
main{max-width:1536px;padding:0 40px}
.intro{padding:30px 0 26px;gap:48px;grid-template-columns:minmax(0,1fr) minmax(340px,520px)}
.intro .eyebrow{color:var(--muted);font-size:12px;letter-spacing:1.1px}
.intro h1{font-size:clamp(32px,3.1vw,44px);font-weight:800;line-height:1.15;letter-spacing:-1.4px;margin-bottom:14px}
.intro h1 span{color:var(--red)}
.intro-copy{font-size:16px;line-height:1.6;color:var(--muted)}
.search-area label{font-size:14px;color:var(--ink);font-weight:600}
.search-box{height:58px;border:1px solid #CCD8E8;border-radius:11px;box-shadow:0 3px 12px #0B2D5B04;background:white;padding:0 16px;gap:12px}
.search-box input{font-size:16px;color:var(--ink)}
.search-box:focus-within{outline:2px solid #1474CA;outline-offset:2px}
.search-box .icon{width:22px;height:22px;color:var(--ink)}
.search-box kbd{border-color:var(--line);color:var(--muted)}
.quick-search{gap:8px}
.quick-search button{font-size:14px;font-weight:500;padding:8px 13px;border-radius:8px;border:1px solid #D7E0EB;background:#fff;color:var(--ink)}
.quick-search button:hover{background:#EAF2FC;border-color:#AAC4E1}
.search-note{font-size:12px;color:var(--muted)}
.search-results{border:1px solid #CCD8E8;border-radius:12px;background:white;box-shadow:0 12px 40px #0B2D5B14}
.search-result{padding:14px 16px}
.search-result:hover,.search-result[aria-selected=true]{background:#EDF4FD}
.search-result b{font-size:15px;font-weight:600}
.search-result>small,.search-result span small{font-size:12px;color:var(--muted)}
.day-bar{background:white;color:var(--ink);border:1px solid #DCE4EF;border-radius:12px;padding:15px 20px;gap:16px}
.day-bar .eyebrow{color:var(--muted);font-size:12px}
.date-picker{color:var(--ink)}
.date-picker input{color:var(--ink);color-scheme:light;font-size:17px;font-weight:600}
.date-actions button{min-height:44px;padding:11px 15px;border:1px solid #BFCFE2;border-radius:9px;color:var(--ink);font-size:14px;font-weight:500;background:white}
.date-actions button:hover{background:#EDF4FD}
.date-actions #nav-forecast{background:var(--red);border-color:var(--red);color:white;font-weight:700}
.date-actions #nav-forecast:hover{background:#E92236;border-color:#E92236}
.date-notice{font-size:12px;line-height:1.6;color:var(--muted);padding:11px 0}
.metrics-context{font-size:14px;font-weight:600;margin:6px 0 12px}
.metrics{gap:16px;margin-bottom:18px}
.metrics>button,.metrics>div{min-height:144px;padding:20px 21px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 14px #0B2D5B04}
.metrics>button:hover{border:1px solid #A7BFD9;box-shadow:0 5px 18px #0B2D5B0B}
.metrics b{font-size:34px;letter-spacing:-1px;color:var(--ink);font-weight:700}
.metrics span{font-size:14px;font-weight:600;line-height:1.4;margin-top:8px;max-width:100%}
.metrics small{font-size:12px;line-height:1.5;color:var(--muted)}
.metrics .red,.metrics .purple{color:var(--ink)}
.metric-icon{width:40px;height:40px;right:20px;top:20px;display:grid;place-items:center;border-radius:12px;background:#FFF0F2;color:#D51930;margin:0!important}
.metric-icon .icon{width:23px;height:23px}
[data-metric=blocked] .metric-icon,[data-metric=documents] .metric-icon,[data-metric=announced] .metric-icon{background:#EAF2FC;color:var(--ink)}
[data-metric=damage] .metric-icon,[data-metric=predictive] .metric-icon,[data-metric=local] .metric-icon{background:#FFF2D4;color:#986005}
.national-context{background:#EEF5FE;border:1px solid #D9E7F8;border-left:4px solid #0B2D5B;border-radius:10px;padding:13px 16px;margin-bottom:22px}
.bilan-line p{font-size:14px;line-height:1.55}
.bilan-line small{font-size:12px;color:var(--muted)}
.bilan-line button{font-size:14px;color:var(--ink);font-weight:600;padding:8px 0;line-height:1.5}
.radar-layout{gap:22px;grid-template-columns:minmax(0,1fr) 360px}
.map-panel,.side-panel{background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 18px #0B2D5B04}
.map-heading{padding:24px 24px 14px;gap:18px}
.map-heading h2{font-size:26px;font-weight:700;line-height:1.25;letter-spacing:-.7px}
.map-heading .eyebrow{font-size:12px;color:var(--muted)}
.map-actions button{border:1px solid #CCD8E8;border-radius:9px;color:var(--ink);font-weight:500;font-size:14px;min-height:44px;padding:9px 12px}
.map-actions button:hover,.map-actions button[aria-pressed=true]{background:#EAF2FC}
.map-subtoolbar{padding:5px 24px 16px;font-size:13px}
.breadcrumbs button{font-size:14px;color:var(--ink)}
.source-filter{font-size:13px;color:var(--muted)}
.source-filter input{accent-color:var(--ink)}
.map-canvas{background:#fff}
.dep-code{fill:var(--ink);font-size:9.2px;font-family:Inter,Arial,sans-serif;font-weight:600}
.department-shape{stroke:#fff}
.department-shape:hover,.department-shape:focus{stroke:var(--ink)}
.idf-outline{stroke:#0B2D5B}
.map-tooltip{background:var(--ink);border-radius:9px;color:#fff;font-size:13px;box-shadow:0 5px 20px #0B2D5B22}
.legend{font-size:12px;color:var(--muted);padding:18px 24px 10px;border-color:var(--line);gap:13px}
.legend>b{font-size:13px;color:var(--ink);font-weight:600}
.legend i{border-radius:4px}
.legend .unknown{background:#E5E7EB}
.legend .damage-key,.damage-symbol,.idf-damage{color:#A96600;fill:#FFB020}
.map-footnote{padding:5px 24px 20px;font-size:12px;line-height:1.65;color:var(--muted)}
.detail-column{gap:18px}
.idf-slot .idf-inset{background:white;color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 18px #0B2D5B04;padding:18px;grid-template-columns:minmax(0,1fr) 125px}
.inset-head{font-size:15px;font-weight:700}
.inset-head span,.idf-slot .idf-inset>small{color:var(--muted);font-size:12px}
.inset-code{fill:var(--ink)}
.idf-buttons button{color:#081E3B;border:1px solid #DBE2EC;border-radius:8px;height:44px;font-weight:600;font-size:15px}
.idf-buttons button:hover{border-color:var(--ink);outline:1px solid var(--ink)}
.side-head{padding:24px 22px 18px;background:#fff;border-bottom:1px solid #EEF1F5}
.side-head h2{font-size:23px;font-weight:700;line-height:1.3;color:var(--ink)}
.side-head .eyebrow,.side-head p:last-child{color:var(--muted)}
.directory-row,.city-row{padding:17px 20px;border-color:#EDF0F4}
.directory-row:hover,.city-row:hover,.school-row:hover{background:#F3F7FD}
.directory-row strong{font-family:Poppins,Inter,sans-serif;color:var(--ink);font-size:17px;font-weight:700}
.dep-token{color:#081E3B;border-radius:9px;font-size:14px;font-weight:700}
.directory-row b,.city-row b{font-size:14px;font-weight:600}
.directory-row small,.city-row small,.row-course{font-size:12px;color:var(--muted);line-height:1.6}
.directory-row .open-note{color:#117663}.directory-row .damage-note{color:#936007}
.side-count b{font-family:Poppins,Inter,sans-serif;color:var(--ink)}
.side-count span,.side-divider small{color:var(--muted)}
.school-row{border-color:#EDF0F4;padding:17px 20px}
.school-row-head b{font-size:15px;font-weight:600}
.school-row small{font-size:12px;color:var(--muted)}
.badge{font-size:12px;font-weight:600;border-radius:7px;line-height:1.4;padding:5px 8px}
.badge.blocked{background:#FFF0F2;color:#BE1830}
.badge.closed{background:#EAF2FD;color:#0B2D5B}
.badge.disrupted,.badge.evacuated,.badge.weak,.badge.conflict,.badge.damage{background:#FFF1CF;color:#825302}
.badge.unknown{background:#F0F2F5;color:#5A6A82}
.badge.open,.badge.open-perturbed{background:#E4F5EF;color:#087558}
.badge.future,.badge.future.level-0{background:#F0F2F5;color:#5A6A82}
.badge.future.level-1{background:#FFF7E2;color:#815802}
.badge.future.level-2{background:#FFF0C6;color:#7C5000}
.badge.future.level-3{background:#EAF2FD;color:#0B2D5B}
.ai-label{color:#845300;background:#FFF1CF;border-color:#F7D58C;border-radius:5px}
.damage-card{background:#FFF8E8;border-left-color:#FFB020;border-radius:0 9px 9px 0}
.damage-card b,.damage-card a,.damage-card .text-button{color:#825302}
.damage-card p,.damage-card small{color:#81683D}
.school-marker.closed{background:#0B2D5B;color:white}
.school-marker.blocked{background:#FF2D3D;color:white}
.school-marker.disrupted,.school-marker.evacuated{background:#FFB020;color:#0B2D5B}
.city-marker.has-damage::after,.school-marker.has-damage::after{color:#A96600}
.coverage-strip{background:#EEF5FE;border:1px solid #DDE8F6;border-radius:10px;padding:15px 18px;margin:20px 0 0}
.coverage-strip p{color:var(--muted);font-size:13px;line-height:1.55}
.coverage-strip b,.coverage-strip button{color:var(--ink)}
.coverage-strip button{font-size:14px;font-weight:600}
.section-heading h2{font-size:30px;font-weight:700;line-height:1.3;color:var(--ink)}
.section-heading .eyebrow{color:var(--muted)}
.section-heading>p{font-size:13px;color:var(--muted)}
.trend-section,.signals-section{padding:34px 0;border-color:var(--line)}
.trend-panel{border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 18px #0B2D5B04}
.trend-main{background:white;padding:24px}
.trend-tabs button{min-height:44px;border:1px solid #D5DFEC;border-radius:9px;padding:10px 15px;font-size:14px;font-weight:600;color:var(--ink)}
.trend-tabs button.active{background:var(--ink);border-color:var(--ink);color:white}
.trend-chart text{font-family:Inter,Arial,sans-serif}
.trend-value{fill:var(--ink);font-weight:700}
.trend-source-label,.trend-warning{color:var(--muted);font-size:13px;line-height:1.6}
.trend-aside{background:var(--ink);border-left:4px solid var(--amber);padding:27px}
.trend-aside h3{font-size:22px;font-weight:600;line-height:1.4;color:white}
.trend-aside p{color:#D1DFEF;font-size:14px;line-height:1.75}
.trend-aside .eyebrow{color:#BFD2EA;font-size:12px}
.trend-method{color:white;border-color:#9AB3D3;font-size:14px}
.trend-table{font-size:14px;color:var(--ink)}
.trend-table th,.trend-table td{border-color:var(--line);line-height:1.55}
.trend-table a{color:#1159A2}
.signal-toolbar{gap:16px}
.signal-toolbar label{font-size:14px;font-weight:500;color:var(--ink)}
.signal-toolbar input,.signal-toolbar select{border:1px solid #CCD8E8;border-radius:10px;min-height:48px;color:var(--ink);background:white;font-size:15px}
.signal-toolbar input:focus,.signal-toolbar select:focus{border-color:#1474CA}
.signal-filters button{border:1px solid #D7E0EB;border-radius:8px;background:white;font-size:14px;font-weight:500;color:var(--ink);padding:10px 14px}
.signal-filters button.active{background:var(--ink);border-color:var(--ink);color:white}
#signal-results{font-size:13px;color:var(--muted)}
.signal-feed{gap:18px}
.signal-card{padding:24px;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 18px #0B2D5B04}
.signal-card h3{font-size:19px;line-height:1.4;font-weight:600;color:var(--ink)}
.signal-card p{font-size:14px;line-height:1.7;color:#4D6383}
.signal-top>span:last-child,.signal-card small,.signal-published{font-size:12px;color:var(--muted);line-height:1.65}
.channel{color:#0B2D5B;background:#EAF2FD;font-size:12px;border-radius:6px;padding:5px 8px;font-weight:600}
.channel.snap{background:#FFF2D4;color:#825302}.channel.insta{background:#FFF0F2;color:#BE1830}
.signal-bottom{border-color:#EDF0F5}
.signal-bottom>span{color:#815400;background:#FFF2D4;border-radius:6px;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.5}
.signal-bottom a{font-size:13px;color:#1159A2}
.text-button{color:#1159A2;font-size:14px;font-weight:600}
.feed-limits{font-size:12px;line-height:1.75;color:var(--muted)}
.principles{padding:28px;background:#0B2D5B;border-radius:14px;margin:12px 0 34px;gap:30px;border:0}
.principles>div>span{color:#FFB020;font-size:14px;font-weight:700}
.principles h3{color:white;font-size:18px;font-weight:600}
.principles p{color:#D4E0EF;font-size:14px;line-height:1.7}
footer{max-width:none;padding:26px max(40px,calc((100vw - 1456px)/2));background:#0B2D5B;color:white;border:0;gap:26px}
.footer-brand{display:flex;width:175px;height:112px;padding:8px;background:white;border-radius:10px;flex:none;text-decoration:none}
.footer-brand svg{width:100%;height:100%}
footer p{color:#D5E2F2;font-size:12px;line-height:1.7}
footer button{font-size:14px;font-weight:500;color:white}
dialog{border:1px solid #D9E2ED;background:white;border-radius:16px;color:var(--ink);box-shadow:0 18px 70px #0B2D5B30;padding:28px}
dialog::backdrop{background:#0B2D5B70}
dialog h2{font-size:28px;font-weight:700;line-height:1.3;color:var(--ink)}
dialog h3{color:var(--ink);font-size:20px;font-weight:600;line-height:1.4}
dialog p,dialog li{color:#4C6383;font-size:14px;line-height:1.75}
.dialog-head .eyebrow{font-size:12px;color:var(--muted)}
.close-dialog{background:#F0F4FA;border-radius:8px;color:var(--ink);width:38px;height:38px;font-size:26px}
.school-current,.school-day-history>div{background:#F3F7FD;border-color:#DFE8F4;border-radius:10px}
.school-tools .share,.school-tools a{border:1px solid #CFDAE9;border-radius:8px;padding:10px 13px;color:var(--ink);font-size:14px}
.school-day-history small{color:var(--muted);font-size:13px}
.source-observatory{background:#F3F7FD;border:1px solid #DAE6F5;border-radius:12px;padding:24px}
.coverage-numbers b{font-family:Poppins,Inter,sans-serif;color:var(--ink);font-size:28px;font-weight:700}
.coverage-numbers small{color:var(--muted);font-size:12px}
.coverage-table th,.coverage-table td{font-size:14px;border-color:#D9E3F0;padding:12px 8px}
.coverage-table caption{font-size:12px;color:var(--muted)}
.source-observatory h4,.source-observatory summary{font-size:14px;color:var(--ink)}
.source-observatory details a{color:#1159A2}
.evidence-card,.aggregate-card{border-color:#D6E3F3;background:#F5F8FC;border-radius:8px}
.evidence-card p{font-size:14px;line-height:1.65;color:#4C6383}
.evidence-meta,.evidence-card small,.mini-note{font-size:12px;color:var(--muted);line-height:1.65}
.future-card,.purple-note{background:#FFF8E6;border-color:#FFE1A1;color:#7B5408}
.empty,.notice{font-size:14px;line-height:1.65;color:var(--muted)}
.metric-source{border-color:#E1E8F2}
.metric-source small{font-size:12px;color:var(--muted)}
.toast{background:var(--ink);color:white;border-radius:10px;font-size:14px}
.school-location{font-size:13px!important;color:var(--muted)!important}
.school-current small{color:var(--muted);font-size:13px}
.school-reference{border-color:#DFE8F4;border-radius:10px;background:#F8FAFE}
.school-reference dl,.school-reference p{font-size:13px;color:var(--muted)}
.prediction-card{background:#FFF8E6;border-color:#FFE1A1;border-radius:10px}
.prediction-card h3{color:var(--ink);font-size:20px}
.prediction-card p,.prediction-card small{color:#7B5D2B}
.prediction-card .ai-label{font-size:12px}
.method-summary{background:#F3F7FD;border:1px solid #DFE8F4;border-radius:10px}
.method-summary span,.method-summary small,.source-directory small{color:var(--muted)}
.source-directory article{border-color:#DFE8F4;border-radius:10px}
.source-line a{color:#1159A2}
.badge.neutral{background:#F0F2F5;color:#5A6A82}
.loading{color:var(--muted);font-size:14px}
.school-marker,.city-marker{font-family:Inter,Arial,sans-serif;background:#72849E;border-color:white}
.city-marker.active{background:var(--red)}
.city-marker.open-perturbed,.school-marker.open-perturbed{background:#117663;color:white}
.school-marker.future{background:var(--amber);color:var(--ink)}
.leaflet-container{font-family:Inter,Arial,sans-serif}
.leaflet-popup-content{font-size:14px;line-height:1.6;color:var(--ink)}
.leaflet-popup-content p{font-size:13px;color:var(--muted)}
.popup-button{font-size:14px;border-color:#BFCFE2;color:var(--ink)}
.tile-note{color:var(--muted);font-size:12px}
.incident-days{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:22px 0 12px}
.incident-days button{border:1px solid #D5DFEC;background:white;border-radius:9px;padding:12px 4px;display:flex;align-items:center;flex-direction:column;gap:6px;color:var(--ink)}
.incident-days button.active{background:#FFF2D4;border-color:#FFB020}.incident-days span{font-size:12px}.incident-days b{font:700 25px Poppins,Inter,sans-serif}.incident-days small{font-size:12px;color:var(--muted)}
.incident-list{display:grid;gap:16px;margin:18px 0}.incident-item{padding:18px;border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:10px;background:white}
.incident-item h3{font-size:19px;margin:13px 0 3px}.incident-item p{font-size:14px;line-height:1.65}.incident-item small,.incident-place{font-size:12px;color:var(--muted)}
.incident-meta{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.incident-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;font-size:13px;line-height:1.6}.incident-links a{color:#1159A2}.incident-links button{padding:0}
.audit-freshness{display:flex;flex-direction:column;gap:9px;border-left:3px solid #1474CA;padding:12px 16px;margin:20px 0;background:white;font-size:14px}.audit-freshness span{font-size:13px;color:var(--muted)}
.source-index-open,.source-index-pages button{border:1px solid #BFCFE2;border-radius:9px;background:white;padding:12px 15px;font-size:14px;color:var(--ink);min-height:44px}
.source-browser-controls{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:20px}.source-browser-controls label:first-child{grid-column:1/-1}.source-browser-controls label{display:flex;flex-direction:column;gap:8px;font-size:14px}
.source-browser-controls input,.source-browser-controls select{width:100%;font:inherit;min-height:44px;padding:10px;border:1px solid #BFCFE2;background:white;border-radius:8px;color:var(--ink)}
.source-index-row{display:flex;flex-direction:column;gap:8px;background:white;border:1px solid var(--line);border-radius:10px;padding:15px;margin:10px 0;overflow-wrap:anywhere;font-size:14px}.source-index-row .badge{align-self:start}.source-index-row small{font-size:12px;color:var(--muted);line-height:1.6}.source-index-row p{font-size:13px;margin:0}
.source-index-pages{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0}.source-index-pages button:disabled{opacity:.45;cursor:default}
@media(max-width:600px){.incident-days{grid-template-columns:repeat(3,minmax(0,1fr))}.incident-item{padding:15px}.incident-item h3{font-size:18px}.source-browser-controls{grid-template-columns:1fr}.coverage-table{margin-left:-5px;margin-right:-5px}.coverage-table th,.coverage-table td{overflow-wrap:anywhere}.source-index-open{width:100%}}

@media(max-width:1100px){
 .header{width:calc(100% - 40px);padding:12px 18px;gap:16px}.header nav{gap:18px}.header .share{padding:10px 13px}
 main{padding:0 28px}.intro{gap:28px;grid-template-columns:minmax(0,1fr) minmax(310px,440px)}
 .brand-emblem{width:70px;height:49px}.brand-wordmark{width:177px;height:34px}
 .radar-layout{grid-template-columns:minmax(0,1fr) 315px;gap:18px}.metrics>button{padding:18px 16px}.metric-icon{right:16px}
}
@media(max-width:850px){
 .header{height:auto;min-height:92px;flex-wrap:wrap}.header nav{gap:18px;margin-left:auto}.header .share{display:none}
 .intro{grid-template-columns:1fr;gap:24px}.search-area{max-width:none;width:100%}.intro h1{font-size:38px}.intro h1 br{display:none}
 .radar-layout{grid-template-columns:1fr}.detail-column{grid-template-columns:300px minmax(0,1fr);align-items:start}
 .idf-slot .idf-inset{grid-template-columns:minmax(0,1fr) 112px}.idf-slot .idf-buttons{grid-template-columns:repeat(2,minmax(44px,1fr))}
 .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics>button{min-height:137px}
 .day-bar{padding:15px 18px}.date-actions{gap:7px}.date-actions button{padding:11px}
 .trend-main{padding:22px}.trend-aside{padding:24px}.signal-feed{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 html{scroll-padding-top:12px}.header{width:calc(100% - 24px);margin:12px auto 0;padding:10px 14px 0;display:flex;justify-content:center;gap:8px;min-height:0;border-radius:12px}
 .brand{margin:0;gap:7px}.brand-emblem{width:68px;height:49px}.brand-wordmark{width:179px;height:34px}
 .header nav{order:3;width:100%;display:flex;gap:8px;justify-content:space-between;margin:0;border-top:1px solid #EAF0F7;padding:9px 0 11px}
 .header nav a,.header nav button{display:inline-block;font-size:14px;font-weight:500;padding:5px 0}
 main{padding:0 16px}.intro{padding:24px 0;gap:21px}.intro h1{font-size:31px;line-height:1.2;letter-spacing:-1px}.intro h1 br{display:none}
 .intro .eyebrow{font-size:12px;letter-spacing:.8px}.intro-copy{font-size:16px;line-height:1.55}.intro-copy br{display:none}
 .search-box{height:56px;padding:0 13px}.search-area label{font-size:14px}.quick-search{margin-top:12px;gap:7px}.quick-search button{font-size:14px;padding:8px 11px}
 .day-bar{display:flex;flex-direction:column;padding:15px 13px;gap:12px;border-radius:12px}.date-picker input{font-size:17px;text-align:center}
 .date-actions{width:100%;display:flex;gap:6px;max-width:none;flex-wrap:nowrap}.date-actions button{font-size:14px;padding:10px 6px;flex:1}.date-actions #nav-forecast{flex:2}
 .metrics-context{font-size:13px;line-height:1.55;margin:6px 0 10px}.metrics{gap:10px}.metrics>button{padding:16px 14px;min-height:161px;border-radius:12px}
 .metrics b{font-size:29px}.metric-icon{width:32px;height:32px;top:17px;right:13px;border-radius:9px}.metric-icon .icon{width:20px;height:20px}
 .metrics span{font-size:14px;line-height:1.35;margin-top:8px}.metrics small{font-size:12px;line-height:1.5}
 .national-context{padding:12px 13px;border-radius:10px;margin-bottom:20px}.bilan-line p,.bilan-line button{font-size:13px}
 .map-heading{padding:20px 16px 14px;gap:10px;align-items:start}.map-heading h2{font-size:24px}.map-actions{gap:6px}.map-actions button{font-size:14px;padding:8px 10px;min-height:44px}
 .map-subtoolbar{padding:0 16px 14px;gap:13px;flex-wrap:wrap}.map-canvas{height:540px}.map-canvas.national-view{height:auto;aspect-ratio:1.04}
 .france-svg{padding:8px 6px}.dep-code{font-size:8px}.map-panel,.side-panel{border-radius:14px}
 .legend{padding:17px 16px 10px;gap:10px}.legend button{font-size:12px}.map-footnote{padding:4px 16px 18px}
 .detail-column{grid-template-columns:1fr;gap:16px}.idf-slot .idf-inset{grid-template-columns:minmax(0,1fr) 126px;padding:17px}.idf-slot .idf-inset svg{max-width:160px;justify-self:center}
 .side-head{padding:21px 20px 17px}.side-head h2{font-size:23px}.coverage-strip{padding:13px 15px;flex-wrap:wrap}.coverage-strip p{font-size:12px}
 .trend-section,.signals-section{padding:28px 0}.section-heading h2{font-size:26px;line-height:1.3}.section-heading>p{font-size:13px}
 .trend-main{padding:20px 14px}.trend-chart text{font-size:23px}.trend-chart .trend-value{font-size:24px}.trend-tabs{gap:7px}.trend-tabs button{font-size:13px;padding:10px 11px}
 .trend-table{font-size:12px}.trend-table th,.trend-table td{font-size:12px;padding:10px 5px}.trend-warning{font-size:13px}.trend-aside{padding:22px}.trend-aside h3{font-size:21px}
 .signal-toolbar{flex-direction:column;gap:14px}.signal-toolbar input,.signal-toolbar select{font-size:16px}.signal-filters{gap:8px}.signal-filters button{font-size:14px;padding:9px 11px}
 .signal-feed{grid-template-columns:1fr;gap:14px}.signal-card{padding:21px}.signal-card h3{font-size:19px}
 .principles{padding:23px 20px;gap:24px;grid-template-columns:1fr;margin-bottom:28px}.principles h3{font-size:18px}
 footer{padding:24px 20px;gap:20px;justify-content:center;flex-wrap:wrap}.footer-brand{width:168px;height:109px}footer p{width:100%;margin:0;text-align:center;order:4;font-size:12px}
 dialog{width:calc(100% - 24px);padding:22px 18px;max-height:92vh;border-radius:14px}dialog h2{font-size:25px}dialog h3{font-size:19px}
 .close-dialog{width:38px;height:38px}.school-current{padding:17px}.coverage-numbers b{font-size:24px}.source-observatory{padding:16px}.coverage-table th,.coverage-table td{font-size:12px;padding:10px 5px}
}

/* Pagination des indices : six cartes par page. */
.signal-pagination{display:flex;align-items:center;justify-content:center;gap:22px;margin:24px 0 12px}.signal-pagination button{background:#fff;border:1px solid #BFCFE2;border-radius:9px;padding:12px 16px;min-height:44px;font-size:14px}.signal-pagination span{font-size:13px;white-space:nowrap;color:var(--muted)}.signal-card .school-place{color:var(--ink);font-weight:600;margin-top:-8px}.damage-card .school-place{color:var(--ink);font-weight:600}
@media(max-width:600px){.signal-pagination{gap:12px}.signal-pagination button{padding:10px;font-size:12px}.signal-pagination span{font-size:12px}}


/* Une entrée plus compacte, avec la carte plus proche des chiffres. */
.intro{padding:20px 0 18px;gap:30px}.intro h1{font-size:clamp(30px,2.7vw,38px);margin-bottom:10px}.intro h1 br,.intro-copy br{display:none}.intro .eyebrow{margin-bottom:10px}.intro-copy{font-size:15px;line-height:1.5}.search-box{height:52px}.quick-search{margin-top:10px}.search-note{margin-top:9px;font-size:12px}
.day-bar{padding:10px 16px}.day-bar .eyebrow{margin-bottom:7px}.date-notice{padding:8px 0}.metrics-context{font-size:13px;margin:4px 0 9px}.metrics{gap:14px;margin-bottom:14px}.metrics>button,.metrics>div{min-height:116px;padding:14px 17px}.metrics b{font-size:30px}.metrics span{margin-top:5px;font-size:13px}.metrics small{font-size:11px}.metric-icon{width:32px;height:32px;top:15px;right:16px;border-radius:9px}.metric-icon .icon{width:20px;height:20px}.national-context{padding:10px 16px;margin-bottom:16px}
@media(min-width:901px){.intro{grid-template-columns:minmax(0,1fr) minmax(320px,480px)}}
@media(max-width:900px){.intro{grid-template-columns:1fr;gap:16px}.intro h1{font-size:34px}}
@media(max-width:600px){.intro{padding:18px 0;gap:16px}.intro h1{font-size:30px}.intro-copy{font-size:14px}.metrics>button{min-height:128px;padding:13px}.metric-icon{right:12px}.day-bar{padding:12px}.search-box{height:54px}}

/* Freshness is tied to the data collection, never to the current browser clock. */
.data-update{max-width:1456px;width:calc(100% - 80px);margin:12px auto 0;display:flex;align-items:center;justify-content:flex-end;gap:7px;font-size:11px;color:#567095;line-height:1.5}.update-dot{height:6px;width:6px;border-radius:50%;background:#567095;flex:none}@media(max-width:600px){.data-update{width:calc(100% - 36px);font-size:10px;margin-top:10px;justify-content:flex-start}}
