/* ═══════════════════════════════════════════
   WZ — Wizard B2B /etude-solaire-entreprise/
   Layout tiers-de-confiance 2 colonnes. DA navy/orange/blanc. IBM Plex Sans.
   Objectif : outil B2B sérieux — pas d'appli générique.
   ═══════════════════════════════════════════ */
.wz-body { margin: 0; background: #1E2D3F; }
.wz-body .wz-app *, .wz-body .wz-app *::before, .wz-body .wz-app *::after { box-sizing: border-box; }

.wz-app { font-family: var(--ff-body, 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif); color: var(--c-navy, #1E2D3F); display: grid; grid-template-columns: minmax(340px, 40%) 1fr; min-height: 100dvh; }

/* ══════ COLONNE AUTORITÉ (navy) ══════ */
.wz-rail { position: relative; display: flex; flex-direction: column; gap: 40px; padding: 40px 44px; color: #fff; background: radial-gradient(120% 80% at 0% 0%, #26394f 0%, #1E2D3F 55%); overflow: hidden; }
.wz-rail::after { content: ''; position: absolute; top: -80px; right: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(245,166,36,.16), transparent 70%); pointer-events: none; }
.wz-rail-logo { position: relative; z-index: 1; display: inline-block; }
.wz-rail-logo img { height: 30px; width: auto; display: block; }

.wz-rail-body { position: relative; z-index: 1; flex: 1 1 auto; display: flex; flex-direction: column; }
.wz-rail-eyebrow { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; color: var(--c-orange, #F5A624); margin: 0 0 14px; }
.wz-rail-title { font-size: clamp(1.35rem, 2vw, 1.7rem); font-weight: 700; line-height: 1.28; letter-spacing: -.02em; color: #fff; margin: 0 0 40px; max-width: 22ch; }

/* Stepper vertical numéroté */
.wz-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.wz-nav-step { display: flex; align-items: center; gap: 16px; padding: 11px 0; color: rgba(255,255,255,.42); transition: color .25s; }
.wz-nav-num { flex: none; width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .02em; border: 1.5px solid rgba(255,255,255,.14); color: rgba(255,255,255,.55); transition: all .25s; }
.wz-nav-lbl { font-size: 14.5px; font-weight: 600; letter-spacing: -.01em; }
.wz-nav-step.is-active { color: #fff; }
.wz-nav-step.is-active .wz-nav-num { background: var(--c-orange, #F5A624); border-color: var(--c-orange, #F5A624); color: #fff; box-shadow: 0 6px 16px rgba(245,166,36,.35); }
.wz-nav-step.is-done { color: rgba(255,255,255,.72); }
.wz-nav-step.is-done .wz-nav-num { background: rgba(245,166,36,.16); border-color: rgba(245,166,36,.4); color: var(--c-orange, #F5A624); }

.wz-rail-illus { margin-top: auto; padding-top: 32px; display: flex; justify-content: center; }
.wz-rail-illus img { width: 100%; max-width: 270px; height: auto; opacity: .96; filter: drop-shadow(0 18px 34px rgba(0,0,0,.28)); transition: opacity .3s ease; }

.wz-rail-foot { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 10px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.1); }
.wz-rail-trust { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 12.5px; font-weight: 500; color: rgba(255,255,255,.62); }
.wz-rail-trust svg { flex: none; color: var(--c-orange, #F5A624); }

/* ══════ COLONNE TRAVAIL (blanc) ══════ */
.wz-panel { display: flex; flex-direction: column; background: #fff; min-width: 0; }
.wz-panel-top { flex: none; display: flex; align-items: center; gap: 18px; padding: 22px 48px; border-bottom: 1px solid var(--c-border, rgba(30,45,63,.07)); }
.wz-progress { flex: 1 1 auto; height: 5px; border-radius: 999px; background: rgba(30,45,63,.08); overflow: hidden; }
.wz-progress-fill { height: 100%; width: 20%; border-radius: 999px; background: var(--c-orange, #F5A624); transition: width .5s cubic-bezier(.4,0,.2,1); }
.wz-progress-label { flex: none; font-size: 12.5px; font-weight: 700; color: var(--c-navy, #1E2D3F); font-variant-numeric: tabular-nums; }
.wz-progress-label span { color: var(--c-text-muted, #6B7888); font-weight: 500; }
.wz-help { flex: none; display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 700; color: var(--c-navy, #1E2D3F); text-decoration: none; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--c-border, rgba(30,45,63,.12)); transition: border-color .18s, color .18s; }
.wz-help:hover { border-color: var(--c-orange, #F5A624); color: var(--c-orange-hover, #FF7A00); }
.wz-help svg { color: var(--c-orange, #F5A624); }

.wz-panel-main { flex: 1 1 auto; display: flex; align-items: center; padding: 40px 48px 64px; overflow-y: auto; }
.wz-shell { width: 100%; max-width: 560px; }
.wz-stage { transition: opacity .18s ease, transform .18s ease; }
.wz-stage.is-leaving { opacity: 0; transform: translateX(-8px); }
.wz-stage.is-entering { opacity: 0; transform: translateX(12px); }

.wz-q { margin-bottom: 26px; }
.wz-q h2 { font-family: inherit; font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; line-height: 1.22; letter-spacing: -.03em; color: var(--c-navy, #1E2D3F); margin: 0 0 8px; }
.wz-sub { font-size: 15px; color: var(--c-text-muted, #6B7888); line-height: 1.55; margin: 0; max-width: 50ch; }

/* Tuiles — épurées, denses, "outil" (pas d'appli pastel) */
.wz-tiles { display: flex; flex-direction: column; gap: 10px; }
.wz-tiles--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wz-tile { position: relative; display: flex; align-items: center; gap: 15px; width: 100%; min-height: 72px; text-align: left; font-family: inherit; background: #fff; border: 1.5px solid var(--c-border, rgba(30,45,63,.13)); border-radius: 12px; padding: 15px 18px; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; transition: border-color .16s, background .16s, box-shadow .16s, transform .12s; }
.wz-tile::before { content: ''; position: absolute; left: -1.5px; top: 14px; bottom: 14px; width: 3px; border-radius: 3px; background: var(--c-orange, #F5A624); opacity: 0; transform: scaleY(.4); transition: opacity .16s, transform .16s; }
.wz-tile:hover { border-color: rgba(30,45,63,.28); box-shadow: 0 8px 22px rgba(30,45,63,.08); }
.wz-tile:hover::before { opacity: 1; transform: scaleY(1); }
.wz-tile:active { transform: scale(.995); }
.wz-tile.is-selected { border-color: var(--c-orange, #F5A624); background: rgba(245,166,36,.05); }
.wz-tile.is-selected::before { opacity: 1; transform: scaleY(1); }
.wz-tile:focus-visible { outline: 2px solid var(--c-orange, #F5A624); outline-offset: 2px; }
.wz-tile-ic { flex: none; width: 42px; height: 42px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--c-bg, #FAF9F6); color: var(--c-navy, #1E2D3F); transition: background .16s, color .16s; }
.wz-tile:hover .wz-tile-ic, .wz-tile.is-selected .wz-tile-ic { background: var(--c-navy, #1E2D3F); color: #fff; }
.wz-tiles--2 .wz-tile-ic { width: 38px; height: 38px; }
.wz-tile-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wz-tile-t { font-size: 15.5px; font-weight: 700; color: var(--c-navy, #1E2D3F); letter-spacing: -.01em; }
.wz-tile-d { font-size: 12.5px; color: var(--c-text-muted, #6B7888); line-height: 1.4; }
.wz-tile-go { margin-left: auto; flex: none; color: rgba(30,45,63,.28); transition: color .16s, transform .16s; }
.wz-tile:hover .wz-tile-go { color: var(--c-orange, #F5A624); transform: translateX(3px); }

/* Champ adresse */
.wz-field { position: relative; }
.wz-input { width: 100%; padding: 16px 18px; font-family: inherit; font-size: 16px; font-weight: 500; color: var(--c-navy, #1E2D3F); background: #fff; border: 1.5px solid var(--c-border, rgba(30,45,63,.16)); border-radius: 12px; transition: border-color .18s, box-shadow .18s; }
.wz-input:focus { outline: none; border-color: var(--c-orange, #F5A624); box-shadow: 0 0 0 3px rgba(245,166,36,.15); }
.wz-input::placeholder { color: rgba(30,45,63,.4); }
.wz-ac { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 20; list-style: none; margin: 0; padding: 6px; background: #fff; border: 1.5px solid var(--c-border, rgba(30,45,63,.14)); border-radius: 12px; box-shadow: 0 16px 40px rgba(30,45,63,.16); max-height: 280px; overflow-y: auto; }
.wz-ac[hidden] { display: none; }
.wz-ac-item { padding: 12px 14px; border-radius: 8px; font-size: 14.5px; color: var(--c-navy, #1E2D3F); cursor: pointer; }
.wz-ac-item:hover { background: rgba(245,166,36,.08); }

.wz-next { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; padding: 15px 28px; font-family: inherit; font-size: 15.5px; font-weight: 700; color: #fff; background: var(--c-navy, #1E2D3F); border: none; border-radius: 10px; cursor: pointer; touch-action: manipulation; transition: background .18s, transform .18s, box-shadow .18s; }
.wz-next:hover:not(:disabled) { background: #26394f; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(30,45,63,.22); }
.wz-next:disabled { opacity: .4; cursor: not-allowed; }
.wz-next svg { color: var(--c-orange, #F5A624); }

/* Stubs (carte / verdict — modules à venir) */
.wz-map-stub { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 44px 24px; border: 1.5px dashed var(--c-border, rgba(30,45,63,.2)); border-radius: 14px; color: var(--c-text-muted, #6B7888); background: var(--c-bg, #FAF9F6); font-size: 14px; }
.wz-map-stub em { font-size: 12.5px; opacity: .8; }
.wz-note { margin: 16px 0 0; font-size: 14px; color: var(--c-text-secondary, #475569); }
.wz-note strong { color: var(--c-navy, #1E2D3F); }
.wz-recap { border: 1px solid var(--c-border, rgba(30,45,63,.1)); border-radius: 12px; padding: 22px 24px; font-size: 14.5px; background: var(--c-bg, #FAF9F6); }
.wz-recap ul { margin: 8px 0 0; padding-left: 18px; color: var(--c-text-secondary, #475569); line-height: 1.7; }

/* ══════ MODULE CARTE + MESURE D'EMPRISE ══════ */
.wz-carte-wrap { position: relative; }
.wz-carte { height: 340px; width: 100%; border-radius: 14px; overflow: hidden; border: 1.5px solid var(--c-border, rgba(30,45,63,.14)); background: #eef1f4; z-index: 0; }
.wz-carte .leaflet-container { border-radius: 14px; font-family: inherit; }
.wz-carte-status { display: flex; align-items: center; gap: 9px; margin: 12px 0 0; font-size: 13.5px; font-weight: 600; color: var(--c-text-muted, #6B7888); }
.wz-carte-status svg { flex: none; color: var(--c-text-muted, #6B7888); }
.wz-carte-status.is-searching { color: var(--c-navy, #1E2D3F); }
.wz-carte-status.is-searching svg { color: var(--c-orange, #F5A624); animation: wz-spin 1s linear infinite; }
.wz-carte-status.is-found { color: #15803d; }
.wz-carte-status.is-found svg { color: #15803d; }
@keyframes wz-spin { to { transform: rotate(360deg); } }

/* Emprise (contour bâtiment) + panneaux posés */
.wz-bat-poly { filter: drop-shadow(0 0 6px rgba(245,166,36,.45)); }
.wz-panel-cell { opacity: 0; transition: opacity .35s ease; }
.wz-panel-cell.is-on { opacity: 1; }
.wz-draw-vert { filter: drop-shadow(0 1px 3px rgba(0,0,0,.4)); }
.wz-carte.wz-drawing { cursor: crosshair; }

/* Bandeau de mesure (readout) */
.wz-measure { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 18px; border: 1.5px solid var(--c-border, rgba(30,45,63,.12)); border-radius: 14px; overflow: hidden; background: var(--c-border, rgba(30,45,63,.12)); }
.wz-measure[hidden] { display: none; }
.wz-measure-stat { display: flex; flex-direction: column; gap: 3px; padding: 16px 14px; background: #fff; text-align: center; }
.wz-measure-v { font-size: clamp(1.15rem, 2.2vw, 1.5rem); font-weight: 800; letter-spacing: -.02em; color: var(--c-navy, #1E2D3F); font-variant-numeric: tabular-nums; }
.wz-measure-l { font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--c-text-muted, #6B7888); }
.wz-measure--verdict .wz-measure-stat { background: var(--c-bg, #FAF9F6); }

.wz-skip { display: block; width: 100%; margin-top: 14px; padding: 4px; background: none; border: none; font-family: inherit; font-size: 13.5px; font-weight: 600; color: var(--c-text-muted, #6B7888); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.wz-skip:hover { color: var(--c-navy, #1E2D3F); }

/* Verdict — lecture d'obligation */
.wz-oblig { display: flex; flex-direction: column; gap: 5px; margin-top: 16px; padding: 18px 20px; border-radius: 14px; border-left: 4px solid; }
.wz-oblig-t { font-size: 15.5px; font-weight: 800; letter-spacing: -.01em; }
.wz-oblig-d { font-size: 13.5px; line-height: 1.55; color: var(--c-text-secondary, #475569); }
.wz-oblig--alert { background: rgba(245,166,36,.09); border-color: var(--c-orange, #F5A624); }
.wz-oblig--alert .wz-oblig-t { color: var(--c-navy, #1E2D3F); }
.wz-oblig--warn { background: rgba(30,45,63,.05); border-color: var(--c-navy, #1E2D3F); }
.wz-oblig--warn .wz-oblig-t { color: var(--c-navy, #1E2D3F); }
.wz-oblig--ok { background: rgba(21,128,61,.08); border-color: #15803d; }
.wz-oblig--ok .wz-oblig-t { color: #15803d; }

/* ══════ DOSSIER RÉGLEMENTAIRE (sourcé) ══════ */
.wz-legal { margin-top: 16px; border: 1px solid var(--c-border, rgba(30,45,63,.12)); border-radius: 14px; padding: 18px 20px; background: var(--c-bg, #FAF9F6); }
.wz-legal--fiscal { background: #fff; }
.wz-legal-h { display: flex; align-items: center; gap: 9px; margin: 0 0 15px; font-size: 12.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--c-navy, #1E2D3F); }
.wz-legal-h svg { flex: none; color: var(--c-orange, #F5A624); }
.wz-legal-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.wz-legal-list li { display: grid; grid-template-columns: 92px 1fr; gap: 14px; align-items: start; }
.wz-legal-k { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--c-text-muted, #6B7888); padding-top: 2px; }
.wz-legal-v { font-size: 13.5px; line-height: 1.55; color: var(--c-text-secondary, #475569); }
.wz-legal-v strong { color: var(--c-navy, #1E2D3F); font-weight: 700; }
.wz-src { display: inline-flex; align-items: center; gap: 3px; color: var(--c-orange, #F5A624); font-weight: 700; white-space: nowrap; text-decoration: underline; text-decoration-color: rgba(245,166,36,.5); text-underline-offset: 2px; }
.wz-src svg { flex: none; }
.wz-src:hover { color: var(--c-orange-hover, #FF7A00); text-decoration-color: currentColor; }
.wz-src:focus-visible { outline: 2px solid var(--c-orange, #F5A624); outline-offset: 2px; border-radius: 3px; }
.wz-src--nolink { color: var(--c-text-muted, #6B7888); font-weight: 600; }
.wz-src-foot { display: flex; align-items: center; gap: 7px; margin: 16px 0 0; font-size: 12px; color: var(--c-text-muted, #6B7888); }
.wz-src-foot svg { flex: none; color: #15803d; }

/* ══════ SOFT-GATE (capture) ══════ */
.wz-gated { position: relative; margin-top: 16px; }
.wz-gated-body { display: flex; flex-direction: column; gap: 12px; }
.wz-gated:not(.is-unlocked) .wz-gated-body {
  max-height: 150px; overflow: hidden; filter: blur(6px);
  -webkit-mask-image: linear-gradient(#000 28%, transparent 96%); mask-image: linear-gradient(#000 28%, transparent 96%);
  pointer-events: none; user-select: none;
}
.wz-gated.is-unlocked .wz-gated-body { max-height: 2400px; filter: none; -webkit-mask-image: none; mask-image: none; transition: filter .5s ease, max-height .7s ease; }

.wz-gate { margin-top: 16px; padding: 26px 24px; border-radius: 16px; background: radial-gradient(120% 100% at 0% 0%, #26394f 0%, #1E2D3F 60%); color: #fff; }
.wz-gate-badge { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--c-orange, #F5A624); margin-bottom: 12px; }
.wz-gate-badge svg { color: var(--c-orange, #F5A624); }
.wz-gate-badge--ok { color: #4ade80; } .wz-gate-badge--ok svg { color: #4ade80; }
.wz-gate-h { font-family: inherit; font-size: clamp(1.2rem, 2.2vw, 1.5rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.2; margin: 0 0 8px; color: #fff; }
.wz-gate-sub { font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.72); margin: 0 0 18px; max-width: 48ch; }
.wz-gate-form { display: flex; flex-direction: column; gap: 10px; }
.wz-gate-form .wz-input { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.16); color: #fff; }
.wz-gate-form .wz-input::placeholder { color: rgba(255,255,255,.5); }
.wz-gate-form .wz-input:focus { border-color: var(--c-orange, #F5A624); box-shadow: 0 0 0 3px rgba(245,166,36,.25); background: rgba(255,255,255,.09); }
.wz-gate-form .wz-ac { background: #fff; }
.wz-ac-item strong { display: block; font-size: 14px; color: var(--c-navy, #1E2D3F); font-weight: 700; }
.wz-ac-sub { display: block; font-size: 12px; color: var(--c-text-muted, #6B7888); margin-top: 1px; }
.wz-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wz-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.wz-gate-btn { justify-content: center; background: var(--c-orange, #F5A624); color: var(--c-navy, #1E2D3F); margin-top: 4px; }
.wz-gate-btn svg { color: var(--c-navy, #1E2D3F); }
.wz-gate-btn:hover:not(:disabled) { background: var(--c-orange-hover, #FF7A00); color: #fff; transform: translateY(-2px); }
.wz-gate-btn:hover:not(:disabled) svg { color: #fff; }
.wz-gate-btn.is-loading { opacity: .7; cursor: wait; }
.wz-gate-err { margin: 2px 0 0; font-size: 13px; font-weight: 600; color: #fecaca; }
.wz-gate-err[hidden] { display: none; }
.wz-gate-trust { display: flex; align-items: center; gap: 7px; margin: 10px 0 0; font-size: 12px; color: rgba(255,255,255,.6); }
.wz-gate-trust svg { flex: none; color: rgba(255,255,255,.5); }
.wz-gate--done { text-align: left; }

.wz-rail-trust { color: rgba(255,255,255,.7); }

/* ══════ BOUTON RETOUR ══════ */
.wz-back { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0; border-radius: 10px; border: 1px solid var(--c-border, rgba(30,45,63,.14)); background: #fff; color: var(--c-navy, #1E2D3F); cursor: pointer; touch-action: manipulation; transition: border-color .18s, color .18s, background .18s; }
.wz-back[hidden] { display: none; }
.wz-back:hover { border-color: var(--c-orange, #F5A624); color: var(--c-orange-hover, #FF7A00); }
.wz-back:focus-visible { outline: 2px solid var(--c-orange, #F5A624); outline-offset: 2px; }

/* ══════ FOCUS & FINITIONS ══════ */
.wz-next:focus-visible, .wz-gate-btn:focus-visible, .wz-skip:focus-visible, .wz-help:focus-visible, .wz-rail-logo:focus-visible { outline: 2px solid var(--c-orange, #F5A624); outline-offset: 3px; border-radius: 8px; }
.wz-gate-trust { color: rgba(255,255,255,.72); }
/* Contrôles Leaflet alignés sur la DA */
.wz-carte .leaflet-bar a { color: var(--c-navy, #1E2D3F); border-radius: 0; }
.wz-carte .leaflet-bar a:first-child { border-top-left-radius: 8px; border-top-right-radius: 8px; }
.wz-carte .leaflet-bar a:last-child { border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; }
.wz-carte .leaflet-bar a:hover { color: var(--c-orange-hover, #FF7A00); }
.wz-carte .leaflet-control-attribution { font-size: 10px; background: rgba(255,255,255,.75); }

/* ══════ MULTI-SITES V2 (société · établissements · parc) ══════ */
.wz-input--sm { padding: 11px 14px; font-size: 14px; }
.wz-etab-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.wz-etab-bar .wz-input--sm { flex: 1 1 200px; }
.wz-etab-toggle { width: auto; margin: 0; white-space: nowrap; }
.wz-etabs { list-style: none; margin: 0 0 4px; padding: 6px; display: flex; flex-direction: column; gap: 5px; max-height: 340px; overflow-y: auto; border: 1px solid var(--c-border, rgba(30,45,63,.1)); border-radius: 12px; }
.wz-etab { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 9px; cursor: pointer; transition: background .14s; }
.wz-etab:hover { background: var(--c-bg, #FAF9F6); }
.wz-etab-cb { flex: none; width: 18px; height: 18px; accent-color: var(--c-orange, #F5A624); cursor: pointer; }
.wz-etab-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1 1 auto; }
.wz-etab-main { font-size: 14.5px; font-weight: 700; color: var(--c-navy, #1E2D3F); }
.wz-etab-tag { display: inline-block; margin-left: 6px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--c-orange, #F5A624); }
.wz-etab-sub { font-size: 12.5px; color: var(--c-text-muted, #6B7888); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wz-etab-siret { flex: none; font-size: 11px; color: var(--c-text-muted, #6B7888); font-variant-numeric: tabular-nums; }

.wz-parc { margin-top: 16px; border: 1px solid var(--c-border, rgba(30,45,63,.12)); border-radius: 14px; padding: 18px 20px; background: var(--c-bg, #FAF9F6); }
.wz-parc-h { display: flex; align-items: center; gap: 9px; margin: 0 0 12px; font-size: 14px; font-weight: 800; color: var(--c-navy, #1E2D3F); }
.wz-parc-h svg { flex: none; color: var(--c-orange, #F5A624); }
.wz-parc-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 260px; overflow-y: auto; }
.wz-parc-list li { display: flex; flex-direction: column; gap: 1px; padding-bottom: 8px; border-bottom: 1px solid var(--c-border, rgba(30,45,63,.06)); }
.wz-parc-list li:last-child { border-bottom: none; padding-bottom: 0; }
.wz-parc-more { color: var(--c-text-muted, #6B7888); font-size: 13px; font-weight: 600; }
.wz-parc-note { margin: 12px 0 0; font-size: 12.5px; color: var(--c-text-muted, #6B7888); }

/* Scan (progression) */
.wz-scan { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 44px 20px; }
.wz-scan-ring { color: var(--c-orange, #F5A624); }
.wz-scan-ring svg { animation: wz-spin 1.1s linear infinite; }
.wz-scan-bar { width: 100%; max-width: 360px; height: 6px; border-radius: 999px; background: rgba(30,45,63,.08); overflow: hidden; }
.wz-scan-fill { height: 100%; width: 0; border-radius: 999px; background: var(--c-orange, #F5A624); transition: width .35s ease; }
.wz-scan-count { font-size: 13.5px; font-weight: 700; color: var(--c-navy, #1E2D3F); font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) { .wz-scan-ring svg { animation: none; } }

/* Verdict de parc */
.wz-parc-head { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 16px; font-size: 15.5px; line-height: 1.5; color: var(--c-text-secondary, #475569); }
.wz-parc-head svg { flex: none; color: var(--c-orange, #F5A624); margin-top: 2px; }
.wz-parc-head strong { color: var(--c-navy, #1E2D3F); }
.wz-parc-seuil { margin: 0 0 16px; padding: 10px 12px; border-left: 3px solid var(--c-orange, #F5A624); background: rgba(245,166,36,.06); border-radius: 0 8px 8px 0; font-size: 13px; line-height: 1.5; color: var(--c-text-secondary, #475569); }
.wz-parc-map { height: 260px; border-radius: 14px; overflow: hidden; border: 1px solid var(--c-border, rgba(30,45,63,.14)); margin-bottom: 16px; background: #eef1f4; z-index: 0; }
.wz-parc-map .leaflet-container { border-radius: 14px; font-family: inherit; }
.wz-parc-tablewrap { border: 1px solid var(--c-border, rgba(30,45,63,.1)); border-radius: 12px; overflow: hidden; overflow-x: auto; }
.wz-parc-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.wz-parc-table th { text-align: left; padding: 10px 14px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--c-text-muted, #6B7888); background: var(--c-bg, #FAF9F6); border-bottom: 1px solid var(--c-border, rgba(30,45,63,.1)); }
.wz-parc-table td { padding: 11px 14px; border-bottom: 1px solid var(--c-border, rgba(30,45,63,.06)); vertical-align: middle; }
.wz-parc-table tbody tr:last-child td { border-bottom: none; }
.wz-pt-comm { font-weight: 700; color: var(--c-navy, #1E2D3F); }
.wz-pt-adr { display: block; font-weight: 400; font-size: 11.5px; color: var(--c-text-muted, #6B7888); }
.wz-pt-emp { font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--c-text-secondary, #475569); }
.wz-pt-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.wz-pt-badge.is-alert { background: rgba(245,166,36,.18); color: var(--c-navy, #1E2D3F); }
.wz-pt-badge.is-ok    { background: rgba(21,128,61,.12); color: #15803d; }
.wz-pt-badge.is-warn  { background: rgba(30,45,63,.08); color: var(--c-navy, #1E2D3F); }
.wz-pt-badge.is-mut   { background: rgba(30,45,63,.05); color: var(--c-text-muted, #6B7888); }

/* Gate : société déjà connue (multi) */
.wz-gate-known { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); }
.wz-gate-known-ic { flex: none; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(74,222,128,.16); color: #4ade80; }
.wz-gate-known-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.wz-gate-known-txt b { color: #fff; font-size: 14.5px; }
.wz-gate-known-txt small { color: rgba(255,255,255,.6); font-size: 12px; }

/* ══════ RESPONSIVE ══════ */
@media (max-width: 900px) {
  .wz-app { grid-template-columns: 1fr; grid-template-rows: auto 1fr; min-height: 100dvh; }
  .wz-rail { flex-direction: row; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; }
  .wz-rail::after { display: none; }
  .wz-rail-body, .wz-rail-foot { display: none; }
  .wz-panel-top { padding: 14px 20px; }
  .wz-panel-main { padding: 26px 20px 48px; align-items: flex-start; }
  .wz-help span { display: none; }
  .wz-tiles--2 { grid-template-columns: 1fr; }
  .wz-grid2 { grid-template-columns: 1fr; }
  .wz-carte { height: 300px; }
  .wz-measure-stat { padding: 13px 6px; }
  .wz-measure-v { font-size: 1.15rem; }
  .wz-measure-l { font-size: 10px; letter-spacing: .03em; }
  .wz-legal-list li { grid-template-columns: 1fr; gap: 3px; }
  .wz-src { white-space: normal; }
}
@media (max-width: 380px) {
  .wz-rail-mini { font-size: 12px; }
  .wz-measure-v { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .wz-stage, .wz-progress-fill, .wz-tile, .wz-nav-step, .wz-nav-num { transition: none; }
}
