/* Atlas / dashboard map CSS — component-scoped styles for ressources.php */

/* Dashboard-only variables added globally (no conflict with sat-global) */
:root{--surface:#fff;--soft:#f7fbfa;--tint:#edf7f5;--teal:#39c1bc;--teal2:#1fa7a2;--shadow:0 14px 34px rgba(22,34,38,.08);--green:#78b66b;--yellow:#eecf75;--orange:#dc8540;--red:#bd4a3f;--purple:#6c4fa2;--grey:#a6b0b4}
/* Override --ink/--muted/--line only inside the map section (not the topbar) */
.atlas-map-section{--bg:#eef5f3;--ink:#172126;--muted:#63757a;--line:#dce9e5}

/* Scoped resets — only inside the atlas map section, not global */
.atlas-map-section button,.atlas-map-section input,.atlas-map-section select{font:inherit}
.atlas-map-section h1,.atlas-map-section h2,.atlas-map-section h3,.atlas-map-section p{margin:0}
.atlas-map-section p{color:#63757a;line-height:1.48}
.atlas-map-section select,.atlas-map-section input{border:1px solid #d7e8e4;border-radius:999px;padding:8px 10px;background:#fff;color:#244b48;font-weight:750;font-size:12px;min-width:0}
.app{padding:18px 22px 26px;display:grid;gap:14px}
.hero{background:var(--surface);border:1px solid #dce9e5;border-radius:28px;box-shadow:var(--shadow);padding:18px 22px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center} .atlas-map-section h1{font-size:30px;letter-spacing:-.04em;line-height:1.05;margin-bottom:6px}.hero p{max-width:1050px;font-size:13px}.topline{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px}.pill{border:1px solid #d5ebe8;background:#f4faf8;color:#25524f;border-radius:999px;padding:7px 10px;font-weight:850;font-size:11px}.kpis{display:grid;grid-template-columns:112px 126px 112px 112px;gap:8px}.kpi{border:1px solid #d8e9e5;background:#f4faf8;border-radius:18px;padding:11px}.kpi strong{display:block;font-size:24px;letter-spacing:-.04em;line-height:1;white-space:nowrap}.kpi span{display:block;font-size:11px;color:#63757a;line-height:1.18;margin-top:4px}
.main-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(360px,1fr);gap:14px;align-items:stretch}.map-card,.side-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);overflow:hidden}.map-card{position:relative;min-height:675px;height:100%;display:flex;flex-direction:column}#map{flex:1 1 auto;min-height:675px;height:100%;width:100%;background:#e9f0ee}.map-filters{position:absolute;top:82px;left:14px;z-index:650;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 32px rgba(22,34,38,.15);padding:11px;width:min(292px,calc(100% - 28px));backdrop-filter:blur(7px);display:grid;gap:6px}.filter-title{font-weight:900;font-size:12px;display:flex;justify-content:space-between;gap:8px;align-items:center}.filter-line{display:grid;grid-template-columns:1fr;gap:4px;align-items:stretch}.filter-label{font-size:10.5px;font-weight:900;color:#285653;line-height:1}.search-line{position:relative}.search-line input{width:100%;padding-left:34px}.search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);z-index:1;color:#557176;font-weight:900}.frow{display:grid;grid-template-columns:1fr 1fr;gap:7px}select,input{border:1px solid #d7e8e4;border-radius:999px;padding:8px 10px;background:#fff;color:#244b48;font-weight:750;font-size:12px;min-width:0}.checks{display:flex;gap:6px;flex-wrap:wrap}.geo-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:6px}.chip{border:1px solid #d6e8e4;border-radius:999px;background:#fff;color:#285653;font-weight:850;padding:7px 8px;cursor:pointer;font-size:12px;line-height:1.08;text-align:center}.chip.active{background:linear-gradient(180deg,var(--teal),var(--teal2));color:white;border-color:transparent}.reset{border:0;background:#eaf4f1;color:#285653;border-radius:999px;padding:7px 9px;font-weight:900;font-size:12px;cursor:pointer}.multi{position:relative;min-width:0}.multi-btn{width:100%;border:1px solid #d7e8e4;border-radius:999px;padding:8px 28px 8px 10px;background:#fff;color:#244b48;font-weight:850;font-size:12px;min-width:0;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}.multi-btn::after{content:"⌄";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#557176;font-weight:900}.multi.open .multi-btn{border-color:#64cfc8;box-shadow:0 0 0 3px rgba(57,193,188,.13)}.multi-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid #d7e8e4;border-radius:16px;box-shadow:0 16px 34px rgba(22,34,38,.18);padding:8px;z-index:900;max-height:260px;overflow:auto}.multi.open .multi-menu{display:grid;gap:4px}.multi-options{display:grid;gap:4px;max-height:190px;overflow:auto;padding-right:2px}.multi-actions{position:sticky;bottom:-8px;background:#fff;border-top:1px solid #e1efec;margin:4px -8px -8px;padding:8px;display:flex;gap:6px;justify-content:flex-end;border-radius:0 0 16px 16px}.multi-action{border:1px solid #d7e8e4;border-radius:999px;background:#fff;color:#285653;font-size:11px;font-weight:900;padding:7px 9px;cursor:pointer}.multi-action.primary{background:linear-gradient(180deg,var(--teal),var(--teal2));color:#fff;border-color:transparent}.multi-option{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;align-items:center;border-radius:10px;padding:5px 6px;font-size:12px;font-weight:750;color:#244b48;cursor:pointer}.multi-option:hover{background:#eef8f6}.multi-option input{width:14px;height:14px;accent-color:var(--teal);padding:0}.multi-empty{font-size:12px;color:var(--muted);padding:7px}.map-note{font-size:10.5px;color:#557176;line-height:1.28;background:#eef8f6;border:1px solid #d5ebe8;border-radius:14px;padding:7px}
.side-card{padding:16px;display:flex;flex-direction:column;gap:14px}.side-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.side-head h2{font-size:21px;letter-spacing:-.03em}.side-head p{font-size:12px;margin-top:4px}.control-block{border:1px solid #e0ece8;background:#f8fbfa;border-radius:20px;padding:12px;display:grid;gap:10px}.control-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#5b6f75}.control-toggle{width:100%;border:1px solid transparent;background:linear-gradient(180deg,var(--teal),var(--teal2));color:#fff;border-radius:999px;padding:10px 12px;cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:950;text-align:center;box-shadow:0 10px 22px rgba(57,193,188,.18)}.control-toggle.off{background:linear-gradient(180deg,#fff,#f5faf8);border-color:#d9e7e2;color:#244b48;box-shadow:none}.control-content{display:grid;gap:10px}.control-block.collapsed .control-content{display:none}.metric-buttons{display:grid;grid-template-columns:1fr;gap:8px}.metric-btn,.soft-btn{border:1px solid #d9e7e2;background:linear-gradient(180deg,#fff,#f5faf8);color:#244b48;border-radius:999px;padding:9px 10px;cursor:pointer;font-weight:900;font-size:12px;line-height:1.2;text-align:center}.metric-btn.active,.soft-btn.active{background:linear-gradient(180deg,var(--teal),var(--teal2));border-color:transparent;color:white;box-shadow:0 10px 22px rgba(57,193,188,.18)}.metric-kpis,.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metric-kpi,.small-stat{border:1px solid #d7e8e4;background:#f5fbf9;border-radius:16px;padding:10px}.metric-kpi strong,.small-stat strong{display:block;font-size:21px;letter-spacing:-.04em;line-height:1}.metric-kpi span,.small-stat span{display:block;color:var(--muted);font-size:10px;line-height:1.18;margin-top:5px}.layer-list{display:flex;flex-wrap:wrap;gap:8px}.layer-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid #dbe8e4;background:#fff;border-radius:999px;padding:9px 12px;font-size:12px;font-weight:800;color:#2d5a57}.layer-toggle input{accent-color:#1fa7a2}.map-help,.load,.warn,.tagline{background:#f3faf8;border:1px solid #d9ebe7;border-radius:18px;padding:11px;font-size:12px;color:#345d5b;line-height:1.4}.warn{background:#fff8e8;border-color:#edd9a8;color:#725420}.load{background:#eff9f7;border-color:#cfeceb;color:#245c58}.map-sublegend{display:flex;flex-wrap:wrap;gap:8px}.mini-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #d9e7e2;background:#f4faf8;color:#2d5a57;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800}.mini-chip .dot{width:10px;height:10px;border-radius:50%}.mini-chip .dot.color{background:#cf5a4d}.mini-chip .dot.bubble{background:#47b8bd;border:2px solid #fff;box-shadow:0 0 0 1px rgba(28,94,98,.45)}
.legend{position:absolute;right:18px;bottom:22px;z-index:650;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:0 14px 34px rgba(22,34,38,.14);border-radius:18px;padding:12px;min-width:230px}.legend h3{font-size:13px;margin-bottom:8px}.legend-row{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;font-size:12px;margin:6px 0}.swatch{width:18px;height:12px;border-radius:4px;border:1px solid rgba(0,0,0,.08)}.basemap-note{position:absolute;left:18px;bottom:22px;z-index:649;background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:999px;padding:8px 11px;font-size:11px;font-weight:800;color:#365b58;box-shadow:0 10px 24px rgba(22,34,38,.10)}.leaflet-popup-content{font-family:Inter,Arial,sans-serif;font-size:12px}.popup-title{font-size:15px;font-weight:900;margin-bottom:4px}.popup-grid{display:grid;grid-template-columns:1fr auto;gap:5px 12px;min-width:220px}.popup-grid strong{text-align:right}.note{font-size:12px;color:var(--muted);line-height:1.45}
.below{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}.card,.social-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:15px}.card h3,.card h2,.social-card h2{font-size:17px;letter-spacing:-.03em;margin-bottom:10px}.section-title{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.section-title h2{font-size:17px;letter-spacing:-.03em}.section-title p{font-size:12px}.bar-list{display:grid;gap:8px}.bar-row{display:grid;grid-template-columns:92px 1fr 64px;gap:8px;align-items:center;font-size:12px}.bar-track,.compare-track{height:10px;background:#eaf1ef;border-radius:999px;overflow:hidden}.bar-fill,.compare-fill{height:100%;background:linear-gradient(90deg,var(--teal2),var(--teal));border-radius:999px}.commune-list{display:grid;gap:8px}.commune-chip{border:1px solid #dbe8e4;background:#fff;border-radius:16px;padding:10px;cursor:pointer;text-align:left}.commune-chip:hover{border-color:#8fd3cc}.commune-chip strong{display:block;font-size:13px}.commune-chip span{font-size:11px;color:var(--muted)}
.social-compare{display:block}.social-card{border-radius:26px;padding:18px}.social-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.social-head h2{font-size:22px;letter-spacing:-.03em}.social-head p{max-width:920px;font-size:12px}.social-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.compare-tile{min-height:282px;display:flex;flex-direction:column;gap:10px;border:1px solid #dce9e5;background:linear-gradient(180deg,#fff,#f7fbfa);border-radius:22px;padding:14px}.compare-tile:before{content:'SAT';align-self:flex-end;margin:-2px 0 -28px 0;background:#fceceb;border:1px solid #f2d3d0;color:#9c4038;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900}.compare-tile:nth-child(5):before{content:'vigilance';background:#fff5e8;border-color:#ecd5aa;color:#8c5b12}.compare-main{display:flex;align-items:baseline;gap:8px;margin:8px 0 10px}.compare-main strong{font-size:34px;line-height:1;letter-spacing:-.04em}.compare-main span{font-size:12px;color:var(--muted);font-weight:800}.compare-caption{font-size:12px;color:var(--muted);line-height:1.35;min-height:36px}.compare-bars{display:grid;gap:8px;margin-top:8px}.compare-row{display:grid;grid-template-columns:76px 1fr 58px;gap:10px;align-items:center;font-size:12px;color:#466065}.compare-row:first-child{background:#fff4f2;border:1px solid #f1d5d1;border-radius:14px;padding:8px 9px}.compare-fill{background:linear-gradient(90deg,#d65b52,#bd4a3f)}.compare-fill.ref{background:#91aaa7}.compare-fill.fr{background:#cfd8d7}.compare-delta{display:inline-flex;align-self:flex-start;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:900;background:#eefafa;color:#1f6764;margin-top:auto}.compare-delta.warn{background:#fff4e8;color:#8a4b19}.compare-delta.bad{background:#fbeeed;color:#9a3b35}.compare-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.legend-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid #dde9e5;background:#f6fbfa;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;color:#466065}.legend-dot{width:10px;height:10px;border-radius:999px;background:#cfd8d7}.legend-dot.sat{background:#cf5147}.legend-dot.ref{background:#91aaa7}.legend-dot.fr{background:#cfd8d7}
.source-card{grid-column:auto;grid-row:auto}.source-card .source-list{grid-template-columns:repeat(2,minmax(0,1fr))}.source-list{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}.source-item{border:1px solid #dce9e5;background:#f7fbfa;border-radius:16px;padding:12px}.source-item strong{display:block;font-size:13px;margin-bottom:4px}.source-item span{font-size:12px;color:var(--muted);line-height:1.45}.source-item a{color:#1f6764;font-weight:900;text-decoration:none}.source-item a:hover{text-decoration:underline}.bubble-marker{background:transparent;border:none!important}.lls-bubble{display:flex;align-items:center;justify-content:center;border-radius:999px;border:0;box-shadow:0 8px 20px rgba(22,34,38,.24),0 0 0 1px rgba(22,34,38,.18);font-weight:950;letter-spacing:-.035em;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.28)}.lls-bubble.small{font-size:0!important;color:transparent;text-shadow:none}.legend-subtitle{font-size:11px;color:#6a7a7f;margin:10px 0 4px;font-weight:800}.bubble-legend{display:grid;gap:7px}.bubble-legend-row{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;font-size:12px}.bubble-swatch{border-radius:999px;border:0;box-shadow:0 2px 7px rgba(22,34,38,.20),0 0 0 1px rgba(22,34,38,.16);justify-self:center}.lls-color-scale{display:grid;gap:6px;margin-top:7px}.lls-color-row{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:center;font-size:12px;color:#4d6468}.lls-color-dot{width:18px;height:12px;border-radius:999px;box-shadow:0 0 0 1px rgba(22,34,38,.12)}

.legend{display:none!important}.side-legend{display:grid;gap:7px;border-top:1px solid #e0ece8;padding-top:9px}.side-legend h3{font-size:12px;letter-spacing:-.02em;color:#263438;margin:0}.side-legend-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:11.5px;color:#435f62}.side-swatch{width:18px;height:12px;border-radius:4px;border:1px solid rgba(0,0,0,.08)}.side-section-title{font-size:11px;font-weight:900;color:#5b6f75;margin-top:2px}.metric-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:start;border-top:1px solid #e0ece8;padding-top:10px}.metric-left{min-width:0}.metric-compare-panel,.metric-bottom-grid,.metric-epci-commune-block{grid-column:1 / -1}.metric-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:start}.metric-side-card,.metric-epci-commune-block{border:1px solid #dce9e5;background:#fff;border-radius:18px;padding:10px;min-width:0}.metric-side-card h3{font-size:12px;letter-spacing:-.02em;margin:0 0 8px}.metric-side-card .section-title{margin-bottom:8px}.metric-side-card .section-title h2{font-size:12px;margin:0}.metric-side-card .section-title p{font-size:10.5px}.metric-side-card .bar-row{grid-template-columns:minmax(72px,.9fr) minmax(0,1fr) 48px;font-size:11px}.metric-side-card .commune-chip{padding:8px;border-radius:14px}.metric-side-card .commune-chip strong{font-size:12px}.metric-side-card .commune-chip span{font-size:10.5px}.metric-epci-commune-block{border:1px solid #dce9e5;background:#fff;border-radius:18px;padding:10px;min-width:0}.metric-epci-commune-block .section-title{margin-bottom:8px}.metric-epci-commune-block .section-title h2{font-size:12px;margin:0}.metric-epci-commune-block .section-title p{font-size:10.5px}.epci-commune-list{display:grid;gap:8px}.epci-commune-card{border:1px solid #dce9e5;background:linear-gradient(180deg,#fff,#f8fbfa);border-radius:16px;padding:10px;display:grid;gap:8px}.epci-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.epci-card-head strong{font-size:12px;line-height:1.15}.epci-card-head span{font-size:12px;font-weight:950;color:#1f6764;white-space:nowrap}.epci-bar-track{height:8px;background:#eaf1ef;border-radius:999px;overflow:hidden}.epci-bar-fill{height:100%;background:linear-gradient(90deg,var(--teal2),var(--teal));border-radius:999px}.epci-communes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.epci-commune-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #e1efec;background:#fff;border-radius:12px;padding:7px 8px;cursor:pointer;text-align:left}.epci-commune-row strong{font-size:11.5px;line-height:1.15}.epci-commune-row span{font-size:11px;color:#61777b;font-weight:900;white-space:nowrap}.metric-detail-grid{display:grid;grid-template-columns:minmax(160px,.92fr) minmax(0,1.08fr);gap:10px;align-items:stretch;border-top:1px solid #e0ece8;padding-top:10px}.metric-filter-panel,.metric-compare-panel{border:1px solid #dce9e5;background:#fff;border-radius:18px;padding:10px;min-width:0}.metric-filter-panel{display:grid;gap:8px;background:linear-gradient(180deg,#fff,#f8fbfa)}.metric-compare-panel{display:grid;gap:8px;background:linear-gradient(180deg,#fff,#fbf7f7)}.filter-chip-grid{display:flex;flex-wrap:wrap;gap:6px}.filter-chip-stack{display:grid;gap:6px}.filter-chip{border:1px solid #d9e7e2;background:#fff;color:#244b48;border-radius:999px;padding:7px 9px;font-size:11px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;gap:6px;justify-content:flex-start}.filter-chip-stack .filter-chip{width:100%;border-radius:14px;padding:8px 9px}.filter-chip.active{background:linear-gradient(180deg,var(--teal),var(--teal2));border-color:transparent;color:#fff;box-shadow:0 8px 18px rgba(57,193,188,.16)}.filter-chip .chip-dot{width:10px;height:10px;border-radius:999px;box-shadow:0 0 0 1px rgba(22,34,38,.10);flex:0 0 auto}.metric-compare-title{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.metric-compare-title strong{font-size:12px;letter-spacing:-.02em}.metric-compare-title span{font-size:10px;font-weight:900;color:#9c4038;background:#fceceb;border:1px solid #f2d3d0;border-radius:999px;padding:4px 7px;white-space:nowrap}.metric-compare-main{display:flex;align-items:baseline;gap:7px}.metric-compare-main strong{font-size:27px;line-height:1;letter-spacing:-.045em}.metric-compare-main span{font-size:11px;color:var(--muted);font-weight:900}.metric-compare-caption{font-size:11.5px;color:#61777b;line-height:1.33}.mini-compare-bars{display:grid;gap:6px}.mini-compare-row{display:grid;grid-template-columns:48px minmax(0,1fr) 54px;gap:8px;align-items:center;font-size:11.5px;color:#466065}.mini-compare-row b{text-align:right;color:#23383b}.mini-compare-track{height:9px;background:#eaf1ef;border-radius:999px;overflow:hidden}.mini-compare-fill{height:100%;background:var(--metric-color,#cf5147);border-radius:999px}.mini-compare-fill.ref,.mini-compare-fill.fr{background:var(--metric-color,#cf5147)}.metric-delta{justify-self:start;border-radius:999px;padding:6px 8px;font-size:11px;font-weight:950;background:#fbeeed;color:#9a3b35}.metric-delta.warn{background:#fff4e8;color:#8a4b19}.metric-delta.good{background:#eefafa;color:#1f6764}.social-compare{display:none!important}.lls-toggle-row{display:grid;grid-template-columns:1fr;gap:8px}.lls-toggle{border:1px solid #d9e7e2;background:linear-gradient(180deg,var(--teal),var(--teal2));color:#fff;border-radius:999px;padding:10px 12px;cursor:pointer;font-weight:950;font-size:12px;text-align:center;box-shadow:0 10px 22px rgba(57,193,188,.18)}.lls-toggle.off{background:linear-gradient(180deg,#fff,#f5faf8);color:#244b48;box-shadow:none}.logic-note{font-size:11px;color:#436469;line-height:1.35;background:#eef8f6;border:1px solid #d6ebe7;border-radius:14px;padding:8px}.legend-bubble-samples{display:grid;gap:6px}.legend-bubble-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:11.5px;color:#435f62}.legend-bubble-dot{border-radius:999px;background:#cf5a4d;box-shadow:0 2px 7px rgba(22,34,38,.20),0 0 0 1px rgba(22,34,38,.16);justify-self:center}.color-dot-row{display:flex;flex-wrap:wrap;gap:6px}.color-dot-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #d9e7e2;background:#fff;border-radius:999px;padding:6px 8px;font-size:10.5px;font-weight:850;color:#436469}.color-dot-chip .dot{width:11px;height:11px;border-radius:999px;box-shadow:0 0 0 1px rgba(22,34,38,.12)}
.leaflet-tile-pane{filter:saturate(.92) contrast(.96) brightness(1.03)}
@media(max-width:1320px){.kpis{grid-template-columns:126px 126px}.main-grid,.below{grid-template-columns:1fr}.source-card{grid-column:auto;grid-row:auto}.map-card{height:620px;min-height:620px}.map-card #map{height:100%;min-height:620px}.social-grid{grid-template-columns:1fr 1fr}.source-list{grid-template-columns:1fr}.source-card .source-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.epci-communes{grid-template-columns:1fr}.app{padding:12px}.hero{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.map-filters{position:relative;top:auto;left:auto;margin:10px;width:auto}.map-card{display:flex;flex-direction:column}.frow,.filter-line,.geo-shortcuts,.metric-kpis,.profile-grid,.metric-buttons,.social-grid,.metric-detail-grid,.metric-workspace,.metric-bottom-grid{grid-template-columns:1fr}.legend,.basemap-note{position:relative;right:auto;left:auto;bottom:auto;margin:10px 14px 0;display:block}.social-head{display:block}.bar-row,.compare-row{grid-template-columns:1fr}.source-list,.source-card .source-list{grid-template-columns:1fr}}


.atlas-hero{max-width:1320px;margin:0 auto;padding:70px 32px 34px;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:42px;align-items:end}.kicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#7a746d;margin-bottom:16px}.atlas-hero h1{font-family:var(--font-title,'Oswald',Arial,sans-serif);font-size:82px;line-height:.9;font-weight:300;letter-spacing:-.04em;margin:0 0 18px}.atlas-hero p{font-size:20px;line-height:1.5;color:#383733;max-width:760px}.atlas-hero-card{border:1px solid rgba(0,0,0,.08);background:linear-gradient(135deg,#fff 0%,#fbfaf7 100%);padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.045)}.atlas-hero-card p{font-size:15px;margin:0;color:#444;line-height:1.55}.atlas-tools{position:sticky;top:70px;z-index:720;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-top:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06)}.atlas-tools-inner{max-width:1320px;margin:0 auto;padding:14px 32px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.layer-tabs{display:flex;gap:10px;flex-wrap:wrap}.layer-tab{border:1px solid #111;background:#fff;color:#111;padding:12px 14px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;cursor:pointer}.layer-tab.active{background:#111;color:#fff}.layer-tab.is-waiting{border-color:#d8d8d8;color:#777}.atlas-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-block;padding:13px 18px;border:1px solid var(--ink);font-size:12px;letter-spacing:.18em;text-transform:uppercase;background:#fff}.btn.fill{background:#111;color:#fff}.atlas-context{max-width:1320px;margin:0 auto;padding:22px 32px 18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}.atlas-context h2{font-family:var(--font-title,'Oswald',Arial,sans-serif);font-weight:300;font-size:42px;line-height:1;margin:0 0 10px;letter-spacing:-.03em}.atlas-context p{font-size:17px;line-height:1.55;color:#444;max-width:860px}.layer-status{border:1px solid rgba(0,0,0,.08);background:#fbfaf7;padding:14px 16px;font-size:13px;color:#555;max-width:390px}.atlas-map-section{width:100%;margin:0;padding:0}.atlas-map-shell{width:100%;padding:0 0 34px;background:#eef5f3}.atlas-map-shell .map-card{border-radius:0;border-left:0;border-right:0;box-shadow:none;min-height:76vh;height:76vh}.atlas-map-shell #map{min-height:76vh;height:100%}.atlas-map-shell .basemap-note{bottom:18px}.atlas-info-grid{max-width:1320px;margin:28px auto 0;padding:0 32px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.55fr);gap:22px;align-items:start}.atlas-info-grid .side-card{border-radius:24px;box-shadow:0 14px 34px rgba(22,34,38,.08)}.atlas-note-card{background:#fff;border:1px solid #dce9e5;border-radius:24px;box-shadow:0 14px 34px rgba(22,34,38,.08);padding:22px}.atlas-note-card h3{font-family:var(--font-title,'Oswald',Arial,sans-serif);font-size:34px;line-height:1;font-weight:300;margin:0 0 12px;letter-spacing:-.03em}.atlas-note-card p{font-size:16px;line-height:1.58;color:#444;margin:0 0 12px}.atlas-note-card .access-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.atlas-note-card .access-tags span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;border:1px solid #ebebeb;padding:8px 10px;color:#555;background:#fff}.footer{max-width:1320px;margin:40px auto 0;border-top:1px solid var(--line);padding:30px 32px 20px;color:var(--muted);font-size:14px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
/* Overrides du dashboard territorial dans la maquette */
.app{padding:0;display:block;background:transparent}.hero,.below{display:none!important}.main-grid{display:block}.map-filters{top:22px}.side-card{padding:18px}.map-card{background:#eef5f3}.leaflet-control-zoom{margin-top:18px!important;margin-left:18px!important}.leaflet-container{font-family:var(--font-body,'Acumin',Arial,Helvetica,sans-serif)}.leaflet-container:focus{outline:none}.control-toggle,.metric-btn.active,.soft-btn.active,.chip.active,.filter-chip.active,.lls-toggle{background:#111!important;color:#fff!important;box-shadow:none!important}.metric-btn,.soft-btn,.chip,.filter-chip,.multi-btn,select,input{font-family:var(--font-body,'Acumin',Arial,Helvetica,sans-serif)}

/* Version 2 : panneau de synthese directement sur la carte */
.map-filters{display:none!important}
.atlas-map-shell{padding-bottom:0}
.atlas-map-shell .map-card{position:relative;min-height:78vh;height:78vh;overflow:hidden}
.map-summary-panel{position:absolute;top:22px;right:22px;z-index:690;width:min(420px,calc(100% - 96px));max-height:calc(100% - 44px);overflow:auto;background:rgba(255,255,255,.94);border:1px solid #dce9e5;border-radius:26px;box-shadow:0 18px 50px rgba(22,34,38,.15);backdrop-filter:blur(9px);padding:18px;display:flex;flex-direction:column;gap:14px}
.map-summary-panel .side-head h2{font-family:var(--font-title,'Oswald',Arial,sans-serif);font-size:28px;line-height:1.05;font-weight:400;letter-spacing:-.04em}
.map-summary-panel .side-head p{font-size:12px;color:#24363a;margin-top:6px;line-height:1.35}
.map-summary-panel .profile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.map-summary-panel .small-stat{border-radius:16px;padding:11px;background:rgba(245,251,249,.88)}
.map-summary-panel .small-stat strong{font-size:20px;color:#061115}
.map-summary-panel .small-stat span{font-size:10px;color:#24363a}
.map-summary-panel .control-block{border-radius:20px;background:rgba(248,251,250,.92);padding:12px;gap:9px}
.map-summary-panel .control-toggle{background:#111!important;color:#fff!important;border-radius:999px;text-align:center;font-size:11px;letter-spacing:.08em;padding:10px 12px}
.map-summary-panel .control-toggle.off{background:#fff!important;color:#111!important;border:1px solid #d9e7e2!important}
.map-summary-panel .control-content{display:grid;gap:8px}
.control-select{width:100%;border:1px solid #d7e8e4;border-radius:999px;padding:10px 12px;background:#fff;color:#244b48;font-weight:850;font-size:12px}
.control-note{font-size:11.5px;line-height:1.35;color:#436469;background:#eef8f6;border:1px solid #d6ebe7;border-radius:14px;padding:8px}
.map-summary-panel .load{font-size:11px;border-radius:14px;padding:9px;background:rgba(239,249,247,.92)}
.atlas-info-grid{max-width:1320px;margin:28px auto 0;padding:0 32px;display:block}
.atlas-note-card{max-width:820px}
.leaflet-control-zoom{margin-top:22px!important;margin-left:22px!important}

@media(max-width:900px){.atlas-hero{grid-template-columns:1fr;padding:46px 22px 28px}.atlas-hero h1{font-size:52px}.atlas-tools{top:76px}.atlas-tools-inner,.atlas-context,.atlas-info-grid{padding-left:22px;padding-right:22px}.atlas-context{grid-template-columns:1fr}.atlas-info-grid{grid-template-columns:1fr}.atlas-map-shell .map-card,.atlas-map-shell #map{height:72vh;min-height:540px}.map-filters{position:relative;top:auto;left:auto;margin:10px;width:auto}.atlas-map-shell .map-card{height:auto;min-height:540px}.atlas-map-shell #map{height:540px;min-height:540px}.layer-tab,.btn{width:100%;text-align:center}.atlas-actions,.layer-tabs{width:100%}}


@media(max-width:900px){.map-summary-panel{position:relative;top:auto;right:auto;width:auto;max-height:none;margin:12px;border-radius:22px}.atlas-map-shell .map-card{height:auto;min-height:540px;display:flex;flex-direction:column}.atlas-map-shell #map{height:540px;min-height:540px}.map-summary-panel .profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


.summary-layer-panel[hidden]{display:none!important}.control-select{width:100%;border:1px solid #d7e8e4;border-radius:999px;padding:9px 12px;background:#fff;color:#244b48;font-weight:800;font-size:12px}.control-note{font-size:11.5px;color:#436469;line-height:1.35;background:#eef8f6;border:1px solid #d6ebe7;border-radius:14px;padding:8px}.energy-bars{display:grid;gap:7px}.energy-row{display:grid;grid-template-columns:34px minmax(0,1fr) 54px;gap:8px;align-items:center;font-size:11.5px;color:#435f62}.energy-letter{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:950;box-shadow:0 3px 8px rgba(22,34,38,.12)}.energy-track{height:9px;background:#eaf1ef;border-radius:999px;overflow:hidden}.energy-fill{height:100%;border-radius:999px}.energy-row b{text-align:right}.energy-marker{border-radius:999px;border:2px solid rgba(255,255,255,.88);box-shadow:0 6px 14px rgba(22,34,38,.18)}

.vulnerability-horizon-chips{display:flex;flex-wrap:wrap;gap:7px}.vulnerability-horizon-chips .chip{border:1px solid #d6e8e4;border-radius:999px;background:#fff;color:#285653;font-weight:900;padding:8px 10px;cursor:pointer;font-size:12px;line-height:1.08}.vulnerability-horizon-chips .chip.active{background:#111!important;color:#fff!important;border-color:#111!important}.vulnerability-bars{display:grid;gap:7px}.vulnerability-row{display:grid;grid-template-columns:78px minmax(0,1fr) 54px;gap:8px;align-items:center;font-size:11.5px;color:#435f62}.vulnerability-track{height:9px;background:#eaf1ef;border-radius:999px;overflow:hidden}.vulnerability-fill{height:100%;border-radius:999px}.vulnerability-swatch{width:18px;height:12px;border-radius:4px;border:1px solid rgba(0,0,0,.08)}.vulnerability-bubble{width:var(--s);height:var(--s);border-radius:999px;background:var(--c);border:2px solid rgba(255,255,255,.86);box-shadow:0 8px 18px rgba(22,34,38,.26),0 0 0 1px rgba(22,34,38,.12)}.risk-pill{display:inline-block;border-radius:999px;padding:4px 8px;background:var(--c);color:#fff;font-weight:900}



.atlas-actions .btn.partner-access{background:#fff;color:#111;border-color:#111}
.atlas-actions .btn.partner-access:hover{background:#111;color:#fff}


/* Navigation carte : zoom molette activable par un bouton dédié */
.leaflet-control-zoom{display:none!important}
.atlas-hero{grid-template-columns:minmax(0,1fr)}
.map-wheel-note{
  position:absolute;
  top:22px;
  left:22px;
  z-index:705;
  width:42px;
  min-height:42px;
  border:1px solid rgba(0,0,0,.22);
  border-radius:4px;
  background:rgba(255,255,255,.94);
  color:#111;
  box-shadow:0 2px 8px rgba(22,34,38,.16);
  cursor:pointer;
  user-select:none;
  display:grid;
  place-items:center;
  padding:5px 4px;
  font-size:10px;
  font-weight:900;
  line-height:1.05;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.map-wheel-note:hover,
.map-wheel-note:focus-visible{
  background:#fff;
  outline:none;
  box-shadow:0 0 0 3px rgba(17,17,17,.12),0 2px 8px rgba(22,34,38,.16);
}
.map-wheel-note.is-active{
  background:#111;
  color:#fff;
  border-color:#111;
}

/* ---- Volume cluster bubbles (energy + vulnerability overlay markers) ---- */
.volume-cluster{border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;border:2px solid rgba(255,255,255,.85);box-shadow:0 8px 18px rgba(54,29,92,.25);line-height:1;cursor:pointer;transition:transform .12s}
.volume-cluster.is-hover{transform:scale(1.08);box-shadow:0 10px 22px rgba(22,34,38,.30)}
.volume-cluster span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;text-shadow:0 1px 2px rgba(0,0,0,.25);font-size:clamp(10px,28%,17px);padding:2px;text-align:center}
.energy-bubble-icon,.vuln-bubble-icon{background:transparent;border:none!important}

/* ---- Energy distribution bars ---- */
.energy-bar-row{display:grid;grid-template-columns:42px minmax(0,1fr) 54px;gap:8px;align-items:center;font-size:11.5px;color:#435f62}
.energy-bar-label{display:flex;align-items:center;gap:5px;font-weight:850;white-space:nowrap}
.energy-bar-label .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.energy-bar-track{height:9px;background:#eaf1ef;border-radius:999px;overflow:hidden}
.energy-bar-fill{height:100%;border-radius:999px;transition:width .3s}
.energy-bar-value{text-align:right;font-weight:900;font-size:11px}
.energy-distribution{margin-top:4px}

/* ---- Vulnerability distribution bars ---- */
.vuln-bar-row{display:grid;grid-template-columns:78px minmax(0,1fr) 54px;gap:8px;align-items:center;font-size:11.5px;color:#435f62}
.vuln-bar-label{display:flex;align-items:center;gap:5px;font-weight:850;white-space:nowrap}
.vuln-bar-label .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.vuln-bar-track{height:9px;background:#eaf1ef;border-radius:999px;overflow:hidden}
.vuln-bar-fill{height:100%;border-radius:999px;transition:width .3s}
.vuln-bar-value{text-align:right;font-weight:900;font-size:11px}

/* ---- Horizon chips (vulnerability panel) ---- */
.horizon-chip{border:1px solid #d6e8e4;border-radius:999px;background:#fff;color:#285653;font-weight:900;padding:8px 10px;cursor:pointer;font-size:12px;line-height:1.08}
.horizon-chip.active{background:#111!important;color:#fff!important;border-color:#111!important}

/* ---- Legend for portrait layer ---- */
.atlas-map-shell .legend{display:block!important;position:absolute;right:18px;bottom:22px;z-index:650;background:rgba(255,255,255,.94);border:1px solid #dce9e5;box-shadow:0 14px 34px rgba(22,34,38,.14);border-radius:18px;padding:12px;min-width:200px}
.legend-title{font-size:12px;font-weight:900;margin-bottom:8px;color:#263438}
.legend-row{display:flex;align-items:center;gap:8px;font-size:11.5px;margin:5px 0;color:#435f62}
.legend-dot{width:14px;height:10px;border-radius:3px;flex:0 0 auto;border:1px solid rgba(0,0,0,.06)}
