:root{
  --bg:#f7f4ec;--surface:#fffdf8;--ink:#1e2b27;--muted:#58635e;
  --line:rgba(30,43,39,.13);--green:#173d34;--terra:#b46e4a;
  --green-soft:#e8efec;--shadow:0 18px 50px rgba(23,61,52,.08)
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Instrument Sans",sans-serif}
a{color:inherit}
[hidden]{display:none!important}
.territory-shell{width:min(1280px,calc(100% - 2rem));margin:0 auto 4rem}
.topbar{min-height:84px;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--green)}
.brand img{width:46px;height:46px;object-fit:contain}.brand span{display:grid}.brand small{color:var(--muted)}
.topbar-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.topbar-actions label{font-size:.78rem;color:var(--muted)} select{min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:.5rem .75rem;color:var(--ink)}
.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;padding:.68rem .95rem;font-weight:650}.ghost{background:var(--surface);border:1px solid var(--line);color:var(--green)}
.state-card,.hero,.card{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.state-card{margin:4rem auto;padding:2rem;max-width:760px;text-align:center}
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(440px,.95fr);gap:2rem;padding:clamp(1.5rem,4vw,3rem);align-items:end}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;color:var(--terra);margin:0 0 .4rem}
h1,h2{font-family:"Cormorant Garamond",serif;color:var(--green);margin:.1rem 0}
h1{font-size:clamp(2.7rem,6vw,5.3rem);line-height:.92}h2{font-size:clamp(1.55rem,3vw,2rem)}
.hero-meta{margin:.75rem 0 0;color:var(--muted);font-size:1.05rem}.method-note,.note,.footer-note,.small,.muted{color:var(--muted)}
.method-note{max-width:700px;line-height:1.6;font-size:.86rem}
.hero-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin:0}
.hero-kpis>div{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:1rem}
.hero-kpis dt{font-size:.76rem;color:var(--muted)}.hero-kpis dd{margin:.35rem 0 0;color:var(--green);font-weight:700;font-size:1.28rem}
.two-columns{display:grid;grid-template-columns:1.05fr .95fr;gap:1.2rem;margin-top:1.2rem}
.card{padding:1.3rem}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem}
.map{height:390px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.note,.footer-note{font-size:.78rem;line-height:1.55}.footer-note{text-align:center;margin:1rem 0 0}
.narrative{display:grid;gap:.85rem}.narrative p{margin:0;line-height:1.65}.narrative strong{color:var(--green)}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1.2rem}
.chart-wrap{height:310px}.chart-wrap.tall{height:340px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}
table{width:100%;border-collapse:collapse;min-width:880px}th,td{text-align:left;padding:.78rem .85rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#f5f2ea}tbody tr:last-child td{border-bottom:0}
.programme-link{font-weight:700;color:var(--green);text-decoration:none}.programme-link:hover{text-decoration:underline}
.status{display:inline-flex;border-radius:999px;padding:.26rem .55rem;font-size:.75rem;font-weight:700;background:var(--green-soft);color:var(--green)}
@media(max-width:960px){.hero,.two-columns,.dashboard-grid{grid-template-columns:1fr}.hero-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.territory-shell{width:min(100% - 1rem,1280px)}.topbar{align-items:flex-start;padding:1rem 0}.brand small{display:none}.topbar-actions{justify-content:flex-end}.hero-kpis{grid-template-columns:1fr 1fr}.map{height:300px}}

.benchmark-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:1.2rem}
.benchmark-strip article{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1rem;box-shadow:var(--shadow);display:grid;gap:.28rem}
.benchmark-strip span,.benchmark-strip small{color:var(--muted);font-size:.76rem;line-height:1.35}
.benchmark-strip strong{font-size:1.25rem;color:var(--green)}
@media(max-width:960px){.benchmark-strip{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.benchmark-strip{grid-template-columns:1fr}}

/* Baromètre: prevent min-content widths from stretching the two-column grid. */
.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-grid>.card,.dashboard-grid .card-head,.dashboard-grid .card-head>div{min-width:0}
.dashboard-grid .card h2{overflow-wrap:anywhere;font-size:clamp(1.55rem,2.6vw,2rem)}
.dashboard-grid .table-wrap{max-width:100%;max-height:350px;overflow:auto;overscroll-behavior:contain}
.dashboard-grid table{min-width:0;width:100%;table-layout:fixed}
.dashboard-grid th,.dashboard-grid td{padding:.72rem .75rem;overflow-wrap:anywhere;word-break:normal}
.dashboard-grid th{position:sticky;top:0;z-index:1}
.dashboard-grid td small{display:block;margin-top:.25rem;font-size:.73rem;line-height:1.45;color:var(--muted)}
.dashboard-grid #typesBody td:nth-child(3)>span{display:block;font-weight:650;color:var(--green);font-variant-numeric:tabular-nums}
.dashboard-grid #typesBody td:nth-child(2){font-variant-numeric:tabular-nums}
.dashboard-grid #typesBody+*{max-width:100%}
.dashboard-grid .card-head .small{line-height:1.5;overflow-wrap:anywhere}
.dashboard-grid .table-wrap:focus-within{outline-offset:3px}
.district-scroll{max-width:100%;max-height:540px;overflow:auto;overscroll-behavior:contain}
.district-scroll thead th{position:sticky;top:0;z-index:1}
@media(max-width:960px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.dashboard-grid th,.dashboard-grid td{padding:.62rem .5rem;font-size:.83rem}.dashboard-grid td small{font-size:.68rem}.dashboard-grid .table-wrap{max-height:300px}}
