/*  ═══════════════════════════════════════════════════════════════════════════════════════════════
    MON SUIVI (04/11/2026) : le hub du dirigeant (Shared/SuiviHub.razor, préfixe `sv-`), et la bascule des deux modes du hub dans la
    barre des scénarios (`bsc-mode`). Maquette validée : docs/maquettes/mon-suivi.html.
    Jetons du hub uniquement (--brand, --tx*, --mut*, --o*, --st-*) : Moderne, clair et sombre ; Mat et Papier par leurs surfaces
    pleines (--mt-carte, --mt-trait). ⚠️ Toute modification doit bumper le `?v=` de suivi.css dans index.html.
    ═══════════════════════════════════════════════════════════════════════════════════════════════ */

/* ── La bascule « Mon suivi | Mon analyse » (barre des scénarios) ── */
.bsc-mode { display: inline-flex; padding: 3px; gap: 2px; border-radius: 10px; background: var(--o5, rgba(255,255,255,.05)); border: 1px solid var(--o8, rgba(255,255,255,.08)); flex: none; }
.bsc-mode button { border: 0; background: none; padding: 5px 11px; border-radius: 7px; font: 600 12.5px var(--font-family); color: var(--mut2); cursor: pointer; white-space: nowrap; }
.bsc-mode button:hover { color: var(--tx1); }
.bsc-mode button.is-on { background: var(--brand); color: var(--brand-contrast, #06141a); }
.bsc-mode button:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
/* Téléphone : la barre ne garde que sa pilule (scenarios-hub.css, .bsc > :not(.bsc-mob)) ; la bascule y reste, sur sa propre ligne au-dessus (la pilule garde sa largeur). */
@media (max-width: 767px) {
    .bsc:has(> .bsc-mode), .fec-overlay .bsc.is-fusion:has(> .bsc-mode) { flex-wrap: wrap; row-gap: 5px; }   /* hub-refonte.css force nowrap sur la barre fusionnée */
    .bsc > .bsc-mode { display: flex; width: 100%; }
    .bsc-mode button { flex: 1; padding: 6px 8px; font-size: 12.5px; }
}

/* En mode suivi, le bandeau des chiffres clés du hub (doublon des tuiles du suivi) se retire ; il reste rendu (sa tuile « Cohérence »
   calcule le verdict que d'autres blocs lisent). */
.kpi-zone.is-suivi { display: none; }

/* ── La page ── */
.sv { width: min(100%, var(--hub-col, 1320px)); margin: 0 auto; display: flex; flex-direction: column; gap: 16px; color: var(--tx1); font-family: var(--font-family); }
.sv-etq { font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--mut2); }
.sv-etq.is-warn { color: var(--st-amber); }
.sv-etq-bloc { margin: 0 0 8px 2px; }
.sv-s { font-size: 12.5px; color: var(--mut2); }
.sv-v { font-size: 22px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; margin-top: 2px; }
.sv-v i, .sv-s i, .is-ok, .is-bad { font-style: normal; }
.sv .is-ok { color: var(--st-green); }
.sv .is-bad { color: var(--st-red); }
.sv .is-warn { color: var(--st-amber); }

/* En-tête : le verdict, la fraîcheur, deux gestes */
.sv-tete-t { min-width: 0; }   /* 04/11 : le verdict sur toute la largeur ; dessous, la fraîcheur à gauche et les deux gestes à droite, sur la même ligne */
.sv-tete-pied { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; margin-top: 12px; }
.sv-tete-pied .sv-chips { margin-top: 0; }
.sv-tete-pied .sv-actions { margin-left: auto; }
.sv-verdict { margin: 6px 0 0; font-size: 26px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; text-wrap: balance; color: var(--tx1); }
.sv-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.sv-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--o5); border: 1px solid var(--o8); color: var(--tx2); }
.sv-pt { width: 7px; height: 7px; border-radius: 50%; background: var(--st-green); }
.sv-pt.is-warn { background: var(--st-amber); }
.sv-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.sv-btn { border: 1px solid var(--o12, rgba(255,255,255,.12)); background: var(--o5); padding: 9px 14px; border-radius: 10px; font: 600 13px var(--font-family); color: var(--tx1); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.sv-btn:hover { border-color: var(--brand); }
.sv-btn:disabled { opacity: .55; cursor: default; }
.sv-btn.is-prim { background: var(--brand); border-color: var(--brand); color: var(--brand-contrast, #06141a); }
.sv-btn.is-sm { padding: 6px 11px; font-size: 12px; border-radius: 8px; }
.sv-btn:focus-visible, .sv-lien:focus-visible, .sv-chg-c:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.sv-plein { width: 100%; margin-top: 8px; }
.sv-lien { border: 0; background: none; padding: 0; margin-left: auto; color: var(--brand); font: 600 13px var(--font-family); cursor: pointer; }

/* Cartes : la matière des cartes du hub (verre, rayon 18 px) */
.sv-carte { background: linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.025)); border: 1px solid var(--o8); border-radius: 18px; padding: 18px 20px; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); min-width: 0; color: var(--tx1); }
.sv-hero { background: linear-gradient(135deg, color-mix(in srgb, var(--brand) 13%, transparent), color-mix(in srgb, var(--brand) 6%, transparent)); border-color: color-mix(in srgb, var(--brand) 40%, transparent); }
.sv-carte h2 { margin: 3px 0 0; font-size: 16px; font-weight: 700; letter-spacing: -.01em; color: var(--tx1); }
.sv-carte-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.sv-carte-h h2 { margin: 0; }
.sv-ico { width: 34px; height: 34px; flex: none; border-radius: 10px; display: grid; place-items: center; background: var(--o5); color: var(--brand); }
.sv-ico.is-ok { color: var(--st-green); } .sv-ico.is-bad { color: var(--st-red); } .sv-ico.is-warn { color: var(--st-amber); }

/* Comptes anciens */
.sv-ancien { display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap; border-color: color-mix(in srgb, var(--st-amber) 45%, transparent); }
.sv-ancien-t { flex: 1 1 320px; min-width: 0; }
.sv-ancien-t b { font-size: 15px; }
.sv-ancien-t p { margin: 4px 0 0; font-size: 13px; color: var(--mut2); max-width: 75ch; }
.sv-msg { margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--o5); border: 1px dashed var(--o12); }
.sv-msg p { margin: 0 0 8px; color: var(--tx2); }

/* Depuis le mois dernier */
.sv-chg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.sv-chg-c { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; text-align: left; width: 100%; cursor: pointer; font: inherit; transition: border-color .15s; }
.sv-chg-c:hover { border-color: var(--brand); }
.sv-chg-t { display: flex; flex-direction: column; min-width: 0; }
.sv-chg-t .sv-v i { font-size: 14px; margin-left: 4px; }

/* Trésorerie et exercice */
/* 04/11 (Arthur : « réduis la largeur de ces cartes, accrois celle du chart, supprime le vide dessous ») : la colonne de l'exercice à 300 px,
   ses trois cartes étirées sur la hauteur du graphique. */
.sv-mid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; }
.sv-seg { display: inline-flex; padding: 3px; gap: 2px; border-radius: 10px; background: var(--o5); border: 1px solid var(--o8); }
.sv-seg button { border: 0; background: none; padding: 5px 11px; border-radius: 7px; font: 600 12px var(--font-family); color: var(--mut2); cursor: pointer; }
.sv-seg button.is-on { background: var(--brand); color: var(--brand-contrast, #06141a); }
.sv-graph { position: relative; height: 280px; transition: opacity .2s; }
.sv-graph.is-calc { opacity: .55; }
.sv-graph svg { width: 100%; height: 100%; display: block; overflow: visible; }
.sv-gr { stroke: var(--o8); stroke-width: 1; vector-effect: non-scaling-stroke; }
.sv-zero { stroke: color-mix(in srgb, var(--st-red) 55%, transparent); stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.sv-ax-y, .sv-ax-x, .sv-ax-auj { position: absolute; font-size: 11px; color: var(--mut3); white-space: nowrap; pointer-events: none; font-variant-numeric: tabular-nums; }
.sv-ax-y { transform: translateY(-50%); }
.sv-ax-x { transform: translateX(-50%); }
.sv-auj { stroke: var(--o12); stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.sv-aire { fill: url(#svDegReel); }
.sv-deg-h { stop-color: var(--brand); stop-opacity: .30; }
.sv-deg-b { stop-color: var(--brand); stop-opacity: 0; }
.sv-cone-g { stop-color: var(--brand); stop-opacity: .05; }
.sv-cone-d { stop-color: var(--brand); stop-opacity: .20; }
.sv-n1 { fill: none; stroke: var(--mut3); stroke-width: 1.4; stroke-opacity: .55; vector-effect: non-scaling-stroke; }
.sv-dec-l { stroke: #fb923c; stroke-width: 1; stroke-dasharray: 2 3; stroke-opacity: .7; vector-effect: non-scaling-stroke; }
/* Les points du graphique (04/11) : en HTML, ronds à toute largeur, posés en % ; ils glissent avec la courbe. */
.sv-mk { position: absolute; z-index: 2; transform: translate(-50%, -50%); border-radius: 50%; box-sizing: border-box; pointer-events: none;
         transition: left .55s cubic-bezier(.65,0,.35,1), top .55s cubic-bezier(.65,0,.35,1); }
.sv-mk.is-pb   { width: 9px; height: 9px; background: var(--st-amber); }
.sv-mk.is-pb-h { width: 20px; height: 20px; border: 1.6px solid color-mix(in srgb, var(--st-amber) 70%, transparent); }
.sv-mk.is-dec  { width: 15px; height: 15px; background: #fb923c; border: 2.5px solid var(--hx5, #070f16); }
.sv-mk.is-auj  { width: 14px; height: 14px; background: var(--brand); border: 2.5px solid var(--hx5, #070f16); }
.sv-mk.is-fin  { width: 11px; height: 11px; background: var(--brand); border: 2px solid var(--hx5, #070f16); }
.sv-mk.is-cur  { width: 12px; height: 12px; background: var(--tx1); border: 2px solid var(--hx5, #070f16); transition: none; }
@media (prefers-reduced-motion: reduce) { .sv-mk { transition: none; } }
.sv-curseur { stroke: var(--tx2); stroke-opacity: .35; stroke-width: 1; vector-effect: non-scaling-stroke; }
.sv-reel { fill: none; stroke: var(--brand); stroke-width: 2.6; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.sv-prev { fill: none; stroke: var(--brand); stroke-width: 2.4; stroke-dasharray: 6 5; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.sv-prev.is-apercu { stroke: var(--st-amber); }
.sv-ref { fill: none; stroke: var(--mut3); stroke-width: 1.4; stroke-dasharray: 2 4; opacity: .8; vector-effect: non-scaling-stroke; }
.sv-four { fill: url(#svDegCone); }
/* 04/11 : les points suivent le morph des tracés (app.js) : même durée, même courbe d'accélération. */
.sv-hit { fill: transparent; }
.sv-hit:hover { fill: color-mix(in srgb, var(--brand) 8%, transparent); }
.sv-leg { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--mut2); margin-top: 6px; }
.sv-leg span { display: inline-flex; align-items: center; gap: 6px; }
.sv-sw { width: 16px; height: 0; border-top: 2.5px solid var(--brand); }
.sv-sw.is-p { border-top-style: dashed; }
.sv-sw.is-ref { border-top: 1.5px dotted var(--mut3); }
.sv-sw.is-n1 { border-top: 1.5px solid var(--mut3); opacity: .6; }
.sv-sw.is-cone { height: 9px; border: 0; border-radius: 2px; background: linear-gradient(90deg, color-mix(in srgb, var(--brand) 6%, transparent), color-mix(in srgb, var(--brand) 26%, transparent)); }
.sv-leg { align-items: center; }
.sv-leg-esp { margin-left: auto; }
/* Annotations posées sur la courbe */
.sv-an { position: absolute; font-size: 11.5px; font-weight: 700; white-space: nowrap; pointer-events: none; font-variant-numeric: tabular-nums; transition: left .55s cubic-bezier(.65,0,.35,1), top .55s cubic-bezier(.65,0,.35,1), right .55s cubic-bezier(.65,0,.35,1); }
.sv-an-dec { transform: translate(-50%, -100%); color: #fb923c; background: color-mix(in srgb, #fb923c 14%, var(--hx5, #070f16)); border: 1px solid color-mix(in srgb, #fb923c 45%, transparent); border-radius: 6px; padding: 1px 6px; }
.sv-an-bas { transform: translateX(-50%); color: var(--st-amber); }
.sv-an-bas.is-bad { color: var(--st-red); }
.sv-an-fin { color: var(--tx1); text-align: right; }
/* Survol : une bande par mois, la ligne et l'infobulle */
.sv-survol { position: absolute; top: 0; bottom: 0; display: flex; }
.sv-survol > span { flex: 1 1 0; cursor: crosshair; }
.sv-survol > span:first-child, .sv-survol > span:last-child { flex-grow: .5; }
.sv-tip { position: absolute; transform: translate(10px, -100%); min-width: 150px; padding: 8px 10px; border-radius: 10px; pointer-events: none; z-index: 2;
    background: var(--hx5, #0b1a24); border: 1px solid var(--o12); box-shadow: 0 8px 24px rgba(0,0,0,.28); display: flex; flex-direction: column; gap: 2px; font-size: 12px; }
.sv-tip.is-g { transform: translate(calc(-100% - 10px), -100%); }
.sv-tip b { font-size: 15px; font-variant-numeric: tabular-nums; }
.sv-tip-m { color: var(--mut2); }
.sv-tip-l { color: var(--mut2); font-variant-numeric: tabular-nums; }
.sv-tip-l i { font-style: normal; font-weight: 700; margin-left: 4px; }
.sv-tip-d { color: #fb923c; font-weight: 600; }
html[data-theme="light"] .sv-tip { background: #fff; box-shadow: 0 8px 24px rgba(13,39,51,.14); }
html[data-theme="light"] .sv-an-dec { background: color-mix(in srgb, #fb923c 12%, #fff); }
.sv-dot { width: 9px; height: 9px; border-radius: 50%; background: #fb923c; }
.sv-notes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
/* Leviers « Tester en un tap » sous la courbe */
.sv-leviers { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--o8); }
.sv-leviers-t { font-size: 12.5px; color: var(--mut2); margin-right: 2px; }
.sv-levier { border: 1px dashed color-mix(in srgb, var(--brand) 55%, transparent); background: color-mix(in srgb, var(--brand) 7%, transparent); color: var(--tx1);
    padding: 6px 12px; border-radius: 999px; font: 600 12.5px var(--font-family); cursor: pointer; }
.sv-levier:hover { border-style: solid; }
.sv-levier.is-on { background: color-mix(in srgb, #fb923c 18%, transparent); border: 1px solid #fb923c; }
.sv-levier:disabled { opacity: .55; cursor: default; }
.sv-levier:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.sv-dans { display: block; font-size: 11px; font-weight: 600; color: var(--mut3); margin-top: 1px; white-space: nowrap; }
.sv-dt:has(.sv-dans) { width: 70px; }
.sv-dans.is-proche { color: var(--st-amber); }
.sv-note { font-size: 12.5px; font-weight: 600; padding: 6px 10px; border-radius: 10px; background: var(--o5); border: 1px solid var(--o8); font-variant-numeric: tabular-nums; }
.sv-note.is-warn { border-color: color-mix(in srgb, var(--st-amber) 40%, transparent); background: color-mix(in srgb, var(--st-amber) 10%, transparent); }
.sv-note.is-ok { border-color: color-mix(in srgb, var(--st-green) 40%, transparent); background: color-mix(in srgb, var(--st-green) 10%, transparent); }
.sv-note.is-bad { border-color: color-mix(in srgb, var(--st-red) 45%, transparent); background: color-mix(in srgb, var(--st-red) 10%, transparent); }
.sv-exo { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.sv-exo .sv-carte { padding: 16px 18px; flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; }
.sv-barre { height: 6px; border-radius: 6px; background: var(--o8); margin: 10px 0 6px; overflow: hidden; }
.sv-barre i { display: block; height: 100%; border-radius: 6px; background: var(--brand); }

/* Échéances, décisions, à regarder */
.sv-bas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; }
.sv-ln, .sv-sig { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--o8); }
.sv-carte-h + .sv-ln, .sv-carte-h + .sv-sig, .sv-carte-h + .sv-dec { border-top: 0; padding-top: 2px; }
.sv-dt { width: 56px; flex: none; font-size: 12px; font-weight: 600; color: var(--mut2); }
.sv-lib { min-width: 0; display: flex; flex-direction: column; gap: 1px; font-size: 13.5px; }
.sv-lib b { font-weight: 600; }
.sv-r { margin-left: auto; font-weight: 700; white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.sv-eff { font-size: 12px; color: var(--mut2); }
.sv-pq { font-size: 12.5px; color: var(--tx2); line-height: 1.45; margin-top: 3px; }
.sv-pq em { font-style: normal; color: var(--st-amber); font-weight: 600; }
.sv-dec { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--o8); cursor: pointer; }
.sv-dec input { position: absolute; opacity: 0; pointer-events: none; }
.sv-bx { width: 18px; height: 18px; flex: none; border-radius: 6px; border: 1.5px solid var(--o12); display: grid; place-items: center; color: transparent; transition: all .15s; }
.sv-dec input:checked + .sv-bx { background: var(--brand); border-color: var(--brand); color: var(--brand-contrast, #06141a); }
.sv-dec input:focus-visible + .sv-bx { outline: 2px solid var(--brand); outline-offset: 2px; }
.sv-dec.is-off .sv-lib b { color: var(--mut2); text-decoration: line-through; text-decoration-color: var(--o12); }
.sv-apercu { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 12px; padding: 10px 12px; border-radius: 12px; font-size: 12.5px;
    background: color-mix(in srgb, var(--brand) 10%, transparent); border: 1px solid color-mix(in srgb, var(--brand) 35%, transparent); }
.sv-esp { margin-left: auto; }
.sv-aide { margin: 10px 0 0; font-size: 12px; color: var(--mut2); }
.sv-alerte { border-color: color-mix(in srgb, var(--st-amber) 45%, transparent); }
.sv-liste { margin: 2px 0 0 44px; }
.sv-liste .sv-ln { padding: 6px 0; font-size: 13px; }
.sv-calme { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 12.5px; color: var(--mut2); }
.sv-pied { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; color: var(--mut2); padding: 2px 4px 20px; }

/* Clair */
html[data-theme="light"] .sv-carte { background: color-mix(in srgb, var(--color-bg-card, #fff) 82%, transparent); border-color: var(--color-border-subtle, rgba(13,39,51,.1)); }
html[data-theme="light"] .sv-hero { background: linear-gradient(135deg, color-mix(in srgb, var(--brand) 10%, #fff), color-mix(in srgb, var(--color-bg-card, #fff) 85%, transparent)); border-color: color-mix(in srgb, var(--brand) 38%, transparent); }
/* Mat et Papier : des surfaces pleines (le verre dépoli y est coupé) */
html[data-style="mat"] .sv-carte, html[data-style="papier"] .sv-carte { background: var(--mt-carte); border-color: var(--mt-trait); backdrop-filter: none; -webkit-backdrop-filter: none; }
html[data-style="mat"] .sv-hero, html[data-style="papier"] .sv-hero { background: color-mix(in srgb, var(--brand) 6%, var(--mt-carte)); }

/* Téléphone et colonnes étroites */
/* Tablette et petit portable (761 à 1 100 px) : le graphique sur toute la largeur, l'exercice en rangée de trois dessous ; en bas, deux
   colonnes, « À regarder » sur toute la largeur quand les trois cartes sont là. Téléphone (760 px et moins) : une colonne. */
@media (max-width: 1100px)
{
    .sv-mid { grid-template-columns: minmax(0, 1fr); }
    .sv-exo { flex-direction: row; }
    .sv-exo .sv-carte { min-width: 0; }
    .sv-bas { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .sv-bas > .sv-carte:nth-child(3) { grid-column: 1 / -1; }
}
@media (max-width: 760px)
{
    .sv-exo { flex-direction: column; }
    .sv-bas { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px)
{
    .sv-chg { grid-template-columns: 1fr; gap: 8px; }
    .sv-verdict { font-size: 21px; }
    .sv-actions { width: 100%; }
    .sv-actions .sv-btn { flex: 1; }
    .sv-graph { height: 210px; }
    .sv-carte { padding: 14px; border-radius: 16px; }
    .sv-v { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) { .sv-graph, .sv-bx, .sv-chg-c { transition: none; } }

html[data-theme="light"] .sv-mk.is-dec, html[data-theme="light"] .sv-mk.is-auj { border-color: #fff; }
/* « Mes décisions » hors formule (04/11) : grisée à sa place, étiquette de la formule en haut à droite. */
.sv-carte.sv-verrou { position: relative; }
.sv-verrou .vit-corps > * { opacity: .4; filter: grayscale(.7); }
.sv-verrou .vit-corps > .sv-carte-h { opacity: .78; filter: grayscale(.5); }
/* Point mort de l'exercice suivant, prévu (04/11) : sous celui de l'exercice, séparé d'un filet. */
.sv-rent-suiv { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--o8); display: flex; flex-direction: column; gap: 3px; }
.sv-rent-suiv-v { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--tx2); font-variant-numeric: tabular-nums; }
.sv-rent-suiv-v b { font-size: 15px; font-weight: 700; color: var(--tx1); }
.sv-rent-suiv-v i { font-style: normal; font-size: 12.5px; }
.sv-rent-suiv-m { font-size: 12.5px; color: var(--mut2); }
/* Trésorerie au-delà des besoins (04/11) : une occasion, en tête de « Mes décisions », en couleur de marque (pas l'ambre des alertes). */
.sv-exces { display: flex; align-items: flex-start; gap: 12px; padding: 12px; border-radius: 12px; background: color-mix(in srgb, var(--brand) 8%, transparent); border: 1px solid color-mix(in srgb, var(--brand) 26%, transparent); }
.sv-exces .sv-lib { display: flex; flex-direction: column; gap: 3px; min-width: 0; font-size: 13.5px; }
.sv-exces .sv-lib b { color: var(--tx1); }
.sv-ico.is-opp { color: var(--brand); background: color-mix(in srgb, var(--brand) 12%, transparent); }
.sv-leviers.is-opp .sv-leviers-t { color: var(--brand); font-weight: 700; }
