/* =========================================================================
   form_v2.css — Scène « Formulaire » de la V2 (parcours instrument)
   Repris de docs/results-refonte/simulation-flow-v2.html, scopé sous .fv2
   pour ne pas fuiter dans base.html. Thème clair/sombre (OS + data-theme).
   ========================================================================= */

/* ---- Tokens (scopés au conteneur .fv2) ---- */
.fv2{
  --navy:#0F2D52; --navy-700:#1a3d6b; --ink:#0F2D52;
  --orange:#E8820C; --orange-600:#d2750a; --orange-700:#a95905; --orange-50:#fdf4e7;
  --yellow:#F4B400; --yellow-50:#fdf7e3;
  --good:#117a57; --good-50:#e6f4ee; --teal:#0d8f88; --teal-50:#e2f4f2;
  --bad:#c0392b;
  --bg:#ffffff; --bg-soft:#fbfaf7; --bg-warm:#fdfaf3; --surface:#ffffff;
  --line:#ece7dd; --line-strong:#ded6c7;
  --text:#27364b; --muted:#6b7688; --faint:#98a2b3;
  --grid-c:rgba(15,45,82,.05);
  --shadow-s:0 1px 2px rgba(50,40,20,.06);
  --shadow-m:0 10px 30px -12px rgba(40,30,15,.18), 0 2px 6px rgba(40,30,15,.05);
  --shadow-l:0 40px 80px -30px rgba(30,25,15,.30), 0 8px 20px rgba(30,25,15,.08);
  --ring:0 0 0 3px rgba(232,130,12,.32);
  --font:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;
  font-family:var(--font); color:var(--text);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fv2{
  --navy:#0b1a2e; --ink:#eaf1fb;
  --bg:#0a1420; --bg-soft:#0d1a28; --bg-warm:#0d1a28; --surface:#122031;
  --line:#20344a; --line-strong:#2b4260;
  --text:#c6d3e2; --muted:#8497ac; --faint:#5f7186;
  --grid-c:rgba(255,255,255,.05);
  --orange-50:rgba(232,130,12,.14); --good-50:rgba(17,122,87,.18); --teal-50:rgba(13,143,136,.18); --yellow-50:rgba(244,180,0,.12);
  --shadow-s:0 1px 2px rgba(0,0,0,.5);
  --shadow-m:0 10px 30px -12px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.4);
  --shadow-l:0 40px 80px -30px rgba(0,0,0,.7), 0 8px 20px rgba(0,0,0,.45);
}}
:root[data-theme="dark"] .fv2{
  --navy:#0b1a2e; --ink:#eaf1fb;
  --bg:#0a1420; --bg-soft:#0d1a28; --bg-warm:#0d1a28; --surface:#122031;
  --line:#20344a; --line-strong:#2b4260;
  --text:#c6d3e2; --muted:#8497ac; --faint:#5f7186;
  --grid-c:rgba(255,255,255,.05);
  --orange-50:rgba(232,130,12,.14); --good-50:rgba(17,122,87,.18); --teal-50:rgba(13,143,136,.18); --yellow-50:rgba(244,180,0,.12);
  --shadow-s:0 1px 2px rgba(0,0,0,.5);
  --shadow-m:0 10px 30px -12px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.4);
  --shadow-l:0 40px 80px -30px rgba(0,0,0,.7), 0 8px 20px rgba(0,0,0,.45);
}
:root[data-theme="light"] .fv2{
  --navy:#0F2D52; --ink:#0F2D52;
  --bg:#ffffff; --bg-soft:#fbfaf7; --bg-warm:#fdfaf3; --surface:#ffffff;
  --line:#ece7dd; --line-strong:#ded6c7;
  --text:#27364b; --muted:#6b7688; --faint:#98a2b3;
  --grid-c:rgba(15,45,82,.05);
  --orange-50:#fdf4e7; --good-50:#e6f4ee; --teal-50:#e2f4f2; --yellow-50:#fdf7e3;
  --shadow-s:0 1px 2px rgba(50,40,20,.06);
  --shadow-m:0 10px 30px -12px rgba(40,30,15,.18), 0 2px 6px rgba(40,30,15,.05);
  --shadow-l:0 40px 80px -30px rgba(30,25,15,.30), 0 8px 20px rgba(30,25,15,.08);
}

/* ---- Base scopée ---- */
.fv2 *{box-sizing:border-box}
.fv2{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:'cv11','ss01'}
.fv2 h1,.fv2 h2,.fv2 h3,.fv2 h4{color:var(--ink);font-weight:700;letter-spacing:-.022em;margin:0;text-wrap:balance;line-height:1.08}
.fv2 p{margin:0}
.fv2 button{font-family:inherit;cursor:pointer;border:0;background:none;padding:0;color:inherit}
.fv2 [hidden]{display:none!important}
.fv2 .mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.fv2 .wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.fv2 a{color:inherit;text-decoration:none}
.fv2 :focus-visible{outline:none;box-shadow:var(--ring);border-radius:8px}

/* ---- Scène formulaire ---- */
.fv2 .fbg{position:relative;background:var(--bg-soft);border-bottom:1px solid var(--line);min-height:calc(100vh - 62px);padding-bottom:70px;overflow:hidden}
.fv2 .fbg::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--grid-c) 1px,transparent 1px),linear-gradient(90deg,var(--grid-c) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 62% 24%,#000,transparent 82%);mask-image:radial-gradient(ellipse 70% 60% at 62% 24%,#000,transparent 82%)}
.fv2 .fhead{position:relative;padding:26px 0 2px}
.fv2 .frail{display:flex;align-items:center;margin-top:6px}
.fv2 .frail .node{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.fv2 .frail .dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:600;background:var(--surface);border:1.5px solid var(--line-strong);color:var(--faint);transition:.25s}
.fv2 .frail .node.done .dot{background:var(--good-50);border-color:var(--good);color:var(--good)}
.fv2 .frail .node.cur .dot{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 0 0 4px var(--orange-50)}
.fv2 .frail .lab{font-size:12px;font-weight:600;color:var(--faint);white-space:nowrap}
.fv2 .frail .node.done .lab{color:var(--text)}.fv2 .frail .node.cur .lab{color:var(--ink)}
.fv2 .frail .seg{flex:1;height:2px;background:var(--line-strong);margin:0 10px;border-radius:2px;position:relative;overflow:hidden;min-width:12px}
.fv2 .frail .seg i{position:absolute;inset:0;width:0;background:var(--good);transition:width .45s ease}
.fv2 .frail .seg.done i{width:100%}
.fv2 .fcount{font-size:12px;color:var(--muted);margin-top:15px;font-weight:500;letter-spacing:.01em}
.fv2 .fcount b{color:var(--ink);font-family:var(--mono)}

.fv2 .fbody{position:relative;padding-top:34px}
/* La grille 2 colonnes (prompt à gauche / carte à droite) est portée par CHAQUE étape
   active : .fstep.on est le conteneur grille (et non .fbody), sinon l'étape occuperait
   une seule cellule et la colonne droite resterait vide. */
.fv2 .fstep{display:none}
.fv2 .fstep.on{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start;animation:fv2In .4s ease}
@keyframes fv2In{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fv2 .fprompt .num{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--orange);letter-spacing:0}
.fv2 .fprompt .eyebrow{font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:12px 0 0}
.fv2 .fprompt h2{font-size:clamp(27px,3.6vw,40px);margin:11px 0 0}
.fv2 .fprompt .lede{font-size:15px;color:var(--muted);line-height:1.6;margin-top:16px;max-width:42ch}
.fv2 .hintcard{margin-top:22px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--shadow-s);max-width:44ch}
.fv2 .hintcard svg{color:var(--orange);flex-shrink:0;margin-top:1px}
.fv2 .hintcard div{font-size:12.5px;color:var(--muted);line-height:1.5}
.fv2 .hintcard b{color:var(--ink)}

.fv2 .fcard{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:var(--shadow-m)}
.fv2 .field{margin-bottom:18px}.fv2 .field:last-child{margin-bottom:0}
.fv2 .field>label{display:block;font-size:12px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.05em;margin-bottom:9px}
.fv2 .inp{display:flex;align-items:center;gap:10px;background:var(--bg-soft);border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;transition:border-color .15s,box-shadow .15s}
.fv2 .inp:focus-within{border-color:var(--orange);box-shadow:var(--ring)}
.fv2 .inp svg{color:var(--muted);flex-shrink:0}
.fv2 .inp input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:var(--font);font-size:15px;color:var(--ink);font-weight:500}
.fv2 .inp input.mono{font-family:var(--mono)}
.fv2 .inp .suf{font-size:13px;color:var(--muted);font-family:var(--mono)}
.fv2 .rowg{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fv2 .chips{display:flex;gap:8px;flex-wrap:wrap}
.fv2 .chip{font-size:13px;font-weight:600;padding:9px 15px;border-radius:11px;border:1.5px solid var(--line);background:var(--surface);color:var(--text);transition:.15s}
.fv2 .chip:hover{border-color:var(--line-strong)}
.fv2 .chip.sel{border-color:var(--orange);background:var(--orange-50);color:var(--orange-700)}
.fv2 .presets{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.fv2 .preset{font-size:12px;font-weight:600;color:var(--muted);background:var(--bg-soft);border:1px solid var(--line);padding:6px 11px;border-radius:999px}
.fv2 .preset:hover{color:var(--ink);border-color:var(--line-strong)}

.fv2 .objgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fv2 .obj{text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:16px;transition:.15s;position:relative}
.fv2 .obj:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.fv2 .obj.sel{border-color:var(--orange);background:var(--orange-50)}
.fv2 .obj .oi{width:38px;height:38px;border-radius:11px;background:var(--bg-soft);border:1px solid var(--line);color:var(--orange);display:flex;align-items:center;justify-content:center;margin-bottom:11px}
.fv2 .obj.sel .oi{background:var(--surface);border-color:var(--orange)}
.fv2 .obj b{display:block;font-size:14.5px;color:var(--ink);font-weight:700}
.fv2 .obj span{display:block;font-size:12px;color:var(--muted);margin-top:3px;line-height:1.45}
.fv2 .obj .ok{position:absolute;top:14px;right:14px;width:20px;height:20px;border-radius:50%;background:var(--orange);color:#fff;display:none;align-items:center;justify-content:center}
.fv2 .obj.sel .ok{display:flex}

.fv2 .sld-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.fv2 .sld-val{font-family:var(--mono);font-size:34px;font-weight:600;color:var(--orange);letter-spacing:-.03em;line-height:1}
.fv2 .sld-val .u{font-size:14px;color:var(--muted);font-weight:500;margin-left:4px}
.fv2 .sld{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--orange),var(--yellow)) no-repeat,var(--bg-soft);background-size:var(--fill,50%) 100%;box-shadow:inset 0 0 0 1px var(--line);outline:none;cursor:pointer}
.fv2 .sld::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--surface);border:3px solid var(--orange);box-shadow:var(--shadow-m);cursor:pointer}
.fv2 .sld::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--surface);border:3px solid var(--orange);cursor:pointer}
.fv2 .sld-scale{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--faint);margin-top:8px}
.fv2 .sld-est{margin-top:16px;background:var(--good-50);border:1px solid color-mix(in srgb,var(--good) 30%,transparent);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--text);line-height:1.5}
.fv2 .sld-est b{color:var(--good);font-family:var(--mono)}

.fv2 .fnav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:30px}
.fv2 .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14.5px;border-radius:12px;padding:14px 22px;transition:transform .14s,box-shadow .14s}
.fv2 .btn:active{transform:translateY(1px)}
.fv2 .btn-o{background:var(--orange);color:#fff;box-shadow:0 8px 20px -6px rgba(232,130,12,.5)}
.fv2 .btn-o:hover{transform:translateY(-1px)}
.fv2 .btn-o:disabled{opacity:.55;cursor:not-allowed;transform:none}
.fv2 .btn-g{color:var(--muted);border:1.5px solid var(--line)}
.fv2 .btn-g:hover{color:var(--ink);border-color:var(--line-strong)}

@media(max-width:860px){.fv2 .fstep.on{grid-template-columns:1fr;gap:24px}.fv2 .frail .lab{display:none}.fv2 .objgrid{grid-template-columns:1fr}}
@media(max-width:520px){.fv2 .rowg{grid-template-columns:1fr}.fv2 .frail .seg{margin:0 5px}}

/* form — Avancé / Expert (repliables, facultatifs) */
.fv2 .optn{font-size:11.5px;color:var(--muted);margin:2px 0 0}
.fv2 .adv{margin-top:18px;border:1px dashed var(--line-strong);border-radius:14px;overflow:hidden;background:var(--bg-soft)}
.fv2 .adv__btn{display:flex;align-items:center;gap:11px;width:100%;padding:13px 16px;text-align:left;color:var(--ink);font-weight:700;font-size:13.5px}
.fv2 .adv__btn .ci{width:30px;height:30px;border-radius:9px;background:var(--surface);border:1px solid var(--line);color:var(--orange);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fv2 .adv__btn .cx{flex:1;min-width:0}.fv2 .adv__btn .cx small{display:block;font-size:11px;font-weight:500;color:var(--muted);margin-top:1px}
.fv2 .adv__btn .chev{color:var(--muted);transition:transform .2s;flex-shrink:0}.fv2 .adv.open .adv__btn .chev{transform:rotate(180deg)}
.fv2 .adv__body{display:none;padding:6px 16px 18px;border-top:1px dashed var(--line-strong)}.fv2 .adv.open .adv__body{display:block}
.fv2 .subf{margin-top:16px}.fv2 .subf>label{display:block;font-size:11.5px;font-weight:700;color:var(--ink);margin-bottom:8px}
.fv2 .mgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fv2 .mgrid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.fv2 .mf label{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:5px}
.fv2 .mf .inp{padding:10px 12px}.fv2 .mf .inp input{font-size:13.5px}
.fv2 .sel2{width:100%;font-family:var(--font);font-size:14px;padding:12px 13px;border-radius:11px;border:1.5px solid var(--line);background:var(--bg-soft);color:var(--ink)}
.fv2 .pan{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px;background:var(--surface)}
.fv2 .pan__h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.fv2 .pan__h b{font-size:12.5px;color:var(--ink)}
.fv2 .pan__rm{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}.fv2 .pan__rm:hover{color:var(--bad)}
.fv2 .pan .mgrid3{grid-template-columns:1.3fr 1fr .8fr}
.fv2 .addpan{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--orange);border:1.5px dashed color-mix(in srgb,var(--orange) 40%,transparent);border-radius:10px;padding:10px 14px;background:var(--orange-50)}
.fv2 .matgrp{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.fv2 .matgrp.first{margin-top:0;padding-top:0;border-top:0}
.fv2 .matgrp>.gh{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:11px}.fv2 .matgrp>.gh svg{color:var(--orange)}
.fv2 .chk{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--ink);cursor:pointer;margin-top:12px}
.fv2 .chk input{position:absolute;opacity:0;width:0;height:0}
.fv2 .chk .tk{width:38px;height:21px;border-radius:999px;background:var(--line-strong);position:relative;transition:.2s;flex-shrink:0}
.fv2 .chk .tk::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:var(--shadow-s);transition:.2s}
.fv2 .chk input:checked + .tk{background:var(--orange)}.fv2 .chk input:checked + .tk::after{left:19px}
.fv2 .togline{display:inline-flex;background:var(--bg-soft);border:1px solid var(--line);border-radius:10px;padding:3px;margin-bottom:12px}
.fv2 .togline button{font-size:12.5px;font-weight:600;color:var(--muted);padding:7px 14px;border-radius:8px}.fv2 .togline button.sel{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-s)}
.fv2 .convn{margin-top:10px;background:var(--good-50);border:1px solid color-mix(in srgb,var(--good) 30%,transparent);border-radius:10px;padding:11px 13px;font-size:12.5px;color:var(--text)}.fv2 .convn b{color:var(--good);font-family:var(--mono)}

/* form — carte + dessin toiture (Leaflet + Google Solar) */
.fv2 .gmap{position:relative;height:240px;border-radius:14px;overflow:hidden;border:1px solid var(--line);margin-top:16px;user-select:none}
.fv2 .gmap.draw{cursor:crosshair}
/* Prompt tant qu'aucune adresse n'est localisée : masque la vue « pays » (tuiles hors couverture) */
.fv2 .gmap__prompt{position:absolute;inset:0;z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:22px;background:var(--bg-soft);color:var(--muted);font-size:13px;font-weight:600;line-height:1.5}
.fv2 .gmap__prompt svg{color:var(--orange)}
.fv2 .gmap.located .gmap__prompt{display:none}
.fv2 .gmap .gtools button:disabled{opacity:.45;cursor:not-allowed}
.fv2 .gmap svg{display:block;width:100%;height:100%}
/* Les SVG vectoriels de Leaflet (pans dessinés) gèrent leur taille via width/height + viewBox ;
   la règle 100% ci-dessus les réduisait à 0×0 (pane parent sans dimension) → pan invisible. */
.fv2 .gmap .leaflet-pane svg{width:auto;height:auto}
.fv2 .gmap .leaflet-container{width:100%;height:100%;background:var(--bg-soft)}
.fv2 .gmap .ghint{position:absolute;top:10px;left:10px;right:10px;z-index:500;background:rgba(15,45,82,.82);color:#fff;font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:8px;display:flex;align-items:center;gap:7px;pointer-events:none}
.fv2 .gmap .ghint svg{color:#F4B400;flex-shrink:0}
.fv2 .gmap .gtools{position:absolute;bottom:10px;right:10px;z-index:500;display:flex;gap:6px}
.fv2 .gmap .gtools button{background:rgba(255,255,255,.95);color:#0F2D52;font-size:11.5px;font-weight:700;padding:6px 10px;border-radius:8px;box-shadow:var(--shadow-s)}
.fv2 .gmap .gtools button[hidden]{display:none}
/* Sommets du tracé leaflet.draw réduits (~moitié du défaut) — petits ronds nets */
.fv2 .gmap .leaflet-editing-icon,.fv2 .gmap .leaflet-div-icon{width:7px !important;height:7px !important;margin-left:-3.5px !important;margin-top:-3.5px !important;background:#E8820C !important;border:1.5px solid #fff !important;border-radius:50% !important;box-shadow:0 0 2px rgba(0,0,0,.45) !important}
.fv2 .gmap .gtools button#fv2Valid{background:var(--orange);color:#fff}
.fv2 .gmap .gtools button.on{background:var(--orange);color:#fff}
.fv2 .gsolar{margin-top:14px;border:1px solid color-mix(in srgb,var(--good) 30%,transparent);background:var(--good-50);border-radius:14px;padding:14px 16px;display:none}
.fv2 .gsolar.on{display:block;animation:fv2In .35s ease}
.fv2 .gsolar .gh{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--good);margin-bottom:11px}
.fv2 .gsolar .gg{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.fv2 .gsolar .gv{font-family:var(--mono);font-size:20px;font-weight:600;color:var(--ink)}.fv2 .gsolar .gv small{font-size:11px;color:var(--muted);font-weight:500;display:block;margin-top:2px}
.fv2 .gsolar .gbtn{margin-top:12px;display:inline-flex;align-items:center;gap:8px;background:var(--good);color:#fff;font-size:13px;font-weight:600;padding:10px 15px;border-radius:10px}
.fv2 .geo-sug{position:relative;z-index:600}
.fv2 .geo-list{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-m);overflow:hidden;display:none}
.fv2 .geo-list.on{display:block}
.fv2 .geo-list button{display:block;width:100%;text-align:left;padding:10px 14px;font-size:13px;color:var(--text);border-bottom:1px solid var(--line)}
.fv2 .geo-list button:last-child{border-bottom:0}.fv2 .geo-list button:hover{background:var(--bg-soft)}

/* type de projet */
.fv2 .subhead{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 12px;display:flex;align-items:center;gap:10px}
.fv2 .subhead::after{content:"";flex:1;height:1px;background:var(--line)}
.fv2 .vt-info{background:var(--bg-soft);border:1px dashed var(--line-strong);border-radius:14px;padding:18px;font-size:13.5px;color:var(--muted);line-height:1.6;display:flex;gap:12px;align-items:flex-start}.fv2 .vt-info svg{color:var(--orange);flex-shrink:0;margin-top:1px}.fv2 .vt-info b{color:var(--ink)}

/* azimut + inclinaison fins */
.fv2 .dialw{width:150px;height:150px;position:relative;flex-shrink:0}
.fv2 .dialw svg{width:100%;height:100%;cursor:pointer;touch-action:none;display:block}
.fv2 .incl-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}

/* coût stepper + puissance auto */
.fv2 .stepper{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg-soft);max-width:280px}
.fv2 .stepper button{width:46px;height:48px;font-size:20px;color:var(--ink);display:flex;align-items:center;justify-content:center;flex-shrink:0}.fv2 .stepper button:hover{background:var(--surface)}
.fv2 .stepper input{flex:1;min-width:0;border:0;outline:none;background:transparent;text-align:center;font-family:var(--mono);font-weight:600;font-size:17px;color:var(--ink)}
.fv2 .stepper .u{padding-right:14px;color:var(--muted);font-size:13px;font-family:var(--mono);flex-shrink:0}
.fv2 .autopow{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}
.fv2 .autopow button{flex:1;font-size:12.5px;font-weight:600;color:var(--muted);padding:11px 8px}.fv2 .autopow button.sel{background:var(--orange);color:#fff}
.fv2 .pow-auto{background:var(--good-50);border:1px solid color-mix(in srgb,var(--good) 30%,transparent);border-radius:12px;padding:14px 16px;font-size:13px;color:var(--text);line-height:1.55;display:none}.fv2 .pow-auto.on{display:block}.fv2 .pow-auto b{color:var(--good)}
.fv2 .slider-block.off .sld{opacity:.4;pointer-events:none}.fv2 .slider-block.off .sld-est{opacity:.5}

/* Étape 2 — grilles 3 cartes + sous-séquence guidée */
.fv2 .objgrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fv2 .e2crumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.fv2 .e2crumb .cr{font-size:12px;font-weight:700;color:var(--muted);background:var(--bg-soft);border:1px solid var(--line);border-radius:20px;padding:6px 14px;transition:.15s}
.fv2 .e2crumb .cr.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.fv2 .e2crumb .cr.done{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,transparent);background:var(--good-50)}
.fv2 .e2crumb .cr:disabled{opacity:.4;cursor:default}
.fv2 .e2crumb .crsep{color:var(--muted);font-size:13px;opacity:.6}
.fv2 .e2pane{display:none}.fv2 .e2pane.on{display:block;animation:fv2In .3s ease}
.fv2 .ptype-lg{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fv2 .ptl{text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:18px;padding:22px;transition:.15s;position:relative}
.fv2 .ptl:hover{border-color:var(--line-strong)}.fv2 .ptl.sel{border-color:var(--orange);background:var(--orange-50)}
.fv2 .ptl .oi{width:46px;height:46px;border-radius:13px;background:var(--bg-soft);border:1px solid var(--line);color:var(--orange);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.fv2 .ptl.sel .oi{background:var(--surface);border-color:var(--orange)}
.fv2 .ptl b{font-size:16px;color:var(--ink);font-weight:700;display:block}.fv2 .ptl>p{font-size:12.5px;color:var(--muted);margin:6px 0 0;line-height:1.5}
.fv2 .ptl ul{margin:13px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px}
.fv2 .ptl li{font-size:12px;color:var(--text);display:flex;gap:8px;align-items:flex-start}.fv2 .ptl li svg{color:var(--good);flex-shrink:0;margin-top:1px}
.fv2 .ptl .ok{position:absolute;top:16px;right:16px;width:20px;height:20px;border-radius:50%;background:var(--orange);color:#fff;display:none;align-items:center;justify-content:center}.fv2 .ptl.sel .ok{display:flex}

/* Étape 3 — choix conso */
.fv2 .cchoice{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fv2 .cco{text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:18px;display:flex;gap:13px;align-items:flex-start;transition:.15s;position:relative}
.fv2 .cco:hover{border-color:var(--line-strong)}.fv2 .cco.sel{border-color:var(--orange);background:var(--orange-50)}
.fv2 .cco .ci2{width:38px;height:38px;border-radius:11px;background:var(--bg-soft);border:1px solid var(--line);color:var(--orange);display:flex;align-items:center;justify-content:center;flex-shrink:0}.fv2 .cco.sel .ci2{background:var(--surface);border-color:var(--orange)}
.fv2 .cco b{display:block;font-size:14px;color:var(--ink);font-weight:700}.fv2 .cco span{display:block;font-size:12px;color:var(--muted);margin-top:3px;line-height:1.4}
.fv2 .btn-affiner{margin-top:16px;display:inline-flex;align-items:center;gap:9px;background:var(--bg-soft);border:1px dashed var(--line-strong);border-radius:11px;padding:11px 15px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;transition:.15s}.fv2 .btn-affiner:hover{border-color:var(--orange);color:var(--orange)}.fv2 .btn-affiner svg{color:var(--orange)}

/* Étape 4 — boussole + pastilles + tilt */
.fv2 .orient-wrap{display:flex;gap:22px;align-items:center;flex-wrap:wrap;background:var(--bg-soft);border:1px solid var(--line);border-radius:14px;padding:18px}
.fv2 .orient-side{flex:1;min-width:200px}
.fv2 .orient-read{font-family:var(--mono);font-size:20px;font-weight:600;color:var(--ink);margin-bottom:12px}.fv2 .orient-read small{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-left:6px;font-family:inherit}
.fv2 .orientation-quick{display:flex;flex-wrap:wrap;gap:7px}
.fv2 .opill{font-size:12px;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 11px;transition:.12s}.fv2 .opill:hover{border-color:var(--line-strong)}.fv2 .opill.active{background:var(--orange);border-color:var(--orange);color:#fff}
.fv2 .tilt-card{background:var(--bg-soft);border:1px solid var(--line);border-radius:14px;padding:18px}
.fv2 .tilt-row{display:flex;gap:20px;align-items:center;justify-content:center;margin-bottom:16px}
.fv2 .roof-vis svg{width:150px;height:84px;display:block}
.fv2 .tilt-display{text-align:center}.fv2 .tilt-display .deg{font-family:var(--mono);font-size:28px;font-weight:600;color:var(--ink)}.fv2 .tilt-display .lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.fv2 .tilt-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--orange) var(--fill,50%),var(--line-strong) var(--fill,50%));outline:none}
.fv2 .tilt-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--orange);border:3px solid var(--surface);box-shadow:var(--shadow-s);cursor:pointer}
.fv2 .tilt-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--orange);border:3px solid var(--surface);box-shadow:var(--shadow-s);cursor:pointer;border-color:var(--surface)}
.fv2 .tilt-marks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:9px}

@media(max-width:520px){.fv2 .mgrid,.fv2 .mgrid3,.fv2 .pan .mgrid3,.fv2 .gsolar .gg,.fv2 .cchoice,.fv2 .objgrid3,.fv2 .ptype-lg{grid-template-columns:1fr}}
