/* SFI V10 — Veille fiscale (préfixe vl-). Marine #0B2545 · or · ivoire. */
#veille-app{min-height:120px}
#veille-app *{min-width:0}
.vl-empty{font:400 .98rem/1.5 var(--f-ui);color:var(--muted);background:var(--ivoire);border:1px dashed var(--line-2);border-radius:var(--r-m);padding:16px 18px;margin:12px 0}

/* En-tête vivant */
.vl-pulse{background:var(--nuit);color:#fff;border-radius:var(--r-l);padding:22px 24px 20px;margin:0 0 22px;position:relative;overflow:hidden}
.vl-pulse::before{content:"";position:absolute;inset:0;background:radial-gradient(520px 220px at 100% 0,rgba(216,184,103,.22),transparent 62%);pointer-events:none}
.vl-live{position:relative;margin:0 0 14px;font:500 .9rem/1.3 var(--f-ui);color:rgba(255,255,255,.85);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vl-live b{color:var(--or-clair)}
.vl-dot{width:10px;height:10px;border-radius:50%;background:#58C08A;box-shadow:0 0 0 0 rgba(88,192,138,.6);animation:vlp 2.4s infinite}
@keyframes vlp{0%{box-shadow:0 0 0 0 rgba(88,192,138,.55)}70%{box-shadow:0 0 0 10px rgba(88,192,138,0)}100%{box-shadow:0 0 0 0 rgba(88,192,138,0)}}
.vl-kpis{position:relative;list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.vl-kpis li{border-top:2px solid var(--or-clair);padding-top:8px}
.vl-kpis b{display:block;font:500 clamp(1.7rem,3vw,2.3rem)/1.1 var(--f-ed);color:#fff}
.vl-kpis span{display:block;font:400 .82rem/1.35 var(--f-ui);color:rgba(255,255,255,.75);margin-top:3px}
.vl-top{position:relative;border-top:1px solid rgba(255,255,255,.16);padding-top:14px}
.vl-top h2{font:600 .72rem/1.2 var(--f-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--or-clair);margin:0 0 8px}
.vl-top ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.vl-top li{display:flex;gap:10px;align-items:flex-start}
.vl-top a{color:#fff;font:500 .95rem/1.4 var(--f-ui);text-decoration:underline;text-decoration-color:rgba(216,184,103,.6);text-underline-offset:3px;overflow-wrap:anywhere}

/* Pastille pays (code texte) */
.vl-cc{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 7px;border-radius:4px;background:var(--ivoire-2);color:var(--nuit);font:700 .72rem/1 var(--f-ui);letter-spacing:.06em;border:1px solid var(--line-2);flex:none}
.vl-pulse .vl-cc{background:rgba(255,255,255,.12);color:var(--or-clair);border-color:rgba(255,255,255,.25)}
.vl-cc-l{background:var(--nuit);color:var(--or-clair);border-color:var(--nuit)}

/* Contrôles */
.vl-ctl{background:#fff;border:1px solid var(--line);border-top:3px solid var(--or);border-radius:var(--r-m);padding:18px 18px 12px;margin:0 0 26px;box-shadow:var(--sh-1)}
.vl-q{max-width:34rem;margin-bottom:14px}
.vl-grp{margin:0 0 14px}
.vl-gl{display:block;font:600 .72rem/1.2 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--nuit);margin:0 0 8px}
.vl-chips{display:flex;flex-wrap:wrap;gap:8px}
.vl-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);background:#fff;color:var(--ink);border-radius:999px;padding:5px 12px 5px 6px;font:500 .86rem/1 var(--f-ui);cursor:pointer;transition:background .15s,border-color .15s}
.vl-chip b{font-weight:500}
.vl-chip em{font-style:normal;font-weight:700;color:var(--muted);font-size:.78rem}
.vl-chip:hover:not(:disabled){border-color:var(--nuit)}
.vl-chip[aria-pressed="true"]{background:var(--nuit);border-color:var(--nuit);color:#fff}
.vl-chip[aria-pressed="true"] em{color:var(--or-clair)}
.vl-chip[aria-pressed="true"] .vl-cc{background:var(--or-clair);color:var(--nuit);border-color:var(--or-clair)}
.vl-chip:disabled{opacity:.5;cursor:not-allowed;border-style:dashed}
.vl-chip:focus-visible,.vl-sch:focus-visible,.vl-fav:focus-visible{outline:3px solid var(--or-clair);outline-offset:2px}
.vl-sch{border:1px solid var(--line-2);background:#fff;color:var(--nuit);border-radius:999px;padding:7px 14px;font:600 .82rem/1 var(--f-ui);cursor:pointer}
.vl-sch[aria-pressed="true"]{background:var(--nuit);color:#fff;border-color:var(--nuit)}
.vl-sels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:4px 0 8px}
.vl-sels .fld select{width:100%}
.vl-bar{display:flex;flex-wrap:wrap;gap:6px 20px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px}
.vl-count{margin:0;font:600 .92rem/1.3 var(--f-ui);color:var(--nuit)}
.vl-bar .lnk{font:600 .86rem/1 var(--f-ui);color:var(--navy);background:none;border:0;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px 0}

/* Badges de stade */
.vl-badge{display:inline-block;font:700 .72rem/1 var(--f-ui);letter-spacing:.03em;padding:5px 9px;border-radius:999px;border:1px solid transparent;white-space:nowrap}
.vl-b-en_vigueur{background:#E3F1EA;color:#14573A;border-color:#B5DAC6}
.vl-b-vote{background:#E1E9F5;color:#143B6B;border-color:#B7C8E3}
.vl-b-projet{background:#FBF0D3;color:#6B4A00;border-color:#EBD79A}
.vl-b-annonce{background:#ECE8F4;color:#4A3B73;border-color:#CFC6E3}
.vl-sch.vl-b-en_vigueur[aria-pressed="true"],.vl-sch.vl-b-vote[aria-pressed="true"],.vl-sch.vl-b-projet[aria-pressed="true"],.vl-sch.vl-b-annonce[aria-pressed="true"]{background:var(--nuit);color:#fff;border-color:var(--nuit)}

/* Frise */
.vl-fr{background:var(--ivoire);border:1px solid var(--line);border-radius:var(--r-l);padding:24px 22px 8px;margin:0 0 30px;scroll-margin-top:90px}
.vl-frh h2{font:500 clamp(1.35rem,2.4vw,1.8rem)/1.2 var(--f-ed);color:var(--nuit);margin:2px 0 6px}
.vl-frh p{font:400 .95rem/1.5 var(--f-ui);color:#3b4756;margin:0 0 18px;max-width:46rem}
.vl-frise{position:relative}
.vl-yr{position:relative;padding-left:26px;margin:0 0 20px;border-left:2px solid var(--or-clair)}
.vl-yr h3{margin:0 0 10px;display:flex;align-items:baseline;gap:10px;font:500 1.5rem/1 var(--f-ed);color:var(--nuit);position:relative}
.vl-yr h3::before{content:"";position:absolute;left:-35px;top:6px;width:14px;height:14px;border-radius:50%;background:var(--nuit);border:3px solid var(--ivoire);box-shadow:0 0 0 2px var(--or-clair)}
.vl-yr h3 small{font:500 .78rem/1 var(--f-ui);color:var(--muted)}
.vl-yr ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.vl-ev{display:grid;grid-template-columns:112px 40px minmax(0,1fr);gap:10px;align-items:start;background:#fff;border:1px solid var(--line);border-left:4px solid var(--or);border-radius:var(--r-m);padding:10px 12px}
.vl-ev.vl-st-en_vigueur{border-left-color:#2E8B62}
.vl-ev.vl-st-vote{border-left-color:#2E5FA8}
.vl-ev.vl-st-annonce{border-left-color:#7A63B0}
.vl-evd{font:700 .8rem/1.35 var(--f-ui);color:var(--nuit)}
.vl-ev a{font:500 .95rem/1.4 var(--f-ui);color:var(--nuit);text-decoration:underline;text-decoration-color:var(--or-clair);text-underline-offset:3px;overflow-wrap:anywhere}
.vl-ev small{display:block;font:400 .8rem/1.4 var(--f-ui);color:var(--muted);margin-top:2px}
.vl-ev .vl-badge{margin-top:6px;display:block;width:max-content}

/* Cartes */
.vl-lh{font:500 clamp(1.35rem,2.4vw,1.8rem)/1.2 var(--f-ed);color:var(--nuit);margin:0 0 16px}
.vl-list{display:grid;gap:16px}
.vl-card{background:#fff;border:1px solid var(--line);border-left:5px solid var(--or);border-radius:var(--r-m);padding:20px 22px 18px;box-shadow:var(--sh-1);scroll-margin-top:96px;transition:box-shadow .3s,border-color .3s}
.vl-card.vl-st-en_vigueur{border-left-color:#2E8B62}
.vl-card.vl-st-vote{border-left-color:#2E5FA8}
.vl-card.vl-st-annonce{border-left-color:#7A63B0}
.vl-card:focus{outline:none}
.vl-flash{box-shadow:0 0 0 3px var(--or-clair),var(--sh-1)}
.vl-ch{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font:500 .84rem/1.3 var(--f-ui);color:var(--muted)}
.vl-cname{color:var(--nuit);font-weight:600}
.vl-date{margin-left:auto}
.vl-tags{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.vl-imp{display:inline-flex;align-items:center;gap:6px;font:600 .76rem/1 var(--f-ui);color:var(--nuit);border:1px solid var(--line-2);border-radius:999px;padding:5px 10px;background:#fff}
.vl-imp i{width:9px;height:9px;border-radius:50%;background:#9AA3AF;display:inline-block}
.vl-i-moyen i{background:var(--or)}
.vl-i-fort i{background:var(--bad)}
.vl-src{font:600 .74rem/1 var(--f-ui);padding:5px 10px;border-radius:999px;border:1px solid transparent}
.vl-ok{background:#E3F1EA;color:#14573A;border-color:#B5DAC6}
.vl-sec{background:#FFF5DD;color:#6B4A00;border-color:#EBD79A}
.vl-chk{background:#F7E4E8;color:#7A2338;border-color:#E6B9C4}
.vl-card h3{font:500 clamp(1.15rem,2vw,1.4rem)/1.3 var(--f-ed);color:var(--nuit);margin:10px 0 8px;overflow-wrap:anywhere}
.vl-sum{font:400 .98rem/1.6 var(--f-ui);color:var(--ink);margin:0 0 14px}
.vl-blocks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 12px}
.vl-blocks>div{background:var(--ivoire);border-radius:var(--r-m);padding:12px 14px;border-top:2px solid var(--or-clair)}
.vl-blocks h4{font:700 .7rem/1.2 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--nuit);margin:0 0 6px}
.vl-blocks p{margin:0;font:400 .9rem/1.5 var(--f-ui);color:var(--ink)}
.vl-up{list-style:none;margin:0 0 10px;padding:0;font:400 .88rem/1.45 var(--f-ui);color:#3b4756;border-left:3px solid var(--or-clair);padding-left:12px}
.vl-up li{margin:3px 0}
.vl-meta{font:400 .82rem/1.4 var(--f-ui);color:var(--muted);margin:0 0 12px}
.vl-meta b{color:var(--nuit)}
.vl-acts{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;border-top:1px solid var(--line);padding-top:12px;font:500 .88rem/1.35 var(--f-ui)}
.vl-acts a:not(.btn){color:var(--nuit);font-weight:600;text-decoration:underline;text-decoration-color:var(--or-clair);text-underline-offset:3px;overflow-wrap:anywhere}
.vl-acts a.vl-xs{font-weight:500;color:#3b4756}
.vl-cta{margin-left:auto;padding:9px 16px !important;font-size:.88rem !important;white-space:normal}
.vl-fav{background:none;border:1px solid var(--line-2);border-radius:999px;padding:6px 12px;font:600 .8rem/1 var(--f-ui);color:var(--nuit);cursor:pointer}
.vl-more{text-align:center;margin:20px 0 0}

/* Lecture de la veille */
.vl-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.vl-legend>div{background:#fff;border:1px solid var(--line);border-top:3px solid var(--or);border-radius:var(--r-m);padding:18px}
.vl-legend h3{font:600 1.05rem/1.3 var(--f-ed);color:var(--nuit);margin:0 0 10px}
.vl-legend dl{margin:0;font:400 .9rem/1.5 var(--f-ui)}
.vl-legend dt{margin-top:8px}
.vl-legend dd{margin:4px 0 0;color:#3b4756}

@media (max-width:900px){
  .vl-sels{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vl-blocks{grid-template-columns:1fr}
  .vl-legend{grid-template-columns:1fr}
  .vl-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .vl-pulse{padding:18px 16px}
  .vl-ctl{padding:14px 14px 10px}
  .vl-sels{grid-template-columns:1fr}
  .vl-card{padding:16px 16px 14px}
  .vl-ev{grid-template-columns:minmax(0,1fr) 38px;grid-template-areas:"d c" "t t"}
  .vl-ev .vl-evd{grid-area:d}.vl-ev .vl-cc{grid-area:c}.vl-ev>div{grid-area:t}
  .vl-date{margin-left:0;width:100%}
  .vl-cta{margin-left:0;width:100%;text-align:center}
  .vl-yr{padding-left:20px}
  .vl-yr h3::before{left:-29px}
  .vl-chip b{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){.vl-dot{animation:none}.vl-card{transition:none}}
.vl-fb ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.vl-fb li{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:12px 14px;font:400 .95rem/1.5 var(--f-ui)}
.vl-fb b{font-family:var(--f-ed);color:var(--nuit)}

.vl-cyc .v9fig{margin:0;padding:8px;overflow:visible;box-shadow:none;border:0}
.vl-cyc .v9fig svg{min-width:0;max-width:420px;margin:0 auto}

.vl-hid{display:none}.vl-yr.open .vl-hid{display:grid}
.vl-yrmore{margin-top:10px;background:none;border:0;font:600 .86rem/1 var(--f-ui);color:var(--navy);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px 0}
