/* GazDom — jetons partagés (mêmes tokens que le dossier de pitch) */
:root{
  --paper:#F4F7F6; --ink:#16232B; --muted:#5B6B74; --line:#E2E7E5;
  --accent:#155FA0; --accent-deep:#0E4676; --accent-soft:#EAF2F9;
  --ok:#1E8A52; --ok-soft:#E4F3EA;
  --warn:#D97706; --warn-soft:#FBF0DE;
  --bad:#CE3B2E; --bad-soft:#FBE9E7;
  --night:#0D1B26; --night-panel:#14283A; --night-line:#22405A;
  --night-text:#D7E4EE; --night-muted:#7C93A6;
  --sans:"Segoe UI","Avenir Next","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
input,select{font-family:inherit;font-size:inherit}

.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
.dot.ok{background:var(--ok)} .dot.low{background:var(--warn)} .dot.out{background:var(--bad)}

.badge{font-size:11px;font-weight:700;border-radius:6px;padding:3px 8px;white-space:nowrap}
.badge.ok{background:var(--ok-soft);color:var(--ok)}
.badge.low{background:var(--warn-soft);color:#A35A05}
.badge.out{background:var(--bad-soft);color:var(--bad)}

.sea-lbl,.map-lbl{font-family:var(--sans);fill:#93A5AE;font-size:11px;font-weight:600}
.town-lbl{font-family:var(--sans);fill:#4A5A63;font-size:10px;font-weight:600}
.land{fill:#E7EEE9;stroke:#B9C9BF;stroke-width:1.5}
.land-n{fill:#1B3348;stroke:#2E4E68;stroke-width:1.5}
.town-lbl-n{font-family:var(--sans);fill:#8FA6B8;font-size:10px;font-weight:600}

.toast{
  position:fixed;left:50%;transform:translate(-50%,10px);bottom:18px;max-width:min(480px,90vw);
  background:var(--ink);color:#fff;border-radius:10px;padding:11px 16px;
  font-size:13px;font-weight:600;opacity:0;transition:opacity .25s,transform .25s;
  pointer-events:none;z-index:100;
}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}
