/* Compléments de l'aperçu V2. La feuille style.css de la maquette reste inchangée. */
.v2-search{position:relative;padding:0;display:flex;align-items:center}
.v2-search input{background:transparent;border:0;color:white;padding:9px 12px;width:220px;font-size:12px}
.v2-search input::placeholder{color:#bacbde}
.v2-search input:focus-visible{outline:3px solid #77b2ff;outline-offset:2px;border-radius:8px}
.v2-search-result{position:absolute;top:calc(100% + 8px);right:0;width:280px;background:white;color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #132f5530;padding:12px 14px;display:grid;gap:4px;z-index:20}
.v2-search-result span{font-size:12px;color:var(--muted)}
.v2-deux-colonnes{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.v2-compteurs{display:flex;flex-wrap:wrap;gap:22px}
.v2-compteurs strong{display:block;font-size:22px}
.v2-compteurs span{font-size:12px;color:var(--muted)}
.v2-liste .table td small{white-space:normal}
@media(max-width:600px){.v2-deux-colonnes{grid-template-columns:1fr}}
.v2-role{display:flex;justify-content:flex-end;padding:8px 24px;border-bottom:1px solid var(--line);background:#fcfdfe}
.v2-voir-comme{margin-left:auto;display:grid;grid-template-columns:auto auto;justify-content:end;align-items:center;gap:3px 7px;font-size:11px;color:#6f8094}
.v2-voir-comme select{font-size:11px;padding:5px 7px;border:1px solid #ccd9e7;border-radius:6px;background:#fff;color:#29445e}
.v2-voir-comme small{grid-column:1/-1;font-size:9px;color:#94a1af;text-align:right;max-width:340px}
.fw-compact .v2-role{padding:8px 16px}
.v2-apercu-compact{max-width:520px;margin-left:auto}
@media(max-width:600px){.v2-role{padding:8px 12px;justify-content:flex-start}.v2-voir-comme{margin-left:0;width:100%;justify-content:start}.v2-voir-comme small{text-align:left}}

/* ===== Lot A3 · visuel vivant (docs/VISUEL-VIVANT.md) ===== */
:root{--v2-courbe:cubic-bezier(.2,.8,.2,1)}
.v2-exemples{font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:lowercase;color:#8a6a2e;background:#fff4dc;border:1px solid #f0dfb7;border-radius:20px;padding:2px 8px}
.v2-compteur{display:inline-block;font-variant-numeric:tabular-nums;animation:v2-entree-chiffre .32s var(--v2-courbe) both}
.v2-compteur.v2-roule{color:#9fd0ff}
@keyframes v2-entree-chiffre{from{opacity:0;transform:translateY(6px)}}
.v2-pastille{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e08a2c;box-shadow:0 0 0 0 #e08a2c80;animation:v2-pulse 1.8s ease-out infinite;vertical-align:middle;margin-right:5px;flex-shrink:0}
@keyframes v2-pulse{70%{box-shadow:0 0 0 7px #e08a2c00}100%{box-shadow:0 0 0 0 #e08a2c00}}
.v2-overview{background:linear-gradient(115deg,#163652 0%,#21486a 55%,#2b5a80 100%);box-shadow:0 10px 30px #163d6626,inset 0 1px 0 #ffffff22;position:relative;overflow:hidden}
.v2-overview:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#ffffff10 45%,transparent 60%);pointer-events:none}
.v2-graphes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px;margin:16px 0}
.v2-graph{background:linear-gradient(180deg,#fff,#f8fbfe);border:1px solid #dbe6f0;border-radius:14px;padding:14px 16px 10px;box-shadow:0 1px 0 #fff inset,0 4px 14px #1b3d5d0d}
.v2-graph-tete{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}
.v2-graph h2{font-size:14px;margin:0;color:#29465f}
.v2-graph-tete .btn{margin-left:auto}
.v2-graph svg{width:100%;height:auto;max-height:150px;display:block;overflow:visible}
.v2-flux svg{max-height:120px}
.v2-graph-pied{font-size:11px;color:#6d8296;margin:4px 0 2px;min-height:17px;line-height:1.5}
.btn.v2-mini{font-size:10px;padding:4px 9px}
.v2-barre{cursor:pointer;outline:none}
.v2-barre-zone{fill:transparent;transition:fill .15s}
.v2-barre:hover .v2-barre-zone,.v2-barre:focus-visible .v2-barre-zone{fill:#eaf2ff}
.v2-barre:focus-visible .v2-barre-zone{stroke:#3a86e0;stroke-width:1.5}
.v2-barre-corps{fill:#5b9ee8;transform-box:fill-box;transform-origin:50% 100%;animation:v2-monte .5s var(--v2-courbe) both;animation-delay:calc(var(--i,0)*70ms);transition:fill .15s,opacity .15s}
.v2-barre.actif .v2-barre-corps{fill:#1f6fd1}
.v2-barre.attenue .v2-barre-corps{opacity:.35}
.v2-barre-n{font-size:12px;font-weight:700;fill:#29465f}
.v2-barre-l{font-size:11px;fill:#6d8296}
@keyframes v2-monte{from{transform:scaleY(0)}}
.v2-noeud{fill:#2b6fc0;transform-box:fill-box;transform-origin:50% 50%;animation:v2-monte-y .45s var(--v2-courbe) both;animation-delay:calc(var(--i,0)*80ms)}
@keyframes v2-monte-y{from{transform:scaleY(.1);opacity:.3}}
.v2-ruban{animation:v2-fondu .6s ease both .2s}
@keyframes v2-fondu{from{opacity:0}}
.v2-particule{fill:#3a86e0;opacity:0;animation:v2-glisse 4.2s linear infinite;animation-delay:calc(var(--k,0)*1.4s)}
@keyframes v2-glisse{0%{opacity:0;transform:translateX(0)}15%{opacity:.7}85%{opacity:.7}100%{opacity:0;transform:translateX(var(--dx))}}
.v2-flux-legende{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:4px}
.v2-flux-legende>div{display:grid;gap:2px}
.v2-flux-legende .v2-compteur{font-size:20px;font-weight:800;color:#20405c}
.v2-flux-legende>div>span:last-child{font-size:11px;color:#6d8296}
.v2-anneau{width:30px;height:30px;flex-shrink:0;vertical-align:middle}
.v2-anneau.grand{width:56px;height:56px}
.v2-anneau-fond{fill:none;stroke:#dfe8f1;stroke-width:5}
.v2-anneau-trait{fill:none;stroke:#3a86e0;stroke-width:5;stroke-linecap:round;animation:v2-anneau .7s var(--v2-courbe) both .1s}
.v2-anneau-trait.complet{stroke:#2f9c6a}
.v2-anneau text{font-size:10px;font-weight:700;fill:#3c5a74}
@keyframes v2-anneau{from{stroke-dashoffset:var(--c)}}
.v2-reste{display:inline-flex;align-items:center;gap:6px}
.v2-carte{text-decoration:none;transition:transform .18s var(--v2-courbe),box-shadow .18s var(--v2-courbe),border-color .18s;animation:v2-entree .26s var(--v2-courbe) backwards;animation-delay:calc(var(--n,0)*18ms)}
.v2-carte:hover,.v2-carte:focus-visible{transform:translateY(-2px);box-shadow:0 2px 4px #1d3e5c14,0 12px 26px #1d3e5c22;border-color:#3a86e0;outline:none}
.v2-carte:active{transform:translateY(0) scale(.99)}
@keyframes v2-entree{from{opacity:0;transform:translateY(6px)}}
.v2-attente{display:inline-flex;align-items:center}
.v2-resultat{font-size:12px;color:#6d8296;margin:0 0 10px}
.gg-toolbar .fw-filter-row{margin:0}
.v2-search-tableau{margin:0}
.v2-liste-garage{background:#fff;border:1px solid #dfe8f1;border-radius:12px}
.v2-liste-garage .v2-lien-voiture{font-weight:700;color:#21507e}
.v2-liste-garage tr:focus{outline:2px solid #3a86e0;outline-offset:-2px}
.v2-lieux{display:grid;gap:14px}
.v2-lieu{background:#fff;border:1px solid #dce6ef;border-radius:13px;padding:12px 14px}
.v2-lieu-tete{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.v2-lieu h3{font-size:15px;margin:0;color:#28465f}
.v2-lieu-n{margin-left:auto;font-size:12px;color:#6d8296}
.v2-lieu-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.v2-mini-carte{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid #e3ebf3;border-radius:10px;text-decoration:none;color:#263f55;transition:transform .15s var(--v2-courbe),box-shadow .15s}
.v2-mini-carte:hover,.v2-mini-carte:focus-visible{transform:translateY(-2px);box-shadow:0 8px 18px #1d3e5c1c;outline:none;border-color:#3a86e0}
.v2-mini-carte>span:nth-child(2){flex:1;min-width:0;display:grid;gap:2px}
.v2-mini-carte strong{font-size:13px}
.v2-mini-carte small{font-size:11px;color:#6d8296;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-mini-carte .badge{font-size:10px;white-space:nowrap}
.v2-retour{font-size:12px}
@media(max-width:1100px){.v2-graphes{grid-template-columns:1fr}}
@media(max-width:600px){.v2-flux-legende .v2-compteur{font-size:16px}.v2-lieu-cartes{grid-template-columns:1fr}.gg-toolbar{display:grid}.v2-graph{padding:12px}}
@media(prefers-reduced-motion:reduce){.v2-compteur,.v2-pastille,.v2-barre-corps,.v2-noeud,.v2-ruban,.v2-anneau-trait,.v2-carte,.v2-glisse-avant,.v2-glisse-arriere,.v2-volet{animation:none}.v2-particule{display:none}.v2-carte,.v2-mini-carte{transition:none}.v2-carte:hover,.v2-mini-carte:hover{transform:none}}

/* ===== Lot A3 · Commerce ===== */
.v2-commerce{grid-template-columns:270px minmax(330px,1fr) minmax(420px,1.16fr)}
.v2-file .queue-item{transition:background .15s}
.v2-contact .small{display:block}
.v2-attente-ligne{display:flex;align-items:center;gap:2px;font-size:11px;color:#6d8296;margin-top:6px}
.v2-attente-ligne.urgent{color:#9a5b14;font-weight:600}
.v2-meta{display:block;font-size:10px;color:#8193a5;margin-top:5px;line-height:1.5}
.v2-etiquettes{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.v2-etiquettes .badge{font-size:10px}
.v2-qualifier{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:11px;color:#6d8296}
.v2-qualifier select,.v2-compose-ligne select{font-size:12px;padding:5px 8px;border:1px solid #cdd8e7;border-radius:7px;background:#fff;color:#29445e}
.v2-compose-ligne{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:6px 0 8px;flex-wrap:wrap}
.v2-essai{border:1px dashed #d9a441;background:#fffaf0}
.v2-essai .badge{margin-bottom:6px;display:inline-block}
.v2-note-interne{margin-top:10px;display:grid;gap:6px;background:#fff8e7;border-left:3px solid #d8b65f;padding:10px;border-radius:8px}
.v2-note-interne textarea{width:100%;min-height:70px;border:1px solid #e3cf98;border-radius:7px;padding:8px;font:inherit;font-size:12px}
.v2-note-interne .btn{justify-self:start}
.v2-erreur{color:#a2361f;background:#fff0ec;border:1px solid #f1c5b8;border-radius:8px;padding:8px 10px;font-size:12px;margin:8px 0}
.v2-rattachee{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#eef6ff;border:1px solid #cfe1f7;border-radius:10px;padding:9px 12px;margin-bottom:10px;font-size:12px;color:#2e5a86}
.v2-demande .body{padding:18px 20px}
.v2-demande-titre{font-size:15px;margin:18px 0 10px}
.v2-resultats-voitures{display:grid;gap:6px;margin:6px 0 14px}
.v2-resultats-voitures .v2-mini-carte .btn{margin-left:auto;white-space:nowrap}
.v2-bac-bouton{border-style:dashed}
.v2-glisse-avant{animation:v2-glisse-avant .22s var(--v2-courbe) backwards}
.v2-glisse-arriere{animation:v2-glisse-arriere .22s var(--v2-courbe) backwards}
@keyframes v2-glisse-avant{from{opacity:.2;transform:translateX(18px)}}
@keyframes v2-glisse-arriere{from{opacity:.2;transform:translateX(-18px)}}
.v2-volet{animation:v2-volet .2s var(--v2-courbe) backwards}
@keyframes v2-volet{from{transform:translateX(24px);opacity:.4}}
.v2-espace-fiche{min-width:0}
.v2-commerce.v2-agrandi{grid-template-columns:minmax(300px,.75fr) minmax(0,2fr)}
.v2-commerce.v2-agrandi .v2-file{display:none}
@media(min-width:1101px){
.v2-agrandi .fw-compact .fw-axes{grid-template-columns:1fr 1fr 1fr 1.4fr;padding:14px 22px}
.v2-agrandi .fw-compact .fw-workspace{grid-template-columns:205px minmax(0,1fr);min-height:465px}
.v2-agrandi .fw-compact .fw-local-menu{flex-direction:column;overflow:visible;border-right:1px solid #e3eaf2;border-bottom:0;padding:18px 12px}
.v2-agrandi .fw-compact .fw-local-menu>button{white-space:normal;font-size:12px;padding:11px 12px;min-height:42px}
.v2-agrandi .fw-compact .fw-section-tabs span{display:block}
.v2-agrandi .fw-compact .fw-section-tabs strong{font-size:13px}
.v2-agrandi .fw-compact .fw-overview,.v2-agrandi .fw-compact .fw-two-column{grid-template-columns:1.2fr 1fr}
.v2-agrandi .fw-compact .fw-content{padding:22px 26px}
}
@media(max-width:1100px){.v2-commerce,.v2-commerce.v2-agrandi{grid-template-columns:220px minmax(0,1fr)}.v2-commerce>.v2-espace-fiche,.v2-commerce>.v2-demande{grid-column:1/-1}.v2-commerce.v2-agrandi .v2-file{display:block}}
@media(max-width:600px){.v2-commerce,.v2-commerce.v2-agrandi{grid-template-columns:minmax(0,1fr)}.v2-commerce>.v2-espace-fiche,.v2-commerce>.v2-demande{grid-column:auto}.v2-compose-ligne{display:grid}.v2-qualifier{flex-wrap:wrap}}

/* ===== Lot A3 · Atelier ===== */
.v2-job{transition:box-shadow .15s,transform .15s var(--v2-courbe)}
.v2-job:hover{box-shadow:0 8px 20px #1d3e5c16;transform:translateY(-1px)}
.v2-job:focus{outline:2px solid #3a86e0;outline-offset:2px}
.v2-job .badge{display:inline-flex;align-items:center;width:fit-content}
.v2-job-gestes{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.v2-job-gestes .btn{text-align:center;white-space:nowrap}
.v2-constat{font-size:12px;color:#2f7a55;background:#eefaf3;border-radius:7px;padding:6px 8px;line-height:1.5}
.v2-agenda .badge{display:inline-block;margin-bottom:12px}
.v2-agenda-geste{margin-top:4px}
.v2-form-accord{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fw-large-text.v2-court{min-height:90px}
.v2-pilotage{margin-bottom:16px}
.v2-pilotage svg{max-height:none}
.v2-barres-h{width:100%;max-width:640px;height:auto}
.v2-barres-h .v2-barre-fond{fill:#eef3f8}
.v2-barres-h .v2-barre-corps{fill:#4c8fdc;transform-box:fill-box;transform-origin:0 50%;animation:v2-etire .5s var(--v2-courbe) both;animation-delay:calc(var(--i,0)*70ms)}
@keyframes v2-etire{from{transform:scaleX(0)}}
.v2-vue-atelier{min-height:300px}
@media(max-width:600px){.v2-form-accord{grid-template-columns:1fr}.v2-job-gestes{flex-direction:row;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.v2-barres-h .v2-barre-corps{animation:none}.v2-job,.v2-job:hover{transition:none;transform:none}}

/* Compteurs dans les bandeaux : la règle `.gg-overview span` de la maquette vise aussi le chiffre. */
.gg-overview strong .v2-compteur,.gg-overview strong .v2-compteur span,.aw-metrics strong .v2-compteur,.aw-metrics strong .v2-compteur span{font-size:inherit;color:inherit;line-height:1}
.v2-flux-legende .v2-compteur span{font-size:inherit;color:inherit}
@media(max-width:600px){.v2-intro-actions{flex-wrap:wrap;gap:12px}.v2-intro-actions>.row{width:100%}.v2-intro-actions>.row .btn{flex:1 1 auto}}

/* ===== Lot A4 + visuel vivant (docs/VISUEL-VIVANT.md) ===== */
/* Retour d'enfoncement des boutons (< 100 ms) */
.btn,.aw-tabs button,.fw-filter-row button,.fw-local-menu>button,.fw-section-tabs button{transition:transform .08s var(--v2-courbe),background .15s,box-shadow .15s,color .15s}
.btn:active:not(:disabled),.aw-tabs button:active,.fw-filter-row button:active,.fw-local-menu>button:active,.fw-section-tabs button:active{transform:scale(.97)}
/* Transition courte au changement de vue : fondu + 8 px */
.v2-transition{animation:v2-vue .22s var(--v2-courbe) backwards}
.v2-transition-b{animation:v2-vue-b .22s var(--v2-courbe) backwards}
@keyframes v2-vue{from{opacity:0;transform:translateY(8px)}}
/* Palette ⌘K : 0.98 → 1 ; volets : glissement */
.fw-command-modal{animation:v2-palette .18s var(--v2-courbe) backwards}
@keyframes v2-palette{from{opacity:0;transform:scale(.98)}}
.fw-modal:not(.fw-command-modal){animation:v2-volet .2s var(--v2-courbe) backwards}
.fw-modal-shade{animation:v2-fondu .16s ease both}
/* Toasts discrets */
.toast{animation:v2-toast .22s var(--v2-courbe) backwards;font-size:13px;display:flex;align-items:center;gap:9px;background:linear-gradient(105deg,#163652,#21486a);box-shadow:0 2px 6px #0d223a22,0 12px 30px #0d223a33}
.toast:before{content:"";width:8px;height:8px;border-radius:50%;background:#7cc4ff;flex-shrink:0;box-shadow:0 0 0 3px #7cc4ff33}
@keyframes v2-toast{from{opacity:0;transform:translate(-50%,10px)}}
/* Squelette de chargement (avant le WebAssembly) */
#v2-squelette{min-height:100vh;background:var(--bg)}
.v2-sq-tete{height:62px;background:linear-gradient(105deg,#102943,#244564)}
.v2-sq-page{padding:24px 28px;max-width:1800px;margin:auto;display:grid;gap:18px}
.v2-sq{border-radius:13px;background:linear-gradient(100deg,#e3eaf2 30%,#f1f5f9 50%,#e3eaf2 70%);background-size:300% 100%;animation:v2-shimmer 1.3s linear infinite}
.v2-sq-titre{height:58px;max-width:520px}
.v2-sq-bandeau{height:120px}
.v2-sq-grille{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}
.v2-sq-bloc{height:260px}
@keyframes v2-shimmer{from{background-position:100% 0}to{background-position:0 0}}
@media(max-width:600px){.v2-sq-page{padding:16px}.v2-sq-grille{grid-template-columns:1fr}}

/* Aujourd'hui : bandeau marine vivant */
.v2-bandeau{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,1fr) minmax(200px,.8fr);gap:22px;align-items:center;color:#fff;border-radius:16px;padding:20px 24px;margin-bottom:20px;background:linear-gradient(115deg,#163652 0%,#21486a 55%,#2b5a80 100%);box-shadow:0 10px 30px #163d6626,inset 0 1px 0 #ffffff22;position:relative;overflow:hidden}
.v2-bandeau:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#ffffff10 45%,transparent 60%);pointer-events:none}
.v2-bandeau-chiffres{display:flex;gap:28px;flex-wrap:wrap}
.v2-bandeau-chiffres strong{display:block;font-size:30px;line-height:1.1;letter-spacing:-.5px}
.v2-bandeau-chiffres strong .v2-compteur span{font-size:inherit;color:inherit}
.v2-bandeau-chiffres>div>span{color:#c4d6ea;font-size:12px;display:inline-flex;align-items:center}
.v2-bandeau-activite{display:grid;gap:4px;background:#ffffff0d;border:1px solid #ffffff1c;border-radius:12px;padding:10px 12px}
.v2-bandeau-tete{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#c4d6ea}
.v2-bandeau-activite small{font-size:10px;color:#a9c0d8}
.v2-bandeau-note{margin:0;font-size:12px;line-height:1.55;color:#d3e1ef}
.v2-sparkline{width:100%;height:auto;max-height:64px;display:block;overflow:visible}
.v2-spark-trait{fill:none;stroke:#3a86e0;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;animation:v2-trace .9s var(--v2-courbe) both .15s}
.v2-spark-aire{fill:#3a86e01f;animation:v2-fondu .6s ease both .5s}
.v2-spark-point{fill:#3a86e0;animation:v2-fondu .3s ease both .9s}
.v2-sparkline.clair .v2-spark-trait{stroke:#8fd0ff}
.v2-sparkline.clair .v2-spark-aire{fill:#8fd0ff22}
.v2-sparkline.clair .v2-spark-point{fill:#fff}
@keyframes v2-trace{from{stroke-dashoffset:var(--l)}}
.v2-colonne{display:grid;gap:18px;align-content:start}
.v2-flux.compact{padding:12px 14px 8px}
.v2-flux.compact svg{max-height:70px}
.v2-flux.compact .v2-flux-legende .v2-compteur{font-size:17px}
.v2-task{animation:v2-entree .26s var(--v2-courbe) backwards;animation-delay:calc(var(--n,0)*60ms);transition:background .15s}
.v2-task:hover{background:#f7fbff}
.v2-task .v2-attente-ligne{margin-top:6px}

/* Jauge (arc) */
.v2-jauge{margin:0;display:grid;justify-items:center;gap:2px;min-width:96px}
.v2-jauge svg{width:96px;height:auto;overflow:visible}
.v2-jauge-fond{fill:none;stroke:#e3ebf3;stroke-width:8;stroke-linecap:round}
.v2-jauge-trait{fill:none;stroke:#3a86e0;stroke-width:8;stroke-linecap:round;animation:v2-arc .8s var(--v2-courbe) both .1s}
.v2-jauge.vert .v2-jauge-trait{stroke:#2f9c6a}
.v2-jauge.ambre .v2-jauge-trait{stroke:#d99a32}
.v2-jauge.gris .v2-jauge-trait{stroke:#94a6b8}
.v2-jauge text{font-size:13px;font-weight:800;fill:#20405c}
.v2-jauge figcaption{display:grid;justify-items:center;text-align:center}
.v2-jauge figcaption strong{font-size:12px;color:#29465f}
.v2-jauge figcaption small{font-size:10px;color:#6d8296}
@keyframes v2-arc{from{stroke-dashoffset:var(--l)}}
.v2-jauges-ligne{display:flex;flex-wrap:wrap;gap:22px;align-items:center}
.v2-jauges-note{flex:1 1 260px;font-size:12px;color:#5f7489;line-height:1.6;margin:0}
.v2-jauges-etat{margin-bottom:18px}
.v2-jauges-etat .v2-jauge{min-width:120px}
.v2-jauges-etat .v2-jauge svg{width:120px}

/* Fiche : indicateurs dans l'en-tête, onglet actif qui glisse, tableau empilé */
.v2-id-vivant{display:flex;gap:10px;align-items:center}
.v2-id-indic{display:flex;align-items:center;gap:8px;border:1px solid #d9e5f0;background:#ffffffb3;border-radius:12px;padding:6px 10px;color:#29465f;text-align:left;transition:transform .08s var(--v2-courbe),box-shadow .15s,border-color .15s}
.v2-id-indic:hover{border-color:#3a86e0;box-shadow:0 6px 16px #1d3e5c18}
.v2-id-indic:active{transform:scale(.97)}
.v2-id-indic>span{display:grid}
.v2-id-indic strong{font-size:12px}
.v2-id-indic small{font-size:10px;color:#6d8296}
.v2-id-indic .v2-jauge{min-width:0;grid-template-columns:auto auto;align-items:center;gap:8px}
.v2-id-indic .v2-jauge svg{width:62px}
.v2-id-indic .v2-jauge figcaption{justify-items:start;text-align:left}
.v2-onglets{position:relative}
.v2-onglets .fw-sticky-name{grid-row:1}
.fw-section-tabs.v2-onglets .selected{border-bottom-color:transparent}
.v2-onglet-indic{align-self:end;justify-self:start;width:20%;height:3px;pointer-events:none;z-index:1;transition:transform .24s var(--v2-courbe)}
.v2-onglet-indic:after{content:"";display:block;height:3px;margin:0 14%;border-radius:3px 3px 0 0;background:var(--blue);box-shadow:0 -1px 6px #216fe655}
.fw-content.v2-vue-a{animation:v2-vue .2s var(--v2-courbe) backwards}
.fw-content.v2-vue-b{animation:v2-vue-b .2s var(--v2-courbe) backwards}
@keyframes v2-vue-b{from{opacity:0;transform:translateY(8px)}}
.v2-retour-doc{margin-bottom:12px}
@media(max-width:600px){
.fw-content .v2-empile,.fw-compact .v2-empile{overflow:visible;max-height:none}
.v2-empile .fw-table{min-width:0}
.v2-empile table,.v2-empile tbody,.v2-empile tr,.v2-empile td{display:block;width:100%}
.v2-empile thead{display:none}
.v2-empile tr{border:1px solid #e1e9f1;border-radius:11px;padding:8px 12px;margin-bottom:10px;background:#fff}
.v2-empile td{border:0;padding:5px 0}
.v2-empile td:before{content:attr(data-label);display:block;font-size:10px;font-weight:700;color:#7f93a7;text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}
.v2-empile td:first-child{font-weight:800;font-size:13px}
.v2-empile td:first-child:before{display:none}
.v2-id-vivant{width:100%}
.v2-id-indic{flex:1;padding:5px 8px}
.v2-id-indic .v2-jauge svg{width:50px}
.v2-onglet-indic:after{margin:0 8%}
}

/* Tableau du garage : cartes compactes (vignette à gauche) */
.gg-car.v2-carte-compacte{padding:10px 11px;margin:8px 0}
.v2-carte-haut{display:flex;gap:10px;align-items:center}
.v2-carte-compacte .fw-car-art{width:62px;height:40px;margin:0;border-radius:7px;flex-shrink:0}
.v2-carte-compacte .fw-car-art text{display:none}
.v2-carte-id{flex:1;min-width:0}
.v2-carte-compacte .gg-card-top strong{font-size:14px;line-height:1.25}
.v2-carte-compacte .gg-plate{margin:3px 0 0;font-size:11px}
.v2-carte-compacte .gg-location{font-size:12px;margin-top:7px;line-height:1.4}
.v2-carte-compacte .gg-tags{margin:6px 0}
.v2-carte-compacte p{font-size:12.5px;margin:6px 0 7px;line-height:1.4}
.v2-carte-compacte .gg-card-foot{padding-top:7px;font-size:11px}
.v2-carte-compacte .gg-age{font-size:11px;padding:3px 5px}

/* Écrans à onglets (Administratif) */
.v2-onglets-ecran{margin-top:0}
.v2-section{margin-top:18px}
.v2-admin-tete{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.v2-admin-chiffres{display:flex;gap:26px}
.v2-admin-chiffres strong{font-size:24px;color:#20405c;display:block;line-height:1.1}
.v2-admin-chiffres>div>span{font-size:12px;color:#6d8296;display:inline-flex;align-items:center}
.v2-admin-chiffres strong .v2-compteur span{font-size:inherit;color:inherit}
.v2-filtre-dossiers{margin:0}
.v2-admin-file{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:18px;align-items:start}
.v2-dossiers{display:grid;gap:8px}
.v2-dossier{display:grid;gap:3px;text-align:left;background:#fff;border:1px solid #dce6ef;border-radius:12px;padding:11px 13px;color:#263f55;animation:v2-entree .24s var(--v2-courbe) both;animation-delay:calc(var(--n,0)*30ms);transition:transform .08s var(--v2-courbe),box-shadow .15s,border-color .15s}
.v2-dossier:hover{border-color:#3a86e0;box-shadow:0 6px 16px #1d3e5c14}
.v2-dossier:active{transform:scale(.985)}
.v2-dossier.selected{border-color:#3a86e0;background:#f3f8ff;box-shadow:inset 3px 0 #317ee9}
.v2-dossier-type{font-size:10px;font-weight:700;color:#6d8296;text-transform:uppercase;letter-spacing:.4px}
.v2-dossier strong{font-size:13px}
.v2-dossier small{font-size:11px;color:#6d8296}
.v2-dossier-pied{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#5f7489;margin-top:4px}
.v2-dossier-pied .badge{display:inline-flex;align-items:center}
.v2-dossier-detail .panel-title h2{font-size:17px;margin:2px 0 0}
.v2-suite{display:flex;gap:10px;align-items:baseline;margin:0 0 10px;font-size:13px}
.v2-suite span{font-size:10px;font-weight:700;color:#6d8296;text-transform:uppercase;letter-spacing:.4px}
.v2-pieces{display:grid}
.v2-piece{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) minmax(0,.9fr) auto;gap:12px;align-items:center;padding:11px 4px;border-bottom:1px solid #edf1f6;animation:v2-entree .22s var(--v2-courbe) both;animation-delay:calc(var(--n,0)*25ms)}
.v2-piece:last-child{border-bottom:0}
.v2-piece>div{display:grid;gap:3px;min-width:0}
.v2-piece strong{font-size:13px}
.v2-piece span{font-size:12px;color:#29465f}
.v2-piece small{font-size:10.5px;color:#7a8ea2;overflow-wrap:anywhere}
.v2-piece .badge{justify-self:start}
.v2-piece-geste .btn{white-space:nowrap}
.v2-outils-3{grid-template-columns:2fr 1fr 1fr}
.v2-modeles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-bottom:16px}
.v2-modele{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid #e1e9f1;border-radius:10px;background:#fff;color:#263f55;animation:v2-entree .22s var(--v2-courbe) both;animation-delay:calc(var(--n,0)*20ms);transition:transform .08s var(--v2-courbe),box-shadow .15s,border-color .15s}
.v2-modele:hover{border-color:#3a86e0;box-shadow:0 6px 16px #1d3e5c14}
.v2-modele:active{transform:scale(.98)}
.v2-modele>span:last-child{display:grid;gap:2px;min-width:0}
.v2-modele strong{font-size:12.5px}
.v2-modele small{font-size:10px;color:#8a6a2e}
.v2-modele-icone{width:30px;height:36px;border-radius:5px;display:grid;place-items:center;background:linear-gradient(160deg,#f4f8fc,#e2ebf4);color:#5b7a96;font-size:15px;flex-shrink:0;box-shadow:inset 0 0 0 1px #d5e1ec}
.v2-formalites{display:grid;gap:12px;margin-bottom:14px}
.v2-formalite{background:#fff;border:1px solid #dce6ef;border-radius:13px;padding:12px 14px;animation:v2-entree .24s var(--v2-courbe) both;animation-delay:calc(var(--n,0)*40ms)}
.v2-formalite-tete{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.v2-formalite-tete>div{display:grid;gap:2px}
.v2-formalite-tete small{font-size:11px;color:#6d8296}
.v2-etapes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;counter-reset:etape}
.v2-etapes li{position:relative;display:grid;gap:3px;padding:8px 10px 8px 12px;border-radius:9px;background:#f4f7fb;border:1px solid #e3ebf3}
.v2-etapes li:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:#c8d5e2}
.v2-etapes li.fait{background:#fff8ea;border-color:#f1dfb9}
.v2-etapes li.fait:before{background:#d99a32}
.v2-etapes span{font-size:10px;font-weight:700;color:#6d8296;text-transform:uppercase;letter-spacing:.3px}
.v2-etapes strong{font-size:12px;color:#29465f}
.v2-registre th{white-space:normal}
.fw-table td.v2-registre-vide{text-align:center;color:#7a8ea2;padding:26px 12px}

/* Gestion : tuiles, fonctions, réglages */
.v2-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-bottom:18px}
.v2-tuile{display:grid;gap:8px;align-content:start;background:linear-gradient(180deg,#fff,#f8fbfe);border:1px solid #dbe6f0;border-radius:14px;padding:15px 16px;color:#263f55;box-shadow:0 1px 0 #fff inset,0 4px 14px #1b3d5d0d;animation:v2-entree .26s var(--v2-courbe) backwards;animation-delay:calc(var(--n,0)*30ms);transition:transform .18s var(--v2-courbe),box-shadow .18s,border-color .18s}
.v2-tuile:hover,.v2-tuile:focus-visible{transform:translateY(-2px);box-shadow:0 2px 4px #1d3e5c14,0 12px 26px #1d3e5c22;border-color:#3a86e0;outline:none}
.v2-tuile:active{transform:scale(.985)}
.v2-tuile-tete{display:flex;justify-content:space-between;align-items:center;gap:8px}
.v2-tuile-tete strong{font-size:15px;color:#1f3d58}
.v2-tuile-n{font-size:12px;font-weight:800;color:#2b6fc0;background:#eaf2ff;border-radius:20px;padding:2px 9px;min-width:28px;text-align:center}
.v2-tuile-n .v2-compteur span{font-size:inherit;color:inherit}
.v2-tuile-q{font-size:12px;color:#5f7489;line-height:1.5}
.v2-tuile-barre{display:block;height:6px;border-radius:4px;background:#e6edf4;overflow:hidden;position:relative}
.v2-tuile-barre i{position:absolute;inset:0;background:linear-gradient(90deg,#2f9c6a 0 var(--ok),#d99a32 var(--ok) calc(var(--ok) + var(--sim)),transparent calc(var(--ok) + var(--sim)));transform-origin:0 50%;animation:v2-etire .6s var(--v2-courbe) both .2s}
.v2-tuile small{font-size:11px;color:#7a8ea2}
.v2-ariane{margin-bottom:6px}
.v2-fonctions{display:grid}
.v2-fonction{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(120px,auto);gap:14px;align-items:center;padding:11px 6px;border-bottom:1px solid #edf1f6;color:#263f55;border-radius:8px;transition:background .15s,transform .08s var(--v2-courbe)}
.v2-fonction:hover{background:#f5f9ff}
.v2-fonction:active{transform:scale(.995)}
.v2-fonction>span{display:grid;gap:3px;min-width:0}
.v2-fonction strong{font-size:13px}
.v2-fonction small{font-size:10.5px;color:#7a8ea2}
.v2-fonction-ou{font-size:12px;color:#4f6880}
.v2-fonction .badge{justify-self:start}
.v2-sources{margin:6px 0 0;padding-left:18px;font-size:11px;color:#4f6880;display:grid;gap:3px}
.v2-sources code{font-size:10.5px;overflow-wrap:anywhere}
.v2-reglages{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
.v2-categories{display:grid;gap:6px}
.v2-categorie{display:grid;gap:2px;padding:10px 12px;border:1px solid #dce6ef;border-radius:10px;background:#fff;color:#263f55;transition:border-color .15s,transform .08s var(--v2-courbe)}
.v2-categorie:hover{border-color:#3a86e0}
.v2-categorie:active{transform:scale(.98)}
.v2-categorie.selected{background:#eaf2ff;border-color:#3a86e0;box-shadow:inset 3px 0 #317ee9}
.v2-categorie strong{font-size:13px}
.v2-categorie small{font-size:11px;color:#6d8296}

@media(max-width:1100px){.v2-bandeau{grid-template-columns:1fr 1fr}.v2-bandeau-note{grid-column:1/-1}.v2-admin-file{grid-template-columns:1fr}.v2-piece{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.v2-etapes{grid-template-columns:repeat(2,minmax(0,1fr))}.v2-reglages{grid-template-columns:1fr}.v2-categories{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
@media(max-width:600px){
.v2-bandeau{grid-template-columns:1fr;padding:16px;gap:14px}
.v2-bandeau-chiffres{gap:18px}
.v2-bandeau-chiffres strong{font-size:24px}
.v2-piece{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
.v2-piece-dossier{grid-column:1/-1;order:3}
.v2-piece-etat{order:2}
.v2-piece-geste{grid-column:1/-1;order:4}
.v2-piece-geste .btn{margin-left:0}
.v2-outils-3{grid-template-columns:1fr}
.v2-fonction{grid-template-columns:minmax(0,1fr);gap:4px}
.v2-admin-chiffres{gap:18px}
.v2-formalite-tete{flex-wrap:wrap}
.v2-formalite-tete .btn{margin-left:0}
.v2-tuiles{grid-template-columns:1fr}
.v2-jauges-ligne{gap:12px;justify-content:space-around}
}
@media(prefers-reduced-motion:reduce){
.v2-transition,.v2-transition-b,.fw-content.v2-vue-a,.fw-content.v2-vue-b,.fw-command-modal,.fw-modal,.fw-modal-shade,.toast,.v2-sq,.v2-spark-trait,.v2-spark-aire,.v2-spark-point,.v2-jauge-trait,.v2-onglet-indic,.v2-task,.v2-dossier,.v2-piece,.v2-modele,.v2-formalite,.v2-tuile,.v2-tuile-barre i{animation:none}
.v2-onglet-indic,.btn,.aw-tabs button,.fw-filter-row button,.fw-local-menu>button,.fw-section-tabs button,.v2-id-indic,.v2-dossier,.v2-modele,.v2-tuile,.v2-fonction,.v2-categorie{transition:none}
.btn:active,.aw-tabs button:active,.v2-id-indic:active,.v2-dossier:active,.v2-modele:active,.v2-tuile:active,.v2-tuile:hover,.v2-fonction:active,.v2-categorie:active{transform:none}
}
.v2-sans-dossier{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.v2-sans-dossier .v2-mini-carte>span{display:grid;gap:2px;min-width:0}
@media(max-width:600px){.v2-intro-actions>.row{display:flex;flex-direction:row;align-items:stretch;flex-wrap:wrap;gap:8px}.v2-intro-actions>.row .btn{margin-left:0;justify-content:center;padding:9px 10px}}
@media(max-width:600px){.v2-piece-geste{justify-items:start}.v2-piece-geste .btn{padding:8px 14px}}

/* Lot B1 — serveur d'essai : bandeau, session, connexion. */
.demo.v2-demo-serveur{background:#e8f6ee;color:#245c3c;border-bottom-color:#cde9d8}
.v2-session{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.v2-lien{border:0;background:transparent;color:inherit;text-decoration:underline;font:inherit;cursor:pointer;padding:0}
.v2-connexion{max-width:460px;margin:48px auto;padding:0 16px}
.v2-connexion form{display:block}
.v2-connexion .btn{width:100%;justify-content:center;margin:6px 0 14px;padding:12px}
.v2-alerte{border-left-color:#cc8032;color:#8a5b1e}
.v2-preuve-serveur{border-left:3px solid #2f8a57}
.v2-detail{font-size:inherit}
@media(max-width:600px){.demo.v2-demo-serveur span.v2-session{display:inline-flex}.v2-detail{display:none}}
/* B2 : gestes enregistrés sur le serveur d'essai */
.v2-cache{display:none}
.v2-alerte-serveur{position:sticky;top:0;z-index:35;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:#fff4e3;border-bottom:1px solid #efcf9c;color:#7a4b0f;padding:10px 28px;font-size:13px}
.v2-alerte-serveur[data-conflit]{background:#fff0ec;border-bottom-color:#f1c5b8;color:#8e2f1b}
.v2-alerte-serveur .row{margin-left:auto}
.v2-alerte-serveur .small{flex-basis:100%;color:inherit;opacity:.85}
.fw-info.v2-refus,.v2-etat-brouillon.v2-refus{color:#a2361f;border-left-color:#cc6a4f}
.v2-etat-brouillon{color:#2f6b4a;margin:6px 0 0}
.v2-lecture{color:#56718b}
.v2-erreur-lecture{color:#a2361f;background:#fff0ec;border:1px solid #f1c5b8;border-radius:8px;padding:8px 10px;font-size:12px}
.v2-bandeau.v2-bandeau-serveur{grid-template-columns:minmax(0,2fr) minmax(200px,1fr);margin-bottom:18px}
@media(max-width:1100px){.v2-bandeau.v2-bandeau-serveur{grid-template-columns:1fr}}
@media(max-width:600px){.v2-alerte-serveur{padding:10px 12px}.v2-alerte-serveur .row{margin-left:0}}
