/* vlebis · styles. Variables en tête : changer la charte = modifier ce bloc. */
:root {
  --vb-bg: #f4f6f8; --vb-surface: #fff; --vb-ink: #1d2a33; --vb-muted: #5d6b76; --vb-line: #d5dce2;
  --vb-brand: #0f5c73; --vb-brand-ink: #fff; --vb-nav: #12303b;
  /* Statuts de donnée */
  --st-propose: #fff1c9; --st-propose-bd: #d9a400;   /* proposé par le site */
  --st-valide:  #d7f0dd; --st-valide-bd:  #2e8b4f;   /* validé par l'agent */
  --st-saisie:  #dcebfa; --st-saisie-bd:  #3b7bbf;   /* saisi, à valider */
  --st-lecture: #e8eaed; --st-lecture-bd: #9aa3ab;   /* lecture seule */
  --vb-ok: #2e8b4f; --vb-warn: #c27a00; --vb-err: #b3261e;
}
* { box-sizing: border-box; }
body { margin: 0; font: 15px/1.5 "Segoe UI", system-ui, sans-serif; background: var(--vb-bg); color: var(--vb-ink); }
h1, h2, h3 { line-height: 1.25; margin: 0 0 .5rem; }
.vb-shell { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }
.vb-nav { background: var(--vb-nav); color: #dbe7ec; padding: 1rem .75rem; }
.vb-nav h1 { font-size: 1.15rem; color: #fff; padding: 0 .5rem .75rem; }
.vb-nav a { display: block; padding: .5rem .75rem; border-radius: 6px; color: inherit; text-decoration: none; }
/* États du menu définis ensemble dans la section V12. */
.vb-nav .vb-sep { margin: .75rem .75rem .25rem; font-size: .8rem; color: #8fa8b3; }
.vb-main { padding: 1.5rem 2rem; max-width: 1100px; }
.vb-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; gap: 1rem; }
.vb-card { background: var(--vb-surface); border: 1px solid var(--vb-line); border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1rem; }
.vb-muted { color: var(--vb-muted); }
@media (max-width: 800px) { .vb-shell { grid-template-columns: 1fr; } .vb-nav { padding: .5rem; } .vb-nav a { display: inline-block; } .vb-main { padding: 1rem; } }

/* Champs et statuts */
label.vb-f { display: block; font-weight: 600; margin: .75rem 0 .25rem; }
.vb-input, .vb-select, .vb-textarea { width: 100%; padding: .5rem .6rem; border: 1px solid var(--vb-line); border-radius: 6px; font: inherit; background: #fff; }
.st-propose { background: var(--st-propose) !important; border-color: var(--st-propose-bd) !important; }
.st-valide  { background: var(--st-valide)  !important; border-color: var(--st-valide-bd)  !important; }
.st-saisie  { background: var(--st-saisie)  !important; border-color: var(--st-saisie-bd)  !important; }
.st-lecture { background: var(--st-lecture) !important; border-color: var(--st-lecture-bd) !important; color: #4a545c; }
.vb-legende { display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: .85rem; }
.vb-legende span { padding: .15rem .6rem; border: 1px solid; border-radius: 999px; }

/* Boutons */
.vb-btn { padding: .5rem 1rem; border: 1px solid var(--vb-line); border-radius: 6px; background: #fff; cursor: pointer; font: inherit; }
.vb-btn:hover { border-color: var(--vb-brand); }
.vb-btn-primary { background: var(--vb-brand); border-color: var(--vb-brand); color: var(--vb-brand-ink); }
.vb-btn-danger { background: var(--vb-err); border-color: var(--vb-err); color: #fff; }
.vb-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }

/* Alertes */
#vb-toasts { position: fixed; top: 1rem; right: 1rem; display: grid; gap: .5rem; z-index: 1100; max-width: min(380px, 92vw); }
.vb-toast { padding: .65rem .9rem; border-radius: 6px; color: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.2); background: var(--vb-brand); }
.vb-toast-ok { background: var(--vb-ok); } .vb-toast-warn { background: var(--vb-warn); } .vb-toast-err { background: var(--vb-err); }
.vb-overlay { position: fixed; inset: 0; background: rgba(10,25,32,.5); display: grid; place-items: center; z-index: 1200; padding: 1rem; }
.vb-dialog { background: #fff; border-radius: 10px; padding: 1.25rem 1.5rem; max-width: 440px; width: 100%; }
.vb-dialog-actions { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }
.vb-login { max-width: 360px; margin: 12vh auto; }

/* Jalon 2 : tableaux, onglets, assistant par étapes */
.vb-table { width: 100%; border-collapse: collapse; background: #fff; }
.vb-table th, .vb-table td { padding: .4rem .5rem; border-bottom: 1px solid var(--vb-line); text-align: left; vertical-align: middle; }
.vb-table th { font-size: .85rem; color: var(--vb-muted); }
.vb-table .vb-input, .vb-table .vb-select { padding: .3rem .4rem; min-width: 90px; }
.vb-table tr.vb-add td { background: #f8fafb; }
.vb-scroll { overflow-x: auto; } .vb-nowrap { white-space: nowrap; }
.vb-tabs, .vb-steps { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: 1rem; }
.vb-tabs a, .vb-steps a { padding: .45rem .9rem; border: 1px solid var(--vb-line); border-radius: 999px; background: #fff; color: var(--vb-ink); text-decoration: none; font-size: .9rem; }
.vb-tabs a.actif, .vb-steps a.actif { background: var(--vb-brand); border-color: var(--vb-brand); color: #fff; }
.vb-steps a.off { opacity: .45; pointer-events: none; }
a.vb-btn { text-decoration: none; color: inherit; display: inline-block; }
a.vb-btn.vb-btn-primary { color: var(--vb-brand-ink); }
.vb-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0 1.5rem; }
.vb-q { padding-bottom: .5rem; border-bottom: 1px dashed var(--vb-line); margin-bottom: .5rem; }
.vb-q .vb-textarea { margin-top: .3rem; font-size: .9rem; }
.vb-pill { display: inline-block; padding: .1rem .6rem; border: 1px solid; border-radius: 999px; font-size: .85rem; }
.vb-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: .25rem .75rem; max-height: 55vh; overflow: auto; }
.vb-checks label { padding: .25rem .5rem; border: 1px solid transparent; border-radius: 6px; }

/* Jalon 3 : complétude, saisie en cours, arborescence */
.st-vide { background: #fde4e1 !important; border-color: #e0928a !important; }
.vb-dirty { box-shadow: 0 0 0 2px #3b7bbf; }
.vb-invalid { background: #fde4e1 !important; border-color: var(--vb-err) !important; }
.vb-rc { list-style: none; padding: .25rem .6rem; margin: .2rem 0; border: 1px solid; border-radius: 6px; }
.vb-rc span { display: inline-block; width: 1.2rem; font-weight: 700; }
ul.vb-rcs { padding: 0; }
.vb-grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 1rem; }
.vb-dev { border-left: 4px solid var(--vb-brand); background: #fbfcfd; padding: .5rem .9rem; margin: .6rem 0; border-radius: 0 6px 6px 0; }
.vb-dev > summary { cursor: pointer; font-weight: 600; padding: .3rem 0; }
.vb-hist { list-style: none; padding-left: 1rem; border-left: 2px solid var(--vb-line); margin: .25rem 0; }
.vb-hist > li { margin: .35rem 0; } .vb-hist a { color: inherit; } .vb-hist .cur { font-weight: 700; color: var(--vb-brand); }
.vb-table input[type=text] { min-width: 170px; }

/* Champ de recherche assisté */
.vb-combo { position: relative; }
.vb-combo-list { position: absolute; z-index: 50; left: 0; right: 0; top: 100%; margin: 2px 0 0; padding: 0; list-style: none; max-height: 260px; overflow: auto;
  background: #fff; border: 1px solid var(--vb-brand); border-radius: 6px; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.vb-combo-list li { padding: .35rem .6rem; cursor: pointer; border-bottom: 1px solid #eef1f3; font-size: .9rem; }
.vb-combo-list li:hover, .vb-combo-list li.on { background: #dcebfa; }
.vb-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .75rem; }
.vb-toolbar .vb-input { max-width: 280px; }
.vb-prev { max-height: 40vh; overflow: auto; font-size: .85rem; background: #f8fafb; border: 1px solid var(--vb-line); padding: .5rem; border-radius: 6px; }

/* ===== Jalon 4 : ossature (en-tête, menu, pied de page) et finitions de design ===== */
:root { --vb-radius: 10px; --vb-shadow: 0 1px 2px rgba(18,48,59,.06), 0 4px 14px rgba(18,48,59,.07); }
html { scroll-behavior: smooth; }
body { background: #eef2f5; }
:focus-visible { outline: 3px solid #7fb6d6; outline-offset: 1px; }
.vb-app { min-height: 100vh; display: flex; flex-direction: column; }
.vb-header { position: sticky; top: 0; z-index: 60; display: flex; align-items: center; gap: .75rem; padding: .55rem 1.25rem; background: linear-gradient(90deg, #0f4f63, #12303b); color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.vb-logo { color: #fff; font-weight: 700; font-size: 1.25rem; text-decoration: none; display: flex; flex-direction: column; line-height: 1.05; }
.vb-logo small { font-weight: 400; font-size: .68rem; opacity: .75; letter-spacing: .04em; }
.vb-quick .vb-input { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.3); color: #fff; min-width: 220px; padding: .38rem .6rem; }
.vb-quick .vb-input::placeholder { color: rgba(255,255,255,.7); }
.vb-header .vb-btn { padding: .38rem .8rem; }
.vb-header .vb-btn:not(.vb-btn-primary) { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.3); }
.vb-header .vb-btn-primary { background: #2a9d8f; border-color: #2a9d8f; }
.vb-zoom { display: flex; align-items: center; gap: .3rem; font-size: .85rem; } .vb-zoom span { min-width: 3.2em; text-align: center; }
.vb-user { color: #fff; text-decoration: none; display: flex; align-items: center; gap: .35rem; padding: .3rem .6rem; border-radius: 999px; background: rgba(255,255,255,.12); }
.vb-user:hover { background: rgba(255,255,255,.22); }
.vb-burger { display: none; background: none; border: 0; color: #fff; font-size: 1.5rem; cursor: pointer; }
.vb-shell2 { flex: 1; display: grid; grid-template-columns: 230px 1fr; align-items: start; }
.vb-nav { position: sticky; top: 52px; background: #fff; border-right: 1px solid var(--vb-line); padding: .9rem .6rem; min-height: calc(100vh - 52px); color: var(--vb-ink); }
.vb-nav a { display: flex; align-items: center; gap: .55rem; padding: .55rem .8rem; border-radius: 8px; color: var(--vb-ink); text-decoration: none; margin-bottom: 2px; }

.vb-ic { width: 1.3rem; text-align: center; }
.vb-main { padding: 1.4rem 2rem 2.5rem; max-width: 1280px; width: 100%; }
.vb-card { border-radius: var(--vb-radius); box-shadow: var(--vb-shadow); border-color: #dfe6eb; }
h2 { font-size: 1.45rem; color: #12303b; } h3 { color: #12303b; } h4 { margin: 1rem 0 .3rem; color: #12303b; }
.vb-btn { border-radius: 8px; transition: background .15s, border-color .15s, box-shadow .15s; } .vb-btn:hover { box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.vb-btn[disabled] { opacity: .5; cursor: not-allowed; }
.vb-table tbody tr:nth-child(even):not(.vb-add) { background: #f8fafb; } .vb-table tbody tr:hover:not(.vb-add) { background: #eef5f9; }
.vb-table.vb-sticky thead th { position: sticky; top: 52px; background: #fff; }
.vb-input, .vb-select, .vb-textarea { border-radius: 8px; } .vb-input:focus, .vb-select:focus, .vb-textarea:focus { border-color: var(--vb-brand); }
.vb-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding: .9rem 1.5rem; background: #12303b; color: #b9cbd3; font-size: .85rem; }
.vb-footer a { color: #dbe7ec; text-decoration: none; margin-left: 1rem; } .vb-footer a:hover { text-decoration: underline; }
.vb-wide { max-width: min(980px, 96vw) !important; width: 96vw; max-height: 92vh; overflow: auto; }
.vb-head td { background: #e6eef3; font-weight: 700; color: #12303b; }
.vb-calcrow td:last-child { font-weight: 600; } .vb-err-t { color: var(--vb-err); }
.vb-off { opacity: .55; } .vb-c { text-align: right; font-variant-numeric: tabular-nums; }
.vb-faq { border-bottom: 1px solid var(--vb-line); padding: .5rem 0; } .vb-faq summary { cursor: pointer; font-weight: 600; } .vb-faq p { margin: .5rem 0 .2rem; color: var(--vb-muted); }
@media (max-width: 900px) {
  .vb-burger { display: block; } .vb-quick { display: none; }
  .vb-shell2 { grid-template-columns: 1fr; } .vb-nav { display: none; position: fixed; top: 52px; left: 0; right: 0; z-index: 55; min-height: 0; box-shadow: 0 8px 20px rgba(0,0,0,.2); } .vb-nav.open { display: block; }
  .vb-main { padding: 1rem; } .vb-header { gap: .4rem; padding: .5rem .7rem; } .vb-logo small, #vb-uname { display: none; }
}
@media print { .vb-header, .vb-nav, .vb-footer, .vb-actions, .vb-toolbar { display: none !important; } .vb-shell2 { display: block; } .vb-card { box-shadow: none; } }

/* Jalon 5 : volets repliés par défaut, sous-volets */
.vb-sub { margin: .6rem 0; padding: .3rem .7rem; border: 1px solid var(--vb-line); border-radius: 8px; background: #fff; }
.vb-sub > summary { cursor: pointer; font-weight: 600; padding: .25rem 0; }
.vb-sub[open] > summary { margin-bottom: .4rem; }
details > summary:hover { color: var(--vb-brand); }

/* ===== Jalon 6 : pleine largeur, logo, statistiques, boutons d'en-tête ===== */
.vb-shell2 { grid-template-columns: 220px minmax(0, 1fr); }
.vb-main { max-width: none; width: 100%; min-width: 0; padding: 1.1rem 1.4rem 2.2rem; }
.vb-table input.vb-input, .vb-table select.vb-select { min-width: 64px; }
.vb-table input[type=text] { min-width: 110px; }
.vb-table th, .vb-table td { padding: .35rem .4rem; }
.vb-logo { flex-direction: row; align-items: center; gap: .55rem; }
.vb-brand { display: flex; flex-direction: column; line-height: 1.05; font-weight: 700; font-size: 1.2rem; letter-spacing: .01em; }
.vb-brand small { font-weight: 400; font-size: .64rem; opacity: .75; letter-spacing: .03em; white-space: nowrap; }
.vb-logo-svg { flex: none; filter: drop-shadow(0 1px 2px rgba(0,0,0,.25)); }
.vb-login-brand { display: flex; align-items: center; gap: .6rem; margin-bottom: .3rem; } .vb-login-brand h2 { margin: 0; }
.vb-scrollbtns { display: flex; gap: .2rem; } .vb-scrollbtns .vb-btn { padding: .3rem .55rem; }
.vb-combo-list { color: var(--vb-ink); } .vb-combo-list li strong { color: #0f4f63; }
.vb-quick { min-width: 260px; flex: 0 1 380px; } .vb-quick .vb-combo { width: 100%; }
.vb-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .7rem; margin-bottom: .9rem; }
.vb-kpi { background: #fff; border: 1px solid #dfe6eb; border-radius: var(--vb-radius); box-shadow: var(--vb-shadow); padding: .7rem .9rem; display: flex; flex-direction: column; }
.vb-kpi strong { font-size: 1.6rem; color: #0f4f63; line-height: 1.1; } .vb-kpi span { font-weight: 600; } .vb-kpi small { color: var(--vb-muted); }
.vb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: .8rem; align-items: start; } .vb-stats .vb-card { margin: 0; }
.vb-bar-row { display: grid; grid-template-columns: minmax(80px, 38%) 1fr 2.2rem; align-items: center; gap: .5rem; font-size: .88rem; margin: .22rem 0; }
.vb-bar-lab { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .vb-bar-track { background: #e6eef3; border-radius: 99px; height: .6rem; overflow: hidden; }
.vb-bar-fill { background: linear-gradient(90deg, #2a9d8f, #0f5c73); height: 100%; border-radius: 99px; } .vb-bar-val { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.vb-spark { display: flex; align-items: flex-end; gap: 2px; height: 70px; } .vb-spark i { flex: 1; background: #3fb8ac; border-radius: 2px 2px 0 0; min-height: 3px; }
@media (max-width: 1100px) { .vb-brand small, .vb-hide-s { display: none; } .vb-quick { min-width: 150px; } }
@media (max-width: 900px) { .vb-shell2 { grid-template-columns: minmax(0, 1fr); } .vb-scrollbtns { display: none; } }

/* ===== Jalon 7 : champs à la taille de leur contenu, navigation de dossier, page Paramètres ===== */
.vb-input, .vb-select { width: auto; max-width: 100%; }
.vb-textarea { width: min(100%, 52rem); }
.vb-grid .vb-input, .vb-grid .vb-select, .vb-grid3 .vb-input, .vb-grid3 .vb-select, .vb-grid3 .vb-textarea, .vb-login .vb-input, .vb-login .vb-select { width: 100%; }
.vb-q .vb-select { min-width: 14rem; } .vb-q .vb-textarea { width: min(100%, 40rem); }
.vb-toolbar .vb-input { min-width: 12rem; } .vb-card > .vb-input { min-width: 14rem; }
.vb-dnav { margin-bottom: .9rem; } .vb-dnav-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; } .vb-dnav-top h2 { margin: 0 0 .4rem; }
.vb-vers { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: .1rem 0 .5rem; }
.vb-ver { padding: .22rem .65rem; border: 1px solid var(--vb-line); border-radius: 999px; background: #fff; color: var(--vb-ink); text-decoration: none; font-size: .88rem; }
.vb-ver:hover { border-color: var(--vb-brand); } .vb-ver.cur { background: #dff0f5; border-color: var(--vb-brand); font-weight: 700; } .vb-ver small { color: var(--vb-muted); }
.vb-dialog-actions.vb-col { flex-direction: column; align-items: stretch; } .vb-dialog-actions.vb-col .vb-btn { text-align: left; }
.vb-qual { display: inline-block; padding: .08rem .55rem; border-radius: 999px; font-size: .78rem; font-weight: 700; border: 1px solid; white-space: nowrap; }
.q-sect { background: #dcebfa; border-color: #3b7bbf; color: #1c4d80; } .q-norme { background: #d7f0dd; border-color: #2e8b4f; color: #1d6137; }
.q-part { background: #ffe9c7; border-color: #d9930a; color: #8a5a00; } .q-surv { background: #eadcf8; border-color: #8e5bc0; color: #5b2f8a; }
i.q-sect, i.q-norme, i.q-part, i.q-surv { font-style: normal; padding: 0 .35rem; border-radius: 6px; border: 0; }
.vb-sumcnt { margin-left: .8rem; font-weight: 400; font-size: .85rem; color: var(--vb-muted); }
.vb-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .3rem; } .vb-chip { padding: .15rem .6rem; border: 1px solid var(--vb-line); border-radius: 999px; background: #fff; font-size: .85rem; cursor: pointer; }
.vb-pp { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: .8rem 2rem; margin-bottom: .6rem; }
.vb-sep { width: 1px; align-self: stretch; background: var(--vb-line); margin: 0 .3rem; }
.vb-fb.on { background: var(--vb-brand); color: #fff; border-color: var(--vb-brand); }
.vb-pt th, .vb-pt td { padding: .3rem .35rem; vertical-align: middle; } .vb-pt th { white-space: nowrap; font-size: .8rem; }
.vb-pt .vb-num { width: 6.8rem; } .vb-pt .vb-select { min-width: 7.5rem; max-width: 12rem; font-size: .88rem; } .vb-pt small { display: block; line-height: 1.2; }
.vb-pt tr.qr-sectorielle td:first-child { border-left: 4px solid #3b7bbf; } .vb-pt tr.qr-norme td:first-child { border-left: 4px solid #2e8b4f; }
.vb-pt tr.qr-particuliere td:first-child { border-left: 4px solid #d9930a; } .vb-pt tr.qr-surveillance td:first-child { border-left: 4px solid #8e5bc0; }
.vb-pt tr.qr-particuliere { background: #fffaf0 !important; } .vb-pt tr.vb-rowdirty { background: #eef5fb !important; }
.vb-mod { border-color: #d9930a !important; background: #fff3dc !important; } .vb-hint { color: var(--vb-muted); font-size: .72rem; }
@media print { body.vb-print-modal .vb-app { display: none !important; } body.vb-print-modal .vb-overlay { position: static; background: none; display: block; } body.vb-print-modal .vb-dialog { box-shadow: none; max-height: none; width: 100%; max-width: 100% !important; } body.vb-print-modal .vb-dialog-actions { display: none; } body.vb-print-modal .vb-scroll { max-height: none !important; overflow: visible; } }

/* ===== Jalon 8 : hauteurs et alignements homogènes, volets repliables, boutons, pagination ===== */
:root { --vb-ctl-h: 2.2rem; }
.vb-btn, .vb-input, .vb-select { min-height: var(--vb-ctl-h); }
.vb-btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; line-height: 1.15; padding: .3rem .95rem; vertical-align: middle; text-decoration: none; white-space: nowrap; }
a.vb-btn, button.vb-btn { color: var(--vb-ink); } a.vb-btn.vb-btn-primary, button.vb-btn-primary, .vb-btn-danger { color: #fff; }
.vb-btn.vb-mini { min-height: 1.85rem; padding: .15rem .65rem; font-size: .84rem; }
.vb-input, .vb-select { padding: .3rem .6rem; line-height: 1.3; } .vb-input[type=checkbox], input[type=checkbox] { min-height: 0; width: 1.05rem; height: 1.05rem; vertical-align: middle; accent-color: var(--vb-brand); }
.vb-toolbar, .vb-actions, .vb-pager { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .6rem; }
.vb-toolbar > label, .vb-actions > label { display: inline-flex; align-items: center; gap: .35rem; margin: 0; }
.vb-chk { display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; }
.vb-pager { justify-content: flex-end; margin-top: .6rem; } .vb-pager > .vb-muted:first-child { margin-right: auto; }
.vb-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: .9rem; } .vb-bar h2 { margin: 0; }
label.vb-f { margin: .7rem 0 .25rem; font-size: .92rem; }
.vb-grid, .vb-grid3 { align-items: end; } .vb-grid > div, .vb-grid3 > div { min-width: 0; }
.vb-table td, .vb-table th { vertical-align: middle; } .vb-table .vb-btn { margin: .05rem 0; }
.vb-nowrap { white-space: nowrap; } .vb-nowrap .vb-btn + .vb-btn { margin-left: .2rem; }
/* Volets repliables : en-têtes homogènes, fermés par défaut */
details.vb-card > summary, details.vb-dev > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .8rem; padding: .35rem 0; }
details.vb-card > summary::-webkit-details-marker, details.vb-dev > summary::-webkit-details-marker, details.vb-sub > summary::-webkit-details-marker { display: none; }
details.vb-card > summary::before, details.vb-dev > summary::before, details.vb-sub > summary::before { content: '▸'; color: var(--vb-brand); font-weight: 700; width: 1rem; display: inline-block; transition: transform .15s; }
details[open] > summary::before { transform: rotate(90deg); }
details.vb-card { padding: .5rem 1rem; } details.vb-card[open] > summary { border-bottom: 1px solid var(--vb-line); margin-bottom: .7rem; }
details.vb-rej { margin-bottom: .6rem; } details.vb-rej > summary strong, details.vb-dosdet > summary strong { font-size: 1.05rem; }
details.vb-sub > summary { list-style: none; display: flex; align-items: center; gap: .3rem; }
.vb-fgroup > summary { font-size: 1.02rem; } .vb-fgroup .vb-faq { margin-left: 1rem; }
.vb-qgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: .2rem 1.6rem; align-items: start; } .vb-qgrid .vb-q { margin: 0 0 .4rem; }
/* Pied de page : vrais boutons */
.vb-flinks { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.vb-footer .vb-flinks a { margin: 0; display: inline-flex; align-items: center; min-height: 2rem; padding: .2rem .8rem; border: 1px solid rgba(255,255,255,.32); border-radius: 8px; background: rgba(255,255,255,.08); color: #eaf2f5; text-decoration: none; transition: background .15s; }
.vb-footer .vb-flinks a:hover { background: rgba(255,255,255,.2); text-decoration: none; }
.vb-footer > span:first-child { align-self: center; }
/* Station amont dans la fenêtre de calcul */
.vb-amont { background: #f3f8fb; border: 1px solid var(--vb-line); border-radius: 10px; padding: .6rem .8rem; margin: .6rem 0; }
.vb-amont-row { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem 1rem; } .vb-amont-row label { display: flex; flex-direction: column; gap: .15rem; font-size: .85rem; color: var(--vb-muted); }
.vb-amont-row .vb-input[data-am=station] { width: 11rem; } .vb-amont-row .vb-select { max-width: 17rem; } .vb-amont-row .vb-num { width: 5.5rem; }
.vb-amont-note { margin-top: .4rem; font-size: .9rem; } .vb-amont-note.ok { color: #1d6137; }
.vb-amontcfg { border-top: 1px dashed var(--vb-line); padding-top: .2rem; margin-top: .4rem; }
.vb-subrow > td { background: #f7fafc; padding: .6rem 1rem 1rem; } .vb-inner { margin: 0; } .vb-inner th { font-size: .8rem; }
@media (max-width: 900px) { .vb-qgrid { grid-template-columns: 1fr; } .vb-toolbar .vb-input { min-width: 0; flex: 1 1 12rem; } }

/* ===== Jalon 9 : volets par origine, tri, calcul (L20/L21), choix longs, barre de saisies non enregistrées ===== */
.vb-radios { display: flex; flex-direction: column; gap: .3rem; padding: .5rem .7rem; border: 1px solid var(--vb-line); border-radius: 8px; background: #fff; }
.vb-radio { display: flex; align-items: flex-start; gap: .5rem; padding: .25rem .4rem; border-radius: 6px; cursor: pointer; line-height: 1.35; } .vb-radio:hover { background: #eef5f9; } .vb-radio input { margin-top: .22rem; flex: none; } .vb-radio:has(input:checked) { background: #dff0f5; font-weight: 600; }
.vb-qwide { grid-column: 1 / -1; }
.vb-sortbtn { background: none; border: 1px solid var(--vb-line); border-radius: 6px; cursor: pointer; padding: 0 .35rem; margin-left: .2rem; color: var(--vb-brand); font-size: .8rem; line-height: 1.4; } .vb-sortbtn:hover { background: #dff0f5; }
.vb-psec { margin: .45rem 0; border-left: 4px solid var(--vb-line); } .vb-psec.q-surv { border-left-color: #8e5bc0; } .vb-psec.q-sect { border-left-color: #3b7bbf; } .vb-psec.q-norme { border-left-color: #2e8b4f; } .vb-psec.q-part { border-left-color: #d9930a; }
.vb-psec > summary { padding: .35rem .2rem; }
.vb-xrow td { background: #f3f8fb; border-bottom: 1px solid var(--vb-line); } .vb-xrow .vb-amont { margin: .2rem 0; }
.vb-cands { margin-top: .6rem; padding: .5rem .7rem; background: #f7fafc; border: 1px solid var(--vb-line); border-radius: 8px; }
.vb-cand { display: inline-block; padding: .1rem .5rem; margin: .1rem .15rem; border-radius: 6px; background: #eceff1; font-size: .85rem; } .vb-cand.ok { background: #d7f0dd; border: 1px solid #2e8b4f; font-weight: 700; }
.vb-dirtybar { position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); z-index: 90; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; padding: .5rem .9rem; border-radius: 12px; background: #12303b; color: #fff; box-shadow: 0 6px 22px rgba(0,0,0,.35); max-width: 94vw; }
.vb-dirtybar .vb-btn { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.35); }

/* Jalon 9.2 : type de demande par questions Oui/Non */
.vb-dich { padding: .6rem .8rem; border: 1px solid var(--vb-line); border-radius: 8px; background: #fff; }
.vb-dich.st-vide { background: #fde4e1; } .vb-dich.st-valide { background: #e3f4e6; border-color: #8cc79a; }
.vb-dich-q { font-size: 1.02rem; margin: .4rem 0; } .vb-dich-btns { display: flex; gap: .5rem; align-items: center; margin-top: .4rem; }
.vb-dich-btns .vb-btn { min-width: 5rem; } .vb-dich-trail { margin: 0 0 .4rem 1.1rem; padding: 0; color: var(--vb-muted); font-size: .88rem; }
.vb-dich-res { font-size: 1.02rem; margin-bottom: .3rem; }

/* Jalon 9.5 : l'attribut hidden doit toujours masquer (boutons « Retenir » seulement pour un résultat numérique) */
[hidden] { display: none !important; }

/* ===== Jalon 9.5 : hiérarchie des boutons (action attendue = bien visible) =====
   Vert plein   : RETENIR / valider définitivement une valeur (Retenir comme seuil, Retenir cette VLE)
   Bleu plein   : ENREGISTRER (et pulsation quand des modifications ne sont pas enregistrées)
   Bleu cerclé  : CALCULER / générer
   Jaune        : à VALIDER ou à CHOISIR (proposition du site : valider ce module, valider la masse d'eau, appliquer à L20/L21, proposer, prendre la proposée)
   Rouge        : EFFACER (toujours confirmé par une alerte) */
@keyframes vb-pulse { 0% { box-shadow: 0 0 0 0 rgba(42,157,143,.55); } 70% { box-shadow: 0 0 0 9px rgba(42,157,143,0); } 100% { box-shadow: 0 0 0 0 rgba(42,157,143,0); } }
.vb-btn-primary { font-weight: 600; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
button[data-keep] { background: #1f8f4e !important; border-color: #17703d !important; color: #fff !important; font-weight: 700; padding: .35rem .8rem; box-shadow: 0 2px 6px rgba(31,143,78,.45); }
button[data-keep]::before { content: '✔ '; }
button[data-keep]:hover { background: #17703d !important; }
button[data-a="calc"] { background: #e3f0f8 !important; border: 2px solid var(--vb-brand) !important; color: #0f4f63 !important; font-weight: 700; }
button[data-a="calc"]:hover { background: var(--vb-brand) !important; color: #fff !important; }
button[data-a="find"], button[data-a="take"], button[data-a="keep"], button[data-a="valmod"], button[data-a="valmasse"], button[data-am="apply"], button[data-nm="apply"], button[data-a="derive"] {
  background: #fff3c4 !important; border: 2px solid #e0a800 !important; color: #6b4e00 !important; font-weight: 600; }
button[data-a="find"]:hover, button[data-a="take"]:hover, button[data-a="keep"]:hover, button[data-a="valmod"]:hover, button[data-a="valmasse"]:hover, button[data-am="apply"]:hover, button[data-nm="apply"]:hover, button[data-a="derive"]:hover { background: #ffe38a !important; }
button[data-c="manual"] { font-weight: 600; }
button[data-a="gen"], button[data-a="addp"], button[data-a="adddev"], button[data-a="addrej"], button[data-a="variant"], button[data-a="bulk"] { border: 2px solid var(--vb-brand); color: #0f4f63; font-weight: 600; background: #f1f8fb; }
button[data-a="gen"]:hover, button[data-a="addp"]:hover, button[data-a="adddev"]:hover, button[data-a="addrej"]:hover, button[data-a="variant"]:hover, button[data-a="bulk"]:hover { background: #dcecf4; }
/* Enregistrer : pulsation tant que des champs de la carte sont modifiés et non enregistrés */
.vb-card:has(.vb-dirty) button[data-a="save"], .vb-card:has(.vb-dirty) button[data-a="saverej"], .vb-card:has(.vb-dirty) button[data-a="savedev"], .vb-dev:has(.vb-dirty) button[data-a="savedev"], .vb-rej:has(.vb-dirty) button[data-a="saverej"] { animation: vb-pulse 1.4s infinite; outline: 2px solid #2a9d8f; }
.vb-btn-danger, button[data-a="del"], button[data-a="delrej"], button[data-a="deldev"], button[data-a="delyear"] { background: #b3261e !important; border-color: #8e1c16 !important; color: #fff !important; font-weight: 600; }
.vb-btn-danger:hover, button[data-a="del"]:hover, button[data-a="delrej"]:hover, button[data-a="deldev"]:hover, button[data-a="delyear"]:hover { background: #8e1c16 !important; }
/* Valeurs préremplies par le site dans la fenêtre de calcul */
.vb-autonote { margin-top: .2rem; padding: .15rem .5rem; border-left: 3px solid #e0a800; background: #fff8dc; color: #6b4e00; font-size: .82rem; border-radius: 0 4px 4px 0; }
.vb-auto-chk { outline: 3px solid #e0a800; outline-offset: 2px; }
/* Étapes de dossier : étape à faire */
.vb-steps a.actif { box-shadow: 0 1px 4px rgba(0,0,0,.3); font-weight: 600; }
/* Case cochée/décochée par le site (L19, L37, L46…) : toute la cellule en jaune jusqu'à ce que l'agent la touche */
td:has(> .vb-auto-chk) { background: #fff3c4; box-shadow: inset 4px 0 0 #e0a800; }
.vb-auto-chk { width: 1.15rem; height: 1.15rem; }

/* Administration v9 : navigation par usage, styles limités à ce nouvel espace. */
.vb-admin-shell .vb-bar { align-items: flex-start; }
.vb-admin-shell .vb-bar p { margin: .25rem 0 0; }
.vb-admin-layout { display: grid; grid-template-columns: 235px minmax(0,1fr); gap: 1.15rem; align-items: start; }
.vb-admin-menu { background: var(--vb-surface); border: 1px solid var(--vb-line); border-radius: 10px; padding: .9rem; }
.vb-admin-search { display: grid; gap: .35rem; font-weight: 600; }
.vb-admin-search input { width: 100%; min-width: 0; }
.vb-admin-menu #adm-menu-count { font-size: .8rem; margin: .35rem 0; }
.vb-admin-group { border-top: 1px solid var(--vb-line); padding: .55rem 0; }
.vb-admin-group > summary { cursor: pointer; font-weight: 600; color: var(--vb-ink); padding: .25rem 0; }
.vb-admin-group > summary span { color: var(--vb-muted); font-size: .8rem; font-weight: 400; }
.vb-admin-links { display: grid; gap: .15rem; margin-top: .4rem; }
.vb-admin-links a { color: var(--vb-ink); border-radius: 5px; padding: .4rem .55rem; text-decoration: none; border-left: 3px solid transparent; }
.vb-admin-links a:hover { background: #edf5f8; }
.vb-admin-links a.actif { background: #e4f1f5; border-left-color: var(--vb-brand); color: var(--vb-brand); font-weight: 700; }
.vb-admin-menu a:focus-visible, .vb-admin-menu summary:focus-visible, .vb-admin-help summary:focus-visible { outline: 2px solid var(--vb-brand); outline-offset: 2px; }
.vb-admin-content { min-width: 0; }
.vb-admin-heading { border-bottom: 1px solid var(--vb-line); margin-bottom: .8rem; padding-bottom: .65rem; }
.vb-admin-heading > .vb-muted { margin: 0 0 .2rem; font-size: .82rem; }
.vb-admin-heading h3 { font-size: 1.25rem; }
.vb-admin-heading p:last-child { margin: .4rem 0 0; }
.vb-admin-help { background: #edf5f8; border: 1px solid #d5e6ed; border-radius: 7px; padding: .65rem .85rem; margin: 0 0 .9rem; }
.vb-admin-help > summary { cursor: pointer; color: var(--vb-brand); font-weight: 600; }
.vb-admin-help p { margin-bottom: .2rem; }
.vb-admin-content .vb-toolbar { row-gap: .5rem; }
.vb-admin-content .vb-card { padding: .85rem 1rem; }
@media (max-width: 1150px) {
 .vb-admin-layout { grid-template-columns: minmax(0,1fr); }
 .vb-admin-menu { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .15rem .8rem; }
 .vb-admin-search, #adm-menu-count, #adm-menu-empty { grid-column: 1 / -1; }
 .vb-admin-group { margin: 0; }
}
@media (max-width: 600px) { .vb-admin-menu { grid-template-columns: minmax(0,1fr); } .vb-admin-shell .vb-bar { flex-wrap: wrap; } }
@media print { .vb-admin-menu, .vb-admin-help { display: none !important; } .vb-admin-layout { display: block; } }
.vb-admin-tip { position: fixed; right: 1rem; bottom: 1rem; max-width: min(26rem,calc(100vw - 2rem)); background: #163b49; color: #fff; border-radius: 7px; padding: .65rem .85rem; box-shadow: 0 3px 14px rgba(0,0,0,.2); z-index: 1500; pointer-events: none; font-size: .9rem; }
@media print { .vb-admin-tip { display: none !important; } }

/* V12 — repères d’action et contraste ; couleur accompagnée de texte/icône. */
.vb-nav a:hover, .vb-nav a:focus-visible { background:#e3eff5; color:#153d50; }
.vb-nav a.actif, .vb-nav a.actif:hover, .vb-nav a.actif:focus-visible { background:#105d72; color:#fff; }
.vb-nav a:focus-visible, .vb-btn:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline:3px solid #176582; outline-offset:3px; }
.vb-nav a .vb-ic { color:inherit; }
.vb-notice { padding:.85rem 1rem; margin:.85rem 0; border:1px solid; border-left-width:5px; border-radius:8px; line-height:1.5; }
.vb-notice:empty { display:none; }
.vb-notice p:last-child { margin-bottom:0; }
.vb-notice-info { color:#174c65; background:#eaf4fa; border-color:#4d88aa; }
.vb-notice-warning { color:#694400; background:#fff4d6; border-color:#ad7200; }
.vb-notice-danger { color:#8b201b; background:#fff0ee; border-color:#b3261e; }
.vb-notice-success { color:#19542f; background:#edf8f0; border-color:#277340; }
.vb-section-alert { color:#8b201b; padding:.7rem 1rem; border-left:5px solid #b3261e; background:#fff0ee; }
.vb-toast { font-weight:600; max-width:min(42rem,90vw); line-height:1.5; }
.vb-toast-ok { background:#1d6437; color:#fff; }
.vb-toast-info { background:#115e72; color:#fff; }
.vb-toast-warn { background:#7b4c00; color:#fff; }
.vb-toast-err { background:#a51e19; color:#fff; }
.vb-dialog-danger { border-top:7px solid #b3261e; }
.vb-dialog-danger h3 { color:#8b201b; }
.vb-dialog-danger > p { color:#721d18; background:#fff0ee; padding:.85rem; border-radius:6px; }
.vb-dialog-warning { border-top:7px solid #ad7200; }
.vb-dialog-warning h3 { color:#694400; }
button[data-preview], button#rs-compare, button[data-da="manage"] { background:#145e78 !important; color:#fff !important; border-color:#104c62 !important; font-weight:700; }
button[data-preview]::before, button#rs-compare::before { content:'◉ '; }
button[data-backup], button[data-act="restaurer"], button[data-vact="restaurer"], button[data-vact="finaliser"] { background:#1d6437 !important; color:#fff !important; border-color:#174f2c !important; font-weight:700; }
button[data-backup]::before { content:'↓ '; }
button[data-act="restaurer"]::before, button[data-vact="restaurer"]::before { content:'↶ '; }
button[data-vact="finaliser"]::before { content:'✓ '; }
button[data-act="desactiver"], button[data-vact="desactiver"], button[data-vact="rouvrir"], button[data-a="delrej"], button[data-a="deldev"], button.vb-deactivate { background:#fff0c2 !important; color:#694400 !important; border:2px solid #ad7200 !important; font-weight:700; }
button[data-act="desactiver"]::before, button[data-vact="desactiver"]::before, button[data-a="delrej"]::before, button[data-a="deldev"]::before, button.vb-deactivate::before { content:'⏸ '; }
button[data-apply], button#rs-apply.vb-replace { background:#a51e19 !important; color:#fff !important; border:2px solid #821713 !important; font-weight:750; }
button[data-apply]::before, button#rs-apply.vb-replace::before { content:'⚠ '; }
button#rs-apply:not(.vb-replace) { background:#fff0c2 !important; color:#694400 !important; border:2px solid #ad7200 !important; font-weight:700; }
button#rs-apply:not(.vb-replace)::before { content:'⚠ '; }
button[data-check], button#rs-status { background:#eaf4fa; color:#174c65; border:2px solid #4d88aa; font-weight:650; }
button[data-apply]:hover:not(:disabled), button#rs-apply.vb-replace:hover:not(:disabled) { background:#821713 !important; }
button[data-preview]:hover:not(:disabled), button#rs-compare:hover:not(:disabled) { background:#104c62 !important; }
.vb-btn[disabled] { cursor:not-allowed; box-shadow:none; }
[data-plan]:has([data-apply]) { border:2px solid #b3261e; padding:1rem; border-radius:10px; margin-top:1rem; }
[data-plan] [data-confirm] { max-width:22rem; border:2px solid #b3261e; margin:.5rem 0 1rem; display:block; }
.vb-guide-dialog { width:min(1100px,96vw); max-width:1100px; height:92vh; display:flex; flex-direction:column; }
.vb-guide-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; }
.vb-guide-toolbar h2 { flex:1; margin:.2rem 0; }
.vb-guide-dialog [data-guide-body] { flex:1; min-height:0; }
.vb-guide-dialog iframe { width:100%; height:100%; border:1px solid #ccd9df; background:white; }
@media (prefers-reduced-motion:reduce) { .vb-card:has(.vb-dirty) button, .vb-dev:has(.vb-dirty) button, .vb-rej:has(.vb-dirty) button { animation:none !important; } .vb-btn { transition:none; } }
@media (max-width:600px) { .vb-guide-dialog { height:94vh; padding:.7rem; } }
.vb-access-ok { color:#19542f; background:#edf8f0; padding:.2rem .4rem; border-radius:4px; }
.vb-access-warn { color:#694400; background:#fff4d6; padding:.2rem .4rem; border-radius:4px; }

/* V13 — dates de référentiels et centre de notifications. */
.vb-ref-banner { margin:0 0 1rem; }
.vb-ref-summary dl { display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; margin:.65rem 0; }
.vb-ref-summary dl div { min-width:10rem; }
.vb-ref-summary dt { font-size:.82rem; font-weight:600; }
.vb-ref-summary dd { margin:0; font-weight:700; }
.vb-ref-summary small { display:block; }
.vb-notif { position:relative; }
#vb-notif-count { background:#fff0c2; color:#694400; border:1px solid #ad7200; border-radius:999px; padding:.1rem .4rem; margin-left:.3rem; }
#vb-notif-toggle.vb-has-notices { border:2px solid #f3c66e; }
.vb-notif-popup { position:absolute; right:0; top:calc(100% + .6rem); width:min(34rem,94vw); max-height:75vh; overflow:auto; padding:1rem; background:#fff; color:#173b4b; border:2px solid #105d72; border-radius:10px; box-shadow:0 8px 30px #12303b44; z-index:1100; }
.vb-notif-popup[hidden] { display:none; }
.vb-notif-popup .vb-btn:not(.vb-btn-primary) { background:#eef4f8; color:#173b4b; border-color:#a6bdc9; }
.vb-notification-unread { border-left-width:8px; }
.vb-notification small { display:block; margin-top:.25rem; }
.vb-notification p { white-space:normal; overflow-wrap:anywhere; }
[data-ann-form] { padding:1rem; margin:1rem 0; border:2px solid #4d88aa; border-radius:9px; background:#f7fbfd; }
[data-ann-form] > label { display:block; margin:.6rem 0; }
[data-ref-now] { background:#1d6437 !important; color:white !important; border-color:#174f2c !important; }
@media(max-width:700px) { .vb-notif-popup { position:fixed; top:4rem; right:3vw; } .vb-header { gap:.25rem; flex-wrap:wrap; } .vb-ref-summary dl { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; } .vb-ref-summary dl div { min-width:0; } }
#vb-notif-actions { color:#fff0c2; font-weight:700; margin-left:.35rem; }
label.vb-notice { display:block; }
.vb-header .vb-btn-primary { background:#1d6437; border-color:#174f2c; color:#fff; }
.vb-header .vb-btn-primary:hover { background:#174f2c; color:#fff; }
.vb-header { flex-wrap:wrap; }
.vb-nav { top:var(--vb-header-height,52px); min-height:calc(100vh - var(--vb-header-height,52px)); }
.vb-admin-menu { top:calc(var(--vb-header-height,52px) + .75rem); }
@media(max-width:1400px) { .vb-quick { min-width:150px; flex:0 1 260px; } .vb-quick .vb-input { min-width:0; width:100%; } #vb-notif-toggle .vb-hide-s { display:none; } #vb-uname { max-width:10rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }
@media(max-width:700px) { .vb-notif-popup { top:calc(var(--vb-header-height,52px) + .4rem); max-height:calc(100vh - var(--vb-header-height,52px) - 2rem); } }

/* ---- V14 : modèles de livrables, boutons d'importance, conditions ---- */
.vb-btn-accent, a.vb-btn.vb-btn-accent, button.vb-btn-accent { background: #f2b01e !important; border-color: #b9800a !important; color: #1d2a33 !important; font-weight: 700; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.vb-btn-accent:hover { background: #e0a010 !important; }
.vb-row-sel { background: #eef6fb; outline: 2px solid #3b7bbf; outline-offset: -2px; }
.vb-chk { display: inline-flex; align-items: center; gap: .35rem; margin: .15rem .9rem .15rem 0; }
.vb-card-dirty { box-shadow: 0 0 0 2px #3b7bbf; }
.vb-cond { margin: .4rem 0; padding: .5rem .7rem; border: 1px dashed var(--vb-line); border-radius: 8px; background: #fbfcfd; }
.vb-cond-row { display: grid; grid-template-columns: minmax(180px, 2fr) minmax(120px, 1fr) minmax(160px, 2fr) auto; gap: .4rem; margin: .35rem 0; align-items: center; }
.vb-cond-row .vb-select, .vb-cond-row .vb-input { width: 100%; }
.vb-notice-info { background: #eaf3fb; border: 1px solid #a9c8e3; border-radius: 8px; padding: .5rem .8rem; }
@media (max-width: 760px) { .vb-cond-row { grid-template-columns: 1fr; } }

/* V14.1 — choix des considérants et blocs par dossier. */
.vb-cs-dialog{max-width:900px;width:94vw}
.vb-cs-list{max-height:55vh;overflow:auto;margin:.6rem 0}
.vb-cs-row{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:.7rem;padding:.35rem 0;border-bottom:1px solid var(--vb-line,#dbe3e7)}
.vb-cs-row[hidden]{display:none}
.vb-cs-box{display:flex;flex-wrap:wrap;gap:.2rem .6rem;align-items:flex-start}

/* V14.2 — aperçu des livrables */
.vb-prev { max-width: min(1100px, 96vw); }
.vb-prev-body { max-height: 66vh; overflow: auto; background: #e9edf1; border: 1px solid var(--vb-border, #cfd8e0); border-radius: 6px; padding: .5rem; }
.vb-prev-body .vb-docx-wrapper { background: transparent !important; padding: 0 !important; }
.vb-prev-body section.vb-docx { box-shadow: 0 1px 6px rgba(0,0,0,.25); margin: 0 auto .75rem !important; }
.vb-xlprev td { white-space: nowrap; font-size: .85em; padding: .15rem .4rem; }
