:root{font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:#152a42;background:#f2f5fa}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #6fb3ff}h1,h2,h3,p{margin:0 0 12px}h1{font-size:23px;letter-spacing:-.5px}h2{font-size:19px}h3{font-size:16px}small,.muted{color:#60758a}header{background:#0c2340;color:white;min-height:70px;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;gap:16px}.logo{font-size:22px;font-weight:850;letter-spacing:.6px}.logo span{color:#58ccce}.tag{font-size:11px;color:#b9e9ec;border:1px solid #5e829c;border-radius:20px;padding:3px 9px;margin-left:9px}.top-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.top-actions button{border:1px solid #56718b;color:white;background:#1c3958}button,.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:650;background:#e7edf5;color:#1d3856}.primary{background:#1761b1;color:white}.danger{background:#c93439;color:white}.success{background:#147960;color:white}.outline{background:white;border:1px solid #d8e2ec}.ghost{background:transparent;color:inherit}.shell{max-width:1760px;margin:auto;padding:20px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:17px}.metric,.panel{background:#fff;border:1px solid #e0e7f0;border-radius:16px;box-shadow:0 4px 20px #193b5a09}.metric{padding:15px 18px}.metric b{display:block;font-size:27px;margin:4px 0}.metric small{font-weight:650}.layout{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:16px}.panel{overflow:hidden}.panelHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;border-bottom:1px solid #e7ebf1}.panelHead h2{margin:0}.map{height:min(67vh,700px);min-height:420px}.side{display:flex;flex-direction:column;gap:16px}.list{padding:8px 12px;max-height:395px;overflow:auto}.item{display:flex;align-items:center;justify-content:space-between;gap:9px;border-bottom:1px solid #edf1f6;padding:12px 6px}.item:last-child{border:0}.item button{font-size:13px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#2b8f80;margin-right:7px}.dot.red{background:#cc4141}.dot.orange{background:#e8a339}.pill{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:20px;background:#e9eef6;color:#34516b}.pill.active{background:#ffe7e8;color:#a3222e}.pill.closed{background:#e3f2e9;color:#236544}.filters{display:flex;flex-wrap:wrap;gap:7px;padding:11px 16px}.filters label{font-size:13px;display:flex;gap:5px;align-items:center}.overlay{position:fixed;z-index:5000;inset:0;display:grid;place-items:center;padding:14px;background:#0a1e31bb}.hidden{display:none!important}.dialog{position:relative;background:white;border-radius:18px;padding:24px;width:min(650px,100%);max-height:90dvh;overflow:auto;box-shadow:0 20px 70px #0004}.close{position:absolute;right:14px;top:12px;background:#f0f3f8}.dialog h2{padding-right:45px;margin-bottom:20px}.field{display:flex;flex-direction:column;gap:6px;margin:12px 0}.field label{font-weight:700;font-size:13px}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #ccd8e5;border-radius:10px;background:white;color:#172e48}.field textarea{min-height:95px}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.notice{background:#fff5df;border:1px solid #ffe2a5;color:#6a4810;border-radius:10px;padding:10px 13px;margin:12px 0}.alertBox{background:#fff0f0;border:1px solid #f5c7ca;color:#9a1d25;border-radius:14px;padding:16px;margin-bottom:13px}.alertBox strong{font-size:19px}.mobileCards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick{min-height:110px;text-align:left;border:1px solid #e1e8ef;background:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:10px;font-size:15px}.quick strong{font-size:17px}.banner{padding:18px;background:#eaf1fb;border-radius:13px;margin-bottom:16px}.banner h2{margin:0 0 7px}.fieldWrap{max-width:800px;margin:auto}.login{max-width:410px;margin:65px auto;padding:30px;background:white;border-radius:20px;box-shadow:0 15px 45px #102e511c}.login .logo{color:#0c2340;font-size:32px}.login .demoUsers{display:grid;grid-template-columns:1fr 1fr;gap:8px}.login .demoUsers button{font-size:12px;padding:9px}.center{text-align:center}.toast{position:fixed;z-index:6000;bottom:22px;right:22px;background:#102a47;color:white;border-radius:12px;box-shadow:0 10px 35px #0003;padding:13px 18px;max-width:90vw}.alarm{animation:blink 1.4s infinite}@keyframes blink{50%{background:#ffdddf}}.leaflet-popup-content button{padding:5px 10px}.tableWrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:11px 8px;border-bottom:1px solid #e8ecf1;font-size:13px}th{color:#52677c}.mobileNav{display:none}.intro{margin:0 0 14px;color:#60758a}.sectionTitle{margin:20px 0 10px}.roleBadge{background:#284a69;padding:5px 9px;border-radius:8px;color:white;font-size:12px} @media(max-width:1050px){.layout{grid-template-columns:1fr}.side{display:grid;grid-template-columns:1fr 1fr}.map{height:55vh}}@media(max-width:670px){header{padding:12px 15px;align-items:flex-start}.logo{font-size:19px}.tag{display:block;width:max-content;margin:5px 0 0}.top-actions{justify-content:flex-end}.top-actions button{font-size:12px;padding:7px 9px}.shell{padding:12px}.metrics{grid-template-columns:repeat(2,1fr);gap:8px}.metric{padding:12px}.metric b{font-size:22px}.side{display:flex}.map{height:49dvh;min-height:315px}.panelHead{padding:13px}.dialog{padding:19px 15px}.mobileCards{grid-template-columns:1fr 1fr}.login{margin:26px 12px}.item{align-items:flex-start}.actions button{flex:1}.fieldWrap .panel{margin-bottom:14px}}

.mapToolbar{display:flex;flex-direction:column;gap:2px;border-bottom:1px solid #e5ecf3}.mapTools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:0 15px 13px}.mapTools select,.mapTools input{padding:9px 12px;border:1px solid #c9d6e4;border-radius:9px;background:white;min-width:160px}.mapTools input{flex:1;min-width:200px}.directory{max-height:57vh;overflow:auto}.map{background:#e5edf2}.leaflet-container{font:inherit}@media(max-width:670px){.mapTools{padding:0 12px 12px}.mapTools select,.mapTools input,.mapTools button{width:100%}.filters{gap:8px}.map{min-height:390px}}

/* V5 : interface d'alerte dédiée, affichée sur tout format */
.vigie-emergency{position:fixed;z-index:99999;inset:0;overflow-y:auto;background:radial-gradient(circle at 50% 0%,#6c1822,#180a14 75%);color:#fff;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,32px)}
.vigie-emergency-card{width:min(620px,100%);text-align:center;padding:clamp(14px,3vw,30px);border:1px solid #ffffff50;border-radius:24px;background:#2c111dee;box-shadow:0 18px 80px #0008}
.vigie-demo{background:#fff1c9;color:#6e3b00;padding:9px;border-radius:9px;font-size:12px;font-weight:900;letter-spacing:.035em}
.vigie-beacon{font-size:clamp(44px,11vw,80px);animation:vigiepulse .9s infinite alternate;margin:12px 0 2px}
@keyframes vigiepulse{from{opacity:.45;transform:scale(.93)}to{opacity:1;transform:scale(1.08)}}
.vigie-urgent-kicker{font-weight:900;letter-spacing:.22em;color:#ffadad;font-size:13px}
.vigie-emergency h1{font-size:clamp(24px,6vw,37px);line-height:1.15;margin:12px 0}
.vigie-type{display:inline-block;padding:5px 12px;border:1px solid #fa8d8d;border-radius:20px}
.vigie-instruction{background:#fff;color:#2d1e24;text-align:left;padding:18px;border-radius:12px;margin:18px 0;white-space:pre-wrap;font-size:clamp(16px,3vw,21px);font-weight:700}
.vigie-place{font-size:13px;color:#ffd0d0}
.vigie-urgent-actions{display:grid;gap:9px;margin-top:17px}
.vigie-urgent-actions button{min-height:52px;font-size:16px}
.vigie-ack{background:#fff;color:#6b111b}.vigie-help{background:#ffc3ca;color:#5f0b15}.vigie-sound{background:transparent;color:white;border:1px solid #fff9}
.vigie-limit{color:#d8b3b8;font-size:12px;line-height:1.4;margin:14px 0 0}
@media(max-height:680px){.vigie-emergency{align-items:flex-start}.vigie-beacon{font-size:40px;margin:4px}.vigie-instruction{margin:10px 0;padding:12px}}
