
:root{--ink:#142433;--navy:#0d2b45;--blue:#1565a9;--light:#f4f7f9;--line:#dce5eb;--muted:#657887;--white:#fff;--danger:#9c2f2f}
*{box-sizing:border-box}html,body{margin:0;background:var(--light);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif}
button,input,textarea,select{font:inherit}button{cursor:pointer}
.topbar{height:76px;padding:12px 22px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}
.topbar h1{font-size:19px;margin:3px 0 0}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:800;opacity:.72}.top-actions{display:flex;gap:10px;align-items:center}
.badge{background:#ffffff18;border:1px solid #ffffff35;border-radius:99px;padding:7px 10px;font-size:12px}
.shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 76px)}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:6px}
.nav-btn{border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:9px;color:var(--ink);font-weight:650}
.nav-btn:hover,.nav-btn.active{background:#e9f2f8;color:var(--blue)}
.content{padding:24px;max-width:1500px;width:100%;margin:0 auto}.view{display:none}.view.active{display:block}
.hero,.section-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.hero{background:linear-gradient(135deg,#fff,#eaf4fb);padding:22px;border-radius:14px;border:1px solid var(--line)}
h2{font-size:27px;margin:4px 0 7px}h3{margin:0 0 12px}
.primary,.small,.ghost,.filebtn,.dangerbtn{border:0;border-radius:8px;padding:9px 12px;font-weight:700}
.primary{background:var(--blue);color:#fff}.small{background:#eaf1f6;color:var(--ink);font-size:12px}.ghost{background:#ffffff14;color:white;border:1px solid #ffffff40}.filebtn{display:inline-block;background:#eaf1f6}
.dangerbtn{background:#a43b3b;color:#fff}.phase-card,.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}
.phase-card{display:grid;grid-template-columns:160px 1fr;align-items:center}.phase-track{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.phase-step{height:10px;background:#dde6ec;border-radius:99px}.phase-step.on{background:var(--blue)}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.metrics article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.metrics span{font-size:12px;color:var(--muted)}.metrics strong{display:block;font-size:28px;margin-top:5px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel-head{display:flex;justify-content:space-between;align-items:center}.stack{display:grid;gap:8px}.item{padding:10px;border-radius:8px;background:#f7fafc;border:1px solid #e7eef3}.item strong{display:block}.muted{color:var(--muted);font-size:13px;line-height:1.5}.links{display:flex;flex-wrap:wrap;gap:8px}.links a{background:#eaf1f6;padding:9px 11px;border-radius:8px;color:var(--blue);text-decoration:none;font-weight:700}
.cards{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.card h3{font-size:17px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip{font-size:11px;border-radius:99px;padding:5px 8px;background:#eef3f6}.chip.blue{background:#e1f0fa;color:#0b5d96}.chip.red{background:#f7e8e8;color:#7d2929}
.filterbar,.maptools,.tabs,.buttonrow{display:flex;gap:8px;align-items:center;margin-bottom:14px}.filterbar input,.filterbar select{max-width:480px}
input,textarea,select{width:100%;border:1px solid #ccd8e0;border-radius:8px;padding:10px;background:#fff}textarea{min-height:90px;resize:vertical}
.tablewrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;min-width:850px}th,td{padding:10px;text-align:left;border-bottom:1px solid #edf1f4;font-size:13px}th{background:#f6f9fb}
#mapCanvas{height:62vh;min-height:440px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#dde6ec}.map-bw .leaflet-tile-pane{filter:grayscale(1) contrast(1.07)}
.tab.active,.maptools .active{background:var(--navy);color:white}
.prose{line-height:1.6}.prose h4{margin-bottom:6px}.danger{border-color:#ecc}
dialog{border:0;border-radius:14px;padding:0;max-width:560px;width:calc(100% - 30px);box-shadow:0 25px 80px #0004}dialog::backdrop{background:#07162199}dialog form{padding:20px;display:grid;gap:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:76px;z-index:15;display:flex;flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px}.nav-btn{white-space:nowrap}.content{padding:14px}.metrics{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.topbar{height:auto;padding:10px 12px}.topbar h1{font-size:15px}.shell{min-height:calc(100vh - 65px)}.sidebar{top:65px}.metrics,.cards{grid-template-columns:1fr}.hero,.section-head{align-items:flex-start;flex-direction:column}.phase-card{grid-template-columns:1fr;gap:10px}.content{padding:10px}.top-actions .ghost{display:none}}

.map-layout{display:grid;grid-template-columns:220px 1fr;gap:14px}
.map-sidepanel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;height:max-content}
.layer-toggle{display:flex;gap:8px;align-items:center;margin:10px 0;font-size:14px}
.layer-toggle input{width:auto}
.map-layer-actions{display:grid;gap:7px;margin-top:12px}
.maptools.vertical{display:grid;align-items:stretch}
.phase-select{min-width:150px;width:auto}
@media(max-width:900px){.map-layout{grid-template-columns:1fr}.map-sidepanel{order:2}}

.layer-group-title{margin-top:14px;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.wide-dialog{max-width:880px}.dialog-title{display:flex;justify-content:space-between;align-items:start;gap:15px}.context-pill{background:#e9f2f8;color:var(--blue);padding:7px 10px;border-radius:99px;font-size:12px;font-weight:700}.form-grid{display:grid;gap:10px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}label{font-size:12px;font-weight:700;color:var(--muted)}label input,label select,label textarea{margin-top:5px;color:var(--ink);font-weight:400}.operation-details{border:1px solid var(--line);border-radius:10px;padding:10px}.operation-details summary{cursor:pointer;font-weight:800;color:var(--navy)}.picker-block{border:1px solid var(--line);border-radius:10px;padding:10px}.picker-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}#stakePickerMap{height:280px;border-radius:8px;background:#dde6ec}.privacy-note{background:#fff5df;border:1px solid #f2d59b;color:#6d5318;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.4}.popup-edit{margin-top:8px;border:0;background:#eaf1f6;padding:6px 9px;border-radius:6px;font-weight:700;color:var(--blue)}
@media(max-width:700px){.form-grid.two,.form-grid.three{grid-template-columns:1fr}.dialog-title,.picker-head{display:block}.context-pill{display:inline-block;margin-top:8px}}

.dashboard-event-actions{margin:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.reference-note{margin:-2px 0 14px;padding:10px 12px;background:#eef5f9;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:13px;line-height:1.45}
.reference-note code{font-weight:800;color:var(--navy)}
.version-badge{font-weight:800}
.cache-reset-link{color:var(--blue);font-weight:700;text-decoration:none}
.cache-reset-link:hover{text-decoration:underline}

.hazard-source-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.hazard-source-panel{display:none;gap:10px}
.hazard-source-panel.active{display:grid}
.hazard-source-panel label{display:grid;gap:6px;font-weight:700;font-size:13px}
.file-drop{border:1.5px dashed #9bb1c0;border-radius:10px;padding:18px;background:#f7fafc;cursor:pointer}
.file-drop span{font-size:12px;color:var(--muted);font-weight:500}
.file-drop input{margin-top:8px}
.hazard-layer-list{margin:8px 0 10px;display:grid;gap:6px}
.hazard-layer-item{display:grid;grid-template-columns:1fr 28px;gap:5px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px;background:#f8fafc}
.hazard-layer-item label{display:flex;gap:7px;align-items:flex-start;font-size:12px;min-width:0}
.hazard-layer-item label input{width:auto;margin-top:2px}
.hazard-layer-item span{min-width:0}
.hazard-layer-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hazard-layer-item small{display:block;color:var(--muted);margin-top:2px}
.icon-delete{border:0;background:transparent;font-size:20px;color:#8a3a3a;line-height:1}
.mini{font-size:11px;margin:4px 0}
.wide-dialog{max-width:680px}

/* --- V5.3.7 : poste cartographique central --- */
body.map-mode .content{max-width:none;width:100%;padding:12px}
body.map-mode .map-view{height:calc(100vh - 100px)}
.map-page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.map-page-head h2{margin:2px 0 0;font-size:24px}
.map-page-actions{display:flex;gap:8px;align-items:center}

.map-workspace{
 position:relative;
 width:100%;
 height:calc(100vh - 158px);
 min-height:620px;
 overflow:hidden;
 border:1px solid var(--line);
 border-radius:14px;
 background:#e9eef2;
 box-shadow:0 8px 28px rgba(13,43,69,.08)
}
#mapCanvas{
 position:absolute;
 inset:0;
 width:100%;
 height:100%;
 min-height:0;
 border:0;
 border-radius:0;
 background:#dfe7ec
}

.map-topbar{
 position:absolute;
 top:12px;
 left:12px;
 right:12px;
 z-index:900;
 min-height:48px;
 display:flex;
 align-items:center;
 gap:9px;
 padding:7px;
 background:rgba(255,255,255,.96);
 border:1px solid rgba(204,216,224,.96);
 border-radius:11px;
 box-shadow:0 7px 24px rgba(14,42,64,.16);
 backdrop-filter:blur(8px)
}
.map-toolbar-btn{
 border:1px solid #d7e1e7;
 background:#fff;
 color:var(--ink);
 border-radius:8px;
 padding:8px 10px;
 font-size:12px;
 font-weight:750;
 white-space:nowrap
}
.map-toolbar-btn:hover{background:#f0f5f8}
.map-toolbar-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}
.map-toolbar-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--muted)}
.basemap-control{display:flex;align-items:center;gap:8px;min-width:0}
.basemap-buttons{display:flex;gap:5px;overflow:auto}
.basemap-opacity{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:235px}
.basemap-opacity input{width:120px;padding:0;border:0}
.basemap-opacity output{font-size:11px;font-weight:750;min-width:40px;text-align:right}
.map-fullscreen-inline{font-size:17px;padding:6px 10px}

.map-panel{
 position:absolute;
 z-index:850;
 top:72px;
 left:12px;
 bottom:42px;
 width:330px;
 max-width:calc(100% - 24px);
 display:flex;
 flex-direction:column;
 background:rgba(255,255,255,.97);
 border:1px solid rgba(204,216,224,.98);
 border-radius:12px;
 box-shadow:0 9px 30px rgba(14,42,64,.19);
 overflow:auto;
 transition:transform .2s ease,opacity .2s ease
}
.map-panel.collapsed{transform:translateX(calc(-100% - 24px));opacity:0;pointer-events:none}
.map-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}
.map-panel-head strong{display:block;margin-top:2px}
.map-panel-close{border:0;background:#eef3f6;width:30px;height:30px;border-radius:8px;font-size:20px;line-height:1;color:var(--ink)}

.map-layer-section{border-bottom:1px solid var(--line)}
.map-layer-section summary{
 list-style:none;
 display:grid;
 grid-template-columns:32px 1fr;
 gap:9px;
 align-items:center;
 padding:12px 14px;
 cursor:pointer;
 user-select:none
}
.map-layer-section summary::-webkit-details-marker{display:none}
.map-layer-section summary:hover{background:#f7fafc}
.map-layer-section summary strong{display:block;font-size:14px}
.map-layer-section summary small{display:block;margin-top:2px;color:var(--muted);font-size:10px;line-height:1.25}
.section-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;font-weight:900}
.hazard-icon{background:#fff0e9;color:#a9481d}
.stake-icon{background:#eaf3f8;color:#155b86}
.report-icon{background:#fff5d9;color:#805b00}
.map-layer-section-body{padding:0 12px 13px}
.layer-master,.map-layer-row{
 display:flex;
 gap:9px;
 align-items:center;
 min-height:37px;
 padding:6px 7px;
 border-radius:7px;
 font-size:12px;
 cursor:pointer
}
.layer-master:hover,.map-layer-row:hover{background:#f3f7f9}
.layer-master input,.map-layer-row input{width:auto;margin:0}
.map-layer-row span:last-child{flex:1}
.stake-symbol{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#f0f4f7;font-size:15px}
.map-add-btn{width:100%;margin-top:8px;border:1px dashed #aec0cb;background:#f7fafc;color:var(--blue);border-radius:8px;padding:9px;font-weight:750;font-size:12px}
.map-add-btn:hover{background:#eaf3f8}

.map-legend{
 position:absolute;
 z-index:700;
 left:50%;
 bottom:10px;
 transform:translateX(-50%);
 display:flex;
 gap:14px;
 padding:6px 10px;
 background:rgba(255,255,255,.93);
 border:1px solid rgba(204,216,224,.9);
 border-radius:99px;
 box-shadow:0 4px 15px rgba(13,43,69,.12);
 font-size:10px;
 font-weight:700
}
.map-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.legend-swatch.hazard{display:inline-block;width:15px;height:9px;background:rgba(200,75,30,.25);border:2px solid #a9481d;border-radius:2px}
.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.legend-dot.stake{background:#155b86}
.legend-dot.report{background:#cc8b00}

.stake-marker-wrap{background:transparent!important;border:0!important}
.stake-map-marker{
 width:34px;height:34px;border-radius:11px 11px 11px 3px;
 transform:rotate(-45deg);
 display:grid;place-items:center;
 background:#fff;
 border:2px solid #195e87;
 box-shadow:0 3px 10px rgba(0,0,0,.25)
}
.stake-map-marker span{transform:rotate(45deg);font-size:16px;line-height:1}
.stake-map-marker.humain{border-color:#714f95}
.stake-map-marker.erp{border-color:#155b86}
.stake-map-marker.entreprise_commerce{border-color:#56616c}
.stake-map-marker.agriculture{border-color:#47754c}
.stake-map-marker.patrimoine{border-color:#8b623d}
.stake-map-marker.reseau_infrastructure{border-color:#9b6c1a}
.stake-map-marker.patrimoine_naturel{border-color:#3f7650}

.map-workspace:fullscreen{width:100vw;height:100vh;min-height:0;border:0;border-radius:0}
.map-workspace:fullscreen .map-topbar{top:14px;left:14px;right:14px}
.map-workspace:fullscreen .map-panel{top:74px;left:14px;bottom:48px}
.map-workspace.pseudo-fullscreen{position:fixed;inset:0;width:100vw;height:100vh;z-index:9999;border:0;border-radius:0}

.leaflet-control-zoom{margin-top:76px!important}
.leaflet-control-attribution{font-size:9px!important}

@media(max-width:1050px){
 .basemap-opacity{min-width:180px}
 .basemap-opacity input{width:80px}
 .map-toolbar-label{display:none}
}
@media(max-width:800px){
 body.map-mode .content{padding:6px}
 .map-page-head{margin:4px 4px 8px}
 .map-page-head .eyebrow{display:none}
 .map-page-head h2{font-size:19px}
 .map-workspace{height:calc(100vh - 136px);min-height:520px}
 .map-topbar{left:7px;right:7px;top:7px;gap:5px;overflow-x:auto}
 .map-toolbar-btn{padding:7px 8px}
 .basemap-opacity{min-width:155px}
 .basemap-opacity input{width:75px}
 .map-panel{top:65px;left:7px;bottom:36px;width:min(320px,calc(100% - 14px))}
 .map-legend{display:none}
 .map-fullscreen-inline{display:none}
 .leaflet-control-zoom{margin-top:66px!important}
}

/* --- V5.3.8 : couleurs progressives des phases PICS --- */
#phaseLabel{display:inline-block;padding:2px 0;font-weight:800}
.phase-step{height:10px;background:#d9e2e8;border-radius:99px;transition:background .2s ease, box-shadow .2s ease}
.phase-step.on{box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.phase-ve{color:#2f8f46}
.phase-al{color:#79a800}
.phase-ac{color:#c79a00}
.phase-ge{color:#d77700}
.phase-rn{color:#d14f00}
.phase-re{color:#c0392b}

.phase-step.on.phase-ve{background:#46a65c}
.phase-step.on.phase-al{background:#8ebd22}
.phase-step.on.phase-ac{background:#d8b11a}
.phase-step.on.phase-ge{background:#e08b1e}
.phase-step.on.phase-rn{background:#e0651a}
.phase-step.on.phase-re{background:#d44636}

/* --- V5.3.9 : fonds cartographiques superposables --- */
.map-topbar{
 align-items:flex-start;
 flex-wrap:wrap;
}
.basemap-stack-control{
 display:grid;
 gap:4px;
 flex:1;
 min-width:520px;
}
.basemap-stack-row{
 display:grid;
 grid-template-columns:72px minmax(120px,170px) minmax(90px,150px) 48px;
 gap:7px;
 align-items:center;
}
.basemap-toggle{
 display:flex;
 align-items:center;
 gap:5px;
 font-size:11px;
 font-weight:800;
 white-space:nowrap;
}
.basemap-toggle input{width:auto;margin:0}
.basemap-stack-row select{
 width:100%;
 min-width:0;
 border:1px solid #d7e1e7;
 border-radius:7px;
 padding:6px 8px;
 background:#fff;
 font-size:11px;
 font-weight:700;
}
.basemap-stack-row input[type="range"]{
 width:100%;
 padding:0;
 border:0;
}
.basemap-stack-row output{
 font-size:10px;
 font-weight:800;
 text-align:right;
 color:var(--muted)
}
.basemap-preset-btn{
 align-self:center;
 background:#eef4f7;
}
.map-bw-layer{
 filter:grayscale(1) contrast(1.06);
}
@media(max-width:980px){
 .basemap-stack-control{min-width:420px}
 .basemap-stack-row{grid-template-columns:64px minmax(110px,150px) minmax(70px,120px) 42px}
}
@media(max-width:760px){
 .basemap-stack-control{min-width:100%;order:3}
 .basemap-stack-row{grid-template-columns:60px minmax(95px,1fr) minmax(65px,100px) 40px}
 .basemap-preset-btn{display:none}
}

/* --- V5.3.10 : panneau compact + correction ordre/opacité des fonds --- */

/* panneau de couches plus fin */
.map-panel{
 width:268px;
 top:68px;
 bottom:38px;
}
.map-panel-head{
 padding:9px 10px;
}
.map-panel-head .eyebrow{font-size:9px}
.map-panel-head strong{font-size:13px}
.map-panel-close{
 width:26px;
 height:26px;
 border-radius:7px;
 font-size:17px;
}
.map-layer-section summary{
 grid-template-columns:27px 1fr;
 gap:7px;
 padding:9px 10px;
}
.map-layer-section summary strong{font-size:12px}
.map-layer-section summary small{
 font-size:9px;
 line-height:1.15;
}
.section-icon{
 width:25px;
 height:25px;
 border-radius:7px;
 font-size:12px;
}
.map-layer-section-body{
 padding:0 8px 9px;
}
.layer-master,.map-layer-row{
 min-height:31px;
 padding:4px 5px;
 gap:7px;
 font-size:11px;
}
.stake-symbol{
 width:22px;
 height:22px;
 border-radius:6px;
 font-size:13px;
}
.map-add-btn{
 margin-top:6px;
 padding:7px 8px;
 font-size:11px;
}
.hazard-layer-item{
 padding:4px 5px;
 gap:4px;
}
.hazard-layer-item label{font-size:10px}
.hazard-layer-item small{font-size:9px}

/* barre des fonds plus lisible et moins épaisse */
.map-topbar{
 min-height:44px;
 padding:5px 6px;
 gap:7px;
}
.basemap-stack-control{
 min-width:540px;
 gap:3px;
}
.basemap-stack-row{
 display:grid;
 grid-template-columns:105px 145px minmax(190px,1fr);
 gap:6px;
 align-items:center;
 min-height:30px;
}
.basemap-toggle{
 font-size:10px;
 font-weight:800;
}
.basemap-stack-row select{
 padding:5px 7px;
 font-size:10px;
 border-radius:6px;
}
.opacity-inline{
 display:grid;
 grid-template-columns:44px 1fr 38px;
 gap:5px;
 align-items:center;
 min-width:0;
}
.opacity-inline>span{
 font-size:9px;
 text-transform:uppercase;
 letter-spacing:.05em;
 color:var(--muted);
 font-weight:800;
}
.opacity-inline input[type="range"]{
 width:100%;
 padding:0;
 border:0;
}
.opacity-inline output{
 font-size:9px;
 font-weight:800;
 text-align:right;
 color:var(--muted)
}
.basemap-preset-btn{
 align-self:center;
 font-size:10px;
 padding:7px 8px;
}
.map-fullscreen-inline{
 align-self:center;
}

/* ordre de rendu explicitement verrouillé */
.leaflet-pane.leaflet-picsBasePane-pane{z-index:180!important}
.leaflet-pane.leaflet-picsOverlayBasePane-pane{z-index:190!important}

/* carte légèrement agrandie grâce au panneau compact */
.map-panel.collapsed{
 transform:translateX(calc(-100% - 18px));
}

@media(max-width:1050px){
 .map-panel{width:250px}
 .basemap-stack-control{min-width:470px}
 .basemap-stack-row{grid-template-columns:92px 130px minmax(160px,1fr)}
}
@media(max-width:800px){
 .map-panel{
   width:min(270px,calc(100% - 14px));
   top:61px;
 }
 .basemap-stack-control{min-width:100%}
 .basemap-stack-row{
   grid-template-columns:88px minmax(105px,1fr);
   gap:4px 6px;
 }
 .opacity-inline{
   grid-column:1 / -1;
   grid-template-columns:44px 1fr 38px;
   padding-left:2px;
 }
}

/* --- V5.3.11 : gestion des fonds repliable --- */
.basemap-collapsible{position:relative;display:flex;align-items:center}
.basemap-main-toggle{
 display:flex;
 align-items:center;
 gap:7px;
 min-width:120px;
}
.basemap-summary{
 max-width:210px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 font-size:9px;
 font-weight:700;
 color:var(--muted);
}
.basemap-main-toggle[aria-expanded="true"]{
 background:var(--navy);
 color:#fff;
 border-color:var(--navy);
}
.basemap-main-toggle[aria-expanded="true"] .basemap-summary{color:#dceaf3}

.basemap-popover{
 position:absolute;
 top:calc(100% + 8px);
 left:0;
 z-index:980;
 width:460px;
 max-width:calc(100vw - 40px);
 background:#fff;
 border:1px solid var(--line);
 border-radius:11px;
 box-shadow:0 10px 30px rgba(13,43,69,.20);
 overflow:hidden;
 transition:opacity .15s ease,transform .15s ease;
}
.basemap-popover.collapsed{
 opacity:0;
 transform:translateY(-4px);
 pointer-events:none;
 visibility:hidden;
}
.basemap-popover-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 padding:10px 11px;
 border-bottom:1px solid var(--line);
}
.basemap-popover-head strong{font-size:12px}
.basemap-popover .basemap-stack-control{
 display:grid;
 min-width:0;
 padding:10px;
 gap:8px;
}
.basemap-popover .basemap-stack-row{
 display:grid;
 grid-template-columns:110px 135px 1fr;
 gap:7px;
 align-items:center;
}
.basemap-popover-actions{
 display:flex;
 justify-content:flex-end;
 gap:7px;
 padding:8px 10px 10px;
 border-top:1px solid var(--line);
 background:#fafcfd;
}
.basemap-popover .opacity-inline{
 display:grid;
 grid-template-columns:40px 1fr 36px;
 gap:5px;
}
@media(max-width:700px){
 .basemap-summary{display:none}
 .basemap-popover{
   position:fixed;
   left:8px;
   right:8px;
   top:88px;
   width:auto;
   max-width:none;
 }
 .basemap-popover .basemap-stack-row{
   grid-template-columns:1fr;
   gap:5px;
 }
 .basemap-popover .opacity-inline{
   grid-template-columns:44px 1fr 36px;
 }
}

/* --- V5.3.13 : relief IGN + recherche d’adresse --- */
.terrain-overlay-control{
 border-top:1px solid var(--line);
 padding:10px;
 background:#fbfcfd;
}
.terrain-overlay-title{
 display:flex;
 gap:8px;
 align-items:center;
 margin-bottom:8px;
}
.terrain-overlay-title strong{display:block;font-size:11px}
.terrain-overlay-title small{display:block;font-size:9px;color:var(--muted);margin-top:2px}
.terrain-icon{
 display:grid;
 place-items:center;
 width:27px;
 height:27px;
 border-radius:7px;
 background:#eef1f3;
 color:#5b6470;
 font-size:15px;
}
.terrain-overlay-row{
 display:grid;
 grid-template-columns:105px 1fr;
 gap:8px;
 align-items:center;
}
.terrain-overlay-row .opacity-inline{
 grid-template-columns:42px 1fr 38px;
}
.leaflet-pane.leaflet-picsHillshadePane-pane{
 z-index:195!important;
 mix-blend-mode:multiply;
}
@media(max-width:700px){
 .terrain-overlay-row{grid-template-columns:1fr}
}


/* --- V5.3.13 : recherche d'adresse dans la barre cartographique --- */
.sr-only{
 position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
 overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important
}
.address-search-collapsible{position:relative;display:flex;align-items:center}
.address-search-toggle{display:flex;align-items:center;gap:6px}
.address-search-toggle[aria-expanded="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.address-search-popover{
 position:absolute;top:calc(100% + 8px);left:0;z-index:985;width:370px;max-width:calc(100vw - 40px);
 background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 10px 30px rgba(13,43,69,.20);
 overflow:hidden;transition:opacity .15s ease,transform .15s ease
}
.address-search-popover.collapsed{opacity:0;transform:translateY(-4px);pointer-events:none;visibility:hidden}
.address-search-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border-bottom:1px solid var(--line)}
.address-search-head strong{font-size:12px}
.address-search-body{padding:10px}
.address-search-field{display:block}
.address-search-field input{
 width:100%;padding:9px 10px;border:1px solid #cfdbe3;border-radius:8px;background:#fff;font-size:12px
}
.address-search-field input:focus{outline:2px solid rgba(31,91,130,.20);border-color:#7599b1}
.address-search-status{font-size:9px;margin:7px 2px 5px}
.address-search-results{display:grid;gap:3px;max-height:265px;overflow:auto}
.address-result-item{
 display:block;width:100%;text-align:left;border:0;border-radius:7px;background:#fff;padding:8px 9px;color:var(--ink);cursor:pointer
}
.address-result-item:hover,.address-result-item:focus{background:#eef4f7;outline:none}
.address-result-item strong{display:block;font-size:11px;line-height:1.35}
.address-result-item small{display:block;color:var(--muted);font-size:9px;margin-top:2px}
.address-search-actions{display:flex;justify-content:flex-end;padding:8px 10px 10px;border-top:1px solid var(--line);background:#fafcfd}
@media(max-width:700px){
 .address-search-popover{position:fixed;left:8px;right:8px;top:88px;width:auto;max-width:none}
 .address-search-toggle span{display:none}
}


/* --- VizuRisk v0.1.3 : navigation illustrée, logo EPCI, ordre de légende --- */
.directory-filterbar{grid-template-columns:minmax(260px,1fr) auto auto}
.file-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.directory-help{padding:10px 14px;margin-bottom:10px}
.directory-help p{margin:0}
.event-dates{font-size:9px}
.layer-counter{font-size:9px;margin:4px 2px 8px}
.drawing-icon{background:#eef4f7;color:#244f69}
.legend-swatch.drawing{background:transparent;border:2px dashed #536b7a}
.drawing-tool-panel{
 position:absolute;right:12px;top:62px;z-index:970;width:315px;max-width:calc(100% - 24px);background:#fff;border:1px solid var(--line);
 border-radius:12px;box-shadow:0 12px 36px rgba(13,43,69,.22);overflow:hidden;transition:opacity .15s ease,transform .15s ease
}
.drawing-tool-panel.collapsed{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-5px)}
.drawing-tool-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}
.drawing-tool-head strong{font-size:12px}.drawing-tool-body{padding:11px;display:grid;gap:9px}
.drawing-tool-body label{display:grid;gap:4px;font-size:10px;font-weight:700}.drawing-tool-body input,.drawing-tool-body select{width:100%}
.drawing-instructions{margin:0;min-height:30px}.drawing-active #mapCanvas{cursor:crosshair}
.report-dialog{width:min(760px,calc(100vw - 24px))}
#reportPickerMap{height:300px;border-radius:10px;border:1px solid var(--line);overflow:hidden}
.report-address-results{display:grid;gap:3px;max-height:150px;overflow:auto;margin-top:-6px}
.report-draw-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
#directoryTable td:last-child{white-space:nowrap}
@media(max-width:760px){
 .directory-filterbar{grid-template-columns:1fr}.drawing-tool-panel{position:fixed;top:90px;right:8px;left:8px;width:auto;max-width:none}.report-dialog{width:calc(100vw - 12px)}#reportPickerMap{height:260px}
}


/* --- VizuRisk v0.1.3 : identité visuelle et navigation --- */
.topbar-brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.epci-logo{
  display:block;
  max-width:150px;
  max-height:48px;
  width:auto;
  height:auto;
  object-fit:contain;
  background:#fff;
  border-radius:8px;
  padding:5px 7px;
  box-shadow:0 1px 2px rgba(0,0,0,.12);
}
.epci-logo[hidden]{display:none!important}

.nav-btn{
  display:flex;
  align-items:center;
  gap:10px;
}
.nav-icon{
  flex:0 0 20px;
  width:20px;
  text-align:center;
  font-size:15px;
  line-height:1;
  color:var(--blue);
  opacity:.92;
}
.nav-btn.active .nav-icon{opacity:1}

.logo-settings{display:grid;gap:12px}
.logo-preview-box{
  min-height:84px;
  max-width:340px;
  border:1px dashed var(--line);
  border-radius:12px;
  background:#f8fbfd;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px;
}
.logo-preview-box img{
  display:block;
  max-width:280px;
  max-height:80px;
  object-fit:contain;
}
.logo-preview-box img[hidden]{display:none!important}
.small-note{font-size:12px;margin:0}

@media(max-width:600px){
  .topbar-brand{gap:8px}
  .epci-logo{max-width:92px;max-height:38px;padding:4px}
  .nav-icon{width:17px;flex-basis:17px}
}


/* --- VizuRisk v0.1.4 : export/impression carte + filtres annuaire --- */
.map-export-collapsible{position:relative}
.map-export-popover{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  width:min(390px,calc(100vw - 32px));
  z-index:980;
  background:rgba(255,255,255,.99);
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 12px 34px rgba(14,42,64,.20);
  padding:12px;
}
.map-export-popover.collapsed{display:none}
.map-export-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.map-export-body{display:grid;gap:9px}
.map-export-body textarea{min-height:58px}
.map-export-actions{display:flex;justify-content:flex-end;margin-top:10px}

.map-print-header{display:none}

.directory-tools{
  display:grid;
  gap:9px;
  padding:12px;
  margin-bottom:14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
}
.directory-search-line{
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  gap:10px;
  align-items:center;
}
.directory-count{
  white-space:nowrap;
  padding:6px 9px;
  border-radius:99px;
  background:#eef4f7;
  color:var(--muted);
  font-size:12px;
  font-weight:750;
}
.directory-filterbar{
  display:grid;
  grid-template-columns:repeat(5,minmax(145px,1fr)) auto;
  gap:8px;
  margin:0;
}
.directory-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.directory-filterbar select{max-width:none}

@media(max-width:1100px){
  .directory-filterbar{grid-template-columns:repeat(3,minmax(150px,1fr))}
}
@media(max-width:700px){
  .directory-search-line{grid-template-columns:1fr}
  .directory-filterbar{grid-template-columns:1fr}
  .directory-actions{justify-content:stretch}
  .directory-actions .small,.directory-actions .file-button{flex:1;text-align:center}
}

@media print{
  @page{size:A4 landscape;margin:8mm}
  body.print-map-only{
    background:#fff!important;
    color:#111!important;
    overflow:visible!important;
  }
  body.print-map-only .topbar,
  body.print-map-only .sidebar,
  body.print-map-only .map-page-head,
  body.print-map-only .map-topbar,
  body.print-map-only .map-panel,
  body.print-map-only .drawing-tool-panel,
  body.print-map-only .leaflet-control-zoom{
    display:none!important;
  }
  body.print-map-only .shell{
    display:block!important;
    min-height:0!important;
  }
  body.print-map-only .content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }
  body.print-map-only .view{display:none!important}
  body.print-map-only #map{
    display:block!important;
    height:auto!important;
  }
  body.print-map-only .map-print-header{
    display:grid!important;
    grid-template-columns:1fr auto;
    gap:8px 18px;
    align-items:start;
    margin:0 0 6mm;
    padding:0 1mm 3mm;
    border-bottom:1px solid #b9c4cb;
  }
  body.print-map-only .map-print-brand{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
  }
  body.print-map-only #mapPrintLogo{
    display:block;
    max-height:18mm;
    max-width:45mm;
    object-fit:contain;
  }
  body.print-map-only #mapPrintLogo[hidden]{display:none!important}
  body.print-map-only .map-print-product{
    font-size:9pt;
    font-weight:800;
    letter-spacing:.08em;
    color:#405563;
  }
  body.print-map-only .map-print-header h1{
    margin:1mm 0;
    font-size:17pt;
  }
  body.print-map-only .map-print-context,
  body.print-map-only .map-print-meta,
  body.print-map-only .map-print-note{
    font-size:9pt;
    line-height:1.35;
  }
  body.print-map-only .map-print-meta{text-align:right}
  body.print-map-only .map-print-note{
    grid-column:1 / -1;
    padding-top:2mm;
    color:#394b56;
  }
  body.print-map-only .map-workspace{
    display:block!important;
    position:relative!important;
    width:100%!important;
    height:163mm!important;
    min-height:0!important;
    overflow:hidden!important;
    border:1px solid #9eabb3!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
  }
  body.print-map-only #mapCanvas{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    border:0!important;
    border-radius:0!important;
  }
  body.print-map-only .map-legend{
    display:flex!important;
    z-index:1200!important;
    background:rgba(255,255,255,.95)!important;
    border:1px solid #adb9c0!important;
    box-shadow:none!important;
  }
  body.print-map-only .leaflet-control-attribution{
    display:block!important;
    font-size:7pt!important;
  }
}


/* --- VizuRisk v0.1.5 : carte événement simplifiée --- */
#eventsList.cards{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr));
  align-items:start;
}

.event-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  min-height:0;
  padding:0;
  overflow:hidden;
  border-radius:16px;
  border:1px solid var(--line);
  box-shadow:0 2px 9px rgba(21,52,72,.04);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.event-card:hover{
  border-color:#c7d6df;
  box-shadow:0 7px 20px rgba(21,52,72,.07);
}

.event-card.is-active{
  border-color:#aad2e8;
  box-shadow:0 7px 20px rgba(24,112,165,.08);
}

.event-card.is-active::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:#2787bd;
}

.event-card.is-cancelled{
  opacity:.78;
}

.event-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:20px 20px 12px;
}

.event-card-title{
  min-width:0;
}

.event-card-title .eyebrow{
  margin-bottom:5px;
}

.event-card-title h3{
  margin:0;
  font-size:21px;
  line-height:1.2;
  letter-spacing:-.01em;
}

.event-card-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
  flex:0 0 auto;
}

.event-card-badges .chip{
  margin:0;
  font-size:11px;
  padding:5px 9px;
}

.event-active-chip{
  background:#edf3f6;
  color:#263d4b;
}

.event-card-body{
  padding:0 20px 17px;
}

.event-description{
  margin:4px 0 15px;
  min-height:1.35em;
  font-size:15px;
  line-height:1.5;
  color:#526b79;
}

.event-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px 16px;
  color:#758b98;
  font-size:11px;
  line-height:1.4;
}

.event-card-meta span{
  position:relative;
}

.event-card-meta span+span::before{
  content:"•";
  position:absolute;
  left:-10px;
  color:#aebbc3;
}

.event-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:auto;
  padding:13px 20px 15px;
  border-top:1px solid #edf1f3;
  background:#fbfcfd;
}

.event-phase-control{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  margin:0;
  color:#667d8a;
  font-size:11px;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.event-phase-control select{
  min-width:135px;
  max-width:180px;
  height:36px;
  padding:6px 30px 6px 10px;
  border-radius:9px;
  background-color:#fff;
  font-size:13px;
  font-weight:650;
  text-transform:none;
  letter-spacing:0;
}

.event-card-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}

.event-card-actions .small{
  min-height:34px;
  padding:7px 10px;
  border-radius:9px;
  white-space:nowrap;
}

.event-primary-action{
  background:#e5f1f8;
  border-color:#c9e2ef;
  color:#0a5c8d;
}

.event-edit-action{
  background:#fff;
}

.event-cancel-action{
  background:transparent!important;
  border-color:transparent!important;
  color:#8c5960!important;
}

.event-cancel-action:hover{
  background:#fbefef!important;
  border-color:#f1d7d9!important;
  color:#873d47!important;
}

.event-cancel-action.is-reactivate{
  color:#376d56!important;
}

.event-cancel-action.is-reactivate:hover{
  background:#edf7f1!important;
  border-color:#d3e9dc!important;
}

@media(max-width:620px){
  .event-card-head{
    flex-direction:column;
    gap:10px;
    padding:17px 16px 10px;
  }
  .event-card-badges{
    justify-content:flex-start;
  }
  .event-card-body{
    padding:0 16px 14px;
  }
  .event-card-footer{
    align-items:stretch;
    flex-direction:column;
    padding:12px 16px 14px;
  }
  .event-phase-control{
    justify-content:space-between;
  }
  .event-phase-control select{
    flex:1;
    max-width:none;
  }
  .event-card-actions{
    justify-content:flex-end;
  }
}


/* --- VizuRisk v0.1.6 : moteur d’impression fiable --- */
.print-sheet{
  position:fixed;
  left:-20000px;
  top:0;
  width:1120px;
  background:#fff;
  color:#172733;
  box-sizing:border-box;
  padding:28px 32px 22px;
  z-index:-1;
}
.map-print-sheet{height:780px}
.retex-print-sheet{
  min-height:760px;
  height:auto;
}

.print-sheet-header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px 20px;
  align-items:start;
  padding-bottom:14px;
  margin-bottom:16px;
  border-bottom:1px solid #c8d3da;
}
.print-sheet-brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.print-sheet-logo{
  display:block;
  max-width:170px;
  max-height:58px;
  object-fit:contain;
}
.print-sheet-logo[hidden]{display:none!important}
.print-sheet-product{
  font-size:11px;
  line-height:1;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#516977;
}
.print-sheet-header h1{
  margin:4px 0 2px;
  font-size:25px;
  line-height:1.12;
}
.print-sheet-context{
  color:#5a7280;
  font-size:12px;
}
.print-sheet-meta{
  display:grid;
  gap:3px;
  text-align:right;
  font-size:11px;
  color:#566d7a;
}
.print-sheet-note{
  grid-column:1 / -1;
  padding:8px 10px;
  background:#f3f6f8;
  border-left:3px solid #8ca9b9;
  font-size:11px;
  color:#3d5461;
}
.print-sheet-footer{
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid #d6dee3;
  color:#71828c;
  font-size:9px;
  text-align:right;
}

.print-map-frame{
  position:relative;
  width:100%;
  height:610px;
  overflow:hidden;
  border:1px solid #9eabb3;
  background:#eef2f4;
}
#mapPrintCanvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.print-map-legend{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:10000;
  width:245px;
  max-height:255px;
  overflow:hidden;
  padding:9px 10px;
  background:rgba(255,255,255,.95);
  border:1px solid #aebbc3;
  border-radius:8px;
  box-shadow:0 2px 6px rgba(0,0,0,.08);
  font-size:10px;
}
.print-map-legend h3{
  margin:0 0 6px;
  font-size:11px;
}
.print-map-legend ul{
  list-style:none;
  margin:0;
  padding:0;
}
.print-map-legend li{
  display:flex;
  align-items:center;
  gap:6px;
  margin:3px 0;
}
.print-map-legend .legend-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#5e7888;
  flex:0 0 9px;
}

.retex-print-content{
  font-size:11px;
  line-height:1.42;
}
.retex-print-content h2{
  margin:0 0 8px;
  font-size:20px;
}
.retex-print-content h3{
  margin:15px 0 5px;
  padding-bottom:4px;
  border-bottom:1px solid #e0e6e9;
  font-size:13px;
}
.retex-print-content p{
  margin:4px 0 7px;
}
.retex-print-content .retex-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin:10px 0 14px;
}
.retex-print-content .retex-summary-card{
  padding:8px;
  border:1px solid #d9e2e7;
  border-radius:7px;
  background:#f8fafb;
}
.retex-print-content .retex-summary-card strong{
  display:block;
  font-size:17px;
  line-height:1;
  margin-bottom:3px;
}
.retex-print-content .retex-timeline{
  display:grid;
  gap:4px;
}
.retex-print-content .retex-timeline-row{
  display:grid;
  grid-template-columns:120px 125px minmax(0,1fr);
  gap:8px;
  padding:4px 0;
  border-bottom:1px solid #edf1f3;
}
.retex-print-content .retex-timeline-kind{
  color:#607785;
  font-size:10px;
}

body.print-map-only .print-sheet,
body.print-retex-only .print-sheet{
  display:none!important;
}

@media print{
  @page{
    size:A4 landscape;
    margin:8mm;
  }

  body.print-map-only,
  body.print-retex-only{
    background:#fff!important;
    overflow:visible!important;
  }

  body.print-map-only > *:not(#mapPrintSheet),
  body.print-retex-only > *:not(#retexPrintSheet){
    display:none!important;
  }

  body.print-map-only #mapPrintSheet,
  body.print-retex-only #retexPrintSheet{
    display:block!important;
    position:static!important;
    left:auto!important;
    top:auto!important;
    z-index:auto!important;
    width:auto!important;
    min-height:0!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
  }

  body.print-map-only #mapPrintSheet .print-map-frame{
    height:163mm!important;
  }

  body.print-map-only #mapPrintSheet #mapPrintCanvas{
    position:absolute!important;
    inset:0!important;
  }

  body.print-map-only #mapPrintSheet .leaflet-control-zoom{
    display:none!important;
  }

  body.print-map-only #mapPrintSheet .leaflet-control-attribution{
    font-size:7px!important;
  }

  body.print-retex-only #retexPrintSheet{
    font-size:9.5pt!important;
  }

  body.print-retex-only #retexPrintSheet .print-sheet-header{
    break-after:avoid;
  }

  body.print-retex-only #retexPrintSheet h3{
    break-after:avoid;
  }

  body.print-retex-only #retexPrintSheet p,
  body.print-retex-only #retexPrintSheet .retex-timeline-row,
  body.print-retex-only #retexPrintSheet .retex-summary-card{
    break-inside:avoid;
  }
}


/* --- VizuRisk v0.1.7 : outil Mesurer + dessin éditable --- */
.map-measure-collapsible{position:relative}
.map-measure-popover{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  width:min(330px,calc(100vw - 32px));
  z-index:985;
  background:rgba(255,255,255,.99);
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 12px 34px rgba(14,42,64,.20);
  padding:12px;
}
.map-measure-popover.collapsed{display:none}
.measure-mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.measure-mode-buttons .active{
  background:#e5f1f8;
  border-color:#bcddec;
  color:#0a5c8d;
}
.measure-readout{
  min-height:38px;
  display:flex;
  align-items:center;
  padding:8px 10px;
  margin:8px 0;
  border:1px solid #cddbe3;
  border-radius:8px;
  background:#f5f9fb;
  color:#294653;
  font-size:12px;
  font-weight:800;
}
.map-workspace.measure-active #mapCanvas,
.map-workspace.drawing-active #mapCanvas{
  cursor:crosshair;
}
.measure-tooltip,
.drawing-measure-tooltip{
  background:rgba(17,39,52,.93)!important;
  border:0!important;
  border-radius:6px!important;
  color:#fff!important;
  box-shadow:0 2px 8px rgba(0,0,0,.22)!important;
  font-size:11px!important;
  font-weight:750!important;
  padding:5px 7px!important;
}
.measure-tooltip::before,
.drawing-measure-tooltip::before{
  border-top-color:rgba(17,39,52,.93)!important;
}

.drawing-circle-only[hidden],
.drawing-measure[hidden]{display:none!important}
.drawing-measure{
  display:flex;
  align-items:center;
  min-height:32px;
  padding:7px 9px;
  border:1px solid #cddbe3;
  border-radius:8px;
  background:#f5f9fb;
  color:#294653;
  font-size:11px;
  font-weight:750;
}
.drawing-edit-handle{
  width:12px;
  height:12px;
  display:block;
  box-sizing:border-box;
  border:2px solid #fff;
  border-radius:50%;
  background:#176f9e;
  box-shadow:0 0 0 2px rgba(23,111,158,.85),0 2px 5px rgba(0,0,0,.25);
}
.drawing-edit-handle-icon{background:transparent!important;border:0!important}
.drawing-popup{min-width:210px}
.drawing-popup-title{font-weight:800;margin-bottom:2px}
.drawing-popup-meta,.drawing-popup-measure{font-size:11px;line-height:1.35;color:#617985}
.drawing-popup-measure{margin-top:5px;font-weight:750;color:#385867}
.drawing-popup-actions{display:flex;gap:6px;margin-top:9px;padding-top:8px;border-top:1px solid #e4eaed}
.drawing-popup-actions button{
  min-height:30px;padding:5px 8px;border-radius:7px;border:1px solid #c9d7df;
  background:#fff;color:#203e4d;font:inherit;font-size:11px;font-weight:750;cursor:pointer
}
.drawing-popup-actions .danger{color:#8c3f49;border-color:#eed2d6}
.drawing-popup-actions .danger:hover{background:#fbefef}


/* --- VizuRisk v0.1.8 : dossiers d'événements dans Données --- */
.event-tracking-panel{
  margin-bottom:18px;
}
.event-tracking-head{
  align-items:flex-end;
  gap:16px;
}
.event-tracking-head h3{
  margin:3px 0 0;
}
.event-tracking-filters{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.event-tracking-filters input{
  min-width:230px;
}
.event-tracking-filters select{
  min-width:150px;
}

.event-tracking-table td{
  vertical-align:middle;
}
.event-tracking-title{
  display:grid;
  gap:2px;
  min-width:190px;
}
.event-tracking-title strong{
  font-size:13px;
}
.event-tracking-title span{
  font-size:11px;
  color:var(--muted);
}
.event-count{
  display:inline-flex;
  min-width:30px;
  justify-content:center;
  padding:4px 7px;
  border-radius:999px;
  background:#eef4f7;
  color:#36515f;
  font-size:11px;
  font-weight:800;
}
.event-count-attention{
  background:#fff3dd;
  color:#785516;
}
.event-tracking-actions{
  display:flex;
  justify-content:flex-end;
  gap:5px;
  white-space:nowrap;
}
.event-tracking-actions button{
  min-height:32px;
  padding:5px 8px;
}

.event-dossier{
  margin-top:16px;
  border-top:1px solid var(--line);
  padding-top:16px;
}
.event-dossier[hidden]{display:none!important}
.event-dossier-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:14px;
}
.event-dossier-head h3{
  margin:3px 0 4px;
  font-size:20px;
}
.event-dossier-head p{
  margin:0;
}
.event-dossier-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.event-dossier-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(120px,1fr));
  gap:9px;
  margin:0 0 16px;
}
.event-dossier-metric{
  padding:10px 12px;
  border:1px solid #dbe4e9;
  border-radius:10px;
  background:#f8fafb;
}
.event-dossier-metric strong{
  display:block;
  font-size:20px;
  line-height:1;
  margin-bottom:4px;
}
.event-dossier-metric span{
  color:#607684;
  font-size:11px;
}
.event-dossier-sections{
  display:grid;
  gap:12px;
}
.event-dossier-section{
  border:1px solid #e0e7eb;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}
.event-dossier-section > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 13px;
  cursor:pointer;
  font-weight:800;
  background:#fafcfd;
}
.event-dossier-section > summary::-webkit-details-marker{display:none}
.event-dossier-section > summary::after{
  content:"⌄";
  color:#647c89;
}
.event-dossier-section[open] > summary::after{
  content:"⌃";
}
.event-dossier-section-body{
  padding:8px 13px 12px;
}
.event-dossier-list{
  display:grid;
  gap:0;
}
.event-dossier-row{
  display:grid;
  grid-template-columns:145px 130px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:8px 0;
  border-bottom:1px solid #edf1f3;
  font-size:12px;
}
.event-dossier-row:last-child{border-bottom:0}
.event-dossier-row-time{
  color:#6e8490;
  white-space:nowrap;
}
.event-dossier-row-kind{
  color:#536d7b;
  font-size:11px;
  font-weight:750;
}
.event-dossier-row-main{
  min-width:0;
}
.event-dossier-row-main strong{
  display:block;
  margin-bottom:2px;
}
.event-dossier-empty{
  margin:4px 0;
  color:var(--muted);
  font-size:12px;
}
.event-dossier-description{
  margin:0 0 14px;
  padding:10px 12px;
  border-left:3px solid #9db7c6;
  background:#f7fafb;
  color:#425d6a;
  font-size:13px;
  line-height:1.45;
}

@media(max-width:950px){
  .event-tracking-head{align-items:stretch;flex-direction:column}
  .event-tracking-filters{width:100%}
  .event-tracking-filters input{flex:1;min-width:180px}
  .event-dossier-metrics{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px){
  .event-dossier-head{flex-direction:column}
  .event-dossier-actions{justify-content:flex-start}
  .event-dossier-metrics{grid-template-columns:1fr 1fr}
  .event-dossier-row{
    grid-template-columns:1fr;
    gap:2px;
  }
}


/* --- VizuRisk v0.1.9 : typographie institutionnelle contemporaine --- */
:root{
  --font-ui:"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-display:"Segoe UI Variable Display","Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

html,body,
button,input,select,textarea,table{
  font-family:var(--font-ui);
}

body{
  font-feature-settings:"kern" 1,"liga" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,
.eyebrow,
.nav-btn,
.map-toolbar-btn,
.chip,
button{
  font-family:var(--font-display);
}

/* Menu : aspect plus officiel, dense et moderne */
.sidebar .nav-btn{
  font-size:14px;
  font-weight:620;
  letter-spacing:-0.005em;
  line-height:1.2;
}

.sidebar .nav-btn.active{
  font-weight:720;
}

.sidebar .nav-icon{
  font-family:var(--font-ui);
  font-weight:650;
}

/* Titres plus nets, moins "web app générique" */
.topbar h1,
.section-head h2,
.panel h3,
.event-card-title h3{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-0.018em;
}

.eyebrow{
  font-size:10px;
  font-weight:760;
  letter-spacing:.085em;
}

/* Boutons et contrôles */
button,
.map-toolbar-btn{
  font-weight:650;
  letter-spacing:-0.003em;
}

input,select,textarea{
  font-weight:450;
}


/* --- VizuRisk v0.1.10 : export cartographique PNG --- */
.address-search-toggle{
  white-space:nowrap;
}
.map-export-actions .export-progress{
  color:var(--muted);
  font-size:11px;
}
@media(max-width:1050px){
  .address-search-toggle span{
    max-width:135px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}
@media(max-width:760px){
  .address-search-toggle span{
    display:none;
  }
}


/* --- VizuRisk v0.1.11 : barre cartographique + dialogue aléas --- */
.map-signal-btn,.map-draw-btn{white-space:nowrap}
.map-signal-btn{color:#7a3e20}
.map-signal-btn:hover{background:#fff3ea;border-color:#efd1bc}
.map-draw-btn{color:#285f7b}
.map-draw-btn:hover{background:#eef7fb;border-color:#c9e2ef}

#hazardDialog{
  max-width:640px;
  width:min(640px,calc(100% - 28px));
  max-height:min(86vh,760px);
  overflow:hidden;
  border-radius:16px;
}
#hazardDialog form{
  max-height:min(86vh,760px);
  overflow:auto;
  padding:18px 20px 16px;
  gap:12px;
}
#hazardDialog .hazard-dialog-title{
  position:sticky;
  top:-18px;
  z-index:4;
  margin:-18px -20px 0;
  padding:18px 20px 13px;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid #edf1f3;
}
#hazardDialog .hazard-dialog-title h3{
  margin:3px 0 4px;
  font-size:21px;
  line-height:1.15;
  font-weight:700;
  letter-spacing:-.015em;
}
#hazardDialog .hazard-dialog-intro{
  margin:0;
  max-width:500px;
  font-size:12px;
  line-height:1.4;
}
.dialog-close-btn{
  flex:0 0 32px;
  width:32px;height:32px;
  display:grid;place-items:center;
  padding:0;border:1px solid transparent;border-radius:8px;
  background:transparent;color:#607785;font-size:20px;line-height:1;cursor:pointer;
}
.dialog-close-btn:hover{background:#f1f5f7;border-color:#dbe5ea;color:#203e4d}

#hazardDialog .hazard-source-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin:2px 0 4px;
  padding:4px;
  border:1px solid #dce5ea;
  border-radius:10px;
  background:#f5f8fa;
}
#hazardDialog .hazard-source-tabs .tab{
  min-height:38px;
  padding:8px 11px;
  border:0;border-radius:7px;
  background:transparent;color:#526a78;
  font-size:13px;font-weight:650;text-align:center;
  box-shadow:none;
}
#hazardDialog .hazard-source-tabs .tab:hover{background:#edf3f6;color:#284653}
#hazardDialog .hazard-source-tabs .tab.active{
  background:#fff;color:#183a4d;
  box-shadow:0 1px 3px rgba(20,48,65,.12);
}

#hazardDialog .hazard-source-panel{gap:9px;padding-top:3px}
#hazardDialog .hazard-source-panel label{gap:4px;font-size:11px;font-weight:700;color:#617886}
#hazardDialog .hazard-source-panel input,
#hazardDialog .hazard-source-panel select,
#hazardDialog .hazard-source-panel textarea{
  margin-top:2px;padding:9px 10px;border-radius:8px;font-size:13px;
}
#hazardDialog .hazard-source-panel textarea{min-height:72px}
#hazardDialog .file-drop{padding:13px 14px;border-radius:9px;background:#f8fafb}
#hazardDialog .file-drop strong{font-size:13px;color:#294653}
#hazardDialog .file-drop span{margin-top:2px;line-height:1.35}
#hazardDialog .file-drop input{padding:6px 0 0}
#hazardDialog .hazard-source-panel > .muted{
  margin:0;padding:8px 10px;border-radius:8px;background:#f4f7f9;
  font-size:11px;line-height:1.4;
}
#hazardDialog .hazard-dialog-actions{
  position:sticky;
  bottom:-16px;
  z-index:4;
  margin:4px -20px -16px;
  padding:12px 20px 14px;
  background:rgba(255,255,255,.98);
  border-top:1px solid #edf1f3;
}
#hazardDialog .hazard-dialog-actions button{
  min-height:38px;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:650;
}
#hazardDialog .hazard-dialog-actions .primary{min-width:142px}

@media(max-width:760px){
  .map-signal-btn span,.map-draw-btn span{display:none}
  #hazardDialog .hazard-source-tabs{grid-template-columns:1fr}
}


/* --- VizuRisk v0.1.13 : couche BPE INSEE --- */
.bpe-section .section-icon{
  background:#eaf2f5;
  color:#315968;
}
.bpe-symbol{
  width:22px;
  height:22px;
  display:inline-grid;
  place-items:center;
  flex:0 0 22px;
  border-radius:50%;
  font-size:10px;
  font-weight:850;
  color:#fff;
  background:#657d89;
}
.bpe-symbol.services{background:#536d79}
.bpe-symbol.commerce{background:#9a6b36}
.bpe-symbol.education{background:#496a98}
.bpe-symbol.health{background:#a04f57}
.bpe-symbol.transport{background:#526f5c}
.bpe-symbol.gathering{background:#735c8e}
.bpe-symbol.tourism{background:#8a644e}
.bpe-layer-status{
  margin:3px 0 7px;
  padding:6px 8px;
  border-radius:7px;
  background:#f5f8fa;
  font-size:10.5px;
  line-height:1.35;
}
.bpe-source-note{margin:7px 0 0!important}
.legend-dot.bpe{background:#657d89}

.bpe-marker{
  stroke:#fff;
  stroke-width:1.4;
  fill-opacity:.84;
}
.bpe-popup{
  min-width:245px;
  max-width:330px;
}
.bpe-popup h4{
  margin:0 0 4px;
  font-size:14px;
}
.bpe-popup .bpe-popup-type{
  margin-bottom:7px;
  color:#5c7481;
  font-size:11px;
  line-height:1.35;
}
.bpe-popup-grid{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:3px 7px;
  margin:7px 0;
  font-size:11px;
}
.bpe-popup-grid b{color:#607785}
.bpe-popup-local{
  margin-top:8px;
  padding:7px 8px;
  border-left:3px solid #5c8397;
  background:#f4f8fa;
  font-size:11px;
  line-height:1.4;
}
.bpe-popup-actions{
  display:flex;
  justify-content:flex-end;
  gap:6px;
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid #e4eaed;
}
.bpe-popup-actions button{
  min-height:30px;
  padding:5px 9px;
  border:1px solid #c9d7df;
  border-radius:7px;
  background:#fff;
  color:#203e4d;
  font:inherit;
  font-size:11px;
  font-weight:750;
  cursor:pointer;
}

#bpePickerMap{
  height:260px;
  border-radius:9px;
  overflow:hidden;
  border:1px solid #cfdbe2;
  background:#eef2f4;
}
.bpe-dialog .dialog-title h3{margin:3px 0 4px}
.bpe-dialog .dialog-title p{margin:0}
.bpe-priority-critical{
  color:#8e3039;
  font-weight:800;
}
.bpe-priority-important{
  color:#8b611e;
  font-weight:800;
}


/* v0.1.14 – pictogrammes menu plus modernes */
.nav-btn{gap:11px}
.nav-icon{
  width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  color:#4f6470;flex:0 0 22px;
}
.nav-btn.active .nav-icon{color:#0e3b55}
.nav-icon svg{display:block;width:22px;height:22px;overflow:visible}


/* --- VizuRisk v0.1.15 : périmètre BPE 59 + 62 --- */
.bpe-scope-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 7px;
  border-radius:999px;
  background:#eef4f7;
  color:#48616e;
  font-size:10px;
  font-weight:750;
}


/* --- VizuRisk v0.1.16 : statut export cartographique --- */
.map-export-status{
  margin-top:7px;
  padding:7px 9px;
  border-radius:8px;
  background:#f5f8fa;
  color:#526a78;
  font-size:11px;
  line-height:1.35;
}
.map-export-status.error{
  background:#fff0f1;
  color:#8b3944;
}


/* --- VizuRisk v0.1.17 : ordre explicite des fonds --- */
.basemap-order-hint{
  display:grid;
  grid-template-columns:auto auto 1fr;
  gap:8px 12px;
  align-items:center;
  margin:8px 0 12px;
  padding:8px 10px;
  border-radius:9px;
  background:#f5f8fa;
  color:#526a78;
  font-size:11px;
}
.basemap-order-hint > span{
  font-weight:750;
  white-space:nowrap;
}
.basemap-order-hint > small{
  line-height:1.35;
}
.basemap-stack-row.base-row{
  border-left:3px solid #b8c8d1;
  padding-left:9px;
}
.basemap-stack-row.overlay-row{
  border-left:3px solid #4f7f99;
  padding-left:9px;
}
@media(max-width:720px){
  .basemap-order-hint{
    grid-template-columns:1fr 1fr;
  }
  .basemap-order-hint small{
    grid-column:1 / -1;
  }
}


/* --- VizuRisk v0.1.18 : signalements accessibles depuis le tableau de bord --- */
.metric-reports-card{
  position:relative;
  cursor:pointer;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease;
}
.metric-reports-card:hover,
.metric-reports-card:focus-visible{
  border-color:#9fc4d7;
  background:#fbfdfe;
  box-shadow:0 7px 20px rgba(22,76,106,.08);
  outline:none;
}
.metric-reports-card:active{
  transform:translateY(1px);
}
.metric-action-hint{
  display:block;
  margin-top:7px;
  color:#48748d;
  font-size:11px;
  font-weight:700;
}
.metric-reports-card.is-empty{
  cursor:default;
}
.metric-reports-card.is-empty .metric-action-hint{
  color:#91a1aa;
}

.dashboard-reports-dialog{
  width:min(760px,calc(100% - 28px));
  max-width:760px;
}
.dashboard-reports-shell{
  padding:18px 20px 16px;
}
.dashboard-reports-head{
  margin-bottom:12px;
  padding-bottom:12px;
  border-bottom:1px solid #e6ecef;
}
.dashboard-reports-head h3{
  margin:3px 0 3px;
}
.dashboard-reports-head p{
  margin:0;
}
.dashboard-reports-list{
  display:grid;
  gap:9px;
  max-height:min(58vh,520px);
  overflow:auto;
  padding:2px 2px 8px;
}
.dashboard-report-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px 13px;
  border:1px solid #dce5ea;
  border-radius:11px;
  background:#fff;
}
.dashboard-report-main{
  min-width:0;
}
.dashboard-report-topline{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:4px;
}
.dashboard-report-topline strong{
  font-size:13px;
}
.dashboard-report-type{
  display:inline-flex;
  align-items:center;
  padding:3px 7px;
  border-radius:999px;
  background:#eef4f7;
  color:#526b78;
  font-size:10px;
  font-weight:750;
}
.dashboard-report-meta{
  color:#738792;
  font-size:11px;
  line-height:1.4;
}
.dashboard-report-details{
  margin-top:5px;
  color:#435e6b;
  font-size:12px;
  line-height:1.4;
}
.dashboard-report-map-btn{
  white-space:nowrap;
}
.dashboard-reports-empty{
  padding:24px 12px;
  text-align:center;
  color:var(--muted);
}
.dashboard-reports-actions{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #e6ecef;
}
@media(max-width:620px){
  .dashboard-report-item{
    grid-template-columns:1fr;
  }
  .dashboard-report-map-btn{
    justify-self:start;
  }
}


/* --- VizuRisk v0.1.19 : boutons secondaires allégés + ordre visuel des fonds --- */

/* Les actions secondaires ne sont plus de gros pavés gris. */
.small,
.filebtn,
.file-button{
  min-height:32px;
  padding:6px 10px;
  border:1px solid #cfdbe2;
  border-radius:8px;
  background:#fff;
  color:#294653;
  box-shadow:none;
  font-size:12px;
  font-weight:650;
  line-height:1.15;
  transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease;
}

.small:hover,
.filebtn:hover,
.file-button:hover{
  background:#f5f8fa;
  border-color:#aebfc9;
  color:#173d52;
}

.small:focus-visible,
.filebtn:focus-visible,
.file-button:focus-visible{
  outline:2px solid rgba(21,101,169,.18);
  outline-offset:2px;
}

/* Boutons secondaires dans les boîtes de dialogue. */
.dialog-actions button:not(.primary):not(.dangerbtn),
.basemap-popover-actions button:not(.primary){
  min-height:32px;
  padding:6px 10px;
  border:1px solid #cfdbe2;
  border-radius:8px;
  background:#fff;
  color:#294653;
  box-shadow:none;
  font-size:12px;
  font-weight:650;
}

.dialog-actions button:not(.primary):not(.dangerbtn):hover,
.basemap-popover-actions button:not(.primary):hover{
  background:#f5f8fa;
  border-color:#aebfc9;
}

/* Le preset de fonds devient une commande légère. */
.preset-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#476270;
  background:transparent;
  border-color:#d7e1e6;
}
.preset-btn:hover{
  background:#f6f9fa;
  color:#244c62;
}
.preset-btn span{
  font-size:14px;
  line-height:1;
  opacity:.78;
}

/* Ordre visuel réellement cohérent avec la pile cartographique. */
.basemap-popover .overlay-row{
  order:1;
  border-left:3px solid #4f7f99;
  padding-left:9px;
}
.basemap-popover .base-row{
  order:2;
  border-left:3px solid #b8c8d1;
  padding-left:9px;
}
.basemap-order-hint{
  grid-template-columns:auto auto 1fr;
}


/* --- VizuRisk v0.1.20 : picto signalement renforcé en rouge --- */
.signal-glyph{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  font-weight:900;
}

.report-icon{
  background:#fff0f1;
  color:#b22036;
  border:1px solid #f2c5ce;
}
.report-icon .signal-glyph{
  font-size:17px;
  transform:translateY(-0.5px);
}

.map-signal-btn{
  color:#a61f33;
  border-color:#e7c0c8;
  background:#fff7f8;
}
.map-signal-btn:hover{
  background:#fff0f2;
  border-color:#dc9cab;
  color:#8c1629;
}
.map-signal-btn .signal-glyph{
  font-size:15px;
  margin-right:2px;
}

.legend-dot.report{
  background:#c92a3f;
}

#dashboardAddReportBtn{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
#dashboardAddReportBtn .signal-glyph{
  color:#b22036;
  font-size:14px;
}


/* --- VizuRisk v0.1.21 : sélection des dessins + détails dashboard --- */
.metric-drilldown-card{
  position:relative;
  cursor:pointer;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease;
}
.metric-drilldown-card:hover,
.metric-drilldown-card:focus-visible{
  border-color:#9fc4d7;
  background:#fbfdfe;
  box-shadow:0 7px 20px rgba(22,76,106,.08);
  outline:none;
}
.metric-drilldown-card:active{transform:translateY(1px)}
.metric-drilldown-card.is-empty{cursor:default}
.metric-drilldown-card.is-empty .metric-action-hint{color:#91a1aa}

.drawing-layer-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:3px 0 7px;
}
.drawing-layer-toolbar .layer-counter{margin:0}
.danger-soft{
  color:#9a3745!important;
  border-color:#edcbd1!important;
  background:#fff!important;
}
.danger-soft:hover{
  background:#fff1f3!important;
  border-color:#ddaab4!important;
}
.drawing-object-list{
  display:grid;
  gap:5px;
  margin-top:5px;
}
.drawing-object-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:4px;
  align-items:center;
  padding:5px;
  border:1px solid #e1e8ec;
  border-radius:8px;
  background:#fff;
}
.drawing-object-row.is-selected{
  border-color:#5d9ab9;
  background:#f1f8fb;
  box-shadow:0 0 0 2px rgba(42,119,156,.08);
}
.drawing-object-select{
  min-width:0;
  border:0;
  background:transparent;
  text-align:left;
  padding:3px 4px;
  color:#284653;
  cursor:pointer;
}
.drawing-object-select strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
}
.drawing-object-select small{
  display:block;
  margin-top:2px;
  color:#748892;
  font-size:9.5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.drawing-object-iconbtn{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #d3dee4;
  border-radius:7px;
  background:#fff;
  color:#3d5b69;
  cursor:pointer;
}
.drawing-object-iconbtn:hover{background:#f5f8fa}
.drawing-object-iconbtn.delete{
  color:#a13543;
  border-color:#ecd0d5;
}
.drawing-object-iconbtn.delete:hover{background:#fff1f3}

.dashboard-activity-dialog{
  width:min(780px,calc(100% - 28px));
  max-width:780px;
}
.dashboard-activity-shell{padding:18px 20px 16px}
.dashboard-activity-head{
  margin-bottom:12px;
  padding-bottom:12px;
  border-bottom:1px solid #e6ecef;
}
.dashboard-activity-head h3{margin:3px 0}
.dashboard-activity-head p{margin:0}
.dashboard-activity-list{
  display:grid;
  gap:9px;
  max-height:min(58vh,540px);
  overflow:auto;
  padding:2px 2px 8px;
}
.dashboard-activity-item{
  padding:11px 13px;
  border:1px solid #dce5ea;
  border-radius:11px;
  background:#fff;
}
.dashboard-activity-topline{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.dashboard-activity-topline strong{
  font-size:13px;
  line-height:1.3;
}
.dashboard-activity-meta{
  margin-top:4px;
  color:#738792;
  font-size:11px;
  line-height:1.4;
}
.dashboard-activity-details{
  margin-top:6px;
  color:#435e6b;
  font-size:12px;
  line-height:1.45;
}
.dashboard-activity-empty{
  padding:24px 12px;
  text-align:center;
  color:var(--muted);
}
.dashboard-activity-actions{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #e6ecef;
}


/* --- VizuRisk v0.1.22 : filtre actions par cellule --- */
.action-filterbar{
  display:grid;
  grid-template-columns:minmax(190px,240px) minmax(220px,320px);
  gap:8px;
  align-items:center;
}
.action-filterbar select{
  max-width:none;
}
@media(max-width:700px){
  .action-filterbar{
    grid-template-columns:1fr;
  }
}


/* --- VizuRisk v0.1.23 : pictogramme signalement vectoriel rouge cohérent --- */
.signal-icon-svg{
  width:17px;
  height:17px;
  display:block;
  overflow:visible;
  color:#b22036;
}
.signal-icon-svg path:first-child{
  fill:#fff3f5;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linejoin:round;
}
.signal-icon-svg path:nth-child(2),
.signal-icon-svg circle{
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
}
.signal-icon-svg circle{
  fill:currentColor;
  stroke:none;
}

.map-signal-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#a61f33;
  border-color:#e7c0c8;
  background:#fff7f8;
}
.map-signal-btn .signal-icon-svg{
  width:16px;
  height:16px;
  color:#b22036;
}
.map-signal-btn:hover .signal-icon-svg{
  color:#8c1629;
}

.report-icon{
  background:#fff0f1;
  color:#b22036;
  border:1px solid #f2c5ce;
}
.report-icon .signal-icon-svg{
  width:18px;
  height:18px;
}

.report-map-icon{
  background:transparent!important;
  border:0!important;
}
.report-map-icon .report-map-marker{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:rgba(255,255,255,.96);
  border:1px solid #e4aeba;
  box-shadow:0 2px 8px rgba(82,20,31,.22);
}
.report-map-icon .signal-icon-svg{
  width:21px;
  height:21px;
  color:#b22036;
}
.report-map-icon .signal-icon-svg path:first-child{
  fill:#fff0f2;
}

#dashboardAddReportBtn .signal-icon-svg{
  width:15px;
  height:15px;
  flex:0 0 15px;
}

/* L'ancien caractère emoji n'est plus utilisé. */
.signal-glyph{display:none!important}


/* --- VizuRisk v0.1.24 : export cartographique allégé --- */


/* --- VizuRisk v0.1.25 : BPE tabulaire + import moyens SDIS --- */
.bpe-table-panel{margin-top:22px;padding:0;overflow:hidden}
.bpe-table-head{padding:16px 18px 10px;margin:0;align-items:flex-start}
.bpe-table-head h3{margin:3px 0 4px}
.bpe-table-head p{margin:0;max-width:780px;font-size:12px;line-height:1.4}
.bpe-table-tools{display:grid;grid-template-columns:minmax(280px,1fr) minmax(250px,360px);gap:8px;padding:10px 18px;background:#f8fafb;border-top:1px solid #edf1f3;border-bottom:1px solid #edf1f3}
.bpe-table-status{padding:8px 18px;font-size:11px}
.bpe-table-wrap{border-radius:0;border-left:0;border-right:0;margin:0;max-height:520px}
.bpe-data-table{min-width:1180px}
.bpe-data-table th{position:sticky;top:0;z-index:2;background:#f3f7f9}
.bpe-data-table td{vertical-align:middle;font-size:11.5px}
.bpe-data-table .bpe-name-cell{min-width:190px;font-weight:700;color:#203e4d}
.bpe-data-table .bpe-type-cell{min-width:190px}
.bpe-data-table .bpe-address-cell{min-width:210px}
.bpe-category-pill,.bpe-priority-pill{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#eef4f7;color:#385565;font-size:10px;font-weight:700;white-space:nowrap}
.bpe-priority-pill.important{background:#fff3dd;color:#7b5719}.bpe-priority-pill.critical{background:#fdebed;color:#933443}
.bpe-table-actions{display:flex;gap:5px;white-space:nowrap}
.bpe-table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px 18px 14px}
.bpe-table-pagination span{min-width:150px;text-align:center;font-size:11px}
.means-page-actions{margin:0;justify-content:flex-end;flex-wrap:wrap}
.means-import-help{padding:10px 14px;margin-bottom:14px}
.means-import-help p{margin:0 0 4px;font-size:12px;line-height:1.45}.means-import-help #meanImportStatus:empty{display:none}
.mean-import-button{white-space:nowrap}
#meanHolderCommuneField[hidden]{display:none!important}
@media(max-width:800px){.bpe-table-tools{grid-template-columns:1fr}.means-page-actions{justify-content:flex-start}.section-head:has(.means-page-actions){align-items:flex-start}.bpe-table-pagination{justify-content:center}}


/* --- VizuRisk v0.1.27 : filtres territoriaux Enjeux --- */
.stake-filters{
  display:grid;
  grid-template-columns:minmax(240px,1.15fr) minmax(190px,.9fr) minmax(190px,.9fr) minmax(210px,1fr);
  gap:8px;
  align-items:center;
  margin-bottom:7px;
}
.stake-filters input,
.stake-filters select{
  max-width:none;
}
.territory-filter-note{
  margin:-1px 0 14px;
  font-size:11px;
}
#stakeEpciFilter,
#stakeCommuneFilter{
  background-color:#fff;
}
@media(max-width:1050px){
  .stake-filters{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:650px){
  .stake-filters{
    grid-template-columns:1fr;
  }
}


/* --- VizuRisk v0.1.28 : BPE à la demande, stocks, imports interopérables --- */
.compact-primary{min-height:34px;padding:7px 12px;border-radius:8px;font-size:12px}
.mean-stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0 7px}
.mean-stock-box{padding:8px 10px;border:1px solid #dbe5ea;border-radius:9px;background:#f9fbfc}
.mean-stock-box span{display:block;margin-bottom:2px;color:#718692;font-size:9.5px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.mean-stock-box strong{color:#172f3c;font-size:18px}
.mean-stock-box.remaining strong{color:#176f58}
.mean-stock-box.warning{background:#fff5f6;border-color:#efccd2}
.mean-stock-box.warning strong{color:#a13b45}
.mean-stock-summary{margin-top:10px;padding:9px;border:1px solid #dbe5ea;border-radius:9px;background:#f7fafb}
.mean-stock-summary .mean-stock-grid{margin:0}
#vulnerableImportActions{align-items:center}
#vulnerableImportStatus{margin:0 0 12px}
.bpe-table-status.query-hint{background:#f7fafb;color:#526b78}
@media(max-width:650px){.mean-stock-grid{grid-template-columns:1fr}}


/* --- VizuRisk v0.1.29 : Ressources + Compte --- */
.account-layout{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr);
  gap:14px;
  margin-bottom:14px;
}
.account-profile-panel{grid-row:span 2}
.account-logo-row{
  display:flex;align-items:center;gap:14px;
  margin:10px 0 15px;padding:12px;
  border:1px solid #e0e8ec;border-radius:11px;background:#f8fafb
}
.account-logo-box{width:150px;min-width:150px;height:74px}
.account-logo-box img{max-width:132px;max-height:56px}
.account-tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}
.account-tech-grid>div{padding:8px 9px;border:1px solid #dfe8ec;border-radius:8px;background:#f9fbfc}
.account-tech-grid span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#758994;font-weight:750}
.account-tech-grid strong{display:block;margin-top:2px;font-size:12px;color:#203e4d}
.linked-accounts-panel{margin-top:6px}
.linked-accounts-table{min-width:760px}
.linked-accounts-table td,.linked-accounts-table th{font-size:11.5px}
.account-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:#2e916e}
.account-status-dot.off{background:#9ba8ae}
.resource-filters{display:grid;grid-template-columns:minmax(260px,1fr) minmax(190px,260px) minmax(170px,220px);gap:8px}
.resource-role-notice{
  margin:9px 0 13px;padding:10px 12px;border:1px solid #dbe5ea;border-radius:9px;background:#f8fafb;
  color:#536d79;font-size:11.5px
}
.resource-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:11px}
.resource-card{
  display:flex;flex-direction:column;gap:8px;
  min-height:176px;padding:14px;border:1px solid #dce6eb;border-radius:12px;background:#fff
}
.resource-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.resource-type{
  display:inline-flex;padding:4px 7px;border-radius:999px;background:#edf4f7;color:#355666;font-size:9.5px;font-weight:800
}
.resource-card h3{margin:2px 0;font-size:15px;color:#193746}
.resource-card-meta{font-size:10.5px;color:#718691;line-height:1.45}
.resource-card-desc{font-size:11.5px;color:#4c6572;line-height:1.45;flex:1}
.resource-empty{grid-column:1/-1;padding:28px;text-align:center;border:1px dashed #cad8df;border-radius:12px;color:#718691}
.resource-size{font-variant-numeric:tabular-nums}
.resource-file-icon{
  width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eef4f7;color:#32596c;font-size:18px
}
.data-admin-cards{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}
@media(max-width:900px){
 .account-layout{grid-template-columns:1fr}
 .account-profile-panel{grid-row:auto}
 .resource-filters{grid-template-columns:1fr}
}
@media(max-width:650px){
 .account-tech-grid{grid-template-columns:1fr}
 .account-logo-row{align-items:flex-start;flex-direction:column}
}


/* --- VizuRisk v0.1.30 : espaces opérationnels indépendants PCS / PICS --- */
.workspace-scope-note{
  margin:0 0 12px;padding:10px 12px;border:1px solid #dce7ec;border-radius:9px;
  background:#f8fafb;color:#526c79;font-size:11.5px;line-height:1.45
}
.event-plan-context{
  margin:0 0 10px;padding:9px 10px;border:1px solid #dce7ec;border-radius:8px;
  background:#f7fafb;color:#516b78;font-size:11px
}
.phase-plan-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.plan-state-badge{
  display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;
  border:1px solid #d2dde2;background:#f5f8f9;color:#647985;font-size:10px;font-weight:750
}
.plan-state-badge.active{
  border-color:#e3b4b9;background:#fff0f1;color:#a52c3c
}
.event-plan-chip{
  background:#eef4f7;color:#355767;border-color:#d9e5ea
}
.event-plan-chip.active{
  background:#fff0f1;color:#a72e3d;border-color:#edc7cc
}
.event-plan-action.trigger{
  border-color:#dfb8be!important;background:#fff6f7!important;color:#a22f3e!important
}
.event-plan-action.lift{
  border-color:#ccd9df!important;background:#fff!important;color:#526b77!important
}


/* --- VizuRisk v0.1.31 : administration PCI & droits par cellule --- */
.pci-admin-panel{margin-bottom:14px}
.pci-admin-table{min-width:970px}
.pci-admin-table th,.pci-admin-table td{font-size:11.5px;vertical-align:middle}
.pci-contact-stack strong{display:block;color:#274b5c}
.pci-contact-stack a{font-size:10.5px}
.pci-rights-summary{display:flex;gap:5px;flex-wrap:wrap}
.pci-rights-summary span{
  display:inline-flex;padding:3px 6px;border-radius:999px;background:#eef4f7;color:#496676;font-size:9.5px;font-weight:700
}
.pci-rights-summary .edit{background:#eaf5f1;color:#286d58}
.pci-permission-block{margin-top:14px;border-top:1px solid #e2e9ed;padding-top:13px}
.pci-permission-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:9px}
.pci-permission-head p{margin:3px 0 0;font-size:10.5px}
.pci-permission-table{min-width:620px}
.pci-permission-table th:nth-child(2),
.pci-permission-table th:nth-child(3),
.pci-permission-table td:nth-child(2),
.pci-permission-table td:nth-child(3){text-align:center;width:150px}
.pci-permission-table input[type="checkbox"]{width:17px;height:17px}
.permission-readonly-banner{
  display:none;position:sticky;top:0;z-index:15;margin:-6px 0 10px;padding:7px 10px;
  border:1px solid #d8e4e9;border-radius:8px;background:#f7fafb;color:#58717e;font-size:10.5px
}
body.permission-readonly .view.active>.permission-readonly-banner{display:block}
.nav-btn.permission-hidden{display:none!important}
.account-access-note{
  margin:8px 0 0;padding:8px 10px;border:1px solid #dbe6eb;border-radius:8px;background:#f8fafb;font-size:10.5px;color:#5e7480
}
@media(max-width:760px){.pci-permission-head{flex-direction:column}}


/* --- VizuRisk v0.1.32 : bandeau visible événement en cours --- */
.event-status-banner{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  margin:10px 0 14px;
  border-radius:999px;
  border:1px solid #f0c1c1;
  background:linear-gradient(90deg,#fff5f5 0%,#ffe9e9 100%);
  color:#a62626;
  box-shadow:0 8px 20px rgba(166,38,38,.10);
  font-size:15px;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.event-status-banner[hidden]{display:none !important}
.event-status-banner strong{font-size:15px;font-weight:800}
.event-status-banner-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#d92d20;
  box-shadow:0 0 0 5px rgba(217,45,32,.16);
  flex:0 0 12px;
}
.event-status-banner.is-exercise{
  border-color:#f3d08d;
  background:linear-gradient(90deg,#fffaf0 0%,#fff2d6 100%);
  color:#9a6700;
}
.event-status-banner.is-exercise .event-status-banner-dot{
  background:#d97706;
  box-shadow:0 0 0 5px rgba(217,119,6,.16);
}


/* --- VizuRisk v0.1.33 : correctifs Compte, identité du compte, édition Actions, import Moyens --- */
.top-account-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  max-width:360px;
  padding:6px 11px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font:700 11px/1.2 "Segoe UI",Arial,sans-serif;
  cursor:pointer;
}
.top-account-chip:hover{background:rgba(255,255,255,.17)}
.top-account-chip span:last-child{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.top-account-dot{
  width:8px;height:8px;border-radius:50%;
  background:#76d4b3;box-shadow:0 0 0 3px rgba(118,212,179,.16);
  flex:0 0 8px;
}
.means-import-explainer{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,390px);
  align-items:end;
  gap:16px;
}
.means-import-explainer p{margin:4px 0 0;color:#536d7a;line-height:1.45}
.mean-import-mode{margin:0}
.mean-import-mode select{width:100%}
.action-card-actions{margin-top:12px}
@media(max-width:850px){
  .means-import-explainer{grid-template-columns:1fr}
  .top-account-chip{max-width:220px}
}


/* --- VizuRisk v0.1.34 : résumé événement simplifié --- */
.active-event-summary{
  margin-top:6px;
  max-width:900px;
}
.active-event-meta{
  color:#6f828d;
  font-size:11px;
  font-weight:650;
  line-height:1.4;
}
.active-event-description{
  margin:7px 0 0;
  color:#203845;
  font-size:15px;
  line-height:1.48;
}


/* --- VizuRisk v0.1.35 : emprise cartographique d’accueil par compte --- */
.account-home-extent-status{
  margin-top:10px;
  padding:9px 11px;
  border:1px solid #dce6eb;
  border-radius:9px;
  background:#f8fafb;
  color:#58717d;
  font-size:10.5px;
  line-height:1.45;
}
.account-home-extent-status.is-custom{
  border-color:#bcd8e5;
  background:#f1f8fb;
  color:#2f6077;
}
.home-extent-dialog{
  width:min(920px,calc(100% - 24px));
  max-width:920px;
}
.home-extent-map-wrap{
  position:relative;
  overflow:hidden;
  border:1px solid #d9e4e9;
  border-radius:12px;
  background:#eef2f4;
}
#homeExtentMap{
  height:min(58vh,520px);
  min-height:360px;
}
.home-extent-map-hint{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:500;
  display:flex;
  flex-direction:column;
  gap:2px;
  max-width:min(440px,calc(100% - 24px));
  padding:8px 10px;
  border:1px solid rgba(178,195,204,.85);
  border-radius:8px;
  background:rgba(255,255,255,.94);
  box-shadow:0 5px 16px rgba(27,62,80,.12);
  pointer-events:none;
  color:#345665;
  font-size:10.5px;
}
.home-extent-map-hint strong{font-size:11px}
.home-extent-coordinates{
  margin-top:8px;
  color:#718692;
  font-size:10.5px;
}
@media(max-width:650px){
  #homeExtentMap{height:50vh;min-height:300px}
}


/* --- VizuRisk v0.1.36 : détail des moyens engagés depuis le tableau de bord --- */
.dashboard-mean-stock{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:7px;
}
.dashboard-mean-stock span{
  display:inline-flex;
  gap:4px;
  align-items:center;
  padding:4px 7px;
  border-radius:7px;
  background:#f1f6f8;
  color:#486571;
  font-size:10.5px;
}
.dashboard-mean-stock strong{font-size:11px}
.dashboard-mean-stock .remaining{background:#edf7f3;color:#2e705c}


/* --- VizuRisk v0.1.37 : Annuaire, Enjeux responsive, édition Main courante --- */
html,body{max-width:100%;overflow-x:hidden}
.shell,.content,.view{min-width:0}
.view.active{max-width:100%}

/* Annuaire plus compact */
.directory-tools-compact{
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px;
  margin-bottom:14px;
}
.directory-search-line{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
}
.directory-search-line input{min-width:0}
.directory-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:84px;min-height:36px;padding:6px 10px;border-radius:999px;
  background:#f0f5f8;color:#58717f;font-size:11px;font-weight:750
}
.directory-filterbar{
  display:grid;
  grid-template-columns:repeat(5,minmax(140px,1fr)) auto;
  gap:8px;
  align-items:center;
  margin-top:10px;
}
.directory-filterbar select{min-width:0;max-width:none}
.directory-reset-btn{white-space:nowrap}
.directory-secondary-actions{margin-top:10px}
.directory-secondary-actions>summary{
  list-style:none;display:inline-flex;align-items:center;gap:6px;
  cursor:pointer;color:#446474;font-size:11px;font-weight:750
}
.directory-secondary-actions>summary::-webkit-details-marker{display:none}
.directory-secondary-actions>summary::before{content:'⋯';display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#eef4f7}
.directory-secondary-actions-menu{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:8px;padding:10px;border-radius:9px;background:#f8fafb;border:1px solid #e3eaee
}
.directory-secondary-actions-menu p{margin:0 0 0 auto}
.directory-table{min-width:760px}
.directory-table th,.directory-table td{font-size:12px}
.directory-table th:nth-child(1){width:13%}
.directory-table th:nth-child(2){width:17%}
.directory-table th:nth-child(3){width:15%}
.directory-table th:nth-child(4){width:13%}
.directory-table th:nth-child(5){width:17%}
.directory-table th:nth-child(6){width:12%}
.directory-table th:nth-child(7){width:10%}

/* Enjeux : éviter tout débordement de la page */
#stakes{overflow:hidden}
#stakes .section-head{min-width:0}
.stakes-page-actions{flex-wrap:wrap;justify-content:flex-end;max-width:100%}
.stakes-page-actions .buttonrow{flex-wrap:wrap;margin-bottom:0}
.stake-filters{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%;
  max-width:100%;
}
.stake-filters>*{min-width:0!important;max-width:none!important;width:100%!important}
.bpe-table-panel,.bpe-table-head,.bpe-table-tools{min-width:0;max-width:100%}
.bpe-table-head{gap:14px;align-items:flex-start}
.bpe-table-head>div:first-child{min-width:0;flex:1}
.bpe-table-head>.buttonrow{flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;margin-bottom:0}
.bpe-table-tools{
  display:grid!important;
  grid-template-columns:minmax(0,1.25fr) minmax(230px,.75fr)!important;
  gap:8px!important;
}
.bpe-table-tools>*{min-width:0!important;max-width:none!important}
.bpe-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
}
.bpe-data-table{min-width:900px}

/* Main courante */
.log-table td:last-child,.log-table th:last-child{width:92px}
.log-edit-btn{white-space:nowrap}

@media(max-width:1180px){
  .directory-filterbar{grid-template-columns:repeat(3,minmax(150px,1fr))}
  .stake-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:850px){
  .directory-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bpe-table-head{flex-direction:column}
  .bpe-table-head>.buttonrow{width:100%;justify-content:flex-start}
  .bpe-table-tools{grid-template-columns:1fr!important}
  #stakes .section-head{align-items:flex-start;flex-direction:column}
  .stakes-page-actions{justify-content:flex-start;width:100%}
}
@media(max-width:600px){
  .directory-search-line{grid-template-columns:1fr}
  .directory-count{justify-self:start}
  .directory-filterbar{grid-template-columns:1fr}
  .directory-secondary-actions-menu{align-items:stretch;flex-direction:column}
  .directory-secondary-actions-menu p{margin:4px 0 0}
  .stake-filters{grid-template-columns:1fr!important}
}


/* --- VizuRisk v0.1.38 : fond IGN de l’emprise d’accueil --- */
#homeExtentMap{
  background:#e9eef1;
}
#homeExtentMap .leaflet-tile-pane{
  opacity:1;
}


/* --- VizuRisk v0.1.39 : référent d'action issu du compte lié à la cellule --- */
.field-hint{
  display:block;
  margin-top:4px;
  color:#718692;
  font-size:9.5px;
  font-weight:500;
  line-height:1.35;
}
#actionOwnerInput.auto-filled{
  background:#f3f8fa;
  border-color:#bdd4df;
}


/* --- VizuRisk v0.1.40 : Poste de commandement --- */
.command-post-head{
  align-items:flex-start;
}
.command-post-note{
  margin:0 0 14px;
  padding:9px 11px;
  border:1px solid #dce7ec;
  border-radius:9px;
  background:#f8fafb;
  color:#5d7480;
  font-size:10.5px;
}
.command-post-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:12px;
}
.command-post-card{
  min-width:0;
  padding:15px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.command-post-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  padding-bottom:11px;
  border-bottom:1px solid #e6ecef;
}
.command-post-card-head h3{
  margin:3px 0 0;
  color:var(--ink);
  font-size:16px;
  line-height:1.25;
}
.command-post-card-head .chip{
  flex:0 0 auto;
  max-width:46%;
  white-space:normal;
  text-align:center;
}
.command-post-section{
  padding-top:12px;
}
.command-post-section-title{
  margin-bottom:5px;
  color:#607681;
  font-size:9.5px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.command-post-section p{
  margin:0;
  color:#334f5e;
  font-size:12px;
  line-height:1.5;
}
.command-post-contact{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
}
.command-post-contact strong{
  color:#16394a;
  font-size:12.5px;
}
.command-post-contact span,
.command-post-contact a{
  font-size:11.5px;
}
.command-post-contact small{
  margin-top:3px;
  color:#81939c;
  font-size:9.5px;
}
.command-post-cell-email{
  margin-top:3px;
  color:#677e89;
}
@media(max-width:680px){
  .command-post-grid{grid-template-columns:1fr}
  .command-post-card-head{flex-direction:column}
  .command-post-card-head .chip{max-width:100%}
}


/* --- VizuRisk v0.1.41 : création d’événement séparée de l’événement en cours --- */
.dashboard-page-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin:0 0 10px;
}
.dashboard-new-event-btn{
  min-height:38px;
  padding:8px 14px;
  font-size:12px;
}
.dashboard-event-actions{
  align-self:center;
}
@media(max-width:650px){
  .dashboard-page-actions{justify-content:stretch}
  .dashboard-new-event-btn{width:100%}
}


/* --- VizuRisk v0.1.42 : Main courante factuelle -> Action liée si nécessaire --- */
.log-action-required{
  margin:12px 0;
  padding:11px 12px;
  border:1px solid #dbe5ea;
  border-radius:10px;
  background:#f8fafb;
}
.log-action-required legend{
  padding:0 5px;
  color:#294c5c;
  font-size:11.5px;
  font-weight:800;
}
.log-action-required .choice-pill{
  display:inline-flex;
  align-items:center;
  margin:4px 6px 4px 0;
  cursor:pointer;
}
.log-action-required .choice-pill input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.log-action-required .choice-pill span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  min-height:32px;
  padding:5px 12px;
  border:1px solid #cfdce2;
  border-radius:999px;
  background:#fff;
  color:#45616f;
  font-size:11px;
  font-weight:750;
}
.log-action-required .choice-pill input:checked+span{
  border-color:#6fa8c3;
  background:#eaf4f8;
  color:#155b7b;
  box-shadow:0 0 0 2px rgba(56,134,170,.08);
}
.log-action-required p{margin:6px 0 0;font-size:10px}
.log-entry-author{
  margin-top:8px;
  padding:8px 10px;
  border-radius:8px;
  background:#f4f7f9;
  color:#657c87;
  font-size:10.5px;
}
.log-action-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 7px;
  border-radius:999px;
  font-size:10px;
  font-weight:750;
  white-space:nowrap;
}
.log-action-chip.yes{background:#fff0f1;color:#a33745}
.log-action-chip.no{background:#eef5f2;color:#37695a}
.log-linked-action{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  align-items:center;
}
.log-table{min-width:1040px}
.log-table td,.log-table th{vertical-align:middle}
.action-source-chip{
  background:#eef4f7!important;
  color:#476573!important;
}


/* --- VizuRisk v0.1.43 : filtres territoriaux dédiés à la requête BPE --- */
.bpe-query-grid{
  display:grid;
  grid-template-columns:minmax(210px,.9fr) minmax(210px,.9fr) minmax(260px,1.2fr) minmax(240px,1fr);
  gap:10px;
  align-items:end;
  padding:14px 18px 10px;
}
.bpe-query-grid label{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
  margin:0;
  color:#536c78;
  font-size:10px;
  font-weight:800;
  letter-spacing:.03em;
}
.bpe-query-grid select,
.bpe-query-grid input{
  width:100%;
  min-width:0;
  max-width:none;
}
.bpe-query-grid select{
  text-overflow:ellipsis;
}
@media(max-width:1250px){
  .bpe-query-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:680px){
  .bpe-query-grid{
    grid-template-columns:1fr;
    padding-inline:12px;
  }
}


/* --- VizuRisk v0.1.44 : suppression des barres de défilement horizontales --- */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:hidden!important;
}
.shell{
  width:100%;
  max-width:100vw;
  min-width:0;
  overflow-x:hidden;
}
.content{
  min-width:0;
  max-width:min(1500px,calc(100vw - 230px));
  overflow-x:hidden;
}
.view,
.view.active,
.panel,
.phase-card,
.hero,
.section-head{
  min-width:0;
  max-width:100%;
}
.tablewrap{
  width:100%;
  max-width:100%;
}

/* La BPE s'adapte au conteneur : pas de barre horizontale. */
.bpe-table-wrap{
  overflow-x:hidden!important;
}
.bpe-data-table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed;
}
.bpe-data-table th,
.bpe-data-table td{
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  vertical-align:top;
}
.bpe-data-table th:nth-child(1){width:18%}
.bpe-data-table th:nth-child(2){width:15%}
.bpe-data-table th:nth-child(3){width:14%}
.bpe-data-table th:nth-child(4){width:12%}
.bpe-data-table th:nth-child(5){width:21%}
.bpe-data-table th:nth-child(6){width:10%}
.bpe-data-table th:nth-child(7){width:10%}
.bpe-data-table button{
  max-width:100%;
  white-space:normal;
}

/* Annuaire et main courante : fluides sur écran courant, sans élargir toute la page. */
.directory-table-wrap,
#log .tablewrap{
  overflow-x:hidden;
}
.directory-table,
.log-table{
  width:100%;
  min-width:0!important;
  table-layout:fixed;
}
.directory-table th,
.directory-table td,
.log-table th,
.log-table td{
  white-space:normal;
  overflow-wrap:anywhere;
}

/* Sur écrans plus étroits, les informations secondaires passent sous la ligne
   sans créer de défilement horizontal. */
@media(max-width:1050px){
  .directory-table th:nth-child(7),
  .directory-table td:nth-child(7){
    display:none;
  }
  .bpe-data-table th:nth-child(5){width:18%}
  .bpe-data-table th:nth-child(1){width:21%}
}
@media(max-width:900px){
  .content{
    max-width:100vw;
  }
  .bpe-data-table th:nth-child(2),
  .bpe-data-table td:nth-child(2){
    display:none;
  }
  .bpe-data-table th:nth-child(1){width:26%}
  .bpe-data-table th:nth-child(3){width:18%}
  .bpe-data-table th:nth-child(4){width:16%}
  .bpe-data-table th:nth-child(5){width:22%}
  .bpe-data-table th:nth-child(6){width:10%}
  .bpe-data-table th:nth-child(7){width:8%}
}
@media(max-width:680px){
  .bpe-data-table th:nth-child(3),
  .bpe-data-table td:nth-child(3),
  .bpe-data-table th:nth-child(5),
  .bpe-data-table td:nth-child(5){
    display:none;
  }
  .bpe-data-table th:nth-child(1){width:38%}
  .bpe-data-table th:nth-child(4){width:24%}
  .bpe-data-table th:nth-child(6){width:20%}
  .bpe-data-table th:nth-child(7){width:18%}

  .directory-table th:nth-child(2),
  .directory-table td:nth-child(2),
  .directory-table th:nth-child(3),
  .directory-table td:nth-child(3),
  .directory-table th:nth-child(6),
  .directory-table td:nth-child(6){
    display:none;
  }

  .log-table th:nth-child(1),
  .log-table td:nth-child(1),
  .log-table th:nth-child(4),
  .log-table td:nth-child(4),
  .log-table th:nth-child(6),
  .log-table td:nth-child(6){
    display:none;
  }
}


/* --- VizuRisk v0.1.45 : barre d’outils cartographique allégée --- */
.map-toolbar{
  min-height:0;
  padding-top:5px;
  padding-bottom:5px;
  gap:5px;
}
.map-toolbar-btn{
  min-height:32px;
  padding-top:5px;
  padding-bottom:5px;
}


/* --- VizuRisk v0.1.46 : recherche BPE après les critères + résultats compacts --- */
.bpe-query-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 18px 10px;
  border-bottom:1px solid #edf1f3;
  background:#f8fafb;
}
.bpe-query-actions .bpe-table-status{
  flex:1;
  min-width:0;
  padding:0;
}
.bpe-search-btn{
  flex:0 0 auto;
  min-width:180px;
}

/* Tableau BPE : densité opérationnelle */
.bpe-table-wrap{
  max-height:560px;
}
.bpe-data-table thead th{
  padding:7px 8px!important;
  font-size:10.5px!important;
  line-height:1.15;
}
.bpe-data-table tbody td{
  padding:5px 8px!important;
  font-size:10.5px!important;
  line-height:1.18;
}
.bpe-data-table tbody tr{
  height:auto;
}
.bpe-data-table .bpe-name-cell{
  font-size:10.8px!important;
  line-height:1.15;
}
.bpe-data-table .bpe-type-cell,
.bpe-data-table .bpe-address-cell{
  line-height:1.15;
}
.bpe-data-table .muted{
  font-size:9.5px;
}
.bpe-category-pill,
.bpe-priority-pill{
  padding:2px 5px!important;
  border-radius:6px!important;
  font-size:9px!important;
  line-height:1.15;
  white-space:normal!important;
}
.bpe-table-actions{
  gap:3px!important;
}
.bpe-table-actions .small{
  min-height:26px!important;
  padding:3px 6px!important;
  font-size:9.5px!important;
  line-height:1.1;
}
.bpe-table-pagination{
  padding:7px 12px 9px!important;
}
.bpe-table-pagination .small{
  min-height:28px;
  padding:4px 8px;
}
@media(max-width:760px){
  .bpe-query-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .bpe-search-btn{
    width:100%;
  }
}


/* --- VizuRisk v0.1.47 : cliquer sur un équipement BPE pour le modifier --- */
.bpe-result-row{
  cursor:pointer;
  transition:background .12s ease, box-shadow .12s ease;
}
.bpe-result-row:hover{
  background:#f6fafc;
}
.bpe-result-row:focus-visible{
  outline:2px solid #76a8be;
  outline-offset:-2px;
}
.bpe-result-row:hover .bpe-name-button,
.bpe-name-button:focus-visible{
  color:#0f6691;
  text-decoration:underline;
}
.bpe-name-button{
  display:inline;
  width:auto;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#203e4d;
  font:inherit;
  font-weight:750;
  line-height:inherit;
  text-align:left;
  cursor:pointer;
}
.bpe-name-button:hover{
  background:transparent;
}


/* --- VizuRisk v0.1.48 : fenêtres de saisie toujours contenues dans l’écran --- */
dialog{
  box-sizing:border-box;
  max-height:calc(100dvh - 20px)!important;
  margin:auto;
  overflow:hidden!important;
}
dialog > form{
  box-sizing:border-box;
  width:100%;
  max-height:calc(100dvh - 20px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding:16px 18px 0!important;
}
dialog > form > .dialog-title{
  position:sticky;
  top:-16px;
  z-index:8;
  margin:-16px -18px 8px;
  padding:16px 18px 10px;
  background:#fff;
  border-bottom:1px solid #edf1f3;
}
dialog > form > .dialog-actions{
  position:sticky;
  bottom:0;
  z-index:8;
  margin:10px -18px 0!important;
  padding:10px 18px 12px;
  background:linear-gradient(to bottom,rgba(255,255,255,.96),#fff 35%);
  border-top:1px solid #e7edf0;
  box-shadow:0 -7px 16px rgba(24,58,75,.06);
}

/* Dialogues sans balise form directe (ex. emprise d'accueil). */
dialog:not(:has(> form)){
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-bottom:0;
}
dialog:not(:has(> form)) > .dialog-title{
  position:sticky;
  top:0;
  z-index:8;
  background:#fff;
  padding-bottom:10px;
  border-bottom:1px solid #edf1f3;
}
dialog:not(:has(> form)) > .dialog-actions{
  position:sticky;
  bottom:0;
  z-index:8;
  padding:10px 0 12px;
  margin-bottom:0;
  background:#fff;
  border-top:1px solid #e7edf0;
}

/* Les longues fiches sont un peu plus denses pour limiter le besoin de défilement. */
#meanDialog form,
#stakeDialog form,
#pciCellDialog form,
#bpeDialog form,
#hazardDialog form{
  gap:8px;
}
#meanDialog textarea,
#stakeDialog textarea,
#pciCellDialog textarea,
#bpeDialog textarea,
#hazardDialog textarea{
  min-height:68px;
}
#meanDialog .form-grid,
#stakeDialog .form-grid,
#pciCellDialog .form-grid,
#bpeDialog .form-grid,
#hazardDialog .form-grid{
  gap:8px;
}
#meanDialog .reference-note{
  margin:0 0 2px;
}

/* Boutons toujours entièrement visibles sur les petits écrans. */
@media(max-height:760px){
  dialog > form{
    padding-top:12px!important;
  }
  dialog > form > .dialog-title{
    top:-12px;
    margin:-12px -18px 6px;
    padding-top:12px;
    padding-bottom:8px;
  }
  dialog > form > .dialog-actions{
    padding-top:8px;
    padding-bottom:9px;
  }
  dialog h3{
    margin-bottom:5px;
  }
  dialog input,
  dialog select{
    padding-top:8px;
    padding-bottom:8px;
  }
}

/* v0.2.1: authenticated UI bridge for server-side operational data. */

/* v0.2.1 — authentification serveur et passerelle API métier */
.auth-gate{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:24px;background:rgba(7,24,39,.86);backdrop-filter:blur(7px)}
.auth-gate[hidden]{display:none!important}
.auth-card{width:min(440px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.auth-card h2{margin:.25rem 0 .5rem}.auth-card form{display:grid;gap:14px;margin:20px 0 12px}.auth-card label{display:grid;gap:6px;font-weight:600}.auth-card input{width:100%}.auth-card .primary{width:100%;min-height:44px}.auth-error{padding:10px 12px;border-radius:10px;background:#fff1f1;color:#8a1f1f;font-size:.92rem}.server-sync-badge{font-variant-numeric:tabular-nums}
body.auth-locked{overflow:hidden}.auth-locked .shell,.auth-locked .topbar{filter:blur(1px);pointer-events:none;user-select:none}

/* v0.2.5 — coordination intercommunale et partage cartographique */
.crisis-coordination-panel{margin:0 0 18px}.section-head.compact{margin-bottom:8px}.coordination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.coordination-list{display:grid;gap:8px;margin-top:8px}.coordination-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line,#dce4ea);border-radius:10px;background:#fff}.coordination-item.linked{background:#f5f9fc}.coordination-item>div{display:grid;gap:2px;min-width:0}.coordination-item span{font-size:.88rem;color:var(--muted,#637483);white-space:normal}.report-sharing-grid{align-items:end}.report-sensitive-line{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 0}.report-sensitive-line input{width:auto;margin:0}.report-map-icon .chip{font-size:.72rem}
@media(max-width:820px){.coordination-grid{grid-template-columns:1fr}.coordination-item{align-items:flex-start;flex-direction:column}.coordination-item button{align-self:flex-end}}

.coordination-alert{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px;padding:12px 14px;border:1px solid #b9d3e5;border-radius:12px;background:#eef7fc}.coordination-alert>div{display:grid;gap:3px}.coordination-alert span{color:var(--muted,#637483);font-size:.9rem}.coordination-alert[hidden]{display:none}@media(max-width:680px){.coordination-alert{align-items:flex-start;flex-direction:column}.coordination-alert button{align-self:flex-end}}

/* v0.2.6 — diffusion des signalements et crise multi-communes */
.report-sharing-block{
  margin:4px 0 12px;
  padding:12px 14px 10px;
  border:1px solid var(--line,#dce4ea);
  border-radius:12px;
  background:#f8fbfd;
}
.report-sharing-block legend{padding:0 6px;font-weight:800;color:var(--ink,#142434)}
.report-sharing-options{display:grid;gap:7px;margin:2px 0 10px}
.report-sharing-choice{
  display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border:1px solid #d8e2e9;border-radius:10px;background:#fff;cursor:pointer;
}
.report-sharing-choice:has(input:checked){border-color:#3986b8;box-shadow:0 0 0 1px #3986b8;background:#f3f9fd}
.report-sharing-choice.is-disabled{opacity:.55;cursor:not-allowed;background:#f4f5f6}
.report-sharing-choice input{width:auto;margin:3px 0 0;flex:0 0 auto}
.report-sharing-choice span{display:grid;gap:2px;min-width:0}
.report-sharing-choice small{font-weight:400;color:var(--muted,#637483);line-height:1.25}
.report-sensitive-line{margin-top:5px;padding:8px 10px;border-radius:8px;background:#fff5f2;border:1px solid #f0d6cf}
.coordination-bulk{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px dashed #b9cbd8;border-radius:10px;background:#f8fbfd}
.coordination-bulk label{display:flex;align-items:center;gap:7px;font-size:.88rem;font-weight:700}
.coordination-bulk input,.coordination-candidate-main>input{width:auto;margin:0}
.coordination-candidate-main{display:flex;align-items:center;gap:9px;min-width:0}
.coordination-candidate-main>div{display:grid;gap:2px;min-width:0}
@media (max-width:700px){.coordination-bulk{align-items:stretch;flex-direction:column}.coordination-bulk .small{width:100%}}

/* v0.2.7 — signalements catégorisés, cycle de vie RETEX et moyens opérationnels */
.report-context-fields{display:grid;gap:10px;margin:2px 0 12px;padding:12px;border:1px solid var(--line,#dce4ea);border-radius:12px;background:#f8fbfd}
.report-context-fields:empty{display:none}
.report-context-head{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--ink,#142434)}
.report-context-fields .form-grid{margin:0}
.report-category-emoji{font-size:17px;line-height:1}
.report-map-icon .report-map-marker{font-size:17px;line-height:1}
.report-map-icon .report-map-marker.is-resolved{opacity:.62;filter:grayscale(.45)}
.report-popup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}
.report-popup-category{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:800}
.report-popup-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.report-popup-context{display:grid;gap:3px;margin-top:7px;font-size:.83rem}
.report-popup-context div{display:flex;gap:5px;justify-content:space-between;border-top:1px solid #edf1f3;padding-top:4px}
.report-popup-context span:first-child{font-weight:700}
.report-status-chip,.mean-status-chip{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:999px;border:1px solid #d4dde3;background:#f7f9fa;font-size:.72rem;font-weight:800;white-space:nowrap}
.report-status-chip.is-resolved,.mean-status-chip.is-returned{background:#f2f4f5;color:#56636d}
.mean-status-chip.is-requested{background:#fff8e6;border-color:#eed9a0}
.mean-status-chip.is-engaged{background:#eef7fc;border-color:#b9d3e5}
#meanOperationalFields{display:grid;gap:10px}
#meanOperationalFields .reference-note{margin-top:0}
.retex-summary-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
@media(max-width:700px){.report-popup-actions .small{flex:1 1 auto}.report-popup-context div{display:grid;gap:1px}}

/* --- VizuRisk v0.2.8 : ergonomie cartographique, signalements et analyse d’emprise --- */
.map-topbar{
  flex-wrap:nowrap;
  overflow:visible;
}
.map-fullscreen-inline{
  flex:0 0 auto;
  min-width:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* Les choix de diffusion masqués doivent réellement disparaître même si le label est en display:flex. */
.report-sharing-choice[hidden]{display:none!important}

/* Signalements : triangle d’alerte à contour rouge + symbole métier. */
.report-category-triangle{
  display:inline-flex;
  width:30px;
  height:28px;
  align-items:center;
  justify-content:center;
  color:#b22036;
  vertical-align:middle;
}
.report-category-triangle svg{
  display:block;
  width:30px;
  height:28px;
  overflow:visible;
}
.report-category-triangle .triangle-shell{
  fill:#fff;
  stroke:#d51f36;
  stroke-width:2.15;
  vector-effect:non-scaling-stroke;
}
.report-map-icon{background:transparent!important;border:0!important}
.report-map-marker{
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  filter:drop-shadow(0 1px 2px rgba(41,32,35,.24));
}
.report-map-marker.is-resolved{opacity:.52;filter:grayscale(.45) drop-shadow(0 1px 2px rgba(41,32,35,.18))}
.report-map-marker .report-category-emoji{display:flex;align-items:center;justify-content:center;font-size:inherit;line-height:1}
.report-category-tooltip{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
}
.report-category-tooltip::before{display:none!important}

/* Analyse d’emprise. */
.map-analysis-collapsible{position:relative}
.map-analysis-popover{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  width:min(390px,calc(100vw - 32px));
  z-index:986;
  background:rgba(255,255,255,.99);
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 12px 34px rgba(14,42,64,.20);
  padding:12px;
}
.map-analysis-popover.collapsed{display:none}
.analysis-actions{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0}
.analysis-status{
  padding:8px 10px;
  border:1px solid #cddbe3;
  border-radius:8px;
  background:#f5f9fb;
  color:#294653;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.analysis-status.error{border-color:#e5b7bc;background:#fff5f5;color:#8d1e2f}
.analysis-results{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}
.analysis-results[hidden]{display:none!important}
.analysis-metric{
  min-width:0;
  padding:9px 10px;
  border:1px solid #dce6ec;
  border-radius:9px;
  background:#fff;
  display:grid;
  gap:2px;
}
.analysis-metric-wide{grid-column:1 / -1}
.analysis-metric span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:750}
.analysis-metric strong{font-size:20px;line-height:1.1;color:var(--navy)}
.analysis-metric small{font-size:10.5px;line-height:1.25;color:var(--muted)}
.analysis-footnote{margin-top:9px;font-size:10.5px;line-height:1.35;color:var(--muted)}
.map-workspace.analysis-active #mapCanvas{cursor:crosshair}

.mean-auto-owner{
  display:grid;
  gap:3px;
  align-content:center;
  min-height:62px;
  padding:9px 11px;
  border:1px solid #dce6ec;
  border-radius:9px;
  background:#f7fafc;
}
.mean-auto-owner>span{font-size:11px;font-weight:750;color:var(--muted)}
.mean-auto-owner>strong{font-size:13px;color:var(--ink)}
.mean-auto-owner>small{font-size:10.5px;color:var(--muted)}

@media(max-width:760px){
  .analysis-results{grid-template-columns:1fr}
  .analysis-metric-wide{grid-column:auto}
  .map-analysis-popover{position:fixed;left:8px;right:8px;top:88px;width:auto;max-width:none}
}

#reportStatusField[hidden]{display:none!important}

@media(max-width:800px){
  .map-topbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
}

/* --- VizuRisk v0.2.9 : pilotage, enjeux unifiés et interface compacte --- */
.topbar-brand{gap:12px;min-width:0}
.topbar-product{display:grid;gap:1px;min-width:0}
.topbar-product .eyebrow{letter-spacing:.075em}
.product-by{font-weight:600;opacity:.78;text-transform:none;letter-spacing:0}
.topbar-territory{
  min-width:0;max-width:300px;padding-left:12px;border-left:1px solid rgba(255,255,255,.23);
  color:#d9e8f0;font-size:11px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.connection-state-hidden{display:none!important}
.logout-compact{display:inline-flex!important;align-items:center;gap:5px;padding:5px 8px!important;font-size:10px!important;opacity:.86}
.logout-compact[hidden]{display:none!important}
.version-badge{font-size:9.5px!important;opacity:.76}

/* Barre cartographique : une seule ligne sur les écrans de travail. */
.map-topbar{
  flex-wrap:nowrap!important;align-items:center!important;min-height:42px!important;padding:5px 6px!important;gap:5px!important;
}
.map-topbar>*{flex:0 0 auto;min-width:0}
.map-toolbar-btn{min-height:32px;padding:6px 8px;font-size:11px}
.basemap-main-toggle{max-width:168px}
.basemap-main-toggle .basemap-summary{display:none!important}
.map-fullscreen-inline{min-width:34px!important;width:34px;padding:5px!important}
.map-export-toggle,.map-measure-toggle,.map-analysis-toggle,.address-search-toggle{padding-inline:8px!important}
@media(min-width:801px){.map-topbar{overflow:visible!important}}
@media(max-width:800px){
  .map-topbar{overflow-x:auto!important;overflow-y:visible!important;scrollbar-width:thin}
  .topbar-territory{max-width:180px}
}

/* Signalements : Leaflet ne doit plus dessiner de cartouche blanc autour du triangle. */
.leaflet-div-icon.report-map-icon,
.report-map-icon,
.report-map-icon .report-map-marker{
  background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;
}
.report-map-icon .report-map-marker{width:32px!important;height:32px!important;padding:0!important}
.report-map-icon .report-category-triangle{filter:drop-shadow(0 1px 2px rgba(41,32,35,.18))}

/* Actions : statut et priorité sont deux axes visuels distincts. */
.action-status-chip{border-width:1px!important}
.action-status-todo{background:#fff0f0!important;border-color:#e7aaaa!important;color:#a42020!important}
.action-status-progress{background:#fff6e9!important;border-color:#e9c58d!important;color:#9a5a00!important}
.action-status-abandoned{background:#f1f3f4!important;border-color:#cdd3d7!important;color:#65717a!important}
.action-status-done{background:#edf8f1!important;border-color:#acd5b9!important;color:#287344!important}
.action-priority-chip{font-weight:800}
.priority-critical{background:#841b27!important;border-color:#841b27!important;color:#fff!important}
.priority-high{background:#fff0f0!important;border-color:#e7aaaa!important;color:#a42020!important}
.priority-normal{background:#f2f6f8!important;border-color:#d6e0e5!important;color:#46616e!important}
.priority-low{background:#fff!important;border-color:#dce4e8!important;color:#72838d!important}

/* Poste de commandement : cellules visuelles et modifiables, sans codes M1/M2 visibles. */
.command-post-identity{display:flex;align-items:flex-start;gap:10px;min-width:0}
.command-post-icon{
  width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;
  background:#eef5f8;border:1px solid #d7e4ea;color:#174b68;font-size:18px;font-weight:800
}
.command-post-function{display:block;margin-top:3px;color:#6a7e89;font-size:10.5px;font-weight:700}
.command-post-card-head>.small{flex:0 0 auto}

/* BPE/Enjeux : pictogrammes par famille plutôt que points génériques. */
.bpe-div-icon{background:transparent!important;border:0!important}
.bpe-picto-marker{
  width:28px;height:28px;display:grid;place-items:center;border-radius:50% 50% 50% 8px;
  transform:rotate(-45deg);background:var(--bpe-color,#536d79);border:2px solid #fff;
  box-shadow:0 2px 7px rgba(25,47,60,.28);color:#fff
}
.bpe-picto-marker span{transform:rotate(45deg);font-size:13px;line-height:1;font-weight:850}
.bpe-picto-marker.health span{font-size:15px}
.stakes-bpe-subgroup{margin-top:7px;padding-top:7px;border-top:1px dashed #dce5ea}
.reference-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin:10px 0}
.reference-status-card{display:grid;gap:2px;padding:9px 10px;border:1px solid #dbe5ea;border-radius:9px;background:#f8fafb}
.reference-status-card strong{color:#183e53;font-size:12px}
.reference-status-card span{font-size:11px;color:#4f6875}
.reference-status-card small{font-size:9.5px;color:#7a8d96}
.reference-import-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.reference-import-row>label:first-child{max-width:150px}

@media(max-width:900px){
  .topbar-territory{display:none}
  .topbar-product h1{display:none}
}

/* --- VizuRisk v0.2.9 : pilotage PCI, enjeux unifiés et ergonomie --- */
.connection-state-hidden{display:none!important}
.topbar-product{min-width:0}
.product-by{font-size:.78em;font-weight:650;letter-spacing:0;text-transform:none;opacity:.78}
.topbar-territory{
  min-width:0;max-width:300px;padding-left:15px;margin-left:4px;border-left:1px solid rgba(255,255,255,.2);
  color:#fff;font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.logout-compact{display:inline-flex!important;align-items:center;gap:5px;padding:5px 8px!important;font-size:10.5px!important;font-weight:650!important;opacity:.88}
.logout-compact span:first-child{font-size:14px;line-height:1}

/* Barre carte : une ligne compacte sur écran large. */
.map-topbar{align-items:center!important;flex-wrap:nowrap!important;gap:5px!important;padding:5px!important;min-height:42px!important}
.map-toolbar-btn{padding:7px 8px!important;font-size:11px!important;min-height:32px}
.basemap-collapsible{flex:0 0 auto!important;min-width:0!important}
.basemap-main-toggle{max-width:160px!important}
.basemap-main-toggle .basemap-summary{display:none!important}
.map-export-collapsible{margin-left:0!important}

/* Signalements : aucun cartouche carré autour du triangle métier. */
.report-map-icon,
.report-map-icon .report-map-marker,
.report-map-marker{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:0!important;
}
.report-map-icon .report-map-marker{width:32px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.report-map-marker .report-category-emoji{background:transparent!important;border:0!important;box-shadow:none!important}
.report-category-triangle .triangle-shell{fill:rgba(255,255,255,.94)}

/* Actions : statut métier et priorité restent deux informations distinctes. */
.action-status-chip{border-width:1px;font-weight:800}
.action-status-todo{background:#fff1f1!important;border-color:#efb0b0!important;color:#a72020!important}
.action-status-progress{background:#fff5e6!important;border-color:#efc27c!important;color:#a75b00!important}
.action-status-abandoned{background:#f1f3f4!important;border-color:#ccd2d6!important;color:#606a70!important}
.action-status-done{background:#ecf8f0!important;border-color:#a9d9b7!important;color:#23723b!important}
.action-priority-chip{background:#fff;border-color:#d6dfe4;color:#425967;font-weight:750}
.action-priority-chip.priority-critical{border-color:#d99aa4;color:#961b32;background:#fff5f6}
.action-priority-chip.priority-high{border-color:#e6c18a;color:#8e5600;background:#fffaf0}
.action-priority-chip.priority-low{color:#71808a;background:#f7f9fa}

/* Poste de commandement : le code technique M1/M2 reste invisible. */
.command-post-identity{display:flex;align-items:flex-start;gap:10px;min-width:0}
.command-post-icon{
  width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:9px;
  background:#eef5f8;border:1px solid #cfdee6;color:#174b65;font-size:18px;font-weight:800
}
.command-post-card-head h3{margin:0 0 2px}
.command-post-card-head>.small{flex:0 0 auto}

/* Enjeux : BPE intégré à la même famille et pictogrammes plus lisibles. */
.stakes-bpe-subgroup{margin:8px 0 4px;padding:8px;border:1px solid #dce6eb;border-radius:9px;background:#f8fafb}
.stakes-bpe-subhead{display:grid;gap:1px;margin-bottom:5px;color:#385361}
.stakes-bpe-subhead strong{font-size:11px}.stakes-bpe-subhead small{font-size:9px;color:var(--muted)}
.bpe-div-icon{background:transparent!important;border:0!important}
.bpe-picto-marker{
  width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:#fff;
  border:2px solid var(--bpe-color,#657d89);color:var(--bpe-color,#657d89);font-size:13px;font-weight:900;
  box-shadow:0 1px 5px rgba(18,45,60,.22)
}
.bpe-picto-marker.health{border-radius:50%}
.bpe-picto-marker.transport{transform:rotate(0deg)}
.stake-symbol.habitants{background:#e8f5ef;color:#20714f}.stake-symbol.logements{background:#eef4fa;color:#365f84}

.reference-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:8px 0 12px}
.reference-status-card{display:grid;gap:3px;padding:10px 12px;border:1px solid #dce6eb;border-radius:9px;background:#f8fafb}
.reference-status-card strong{font-size:12px;color:#173e52}.reference-status-card span{font-size:11px}.reference-status-card small{font-size:9.5px;color:var(--muted)}
.reference-import-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.reference-import-row>label:first-child{max-width:150px}

@media(max-width:1100px){
  .topbar-territory{max-width:210px}
  .map-topbar{overflow-x:auto!important;overflow-y:visible!important;scrollbar-width:thin}
}
@media(max-width:760px){
  .topbar-territory{display:none}.product-by{display:none}.logout-compact span:last-child{display:none}
  .basemap-main-toggle{max-width:none!important}
}
.analysis-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:10px 0 12px}
.analysis-reference-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.analysis-reference-import-status{margin-top:9px;padding:8px 10px;border-radius:8px;background:#f6f9fa;border:1px solid #e0e8ec;font-size:10.5px}
@media(max-width:850px){.analysis-reference-grid{grid-template-columns:1fr}}

/* --- VizuRisk v0.2.10 : ergonomie cartographique et bandeau --- */
.topbar{
  min-height:76px;height:auto;padding:10px 22px;
}
.topbar-brand{align-items:center!important;min-width:0}
.topbar-product{display:grid!important;gap:3px!important;min-width:0}
.topbar-product h1{display:block!important;margin:0!important;font-size:19px;line-height:1.15}
.topbar-territory{
  display:block!important;margin:0!important;padding:0!important;border:0!important;
  max-width:460px!important;color:#d8e8f0!important;font-size:11px!important;font-weight:720!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.top-actions-stack{display:grid;justify-items:end;gap:2px;min-width:0}
.top-actions-stack .top-actions{gap:8px;justify-content:flex-end}
.topbar-signature{
  padding-right:3px;color:#d7e5ec;font-size:10px;font-weight:760;letter-spacing:.015em;line-height:1.1;
  white-space:nowrap
}
.topbar-signature span{font-weight:560;opacity:.82}
.logout-compact{padding:4px 7px!important;font-size:9.5px!important}
.logout-compact span:first-child{font-size:13px!important}

/* Recherche d'adresse directement saisissable dans la barre. */
.address-search-collapsible{position:relative;display:flex;align-items:center;flex:0 1 265px!important;min-width:205px!important}
.address-search-inline{
  width:100%;height:32px;display:flex;align-items:center;gap:6px;padding:0 8px;
  border:1px solid #d7e1e7;border-radius:8px;background:#fff;color:var(--ink);
  transition:border-color .12s ease,box-shadow .12s ease,background .12s ease
}
.address-search-inline:focus-within{border-color:#86a8bb;box-shadow:0 0 0 2px rgba(31,91,130,.10);background:#fff}
.address-search-inline-icon{font-size:14px;color:#526b78;flex:0 0 auto;line-height:1}
.address-search-inline input{
  width:100%;min-width:0;border:0!important;background:transparent!important;padding:0!important;margin:0!important;
  outline:0!important;box-shadow:none!important;font-size:11.5px!important;color:var(--ink)!important
}
.address-search-inline input::placeholder{color:#6f818b;opacity:1}
.address-search-popover{left:0!important;width:420px!important;max-width:min(420px,calc(100vw - 24px))!important}
.address-search-results-only{padding-top:7px!important}
.address-search-status{margin-top:0!important}

/* Dessiner doit être visuellement au même niveau que les autres outils. */
.map-draw-btn{
  color:var(--ink)!important;background:#fff!important;border-color:#d7e1e7!important
}
.map-draw-btn:hover{background:#f0f5f8!important;border-color:#d7e1e7!important;color:var(--ink)!important}
.map-draw-btn.active{background:var(--navy)!important;border-color:var(--navy)!important;color:#fff!important}

/* Signalements : triangle lisible, pictogramme intérieur simplifié et fortement contrasté. */
.report-category-triangle{width:34px!important;height:32px!important;color:#173f55!important}
.report-category-triangle svg{width:34px!important;height:32px!important}
.report-category-triangle .triangle-shell{
  fill:#fff!important;stroke:#cf1f36!important;stroke-width:2.35!important;vector-effect:non-scaling-stroke
}
.report-category-triangle .report-inner{color:#173f55!important}
.report-category-triangle .report-inner path,
.report-category-triangle .report-inner circle{vector-effect:non-scaling-stroke}
.report-map-icon .report-map-marker{width:36px!important;height:36px!important}
.report-map-icon .report-category-triangle{filter:drop-shadow(0 1px 1.5px rgba(41,32,35,.17))}

/* Enjeux issus de la BPE : symboles plus petits pour réduire la saturation cartographique. */
.bpe-picto-marker{
  width:20px!important;height:20px!important;border-width:1.5px!important;border-radius:6px!important;
  font-size:10px!important;box-shadow:0 1px 3px rgba(18,45,60,.18)!important
}
.bpe-picto-marker span{font-size:10px!important;line-height:1!important}
.bpe-picto-marker.health{border-radius:50%!important}

/* Analyse : fenêtre flottante déplaçable sur PC, réductible et non bloquante. */
.map-analysis-collapsible{position:static!important}
.map-analysis-popover{
  position:fixed!important;top:138px;right:24px;left:auto;width:min(390px,calc(100vw - 32px));z-index:1100;
  padding:0!important;overflow:hidden;user-select:auto
}
.map-analysis-popover .analysis-drag-handle{
  padding:10px 11px;border-bottom:1px solid var(--line);background:#f8fafb;cursor:grab;touch-action:none;user-select:none
}
.map-analysis-popover.is-dragging .analysis-drag-handle{cursor:grabbing}
.analysis-window-actions{display:flex;align-items:center;gap:4px}
.analysis-minimize-btn{font-size:16px!important;font-weight:800!important}
.analysis-panel-content{padding:11px 12px 12px}
.map-analysis-popover.minimized{width:260px!important}
.map-analysis-popover.minimized .analysis-panel-content{display:none!important}
.map-analysis-popover.minimized .analysis-drag-handle{border-bottom:0}

@media(max-width:1100px){
  .address-search-collapsible{flex-basis:225px!important;min-width:180px!important}
}
@media(max-width:900px){
  .topbar-product h1{font-size:16px}
  .topbar-territory{max-width:260px!important}
  .topbar-signature{font-size:9.5px}
}
@media(max-width:760px){
  .topbar-territory{display:block!important;max-width:190px!important;font-size:9.5px!important}
  .topbar-signature{display:none}
  .address-search-collapsible{flex-basis:210px!important;min-width:180px!important}
  .address-search-popover{position:fixed!important;left:8px!important;right:8px!important;top:88px!important;width:auto!important;max-width:none!important}
  .map-analysis-popover{
    position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:8px!important;
    width:auto!important;max-width:none!important;max-height:min(72vh,640px);overflow:auto
  }
  .map-analysis-popover.minimized{width:auto!important}
  .map-analysis-popover .analysis-drag-handle{cursor:default!important;touch-action:auto}
}


/* --- VizuRisk 0.2.11 Bloc 1 : carte & signalements --- */
/* Signalements : triangle seul, aucun cartouche parasite, symboles critiques renforcés. */
.report-map-icon,.report-map-marker,.report-category-emoji,.report-category-tooltip{background:transparent!important;border:0!important;box-shadow:none!important}
.report-category-triangle{width:36px!important;height:34px!important;color:#9f1730!important}
.report-category-triangle svg{width:36px!important;height:34px!important}
.report-category-triangle .triangle-shell{fill:#fff!important;stroke:#d31f38!important;stroke-width:2.5!important}
.report-category-triangle .report-inner{color:#172f3b!important}
.report-category-triangle .report-inner path,.report-category-triangle .report-inner circle{vector-effect:non-scaling-stroke}
.report-delete-dialog{max-width:520px}
.report-delete-dialog textarea{min-height:86px}
.form-error{margin:8px 0 0;padding:8px 10px;border-radius:7px;background:#fff0f2;border:1px solid #e2a4ae;color:#8f2031;font-size:11px;font-weight:700}
.dialog-close-btn{border:0;background:transparent;font-size:20px;line-height:1;cursor:pointer;color:#58707d;padding:3px 6px}

/* Enjeux : catégories locales théoriques masquées si aucune donnée réelle n'est chargée. */
.map-layer-row[hidden],.stakes-local-subhead[hidden]{display:none!important}
.stakes-local-subhead{margin:4px 0 5px;padding:4px 2px;color:#5a707b;font-size:9.5px;text-transform:uppercase;letter-spacing:.04em}

/* BPE : même symbole dans la légende et sur la carte, avec emprise visuelle réduite. */
.bpe-picto-marker{width:17px!important;height:17px!important;border-width:1.4px!important;border-radius:5px!important;box-shadow:0 1px 2px rgba(18,45,60,.16)!important}
.bpe-picto-marker span{font-size:8px!important;line-height:1!important;font-weight:900!important}
.bpe-picto-marker.health{border-radius:50%!important}
.bpe-legend-marker{display:inline-grid!important;vertical-align:middle;box-shadow:none!important}
.bpe-symbol{width:20px!important;min-width:20px!important;display:inline-flex!important;align-items:center;justify-content:center;background:transparent!important}

/* --- VizuRisk 0.2.11 Bloc 2 : dashboard, veille territoriale, FR-Alert --- */
.dashboard-decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.dashboard-decision-grid .panel{min-height:180px}
.decision-stack{display:grid;gap:7px}
.decision-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #dfe8ec;border-radius:9px;background:#fff;text-align:left;color:var(--ink)}
button.decision-item{cursor:pointer}
button.decision-item:hover{background:#f7fafb;border-color:#cbdbe2}
.decision-item>div{display:grid;gap:2px;min-width:0}.decision-item strong{font-size:11.5px}.decision-item span{font-size:9.5px;color:#697f8a}
.decision-empty{display:grid;gap:3px;padding:14px;border:1px dashed #d7e2e7;border-radius:9px;background:#fbfcfd;color:#6f818a}.decision-empty strong{font-size:11px}.decision-empty span{font-size:9.5px}
.urgency-bar{width:5px;align-self:stretch;border-radius:5px;background:#9aabb3;flex:0 0 5px}.urgency-critical .urgency-bar,.urgency-dot.urgency-critical{background:#b91f32}.urgency-urgent .urgency-bar,.urgency-dot.urgency-urgent{background:#dc7b12}.urgency-to-process .urgency-bar,.urgency-dot.urgency-to-process{background:#d1a61d}.urgency-info .urgency-bar,.urgency-dot.urgency-info{background:#7e919b}
.urgency-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 9px;background:#7e919b}
.decision-state-dot,.action-priority-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.decision-state-dot.is-active{background:#2e8b57}.decision-state-dot.is-related{background:#4d83a1}.action-priority-dot.priority-critical{background:#a5152d}.action-priority-dot.priority-high{background:#d36e10}.action-priority-dot.priority-normal{background:#718793}.action-priority-dot.priority-low{background:#b4c0c6}
.dashboard-quick-actions{margin-top:12px}.dashboard-quick-actions-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.dashboard-quick-actions-head span{font-size:9.5px;color:var(--muted)}
.territorial-log-filterbar{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(150px,.65fr)) auto;gap:8px}.territorial-log-table td small{display:block;margin-top:2px;color:var(--muted)}
.log-urgency-chip,.log-status-chip{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;border:1px solid #d7e1e6;font-size:9.5px;font-weight:800}.log-urgency-chip.urgency-critical{background:#fff0f2;color:#9b1c31;border-color:#e1a2ad}.log-urgency-chip.urgency-urgent{background:#fff6e9;color:#9a5a00;border-color:#e8c18a}.log-urgency-chip.urgency-to-process{background:#fffbe8;color:#796414;border-color:#dfce80}.log-urgency-chip.urgency-info{background:#f3f6f8;color:#637986}.log-status-chip.status-new{background:#fff;color:#46606d}.log-status-chip.status-in-progress{background:#eef5fa;color:#245c7c}.log-status-chip.status-done{background:#edf8f1;color:#287344}
.event-prior-logs{margin-top:9px;padding:9px 10px;border:1px solid #dce6eb;border-radius:9px;background:#f8fafb}.event-prior-logs summary{cursor:pointer;font-size:11px;font-weight:800;color:#244b60}.event-prior-logs-list{display:grid;gap:5px;margin-top:8px;max-height:220px;overflow:auto}.event-prior-log-row{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:7px;padding:7px 8px;border:1px solid #e1e9ed;border-radius:8px;background:#fff}.event-prior-log-row span:last-child{display:grid;gap:2px}.event-prior-log-row small{font-size:9px;color:var(--muted)}
.fr-alert-official-note{margin:8px 0 12px;padding:9px 11px;border-radius:9px;background:#eef6fa;border:1px solid #cfe0e9;color:#244d63;font-size:10.5px}.fr-alert-message-help{margin-top:4px;font-size:9.5px;color:var(--muted)}
.fr-alert-summary{display:grid;gap:12px}.fr-alert-summary-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.fr-alert-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fr-alert-summary-grid>div{display:grid;gap:2px;padding:8px 9px;border:1px solid #dfe8ec;border-radius:8px;background:#f9fbfc}.fr-alert-summary-grid span,.fr-alert-message-preview>span{font-size:9px;text-transform:uppercase;color:#6d808a;font-weight:800}.fr-alert-summary-grid strong{font-size:10.5px}.fr-alert-message-preview{padding:11px;border:1px solid #cbdde6;border-radius:9px;background:#f5fafc}.fr-alert-message-preview p,.fr-alert-note p{white-space:pre-wrap;margin:5px 0 0}.fr-alert-note{padding:9px 10px;border-left:3px solid #7c99aa;background:#f7f9fa}.fr-alert-tracking-note{margin-top:12px}
@media(max-width:980px){.dashboard-decision-grid{grid-template-columns:1fr}.territorial-log-filterbar{grid-template-columns:1fr 1fr}.territorial-log-filterbar>#logSearch{grid-column:1/-1}.fr-alert-summary-grid{grid-template-columns:1fr}}
@media(max-width:620px){.territorial-log-filterbar{grid-template-columns:1fr}.territorial-log-filterbar>#logSearch{grid-column:auto}.dashboard-quick-actions-head{display:grid}}

/* v0.2.11 bloc 3 — demandes de moyens et conventions */
.mean-inventory-note{margin:.7rem 0 0;padding:.65rem .8rem;border-radius:10px;background:#f5f8fa;border:1px solid #dfe8ed}
.dialog-title-actions{display:flex;align-items:center;gap:.55rem}
.means-requests-panel{margin-bottom:1rem}
.mean-requests-list{display:grid;gap:.55rem}
.mean-request-row{width:100%;display:grid;grid-template-columns:5px 1fr;gap:.7rem;text-align:left;border:1px solid #dbe5ea;background:#fff;border-radius:10px;padding:.7rem .8rem;cursor:pointer}
.mean-request-row:hover{border-color:#9db5c2;background:#f8fbfc}
.mean-request-row .mean-request-side{border-radius:4px;background:#d0a54b}
.mean-request-row.priority-critical .mean-request-side{background:#b43030}
.mean-request-row.priority-high .mean-request-side{background:#d26f28}
.mean-request-row.priority-low .mean-request-side{background:#80919a}
.mean-request-row strong,.mean-request-row span,.mean-request-row small{display:block}
.mean-request-row span{margin-top:.15rem}.mean-request-row small{margin-top:.2rem;color:#607783}
.mean-request-summary{display:grid;gap:.15rem;margin:.6rem 0 1rem;padding:.75rem .85rem;border:1px solid #dbe5ea;border-radius:10px;background:#f6f9fa}
.mean-request-summary strong{font-size:1.02rem}.mean-request-summary span,.mean-request-summary small{color:#5e7480}
.mean-request-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.6rem 0 1rem}
.mean-request-detail-grid>div{padding:.65rem .75rem;border:1px solid #dbe5ea;border-radius:9px;background:#f8fafb}
.mean-request-detail-grid>div.wide{grid-column:1/-1}
.mean-request-detail-grid span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:#73858e;margin-bottom:.2rem}
.mean-request-decision{display:grid;grid-template-columns:minmax(160px,.4fr) 1fr;gap:.7rem;margin:1rem 0}
.mean-request-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:720px){.mean-request-detail-grid,.mean-request-decision{grid-template-columns:1fr}.mean-request-detail-grid>div.wide{grid-column:auto}}

/* --- VizuRisk 0.2.11 Bloc 4 : Poste de commandement --- */
.command-post-icon{--cell-accent:#285f7b;color:var(--cell-accent);background:color-mix(in srgb,var(--cell-accent) 10%,white);border-color:color-mix(in srgb,var(--cell-accent) 25%,white)}
.command-post-icon svg{width:21px;height:21px;display:block}
.command-post-icon.compact{width:30px;height:30px;flex-basis:30px;border-radius:8px}.command-post-icon.compact svg{width:18px;height:18px}
.command-post-icon.mini{width:24px;height:24px;flex-basis:24px;border-radius:7px}.command-post-icon.mini svg{width:15px;height:15px}
.command-post-icon.icon-command{--cell-accent:#7b2940}.command-post-icon.icon-coordination{--cell-accent:#205d85}.command-post-icon.icon-monitoring{--cell-accent:#6a4d92}.command-post-icon.icon-communication{--cell-accent:#a54f22}.command-post-icon.icon-liaison{--cell-accent:#376f65}.command-post-icon.icon-logistics{--cell-accent:#6a5b2e}.command-post-icon.icon-population{--cell-accent:#35724e}.command-post-icon.icon-technical{--cell-accent:#4b6570}.command-post-icon.icon-security{--cell-accent:#7b3542}.command-post-icon.icon-health{--cell-accent:#9b2f3f}.command-post-icon.icon-roads{--cell-accent:#6f5838}.command-post-icon.icon-networks{--cell-accent:#8a6a00}.command-post-icon.icon-accommodation{--cell-accent:#5b5c93}.command-post-icon.icon-analysis{--cell-accent:#3d6e8e}.command-post-icon.icon-cell{--cell-accent:#60727c}
.command-post-card[class*="cell-theme-"]{position:relative;overflow:hidden}.command-post-card[class*="cell-theme-"]::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#7c949f}.command-post-card.cell-theme-command::before{background:#7b2940}.command-post-card.cell-theme-coordination::before{background:#205d85}.command-post-card.cell-theme-monitoring::before{background:#6a4d92}.command-post-card.cell-theme-communication::before{background:#a54f22}.command-post-card.cell-theme-liaison::before{background:#376f65}.command-post-card.cell-theme-logistics::before{background:#6a5b2e}.command-post-card.cell-theme-population::before{background:#35724e}.command-post-card.cell-theme-technical::before{background:#4b6570}.command-post-card.cell-theme-security::before{background:#7b3542}.command-post-card.cell-theme-health::before{background:#9b2f3f}.command-post-card.cell-theme-roads::before{background:#6f5838}.command-post-card.cell-theme-networks::before{background:#8a6a00}.command-post-card.cell-theme-accommodation::before{background:#5b5c93}.command-post-card.cell-theme-analysis::before{background:#3d6e8e}
.action-cell-eyebrow{display:flex;align-items:center;gap:7px;margin-bottom:5px}.action-cell-eyebrow .eyebrow{margin:0}
.pci-admin-cell-name{display:flex;align-items:flex-start;gap:8px}.pci-cell-archived{opacity:.62;background:#f7f8f9}
.pci-primary-contact{display:grid;gap:2px}.pci-secondary-contacts{display:grid;gap:5px;margin-top:7px;padding-top:7px;border-top:1px dashed #dce5ea}.pci-secondary-contacts>div{display:grid;gap:1px}.pci-secondary-contacts span{font-size:10.5px;color:#5d727d}.pci-secondary-contacts a{font-size:11px}
.pci-contacts-editor-block{margin:12px 0;padding:12px;border:1px solid #d8e3e8;border-radius:10px;background:#f8fafb}.pci-contacts-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.pci-contacts-editor-head p{margin:2px 0 0}.pci-contacts-editor{display:grid;gap:8px}.pci-contact-editor-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(140px,1fr) minmax(190px,1.35fr) auto auto;gap:8px;align-items:end;padding:9px;border:1px solid #dde6ea;border-radius:9px;background:#fff}.pci-contact-editor-row label{margin:0}.pci-contact-primary{display:flex!important;align-items:center!important;gap:5px;padding:0 4px 8px;white-space:nowrap;font-size:10.5px;font-weight:700}.pci-contact-primary input{width:auto!important;margin:0}.pci-contact-empty{padding:10px;border:1px dashed #d8e3e8;border-radius:8px;text-align:center}
@media(max-width:980px){.pci-contact-editor-row{grid-template-columns:1fr 1fr}.pci-contact-editor-row>label:nth-child(3){grid-column:1/-1}.pci-contact-primary{padding-bottom:4px}}
@media(max-width:620px){.pci-contacts-editor-head{display:grid}.pci-contact-editor-row{grid-template-columns:1fr}.pci-contact-editor-row>label:nth-child(3){grid-column:auto}}

/* v0.2.11-b5 — administration en onglets */
.compact-admin-head{margin-bottom:14px}
.admin-tabs{display:flex;gap:6px;align-items:center;overflow-x:auto;padding:4px 2px 10px;margin-bottom:12px;scrollbar-width:thin}
.admin-tab{border:1px solid var(--line,#d8dee8);background:#fff;color:var(--text,#152033);border-radius:9px;padding:9px 13px;font-weight:650;white-space:nowrap;cursor:pointer}
.admin-tab:hover{background:#f4f7fb}
.admin-tab.active{background:#152b45;color:#fff;border-color:#152b45;box-shadow:0 3px 10px rgba(15,37,63,.12)}
.admin-tab-panels{min-height:280px}
.admin-tab-panel[hidden]{display:none!important}
.admin-tab-panel.active{display:block}
.data-tab-actions{display:flex;align-items:center;gap:8px;margin:0 0 14px;justify-content:flex-end}
.data-tab-actions.wrap{flex-wrap:wrap;justify-content:flex-start}
.admin-data-table{width:100%;border-collapse:collapse}
.admin-data-table th,.admin-data-table td{padding:10px 12px;border-bottom:1px solid var(--line,#e1e6ee);text-align:left;vertical-align:top}
.admin-data-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#66758b;background:#f7f9fc}
.table-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.data-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.data-summary-grid>div{border:1px solid var(--line,#dde3ec);background:#f8fafc;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:5px}
.data-summary-grid span{font-size:.82rem;color:#69768a}
.data-summary-grid strong{font-size:1.45rem;color:#1f3854}
.data-urgency{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:700;background:#eef2f6}
.data-urgency.urgency-critical{background:#fee2e2;color:#991b1b}
.data-urgency.urgency-urgent{background:#ffedd5;color:#9a3412}
.data-urgency.urgency-normal{background:#fef3c7;color:#854d0e}
.data-urgency.urgency-info{background:#edf2f7;color:#475569}
.compact-maintenance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.account-profile-grid{grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr)}
.account-edit-actions{margin-top:14px}
.account-action-panel{max-width:1000px}
.account-guidance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.account-guidance-grid>div{border:1px solid var(--line,#dde3ec);border-radius:10px;padding:14px;background:#f8fafc;display:flex;flex-direction:column;gap:4px}
.account-guidance-grid span{font-size:.82rem;color:#66758b;line-height:1.4}
.account-territory-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}
.partner-admin-panel{margin-top:14px}
.admin-disabled{opacity:.65;pointer-events:none}

@media (max-width:1050px){
 .data-summary-grid,.account-guidance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .account-profile-grid,.account-territory-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
 .admin-tabs{margin-left:-4px;margin-right:-4px;padding-left:4px;padding-right:4px}
 .admin-tab{padding:8px 10px;font-size:.85rem}
 .data-summary-grid,.account-guidance-grid,.compact-maintenance-grid{grid-template-columns:1fr}
 .data-tab-actions{justify-content:flex-start;flex-wrap:wrap}
 .admin-data-table{min-width:720px}
}

/* Bloc 6B — pilotage opérationnel */
.phase-quick-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin-top:.45rem}.phase-quick-actions button:disabled{opacity:.4;cursor:not-allowed}.active-event-meta strong{font-weight:700}

/* Bloc 7 — RETEX structuré */
.retex-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.retex-editor label{display:flex;flex-direction:column;gap:6px;font-weight:650}
.retex-editor textarea{width:100%;resize:vertical;min-height:84px;font:inherit;font-weight:400}
.retex-editor-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.retex-editor-actions .muted{margin-right:auto}
@media(max-width:820px){.retex-editor{grid-template-columns:1fr}}
/* Bloc 11 — veille et supervision opérationnelle */
.dashboard-supervision-panel{margin-top:1rem}.supervision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.supervision-card{border:1px solid var(--line,#d9e0e6);border-radius:12px;padding:.8rem;background:var(--surface,#fff);display:flex;flex-direction:column;gap:.25rem}.supervision-card strong{font-size:.92rem}.supervision-card span{font-size:.78rem;color:var(--muted,#667085)}.supervision-status{display:inline-flex;width:max-content;border-radius:999px;padding:.16rem .48rem;font-size:.7rem;font-weight:700}.supervision-status.ok{background:#e8f5ee;color:#17643b}.supervision-status.warn{background:#fff4dc;color:#8a5a00}.supervision-status.off{background:#fbeaea;color:#9b2525}.supervision-source{font-size:.76rem;font-weight:650}.supervision-disclaimer{margin-top:.65rem;font-size:.72rem;color:var(--muted,#667085)}@media(max-width:850px){.supervision-grid{grid-template-columns:1fr}}
.directory-mobilization{min-width:130px;margin:0 .45rem .35rem 0;padding:.38rem .5rem;border-radius:8px;border:1px solid var(--line,#d7dde5);background:var(--surface,#fff)}
/* Bloc 13 — préparation des exercices */
.vr-exercise-overlay{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow:auto}.vr-exercise-panel{width:min(980px,100%);background:#fff;border-radius:18px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.vr-exercise-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.vr-exercise-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.vr-exercise-panel textarea{display:block;width:100%;min-height:110px;margin-top:6px}.vr-exercise-actions{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:12px 0}.vr-inject-list{display:grid;gap:10px}.vr-inject-list .card button{margin-top:8px}@media(max-width:700px){.vr-exercise-grid{grid-template-columns:1fr}.vr-exercise-panel{padding:15px}}
/* Bloc 14 — fiches missions PCI */
.mission-sheet{margin-top:.75rem;padding:.7rem .8rem;border:1px solid var(--line,#d7dee7);border-radius:10px;background:rgba(255,255,255,.72)}
.mission-sheet summary{cursor:pointer;font-weight:700}.mission-checklist{display:grid;gap:.45rem;margin:.65rem 0}.mission-checklist label{display:flex;gap:.5rem;align-items:flex-start}.mission-sheet-empty{margin-top:.6rem}

/* B15 — lecture opérationnelle des signalements */
.report-layer-tools{display:grid;gap:.55rem;margin-top:.55rem;padding-top:.55rem;border-top:1px solid rgba(13,43,69,.12)}
.report-status-filter{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem;font-size:.82rem;font-weight:700}
.report-status-filter select{min-width:0}
.report-category-layer-filters{display:grid;gap:.2rem;max-height:235px;overflow:auto;padding-right:.15rem}
.report-category-filter{grid-template-columns:auto 26px 1fr!important;min-height:30px}
.report-filter-icon{display:grid;place-items:center;width:24px;height:24px}
.report-filter-icon .report-category-triangle{transform:scale(.78);transform-origin:center}
.report-popup-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.65rem}
.primary-soft{background:#e9f2f8;border-color:#9ab8ca;color:#0d2b45}


/* Bloc 16 — expérience multi-profils */
.side-nav{display:flex;flex-direction:column}
.profile-context-bar{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:0 0 .8rem;padding:.62rem .8rem;border:1px solid var(--line,#d9e1e8);border-radius:10px;background:rgba(255,255,255,.78);font-size:.86rem}
.profile-context-bar strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.055em}
.profile-context-bar span{color:var(--muted,#64748b)}
body[data-profile="sdis"] .profile-context-bar{border-left:4px solid currentColor}
body[data-profile="prefecture"] .profile-context-bar{border-left:4px solid currentColor}
body[data-profile="cellule"] .profile-context-bar{border-left:4px solid currentColor}
body[data-profile="sdis"] #dashboard .dashboard-new-event-btn,
body[data-profile="prefecture"] #dashboard .dashboard-new-event-btn{display:none!important}
@media(max-width:760px){.profile-context-bar{align-items:flex-start;flex-direction:column;gap:.2rem}}


/* RC5 — ergonomie issue de la recette */
.action-filterbar{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px;align-items:end}
.comm-compose{max-width:980px}.comm-mail-route{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.comm-compose label{display:grid;gap:6px;font-weight:700}.comm-compose label input,.comm-compose label select,.comm-compose label textarea{font-weight:400}.comm-form-grid{grid-template-columns:1fr 1fr!important;margin-bottom:12px}.comm-feed{margin-top:16px}
.territorial-log-table th:nth-child(5),.territorial-log-table td:nth-child(5){min-width:320px}.territorial-log-table th:nth-child(6),.territorial-log-table td:nth-child(6){min-width:130px}.territorial-log-table{min-width:1180px}
.leaflet-top.leaflet-left{top:54px}
@media(max-width:760px){.action-filterbar,.comm-mail-route,.comm-form-grid{grid-template-columns:1fr!important}.territorial-log-table{min-width:980px}}


/* RC5.2 — recette consolidée : communication, annuaire, veille */
.watch-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.watch-source-tile{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line,#d9e0e6);border-radius:12px;background:#fff;color:inherit;text-decoration:none;min-height:70px;transition:.15s}.watch-source-tile:hover{border-color:#9ab8ca;box-shadow:0 4px 16px rgba(13,43,69,.08);transform:translateY(-1px)}.watch-source-logo{width:42px;height:42px;border-radius:10px;background:#eef4f8;display:grid;place-items:center;flex:0 0 42px;font-weight:800;color:#1c6dad;overflow:hidden}.watch-source-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.watch-source-tile span:last-child{display:grid;gap:3px;min-width:0}.watch-source-tile strong{font-size:.92rem}.watch-source-tile small{color:var(--muted,#667085)}.watch-source-admin-list{display:grid;gap:8px;margin:12px 0}.watch-admin-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line,#d9e0e6);border-radius:10px;padding:9px}.watch-admin-row>div:nth-child(2){display:grid;gap:2px;min-width:0}.watch-admin-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted,#667085)}.watch-source-editor{border-top:1px solid var(--line,#d9e0e6);padding-top:14px;margin-top:14px}.watch-source-logo-preview{max-width:120px;max-height:70px;object-fit:contain;border:1px solid var(--line,#d9e0e6);border-radius:8px;padding:5px;background:#fff;margin:8px 0}.technical-status{display:grid;gap:4px;border:1px solid var(--line,#d9e0e6);border-left:4px solid #cf9b29;border-radius:10px;padding:10px;margin:10px 0}.technical-status.ok{border-left-color:#24865a}.technical-status span,.technical-status small{color:var(--muted,#667085)}

.communication-head{align-items:flex-start}.communication-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.comm-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) minmax(140px,180px) minmax(150px,200px);gap:10px;align-items:end;margin:0 0 12px;padding:10px;border:1px solid var(--line,#d9e0e6);border-radius:12px;background:#f7fafc}.comm-toolbar label{display:grid;gap:4px;font-size:.72rem;font-weight:750;color:#506274}.comm-folders{display:flex;gap:4px;align-self:center}.comm-folder{border:0;background:transparent;padding:8px 10px;border-radius:8px;font-weight:750;color:#526879;white-space:nowrap}.comm-folder span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e5edf3;font-size:.7rem}.comm-folder.active{background:#173a57;color:#fff}.comm-folder.active span{background:rgba(255,255,255,.2)}.comm-workspace{display:grid;grid-template-columns:minmax(290px,36%) minmax(0,1fr);min-height:460px;border:1px solid var(--line,#d9e0e6);border-radius:14px;background:#fff;overflow:hidden}.comm-list{border-right:1px solid var(--line,#d9e0e6);overflow:auto;max-height:68vh}.comm-list-item{width:100%;display:grid;gap:5px;text-align:left;border:0;border-bottom:1px solid #e7edf2;background:#fff;padding:12px 14px;color:inherit;cursor:pointer}.comm-list-item:hover,.comm-list-item.selected{background:#eef5fa}.comm-list-route,.comm-list-preview,.comm-list-foot{font-size:.75rem;color:#657787}.comm-list-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comm-list-foot{display:flex;justify-content:space-between;gap:8px}.comm-detail{padding:18px;overflow:auto;max-height:68vh}.comm-detail-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid #e5ebef}.comm-detail-route{font-size:.82rem;color:#5d7182;margin-top:6px}.comm-detail-body{white-space:pre-wrap;line-height:1.55;padding:18px 0}.comm-detail-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid #e5ebef;padding-top:12px}.comm-empty{display:grid;place-items:start;align-content:center;gap:5px;color:#697b89;padding:24px;min-height:170px}.communication-dialog{width:min(860px,calc(100vw - 24px))}.communication-dialog .comm-compose{max-width:none}.communication-dialog .comm-mail-route{display:grid;grid-template-columns:1fr 1fr;gap:12px}.communication-dialog .comm-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.communication-dialog label{display:grid;gap:5px;font-weight:700}.communication-dialog label input,.communication-dialog label select,.communication-dialog label textarea{font-weight:400}.communication-dialog textarea{min-height:120px}

.directory-tools-compact{display:grid;gap:10px;margin-bottom:12px}.directory-search-line{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:center}.directory-filterbar{display:grid!important;grid-template-columns:repeat(3,minmax(150px,1fr)) auto!important;gap:10px!important;align-items:end}.directory-filterbar label{display:grid;gap:4px;font-size:.72rem;font-weight:750;color:#506274}.directory-table{width:100%;min-width:920px;table-layout:fixed}.directory-table th,.directory-table td{vertical-align:top;overflow-wrap:anywhere;word-break:normal}.directory-table th:nth-child(1){width:19%}.directory-table th:nth-child(2){width:18%}.directory-table th:nth-child(3){width:20%}.directory-table th:nth-child(4){width:13%}.directory-table th:nth-child(5){width:17%}.directory-table th:nth-child(6){width:13%}.directory-contact-main{display:grid;gap:3px}.directory-contact-main strong{font-size:.9rem}.directory-contact-links{display:grid;gap:3px}.directory-contact-links a{overflow-wrap:anywhere}.directory-mobilization{width:100%;min-width:0!important;margin:0!important}.directory-empty{display:grid;place-items:center;text-align:center;gap:6px;padding:24px}.directory-empty button{margin-top:6px}

@media(max-width:980px){.comm-toolbar{grid-template-columns:1fr 1fr}.comm-folders{grid-column:1/-1}.comm-workspace{grid-template-columns:1fr}.comm-list{border-right:0;border-bottom:1px solid var(--line,#d9e0e6);max-height:330px}.comm-detail{max-height:none}.directory-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))!important}.directory-filterbar .directory-reset-btn{align-self:end}.watch-admin-row{grid-template-columns:42px 1fr}.watch-admin-row .table-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:700px){.comm-toolbar{grid-template-columns:1fr}.comm-folders{overflow-x:auto}.comm-toolbar input,.comm-toolbar label{grid-column:1}.communication-head-actions{width:100%}.communication-head-actions .primary{width:100%}.communication-dialog .comm-mail-route,.communication-dialog .comm-form-grid{grid-template-columns:1fr}.directory-filterbar{grid-template-columns:1fr!important}.directory-table-wrap{overflow:visible}.directory-table{display:block;min-width:0}.directory-table thead{display:none}.directory-table tbody{display:grid;gap:10px}.directory-table tr{display:grid;border:1px solid var(--line,#d9e0e6);border-radius:12px;padding:12px;background:#fff}.directory-table td{display:grid;grid-template-columns:110px 1fr;gap:8px;border:0;padding:5px 0}.directory-table td::before{content:attr(data-label);font-size:.7rem;font-weight:800;text-transform:uppercase;color:#64748b}.directory-search-line{grid-template-columns:1fr}.watch-source-grid{grid-template-columns:1fr}}

.event-phase-control{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.event-phase-control label{display:grid;gap:4px}.phase-confirm-btn{white-space:nowrap}.event-preparation-note{padding:9px 11px;border-radius:9px;background:#eef5fa;border:1px solid #cbdde9;color:#36566d}.map-workspace .leaflet-top.leaflet-left{top:68px!important;left:10px}.map-workspace .map-legend{pointer-events:none}.map-workspace .map-legend span{pointer-events:auto}

/* RC5.2 — finitions de recette */
.watch-admin-row.is-hidden{opacity:.62;background:#f6f7f8}.watch-admin-row.is-hidden .watch-source-logo{filter:grayscale(1)}
.choice-line{display:flex!important;align-items:center;gap:8px;font-weight:700}.choice-line input{width:auto!important;margin:0}
.command-post-empty{grid-column:1/-1;border-style:dashed;background:#fbfcfd}.command-post-empty h3{margin:0 0 6px}
@media(max-width:1180px){.directory-table{min-width:820px}.directory-table th:nth-child(1){width:20%}.directory-table th:nth-child(2){width:17%}.directory-table th:nth-child(3){width:21%}.directory-table th:nth-child(4){width:13%}.directory-table th:nth-child(5){width:17%}.directory-table th:nth-child(6){width:12%}}

/* RC5.2 — finitions enjeux / annuaire */
.stakes-model-menu{position:relative}.stakes-model-menu>summary{list-style:none;cursor:pointer}.stakes-model-menu>summary::-webkit-details-marker{display:none}.stakes-model-menu-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:230px;display:grid;gap:6px;padding:8px;border:1px solid var(--line,#d9e0e6);border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(13,43,69,.14)}.stakes-model-menu-panel .small{text-align:left;text-decoration:none}
@media(min-width:1181px){.directory-filterbar{grid-template-columns:repeat(5,minmax(125px,1fr)) auto!important}}


/* RC5.3 — Moyens : typologie opérationnelle et trois périmètres de mobilisation */
.means-search-row{display:flex;gap:12px;margin:14px 0}.means-search-row input{flex:1;min-width:0}
.means-scope-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.means-scope-option{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #cddbe4;border-radius:14px;background:#fff;cursor:pointer;min-height:88px;box-shadow:0 1px 1px rgba(15,49,75,.03)}
.means-scope-option:hover{border-color:#91b5ce}.means-scope-option input{width:19px;height:19px;margin-top:2px;accent-color:#1668a8}.means-scope-option span{display:grid;gap:4px}.means-scope-option strong{font-size:15px;color:#0d2c43}.means-scope-option small{font-size:12px;line-height:1.35;color:#607988}.means-scope-option.own{border-left:4px solid #1f6da8}.means-scope-option.mutual{border-left:4px solid #3f7f69}.means-scope-option.external{border-left:4px solid #a27335}
.means-family-section{margin:18px 0 16px}.means-family-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:10px}.means-family-head h3{margin:2px 0 3px}.means-family-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mean-family-card{position:relative;display:flex;align-items:flex-start;gap:11px;text-align:left;border:1px solid #d4e0e7;border-radius:13px;background:#fff;padding:13px 42px 13px 13px;min-height:104px;color:#153247;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.mean-family-card:hover{border-color:#8eb3ca;box-shadow:0 4px 14px rgba(21,50,71,.08);transform:translateY(-1px)}.mean-family-card.active{border-color:#1769a8;background:#f0f7fc;box-shadow:inset 0 0 0 1px #1769a8}.mean-family-icon{font-size:30px;line-height:1;width:38px;min-width:38px;text-align:center}.mean-family-copy{display:grid;gap:5px}.mean-family-copy strong{font-size:14px;line-height:1.2}.mean-family-copy small{font-size:11px;line-height:1.3;color:#677e8b;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mean-family-count{position:absolute;right:11px;top:11px;min-width:24px;height:24px;border-radius:12px;background:#eef3f6;display:grid;place-items:center;font-size:11px;font-weight:800;color:#516b79}.mean-family-card.active .mean-family-count{background:#1769a8;color:#fff}
.means-results-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:18px 0 10px;padding-top:4px}.means-results-head .muted{text-align:right;max-width:650px}.mean-resource-card{border-top:4px solid #dbe5eb}.mean-resource-card.scope-own{border-top-color:#1f6da8}.mean-resource-card.scope-mutual{border-top-color:#3f7f69}.mean-resource-card.scope-external{border-top-color:#a27335}.mean-card-head{display:flex;align-items:flex-start;gap:12px}.mean-card-family-icon{font-size:30px;line-height:1.1;min-width:36px}.mean-provider{margin:8px 0;color:#394f5c}.mean-scope-chip{font-weight:700}.means-empty-state{grid-column:1/-1;border:1px dashed #bdccd5;border-radius:14px;padding:24px;text-align:center;color:#5f7785;display:grid;gap:5px}.mean-external-provider{margin:2px 0 10px;padding:12px;border-radius:12px;background:#fff8ed;border:1px solid #ead5b8}
@media(max-width:1250px){.means-family-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.means-scope-filters{grid-template-columns:1fr}.means-family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.means-results-head{align-items:flex-start;flex-direction:column}.means-results-head .muted{text-align:left}}
@media(max-width:620px){.means-family-grid{grid-template-columns:1fr}.mean-family-card{min-height:88px}.means-family-head{align-items:flex-start;flex-direction:column}.means-page-actions{width:100%}.means-page-actions>*{flex:1 1 100%}}

/* RC6 — production candidate : rigueur, lisibilité et efficacité opérationnelle */
.app-notifications{position:fixed;right:18px;top:82px;z-index:20000;display:grid;gap:8px;width:min(390px,calc(100vw - 32px));pointer-events:none}
.app-notification{pointer-events:auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:10px;border:1px solid #cbd8e2;background:#fff;color:#18364a;box-shadow:0 10px 28px rgba(11,42,65,.16);font-size:.86rem;line-height:1.35}
.app-notification button{border:0;background:transparent;color:#5d7483;font-size:1.25rem;padding:0 2px;line-height:1;cursor:pointer}.app-notification.success{border-left:4px solid #34775e}.app-notification.warning{border-left:4px solid #b77b22}.app-notification.error{border-left:4px solid #b34f50;background:#fffafa}

.means-section-head{align-items:flex-start}.means-page-actions{align-items:center}.means-page-actions .file-button{cursor:pointer}.means-import-priority{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:14px 22px;align-items:end;margin:12px 0 14px;padding:14px 16px;border:1px solid #cbdbe6;border-radius:12px;background:#f7fafc}.means-import-priority>div:first-child{display:grid;gap:3px}.means-import-priority strong{color:#15354b}.means-import-priority span{font-size:.8rem;color:#627887}.means-import-priority #meanImportStatus{grid-column:1/-1;font-size:.78rem}.mean-import-mode{display:grid;gap:4px;font-size:.72rem;font-weight:800;color:#536b7a}.mean-import-mode select{min-height:36px}
.means-controlbar{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:12px;align-items:center;margin:12px 0 15px}.means-controlbar>input{min-width:0}.means-scope-filters{display:flex!important;align-items:center;gap:7px!important;margin:0!important}.means-scope-option{min-height:0!important;padding:7px 10px!important;border:1px solid #cddae3!important;border-left-width:1px!important;border-radius:9px!important;gap:7px!important;align-items:center!important;box-shadow:none!important;background:#fff}.means-scope-option input{width:14px!important;height:14px!important;margin:0!important}.means-scope-option span{display:flex!important;align-items:baseline;gap:5px!important;white-space:nowrap}.means-scope-option strong{font-size:.78rem!important}.means-scope-option small{font-size:.67rem!important;color:#758995!important}.means-scope-option:has(input:checked){border-color:#6b98b6!important;background:#f4f9fc}.means-scope-option.external:has(input:checked){border-color:#b79561!important;background:#fffaf2}
.means-family-section{margin:15px 0}.means-family-head{align-items:flex-end}.means-family-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}.mean-family-card{min-height:82px!important;padding:11px 38px 11px 11px!important;border-radius:10px!important;gap:10px!important;box-shadow:none!important}.mean-family-card:hover{transform:none!important;box-shadow:0 3px 10px rgba(21,50,71,.06)!important}.mean-family-icon,.mean-card-family-icon{width:31px!important;min-width:31px!important;height:31px;display:grid;place-items:center;color:#315d78;font-size:0!important}.mean-family-icon svg,.mean-card-family-icon svg{width:27px;height:27px}.mean-family-copy{gap:3px!important}.mean-family-copy strong{font-size:.83rem!important}.mean-family-copy small{font-size:.69rem!important;line-height:1.28!important;-webkit-line-clamp:2!important}.mean-family-count{top:9px!important;right:9px!important;width:22px!important;height:22px!important;min-width:22px!important;font-size:.68rem!important}.means-results-head{margin-top:14px!important}.mean-resource-card{border-top-width:3px!important}.mean-card-head{gap:9px!important}.mean-card-family-icon{margin-top:1px}.mean-provider{font-size:.82rem}
.mean-dialog{width:min(900px,calc(100vw - 24px));max-height:92vh}.mean-dialog form{display:grid;gap:12px}.mean-dialog .dialog-title{margin-bottom:0}.mean-scope-fieldset,.mean-contact-fieldset,.mean-specific-fields fieldset{border:1px solid #d6e1e8;border-radius:10px;padding:10px 12px;margin:0}.mean-scope-fieldset legend,.mean-contact-fieldset legend,.mean-specific-fields legend{padding:0 5px;font-size:.75rem;font-weight:800;color:#4b6575}.mean-scope-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mean-scope-choice-grid>label{display:flex;align-items:flex-start;gap:8px;border:1px solid #d6e1e8;border-radius:9px;padding:9px;cursor:pointer;background:#fff}.mean-scope-choice-grid input{margin-top:2px;width:15px;height:15px}.mean-scope-choice-grid span{display:grid;gap:2px}.mean-scope-choice-grid strong{font-size:.8rem}.mean-scope-choice-grid small{font-size:.68rem;color:#6a7f8c;line-height:1.25}.mean-scope-choice-grid label:has(input:checked){border-color:#5488a9;background:#f3f8fb}.mean-external-provider{background:#fffaf3!important;border-color:#e2ceb0!important;padding:10px!important}.mean-specific-fields:empty{display:none}.mean-specific-fields fieldset{background:#f9fbfc}.mean-dialog textarea{min-height:68px!important}.mean-dialog .dialog-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.92),#fff 24%);padding-top:10px;margin-top:2px;z-index:2}
.mean-import-preview-dialog{width:min(980px,calc(100vw - 24px));max-height:90vh}.mean-import-preview-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:10px 0}.mean-import-preview-summary>div{border:1px solid #d7e2e8;border-radius:9px;padding:10px 12px;display:grid;gap:2px;background:#f9fbfc}.mean-import-preview-summary strong{font-size:1.2rem}.mean-import-preview-summary span{font-size:.72rem;color:#6b7f8c}.mean-import-preview-summary .warn{border-color:#e0b26d;background:#fff9ef}.mean-import-preview-warnings{display:grid;gap:4px;padding:9px 11px;border-radius:8px;background:#fff9ef;border:1px solid #ecd2a8;color:#745524;font-size:.76rem;max-height:150px;overflow:auto;margin-bottom:10px}.mean-import-preview-dialog .tablewrap{max-height:45vh;overflow:auto}.mean-import-preview-dialog .compact-table{width:100%;font-size:.78rem}

.communication-dialog{width:min(790px,calc(100vw - 24px))!important;max-height:90vh}.communication-dialog form{display:grid;gap:11px}.communication-dialog .comm-mail-route{grid-template-columns:minmax(230px,.8fr) minmax(320px,1.2fr)!important;gap:12px!important;align-items:start}.communication-dialog #commSender{height:38px!important;min-height:38px!important;padding:8px 10px!important;background:#f5f8fa;border-color:#d4dfe6;color:#304d60}.comm-recipient-choices{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;max-height:144px;overflow:auto;padding:7px 8px;border:1px solid #d4dfe6;border-radius:8px;background:#fafcfd}.comm-recipient-choice{display:flex!important;align-items:center!important;gap:6px!important;min-height:28px;padding:4px 5px;border-radius:6px;font-weight:600!important;font-size:.77rem}.comm-recipient-choice:hover{background:#edf4f8}.comm-recipient-choice input{width:14px!important;height:14px!important;margin:0!important}.communication-dialog .comm-form-grid{gap:10px!important}.communication-dialog textarea{min-height:92px!important}.communication-dialog .dialog-actions{position:sticky;bottom:0;background:#fff;padding-top:9px;margin-top:0;border-top:1px solid #e5ebef}

.watch-sources-dialog{width:min(850px,calc(100vw - 24px));max-height:88vh}.watch-source-admin-list:empty::before{content:"Aucun site personnalisé. Ajoutez uniquement les sources utiles à votre organisation ; Météo-France et Vigicrues restent disponibles par défaut.";display:block;border:1px dashed #c9d8e1;border-radius:10px;padding:18px;color:#647b89;background:#fafcfd;font-size:.82rem;line-height:1.45}.watch-source-admin-head{margin:8px 0 12px}.watch-source-editor{border-top:1px solid #e1e8ed;padding-top:12px;margin-top:12px}

@media(max-width:900px){.means-controlbar{grid-template-columns:1fr}.means-scope-filters{flex-wrap:wrap}.means-family-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.means-import-priority{grid-template-columns:1fr}.mean-import-priority #meanImportStatus{grid-column:1}.communication-dialog .comm-mail-route{grid-template-columns:1fr!important}}
@media(max-width:620px){.means-page-actions{display:grid!important;grid-template-columns:1fr 1fr}.means-page-actions>*{width:100%}.means-scope-filters{display:grid!important;grid-template-columns:1fr 1fr}.means-scope-option.external{grid-column:1/-1}.means-family-grid{grid-template-columns:1fr!important}.mean-scope-choice-grid{grid-template-columns:1fr}.communication-dialog{width:calc(100vw - 12px)!important}.comm-recipient-choices{grid-template-columns:1fr}.app-notifications{right:10px;top:68px;width:calc(100vw - 20px)}}


/* RC6 — finition production : moyens, communication, veille */
.means-controlbar{align-items:center!important}
.means-scope-filters{gap:6px!important;align-items:center!important}
.means-scope-option{min-height:34px!important;padding:5px 9px!important;border-radius:8px!important;gap:7px!important;box-shadow:none!important}
.means-scope-option input{width:13px!important;height:13px!important;min-width:13px!important;margin:0!important}
.means-scope-option strong{font-size:.75rem!important}.means-scope-option small{font-size:.62rem!important;line-height:1.15!important}
.means-family-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px!important}
.mean-family-card{min-height:76px!important;padding:10px 36px 10px 10px!important;border-radius:10px!important}
.mean-family-icon,.mean-card-family-icon{width:29px!important;min-width:29px!important;height:29px!important;color:#345d73!important}
.mean-family-icon svg,.mean-card-family-icon svg{width:25px!important;height:25px!important}
.mean-family-copy strong{font-size:.81rem!important}.mean-family-copy small{font-size:.67rem!important;-webkit-line-clamp:2!important}
.mean-family-count{top:8px!important;right:8px!important;width:21px!important;height:21px!important;min-width:21px!important}
.mean-dialog .dialog-title p{margin:.15rem 0 0}.mean-dialog .mean-scope-fieldset{background:#f9fbfc}
.mean-dialog .mean-scope-choice-grid>label{min-height:54px!important;padding:8px!important}
.mean-dialog .mean-scope-choice-grid strong{font-size:.77rem!important}.mean-dialog .mean-scope-choice-grid small{font-size:.64rem!important}
.mean-import-preview-summary>div{min-width:130px}
.communication-dialog{padding:0!important;overflow:hidden!important}
.communication-dialog form{max-height:88vh;overflow:auto;padding:18px 22px 0!important;gap:10px!important}
.communication-dialog .dialog-title{position:sticky;top:-18px;z-index:4;background:#fff;margin:-18px -22px 2px!important;padding:16px 22px 12px;border-bottom:1px solid #e4eaee}
.communication-dialog .comm-mail-route{grid-template-columns:minmax(210px,.75fr) minmax(360px,1.25fr)!important}
.communication-dialog #commSender{height:38px!important;min-height:38px!important;max-height:38px!important;line-height:20px!important}
.comm-recipient-choices{max-height:130px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
.communication-dialog #commBody{min-height:100px!important;max-height:180px;resize:vertical}
.communication-dialog .dialog-actions{position:sticky!important;bottom:0!important;z-index:4;margin:2px -22px 0!important;padding:11px 22px!important;background:#fff!important;box-shadow:0 -8px 18px rgba(18,54,80,.06)}
.watch-sources-dialog{width:min(860px,calc(100vw - 24px));max-height:88vh;overflow:auto}
.watch-source-admin-list{display:grid;gap:8px;margin-top:10px}
.watch-empty-state{border:1px dashed #bdcdd6;border-radius:12px;padding:22px;background:#f8fbfc;display:grid;gap:5px;color:#587181}
.watch-empty-state strong{color:#1d4055;font-size:.95rem}.watch-empty-state span{font-size:.82rem}.watch-empty-state small{font-size:.72rem;color:#718895}
.watch-source-editor{margin-top:12px;border:1px solid #d7e2e8;border-radius:12px;padding:14px;background:#fbfcfd}
@media(max-width:760px){.means-family-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.communication-dialog form{padding:14px 14px 0!important}.communication-dialog .dialog-title{top:-14px;margin:-14px -14px 2px!important;padding:14px}.communication-dialog .dialog-actions{margin:2px -14px 0!important;padding:10px 14px!important}.communication-dialog .comm-mail-route{grid-template-columns:1fr!important}.comm-recipient-choices{grid-template-columns:1fr!important}}
@media(max-width:520px){.means-family-grid{grid-template-columns:1fr!important}}

/* RC6.1 — simplification opérationnelle */
.means-section-head{align-items:flex-start}.means-one-line{white-space:nowrap;max-width:none}.means-action-sequence{display:flex;gap:7px;align-items:stretch;flex-wrap:wrap}.mean-action-item{display:flex}.means-file-action{display:flex!important;align-items:center!important;gap:7px!important;min-height:42px;padding:7px 10px!important;border-radius:9px!important}.means-file-action span:not(.action-icon){display:grid;text-align:left}.means-file-action strong{font-size:.74rem}.means-file-action small{font-size:.6rem;color:#687d89;font-weight:500}.action-icon{width:18px;height:18px;display:grid;place-items:center;color:#315d78}.action-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.means-import-feedback{min-height:20px;margin:-4px 0 8px;font-size:.7rem}.means-controlbar{grid-template-columns:minmax(260px,1fr) auto!important;gap:10px!important}.means-scope-filters{display:flex!important;gap:5px!important}.means-scope-option{padding:5px 8px!important;min-height:32px!important;background:#fff!important}.means-scope-option strong{font-size:.72rem!important;white-space:nowrap}.means-scope-option strong em{font-style:normal;font-weight:500;color:#6a7e89}.means-family-head{align-items:center!important}.means-family-head h3{margin:0 0 3px}.means-family-kicker{margin:0;font-size:.61rem}.means-results-head{padding:5px 0!important}.mean-share-choice{display:flex!important;gap:9px;align-items:flex-start;border:1px solid #d7e2e8;border-radius:9px;padding:9px 10px;background:#f8fbfc}.mean-share-choice input{width:15px!important;height:15px!important;margin-top:2px}.mean-share-choice span{display:grid;gap:2px}.mean-share-choice strong{font-size:.78rem}.mean-share-choice small{font-size:.68rem;color:#667c89}.mean-adapted-grid{padding:2px 0}.mean-specific-fields{margin:0}.mean-specific-fields fieldset{border:0!important;background:transparent!important;padding:0!important}.dashboard-actions-overview{grid-template-columns:repeat(2,minmax(0,1fr))!important}.bpe-data-table tbody td{padding:3px 6px!important;font-size:10px!important;line-height:1.1!important}.bpe-data-table thead th{padding:5px 6px!important}.bpe-symbol.security{color:#7b3542}.mean-dialog .mean-scope-choice-grid>label{min-height:48px!important}.mean-dialog .mean-scope-choice-grid small{display:block}.mean-dialog #meanExternalProviderFields[hidden]{display:none!important}
@media(max-width:1080px){.means-one-line{white-space:normal}.means-controlbar{grid-template-columns:1fr!important}.means-scope-filters{flex-wrap:wrap!important}}
@media(max-width:760px){.means-action-sequence{display:grid;grid-template-columns:1fr 1fr}.means-file-action{width:100%}.dashboard-actions-overview{grid-template-columns:1fr!important}}

/* --- VizuRisk RC6.2 : barre Moyens compacte, alignée et stable --- */
#means .compact-means-head{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:12px!important;
}
#means .compact-means-head>div:first-child{
  width:100%;
}
#means .means-one-line{
  margin-top:4px;
  white-space:normal;
}
#means .means-action-sequence{
  width:100%;
  display:grid!important;
  grid-template-columns:minmax(220px,1.3fr) minmax(190px,1.1fr) minmax(170px,.95fr) minmax(145px,.8fr)!important;
  gap:8px!important;
  align-items:stretch!important;
  justify-content:stretch!important;
}
#means .means-action-sequence>*{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
#means .means-file-action{
  min-height:44px!important;
  height:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px!important;
  padding:0 12px!important;
  border-radius:9px!important;
  background:#fff!important;
  border:1px solid #c9d8e1!important;
  color:#173b54!important;
  box-shadow:none!important;
  text-decoration:none!important;
  cursor:pointer;
  overflow:hidden;
}
#means .means-file-action:hover{
  background:#f5f9fb!important;
  border-color:#9fb9c8!important;
}
#means .means-file-action .action-icon{
  flex:0 0 20px;
  width:20px;
  height:20px;
  color:#2f6582;
}
#means .means-file-action .action-icon svg{
  width:20px;
  height:20px;
  stroke-width:1.7;
}
#means .means-action-label{
  min-width:0;
  display:flex!important;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  overflow:hidden;
}
#means .means-action-label strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.78rem!important;
  line-height:1!important;
}
#means .means-info{
  flex:0 0 17px;
  width:17px;
  height:17px;
  border-radius:50%;
  display:grid!important;
  place-items:center;
  border:1px solid #9eb4c0;
  color:#527080;
  font-size:.65rem;
  font-weight:800;
  font-family:system-ui,sans-serif;
  line-height:1;
}
#means .means-import-feedback{
  margin:4px 0 8px!important;
}
@media(max-width:1100px){
  #means .means-action-sequence{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:620px){
  #means .means-action-sequence{
    grid-template-columns:1fr!important;
  }
  #means .means-file-action{
    min-height:42px!important;
    height:42px!important;
  }
}


/* --- VizuRisk RC6.4 : navigation, communication flottante et Enjeux --- */
/* La communication sort du menu principal et reste accessible à tout moment comme un chat opérationnel. */
.communication-dock{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1200;
  display:flex;
  align-items:stretch;
  border:1px solid #b9ccd7;
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 28px rgba(14,45,67,.18);
  overflow:hidden;
}
.communication-dock[hidden]{display:none!important}
.communication-dock button{border:0!important;border-radius:0!important;box-shadow:none!important;margin:0!important}
.communication-dock-main{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 13px;
  background:#173b54;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.communication-dock-main:hover{background:#214d69}
.communication-dock-icon{width:21px;height:21px;display:grid;place-items:center}
.communication-dock-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.communication-dock-badge{min-width:20px;height:20px;padding:0 5px;border-radius:10px;display:grid;place-items:center;background:#fff;color:#173b54;font-size:.66rem;font-weight:900}
.communication-dock-compose{width:45px;min-height:48px;background:#eaf2f6;color:#173b54;font-size:1.35rem;font-weight:500;cursor:pointer;border-left:1px solid #cbd9e1!important}
.communication-dock-compose:hover{background:#dceaf1}.communication-dock-compose:disabled{opacity:.45;cursor:not-allowed}
body.map-mode .communication-dock{bottom:22px}

/* Enjeux : même grammaire visuelle que Moyens pour importer / exporter / télécharger. */
#stakes .compact-stakes-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important}
#stakes .compact-stakes-head>div:first-child{width:100%}
#stakes .stakes-action-sequence{
  width:100%;
  display:grid!important;
  grid-template-columns:minmax(180px,.9fr) minmax(165px,.82fr) minmax(210px,1.05fr) minmax(235px,1.2fr)!important;
  gap:8px!important;
  align-items:stretch!important;
}
#stakes .stakes-action-sequence>*{width:100%!important;min-width:0!important;margin:0!important}
#stakes .stakes-file-action{
  min-height:44px!important;height:44px!important;width:100%!important;
  display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important;
  padding:0 12px!important;border-radius:9px!important;background:#fff!important;border:1px solid #c9d8e1!important;
  color:#173b54!important;box-shadow:none!important;text-decoration:none!important;cursor:pointer!important;list-style:none!important;
}
#stakes .stakes-file-action:hover{background:#f5f9fb!important;border-color:#9fb9c8!important}
#stakes .stakes-action-label{min-width:0;display:flex;align-items:center;white-space:nowrap;overflow:hidden}
#stakes .stakes-action-label strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;line-height:1}
#stakes .stakes-action-menu{position:relative}
#stakes .stakes-action-menu>summary::-webkit-details-marker{display:none}
#stakes .stakes-action-menu[open]>.stakes-file-action{background:#eef5f8!important;border-color:#8faebe!important}
#stakes .stakes-model-menu-panel{top:calc(100% + 7px);min-width:250px}
#stakes .stakes-import-menu-panel{right:auto;left:0}
#stakes .stakes-import-menu-panel label,#stakes .stakes-import-menu-panel #vulnerableImportActions label{display:block;width:100%;text-align:left}
#stakes .stakes-unified-panel{margin-top:10px!important}
#stakes .stakes-unified-filters{gap:8px!important}

@media(max-width:1100px){
  #stakes .stakes-action-sequence{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .communication-dock{right:10px;bottom:10px}.communication-dock-main{min-height:44px;padding:0 11px}.communication-dock-compose{width:42px;min-height:44px}
  #stakes .stakes-action-sequence{grid-template-columns:1fr!important}
}

/* --- VizuRisk v0.2.11 RC6.4 : outils cartographiques flottants --- */
/* Mesurer et Dessiner adoptent la même logique que la fenêtre Analyser :
   flottants, déplaçables sur PC, réductibles et non bloquants. */
.map-measure-collapsible{position:static!important}
.map-measure-popover{
  position:fixed!important;
  top:138px;
  right:24px;
  left:auto;
  width:min(340px,calc(100vw - 32px));
  z-index:1102!important;
  padding:0!important;
  overflow:hidden;
  user-select:auto;
}
.map-measure-popover .measure-drag-handle{
  padding:10px 11px;
  border-bottom:1px solid var(--line);
  background:#f8fafb;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.map-measure-popover.is-dragging .measure-drag-handle{cursor:grabbing}
.measure-window-actions{display:flex;align-items:center;gap:4px}
.measure-minimize-btn{font-size:16px!important;font-weight:800!important}
.measure-panel-content{padding:11px 12px 12px}
.map-measure-popover.minimized{width:250px!important}
.map-measure-popover.minimized .measure-panel-content{display:none!important}
.map-measure-popover.minimized .measure-drag-handle{border-bottom:0}

.drawing-tool-panel{
  position:fixed!important;
  top:138px;
  right:24px;
  left:auto;
  width:min(335px,calc(100vw - 32px));
  max-width:none!important;
  z-index:1102!important;
  border-radius:12px;
  box-shadow:0 12px 34px rgba(14,42,64,.20);
  overflow:hidden;
}
.drawing-tool-panel .drawing-drag-handle{
  padding:10px 11px;
  background:#f8fafb;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.drawing-tool-panel.is-dragging .drawing-drag-handle{cursor:grabbing}
.drawing-window-actions{display:flex;align-items:center;gap:4px}
.drawing-minimize-btn{font-size:16px!important;font-weight:800!important}
.drawing-tool-panel.minimized{width:290px!important}
.drawing-tool-panel.minimized .drawing-tool-body{display:none!important}
.drawing-tool-panel.minimized .drawing-drag-handle{border-bottom:0}

@media(max-width:760px){
  .map-measure-popover,
  .drawing-tool-panel{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:8px!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(72vh,640px);
    overflow:auto;
  }
  .map-measure-popover.minimized,
  .drawing-tool-panel.minimized{width:auto!important}
  .map-measure-popover .measure-drag-handle,
  .drawing-tool-panel .drawing-drag-handle{cursor:default!important;touch-action:auto}
}


/* --- VizuRisk RC6.6 : libellés pédagogiques et accès Messages permanent --- */
.communication-dock{
  top:92px!important;
  right:18px!important;
  bottom:auto!important;
  z-index:1250!important;
}
body.map-mode .communication-dock{top:92px!important;bottom:auto!important}
@media(max-width:760px){
  .communication-dock{top:74px!important;right:10px!important;bottom:auto!important}
}

/* --- VizuRisk RC6.6 : déplacement robuste des fenêtres cartographiques --- */
@media(min-width:761px){
  .map-analysis-popover,
  .map-measure-popover,
  .drawing-tool-panel{
    position:absolute!important;
    top:72px;
    right:18px;
    left:auto;
    bottom:auto;
    margin:0!important;
    will-change:left,top;
  }
  .map-analysis-popover .analysis-drag-handle,
  .map-measure-popover .measure-drag-handle,
  .drawing-tool-panel .drawing-drag-handle{
    cursor:grab!important;
    touch-action:none!important;
  }
  .map-analysis-popover.is-dragging,
  .map-measure-popover.is-dragging,
  .drawing-tool-panel.is-dragging{
    transition:none!important;
    box-shadow:0 14px 38px rgba(14,42,64,.28)!important;
  }
  .map-analysis-popover.is-dragging .analysis-drag-handle,
  .map-measure-popover.is-dragging .measure-drag-handle,
  .drawing-tool-panel.is-dragging .drawing-drag-handle{cursor:grabbing!important}
  body.map-panel-dragging,
  body.map-panel-dragging *{user-select:none!important}
}


/* --- VizuRisk RC6.8 : accès Messages réellement fixe + recherche Moyens tolérante --- */
.communication-dock{
  position:fixed!important;
  top:108px!important;
  right:18px!important;
  bottom:auto!important;
  left:auto!important;
  z-index:20050!important;
  margin:0!important;
  transform:none!important;
}
body.map-mode .communication-dock{
  position:fixed!important;
  top:108px!important;
  right:18px!important;
  bottom:auto!important;
}
@media(max-width:760px){
  .communication-dock,body.map-mode .communication-dock{
    position:fixed!important;
    top:78px!important;
    right:10px!important;
    bottom:auto!important;
    left:auto!important;
  }
}

/* --- VizuRisk RC6.9 : fiches Moyens, fenêtres cartographiques et signalements compacts --- */
.mean-quick-meta{
  display:grid;
  gap:5px;
  margin:9px 0 8px;
  padding:8px 9px;
  border:1px solid #dce6ec;
  border-radius:9px;
  background:#f8fbfc;
}
.mean-quick-meta>div{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:8px;
  align-items:start;
}
.mean-quick-meta dt{
  margin:0;
  font-size:.67rem;
  font-weight:800;
  color:#5b7180;
}
.mean-quick-meta dd{
  margin:0;
  min-width:0;
  font-size:.72rem;
  line-height:1.3;
  color:#1f3d50;
  overflow-wrap:anywhere;
}
@media(max-width:620px){
  .mean-quick-meta>div{grid-template-columns:74px minmax(0,1fr)}
}

/* Les trois panneaux peuvent descendre jusqu'en bas de la carte : seul leur en-tête reste contraint.
   Leur contenu devient défilable si l'espace vertical restant se réduit. */
@media(min-width:761px){
  .map-analysis-popover,
  .map-measure-popover,
  .drawing-tool-panel{
    min-height:0!important;
    overflow:hidden!important;
  }
  .analysis-panel-content,
  .measure-panel-content,
  .drawing-tool-body{
    min-height:0;
    scrollbar-width:thin;
  }
}

/* Fenêtres de signalement : lecture rapide, commandes iconographiques avec libellé au survol. */
.report-popup-card{
  min-width:230px;
  max-width:310px;
  font-size:.72rem;
  line-height:1.28;
  color:#203b4c;
}
.report-popup-head{display:flex!important;justify-content:flex-start!important;gap:7px!important;margin-bottom:4px!important;align-items:flex-start!important;padding-right:18px}
.report-popup-heading-copy{display:flex;min-width:0;flex:1;flex-direction:column;align-items:flex-start;gap:3px}
.report-popup-head strong{font-size:.76rem;line-height:1.18;overflow-wrap:anywhere}
.report-popup-status{align-self:flex-start;font-size:.64rem!important;line-height:1.1!important;white-space:nowrap}
.report-popup-icon{transform:scale(.9);transform-origin:left center}
.report-popup-title{
  margin:5px 0 3px;
  font-size:.84rem;
  line-height:1.2;
  font-weight:850;
  color:#102f44;
}
.report-popup-card>.muted{font-size:.63rem!important;line-height:1.25!important}
.report-popup-details{margin:6px 0 4px!important;font-size:.71rem;line-height:1.32}
.report-popup-context{gap:2px!important;margin-top:5px!important;font-size:.68rem!important}
.report-popup-context div{padding-top:3px!important;gap:7px!important}
.report-popup-actions{
  display:flex!important;
  justify-content:flex-end;
  flex-wrap:nowrap!important;
  gap:4px!important;
  margin-top:7px!important;
  padding-top:6px;
  border-top:1px solid #edf2f5;
}
.report-popup-action-btn{
  width:29px;
  height:29px;
  min-width:29px;
  padding:0;
  display:inline-grid;
  place-items:center;
  border:1px solid #cfdae1;
  border-radius:8px;
  background:#fff;
  color:#315d78;
  cursor:pointer;
}
.report-popup-action-btn:hover{background:#f1f7fa;border-color:#8faebe}
.report-popup-action-btn svg{width:15px;height:15px}
.report-popup-action-btn.is-primary{background:#eef6fb;border-color:#b7d0df;color:#176a9f}
.report-popup-action-btn.is-danger{color:#9a3040;border-color:#e2c5ca;background:#fffafa}
.report-popup-action-btn.is-danger:hover{background:#fff0f2;border-color:#dbaab2}
.leaflet-popup-content{margin:10px 11px!important}
.leaflet-popup-content-wrapper{border-radius:10px!important}


/* --- VizuRisk RC6.11 : cohérence des outils flottants + lecture signalement --- */
.map-export-head.measure-drag-handle,
.map-export-head.analysis-drag-handle,
.drawing-tool-head.drawing-drag-handle{
  min-height:52px;
}
.map-export-head.measure-drag-handle>div:first-child,
.map-export-head.analysis-drag-handle>div:first-child,
.drawing-tool-head.drawing-drag-handle>div:first-child{
  display:grid;
  gap:2px;
}
.map-export-head.measure-drag-handle strong,
.map-export-head.analysis-drag-handle strong,
.drawing-tool-head.drawing-drag-handle strong{
  font-size:.82rem!important;
  line-height:1.1;
}
@media(min-width:761px){
  /* Ne pas verrouiller top/right : les styles inline du moteur de déplacement doivent gagner. */
  .drawing-tool-panel{
    top:72px;
    right:18px;
    left:auto;
  }
}
.report-popup-heading-copy{
  flex-direction:row!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:5px!important;
}
.report-popup-status{
  align-self:center!important;
  margin:0!important;
}
.report-popup-context{
  display:grid!important;
  gap:2px!important;
}
.report-popup-context>div{
  display:flex!important;
  align-items:baseline!important;
  justify-content:flex-start!important;
  gap:4px!important;
  border-top:0!important;
  padding-top:1px!important;
}
.report-popup-context>div>span{
  font-weight:650!important;
  color:#526b7a;
}
.report-popup-context>div>strong{
  display:inline!important;
  font-weight:800!important;
  color:#173b54;
}


/* --- VizuRisk RC6.13 : fenêtre Sites de veille contenue et lisible --- */
.watch-sources-dialog{
  width:min(820px,calc(100vw - 40px))!important;
  max-width:calc(100vw - 40px)!important;
  max-height:calc(100dvh - 40px)!important;
  padding:18px 20px 20px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable;
}
.watch-sources-dialog > .dialog-title{
  position:sticky;
  top:-18px;
  z-index:8;
  margin:-18px -20px 12px!important;
  padding:18px 20px 12px!important;
  background:#fff;
  border-bottom:1px solid #e5ecef;
}
.watch-sources-dialog .watch-source-admin-head,
.watch-sources-dialog .watch-source-admin-list,
.watch-sources-dialog .watch-source-editor{min-width:0;max-width:100%}
.watch-sources-dialog .watch-admin-row{min-width:0}
.watch-sources-dialog input,
.watch-sources-dialog select{min-width:0;max-width:100%}
@media(max-width:700px){
  .watch-sources-dialog{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
    padding:14px!important;
  }
  .watch-sources-dialog > .dialog-title{
    top:-14px;
    margin:-14px -14px 10px!important;
    padding:14px!important;
  }
  .watch-sources-dialog .form-grid.two{grid-template-columns:1fr!important}
}

/* --- VizuRisk RC6.13 : lisibilité des priorités et pastilles non rognées --- */
.dashboard-decision-grid .panel,
.decision-stack,
.decision-item{
  overflow:visible;
}
.decision-item{
  padding-right:14px;
}
.decision-item .action-priority-dot{
  position:static;
  width:11px;
  height:11px;
  flex:0 0 11px;
  margin-left:auto;
  margin-right:1px;
  border:1px solid rgba(18,54,80,.18);
  box-shadow:0 0 0 2px #fff;
}
.action-priority-dot.priority-critical{background:#c6283d;}
.action-priority-dot.priority-high{background:#f97316;}
.action-priority-dot.priority-normal{background:#f5b21a;}
.action-priority-dot.priority-low{background:#9aa8b1;}

/* Même hiérarchie sur les badges de priorité afin d'éviter deux codes visuels concurrents. */
.priority-high,
.action-priority-chip.priority-high{
  background:#fff3e8!important;
  border-color:#f3a363!important;
  color:#9a4a08!important;
}
.priority-normal,
.action-priority-chip.priority-normal{
  background:#fff8dc!important;
  border-color:#e8c04f!important;
  color:#775708!important;
}

/* RC6.13 — tableau de bord plus léger : moins de cadres, plus de lecture immédiate */
.dashboard-actions-overview{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.dashboard-actions-overview .panel{
  min-height:0;
  padding:12px 13px;
  border-color:#e2e9ed;
  border-radius:11px;
  box-shadow:none;
  background:#fff;
}
.dashboard-actions-overview .panel-head{
  margin-bottom:5px;
  padding-bottom:7px;
  border-bottom:1px solid #edf1f3;
}
.dashboard-actions-overview .panel-head h3{
  margin-top:2px;
  font-size:14px;
  line-height:1.2;
}
.dashboard-actions-overview .panel-head .eyebrow{
  font-size:8.5px;
  letter-spacing:.09em;
  opacity:.62;
}
.dashboard-actions-overview .panel-head .small{
  min-height:28px;
  padding:4px 7px;
  border-radius:7px;
  font-size:9px;
}
.dashboard-actions-overview .decision-stack{
  gap:0;
}
.dashboard-actions-overview .decision-item{
  min-height:0;
  padding:7px 2px;
  border:0;
  border-bottom:1px solid #edf1f3;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.dashboard-actions-overview .decision-item:last-child{
  border-bottom:0;
}
.dashboard-actions-overview button.decision-item:hover{
  background:#f7fafb;
  border-color:#edf1f3;
}
.dashboard-actions-overview .decision-item>div{
  gap:1px;
}
.dashboard-actions-overview .decision-item strong{
  font-size:10.5px;
  line-height:1.25;
}
.dashboard-actions-overview .decision-item span{
  font-size:8.8px;
  line-height:1.25;
}
.dashboard-actions-overview .decision-empty{
  padding:8px 2px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#7a8c96;
}
.dashboard-actions-overview .decision-empty strong{font-size:10px}
.dashboard-actions-overview .decision-empty span{font-size:8.8px}
@media(max-width:1450px){
  .dashboard-actions-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .dashboard-actions-overview{grid-template-columns:1fr}
}


/* --- VizuRisk RC6.13.3 : page Événements allégée --- */
#events.view .section-head{margin-bottom:10px}
#events.view .event-workspace-note{
  margin:0 0 10px;
  padding:0 2px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#667d8a;
  font-size:11.5px;
  line-height:1.4;
}
#eventsList.cards{gap:12px}
#eventsList>.event-coordination-compact{grid-column:1/-1}
.event-coordination-compact{
  margin:0;
  padding:14px 16px;
  border-radius:13px;
  border-color:#dbe6ec;
  box-shadow:none;
  background:#fbfcfd;
}
.event-coordination-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin:0 0 11px;
}
.event-coordination-head h3{
  margin:0 0 3px;
  font-size:16px;
  line-height:1.25;
}
.event-coordination-head .small-note{
  margin:0;
  max-width:920px;
  font-size:11.5px;
  line-height:1.4;
}
.event-coordination-count{
  flex:0 0 auto;
  margin:0;
  padding:4px 8px;
  font-size:10.5px;
  background:#edf3f6;
  color:#415b6a;
}
.event-coordination-compact .coordination-grid{gap:18px}
.event-coordination-compact .coordination-column{min-width:0}
.event-coordination-compact .coordination-column>strong{
  display:block;
  margin-bottom:5px;
  font-size:12px;
  color:#324d5c;
}
.event-coordination-compact .coordination-list{gap:6px;margin-top:0}
.event-coordination-compact .coordination-item{
  min-height:0;
  padding:8px 10px;
  border-radius:8px;
  background:#fff;
}
.event-coordination-compact .coordination-item.linked{background:#f4f8fa}
.event-coordination-compact .coordination-item strong{font-size:12.5px}
.event-coordination-compact .coordination-item span{font-size:11px}
.event-coordination-compact .coordination-item .small{
  min-height:30px;
  padding:5px 9px;
  border-radius:8px;
  font-size:11px;
}
.event-coordination-compact .coordination-list>p.muted{
  margin:4px 0 0;
  font-size:11.5px;
}
@media(max-width:820px){
  .event-coordination-compact{padding:12px 13px}
  .event-coordination-head{gap:10px}
}
@media(max-width:560px){
  .event-coordination-head{flex-direction:column}
}


/* --- VizuRisk RC6.13.4 : carte disponible en veille + Messages non bloquant --- */
/* Le dock quitte la zone d'actions des en-têtes de pages. Il reste toujours visible,
   mais se place en bas à droite comme un accès de messagerie classique. */
.communication-dock,
body.map-mode .communication-dock{
  position:fixed!important;
  top:auto!important;
  right:18px!important;
  bottom:18px!important;
  left:auto!important;
  z-index:20050!important;
  margin:0!important;
  transform:none!important;
}
@media(max-width:760px){
  .communication-dock,
  body.map-mode .communication-dock{
    top:auto!important;
    right:10px!important;
    bottom:10px!important;
    left:auto!important;
  }
  .communication-dock-main{
    min-width:44px!important;
    min-height:44px!important;
    padding:0 10px!important;
    justify-content:center;
  }
  .communication-dock-label{display:none!important}
  .communication-dock-compose{width:40px!important;min-height:44px!important}
  .communication-dock-badge{position:absolute;top:-7px;left:30px;box-shadow:0 0 0 2px #fff}
}
