*{box-sizing:border-box}
:root{
  --bg:#0b0e13;--panel:rgba(13,17,24,.94);--panel2:#151a22;
  --border:rgba(255,255,255,.14);--text:#f4f6f9;--muted:#9da6b2;
  --orange:#ff7800;--blue:#55a8ff;--red:#650b12;--red2:#a91c27;
}
html,body,#map{width:100%;height:100%;margin:0}
html{background:#0b0e13}
body{overflow:hidden;background:#0b0e13;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
button,input{font:inherit}button{color:inherit;-webkit-tap-highlight-color:transparent}
#map{position:fixed;inset:0;z-index:1}
/* Fix : Leaflet met #ddd (gris/blanc) en fond par défaut derrière les tuiles.
   En dézoomant sous la couverture des tuiles (hors -85°/+85° de latitude,
   ou écran trop grand pour le niveau de zoom), ce fond clair apparaissait.
   On le remplace par la couleur du thème sombre du site. */
#map,.leaflet-container{background:#0b0e13!important}
.leaflet-control-zoom{z-index:600!important;margin-top:125px!important;margin-right:8px!important}
.leaflet-control-zoom a{background:#f4f4f4!important;color:#2372cf!important;border:0!important}
.leaflet-control-attribution{background:rgba(8,10,14,.72)!important;color:#9ca4b0!important}
.leaflet-control-attribution a{color:#aeb8c6!important}
.glass{background:var(--panel);border:1px solid var(--border);box-shadow:0 14px 45px rgba(0,0,0,.42);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}

.topbar{position:fixed;z-index:1500;top:max(10px,env(safe-area-inset-top));left:12px;right:12px;min-height:92px;border-radius:26px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-fire{font-size:35px}.brand-logo{width:60px;height:60px;border-radius:50%;object-fit:cover;flex:none;display:block}.brand-copy{min-width:0}
h1{font-size:23px;line-height:1.1;margin:0 0 7px;font-weight:780;letter-spacing:-.5px;white-space:nowrap}
.brand p{margin:0;color:#a5adb8;font-size:13px}
.top-actions{display:flex;align-items:center;gap:7px;flex:none}
.action-btn,.round-btn{height:54px;border-radius:18px;border:1px solid rgba(255,255,255,.15);background:rgba(30,34,43,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);font-weight:550;white-space:nowrap}
.action-btn{padding:0 15px;font-size:16px}.action-btn span:first-child{font-size:22px;margin-right:5px}
.action-btn.active{border-color:#3b966d;background:rgba(31,61,50,.6);color:#eafff5}
.round-btn{width:54px;font-size:24px}.round-btn:active,.action-btn:active{transform:scale(.97)}
.fire-pill{position:fixed;z-index:1400;top:calc(max(10px,env(safe-area-inset-top)) + 105px);left:30px;right:30px;height:62px;border-radius:34px;display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(35,27,20,.93);border-color:rgba(255,120,0,.34);font-size:18px}
.fire-pill strong{font-size:26px}.fire-dot{width:13px;height:13px;background:var(--orange);border-radius:50%;box-shadow:0 0 14px rgba(255,120,0,.62)}

.map-clear-btn{position:fixed;z-index:1450;right:16px;top:calc(max(10px,env(safe-area-inset-top)) + 180px);height:44px;border:1px solid var(--border);border-radius:15px;padding:0 13px;background:rgba(14,18,24,.9);font-size:13px}
.route-panel{position:fixed;z-index:2000;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-height:min(76dvh,650px);overflow:auto;border-radius:27px;padding:14px 15px 16px}
.sheet-grab{width:42px;height:4px;background:#606874;border-radius:5px;margin:0 auto 10px;opacity:.7}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.panel-head h2{margin:0 0 4px;font-size:21px}.panel-head p{margin:0;color:var(--muted);font-size:13px}
.clear-btn{height:45px;padding:0 15px;border:1px solid var(--border);border-radius:15px;background:#1d222a;font-size:14px}
.field-row{position:relative;display:flex;align-items:center;min-height:67px;border:1px solid rgba(255,255,255,.13);border-radius:19px;background:#0e1218;margin-top:9px;padding:0 8px 0 16px}
.field-row:focus-within{border-color:#388fe4;box-shadow:0 0 0 2px rgba(56,143,228,.15)}
.field-dot{width:17px;height:17px;border-radius:50%;flex:none;margin-right:13px}.field-dot.start{background:#f7f8fa}.field-dot.destination{background:#ff7c24}
.field-wrap{position:relative;min-width:0;flex:1}.field-wrap input{width:100%;height:62px;border:0;outline:0;background:transparent;color:#f3f5f8;font-size:16px;min-width:0}
.field-wrap input::placeholder{color:#9fa7b1}.field-icon{width:49px;height:49px;border-radius:15px;border:1px solid var(--border);background:#20252e;font-size:20px;flex:none}
.suggestions{position:absolute;z-index:5000;left:-31px;right:-7px;top:62px;border:1px solid rgba(255,255,255,.16);background:#151a21;border-radius:16px;box-shadow:0 18px 40px rgba(0,0,0,.7);overflow:hidden}
.suggestion{padding:14px 15px;border-bottom:1px solid rgba(255,255,255,.08);font-size:15px;line-height:1.35;cursor:pointer}.suggestion:last-child{border:0}.suggestion:active{background:#262c36}
.examples{color:#8f98a5;font-size:12px;margin:8px 4px}.example-address{background:none;border:0;color:#cbd3df;text-decoration:underline;padding:0;font-size:12px;text-align:left}
.route-actions{display:flex;gap:8px;margin-top:10px}.secondary-btn,.route-btn{height:52px;border-radius:16px;border:1px solid var(--border);font-weight:700}.secondary-btn{width:52px;background:#1b2028;font-size:23px}.route-btn{flex:1;background:#1766aa;border-color:#3e9bea;font-size:15px}.route-btn:disabled{opacity:.55}
.safety-btn{width:100%;height:50px;margin-top:10px;border-radius:16px;border:1px solid rgba(46,175,110,.55);background:rgba(46,175,110,.16);color:#bdf3d3;font-weight:700;font-size:14px}
.safety-btn:active{transform:scale(.98)}
.route-status{min-height:20px;color:#9ca4b0;font-size:13px;margin-top:8px}.route-summary{padding:10px 12px;border-radius:13px;background:#161c24;border:1px solid rgba(255,255,255,.08);font-size:14px;margin-top:6px}
.text-clear{margin-top:8px;border:0;background:none;color:#aab2bd;text-decoration:underline;font-size:12px}
.station-status{position:fixed;z-index:1600;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:10px 14px;border-radius:15px;font-size:13px;white-space:nowrap}
.legend{position:fixed;z-index:900;right:12px;bottom:max(18px,env(safe-area-inset-bottom));padding:11px 13px;border-radius:17px;display:flex;gap:13px;font-size:12px;white-space:nowrap}
.legend span{display:flex;align-items:center;gap:5px}.legend-fire{width:14px;height:14px;border-radius:50%;background:#ff7800;display:inline-block}
.legend-station{width:17px;height:17px;border-radius:50%;background:#8b0000;color:white;text-align:center;font-weight:900}.legend-gps{color:#55a8ff;font-size:20px}
.legend-canadair{font-size:14px}
.canadair-list{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:180px;overflow-y:auto}
.canadair-diag{margin-top:8px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);font-size:13px;line-height:1.5}
.canadair-row{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.05)}
.canadair-row .status-air{color:#ff8a4d}
.canadair-row .status-ground{color:#d8b34a}
#canadairBtn.active{background:rgba(255,106,0,.35);border-color:rgba(255,106,0,.6)}
.canadair-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.station-chip{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#cfd6e0;
  border-radius:999px;padding:6px 12px;font-size:13px;min-height:34px;cursor:pointer;transition:.15s}
.station-chip.active{background:rgba(139,0,0,.5);border-color:rgba(255,90,31,.7);color:#fff}
.canadair-chip.active{background:rgba(255,90,31,.35);border-color:rgba(255,90,31,.7);color:#fff}
.canadair-chip:not(.active){opacity:.55}
.toast{position:fixed;z-index:6000;left:50%;bottom:90px;transform:translate(-50%,18px);opacity:0;pointer-events:none;background:#10141b;border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:12px 16px;box-shadow:0 12px 30px rgba(0,0,0,.55);font-size:14px;max-width:92%;text-align:center;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
.loading{position:fixed;z-index:5000;top:50%;left:50%;transform:translate(-50%,-50%);padding:14px 17px;border-radius:16px;display:flex;gap:9px;align-items:center;font-size:14px}.loading.hidden{display:none}.spinner{width:17px;height:17px;border:2px solid #555;border-top-color:#ff7800;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.leaflet-routing-container{display:none!important}.gps-div{background:none!important;border:0!important}
@media(max-width:680px){
  .brand-copy h1{font-size:20px}.brand p{font-size:12px}.brand-fire{font-size:31px}.brand-logo{width:54px;height:54px}
  .action-btn{height:52px;padding:0 12px}.round-btn{height:52px;width:52px}
  .fire-pill{top:calc(max(10px,env(safe-area-inset-top)) + 105px);height:60px;left:28px;right:28px}
  .route-panel{max-height:calc(100dvh - 24px);bottom:max(12px,env(safe-area-inset-bottom))}
  .legend{display:none}
}
@media(max-width:470px){
  .topbar{min-height:88px}.brand{gap:7px}.brand-fire{font-size:28px}.brand-logo{width:48px;height:48px}.brand-copy h1{font-size:18px}.brand p{display:none}
  .action-btn{width:46px;padding:0;font-size:0}.action-btn span:first-child{font-size:21px;margin:0}.round-btn{width:42px;height:46px;font-size:21px}.top-actions{gap:5px}
  .fire-pill{font-size:16px}.fire-pill strong{font-size:23px}
  .map-clear-btn{top:calc(max(10px,env(safe-area-inset-top)) + 177px)}
}

.panel-head-actions{display:flex;gap:7px;flex:none}
.route-panel{transition:transform .22s ease,opacity .18s ease}
.route-panel.collapsed{display:none}
.route-collapsed{position:fixed;z-index:2100;left:50%;transform:translateX(-50%);bottom:max(18px,env(safe-area-inset-bottom));height:48px;padding:0 18px;border:1px solid rgba(255,120,0,.35);border-radius:18px;background:rgba(16,19,24,.95);font-weight:700}
.route-collapsed span{margin-left:8px;color:#aeb6c1;font-weight:500}
.station-panel{position:fixed;z-index:2200;right:14px;top:calc(max(10px,env(safe-area-inset-top)) + 155px);width:min(370px,calc(100vw - 28px));max-height:calc(100dvh - max(10px,env(safe-area-inset-top)) - 175px - max(10px,env(safe-area-inset-bottom)));overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:20px;padding:14px}
.station-panel-head{display:flex;justify-content:space-between;align-items:center;font-size:18px}
.station-panel p{color:#aab2bd;font-size:13px;line-height:1.4;margin:9px 0}
.mini-close{width:36px;height:36px;border-radius:12px;border:1px solid var(--border);background:#1d222a}
.station-scope{display:grid;grid-template-columns:1fr;gap:7px}
.station-scope button{height:44px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:#191e26;text-align:left;padding:0 12px;font-weight:650}
.station-scope button:active{transform:scale(.98)}
.station-panel small{display:block;color:#818b98;font-size:11px;line-height:1.35;margin-top:9px}
.station-status{max-width:90vw;text-align:center;white-space:normal}
@media(max-width:470px){
  .panel-head-actions .clear-btn{padding:0 10px;font-size:12px}
  .station-panel{top:calc(max(10px,env(safe-area-inset-top)) + 150px)}
}

.station-panel strong{color:#fff}.station-panel{border-color:rgba(165,28,39,.35)}

.station-panel b{color:#fff}.station-panel small{opacity:.9}

.country-label{display:block;color:#9da6b2;font-size:12px;margin:10px 2px 5px}
.country-select{width:100%;height:45px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#10151c;color:#f4f6f9;padding:0 12px;outline:0}
.country-select:focus{border-color:#388fe4}
.station-scope button{min-height:48px}

#fireSettingsBtn.attention{
  border-color:rgba(255,120,0,.7);
  animation:settingsPulse 1.6s ease-in-out infinite;
}
@keyframes settingsPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(255,120,0,.55)}
  50%{box-shadow:0 0 0 8px rgba(255,120,0,0)}
}

/* Flash discret sur le compteur de feux dès que le chiffre change, pour
   que la mise à jour se remarque sans être agressive. */
.fire-pill.flash{animation:fireCountFlash .9s ease-out}
.fire-pill.flash .fire-dot{animation:fireDotPulse .9s ease-out}
@keyframes fireCountFlash{
  0%{background:rgba(255,120,0,.5);box-shadow:0 0 0 0 rgba(255,120,0,.55)}
  100%{background:rgba(35,27,20,.93);box-shadow:0 0 0 14px rgba(255,120,0,0)}
}
@keyframes fireDotPulse{
  0%{transform:scale(1)}
  35%{transform:scale(1.6)}
  100%{transform:scale(1)}
}
.tip-text{font-size:15px;line-height:1.5;background:rgba(255,120,0,.08);border:1px solid rgba(255,120,0,.22);border-radius:14px;padding:12px 14px}
.settings-row{margin-top:6px}
.settings-row input{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px}

/* Mentions légales discrètes, en noir pour rester lisibles sur le fond de
   carte clair. Empilées en bas à gauche (la légende occupe déjà le bas à
   droite) : l'avertissement au-dessus, le copyright en dessous. */
.legal-notes{
  position:fixed;z-index:1600;left:10px;
  bottom:calc(env(safe-area-inset-bottom) + 3px);
  display:flex;flex-direction:column;gap:2px;
  pointer-events:none;
}
.legal-note{
  font-size:9.5px;color:#000;font-weight:600;
  text-shadow:0 1px 2px rgba(255,255,255,.65),0 0 3px rgba(255,255,255,.5);
  white-space:nowrap;letter-spacing:.01em;
}
.legal-note.right{text-transform:lowercase}
@media (max-width:420px){
  .legal-note{font-size:8.5px}
}

/* ---- Ma sécurité : rayon de danger + partage de position ---- */
.safety-section{border-top:1px solid rgba(255,255,255,.1);margin-top:12px;padding-top:12px}
.safety-section:first-of-type{border-top:0;margin-top:6px;padding-top:0}
.safety-title{display:block;font-size:15px}
.safety-main{width:100%;height:50px;border:0;border-radius:14px;background:linear-gradient(135deg,#ff7800,#e8420b);color:#fff;font-weight:700;font-size:16px;margin-top:6px}
.safety-main:active{transform:scale(.98)}
.safety-main.on{background:linear-gradient(135deg,#1f9d55,#177a42)}
.safety-input{width:100%;height:44px;border-radius:13px;border:1px solid rgba(255,255,255,.13);background:#0e1218;color:#fff;padding:0 12px;font-size:15px;margin-bottom:8px}
.safety-address{display:flex;gap:7px;margin:8px 0}.safety-address .safety-input{margin-bottom:0;flex:1}
.safety-address button{width:56px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:#191e26;font-weight:650}
.safety-radius{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:8px 0}
.safety-radius button{height:44px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:#191e26;font-weight:650}
.safety-radius button.active{border-color:#ff7800;background:rgba(255,120,0,.18);color:#fff}
.safety-status{color:#c8cfd8}
.safety-link{display:flex;align-items:center;min-height:44px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:#191e26;padding:0 12px;font-weight:650;color:#fff;text-decoration:none}
.danger-banner{position:fixed;z-index:3500;left:50%;transform:translateX(-50%);top:calc(max(10px,env(safe-area-inset-top)) + 4px);width:min(680px,calc(100vw - 20px));display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#c1121f,#e8420b);color:#fff;font-weight:700;font-size:16px;line-height:1.3;box-shadow:0 8px 30px rgba(193,18,31,.55);animation:dangerPulse 1.2s ease-in-out infinite}
.danger-banner[hidden]{display:none}
.danger-banner span{flex:1}
.danger-banner button{flex:none;width:36px;height:36px;border-radius:50%;border:0;background:rgba(0,0,0,.28);color:#fff;font-size:16px}
@keyframes dangerPulse{0%,100%{box-shadow:0 8px 30px rgba(193,18,31,.55)}50%{box-shadow:0 8px 40px rgba(255,120,0,.95)}}
.danger-pick-cursor,.danger-pick-cursor .leaflet-interactive{cursor:crosshair !important}

#safetyBtn{position:relative}
#safetyBtn.alert-on::after{content:"";position:absolute;top:7px;right:7px;width:11px;height:11px;border-radius:50%;background:#2ecc71;border:2px solid #1b1f27;box-shadow:0 0 0 0 rgba(46,204,113,.7);animation:alertDot 1.8s ease-out infinite}
@keyframes alertDot{0%{box-shadow:0 0 0 0 rgba(46,204,113,.7)}100%{box-shadow:0 0 0 9px rgba(46,204,113,0)}}
