:root { --app-border: #ddd; --app-bg-soft: #f6f6fe; }
body { overflow-x: hidden; }
.fr-skiplink { position:absolute; left:-10000px; top:auto; }
.fr-skiplink:focus { left:1rem; top:1rem; z-index:9999; background:#fff; padding:.75rem; }
.app-invisible-trigger { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; }
.app-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.app-section-heading > *:first-child { flex:1; min-width:16rem; }
.app-stat-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.app-stat { background:var(--background-contrast-blue-france,#ececfe); padding:1.5rem; min-height:7rem; display:flex; flex-direction:column; justify-content:center; }
.app-stat strong { display:block; font-size:2rem; line-height:1.1; }
.app-stat span { margin-top:.4rem; }
.app-card { height:100%; }
.map-shell { position:relative; border:1px solid var(--border-default-grey,#ddd); background:var(--background-alt-grey,#f6f6f6); padding:1rem; overflow:hidden; }
.territory-map { width:100%; height:auto; min-height:28rem; display:block; }
.territory-map path { fill:var(--background-action-low-blue-france,#e3e3fd); stroke:var(--border-action-high-blue-france,#000091); stroke-width:1.25; vector-effect:non-scaling-stroke; transition:fill .15s ease,stroke-width .15s ease; }
.territory-map a:hover path,.territory-map a:focus path,.territory-map a.is-active path { fill:var(--background-action-high-blue-france,#000091); stroke-width:2.5; }
.territory-map text { font-size:12px; pointer-events:none; fill:var(--text-title-grey,#161616); paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; }
.territory-map a:hover text,.territory-map a:focus text,.territory-map a.is-active text { fill:#fff; stroke:#000091; }
.map-tooltip { position:absolute; z-index:4; max-width:18rem; background:#fff; padding:.75rem 1rem; border:1px solid #000091; box-shadow:0 4px 12px rgba(0,0,0,.15); pointer-events:none; white-space:pre-line; }
.app-filter { background:var(--background-alt-grey,#f6f6f6); }
.app-form-narrow { max-width:48rem; }
.app-definition-list > div { display:grid; grid-template-columns:minmax(8rem,12rem) 1fr; gap:1rem; border-top:1px solid var(--app-border); padding:.75rem 0; }
.app-definition-list dt { font-weight:700; }
.app-definition-list dd { margin:0; overflow-wrap:anywhere; }
.app-list-row { border-bottom:1px solid var(--app-border); display:flex; justify-content:space-between; }
.app-override { margin-top:-.75rem; margin-bottom:1.25rem; padding:.5rem; background:var(--app-bg-soft); }
pre { white-space:pre-wrap; word-break:break-word; background:#f6f6f6; padding:.75rem; }
.fr-table { max-width:100%; overflow-x:auto; }
@media(max-width:48em){ .territory-map { min-height:18rem; } .territory-map text { display:none; } .app-definition-list > div { grid-template-columns:1fr; gap:.25rem; } }
@media(prefers-reduced-motion:reduce){ *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important;} }
