/* ══════════════════════════════════════════════════════════════════════════
   SmartAdvisory · V5 RECONSTRUCTION
   Geometry, hierarchy, density and materiality taken from the reviewed V5 source
   (CRM_V5.html sha 4b022b17…). Written from MEASURED tokens, not pasted: every
   value below was read out of the reference and re-expressed here.

   Rules this file obeys (contract §4/§12):
     · every class is `sa-v5-` prefixed — no global one-letter classes
     · no `!important`
     · no purple/violet/plasma
     · no hardcoded business truth
     · no external font/asset dependency: the app's existing stack is reused
     · reference type sizes of 8–8.5px are raised to a readable floor while the
       hierarchy (relative steps) is preserved
   ══════════════════════════════════════════════════════════════════════════ */

.sa-v5{
  /* product identity — context only, never the primary-CTA rule (§4 ACTION != PRODUCT) */
  --sa-v5-ip-sf:#F4F8FF; --sa-v5-ip-bd:#8FBAFB; --sa-v5-ip-pr:#D3E5FE;
  --sa-v5-ip-400:#3B82F6; --sa-v5-ip:#1D4ED8; --sa-v5-ip-tx:#1B3A80; --sa-v5-ip-dp:#12285C;
  --sa-v5-np-sf:#FFF7F1; --sa-v5-np-bd:#FBB584; --sa-v5-np-pr:#FFE3CE;
  --sa-v5-np-400:#FB923C; --sa-v5-np:#C2410C; --sa-v5-np-tx:#93340F; --sa-v5-np-dp:#7C2D12;
  --sa-v5-cd-sf:#F5F3FF; --sa-v5-cd-bd:#C4B5FD; --sa-v5-cd-pr:#DDD6FE;
  --sa-v5-cd-400:#A78BFA; --sa-v5-cd:#6D28D9; --sa-v5-cd-tx:#5B21B6; --sa-v5-cd-dp:#4C1D95;
  /* state families */
  --sa-v5-gr-sf:#EFFBF5; --sa-v5-gr-bd:#6FDCAE; --sa-v5-gr-pr:#C9F3DF;
  --sa-v5-gr-400:#34D399; --sa-v5-gr:#047857; --sa-v5-gr-tx:#0A5C44;
  --sa-v5-tq-sf:#EDF9F8; --sa-v5-tq-bd:#7BD3CB; --sa-v5-tq-400:#2DD4BF; --sa-v5-tq:#0F766E;
  --sa-v5-rd-sf:#FEE2E2; --sa-v5-rd-bd:#F49898; --sa-v5-rd:#B91C1C; --sa-v5-rd-dp:#7F1D1D;
  /* ink + lines */
  --sa-v5-ink:#0F1420; --sa-v5-ink2:#3A4356; --sa-v5-ink3:#697285; --sa-v5-ink4:#98A1B2;
  --sa-v5-line:#E4E9F1; --sa-v5-line2:#D4DCE8;
  --sa-v5-surface:#fff; --sa-v5-surface2:#FBFCFE; --sa-v5-field:#F1F4FA;
  /* type — reference floor 8px raised to 10px; steps preserved */
  --sa-v5-fs-micro:10px; --sa-v5-fs-label:10.5px; --sa-v5-fs-meta:11.5px;
  --sa-v5-fs-body:12.5px; --sa-v5-fs-strong:13px; --sa-v5-fs-h3:18px;
  --sa-v5-fs-h2:20px; --sa-v5-fs-num:25px;
  /* rhythm */
  --sa-v5-r-row:12px; --sa-v5-r-card:15px; --sa-v5-r-hero:19px; --sa-v5-r-pill:10px;
  --sa-v5-gap:16px; --sa-v5-cockpit:424px;
  --sa-v5-sh1:0 1px 3px rgba(15,20,32,.05);
  --sa-v5-sh2:0 1px 2px rgba(18,40,92,.06),0 6px 14px -8px rgba(29,78,216,.20);
  --sa-v5-sh3:0 1px 2px rgba(18,40,92,.07),0 10px 26px -14px rgba(29,78,216,.32);
}

/* ── layout ──────────────────────────────────────────────────────────────── */
.sa-v5-split{display:grid;grid-template-columns:1fr var(--sa-v5-cockpit);
  gap:var(--sa-v5-gap);align-items:start}
.sa-v5-list{min-width:0;display:flex;flex-direction:column;gap:9px}
/* §6.7 — the cockpit scrolls on its own so the work list never pushes it away */
.sa-v5-cockpit{position:sticky;top:12px;max-height:calc(100vh - 24px);
  overflow-y:auto;overscroll-behavior:contain;border-radius:var(--sa-v5-r-card);
  background:var(--sa-v5-surface);border:1px solid var(--sa-v5-line);
  box-shadow:var(--sa-v5-sh1);min-width:0}

/* ── hero ────────────────────────────────────────────────────────────────── */
.sa-v5-hero{border-radius:var(--sa-v5-r-hero);position:relative;overflow:hidden;
  padding:19px 20px;background:linear-gradient(180deg,#fff,var(--sa-v5-surface2));
  border:1px solid var(--sa-v5-line);box-shadow:var(--sa-v5-sh1);margin-bottom:13px}
.sa-v5-hero__top{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}
.sa-v5-hero__ttl{margin:0;font-size:var(--sa-v5-fs-h2);font-weight:800;
  letter-spacing:-.015em;color:var(--sa-v5-ink);line-height:1.15}
.sa-v5-eyebrow{font-size:var(--sa-v5-fs-label);font-weight:700;letter-spacing:.10em;
  text-transform:uppercase;color:var(--sa-v5-ink3);font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace)}
.sa-v5-hero__spacer{flex:1 1 auto;min-width:8px}

/* ── KPI band ────────────────────────────────────────────────────────────── */
.sa-v5-k3{display:grid;grid-template-columns:1.22fr 1fr 1fr;gap:12px;margin-bottom:13px}
.sa-v5-k{border-radius:var(--sa-v5-r-card);padding:16px 17px 14px;position:relative;
  overflow:hidden;background:var(--sa-v5-surface);border:1px solid var(--sa-v5-line);
  box-shadow:var(--sa-v5-sh1);min-width:0}
.sa-v5-k::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;z-index:2;
  background:linear-gradient(180deg,var(--sa-v5-ink4),var(--sa-v5-line2))}
.sa-v5-k--ip::before{background:linear-gradient(180deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.sa-v5-k--np::before{background:linear-gradient(180deg,var(--sa-v5-np-400),var(--sa-v5-np))}
.sa-v5-k--cd::before{background:linear-gradient(180deg,var(--sa-v5-cd-400),var(--sa-v5-cd))}
.sa-v5-k--done::before{background:linear-gradient(180deg,var(--sa-v5-gr-400),var(--sa-v5-gr))}
.sa-v5-k__lab{font-size:var(--sa-v5-fs-label);font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--sa-v5-ink3);margin-bottom:7px}
.sa-v5-k__val{font-size:var(--sa-v5-fs-num);font-weight:800;letter-spacing:-.02em;
  color:var(--sa-v5-ink);font-variant-numeric:tabular-nums;line-height:1.05}
.sa-v5-k__val small{font-size:var(--sa-v5-fs-meta);font-weight:700;color:var(--sa-v5-ink3);
  margin-left:5px;letter-spacing:.06em}
.sa-v5-k__sub{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);margin-top:5px}
.sa-v5-k__brk{margin-top:9px;padding-top:8px;border-top:1px solid var(--sa-v5-line);
  font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink2);font-weight:600}

/* ── work card ───────────────────────────────────────────────────────────── */
.sa-v5-card{position:relative;border-radius:var(--sa-v5-r-card);overflow:hidden;
  background:var(--sa-v5-surface);border:1px solid var(--sa-v5-line);
  box-shadow:var(--sa-v5-sh1);padding:13px 15px;cursor:pointer;width:100%;text-align:left;
  transition:box-shadow .24s cubic-bezier(.2,.8,.25,1),transform .24s cubic-bezier(.2,.8,.25,1),border-color .24s}
.sa-v5-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:var(--sa-v5-line2)}
.sa-v5-card--ip::before{background:linear-gradient(180deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.sa-v5-card--np::before{background:linear-gradient(180deg,var(--sa-v5-np-400),var(--sa-v5-np))}
.sa-v5-card--cd::before{background:linear-gradient(180deg,var(--sa-v5-cd-400),var(--sa-v5-cd))}
.sa-v5-card:hover{transform:translateY(-1px);box-shadow:var(--sa-v5-sh2)}
.sa-v5-card:focus-visible{outline:3px solid var(--sa-v5-ip-400);outline-offset:2px}
.sa-v5-card.is-sel{border-color:var(--sa-v5-ip-bd);box-shadow:var(--sa-v5-sh3)}
.sa-v5-card.is-sel::after{content:"";position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;box-shadow:inset 0 0 0 1px var(--sa-v5-ip-bd)}
.sa-v5-card__head{display:flex;align-items:flex-start;gap:11px}
.sa-v5-av{width:38px;height:38px;border-radius:12px;flex:none;display:grid;place-items:center;
  font-size:var(--sa-v5-fs-body);font-weight:700;color:#fff;
  background:linear-gradient(150deg,var(--sa-v5-ink3),var(--sa-v5-ink2))}
.sa-v5-av--ip{background:linear-gradient(150deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.sa-v5-av--np{background:linear-gradient(150deg,var(--sa-v5-np-400),var(--sa-v5-np))}
.sa-v5-av--cd{background:linear-gradient(150deg,var(--sa-v5-cd-400),var(--sa-v5-cd))}
.sa-v5-card__id{min-width:0;flex:1}
.sa-v5-name{font-size:var(--sa-v5-fs-strong);font-weight:700;color:var(--sa-v5-ink);
  letter-spacing:-.01em;overflow-wrap:anywhere}
.sa-v5-meta{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);margin-top:2px}
.sa-v5-card__right{text-align:right;flex:none;display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.sa-v5-card__foot{display:flex;align-items:center;gap:9px;margin-top:11px;flex-wrap:wrap}
/* the action cluster wraps: at a narrow content column a non-wrapping row pushed the
   contact and CTA buttons outside the card (34 clipped controls at 390px). */
.sa-v5-card__foot .sa-v5-actions{margin-left:auto;display:flex;gap:6px;align-items:center;
  flex-wrap:wrap;justify-content:flex-end;min-width:0}

/* ── product context strip ───────────────────────────────────────────────── */
.sa-v5-prod{margin-top:10px;border-radius:var(--sa-v5-r-row);padding:10px 12px;
  display:flex;align-items:center;gap:11px;border:1px solid var(--sa-v5-line);
  background:var(--sa-v5-surface2)}
.sa-v5-prod--ip{background:linear-gradient(120deg,var(--sa-v5-ip-sf),var(--sa-v5-ip-pr));
  border-color:var(--sa-v5-ip-bd)}
.sa-v5-prod--np{background:linear-gradient(120deg,var(--sa-v5-np-sf),var(--sa-v5-np-pr));
  border-color:var(--sa-v5-np-bd)}
.sa-v5-prod--cd{background:linear-gradient(120deg,var(--sa-v5-cd-sf),var(--sa-v5-cd-pr));
  border-color:var(--sa-v5-cd-bd)}
.sa-v5-tag{font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;padding:4px 8px;border-radius:7px;
  background:rgba(255,255,255,.72);color:var(--sa-v5-ink2);white-space:nowrap}
.sa-v5-prod__bank{font-size:var(--sa-v5-fs-strong);font-weight:700;color:var(--sa-v5-ink);min-width:0}
.sa-v5-prod__sub{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3)}
.sa-v5-prod__amt{margin-left:auto;text-align:right;font-variant-numeric:tabular-nums;
  font-size:var(--sa-v5-fs-h3);font-weight:800;color:var(--sa-v5-ink);letter-spacing:-.02em}
.sa-v5-prod__amt small{font-size:var(--sa-v5-fs-micro);font-weight:700;color:var(--sa-v5-ink3);margin-left:4px}

/* ── stage chip · neutral, never a product taxonomy (§7.6) ───────────────── */
.sa-v5-stage{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;
  border-radius:100px;font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;background:var(--sa-v5-field);color:var(--sa-v5-ink2);
  border:1px solid var(--sa-v5-line2);white-space:nowrap}
.sa-v5-stage--done{background:var(--sa-v5-gr-sf);color:var(--sa-v5-gr-tx);border-color:var(--sa-v5-gr-bd)}
.sa-v5-stage--unset{background:var(--sa-v5-cd-sf);color:var(--sa-v5-cd-tx);border-color:var(--sa-v5-cd-bd)}

/* ── due semantics · state and date are two facts (§6.4) ─────────────────── */
.sa-v5-due{display:inline-flex;align-items:center;gap:5px;font-size:var(--sa-v5-fs-meta);
  font-weight:700;color:var(--sa-v5-ink2);white-space:nowrap}
.sa-v5-due__date{font-variant-numeric:tabular-nums;color:var(--sa-v5-ink2)}
.sa-v5-late{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:100px;
  font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.04em;
  background:var(--sa-v5-rd-sf);color:var(--sa-v5-rd);border:1px solid var(--sa-v5-rd-bd);white-space:nowrap}
.sa-v5-late::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
/* a future term is a neutral fact, never an alert */
.sa-v5-soon{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:100px;
  font-size:var(--sa-v5-fs-micro);font-weight:700;background:var(--sa-v5-field);
  color:var(--sa-v5-ink2);border:1px solid var(--sa-v5-line2);white-space:nowrap}

/* ── roles · three distinct semantic slots (§6.6) ────────────────────────── */
.sa-v5-role{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3)}
.sa-v5-role b{color:var(--sa-v5-ink2);font-weight:700}
.sa-v5-role--none{color:var(--sa-v5-ink4)}

/* ── buttons ─────────────────────────────────────────────────────────────── */
.sa-v5-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:34px;padding:0 14px;border-radius:var(--sa-v5-r-pill);cursor:pointer;
  font-size:var(--sa-v5-fs-body);font-weight:700;border:1px solid var(--sa-v5-line2);
  background:#fff;color:var(--sa-v5-ink2);transition:.18s;font-family:inherit}
.sa-v5-btn:hover{border-color:var(--sa-v5-ink4);color:var(--sa-v5-ink)}
.sa-v5-btn:focus-visible{outline:3px solid var(--sa-v5-ip-400);outline-offset:2px}
/* the primary CTA is a capability, not a product colour */
.sa-v5-btn--primary{background:linear-gradient(160deg,var(--sa-v5-ink2),var(--sa-v5-ink));
  border-color:var(--sa-v5-ink);color:#fff}
.sa-v5-btn--primary:hover{color:#fff;box-shadow:var(--sa-v5-sh2)}
.sa-v5-btn--icon{width:34px;height:34px;padding:0;border-radius:var(--sa-v5-r-pill)}
.sa-v5-btn[disabled]{opacity:.45;cursor:not-allowed}
.sa-v5-chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px;
  border-radius:100px;font-size:var(--sa-v5-fs-body);font-weight:700;cursor:pointer;
  border:1px solid var(--sa-v5-line2);background:#fff;color:var(--sa-v5-ink2);
  transition:.18s;font-family:inherit}
.sa-v5-chip.is-on{background:var(--sa-v5-ip-sf);border-color:var(--sa-v5-ip-bd);color:var(--sa-v5-ip-tx)}
.sa-v5-chip:focus-visible{outline:3px solid var(--sa-v5-ip-400);outline-offset:2px}
.sa-v5-chip__n{font-size:var(--sa-v5-fs-micro);font-weight:800;color:var(--sa-v5-ink3);
  font-variant-numeric:tabular-nums}
.sa-v5-chipbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:13px}
.sa-v5-seg{display:inline-flex;background:var(--sa-v5-field);border:1px solid var(--sa-v5-line);
  border-radius:100px;padding:3px}
.sa-v5-seg button{height:28px;padding:0 14px;border:0;background:transparent;cursor:pointer;
  border-radius:100px;font-size:var(--sa-v5-fs-body);font-weight:700;color:var(--sa-v5-ink3);
  font-family:inherit;transition:.16s}
.sa-v5-seg button.is-on{background:#fff;color:var(--sa-v5-ink);box-shadow:var(--sa-v5-sh1)}
.sa-v5-seg button:focus-visible{outline:3px solid var(--sa-v5-ip-400);outline-offset:1px}

/* ── cockpit internals ───────────────────────────────────────────────────── */
.sa-v5-cph{padding:15px 16px;border-bottom:1px solid var(--sa-v5-line);
  background:linear-gradient(180deg,#fff,var(--sa-v5-surface2));position:relative}
.sa-v5-cpb{padding:14px 16px 18px}
.sa-v5-sect{margin-top:16px}
.sa-v5-sect:first-child{margin-top:0}
.sa-v5-sect__t{display:flex;align-items:center;gap:10px;margin-bottom:9px;
  font-size:var(--sa-v5-fs-label);font-weight:800;letter-spacing:.10em;
  text-transform:uppercase;color:var(--sa-v5-ink3)}
.sa-v5-sect__t::after{content:"";flex:1;height:1px;background:var(--sa-v5-line)}
.sa-v5-tint{border-radius:var(--sa-v5-r-row);padding:12px 13px;background:var(--sa-v5-surface2);
  border:1px solid var(--sa-v5-line);font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ink2)}
.sa-v5-tint--alert{background:var(--sa-v5-rd-sf);border-color:var(--sa-v5-rd-bd);color:var(--sa-v5-rd-dp)}
.sa-v5-chan{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.sa-v5-kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;
  border-bottom:1px solid var(--sa-v5-line);font-size:var(--sa-v5-fs-body)}
.sa-v5-kv:last-child{border-bottom:0}
.sa-v5-kv dt{color:var(--sa-v5-ink3)}
.sa-v5-kv dd{margin:0;color:var(--sa-v5-ink);font-weight:700;text-align:right;
  font-variant-numeric:tabular-nums}

/* ── timeline (§11) ──────────────────────────────────────────────────────── */
.sa-v5-tl{position:relative;padding-left:19px}
.sa-v5-tl::before{content:"";position:absolute;left:5px;top:5px;bottom:5px;width:2px;
  border-radius:2px;background:linear-gradient(180deg,var(--sa-v5-line2),transparent)}
.sa-v5-ev{position:relative;padding-bottom:12px}
.sa-v5-ev::before{content:"";position:absolute;left:-17px;top:5px;width:8px;height:8px;
  border-radius:50%;background:#fff;border:2px solid var(--sa-v5-ink4)}
.sa-v5-ev__d{font-size:var(--sa-v5-fs-micro);font-weight:700;color:var(--sa-v5-ink4);
  font-variant-numeric:tabular-nums;letter-spacing:.03em}
.sa-v5-ev__t{font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ink2);margin-top:1px}
.sa-v5-ev__by{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink4)}

/* ── dossier row (§7) ────────────────────────────────────────────────────── */
.sa-v5-dr{display:flex;align-items:center;gap:12px;border-radius:var(--sa-v5-r-row);
  padding:11px 15px;margin-bottom:8px;position:relative;overflow:hidden;
  background:var(--sa-v5-surface);border:1px solid var(--sa-v5-line);
  box-shadow:var(--sa-v5-sh1);width:100%;text-align:left;cursor:pointer;transition:.2s}
.sa-v5-dr::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sa-v5-line2)}
.sa-v5-dr--ip::before{background:linear-gradient(180deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.sa-v5-dr--np::before{background:linear-gradient(180deg,var(--sa-v5-np-400),var(--sa-v5-np))}
.sa-v5-dr--cd::before{background:linear-gradient(180deg,var(--sa-v5-cd-400),var(--sa-v5-cd))}
.sa-v5-dr:hover{transform:translateY(-1px);box-shadow:var(--sa-v5-sh2)}
.sa-v5-dr:focus-visible{outline:3px solid var(--sa-v5-ip-400);outline-offset:2px}
.sa-v5-dr__a{width:34px;height:34px;border-radius:11px;flex:none;display:grid;place-items:center;
  font-size:var(--sa-v5-fs-meta);font-weight:700;color:#fff;
  background:linear-gradient(150deg,var(--sa-v5-ink3),var(--sa-v5-ink2))}
.sa-v5-dr__id{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}
/* inside a row the identity block stacks: name, then note, then next step. As inline
   spans they ran together ("Baradeu Gabrielanu mai vrea…"). */
.sa-v5-dr__id > .sa-v5-name,.sa-v5-dr__id > .sa-v5-meta{display:block;margin:0}
.sa-v5-dr__amt{font-variant-numeric:tabular-nums;font-weight:800;color:var(--sa-v5-ink);
  font-size:var(--sa-v5-fs-strong);white-space:nowrap}
.sa-v5-dr__amt small{font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3);margin-left:3px;font-weight:700}
.sa-v5-group{display:flex;align-items:center;gap:11px;margin:17px 0 10px}
.sa-v5-group__n{min-width:26px;height:24px;padding:0 8px;border-radius:8px;display:grid;
  place-items:center;font-size:var(--sa-v5-fs-meta);font-weight:800;
  background:var(--sa-v5-field);color:var(--sa-v5-ink2);font-variant-numeric:tabular-nums}
.sa-v5-group__t{font-size:var(--sa-v5-fs-strong);font-weight:800;color:var(--sa-v5-ink)}
.sa-v5-group__v{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:800;
  color:var(--sa-v5-ink2);font-size:var(--sa-v5-fs-strong)}

/* ── financial screen (§8) ───────────────────────────────────────────────── */
.sa-v5-vgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:12px}
.sa-v5-vcom{border-radius:var(--sa-v5-r-card);padding:16px 18px;position:relative;overflow:hidden;
  background:linear-gradient(154deg,#F7FEFB,var(--sa-v5-gr-sf) 46%,var(--sa-v5-gr-pr));
  border:1px solid var(--sa-v5-gr-bd);box-shadow:var(--sa-v5-sh1)}
.sa-v5-vcom::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;z-index:2;
  background:linear-gradient(180deg,var(--sa-v5-gr-400),var(--sa-v5-gr))}
.sa-v5-vpipe{border-radius:var(--sa-v5-r-card);padding:16px 18px;position:relative;overflow:hidden;
  background:linear-gradient(154deg,#F8FBFF,var(--sa-v5-ip-sf) 52%,var(--sa-v5-ip-pr));
  border:1px solid var(--sa-v5-ip-bd);box-shadow:var(--sa-v5-sh1)}
.sa-v5-vpipe::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;z-index:2;
  background:linear-gradient(180deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.sa-v5-vgap{border-radius:var(--sa-v5-r-card);padding:16px 18px;position:relative;overflow:hidden;
  background:linear-gradient(154deg,#FFFDF7,var(--sa-v5-cd-sf) 52%,var(--sa-v5-cd-pr));
  border:1px solid var(--sa-v5-cd-bd);box-shadow:var(--sa-v5-sh1)}
.sa-v5-vgap::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;z-index:2;
  background:linear-gradient(180deg,var(--sa-v5-cd-400),var(--sa-v5-cd))}
.sa-v5-trow{display:flex;align-items:center;gap:13px;padding:11px 0;
  border-bottom:1px solid var(--sa-v5-line)}
.sa-v5-trow:last-child{border-bottom:0}
.sa-v5-trow__v{width:208px;text-align:right;flex:none;font-variant-numeric:tabular-nums}
.sa-v5-bnk{display:flex;align-items:center;gap:13px;padding:9px 0}
.sa-v5-bnk__n{width:132px;flex:none;font-size:var(--sa-v5-fs-body);font-weight:700;
  color:var(--sa-v5-ink2);overflow-wrap:anywhere}
.sa-v5-bnk__bar{flex:1;height:9px;border-radius:100px;background:var(--sa-v5-field);overflow:hidden}
.sa-v5-bnk__fill{height:100%;border-radius:100px;
  background:linear-gradient(90deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.sa-v5-bnk__v{width:150px;text-align:right;flex:none;font-variant-numeric:tabular-nums;
  font-size:var(--sa-v5-fs-body);font-weight:700;color:var(--sa-v5-ink)}

/* ── neutral empty / data-quality (§7.5) ─────────────────────────────────── */
.sa-v5-empty{border-radius:var(--sa-v5-r-card);border:1px dashed var(--sa-v5-line2);
  padding:20px;text-align:center;color:var(--sa-v5-ink3);font-size:var(--sa-v5-fs-body);
  background:var(--sa-v5-surface2)}
.sa-v5-fact{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:100px;
  font-size:var(--sa-v5-fs-meta);font-weight:700;background:var(--sa-v5-field);
  color:var(--sa-v5-ink2);border:1px solid var(--sa-v5-line2)}
/* the actionable variant is a real button; a fact with no resolution path is not */
button.sa-v5-fact{cursor:pointer;font-family:inherit}
button.sa-v5-fact:hover{border-color:var(--sa-v5-ink4);color:var(--sa-v5-ink)}
button.sa-v5-fact:focus-visible{outline:3px solid var(--sa-v5-ip-400);outline-offset:2px}
.sa-v5-fact--todo{background:var(--sa-v5-cd-sf);color:var(--sa-v5-cd-tx);border-color:var(--sa-v5-cd-bd)}

/* ── responsive (§13) ────────────────────────────────────────────────────── */
/* The reference collapses to one column below 1420px. That rule is deliberately NOT
   carried forward: 1366×768 must keep list + cockpit side by side. The cockpit is
   narrowed and its timeline compressed instead. */
@media (max-width:1450px){
  .sa-v5{--sa-v5-cockpit:392px;--sa-v5-gap:13px}
}
@media (max-width:1330px){
  .sa-v5{--sa-v5-cockpit:352px;--sa-v5-gap:11px}
  .sa-v5-hero{padding:16px 17px}
  .sa-v5-k{padding:14px 14px 12px}
}
@media (max-width:1180px){
  .sa-v5-k3{grid-template-columns:1fr 1fr}
  .sa-v5-k3 > .sa-v5-k:last-child{grid-column:1/-1}
  .sa-v5-vgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:1080px){
  /* below this width two columns stop being defensible, so the cockpit moves under
     the list — but it stays above the fold of its own section, not buried */
  .sa-v5-split{grid-template-columns:1fr}
  .sa-v5-cockpit{position:static;max-height:none}
}
@media (max-width:860px){
  /* §6.8 — the primary action and contact stay reachable: the foot stacks and the
     controls go full width rather than being clipped at the card edge. */
  .sa-v5-card__foot{flex-direction:column;align-items:stretch}
  .sa-v5-card__foot .sa-v5-actions{margin-left:0;justify-content:flex-start}
  .sa-v5-card__foot .sa-v5-actions > *{flex:1 1 auto;min-width:0}
  .sa-v5-dr{flex-wrap:wrap}
}
@media (max-width:720px){
  .sa-v5-k3,.sa-v5-vgrid{grid-template-columns:1fr}
  .sa-v5-chan{grid-template-columns:1fr}
  .sa-v5-trow__v,.sa-v5-bnk__v{width:auto}
  .sa-v5-bnk__n{width:96px}
  .sa-v5-card__right{align-items:flex-start}
}


/* ══════════════════════════════════════════════════════════════════════════
   QUALITY RECOVERY · visual and colour system
   The screen read as a grey application because the canvas token was a cold
   blue-grey (#F2F5FA) and because product identity survived only as a 4px rule at
   the card edge. Both are addressed at the source. Scoped to `.sa-v5`.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── C3.1 · a warm canvas, white cards, grey demoted to type and lines ───── */
.sa-v5{
  --sa-bg:#FAF7F2;                       /* warm off-white, not a cold grey slab */
  --sa-v5-canvas:#FAF7F2;
  --sa-v5-surface2:#FDFBF7;              /* warm secondary surface */
  --sa-v5-field:#F3EFE7;
  --sa-v5-line:#EAE4DA; --sa-v5-line2:#DCD4C7;
  /* the stable action colour — a capability, never a product (C1.4) */
  --sa-v5-act:#1B2130; --sa-v5-act2:#39415A;
  /* work-context family, used when no credit product is known (C3.2) */
  --sa-v5-tq-pr:#CFEFEC; --sa-v5-tq-tx:#0B4F49;
}
.sa-v5.sa-shell{background:var(--sa-v5-canvas)}
.sa-v5 .sa-wrap{background:transparent}

/* ── C3.2 · publish the product palette ON the V5 card ───────────────────
   `.v1-primary`, `.v1-tag`, `.v1-rb` and the product strip declare their colours as
   `var(--f700)` / `var(--f200)`. Those properties are published by `.v1[data-fam]`,
   which the V5 card never was — so every one of those declarations was invalid at
   computed-value time and fell back to its initial value. That is the mechanism
   behind the blank white controls: `background` became `none`, `color:#fff` stayed.
   Publishing the family here makes them valid again, per card. */
.sa-v5 .sa-v5-card,
.sa-v5 .v1-prod{
  --f50:var(--v1-tq-50);--f100:var(--v1-tq-100);--f200:var(--v1-tq-200);
  --f:var(--v1-tq);--f700:var(--v1-tq-700);--f900:var(--v1-tq-900);--fgrad:#2DD4BF;
  --sa-v5-fam-sf:var(--sa-v5-tq-sf);--sa-v5-fam-bd:var(--sa-v5-tq-bd);
  --sa-v5-fam-pr:var(--sa-v5-tq-pr);--sa-v5-fam-tx:var(--sa-v5-tq-tx);
  --sa-v5-fam-400:var(--sa-v5-tq-400);--sa-v5-fam:var(--sa-v5-tq);
}
.sa-v5 .sa-v5-card--ip,.sa-v5 .v1-prod--ip{
  --f50:var(--v1-ip-50);--f100:var(--v1-ip-100);--f200:var(--v1-ip-200);
  --f:var(--v1-ip);--f700:var(--v1-ip-700);--f900:var(--v1-ip-900);--fgrad:#3B82F6;
  --sa-v5-fam-sf:var(--sa-v5-ip-sf);--sa-v5-fam-bd:var(--sa-v5-ip-bd);
  --sa-v5-fam-pr:var(--sa-v5-ip-pr);--sa-v5-fam-tx:var(--sa-v5-ip-tx);
  --sa-v5-fam-400:var(--sa-v5-ip-400);--sa-v5-fam:var(--sa-v5-ip);
}
.sa-v5 .sa-v5-card--np,.sa-v5 .v1-prod--np{
  --f50:var(--v1-np-50);--f100:var(--v1-np-100);--f200:var(--v1-np-200);
  --f:var(--v1-np);--f700:var(--v1-np-700);--f900:var(--v1-np-900);--fgrad:#FB923C;
  --sa-v5-fam-sf:var(--sa-v5-np-sf);--sa-v5-fam-bd:var(--sa-v5-np-bd);
  --sa-v5-fam-pr:var(--sa-v5-np-pr);--sa-v5-fam-tx:var(--sa-v5-np-tx);
  --sa-v5-fam-400:var(--sa-v5-np-400);--sa-v5-fam:var(--sa-v5-np);
}
.sa-v5 .sa-v5-card--cd,.sa-v5 .v1-prod--cd{
  --f50:var(--v1-cd-50);--f100:var(--v1-cd-100);--f200:var(--v1-cd-200);
  --f:var(--v1-cd);--f700:var(--v1-cd-700);--f900:var(--v1-cd-900);--fgrad:#D9A441;
  --sa-v5-fam-sf:var(--sa-v5-cd-sf);--sa-v5-fam-bd:var(--sa-v5-cd-bd);
  --sa-v5-fam-pr:var(--sa-v5-cd-pr);--sa-v5-fam-tx:var(--sa-v5-cd-tx);
  --sa-v5-fam-400:var(--sa-v5-cd-400);--sa-v5-fam:var(--sa-v5-cd);
}

/* context colour as a SURFACE, not only a 4px rule: the identity band, the avatar,
   the selected state and the context strip all carry it (C3.2). */
.sa-v5 .sa-v5-card{border-color:var(--sa-v5-fam-bd);
  background:linear-gradient(180deg,var(--sa-v5-fam-sf) 0,#fff 62px)}
.sa-v5 .sa-v5-card::before{width:5px;
  background:linear-gradient(180deg,var(--sa-v5-fam-400),var(--sa-v5-fam))}
.sa-v5 .sa-v5-card.is-sel{border-color:var(--sa-v5-fam);
  box-shadow:0 1px 2px rgba(18,24,40,.07),0 12px 28px -14px var(--sa-v5-fam-400)}
.sa-v5 .sa-v5-card.is-sel::after{box-shadow:inset 0 0 0 1px var(--sa-v5-fam-bd)}
.sa-v5 .sa-v5-av{background:linear-gradient(150deg,var(--sa-v5-fam-400),var(--sa-v5-fam))}
.sa-v5 .sa-v5-card:focus-visible{outline-color:var(--sa-v5-fam-400)}

/* ── C1.1 · WHY NOW, directly under the identity ─────────────────────────── */
.sa-v5 .sa-v5-why{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:9px}
.sa-v5 .sa-v5-why__k{font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;padding:3px 9px;border-radius:100px;white-space:nowrap;
  background:var(--sa-v5-fam-pr);color:var(--sa-v5-fam-tx)}
.sa-v5 .sa-v5-why__t{font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ink2);line-height:1.45}

/* ── C1.1/C3.4 · the context strip stops dominating ─────────────────────── */
.sa-v5 .v1-prod{margin-top:10px;border-radius:var(--sa-v5-r-row);padding:10px 13px;
  align-items:center;gap:14px;
  background:linear-gradient(120deg,var(--sa-v5-fam-sf),var(--sa-v5-fam-pr));
  border:1px solid var(--sa-v5-fam-bd)}
.sa-v5 .v1-tag{font-size:var(--sa-v5-fs-micro);letter-spacing:.09em;padding:3px 8px;
  border-radius:7px;margin-bottom:6px;background:var(--sa-v5-fam);color:#fff}
.sa-v5 .v1-bank{font-size:var(--sa-v5-fs-strong);font-weight:700;letter-spacing:-.01em;
  color:var(--sa-v5-fam-tx)}
.sa-v5 .v1-terms{font-size:var(--sa-v5-fs-meta);margin-top:3px;gap:8px;color:var(--sa-v5-ink3)}
.sa-v5 .v1-amt{padding-bottom:0}
.sa-v5 .v1-fig{font-size:17px;line-height:1.1;letter-spacing:-.02em;color:var(--sa-v5-fam-tx)}
.sa-v5 .v1-cur{font-size:var(--sa-v5-fs-micro);letter-spacing:.14em;margin-top:2px;
  color:var(--sa-v5-ink3)}
.sa-v5 .v1-pending{font-size:var(--sa-v5-fs-meta);font-weight:700;margin-top:0;padding:5px 10px;
  border-radius:8px;background:#fff;border:1px solid var(--sa-v5-fam-bd);color:var(--sa-v5-fam-tx)}

/* ── C1.4 · ACTION is not PRODUCT ────────────────────────────────────────
   The primary CTA reads the same on a mortgage, an NP case and a bare contact. */
.sa-v5 .v1-primary{height:36px;padding:0 16px;border-radius:var(--sa-v5-r-pill);
  font-size:var(--sa-v5-fs-body);font-weight:700;gap:7px;
  background:linear-gradient(170deg,var(--sa-v5-act2),var(--sa-v5-act));
  color:#fff;box-shadow:var(--sa-v5-sh1)}
.sa-v5 .v1-primary:hover{filter:none;box-shadow:var(--sa-v5-sh2)}
.sa-v5 .v1-primary:focus-visible{outline:3px solid var(--sa-v5-act2);outline-offset:2px}
/* the channel buttons keep the context tint — they are context, not the decision */
.sa-v5 .v1-rb{height:32px;padding:0 11px;border-radius:var(--sa-v5-r-pill);
  font-size:var(--sa-v5-fs-meta);font-weight:700;gap:6px;
  color:var(--sa-v5-fam-tx);border:1px solid var(--sa-v5-fam-bd);background:#fff}
.sa-v5 .v1-rb:hover{background:var(--sa-v5-fam-sf);border-color:var(--sa-v5-fam)}
.sa-v5 .v1-ghost{height:32px;padding:0 11px;border-radius:var(--sa-v5-r-pill);
  font-size:var(--sa-v5-fs-meta);font-weight:700}

/* ── C1.3 · the overflow disclosure ─────────────────────────────────────── */
.sa-v5 .sa-v5-more{position:relative}
.sa-v5 .sa-v5-more__s{list-style:none;width:32px;height:32px;display:grid;place-items:center;
  border-radius:var(--sa-v5-r-pill);border:1px solid var(--sa-v5-line2);background:#fff;
  cursor:pointer;color:var(--sa-v5-ink3)}
.sa-v5 .sa-v5-more__s::-webkit-details-marker{display:none}
.sa-v5 .sa-v5-more__s:hover{border-color:var(--sa-v5-ink4);color:var(--sa-v5-ink)}
.sa-v5 .sa-v5-more[open] .sa-v5-more__s{border-color:var(--sa-v5-ink4);color:var(--sa-v5-ink)}
.sa-v5 .sa-v5-more__s .v1-ico{fill:currentColor;stroke:none;width:16px;height:16px}
.sa-v5 .sa-v5-more__m{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:196px;
  max-width:min(240px,calc(100vw - 32px));
  display:flex;flex-direction:column;padding:6px;border-radius:var(--sa-v5-r-row);
  background:#fff;border:1px solid var(--sa-v5-line2);box-shadow:var(--sa-v5-sh3)}
.sa-v5 .sa-v5-mi{display:flex;align-items:center;gap:9px;height:34px;padding:0 10px;
  border-radius:9px;font-size:var(--sa-v5-fs-body);font-weight:650;color:var(--sa-v5-ink2);
  background:none;border:0;cursor:pointer;text-align:left;text-decoration:none;white-space:nowrap}
.sa-v5 .sa-v5-mi:hover{background:var(--sa-v5-field);color:var(--sa-v5-ink)}

/* ── C4.1 · a hero that leaves room for the work ─────────────────────────
   Greeting, scope and quote share ONE band instead of stacking three. The quote is
   clamped to two lines so a long one cannot push the work list off the fold. */
.sa-v5 .sa-hero{border-color:var(--sa-v5-line)}
.sa-v5 .sa-hero__greet{padding:13px 20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.sa-v5 .sa-hero__row{flex:1 1 300px;min-width:0;margin:0}
.sa-v5 .sa-t-hero{font-size:20px;letter-spacing:-.035em;line-height:1.2}
.sa-v5 .sa-hero__title{margin-top:3px;gap:10px}
.sa-v5 .sa-hero__date{font-size:9.5px;letter-spacing:.16em}
.sa-v5 .sa-quote{flex:1 1 320px;min-width:0;max-width:46%;padding:0;border:0;
  display:flex;align-items:flex-start;gap:8px}
.sa-v5 .sa-quote__mark{font-size:26px;line-height:.8}
.sa-v5 .sa-t-quote{font-size:12.5px;line-height:1.42;max-width:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sa-v5 .sa-quote__cite{font-size:9.5px}
.sa-v5 .sa-hero__sum{padding:8px 20px}
.sa-v5 .sa-hero__sum-v{font-size:12.5px}
.sa-v5 .sa-hero__sum-tot{font-size:14px}
.sa-v5 .sa-wrap{padding-top:14px;gap:11px}
@media (max-width:1080px){ .sa-v5 .sa-quote{max-width:100%} }

/* ── C4.2 · a dense product band ────────────────────────────────────────── */
.sa-v5 .sa-v5-kpiband{border-top:1px solid var(--sa-v5-line);padding:8px 20px 10px;
  background:linear-gradient(180deg,#fff,var(--sa-v5-surface2))}
.sa-v5 .sa-v5-kpiband__h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  margin-bottom:6px}
.sa-v5 .sa-v5-kpirow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
/* one row per cell: dot, name, count, value. The optional provenance line is the
   only thing that ever adds a second row, and only on the family that has one. */
.sa-v5 .sa-v5-kpi{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;column-gap:8px;row-gap:1px;padding:7px 11px;
  border-radius:var(--sa-v5-r-row);border:1px solid var(--sa-v5-line);background:#fff;
  cursor:pointer;text-align:left;transition:.16s;min-width:0}
.sa-v5 .sa-v5-kpi:hover{border-color:var(--sa-v5-line2)}
.sa-v5 .sa-v5-kpi[aria-pressed=true]{border-color:var(--sa-v5-ink4);
  box-shadow:inset 0 0 0 1px var(--sa-v5-line2)}
.sa-v5 .sa-v5-kpi__d{width:9px;height:9px;border-radius:3px;grid-row:1;
  background:var(--sa-v5-ink4)}
.sa-v5 .sa-v5-kpi--ip .sa-v5-kpi__d{background:var(--sa-v5-ip)}
.sa-v5 .sa-v5-kpi--np .sa-v5-kpi__d{background:var(--sa-v5-np)}
.sa-v5 .sa-v5-kpi--cd .sa-v5-kpi__d{background:var(--sa-v5-cd)}
.sa-v5 .sa-v5-kpi__n{grid-row:1;font-size:var(--sa-v5-fs-meta);font-weight:700;
  color:var(--sa-v5-ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sa-v5 .sa-v5-kpi__c{grid-row:1;font-size:var(--sa-v5-fs-h3);font-weight:800;
  color:var(--sa-v5-ink);letter-spacing:-.02em}
.sa-v5 .sa-v5-kpi__v{grid-row:1;grid-column:4;font-size:var(--sa-v5-fs-meta);
  font-weight:700;color:var(--sa-v5-ink2);text-align:right;white-space:nowrap}
.sa-v5 .sa-v5-kpi__v small{font-size:var(--sa-v5-fs-micro);font-weight:700;
  color:var(--sa-v5-ink3);margin-left:4px;letter-spacing:.05em}
.sa-v5 .sa-v5-kpi__v.is-zero{color:var(--sa-v5-ink4);font-weight:600}
.sa-v5 .sa-v5-kpi__x{grid-row:2;grid-column:2/5;font-size:var(--sa-v5-fs-micro);
  color:var(--sa-v5-ink3);text-align:right}

/* ── C1.5/C1.6 · one scroll in the cockpit, nothing hidden under the head ─ */
.sa-v5 .sa-v5-cockpit{display:flex;flex-direction:column;overflow:hidden;
  max-height:calc(100vh - 24px);border-color:var(--sa-v5-line)}
.sa-v5 .sa-v5-cockpit > .sa-panel__id{flex:none;padding:14px 16px 12px;
  border-bottom:1px solid var(--sa-v5-line);
  background:linear-gradient(180deg,var(--sa-v5-fam-sf,#fff),#fff)}
.sa-v5 .sa-v5-cockpit > .sa-deal,.sa-v5 .sa-v5-cockpit > .sa-commit{flex:none}
.sa-v5 .sa-v5-cockpit .sa-panel__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;
  overscroll-behavior:contain}
.sa-v5 .sa-v5-cockpit .sa-panel__body{padding:14px 16px 20px}

/* ── C2.1 · all eight canonical steps, never clipped ─────────────────────
   A horizontal rail inside a 424px cockpit could not show eight steps, so it cut
   the last two without saying so. The rail is a two-column grid: every step is
   present, readable and in order, at any cockpit width. */
.sa-v5 .sa-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px 12px;overflow:visible;padding-bottom:0}
.sa-v5 .sa-step{flex-direction:row;align-items:center;gap:9px;min-width:0;text-align:left}
.sa-v5 .sa-step::after{display:none}
.sa-v5 .sa-step__c{width:22px;height:22px;font-size:10.5px;flex:none}
.sa-v5 .sa-step__l{text-align:left;max-width:none;font-size:11px;line-height:1.3;min-width:0}
.sa-v5 .sa-step__unconf{display:block;font-size:9.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sa-v5-ink4)}

/* ── C3.3 · the remaining kit surfaces stop reading grey ─────────────────── */
.sa-v5 .sa-panel,.sa-v5 .sa-hero{background:#fff}
.sa-v5 .sa-tint{background:var(--sa-v5-surface2);border:1px solid var(--sa-v5-line)}
.sa-v5 .sa-section__title{color:var(--sa-v5-ink3)}
.sa-v5 .sa-chip{border-color:var(--sa-v5-line2)}
.sa-v5 .az-sep{background:var(--sa-v5-line2)}

/* ── C2.3 · a collapsed historical field costs one line ──────────────────── */
.zw-fold > summary{list-style:none;cursor:pointer;font-size:12px;font-weight:650;
  color:#6D7688;padding:7px 0}
.zw-fold > summary::-webkit-details-marker{display:none}
.zw-fold > summary::before{content:"+ ";font-weight:800}
.zw-fold[open] > summary::before{content:"− "}

/* ── responsive · the band and the rail follow the column, not the viewport ─ */
@media (max-width:1180px){
  .sa-v5 .sa-v5-kpirow{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .sa-v5 .sa-v5-kpirow{grid-template-columns:1fr}
  .sa-v5 .sa-flow{grid-template-columns:1fr}
  /* the menu stays anchored to the summary's RIGHT edge at every width: flipping it
     to the left pushed a 196px panel off a 280px column (156 clipped controls at 390). */
  .sa-v5 .sa-v5-more__m{right:0;left:auto}
}


/* ══════════════════════════════════════════════════════════════════════════
   V3 RECOVERY · P0 geometry, actionable stage rail, one colour authority
   ══════════════════════════════════════════════════════════════════════════ */

/* ── §3.1 · the cockpit must be able to reach its true bottom ─────────────
   `max-height:calc(100vh - 24px)` was 837px while the real scroll container
   (`#content`) is only 805px tall, because the 56px topbar sits above it. The
   cockpit box therefore ended 389px BELOW the fold and its last rows could never be
   brought on screen. The height is now measured against the container, not the
   window, and the body keeps a bottom safe area so the final control is never flush
   against the edge. */
.sa-v5 .sa-v5-cockpit{max-height:calc(100vh - var(--sa-hdr,56px) - 24px)}
.sa-v5 .sa-v5-cockpit .sa-panel__body{padding-bottom:34px}
.sa-v5 .sa-v5-cockpit .sa-panel__scroll{scroll-padding-bottom:34px}
.sa-v5 .sa-v5-cockpit .sa-section:last-child{margin-bottom:0}

/* ── §3.2 · a sticky band must be opaque ──────────────────────────────────
   `.z-pband` was sticky with `background:rgba(0,0,0,0)` — no background at all — so
   rows scrolled straight through it and rendered on top of the header text
   (measured: a row 67px inside the band). An opaque surface is the whole fix. */
/* the kit painted this band as a saturated product slab with WHITE text; giving it a
   white background alone made every label invisible. Surface AND ink move together:
   a light family tint, family ink, and the count badge back to a readable chip. */
.sa-v5 .z-pband{background:var(--sa-v5-fam-sf,var(--sa-v5-surface));
  color:var(--sa-v5-fam-tx,var(--sa-v5-ink));
  border:1px solid var(--sa-v5-fam-bd,var(--sa-v5-line));
  border-radius:var(--sa-v5-r-row);padding:9px 13px;margin:10px 0 10px;
  box-shadow:0 6px 10px -10px rgba(18,24,40,.30)}
.sa-v5 .z-pband .z-pn{background:rgba(255,255,255,.72);color:var(--sa-v5-fam-tx,var(--sa-v5-ink))}
.sa-v5 .z-pband b{color:var(--sa-v5-fam-tx,var(--sa-v5-ink))}
.sa-v5 .z-pband .z-meta{color:var(--sa-v5-fam-tx,var(--sa-v5-ink2));opacity:.9}
.sa-v5 .z-pband .z-clar{color:var(--sa-v5-cd-tx);background:var(--sa-v5-cd-sf);
  border:1px solid var(--sa-v5-cd-bd);border-radius:100px;padding:2px 9px;font-size:11px}
/* the band carries the family of the section it heads */
.sa-v5 .z-pband.z-ip{--sa-v5-fam-sf:var(--sa-v5-ip-sf);--sa-v5-fam-bd:var(--sa-v5-ip-bd);--sa-v5-fam-tx:var(--sa-v5-ip-tx)}
.sa-v5 .z-pband.z-np{--sa-v5-fam-sf:var(--sa-v5-np-sf);--sa-v5-fam-bd:var(--sa-v5-np-bd);--sa-v5-fam-tx:var(--sa-v5-np-tx)}
.sa-v5 .z-pband.z-cd{--sa-v5-fam-sf:var(--sa-v5-cd-sf);--sa-v5-fam-bd:var(--sa-v5-cd-bd);--sa-v5-fam-tx:var(--sa-v5-cd-tx)}
.sa-v5 .z-rows > .sa-v5-dr:first-child{scroll-margin-top:56px}
.sa-v5 .z-band{scroll-margin-top:56px}

/* ── §4.2 · the stage rail reads as a sequence, and can be used ───────────
   A two-column grid left the reading order ambiguous for eight steps. One column,
   numbered, with a connector: the order is unmistakable and nothing is clipped. */
.sa-v5 .sa-flow{display:flex;flex-direction:column;gap:0;overflow:visible;padding:2px 0 0}
.sa-v5 .sa-step{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);
  align-items:center;gap:10px;min-width:0;text-align:left;padding:4px 6px;
  border-radius:9px;border:1px solid transparent;background:none;width:100%}
.sa-v5 .sa-step::after{display:none}
.sa-v5 .sa-step:not(:last-child)::before{content:"";position:absolute;left:11px;top:26px;
  bottom:-4px;width:2px;border-radius:2px;background:var(--sa-v5-line2)}
.sa-v5 .sa-step__c{width:22px;height:22px;font-size:10.5px;flex:none;z-index:1}
.sa-v5 .sa-step__l{text-align:left;max-width:none;font-size:11.5px;line-height:1.3;min-width:0}
.sa-v5 .sa-step__unconf{display:block;font-size:9.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sa-v5-ink4)}
/* pickable only where the capability exists (§4.1) */
.sa-v5 .sa-step--pick{cursor:pointer;transition:.15s}
.sa-v5 .sa-step--pick:hover{background:var(--sa-v5-fam-sf,var(--sa-v5-field));
  border-color:var(--sa-v5-fam-bd,var(--sa-v5-line2))}
.sa-v5 .sa-step--pick:focus-visible{outline:3px solid var(--sa-v5-act2);outline-offset:1px}
.sa-v5 .sa-step--pick.is-armed{background:var(--sa-v5-ip-sf);border-color:var(--sa-v5-ip-bd)}
.sa-v5 .sa-step--pick.is-armed .sa-step__l{color:var(--sa-v5-ip-tx);font-weight:700}
/* the explicit confirmation — a single click never moves a stage */
.sa-v5 .sa-v5-stageconf{margin-top:10px;padding:11px 12px;border-radius:var(--sa-v5-r-row);
  background:var(--sa-v5-ip-sf);border:1px solid var(--sa-v5-ip-bd)}
.sa-v5 .sa-v5-stageconf__q{margin:0 0 9px;font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ip-dp)}
.sa-v5 .sa-v5-stageconf__a{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.sa-v5 .sa-v5-stageunset{border-color:var(--sa-v5-cd-bd);background:var(--sa-v5-cd-sf);
  color:var(--sa-v5-cd-tx)}

/* ── §5.1 · the warm canvas reaches Dosare and Venituri too ───────────────
   Those two screens do not carry `.sa-shell`, so the canvas they sit on is painted by
   `#content`. Scoped with `:has()` so no other screen is touched. */
#content:has(> .sa-v5),#content:has(> * > .sa-v5){background:#FAF7F2}
.sa-v5.z-root{background:transparent;min-height:100%}

/* ── §5.3 · one premium system, three screens ─────────────────────────────
   Same radius family, same elevation, same hairline, same focus ring. */
.sa-v5 .z-card,.sa-v5 .sa-v5-k,.sa-v5 .sa-v5-dr,.sa-v5 .sa-panel,.sa-v5 .sa-hero,
.sa-v5 .sa-v5-hero,.sa-v5 .sa-v5-cockpit{border-color:var(--sa-v5-line)}
.sa-v5 .sa-v5-hero{border-radius:var(--sa-v5-r-hero);background:linear-gradient(180deg,#fff,var(--sa-v5-surface2))}
.sa-v5 :focus-visible{outline:3px solid var(--sa-v5-act2);outline-offset:2px}

/* ── §6.1 · family recognition without flooding ───────────────────────────
   One strong accent (the rail + the avatar), one soft tint (the identity band and the
   context strip), and a neutral readable content surface between them. */
.sa-v5 .sa-v5-card{background:linear-gradient(180deg,var(--sa-v5-fam-sf) 0,#fff 54px)}
.sa-v5 .v1-prod{background:var(--sa-v5-fam-sf);border-color:var(--sa-v5-fam-bd)}
.sa-v5 .v1-bank{color:var(--sa-v5-ink)}
.sa-v5 .v1-fig{color:var(--sa-v5-ink)}
.sa-v5 .v1-tag{background:rgba(255,255,255,.78);color:var(--sa-v5-fam-tx);
  border:1px solid var(--sa-v5-fam-bd)}
.sa-v5 .v1-rb{color:var(--sa-v5-ink2);border-color:var(--sa-v5-line2)}
.sa-v5 .v1-rb:hover{background:var(--sa-v5-fam-sf);border-color:var(--sa-v5-fam-bd);
  color:var(--sa-v5-fam-tx)}

/* ── §6.2 · density ──────────────────────────────────────────────────────── */
.sa-v5 .sa-v5-card{padding:11px 13px}
.sa-v5 .sa-v5-card__head{gap:10px}
.sa-v5 .sa-v5-av{width:34px;height:34px;border-radius:11px}
.sa-v5 .sa-v5-card__foot{margin-top:9px;gap:7px}
.sa-v5 .sa-v5-why{margin-top:7px;gap:7px}
.sa-v5 .v1-prod{margin-top:8px;padding:8px 11px}

/* ── §6.3 · what the group header now carries ─────────────────────────────── */
.sa-v5 .sa-grouphead__k{margin-left:9px;padding:2px 8px;border-radius:100px;
  font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  background:var(--sa-v5-field);color:var(--sa-v5-ink2);vertical-align:middle}
.sa-v5 .sa-grouphead__w{margin-left:8px;font-size:var(--sa-v5-fs-meta);font-weight:500;
  color:var(--sa-v5-ink3)}

/* ── §6.6 · cross-sell: readable, and clearly secondary ──────────────────── */
.sa-v5 .sa-outcome{display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:9px 11px;border-radius:var(--sa-v5-r-row);border:1px solid var(--sa-v5-line);
  background:#fff;cursor:pointer;transition:.16s;margin-bottom:6px}
.sa-v5 .sa-outcome:hover{border-color:var(--sa-v5-line2);background:var(--sa-v5-surface2)}
.sa-v5 .sa-outcome__tx{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.sa-v5 .sa-outcome__t{display:block;font-size:var(--sa-v5-fs-body);font-weight:700;
  color:var(--sa-v5-ink)}
.sa-v5 .sa-outcome__s{display:block;font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);
  line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sa-v5 .sa-outcome__next{flex:none;height:28px;padding:0 12px;border-radius:100px;
  display:inline-flex;align-items:center;font-size:var(--sa-v5-fs-meta);font-weight:700;
  background:var(--sa-v5-field);color:var(--sa-v5-ink2);border:1px solid var(--sa-v5-line2)}
.sa-v5 .sa-outcome:hover .sa-outcome__next{background:#fff;border-color:var(--sa-v5-ink4);
  color:var(--sa-v5-ink)}

/* ── §6.7 · the due block, stated not decorated ──────────────────────────── */
.sa-v5 .sa-commit__due{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:9px}

/* ── §7.1 · product context continues into the rows ──────────────────────── */
.sa-v5 .sa-v5-dr{background:linear-gradient(90deg,var(--sa-v5-fam-sf,#fff) 0,#fff 220px)}
.sa-v5 .sa-v5-dr--ip{--sa-v5-fam-sf:var(--sa-v5-ip-sf);--sa-v5-fam-bd:var(--sa-v5-ip-bd);
  --sa-v5-fam-400:var(--sa-v5-ip-400);--sa-v5-fam:var(--sa-v5-ip);--sa-v5-fam-tx:var(--sa-v5-ip-tx)}
.sa-v5 .sa-v5-dr--np{--sa-v5-fam-sf:var(--sa-v5-np-sf);--sa-v5-fam-bd:var(--sa-v5-np-bd);
  --sa-v5-fam-400:var(--sa-v5-np-400);--sa-v5-fam:var(--sa-v5-np);--sa-v5-fam-tx:var(--sa-v5-np-tx)}
.sa-v5 .sa-v5-dr--cd{--sa-v5-fam-sf:var(--sa-v5-cd-sf);--sa-v5-fam-bd:var(--sa-v5-cd-bd);
  --sa-v5-fam-400:var(--sa-v5-cd-400);--sa-v5-fam:var(--sa-v5-cd);--sa-v5-fam-tx:var(--sa-v5-cd-tx)}
.sa-v5 .sa-v5-dr__a{background:linear-gradient(150deg,var(--sa-v5-fam-400,var(--sa-v5-ink3)),var(--sa-v5-fam,var(--sa-v5-ink2)))}
.sa-v5 .sa-v5-dr:hover{border-color:var(--sa-v5-fam-bd,var(--sa-v5-line2))}
.sa-v5 .z-pband{border-left:4px solid var(--sa-v5-line2)}
.sa-v5 .z-band--activ .z-pband{border-left-color:var(--sa-v5-ip-400)}
.sa-v5 .z-band--tras .z-pband{border-left-color:var(--sa-v5-gr-400)}
/* §7.2 · the two sections must never read as duplicate data */
.sa-v5 .z-band{border-radius:var(--sa-v5-r-card);padding:2px 0 6px;margin-bottom:14px}
.sa-v5 .z-band--tras .z-band-h{background:var(--sa-v5-gr-sf);border-color:var(--sa-v5-gr-bd)}
.sa-v5 .z-band--activ .z-band-h{background:var(--sa-v5-ip-sf);border-color:var(--sa-v5-ip-bd)}
.sa-v5 .z-band-h{border:1px solid var(--sa-v5-line);border-radius:var(--sa-v5-r-row);
  padding:9px 13px;margin-bottom:8px}
.sa-v5 .z-band--tras .sa-v5-dr{background:linear-gradient(90deg,var(--sa-v5-gr-sf) 0,#fff 220px)}

/* ── §7.3 · a zero family costs one line ─────────────────────────────────── */
.sa-v5 .z-empty--slim{display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:7px 13px;border:1px dashed var(--sa-v5-line2);border-radius:var(--sa-v5-r-row);
  background:transparent;margin:0 0 8px}
.sa-v5 .z-add--slim{height:28px;padding:0 11px;border-radius:100px;
  font-size:var(--sa-v5-fs-meta);font-weight:700;border:1px solid var(--sa-v5-line2);
  background:#fff;color:var(--sa-v5-ink2);cursor:pointer}
.sa-v5 .z-add--slim:hover{border-color:var(--sa-v5-ink4);color:var(--sa-v5-ink)}

/* ── §7.7 · one clear month control ──────────────────────────────────────── */
.sa-v5 .t6-msel{display:inline-flex;align-items:center;gap:8px}
.sa-v5 .t6-msel select{min-width:168px;height:32px;border-radius:var(--sa-v5-r-pill);
  border:1px solid var(--sa-v5-line2);background:#fff;padding:0 10px;
  font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ink)}
.sa-v5 .t6-cur{font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;padding:3px 9px;border-radius:100px;
  background:var(--sa-v5-ip-sf);color:var(--sa-v5-ip-tx);border:1px solid var(--sa-v5-ip-bd)}
.sa-v5 .t6-back{height:28px;padding:0 11px;border-radius:100px;font-size:var(--sa-v5-fs-meta);
  font-weight:700;border:1px solid var(--sa-v5-line2);background:#fff;color:var(--sa-v5-ink2);cursor:pointer}
.sa-v5 .z-archive-toggle{display:inline-flex;align-items:center;gap:7px;
  font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3)}

/* ── §7.4 · the data-quality card is attention, not alarm ────────────────── */
/* §17 — „De rezolvat” nu are nicio legătură cu produsul Card de credit; violetul
   este identitatea Card (ratificată) și nu poate fi folosit ca accent generic. */
.sa-v5 .sa-v5-k--todo::before{background:linear-gradient(180deg,var(--sa-v5-ink3),var(--sa-v5-ink2))}
.sa-v5 .sa-v5-k__val small{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);
  margin-left:6px;font-weight:700}

/* ── §8 · VENITURI — colour past the hero, truth classes visible ─────────── */
.sa-v5 .sa-v5-fx{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink2);
  padding:5px 11px;border-radius:100px;background:var(--sa-v5-field);
  border:1px solid var(--sa-v5-line2)}
.sa-v5 .sa-v5-fx b{color:var(--sa-v5-ink);font-variant-numeric:tabular-nums}
.sa-v5 .sa-v5-vcom{background:linear-gradient(150deg,var(--sa-v5-gr-sf),#fff 62%);
  border:1px solid var(--sa-v5-gr-bd)}
.sa-v5 .sa-v5-vpipe{background:linear-gradient(150deg,var(--sa-v5-ip-sf),#fff 62%);
  border:1px solid var(--sa-v5-ip-bd)}
.sa-v5 .sa-v5-vgap{background:linear-gradient(150deg,var(--sa-v5-cd-sf),#fff 62%);
  border:1px solid var(--sa-v5-cd-bd)}
/* §8.3 — the estimate cannot be mistaken for confirmed money */
.sa-v5 .sa-v5-est{margin-top:10px;padding:8px 10px;border-radius:10px;
  background:var(--sa-v5-ip-sf);
  border:1px dashed var(--sa-v5-ip-bd);display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.sa-v5 .sa-v5-est__k{font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.10em;
  text-transform:uppercase;color:var(--sa-v5-ip-tx)}
.sa-v5 .sa-v5-est__v{font-size:var(--sa-v5-fs-strong);font-weight:800;color:var(--sa-v5-ip-dp);
  font-variant-numeric:tabular-nums}
.sa-v5 .sa-v5-est__n{font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3);flex:1 1 100%}
/* §8.1 — the realised list shows its truth classes */
.sa-v5 .sa-v5-trow{display:flex;align-items:center;gap:12px;padding:9px 6px;
  border-bottom:1px solid var(--sa-v5-line)}
.sa-v5 .sa-v5-trow:last-child{border-bottom:0}
.sa-v5 .sa-v5-trow.is-firm{box-shadow:inset 3px 0 0 var(--sa-v5-gr-400)}
.sa-v5 .sa-v5-trow.is-band,.sa-v5 .sa-v5-trow.is-pending{box-shadow:inset 3px 0 0 var(--sa-v5-cd-400)}
.sa-v5 .sa-v5-trow__v{text-align:right;flex:none}
/* §8.5 — explanations, not controls */
.sa-v5 .sa-v5-reasons .sa-v5-kv{cursor:default}
.sa-v5 .sa-v5-reasons dt{color:var(--sa-v5-ink2)}
.sa-v5 .sa-v5-reasons dd{color:var(--sa-v5-ink3);font-weight:700}
/* §8.7 — concentration as a ranking */
.sa-v5 .sa-v5-bnk{display:grid;grid-template-columns:20px minmax(96px,1.1fr) 2.4fr auto;
  align-items:center;gap:10px;padding:5px 0}
.sa-v5 .sa-v5-bnk__i{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;
  font-size:var(--sa-v5-fs-micro);font-weight:800;background:var(--sa-v5-field);color:var(--sa-v5-ink3)}
.sa-v5 .sa-v5-bnk__n{font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ink2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sa-v5 .sa-v5-bnk__bar{height:9px;border-radius:100px;background:var(--sa-v5-field);overflow:hidden}
.sa-v5 .sa-v5-bnk__fill{height:100%;border-radius:100px;background:var(--sa-v5-ip)}
.sa-v5 .sa-v5-bnk--r1 .sa-v5-bnk__fill{background:linear-gradient(90deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.sa-v5 .sa-v5-bnk--r1 .sa-v5-bnk__i{background:var(--sa-v5-ip);color:#fff}
.sa-v5 .sa-v5-bnk--r2 .sa-v5-bnk__fill{background:var(--sa-v5-ip-400)}
.sa-v5 .sa-v5-bnk--r2 .sa-v5-bnk__i{background:var(--sa-v5-ip-pr);color:var(--sa-v5-ip-tx)}
.sa-v5 .sa-v5-bnk--r3 .sa-v5-bnk__fill{background:var(--sa-v5-ip-bd)}
.sa-v5 .sa-v5-bnk--r4 .sa-v5-bnk__fill{background:var(--sa-v5-line2)}
.sa-v5 .sa-v5-bnk__v{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink2);white-space:nowrap;
  font-variant-numeric:tabular-nums;text-align:right}
.sa-v5 .sa-v5-bnk__v span{display:block;font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink4)}
/* §8.9 — the engine rules live behind a disclosure */
.sa-v5 .sa-v5-help{margin-top:18px;border-top:1px solid var(--sa-v5-line);padding-top:10px}
.sa-v5 .sa-v5-help > summary{cursor:pointer;list-style:none;font-size:var(--sa-v5-fs-meta);
  font-weight:700;color:var(--sa-v5-ink3);padding:4px 0}
.sa-v5 .sa-v5-help > summary::-webkit-details-marker{display:none}
.sa-v5 .sa-v5-help > summary::before{content:"+ ";font-weight:800}
.sa-v5 .sa-v5-help[open] > summary::before{content:"− "}
.sa-v5 .sa-v5-help ul{margin:6px 0 0;padding-left:18px}
.sa-v5 .sa-v5-help li{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);line-height:1.55}

/* ── §7.9 · a tooltip may not outlive its hover ──────────────────────────── */
.sa-v5 [title]{position:relative}
.sa-v5 .zl-prog{cursor:default}

@media (max-width:1080px){
  .sa-v5 .sa-v5-bnk{grid-template-columns:20px minmax(80px,1fr) 1.6fr auto}
}
@media (max-width:860px){
  .sa-v5 .sa-v5-bnk{grid-template-columns:20px 1fr auto;row-gap:2px}
  .sa-v5 .sa-v5-bnk__bar{grid-column:1/-1}
}

/* §6.5 — the cockpit overflow reads as a control, not a card */
.sa-v5 .sa-v5-more--bar{display:inline-block}
.sa-v5 .sa-v5-more--bar .sa-v5-more__s{width:auto;gap:7px;padding:0 12px;height:var(--sa-h-btn,34px)}
.sa-v5 .sa-v5-more--bar .sa-v5-more__s span{font-size:var(--sa-v5-fs-body);font-weight:700}
.sa-v5 .sa-v5-more--bar .sa-v5-more__m{min-width:212px}

/* §4.2 — the stage marker is NOT product-coloured. The kit derived it from the
   family token, so the same stage read cobalt on a mortgage and orange on an NP
   case. One stable marker across products; green stays reserved for a demonstrated
   Tras. */
.sa-v5 .sa-step[data-state="now"] .sa-step__c{background:var(--sa-v5-act);
  border-color:var(--sa-v5-act);color:#fff}
.sa-v5 .sa-step[data-state="done"] .sa-step__c{background:var(--sa-v5-gr);
  border-color:var(--sa-v5-gr);color:#fff}
.sa-v5 .sa-step[data-state="now"] .sa-step__l{color:var(--sa-v5-ink);font-weight:700}

/* §7.4 — the identity marker uses the SAME words on every surface */
.sa-v5 .p0a-unrec{background:var(--sa-v5-cd-sf);color:var(--sa-v5-cd-tx);
  border:1px solid var(--sa-v5-cd-bd);border-radius:100px;padding:2px 9px;
  font-size:var(--sa-v5-fs-micro);font-weight:700}

/* the identity badge hugs its text instead of stretching the identity column */
.sa-v5 .sa-v5-dr__id > .p0a-unrec{align-self:flex-start;display:inline-block}


/* ══════════════════════════════════════════════════════════════════════════
   PREMIUM LIFT · one brand system, confident hierarchy, real depth
   Plasma/violet is NOT introduced anywhere by this layer.
   ══════════════════════════════════════════════════════════════════════════ */

.sa-v5{
  /* the generic primary action and the selected app state are cobalt (§1) */
  --sa-v5-brand:#1D4ED8; --sa-v5-brand-2:#2563EB; --sa-v5-brand-dp:#12285C;
  --sa-v5-brand-sf:#EEF4FF; --sa-v5-brand-bd:#BFD5FD;
  --sa-v5-mint:#059669; --sa-v5-mint-2:#34D399; --sa-v5-mint-sf:#ECFDF5; --sa-v5-mint-bd:#A7F3D0;
  --sa-v5-wa:#25D366; --sa-v5-wa-dp:#128C7E;
  /* premium depth: elevation carries the card, borders only whisper (§12.11) */
  --sa-v5-e1:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
  --sa-v5-e2:0 2px 4px -1px rgba(16,24,40,.05),0 8px 16px -6px rgba(16,24,40,.10);
  --sa-v5-e3:0 4px 8px -2px rgba(16,24,40,.06),0 16px 32px -12px rgba(18,40,92,.20);
  --sa-v5-hair:#EDE8DF;
  --sa-v5-ease:cubic-bezier(.2,.8,.25,1);
}

/* ── §2 · one interaction language ───────────────────────────────────────── */
.sa-v5 button,.sa-v5 a[href],.sa-v5 summary,.sa-v5 [role="button"]{cursor:pointer}
.sa-v5 .sa-v5-card,.sa-v5 .sa-v5-dr,.sa-v5 .sa-v5-kpi,.sa-v5 .sa-v5-kpi-a,
.sa-v5 .sa-outcome,.sa-v5 .ven-ir,.sa-v5 .ven-reason,.sa-v5 .sa-v5-bnk,
.sa-v5 .sa-v5-trow,.sa-v5 .ven-clar{
  transition:box-shadow .15s var(--sa-v5-ease),transform .15s var(--sa-v5-ease),
             border-color .15s var(--sa-v5-ease),background-color .15s var(--sa-v5-ease)}
.sa-v5 .sa-v5-kpi:focus-visible,.sa-v5 .sa-v5-kpi-a:focus-visible,
.sa-v5 .ven-ir:focus-visible,.sa-v5 .ven-reason:focus-visible,
.sa-v5 .sa-v5-bnk:focus-visible,.sa-v5 .sa-v5-trow:focus-visible,
.sa-v5 .ven-clar:focus-visible{outline:3px solid var(--sa-v5-brand-2);outline-offset:2px}
.sa-v5 .sa-v5-go{margin-left:auto;color:var(--sa-v5-ink4);font-size:16px;line-height:1;
  transition:transform .15s var(--sa-v5-ease),color .15s var(--sa-v5-ease)}
.sa-v5 .sa-v5-kpi-a:hover .sa-v5-go,.sa-v5 .ven-ir:hover .sa-v5-go,
.sa-v5 .ven-reason:hover .sa-v5-go,.sa-v5 .sa-v5-bnk:hover .sa-v5-go,
.sa-v5 .sa-v5-trow:hover .sa-v5-go{transform:translateX(3px);color:var(--sa-v5-brand)}

/* ── §3 · P0 · nothing inside the cockpit may exceed its width ───────────── */
.sa-v5 .sa-v5-cockpit,.sa-v5 .sa-v5-cockpit .sa-panel__scroll{overflow-x:hidden}
.sa-v5 .sa-v5-cockpit .sa-panel__body,.sa-v5 .sa-v5-cockpit .sa-section,
.sa-v5 .sa-v5-cockpit .sa-tint,.sa-v5 .sa-v5-cockpit .sa-rows,
.sa-v5 .sa-v5-cockpit .sa-outcomes,.sa-v5 .sa-v5-cockpit .sa-actionbar,
.sa-v5 .sa-v5-cockpit .sa-nextstep,.sa-v5 .sa-v5-cockpit .sa-deal,
.sa-v5 .sa-v5-cockpit .sa-commit,.sa-v5 .sa-v5-cockpit .sa-panel__id,
.sa-v5 .sa-v5-cockpit .sa-flow,.sa-v5 .sa-v5-cockpit .sa-step{min-width:0;max-width:100%}
.sa-v5 .sa-v5-cockpit .sa-actionbar{display:flex;flex-wrap:wrap;gap:7px}
.sa-v5 .sa-v5-cockpit .sa-btn,.sa-v5 .sa-v5-cockpit .sa-outcome__next{max-width:100%}
.sa-v5 .sa-v5-cockpit .sa-rows__i{display:flex;gap:10px;align-items:baseline;min-width:0}
.sa-v5 .sa-v5-cockpit .sa-rows__i > b,.sa-v5 .sa-v5-cockpit .sa-rows__i > span{min-width:0}
.sa-v5 .sa-v5-cockpit .sa-nextstep__k,.sa-v5 .sa-v5-cockpit .sa-outcome__t,
.sa-v5 .sa-v5-cockpit .sa-outcome__s,.sa-v5 .sa-v5-cockpit .sa-rows__i b,
.sa-v5 .sa-v5-cockpit .sa-panel__name,.sa-v5 .sa-v5-cockpit .sa-tint,
.sa-v5 .sa-v5-cockpit .sa-note{overflow-wrap:anywhere;word-break:break-word}

/* ── §4.1 · hero energy without extra height ─────────────────────────────── */
.sa-v5 .sa-hero{box-shadow:var(--sa-v5-e2);border-color:var(--sa-v5-hair);overflow:hidden}
.sa-v5 .sa-hero__greet{background:linear-gradient(122deg,var(--sa-v5-brand-sf) 0%,#FFF9F0 46%,#fff 100%)}
.sa-v5 .sa-t-hero{color:var(--sa-v5-brand-dp);letter-spacing:-.032em;font-weight:800}
.sa-v5 .sa-hero__date{color:var(--sa-v5-brand);font-weight:800}
.sa-v5 .sa-quote{border-left:2px solid var(--sa-v5-brand-bd);padding-left:12px}
.sa-v5 .sa-t-quote{color:var(--sa-v5-ink2)}
.sa-v5 .sa-quote__mark{color:var(--sa-v5-brand-bd)}
.sa-v5 .sa-hero__sum{background:#fff;border-top:1px solid var(--sa-v5-hair);
  border-bottom:1px solid var(--sa-v5-hair)}
.sa-v5 .sa-hero__sum-tot{font-size:19px;color:var(--sa-v5-brand-dp);letter-spacing:-.03em}
.sa-v5 .sa-hero__sum-v{color:var(--sa-v5-ink)}
/* selected scope reads as the app's selected state */
.sa-v5 .sa-seg{background:var(--sa-v5-brand-sf);border-color:var(--sa-v5-brand-bd)}
.sa-v5 .sa-seg button.is-on,.sa-v5 .sa-seg button[aria-pressed=true]{
  background:var(--sa-v5-brand);color:#fff;box-shadow:var(--sa-v5-e1)}

/* ── §4.2/§4.3 · product tiles: alive, volume-first, actionable ──────────── */
.sa-v5 .sa-v5-kpiband{background:#fff;border-top:1px solid var(--sa-v5-hair)}
.sa-v5 .sa-v5-kpirow{gap:10px}
.sa-v5 .sa-v5-kpi{grid-template-columns:auto minmax(0,1fr);grid-auto-rows:min-content;
  row-gap:1px;column-gap:10px;padding:11px 13px;border:1px solid var(--sa-v5-line);
  background:#fff;box-shadow:var(--sa-v5-e1);align-items:start}
.sa-v5 .sa-v5-kpi--ip{--sa-v5-fam-sf:var(--sa-v5-brand-sf);--sa-v5-fam-bd:var(--sa-v5-brand-bd);
  --sa-v5-fam-tx:var(--sa-v5-brand-dp);--sa-v5-fam:var(--sa-v5-brand)}
.sa-v5 .sa-v5-kpi--np{--sa-v5-fam-sf:var(--sa-v5-np-sf);--sa-v5-fam-bd:var(--sa-v5-np-bd);
  --sa-v5-fam-tx:var(--sa-v5-np-tx);--sa-v5-fam:var(--sa-v5-np)}
.sa-v5 .sa-v5-kpi--cd{--sa-v5-fam-sf:var(--sa-v5-cd-sf);--sa-v5-fam-bd:var(--sa-v5-cd-bd);
  --sa-v5-fam-tx:var(--sa-v5-cd-tx);--sa-v5-fam:var(--sa-v5-cd)}
.sa-v5 .sa-v5-kpi{border-color:var(--sa-v5-fam-bd)}
.sa-v5 .sa-v5-kpi:hover{box-shadow:var(--sa-v5-e2);transform:translateY(-1px)}
.sa-v5 .sa-v5-kpi[aria-pressed=true]{border-color:var(--sa-v5-fam);
  box-shadow:var(--sa-v5-e2),inset 0 0 0 1px var(--sa-v5-fam)}
.sa-v5 .sa-v5-kpi__ic{grid-row:1/span 3;width:32px;height:32px;border-radius:10px;
  display:grid;place-items:center;background:var(--sa-v5-fam);color:#fff;box-shadow:var(--sa-v5-e1)}
.sa-v5 .sa-v5-kpi__ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.sa-v5 .sa-v5-kpi__n{grid-row:1;grid-column:2;font-size:var(--sa-v5-fs-meta);font-weight:800;
  letter-spacing:.02em;color:var(--sa-v5-fam-tx);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
/* §4.2/§12.10 — volume is the anchor number */
.sa-v5 .sa-v5-kpi__v{grid-row:2;grid-column:2;text-align:left;font-size:21px;font-weight:800;
  letter-spacing:-.03em;color:var(--sa-v5-ink);line-height:1.1;font-variant-numeric:tabular-nums}
.sa-v5 .sa-v5-kpi__v small{font-size:10px;font-weight:700;letter-spacing:.10em;
  color:var(--sa-v5-ink3);margin-left:5px}
.sa-v5 .sa-v5-kpi__v.is-zero{font-size:15px;color:var(--sa-v5-ink4)}
.sa-v5 .sa-v5-kpi__c{grid-row:3;grid-column:2;text-align:left;font-size:var(--sa-v5-fs-meta);
  color:var(--sa-v5-ink3)}
.sa-v5 .sa-v5-kpi__x{grid-row:4;grid-column:2;text-align:left;font-size:var(--sa-v5-fs-micro);
  color:var(--sa-v5-fam-tx);opacity:.85}

/* ── §4.4 · filters ─────────────────────────────────────────────────────── */
.sa-v5 .sa-chip{background:#fff;border-color:var(--sa-v5-line2);box-shadow:var(--sa-v5-e1);
  transition:.15s var(--sa-v5-ease)}
.sa-v5 .sa-chip:hover{border-color:var(--sa-v5-brand-bd);color:var(--sa-v5-brand-dp)}
.sa-v5 .sa-chip[aria-pressed=true]{background:var(--sa-v5-brand);border-color:var(--sa-v5-brand);
  color:#fff;box-shadow:var(--sa-v5-e2)}
.sa-v5 .sa-chip[aria-pressed=true] .sa-chip__n{color:rgba(255,255,255,.85)}
.sa-v5 .sa-chip.sa-f-amb[aria-pressed=true]{background:var(--sa-v5-cd);border-color:var(--sa-v5-cd)}

/* ── §4.5/§12.11 · cards — depth, not borders ───────────────────────────── */
.sa-v5 .sa-v5-card{box-shadow:var(--sa-v5-e1);border-color:var(--sa-v5-hair)}
.sa-v5 .sa-v5-card:hover{box-shadow:var(--sa-v5-e2);transform:translateY(-1px);
  border-color:var(--sa-v5-fam-bd)}
.sa-v5 .sa-v5-card.is-sel{border-color:var(--sa-v5-fam);box-shadow:var(--sa-v5-e3)}
.sa-v5 .sa-v5-name{font-size:13.5px;letter-spacing:-.012em}
.sa-v5 .v1-fig{font-size:19px;font-weight:800;letter-spacing:-.028em}
.sa-v5 .v1-prod{box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}

/* ── §4.6 · the primary CTA is the brand, on every product ──────────────── */
.sa-v5 .v1-primary,.sa-v5 .sa-btn--solid,.sa-v5 .zw-b1{
  background:linear-gradient(180deg,var(--sa-v5-brand-2),var(--sa-v5-brand));
  border:1px solid var(--sa-v5-brand);color:#fff;
  box-shadow:0 1px 2px rgba(18,40,92,.20),inset 0 1px 0 rgba(255,255,255,.18)}
.sa-v5 .v1-primary:hover,.sa-v5 .sa-btn--solid:hover,.sa-v5 .zw-b1:hover{
  background:linear-gradient(180deg,var(--sa-v5-brand),var(--sa-v5-brand-dp));
  box-shadow:var(--sa-v5-e2);color:#fff}
.sa-v5 .v1-primary:focus-visible,.sa-v5 .sa-btn--solid:focus-visible{
  outline:3px solid var(--sa-v5-brand-2);outline-offset:2px}

/* ── §4.7 · contact channels are distinct and clean ─────────────────────── */
.sa-v5 .v1-rb,.sa-v5 .sa-btn--ghost{background:#fff;border:1px solid var(--sa-v5-line2);
  color:var(--sa-v5-ink2);box-shadow:var(--sa-v5-e1)}
.sa-v5 .v1-rb:hover,.sa-v5 .sa-btn--ghost:hover{border-color:var(--sa-v5-brand-bd);
  color:var(--sa-v5-brand-dp);background:var(--sa-v5-brand-sf)}
.sa-v5 .v1-rb[onclick*="azWaOpen"],.sa-v5 .sa-btn[onclick*="azWaOpen"],
.sa-v5 .sa-v5-mi[onclick*="azWaOpen"]{
  color:var(--sa-v5-wa-dp);border-color:#9BE7BC;background:#F0FDF4}
.sa-v5 .v1-rb[onclick*="azWaOpen"]:hover,.sa-v5 .sa-btn[onclick*="azWaOpen"]:hover{
  background:#DCFCE7;border-color:var(--sa-v5-wa);color:var(--sa-v5-wa-dp)}
.sa-v5 .v1-rb[onclick*="azCall"],.sa-v5 .sa-btn[onclick*="azCall"]{
  color:var(--sa-v5-brand-dp);border-color:var(--sa-v5-brand-bd);background:var(--sa-v5-brand-sf)}

/* ── §4.8 · cockpit hierarchy ───────────────────────────────────────────── */
.sa-v5 .sa-v5-cockpit{box-shadow:var(--sa-v5-e2)}
.sa-v5 .sa-v5-cockpit > .sa-panel__id{
  background:linear-gradient(160deg,var(--sa-v5-fam-sf,#fff),#fff 78%)}
.sa-v5 .sa-v5-cockpit .sa-panel__name{font-size:17px;font-weight:800;letter-spacing:-.02em}
.sa-v5 .sa-v5-cockpit .sa-section__title{color:var(--sa-v5-ink3);letter-spacing:.10em}
.sa-v5 .sa-v5-cockpit .sa-tint{background:#fff;border-color:var(--sa-v5-hair);box-shadow:var(--sa-v5-e1)}
.sa-v5 .sa-v5-cockpit .sa-tint--icon{background:var(--sa-v5-fam-sf,var(--sa-v5-surface2));
  border-color:var(--sa-v5-fam-bd,var(--sa-v5-line))}
.sa-v5 .sa-v5-cockpit .sa-rows__i{border-bottom:1px solid var(--sa-v5-hair);padding:7px 0}

/* ── §4.9/§12.1 · stage rail semantics ──────────────────────────────────── */
.sa-v5 .sa-step__c{border:1.5px solid var(--sa-v5-line2);background:#fff;
  color:var(--sa-v5-ink3);font-weight:800}
.sa-v5 .sa-step[data-state="now"] .sa-step__c{background:var(--sa-v5-brand,#1D4ED8);
  border-color:var(--sa-v5-brand-dp);color:#fff;box-shadow:0 0 0 3px var(--sa-v5-brand-sf)}
.sa-v5 .sa-step[data-state="done"] .sa-step__c{background:var(--sa-v5-mint);
  border-color:var(--sa-v5-mint);color:#fff;box-shadow:0 0 0 3px var(--sa-v5-mint-sf)}
.sa-v5 .sa-step[data-state="done"] .sa-step__l{color:var(--sa-v5-mint);font-weight:700}
.sa-v5 .sa-step--pick.is-armed .sa-step__c{background:var(--sa-v5-brand);
  border-color:var(--sa-v5-brand);color:#fff}
.sa-v5 .sa-step__l{color:var(--sa-v5-ink2)}
.sa-v5 .sa-step:not([data-state]) .sa-step__l{color:var(--sa-v5-ink3)}
.sa-v5 .sa-v5-stageconf{box-shadow:var(--sa-v5-e2)}

/* ── §4.10 · cross-sell contained and readable ──────────────────────────── */
.sa-v5 .sa-outcome{box-shadow:var(--sa-v5-e1);align-items:flex-start;gap:10px}
.sa-v5 .sa-outcome:hover{box-shadow:var(--sa-v5-e2);border-color:var(--sa-v5-brand-bd)}
.sa-v5 .sa-outcome__s{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden}
.sa-v5 .sa-outcome__next{align-self:center;background:var(--sa-v5-brand-sf);
  border-color:var(--sa-v5-brand-bd);color:var(--sa-v5-brand-dp);white-space:nowrap}
.sa-v5 .sa-outcome:hover .sa-outcome__next{background:var(--sa-v5-brand);border-color:var(--sa-v5-brand);color:#fff}

/* ── §5 · DOSARE ────────────────────────────────────────────────────────── */
.sa-v5 .sa-v5-k{box-shadow:var(--sa-v5-e1);border-color:var(--sa-v5-hair);text-align:left;width:100%}
.sa-v5 .sa-v5-kpi-a:hover{box-shadow:var(--sa-v5-e2);transform:translateY(-1px)}
.sa-v5 .sa-v5-k__lab{display:flex;align-items:center;gap:8px}
.sa-v5 .sa-v5-k--ip{background:linear-gradient(150deg,var(--sa-v5-brand-sf),#fff 68%);
  border-color:var(--sa-v5-brand-bd)}
.sa-v5 .sa-v5-k--ip::before{background:linear-gradient(180deg,var(--sa-v5-brand-2),var(--sa-v5-brand))}
.sa-v5 .sa-v5-k--ip .sa-v5-k__val{color:var(--sa-v5-brand-dp)}
.sa-v5 .sa-v5-k--done{background:linear-gradient(150deg,var(--sa-v5-mint-sf),#fff 68%);
  border-color:var(--sa-v5-mint-bd)}
.sa-v5 .sa-v5-k--done::before{background:linear-gradient(180deg,var(--sa-v5-mint-2),var(--sa-v5-mint))}
.sa-v5 .sa-v5-k--done .sa-v5-k__val{color:#065F46}
.sa-v5 .sa-v5-k--todo{background:linear-gradient(150deg,var(--sa-v5-surface2),#fff 68%);
  border-color:var(--sa-v5-line)}
.sa-v5 .sa-v5-k--todo .sa-v5-k__val{color:var(--sa-v5-ink)}
.sa-v5 .sa-v5-k__val{font-size:26px;letter-spacing:-.032em}
/* §5.3/§5.4 — family and section boundaries you can see at a glance */
.sa-v5 .z-band{background:#fff;border:1px solid var(--sa-v5-hair);box-shadow:var(--sa-v5-e1);
  padding:12px 12px 8px;margin-bottom:18px}
.sa-v5 .z-band--activ{border-top:3px solid var(--sa-v5-brand)}
.sa-v5 .z-band--tras{border-top:3px solid var(--sa-v5-mint)}
.sa-v5 .z-band--arhiva{border-top:3px solid var(--sa-v5-line2)}
.sa-v5 .z-band--activ .z-band-h{background:linear-gradient(120deg,var(--sa-v5-brand-sf),#fff 70%);
  border-color:var(--sa-v5-brand-bd)}
.sa-v5 .z-band--tras .z-band-h{background:linear-gradient(120deg,var(--sa-v5-mint-sf),#fff 70%);
  border-color:var(--sa-v5-mint-bd)}
.sa-v5 .z-band-h h2{color:var(--sa-v5-ink)}
.sa-v5 .z-band--tras .z-band-h h2{color:#065F46}
.sa-v5 .z-band--activ .z-band-h h2{color:var(--sa-v5-brand-dp)}
.sa-v5 .z-pband{margin:14px 0 8px}
.sa-v5 .z-band > .z-pband:first-of-type{margin-top:4px}
/* §5.5 — rows carry their product without becoming slabs */
.sa-v5 .sa-v5-dr{box-shadow:var(--sa-v5-e1);border-color:var(--sa-v5-hair)}
.sa-v5 .sa-v5-dr:hover{box-shadow:var(--sa-v5-e2);transform:translateY(-1px);
  border-color:var(--sa-v5-fam-bd,var(--sa-v5-line2))}
.sa-v5 .z-band--tras .sa-v5-dr::before{background:linear-gradient(180deg,var(--sa-v5-mint-2),var(--sa-v5-mint))}
.sa-v5 .sa-v5-dr__amt{font-size:15px;letter-spacing:-.02em}
/* §5.6 — stage chips */
.sa-v5 .sa-v5-stage{background:var(--sa-v5-brand-sf);color:var(--sa-v5-brand-dp);
  border-color:var(--sa-v5-brand-bd)}
.sa-v5 .sa-v5-stage--done{background:var(--sa-v5-mint-sf);color:#065F46;border-color:var(--sa-v5-mint-bd)}
.sa-v5 .sa-v5-stage--unset{background:var(--sa-v5-cd-sf);color:var(--sa-v5-cd-tx);
  border-color:var(--sa-v5-cd-bd)}
/* §5.7 — the zero state is intentional, in amber, not brown */
.sa-v5 .z-empty--slim{background:var(--sa-v5-cd-sf);border:1px solid var(--sa-v5-cd-bd);
  border-style:solid;color:var(--sa-v5-cd-tx)}
.sa-v5 .z-empty--slim .z-small{color:var(--sa-v5-cd-tx)}
.sa-v5 .z-add--slim{background:#fff;border-color:var(--sa-v5-cd-bd);color:var(--sa-v5-cd-tx)}
.sa-v5 .z-add--slim:hover{background:var(--sa-v5-cd-pr);border-color:var(--sa-v5-cd);color:var(--sa-v5-cd-tx)}
.sa-v5 .sa-v5-fact__sc{margin-left:7px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  opacity:.7;font-weight:700}

/* ── §5.8/§12.7 · dossier editor ────────────────────────────────────────── */
.sa-v5 .zw-drawer,.zw-drawer{box-shadow:var(--sa-v5-e3)}
.zw-drawer .zw-dh{background:linear-gradient(140deg,#EEF4FF,#fff 72%);
  border-bottom:1px solid #EDE8DF}
.zw-drawer .zw-dt{color:#12285C;letter-spacing:-.02em}
.zw-drawer .zw-hev-d,.zw-drawer .zw-hev{background:#fff}
.zw-drawer .zw-in:focus{outline:3px solid #2563EB;outline-offset:1px;border-color:#1D4ED8}
.zw-fold > summary{color:#6D7688}

/* ── §6 · VENITURI ──────────────────────────────────────────────────────── */
.sa-v5 .sa-v5-vcom,.sa-v5 .sa-v5-vpipe,.sa-v5 .sa-v5-vgap{
  text-align:left;width:100%;box-shadow:var(--sa-v5-e1);border-radius:var(--sa-v5-r-card);
  padding:16px 18px;position:relative;overflow:hidden}
.sa-v5 .sa-v5-vcom{background:linear-gradient(150deg,var(--sa-v5-mint-sf),#fff 66%);
  border:1px solid var(--sa-v5-mint-bd)}
.sa-v5 .sa-v5-vcom .sa-v5-k__val{color:#065F46;font-size:30px;letter-spacing:-.034em}
.sa-v5 .sa-v5-vpipe{background:linear-gradient(150deg,var(--sa-v5-brand-sf),#fff 66%);
  border:1px solid var(--sa-v5-brand-bd)}
.sa-v5 .sa-v5-vpipe .sa-v5-k__val{color:var(--sa-v5-brand-dp)}
.sa-v5 .sa-v5-vgap{background:linear-gradient(150deg,var(--sa-v5-cd-sf),#fff 66%);
  border:1px solid var(--sa-v5-cd-bd)}
.sa-v5 .sa-v5-vgap .sa-v5-k__val{color:var(--sa-v5-cd-tx)}
.sa-v5 .sa-v5-kpi-a .sa-v5-k__lab{display:flex;align-items:center;gap:8px}
/* §6.3/§12.2 — commission leads, credit amount is context */
.sa-v5 .sa-v5-trow{display:grid;grid-template-columns:minmax(0,1.4fr) auto auto 14px;
  align-items:center;gap:14px;width:100%;text-align:left;padding:11px 12px;
  border:1px solid transparent;border-bottom:1px solid var(--sa-v5-hair);border-radius:10px}
.sa-v5 .sa-v5-trow:hover{background:var(--sa-v5-surface2);border-color:var(--sa-v5-brand-bd);
  box-shadow:var(--sa-v5-e1)}
.sa-v5 .sa-v5-trow__id{display:flex;flex-direction:column;gap:1px;min-width:0}
.sa-v5 .sa-v5-trow__com{font-size:17px;font-weight:800;letter-spacing:-.024em;white-space:nowrap;
  font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:flex-end}
.sa-v5 .sa-v5-trow__com small{font-size:9px;font-weight:700;letter-spacing:.10em;
  text-transform:uppercase;color:var(--sa-v5-ink4)}
.sa-v5 .sa-v5-trow.is-firm .sa-v5-trow__com{color:#065F46}
.sa-v5 .sa-v5-trow.is-band .sa-v5-trow__com,
.sa-v5 .sa-v5-trow.is-pending .sa-v5-trow__com{color:var(--sa-v5-cd-tx);font-size:13px}
.sa-v5 .sa-v5-trow__sum{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);white-space:nowrap;
  font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:flex-end}
.sa-v5 .sa-v5-trow__sum small{font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--sa-v5-ink4)}
.sa-v5 .sa-v5-trow.is-firm{box-shadow:inset 3px 0 0 var(--sa-v5-mint)}
.sa-v5 .sa-v5-trow.is-band,.sa-v5 .sa-v5-trow.is-pending{box-shadow:inset 3px 0 0 var(--sa-v5-cd-400)}
/* §6.4 — issue rows */
.sa-v5 .ven-reason{display:grid;grid-template-columns:26px minmax(0,1fr) auto 14px;align-items:center;
  gap:12px;width:100%;text-align:left;padding:11px 12px;background:#fff;border:1px solid transparent;
  border-bottom:1px solid var(--sa-v5-hair);border-radius:10px;cursor:pointer}
.sa-v5 .ven-reason:hover{background:var(--sa-v5-cd-sf);border-color:var(--sa-v5-cd-bd);
  box-shadow:var(--sa-v5-e1)}
.sa-v5 .ven-reason__ic{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;
  background:var(--sa-v5-cd-sf);color:var(--sa-v5-cd-tx);border:1px solid var(--sa-v5-cd-bd);
  font-weight:800;font-size:13px}
.sa-v5 .ven-reason__tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.sa-v5 .ven-reason__t{font-size:var(--sa-v5-fs-body);font-weight:700;color:var(--sa-v5-ink);
  overflow-wrap:anywhere}
.sa-v5 .ven-reason__s{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);overflow-wrap:anywhere}
.sa-v5 .ven-reason__n{font-size:var(--sa-v5-fs-meta);font-weight:700;color:var(--sa-v5-cd-tx);
  white-space:nowrap}
/* §6.5 — every bar keeps a brand tone; no grey, no brown */
.sa-v5 .sa-v5-bnk{width:100%;text-align:left;background:#fff;border:1px solid transparent;
  border-radius:10px;padding:6px 10px;cursor:pointer}
.sa-v5 .sa-v5-bnk:hover{background:var(--sa-v5-brand-sf);border-color:var(--sa-v5-brand-bd)}
.sa-v5 .sa-v5-bnk{grid-template-columns:22px minmax(88px,1.05fr) 2.3fr auto 14px}
.sa-v5 .sa-v5-bnk--r1 .sa-v5-bnk__fill{background:linear-gradient(90deg,var(--sa-v5-brand-2),var(--sa-v5-brand-dp))}
.sa-v5 .sa-v5-bnk--r2 .sa-v5-bnk__fill{background:var(--sa-v5-brand)}
.sa-v5 .sa-v5-bnk--r3 .sa-v5-bnk__fill{background:var(--sa-v5-brand-2)}
.sa-v5 .sa-v5-bnk--r4 .sa-v5-bnk__fill{background:#7BA9F7}
.sa-v5 .sa-v5-bnk--r4:nth-of-type(n+7) .sa-v5-bnk__fill{background:#A7C6FA}
.sa-v5 .sa-v5-bnk__bar{background:var(--sa-v5-brand-sf)}
.sa-v5 .sa-v5-bnk--r1 .sa-v5-bnk__i{background:var(--sa-v5-brand-dp);color:#fff}
.sa-v5 .sa-v5-bnk--r2 .sa-v5-bnk__i{background:var(--sa-v5-brand);color:#fff}
.sa-v5 .sa-v5-bnk--r3 .sa-v5-bnk__i{background:var(--sa-v5-brand-bd);color:var(--sa-v5-brand-dp)}
.sa-v5 .sa-v5-bnk--r4 .sa-v5-bnk__i{background:var(--sa-v5-brand-sf);color:var(--sa-v5-brand)}
/* §6.6 — clarification resolves */
.sa-v5 .ven-clar{display:flex;align-items:center;gap:14px;width:100%;text-align:left;
  padding:12px 14px;border-radius:var(--sa-v5-r-row);background:var(--sa-v5-cd-sf);
  border:1px solid var(--sa-v5-cd-bd);cursor:pointer}
.sa-v5 .ven-clar:hover{background:var(--sa-v5-cd-pr);box-shadow:var(--sa-v5-e1)}
.sa-v5 .ven-clar__t{font-size:var(--sa-v5-fs-body);color:var(--sa-v5-cd-tx);min-width:0}
.sa-v5 .ven-clar__a{margin-left:auto;display:inline-flex;align-items:center;gap:6px;
  font-weight:700;color:var(--sa-v5-cd-tx);white-space:nowrap}
/* §6.7 — a real accordion */
.sa-v5 .sa-v5-help > summary{display:flex;align-items:center;gap:9px;padding:9px 12px;
  border:1px solid var(--sa-v5-line);border-radius:var(--sa-v5-r-row);background:#fff;
  color:var(--sa-v5-ink2);box-shadow:var(--sa-v5-e1)}
.sa-v5 .sa-v5-help > summary::before{content:none}
.sa-v5 .sa-v5-help__c{display:inline-block;transition:transform .15s var(--sa-v5-ease);
  color:var(--sa-v5-brand);font-size:15px}
.sa-v5 .sa-v5-help[open] .sa-v5-help__c{transform:rotate(90deg)}
.sa-v5 .sa-v5-help > summary:hover{border-color:var(--sa-v5-brand-bd);color:var(--sa-v5-brand-dp)}
/* the inspector */
.ven-insp{display:flex;flex-direction:column;gap:6px}
.ven-ir{display:grid;grid-template-columns:minmax(0,1.3fr) auto auto 14px;align-items:center;
  gap:14px;width:100%;text-align:left;padding:11px 12px;border-radius:10px;background:#fff;
  border:1px solid #EDE8DF;cursor:pointer;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.ven-ir:hover{border-color:#BFD5FD;box-shadow:0 2px 4px -1px rgba(16,24,40,.05),0 8px 16px -6px rgba(16,24,40,.10)}
.ven-ir.is-firm{box-shadow:inset 3px 0 0 #059669,0 1px 2px rgba(16,24,40,.04)}
.ven-ir.is-band,.ven-ir.is-pending{box-shadow:inset 3px 0 0 #F5C453,0 1px 2px rgba(16,24,40,.04)}
.ven-ir__id{display:flex;flex-direction:column;gap:1px;min-width:0}
.ven-ir__v{display:flex;flex-direction:column;align-items:flex-end;min-width:0}
.ven-ir__com{font-size:14px;font-weight:800;letter-spacing:-.02em;white-space:nowrap;
  font-variant-numeric:tabular-nums}
.ven-ir.is-firm .ven-ir__com{color:#065F46}
.ven-ir.is-band .ven-ir__com,.ven-ir.is-pending .ven-ir__com{color:#96450A}
.ven-ir__sum{font-size:11.5px;color:#697285;white-space:nowrap;text-align:right;
  font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:flex-end}
.ven-ir__sum small{font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:#98A1B2}
.ven-ir__go{color:#98A1B2;font-size:16px}

/* ── §12.8 · the shell stops looking dead ───────────────────────────────── */
.sh-nav a,.sh-nav button,.sh-item{transition:background-color .15s cubic-bezier(.2,.8,.25,1),
  color .15s cubic-bezier(.2,.8,.25,1),box-shadow .15s cubic-bezier(.2,.8,.25,1)}
.sh-nav a:hover,.sh-nav button:hover,.sh-item:hover{background:#EEF4FF;color:#12285C}
.sh-nav a:focus-visible,.sh-nav button:focus-visible{outline:3px solid #2563EB;outline-offset:-2px}
.az-new,.sh .zw-b1,.sh-cta{background:linear-gradient(180deg,#2563EB,#1D4ED8);
  border:1px solid #1D4ED8;color:#fff;
  box-shadow:0 1px 2px rgba(18,40,92,.20),inset 0 1px 0 rgba(255,255,255,.18)}
.az-new:hover,.sh-cta:hover{background:linear-gradient(180deg,#1D4ED8,#12285C);color:#fff}

@media (max-width:1180px){
  .sa-v5 .sa-v5-trow,.sa-v5 .ven-ir{grid-template-columns:minmax(0,1fr) auto 14px}
  .sa-v5 .sa-v5-trow__sum,.ven-ir__sum{display:none}
}
@media (max-width:860px){
  .sa-v5 .ven-reason{grid-template-columns:26px minmax(0,1fr) 14px;row-gap:4px}
  .sa-v5 .ven-reason__n{grid-column:2/4;text-align:left}
}

/* §12.5 — the canonical rail inside the dossier editor */
.zw-stagef .zw-flow{display:flex;flex-direction:column;gap:0;margin-top:6px;
  border:1px solid #EDE8DF;border-radius:12px;padding:6px 8px;background:#fff}
.zw-stagef.is-missing .zw-flow{border-color:#EFCC7C;background:#FFFBF0}
.zw-stagef .sa-step{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);
  align-items:center;gap:10px;padding:4px 6px;border-radius:9px;border:1px solid transparent;
  background:none;width:100%;text-align:left;cursor:pointer}
.zw-stagef .sa-step:not(:last-child)::before{content:"";position:absolute;left:11px;top:26px;
  bottom:-4px;width:2px;border-radius:2px;background:#D4DCE8}
.zw-stagef .sa-step__c{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  font-size:10.5px;font-weight:800;border:1.5px solid #D4DCE8;background:#fff;color:#697285;z-index:1}
.zw-stagef .sa-step__l{font-size:11.5px;line-height:1.3;color:#3A4356}
.zw-stagef .sa-step:hover{background:#EEF4FF;border-color:#BFD5FD}
.zw-stagef .sa-step[data-state="now"] .sa-step__c{background:var(--sa-v5-brand,#1D4ED8);border-color:var(--sa-v5-brand,#1D4ED8);color:#fff}
.zw-stagef .sa-step[data-state="done"] .sa-step__c{background:#059669;border-color:#059669;color:#fff}
.zw-stagef .sa-step.is-armed{background:#EEF4FF;border-color:#1D4ED8}
.zw-stagef .sa-step.is-armed .sa-step__c{background:#1D4ED8;border-color:#1D4ED8;color:#fff}
.zw-stagef .sa-step:focus-visible{outline:3px solid #2563EB;outline-offset:1px}

/* The kit's button reset lives on `:where(.sa) button`, and Dosare/Venituri mount as
   `.sa-v5 .z-root` WITHOUT `.sa`. Every element promoted to a <button> on those two
   screens therefore fell back to the browser default `buttonface` (#EFEFEF) — measured
   at 20.1% of the painted Venituri surface. The reset is republished for this scope at
   the same low specificity, so component rules still win. */
:where(.sa-v5) button{font:inherit;color:inherit;background:none;border:0}
.sa-v5 .sa-v5-trow{background:#fff}
.sa-v5 .sa-v5-trow.is-firm{background:linear-gradient(90deg,var(--sa-v5-mint-sf),#fff 46%)}
.sa-v5 .sa-v5-trow.is-band,.sa-v5 .sa-v5-trow.is-pending{
  background:linear-gradient(90deg,var(--sa-v5-cd-sf),#fff 46%)}
.sa-v5 .sa-v5-trow:hover{background:var(--sa-v5-brand-sf)}


/* ══════════════════════════════════════════════════════════════════════════
   PREMIUM FINAL EXECUTION
   ══════════════════════════════════════════════════════════════════════════ */

/* ── §11 · stage semantics: covered / current / future ───────────────────── */
.sa-v5 .sa-step[data-state="done"] .sa-step__c{background:var(--sa-v5-mint);
  border-color:var(--sa-v5-mint);color:#fff;box-shadow:0 0 0 3px var(--sa-v5-mint-sf)}
.sa-v5 .sa-step[data-state="done"] .sa-step__l{color:#065F46;font-weight:650}
.sa-v5 .sa-step[data-state="done"]:not(:last-child)::before{background:var(--sa-v5-mint-bd)}
.sa-v5 .sa-step[data-state="now"] .sa-step__c{background:var(--sa-v5-brand,#1D4ED8);
  border-color:var(--sa-v5-brand-dp);color:#fff;box-shadow:0 0 0 3px var(--sa-v5-brand-sf)}
.sa-v5 .sa-step[data-state="now"] .sa-step__l{color:var(--sa-v5-ink);font-weight:750}
.sa-v5 .sa-step:not([data-state]) .sa-step__c{background:#fff;border-color:var(--sa-v5-line2);
  color:var(--sa-v5-ink4)}
.sa-v5 .sa-step:not([data-state]) .sa-step__l{color:var(--sa-v5-ink3)}

/* ── §12 · the editor rail is finished: no overflow, no beige, no pseudo-table ── */
.zw-stagef{min-width:0;max-width:100%}
.zw-stagef .zw-flow{border:1px solid #EDE8DF;background:#fff;overflow-x:hidden;
  max-width:100%;padding:7px 9px;gap:1px}
.zw-stagef.is-missing .zw-flow{border-color:#EFCC7C;background:#FFFBF0}
.zw-stagef .sa-step{grid-template-columns:22px minmax(0,1fr);min-width:0;max-width:100%;
  padding:5px 6px}
.zw-stagef .sa-step__l{overflow-wrap:anywhere;white-space:normal;min-width:0}
.zw-stagef .sa-step[data-state="done"] .sa-step__c{background:#059669;border-color:#059669;color:#fff}
.zw-stagef .sa-step[data-state="done"] .sa-step__l{color:#065F46}
.zw-stagef .sa-step[data-state="now"] .sa-step__c{background:var(--sa-v5-brand,#1D4ED8);border-color:var(--sa-v5-brand,#1D4ED8);color:#fff}
.zw-stagef .sa-step[data-state="now"] .sa-step__l{color:#0F1420;font-weight:750}
.zw-stagef .sa-step:not([data-state]) .sa-step__c{color:#98A1B2}
.zw-stagef .sa-step:not(:last-child)::before{left:10px}
.zw-stagef .sa-step[data-state="done"]:not(:last-child)::before{background:#A7F3D0}

/* ── §15 · nothing stops mid-word ────────────────────────────────────────── */
.zw-drawer,.zw-drawer .zw-db{overflow-x:hidden}
.zw-drawer .zw-db,.zw-drawer .zw-grid,.zw-drawer .zw-f,.zw-drawer .zw-hev,
.zw-drawer .zw-hev-d,.zw-drawer .zw-hint,.zw-drawer .zw-prev-r{min-width:0;max-width:100%}
.zw-drawer .zw-hev b,.zw-drawer .zw-hev-d,.zw-drawer .zw-hint,.zw-drawer .zw-l,
.zw-drawer .sa-note,.zw-drawer p{overflow-wrap:anywhere;word-break:normal}
.sa-v5 .sa-note,.sa-v5 .sa-tint,.sa-v5 .zw-hint{overflow-wrap:anywhere}
.sa-v5 .v1-pending,.sa-v5 .v1-bank,.sa-v5 .sa-v5-name,.sa-v5 .sa-v5-meta{
  overflow-wrap:anywhere;min-width:0}

/* ── §14 · confirmed institution reads as a fact, unconfirmed as a task ──── */
.sa-v5 .sa-v5-inst{font-size:var(--sa-v5-fs-meta);font-weight:650;color:var(--sa-v5-ink2);
  white-space:nowrap;padding:2px 9px;border-radius:100px;background:var(--sa-v5-field)}

/* ── §17 · grouped filters ───────────────────────────────────────────────── */
.sa-v5 .sa-fgroups{align-items:center;gap:14px;row-gap:8px}
.sa-v5 .sa-fgroup{display:inline-flex;align-items:center;gap:7px;padding:3px 3px 3px 0}
.sa-v5 .sa-fgroup__l{font-size:9.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  color:var(--sa-v5-ink4);margin-right:2px;white-space:nowrap}
.sa-v5 .sa-fgroup + .sa-fgroup{border-left:1px solid var(--sa-v5-line);padding-left:14px}
.sa-v5 .sa-chip--x{border-style:dashed;color:var(--sa-v5-ink3)}

/* ── §18 · hero rhythm, same height, better composition ──────────────────── */
.sa-v5 .sa-hero__greet{padding:14px 22px;gap:24px}
.sa-v5 .sa-t-hero{font-size:21px}
.sa-v5 .sa-quote{max-width:42%}
.sa-v5 .sa-t-quote{font-size:12px;line-height:1.4}
.sa-v5 .sa-hero__sum{padding:9px 22px}
.sa-v5 .sa-hero__sum-tot{font-size:20px;font-weight:800}
.sa-v5 .sa-v5-kpi__x{font-size:9.5px;color:var(--sa-v5-ink4);font-weight:600}

/* ── §19 · workload badge is volume, not an alarm ────────────────────────── */
.sh-nav .sh-badge,.sh-b,.sh-count,.sh-nav [class*="badge"]{background:#EEF4FF;color:#1D4ED8;
  border:1px solid #BFD5FD}

/* ── §23 · concentration is visibly proportional ─────────────────────────── */
.sa-v5 .sa-v5-bnk__bar{height:10px;border-radius:100px;background:#E8EEFB;overflow:hidden}
.sa-v5 .sa-v5-bnk__fill{min-width:6px;border-radius:100px}
.sa-v5 .sa-v5-bnk__v{font-variant-numeric:tabular-nums}

/* ── §26/§12.10 · numbers align and lead ─────────────────────────────────── */
.sa-v5 .sa-v5-k__val,.sa-v5 .sa-v5-kpi__v,.sa-v5 .sa-v5-trow__com,.sa-v5 .sa-v5-trow__sum,
.sa-v5 .sa-v5-dr__amt,.sa-v5 .v1-fig,.sa-v5 .ven-ir__com,.sa-v5 .ven-ir__sum,
.sa-v5 .sa-hero__sum-tot{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}

/* ── §28 · restraint: elevation carries, borders whisper ─────────────────── */
.sa-v5 .sa-v5-card,.sa-v5 .sa-v5-dr,.sa-v5 .sa-v5-k,.sa-v5 .z-band,.sa-v5 .sa-hero,
.sa-v5 .sa-v5-cockpit{border-color:var(--sa-v5-hair)}
.sa-v5 .sa-v5-more__t{font-size:var(--sa-v5-fs-body);font-weight:700}
.sa-v5 .sa-v5-more--bar .sa-v5-more__s{white-space:nowrap}

/* §23 — the concentration bar and its fill became <span> when the row was promoted to
   a <button>. Inline elements ignore width and height, so every bar measured 0px wide.
   Both are blockified; the fill keeps a small floor so the smallest share is still
   visible while remaining unmistakably shorter than the largest. */
.sa-v5 .sa-v5-bnk__bar{display:block;height:10px;width:100%}
.sa-v5 .sa-v5-bnk__fill{display:block;height:100%;min-width:8px}

/* §2 — a reason WITHOUT a resolver is a statement, not a control */
.sa-v5 .ven-reason--fact{cursor:default;background:var(--sa-v5-surface2)}
.sa-v5 .ven-reason--fact:hover{background:var(--sa-v5-surface2);border-color:transparent;box-shadow:none}
.sa-v5 .ven-reason__ic--fact{background:var(--sa-v5-field);color:var(--sa-v5-ink3);
  border-color:var(--sa-v5-line2);font-style:italic}
.ven-ir__fix{flex:none;height:26px;padding:0 11px;border-radius:100px;display:inline-flex;
  align-items:center;font-size:11.5px;font-weight:700;background:#EEF4FF;color:#12285C;
  border:1px solid #BFD5FD;cursor:pointer;white-space:nowrap}
.ven-ir__fix:hover{background:#1D4ED8;color:#fff;border-color:#1D4ED8}

/* §12 — the dossier drawer is appended to #zw-root at BODY level, so it is NOT inside
   .sa-v5. Every rail reset written for the cockpit therefore missed it and the kit's
   own .sa-step rules were still in force:
     - .sa-step:not(:last-child)::after drew a connector at left:calc(50% + 17px)
       across the full row  -> the long meaningless horizontal lines;
     - .sa-step__l had max-width:74px, forcing two-line labels in a wide column
       -> the jagged pseudo-table.
   The same resets are republished for the editor rail. */
.zw-stagef .sa-step::after{display:none}
.zw-stagef .sa-step__l{max-width:none;text-align:left;white-space:normal;
  overflow-wrap:anywhere;font-size:12px;line-height:1.35}
.zw-stagef .sa-step{min-width:0;flex:0 0 auto;align-items:center}
.zw-stagef .sa-step__c{flex:none}
.zw-stagef .zw-flow{max-width:520px}


/* ══════════════════════════════════════════════════════════════════════════
   V5 PREMIUM · VISUAL FINAL PASS                                 §1–§22
   Appended last so every rule below is the final word on its property.
   ══════════════════════════════════════════════════════════════════════════ */

/* §2 · CURRENT STAGE — the marker is the single most important dot on the screen.
   `--sa-v5-brand-dp` (#12285C) reads as near-black at 22px, so "current" looked
   like one more inert step. Full-strength cobalt, on both stage surfaces. */
.sa-v5 .sa-step[data-state="now"] .sa-step__c,
.zw-stagef .sa-step[data-state="now"] .sa-step__c{
  background:var(--sa-v5-brand,#1D4ED8);
  border-color:var(--sa-v5-brand,#1D4ED8);
  color:#fff;
  box-shadow:0 0 0 3px rgba(29,78,216,.16)}
.sa-v5 .sa-step[data-state="now"] .sa-step__l,
.zw-stagef .sa-step[data-state="now"] .sa-step__l{
  color:var(--sa-v5-brand,#1D4ED8);font-weight:800}

/* §5 · an institution that is not confirmed is stated as such, in amber */
.sa-v5 .v1-bank--todo{color:#8A5A00;font-weight:700}
.sa-v5 .v1-bank--todo::before{content:"";display:inline-block;width:6px;height:6px;
  border-radius:50%;background:#D9880B;margin-right:6px;vertical-align:1px}

/* §8 · the commission box is a flat, calm surface */
/* §17 — un comision estimat nu e un produs; suprafața rămâne neutră. */
.sa-v5 .sa-v5-est--flat{background:var(--sa-v5-surface2);border:1px solid var(--sa-v5-line)}

/* §9 · MAI MULTE — rendered into a body-level portal, so it is NOT inside `.sa-v5`
   and must carry its own tokens. Anchored by script; clipping is impossible. */
.az-morebtn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;
  border:1px solid #E4DED4;border-radius:9px;background:#fff;color:#4A5568;
  font:700 13px/1 var(--sa-font,'SA Text',system-ui,sans-serif);cursor:pointer;
  white-space:nowrap}
.az-morebtn:hover{border-color:#B9C0CC;color:#0F1420}
.az-morebtn:focus-visible{outline:3px solid #2563EB;outline-offset:2px}
.az-morebtn[aria-expanded="true"]{border-color:#B9C0CC;color:#0F1420;background:#FAF8F4}
.az-morebtn .v1-ico{fill:currentColor;stroke:none;width:16px;height:16px}
.az-morebtn--icon{width:32px;height:32px;padding:0;justify-content:center;gap:0}
.az-morebtn--icon .az-morebtn__t{display:none}
.az-menu{position:fixed;z-index:9000;min-width:212px;max-width:min(320px,calc(100vw - 16px));
  background:#fff;border:1px solid #E4DED4;border-radius:12px;padding:6px;
  box-shadow:0 18px 44px rgba(15,20,32,.16),0 2px 6px rgba(15,20,32,.06)}
.az-menu>button,.az-menu>a{display:flex;width:100%;align-items:center;gap:9px;
  padding:9px 10px;border:0;border-radius:8px;background:none;color:#0F1420;
  font:600 13px/1.2 var(--sa-font,'SA Text',system-ui,sans-serif);
  text-align:left;cursor:pointer;text-decoration:none}
.az-menu>button:hover,.az-menu>a:hover{background:#F5F2EC}
.az-menu>button:focus-visible,.az-menu>a:focus-visible{outline:2px solid #2563EB;outline-offset:-2px}
.az-menu svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}

/* §10 · the hero quote is read, not skimmed */
.sa-v5 .sa-quote .sa-t-quote{font-size:15.5px;line-height:1.45;color:var(--sa-v5-ink2);
  font-weight:500;font-style:italic}
.sa-v5 .sa-quote__cite{font-size:11px;letter-spacing:.06em;color:var(--sa-v5-ink4)}
.sa-v5 .sa-quote{max-width:44%;border-left:2px solid var(--sa-v5-brand-bd);padding-left:14px}
@media (max-width:1080px){ .sa-v5 .sa-quote{max-width:100%} }

/* §12 · the filter reset belongs to the filter bar, not floating beside it */
.sa-v5 .sa-v5-filtbar .sa-v5-reset,
.sa-v5 .sa-filters .sa-v5-reset{border:1px solid var(--sa-v5-hair);border-radius:9px;
  background:#fff;color:var(--sa-v5-ink3);font-weight:700;height:30px;padding:0 11px;
  border-style:solid}
.sa-v5 .sa-v5-filtbar .sa-v5-reset:hover,.sa-v5 .sa-filters .sa-v5-reset:hover{
  border-color:var(--sa-v5-line2);color:var(--sa-v5-ink)}

/* §16/§22 · exactly one filled primary per drawer footer, and a disabled primary
   that READS as disabled. The drawer's real classes are `.zw-b1` (primary),
   `.zw-b2` (secondary) and `.zw-b3` (quiet text) inside `.zw-bar` — an earlier
   attempt styled `.sa-btn--primary` inside `.zw-foot`, neither of which the drawer
   uses, so a clean form still showed a full-strength cobalt Save. */
#zw-root .zw-b1{
  background:linear-gradient(180deg,#2563EB,#1D4ED8);border:1px solid #1D4ED8;color:#fff;
  box-shadow:0 1px 2px rgba(15,20,32,.10)}
#zw-root .zw-b1:hover:not([disabled]){background:linear-gradient(180deg,#1D4ED8,#1E40AF)}
#zw-root .zw-b1[disabled],#zw-root .zw-b1:disabled{
  background:#EEF1F6;border-color:#E1E6EE;color:#9AA3B2;box-shadow:none;cursor:not-allowed;
  opacity:1}
#zw-root .zw-b2{background:#fff;border:1px solid #E4DED4;color:#4A5568;box-shadow:none}
#zw-root .zw-b2[disabled],#zw-root .zw-b2:disabled{color:#9AA3B2;cursor:not-allowed}
#zw-root .zw-b3{background:transparent;border:0;color:#1D4ED8;box-shadow:none}
#zw-root .zw-b3[disabled],#zw-root .zw-b3:disabled{color:#9AA3B2;cursor:not-allowed}

/* §17 · three surface levels, and only three: page · card · inset */
.sa-v5{--sa-v5-lvl0:#FBF9F5;--sa-v5-lvl1:#FFFFFF;--sa-v5-lvl2:#F5F2EC}
.sa-v5 .sa-v5-inset{background:var(--sa-v5-lvl2);border:1px solid var(--sa-v5-hair);
  border-radius:10px}

/* §21 · one type scale, applied to the numerals that carry meaning */
.sa-v5 .sa-v5-k__val{font-variant-numeric:tabular-nums lining-nums}
.sa-v5 .sa-v5-kpi__v{font-variant-numeric:tabular-nums lining-nums}

.sa-v5 .sa-deal__bank--todo{color:#8A5A00;font-weight:700}
.sa-v5 .sa-deal__bank--todo::before{content:"";display:inline-block;width:6px;height:6px;
  border-radius:50%;background:#D9880B;margin-right:6px;vertical-align:1px}


/* ══════════════════════════════════════════════════════════════════════════
   V5 PREMIUM RECOVERY — FINAL EXECUTION
   §2.1 the warm cream canvas is RATIFIED and untouched: nothing below sets a
   page background. Product identity moves INSIDE the white card instead.
   ══════════════════════════════════════════════════════════════════════════ */

/* §2.2/§3 · the ratified saturated product accents. The previous values
   (#C2410C coral, #B45309 gold) sat too close together to separate at a glance —
   which is exactly the "two brown families" defect. These are the PO's values. */
.sa-v5{
  --sa-v5-ip-acc:#1D4ED8; --sa-v5-ip-acc2:#3B82F6;
  --sa-v5-np-acc:#EA580C; --sa-v5-np-acc2:#FB923C;
  --sa-v5-cd-acc:#7C3AED; --sa-v5-cd-acc2:#A78BFA;
  --sa-v5-ct-acc:#0E7490; --sa-v5-ct-acc2:#22D3EE}
.sa-v5 .sa-v5-kpi--ip{--sa-v5-acc:var(--sa-v5-ip-acc);--sa-v5-acc2:var(--sa-v5-ip-acc2)}
.sa-v5 .sa-v5-kpi--np{--sa-v5-acc:var(--sa-v5-np-acc);--sa-v5-acc2:var(--sa-v5-np-acc2)}
.sa-v5 .sa-v5-kpi--cd{--sa-v5-acc:var(--sa-v5-cd-acc);--sa-v5-acc2:var(--sa-v5-cd-acc2)}
.sa-v5 .sa-v5-kpi--ct{--sa-v5-acc:var(--sa-v5-ct-acc);--sa-v5-acc2:var(--sa-v5-ct-acc2)}

/* §2.2 · WHITE card, strong identity inside it. No wash, no gradient, no tint. */
.sa-v5 .sa-v5-kpi{
  background:#fff;
  background-image:none;
  border:1px solid var(--sa-v5-hair);
  border-left:6px solid var(--sa-v5-acc,var(--sa-v5-line2));
  border-radius:13px;
  box-shadow:0 1px 2px rgba(24,20,14,.05),0 8px 22px -14px rgba(24,20,14,.30)}
.sa-v5 .sa-v5-kpi:hover{
  background:#fff;border-color:var(--sa-v5-line2);
  border-left-color:var(--sa-v5-acc,var(--sa-v5-line2));
  box-shadow:0 2px 4px rgba(24,20,14,.06),0 14px 30px -16px rgba(24,20,14,.38);
  transform:translateY(-1px)}
.sa-v5 .sa-v5-kpi[aria-pressed=true]{
  background:#fff;border-color:var(--sa-v5-acc);border-left-color:var(--sa-v5-acc);
  box-shadow:0 0 0 1px var(--sa-v5-acc),0 14px 30px -16px rgba(24,20,14,.42)}
/* icon tile = SOLID product colour with a white glyph */
.sa-v5 .sa-v5-kpi__ic{
  background:var(--sa-v5-acc);background-image:none;border:0;color:#fff;
  box-shadow:0 2px 6px -1px color-mix(in srgb,var(--sa-v5-acc) 55%,transparent)}
.sa-v5 .sa-v5-kpi__ic svg{stroke:#fff;color:#fff}
/* the KPI number carries the product colour — a neutral number read as empty */
.sa-v5 .sa-v5-kpi__v{color:var(--sa-v5-acc);font-weight:800}
.sa-v5 .sa-v5-kpi__n{color:var(--sa-v5-acc);font-weight:700;letter-spacing:.02em}
.sa-v5 .sa-v5-kpi__c,.sa-v5 .sa-v5-kpi__x{color:var(--sa-v5-ink3)}
/* zero state: count only, muted, NOT a warning and NOT a gold slab */
.sa-v5 .sa-v5-kpi:has(.sa-v5-kpi__v.is-zero){border-left-color:var(--sa-v5-line2)}
.sa-v5 .sa-v5-kpi:has(.sa-v5-kpi__v.is-zero) .sa-v5-kpi__ic{
  background:var(--sa-v5-surface2);color:var(--sa-v5-ink4);box-shadow:none}
.sa-v5 .sa-v5-kpi:has(.sa-v5-kpi__v.is-zero) .sa-v5-kpi__ic svg{stroke:var(--sa-v5-ink4);color:var(--sa-v5-ink4)}
.sa-v5 .sa-v5-kpi__v.is-zero{color:var(--sa-v5-ink4);font-weight:700}
.sa-v5 .sa-v5-kpi:has(.sa-v5-kpi__v.is-zero) .sa-v5-kpi__n{color:var(--sa-v5-ink3)}

/* §15 · the action card gets the same treatment: white on cream, identity inside */
.sa-v5 .sa-v5-card--ip{--sa-v5-acc:var(--sa-v5-ip-acc)}
.sa-v5 .sa-v5-card--np{--sa-v5-acc:var(--sa-v5-np-acc)}
.sa-v5 .sa-v5-card--cd{--sa-v5-acc:var(--sa-v5-cd-acc)}
.sa-v5 .sa-v5-card--ct{--sa-v5-acc:var(--sa-v5-ct-acc)}
.sa-v5 .sa-v5-card{
  background:#fff;border:1px solid var(--sa-v5-hair);
  border-left:6px solid var(--sa-v5-acc,var(--sa-v5-line2));
  border-radius:13px;
  box-shadow:0 1px 2px rgba(24,20,14,.05),0 8px 22px -16px rgba(24,20,14,.28)}
.sa-v5 .sa-v5-card:hover{box-shadow:0 2px 5px rgba(24,20,14,.07),0 16px 34px -18px rgba(24,20,14,.40)}
.sa-v5 .sa-v5-card.is-sel{
  border-color:var(--sa-v5-acc);box-shadow:0 0 0 1px var(--sa-v5-acc),
    0 18px 40px -20px color-mix(in srgb,var(--sa-v5-acc) 45%,transparent)}
.sa-v5 .sa-v5-av--ip,.sa-v5 .sa-v5-av--np,.sa-v5 .sa-v5-av--cd,.sa-v5 .sa-v5-av--ct{
  background:var(--sa-v5-acc);color:#fff;border:0}
/* the product context strip loses its wash; the accent speaks through type */
.sa-v5 .sa-v5-prod--ip,.sa-v5 .sa-v5-prod--np,.sa-v5 .sa-v5-prod--cd,.sa-v5 .sa-v5-prod--ct{
  background:var(--sa-v5-lvl2,#F5F2EC);background-image:none;
  border:1px solid var(--sa-v5-hair)}
.sa-v5 .v1-tag{color:var(--sa-v5-acc);font-weight:800}

/* §5 · THE VISIBLE ACTION SYSTEM — three levels, nothing hidden */
.sa-v5 .az-arow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%}
.sa-v5 .az-arow--1{margin-bottom:9px}
.sa-v5 .az-arow--2{margin-bottom:9px}
.sa-v5 .az-arow--3{padding-top:9px;border-top:1px solid var(--sa-v5-hair)}
.sa-v5 .az-a{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:36px;padding:0 13px;border-radius:9px;border:1px solid transparent;
  font:700 13px/1 var(--sa-font,'SA Text',system-ui,sans-serif);
  cursor:pointer;text-decoration:none;white-space:nowrap;max-width:100%}
.sa-v5 .az-a>span{overflow:hidden;text-overflow:ellipsis}
.sa-v5 .az-a svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;
  stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sa-v5 .az-a:focus-visible{outline:3px solid var(--sa-v5-ip-acc);outline-offset:2px}
/* L1 — one filled cobalt primary, unmistakably the decision */
.sa-v5 .az-a--p{background:linear-gradient(180deg,#2563EB,#1D4ED8);border-color:#1D4ED8;
  color:#fff;min-height:40px;padding:0 17px;font-size:13.5px;
  box-shadow:0 2px 8px -2px rgba(29,78,216,.55)}
.sa-v5 .az-a--p:hover{background:linear-gradient(180deg,#1D4ED8,#1E40AF)}
/* L2 — soft FILLED semantic surfaces, never dead grey outlines */
.sa-v5 .az-a--s{background:var(--sa-v5-lvl2,#F5F2EC);border-color:transparent;color:var(--sa-v5-ink)}
.sa-v5 .az-a--call{background:#E8F0FE;color:#1B3A80}
.sa-v5 .az-a--call:hover{background:#D8E6FD}
.sa-v5 .az-a--wa{background:#E3F6EC;color:#065F46}
.sa-v5 .az-a--wa:hover{background:#D2EFE0}
.sa-v5 .az-a--client{background:#EEF1F6;color:#2C3A52}
.sa-v5 .az-a--client:hover{background:#E2E7EF}
.sa-v5 .az-a--note{background:#E8F0FE;color:#1B3A80}
.sa-v5 .az-a--mail{background:var(--sa-v5-lvl2,#F5F2EC);color:var(--sa-v5-ink2)}
/* L3 — quieter, but still real buttons */
.sa-v5 .az-a--t{background:#fff;border-color:var(--sa-v5-hair);color:var(--sa-v5-ink2);
  min-height:32px;padding:0 11px;font-size:12.5px;font-weight:650}
.sa-v5 .az-a--t:hover{border-color:var(--sa-v5-line2);color:var(--sa-v5-ink);background:#fff}
/* removal reads as removal and sits last */
.sa-v5 .az-a--rm{margin-left:auto;color:#8E1B1B;border-color:#F0D6D6;background:#fff}
.sa-v5 .az-a--rm:hover{background:#FDF3F3;border-color:#E4BDBD;color:#7A1515}
/* card channel rail — the two former overflow actions are now visible here */
.sa-v5 .v1-rb--rm{color:#8E1B1B;border-color:#F0D6D6}
.sa-v5 .v1-rb--rm:hover{background:#FDF3F3;border-color:#E4BDBD}
@media (max-width:520px){
  .sa-v5 .az-arow{gap:7px}
  .sa-v5 .az-arow--2,.sa-v5 .az-arow--3{display:grid;grid-template-columns:1fr 1fr}
  .sa-v5 .az-a{width:100%;padding:0 9px}
  .sa-v5 .az-a--p{width:100%}
  .sa-v5 .az-a--rm{margin-left:0;grid-column:1/-1}
}

/* §4 · PREMIUM HEROES — colour, depth and hierarchy. NO extra height:
   nothing below sets height, min-height, padding or margin on a hero. */
.sa-v5 .sa-hero__greet{
  background:
    radial-gradient(120% 150% at 100% 0%, rgba(251,191,36,.14) 0%, rgba(251,191,36,0) 46%),
    linear-gradient(122deg,#EEF4FF 0%,#F7FAFF 40%,#FFFDF8 100%);
  border:1px solid #DCE6F8;
  box-shadow:0 1px 2px rgba(18,40,92,.05),0 18px 40px -28px rgba(18,40,92,.45)}
.sa-v5 .sa-t-hero{color:#12285C}
.sa-v5 .sa-hero__date{color:#1D4ED8}
.sa-v5 .sa-v5-kpiband{background:transparent;border-top:1px solid #E3EAF7}
/* Dosare + Venituri heroes share the family */
.sa-v5 .z-hero,.sa-v5 .sa-v5-vhero,.sa-v5 .zc-hero{
  background:
    radial-gradient(110% 140% at 100% 0%, rgba(251,191,36,.12) 0%, rgba(251,191,36,0) 44%),
    linear-gradient(122deg,#EEF4FF 0%,#F7FAFF 42%,#FFFDF8 100%);
  border:1px solid #DCE6F8;
  box-shadow:0 1px 2px rgba(18,40,92,.05),0 18px 40px -28px rgba(18,40,92,.45)}
/* Venituri hero cards: result = success, pipeline = cobalt, exception = factual */
.sa-v5 .sa-v5-vcom{background:linear-gradient(160deg,#ECFDF5,#F7FFFB 70%,#fff);
  border:1px solid #A7F3D0;box-shadow:0 1px 2px rgba(6,95,70,.06),0 16px 36px -24px rgba(6,95,70,.40)}
.sa-v5 .sa-v5-vpipe{background:linear-gradient(160deg,#EEF4FF,#F8FBFF 70%,#fff);
  border:1px solid #BFD5FD;box-shadow:0 1px 2px rgba(18,40,92,.06),0 16px 36px -24px rgba(18,40,92,.40)}
.sa-v5 .sa-v5-vgap{background:linear-gradient(160deg,#FFFBF0,#FFFDF7 70%,#fff);
  border:1px solid #EFCC7C;box-shadow:0 1px 2px rgba(107,50,8,.06),0 16px 36px -24px rgba(107,50,8,.34)}

/* §7 · bank chips — readable, elevated, no dead grey */
.sa-v5 .sa-v5-bank,.sa-v5 .z-bank,.sa-v5 .sa-deal__bank,.sa-v5 .v1-bank{
  color:var(--sa-v5-ink2);font-weight:700}
.sa-v5 .zl-bank,.sa-v5 .sa-v5-bchip{
  display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:8px;
  background:linear-gradient(180deg,#FFFFFF,#F6F8FC);border:1px solid #DDE4F0;
  color:#2C3A52;font-weight:700;font-size:12px;letter-spacing:.01em;
  box-shadow:0 1px 1px rgba(24,20,14,.04)}
/* the unconfirmed institution is amber and says so */
.sa-v5 .v1-bank--todo,.sa-v5 .sa-deal__bank--todo{color:#8A5A00;font-weight:700}
.sa-v5 .sa-v5-bnk--unconf .sa-v5-bnk__n{color:#8A5A00;font-style:italic}
/* a solid muted amber, not a hatch: hatching reads as an unfinished wireframe,
   which is exactly what the previous run removed from the commission box. */
.sa-v5 .sa-v5-bnk--unconf .sa-v5-bnk__fill{background:#E9BC72}
.sa-v5 .sa-v5-bnk--unconf .sa-v5-bnk__i{background:#FDF3E0;color:#8A5A00}

/* §10 · compact stage chips speak STATE, on the ratified palette */
.sa-v5 .sa-v5-stage--tras{background:#ECFDF5;color:#065F46;border-color:#A7F3D0}
.sa-v5 .sa-v5-stage--spre{background:#ECFEFF;color:#0E7490;border-color:#A5F3FC}
.sa-v5 .sa-v5-stage--aprobat{background:#FFFBEB;color:#92400E;border-color:#FDE68A}
.sa-v5 .sa-v5-stage--blocat{background:#FEF2F2;color:#991B1B;border-color:#FECACA}

/* §12 · the date field stops looking like raw native chrome */
.sa-v5 input[type=date],#zw-root input[type=date]{
  font:600 13px/1 var(--sa-font,'SA Text',system-ui,sans-serif);
  color:var(--sa-v5-ink);letter-spacing:.01em}
.sa-v5 input[type=date]:invalid,#zw-root input[type=date]:invalid{color:var(--sa-v5-ink4);font-weight:500}
#zw-root input[type=date]::-webkit-datetime-edit{padding:0;color:inherit;font-weight:inherit}
#zw-root input[type=date]::-webkit-datetime-edit-fields-wrapper{padding:0}
#zw-root input[type=date]::-webkit-datetime-edit-text{color:var(--sa-v5-ink4);padding:0 1px}
#zw-root input[type=date]:invalid::-webkit-datetime-edit{color:var(--sa-v5-ink4);font-weight:500}
#zw-root input[type=date]::-webkit-calendar-picker-indicator{
  opacity:.42;cursor:pointer;padding:2px;border-radius:5px;margin-right:-2px}
#zw-root input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.85;background:#EEF1F6}

/* §14 · the in-product unsaved-changes confirmation, inside the drawer */
#zw-root .zw-cc{position:absolute;inset:0;z-index:40;display:grid;place-items:center;
  background:rgba(18,26,44,.42);backdrop-filter:blur(1.5px);border-radius:inherit}
#zw-root .zw-cc__box{width:min(420px,calc(100% - 40px));background:#fff;
  border:1px solid #E4DED4;border-radius:14px;padding:20px;
  box-shadow:0 24px 60px rgba(15,20,32,.28)}
#zw-root .zw-cc__t{font:800 16px/1.25 var(--sa-font,'SA Text',system-ui,sans-serif);color:#0F1420}
#zw-root .zw-cc__p{margin:8px 0 16px;font:500 13.5px/1.5 var(--sa-font,'SA Text',system-ui,sans-serif);
  color:#4A5568}
#zw-root .zw-cc__a{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
#zw-root .zw-cc__rm{color:#8E1B1B;border-color:#F0D6D6}
#zw-root .zw-cc__rm:hover{background:#FDF3F3;border-color:#E4BDBD}
/* NOTE:  is  in theme.css, which ALREADY establishes
   the containing block for the absolutely-positioned confirmation above. An
   earlier  here overrode that fixed positioning and pushed
   every drawer out of place. Nothing is declared for  here. */

/* §16 · the filter bar is one system; the reset is inside it, not floating */
.sa-v5 .sa-v5-reset{border:1px solid var(--sa-v5-hair);border-style:solid;border-radius:9px;
  background:#fff;color:var(--sa-v5-ink3);font-weight:700;height:30px;padding:0 11px}
.sa-v5 .sa-v5-reset:hover{border-color:var(--sa-v5-line2);color:var(--sa-v5-ink);background:#fff}

/* §20 · one number face, one alignment */
.sa-v5 .sa-v5-kpi__v,.sa-v5 .sa-v5-k__val,.sa-v5 .sa-v5-trow__com,.sa-v5 .sa-v5-trow__sum{
  font-variant-numeric:tabular-nums lining-nums}

/* ═══ R4 — DOSARE FILTER CONTROLS ══════════════════════════════════════════
   IA, populations, counts and filter logic are untouched. What changes is the
   identity signal and the finish.

   Root cause this replaces: the identity used to be carried by a PALE selected
   surface (IP #EFF4FF / NP #FFF7F1 / CARD #FDF8EC). Those measure dE 3.2-12.3
   apart, so no hue choice could have separated them. The identity is now the
   full-strength product colour itself — the icon when unselected, a solid fill
   when selected — and pale washes carry nothing.

   Card de credit = violet #7C3AED (PO-ratified). Violet is used ONLY as this
   product's identity: no washes, no gradients, no decorative use elsewhere. */

/* ── PRIMARY axis: lifecycle. Operational cobalt, never a product colour ──── */
.sa-v5-chipbar[data-dl-axis="life"]{gap:10px;margin-bottom:10px}
.sa-v5-chipbar[data-dl-axis="life"] .sa-v5-seg{
  background:#fff;border:1px solid var(--sa-v5-line);border-radius:14px;padding:4px;gap:4px;
  box-shadow:0 1px 2px rgba(18,40,92,.05),0 10px 22px -16px rgba(29,78,216,.35)}
.sa-v5-chipbar[data-dl-axis="life"] .sa-v5-seg button{
  height:40px;padding:0 16px;border-radius:11px;display:inline-flex;align-items:center;
  gap:9px;font-size:13.5px;font-weight:750;color:var(--sa-v5-ink3);
  letter-spacing:.005em;transition:background .15s,color .15s,box-shadow .15s}
.sa-v5-chipbar[data-dl-axis="life"] .sa-v5-seg button:hover{
  background:var(--sa-v5-field);color:var(--sa-v5-ink)}
/* selected = SOLID cobalt fill, not an outline */
/* NAVY, deliberately one step deeper than the cobalt used for the Ipotecare
   PRODUCT. Lifecycle is a different axis and must never read as a product. */
.sa-v5-chipbar[data-dl-axis="life"] .sa-v5-seg button.is-on{
  background:#1E3A8A;color:#fff;
  box-shadow:0 1px 2px rgba(18,40,92,.10),0 6px 14px -8px rgba(30,58,138,.55)}
.sa-v5-chipbar[data-dl-axis="life"] .sa-v5-seg button.is-on:hover{
  background:#1E3A8A;color:#fff}
.sa-v5-seg__t{white-space:nowrap}
.sa-v5-seg__n{
  display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;
  padding:0 7px;border-radius:8px;background:var(--sa-v5-field);color:var(--sa-v5-ink3);
  font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
/* inverted on the filled segment */
.sa-v5-seg button.is-on .sa-v5-seg__n{background:rgba(255,255,255,.22);color:#fff}

/* ── SECONDARY axis: product identity ────────────────────────────────────── */
.sa-v5-chipbar[data-dl-axis="prod"]{gap:8px;margin-bottom:15px}
.sa-v5-chip--prod{
  --p:var(--sa-v5-ink3);
  height:34px;padding:0 12px;border-radius:10px;gap:8px;font-size:12.5px;font-weight:700;
  background:#fff;border:1px solid var(--sa-v5-line);color:var(--sa-v5-ink);
  transition:background .15s,color .15s,border-color .15s,box-shadow .15s,transform .15s}
.sa-v5-chip--ip{--p:#1D4ED8}
.sa-v5-chip--np{--p:#EA580C}
.sa-v5-chip--card{--p:#7C3AED}
/* unselected: white surface, icon at full product strength, near-black label */
.sa-v5-chip__i{width:16px;height:16px;flex:none;color:var(--p)}
.sa-v5-chip--prod .sa-v5-chip__n{
  display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:19px;
  padding:0 6px;border-radius:7px;background:var(--sa-v5-field);color:var(--sa-v5-ink3);
  font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.sa-v5-chip--prod:hover{border-color:var(--p);transform:translateY(-1px);
  box-shadow:0 4px 10px -6px rgba(15,20,32,.28)}
/* selected: SOLID product fill, white label and icon, translucent count.
   Border width and padding are identical to the unselected state, so selecting a
   chip cannot shift the row by a single pixel. */
.sa-v5-chip--prod.is-on{
  background:var(--p);border-color:var(--p);color:#fff;font-weight:800;
  box-shadow:0 1px 2px rgba(15,20,32,.10),0 6px 14px -8px color-mix(in srgb,var(--p) 55%,transparent)}
.sa-v5-chip--prod.is-on .sa-v5-chip__i{color:#fff}
.sa-v5-chip--prod.is-on .sa-v5-chip__n{background:rgba(255,255,255,.22);color:#fff}
.sa-v5-chip--prod.is-on:hover{transform:none}
/* `Toate` is neutral but deliberate: ink, not a product hue */
.sa-v5-chip--all{--p:var(--sa-v5-ink)}
.sa-v5-chip--prod:focus-visible{outline:3px solid var(--p);outline-offset:2px}

/* ── RESET: compact ghost utility, never a peer tab ──────────────────────── */
.sa-v5-ghost{
  height:30px;padding:0 11px;border-radius:9px;background:transparent;
  border:1px dashed var(--sa-v5-line);color:var(--sa-v5-ink3);
  font-family:inherit;font-size:12px;font-weight:650;cursor:pointer;
  margin-left:6px;transition:.15s;align-self:center}
.sa-v5-ghost:hover{border-style:solid;border-color:var(--sa-v5-ink3);color:var(--sa-v5-ink)}
.sa-v5-ghost:focus-visible{outline:3px solid var(--sa-v5-ip-400);outline-offset:2px}

/* ── Venituri month control: closed-month marker (unchanged behaviour) ───── */
.t6-closed{
  display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:7px;
  background:var(--warm-soft,#FCF0D2);color:#7A5811;border:1px solid #E4C078;
  font-size:11px;font-weight:800;letter-spacing:.01em;white-space:nowrap}

/* ── layout stability: narrow viewports and 2-3 digit counts ─────────────── */
@media(max-width:760px){
  .sa-v5-chipbar[data-dl-axis="life"] .sa-v5-seg{width:100%;flex-wrap:wrap}
  .sa-v5-chipbar[data-dl-axis="life"] .sa-v5-seg button{flex:1 1 auto;justify-content:center}
  .sa-v5-chip--prod{flex:1 1 auto;justify-content:flex-start}
  .sa-v5-ghost{margin-left:0}
}

/* ══════════════════════════════════════════════════════════════════════════
   COLABORATORI · FURNIZORI DE LEADURI
   Built from the V5 tokens above — no new palette, no new type scale, no new
   radius. Every declaration reads a `--sa-v5-*` variable, so the screen is the
   same material as `Dosare`, `Azi` and `Venituri` by construction rather than
   by resemblance.
   ══════════════════════════════════════════════════════════════════════════ */
.sa-v5-cl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:12px}
.sa-v5-cl-card{border-radius:var(--sa-v5-r-card);background:var(--sa-v5-surface);
  border:1px solid var(--sa-v5-line);box-shadow:var(--sa-v5-sh1);padding:14px 15px 12px;
  position:relative;overflow:hidden;min-width:0;display:flex;flex-direction:column;gap:9px}
.sa-v5-cl-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--sa-v5-ink4),var(--sa-v5-line2))}
.sa-v5-cl-card--pj::before{background:linear-gradient(180deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.sa-v5-cl-card--pf::before{background:linear-gradient(180deg,var(--sa-v5-tq-400),var(--sa-v5-tq))}
.sa-v5-cl-card--del{opacity:.62}
.sa-v5-cl-card--del::before{background:linear-gradient(180deg,var(--sa-v5-ink4),var(--sa-v5-ink3))}
.sa-v5-cl-card__h{display:flex;align-items:flex-start;gap:9px;min-width:0}
.sa-v5-cl-card__n{font-size:var(--sa-v5-fs-strong);font-weight:800;color:var(--sa-v5-ink);
  letter-spacing:-.01em;line-height:1.25;min-width:0;overflow-wrap:anywhere}
.sa-v5-cl-card__s{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);margin-top:2px}
.sa-v5-cl-type{flex:0 0 auto;font-size:var(--sa-v5-fs-micro);font-weight:800;
  letter-spacing:.07em;text-transform:uppercase;padding:3px 7px;
  border-radius:var(--sa-v5-r-pill);border:1px solid var(--sa-v5-line2);
  color:var(--sa-v5-ink2);background:var(--sa-v5-field)}
.sa-v5-cl-type--pj{color:var(--sa-v5-ip-tx);background:var(--sa-v5-ip-sf);
  border-color:var(--sa-v5-ip-bd)}
.sa-v5-cl-type--pf{color:var(--sa-v5-tq);background:var(--sa-v5-tq-sf);
  border-color:var(--sa-v5-tq-bd)}
.sa-v5-cl-del{font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sa-v5-rd);background:var(--sa-v5-rd-sf);
  border:1px solid var(--sa-v5-rd-bd);border-radius:var(--sa-v5-r-pill);padding:3px 7px;
  display:inline-block}
.sa-v5-cl-m{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;
  border-top:1px solid var(--sa-v5-line);padding-top:9px}
.sa-v5-cl-m__c{min-width:0}
.sa-v5-cl-m__v{font-size:var(--sa-v5-fs-h3);font-weight:800;color:var(--sa-v5-ink);
  letter-spacing:-.02em;line-height:1.1}
.sa-v5-cl-m__v.is-zero{color:var(--sa-v5-ink4)}
.sa-v5-cl-m__k{font-size:var(--sa-v5-fs-micro);font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--sa-v5-ink3);margin-top:2px}
.sa-v5-cl-fam{display:flex;flex-wrap:wrap;gap:6px}
.sa-v5-cl-fam__i{font-size:var(--sa-v5-fs-micro);font-weight:700;padding:3px 7px;
  border-radius:var(--sa-v5-r-pill);border:1px solid var(--sa-v5-line2);
  background:var(--sa-v5-surface2);color:var(--sa-v5-ink2)}
.sa-v5-cl-fam__i--ip{background:var(--sa-v5-ip-sf);border-color:var(--sa-v5-ip-bd);color:var(--sa-v5-ip-tx)}
.sa-v5-cl-fam__i--np{background:var(--sa-v5-np-sf);border-color:var(--sa-v5-np-bd);color:var(--sa-v5-np-tx)}
.sa-v5-cl-fam__i--cd{background:var(--sa-v5-cd-sf);border-color:var(--sa-v5-cd-bd);color:var(--sa-v5-cd-tx)}
.sa-v5-cl-fin{border-top:1px solid var(--sa-v5-line);padding-top:9px;display:flex;
  gap:14px;flex-wrap:wrap}
.sa-v5-cl-fin__c{min-width:0}
.sa-v5-cl-fin__v{font-size:var(--sa-v5-fs-strong);font-weight:800;color:var(--sa-v5-ink)}
.sa-v5-cl-fin__v--pay{color:var(--sa-v5-np)}
.sa-v5-cl-fin__v--net{color:var(--sa-v5-gr)}
.sa-v5-cl-fin__k{font-size:var(--sa-v5-fs-micro);font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--sa-v5-ink3)}

/* ── forms (master data) ───────────────────────────────────────────────── */
.sa-v5-cl-form{border-radius:var(--sa-v5-r-card);background:var(--sa-v5-surface);
  border:1px solid var(--sa-v5-line);box-shadow:var(--sa-v5-sh2);padding:16px 17px;
  margin-bottom:13px}
.sa-v5-cl-form__g{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:11px}
.sa-v5-cl-lb{display:block;font-size:var(--sa-v5-fs-label);font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--sa-v5-ink3);margin-bottom:4px}
.sa-v5-cl-in,.sa-v5-cl-sel,.sa-v5-cl-ta{width:100%;box-sizing:border-box;
  font:inherit;font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ink);
  background:var(--sa-v5-field);border:1px solid var(--sa-v5-line2);
  border-radius:var(--sa-v5-r-pill);padding:8px 10px}
.sa-v5-cl-in:focus,.sa-v5-cl-sel:focus,.sa-v5-cl-ta:focus{outline:2px solid var(--sa-v5-ip-400);
  outline-offset:1px;background:var(--sa-v5-surface)}
.sa-v5-cl-ta{min-height:62px;resize:vertical}
.sa-v5-cl-err{margin-top:10px;font-size:var(--sa-v5-fs-body);color:var(--sa-v5-rd-dp);
  background:var(--sa-v5-rd-sf);border:1px solid var(--sa-v5-rd-bd);
  border-radius:var(--sa-v5-r-pill);padding:8px 11px}
.sa-v5-cl-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}

/* ── ranking ───────────────────────────────────────────────────────────── */
.sa-v5-cl-rank{display:flex;flex-direction:column;gap:7px}
.sa-v5-cl-rrow{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;
  border-radius:var(--sa-v5-r-row);background:var(--sa-v5-surface);
  border:1px solid var(--sa-v5-line);box-shadow:var(--sa-v5-sh1);padding:11px 13px}
.sa-v5-cl-rrow__r{font-size:var(--sa-v5-fs-h3);font-weight:800;color:var(--sa-v5-ink3);
  text-align:center;font-variant-numeric:tabular-nums}
.sa-v5-cl-rrow__m{font-size:var(--sa-v5-fs-h3);font-weight:800;color:var(--sa-v5-ink);
  text-align:right;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sa-v5-cl-rrow__sub{font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3);text-align:right;
  font-weight:600;margin-top:2px}
.sa-v5-cl-noev{font-size:var(--sa-v5-fs-micro);font-weight:700;color:var(--sa-v5-np-tx);
  background:var(--sa-v5-np-sf);border:1px solid var(--sa-v5-np-bd);
  border-radius:var(--sa-v5-r-pill);padding:2px 7px;display:inline-block;margin-top:3px}
.sa-v5-cl-truth{display:inline-flex;align-items:center;gap:6px;font-size:var(--sa-v5-fs-micro);
  font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:4px 9px;
  border-radius:var(--sa-v5-r-pill)}
.sa-v5-cl-truth--op{color:var(--sa-v5-ink2);background:var(--sa-v5-field);
  border:1px solid var(--sa-v5-line2)}
.sa-v5-cl-truth--est{color:var(--sa-v5-np-tx);background:var(--sa-v5-np-sf);
  border:1px solid var(--sa-v5-np-bd)}
.sa-v5-cl-truth--real{color:var(--sa-v5-gr-tx);background:var(--sa-v5-gr-sf);
  border:1px solid var(--sa-v5-gr-bd)}
.sa-v5-cl-truth--part{color:var(--sa-v5-np-tx);background:var(--sa-v5-np-sf);
  border:1px solid var(--sa-v5-np-bd)}
.sa-v5-cl-cov{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);font-weight:600}

/* ── payout rows ───────────────────────────────────────────────────────── */
.sa-v5-cl-prow{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;
  border-radius:var(--sa-v5-r-row);background:var(--sa-v5-surface);
  border:1px solid var(--sa-v5-line);box-shadow:var(--sa-v5-sh1);padding:11px 13px}
.sa-v5-cl-prow__amt{font-size:var(--sa-v5-fs-h3);font-weight:800;color:var(--sa-v5-ink);
  text-align:right;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sa-v5-cl-prow__amt.is-none{color:var(--sa-v5-ink4);font-size:var(--sa-v5-fs-body)}
.sa-v5-cl-why{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);margin-top:3px}
.sa-v5-cl-st{font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;padding:3px 8px;border-radius:var(--sa-v5-r-pill);
  display:inline-block;border:1px solid var(--sa-v5-line2);background:var(--sa-v5-field);
  color:var(--sa-v5-ink2)}
.sa-v5-cl-st--DE_PLATIT{color:var(--sa-v5-ip-tx);background:var(--sa-v5-ip-sf);border-color:var(--sa-v5-ip-bd)}
.sa-v5-cl-st--PLATIT{color:var(--sa-v5-gr-tx);background:var(--sa-v5-gr-sf);border-color:var(--sa-v5-gr-bd)}
.sa-v5-cl-st--BLOCAT{color:var(--sa-v5-rd);background:var(--sa-v5-rd-sf);border-color:var(--sa-v5-rd-bd)}
.sa-v5-cl-st--ESTIMAT{color:var(--sa-v5-np-tx);background:var(--sa-v5-np-sf);border-color:var(--sa-v5-np-bd)}
.sa-v5-cl-st--NECALCULABIL{color:var(--sa-v5-ink3);background:var(--sa-v5-field)}
.sa-v5-cl-mark{font-size:var(--sa-v5-fs-micro);font-weight:700;padding:2px 7px;
  border-radius:var(--sa-v5-r-pill);background:var(--sa-v5-tq-sf);
  border:1px solid var(--sa-v5-tq-bd);color:var(--sa-v5-tq);display:inline-block}
.sa-v5-cl-unrec{border-radius:var(--sa-v5-r-card);background:var(--sa-v5-np-sf);
  border:1px solid var(--sa-v5-np-bd);padding:13px 15px;margin-bottom:13px}
.sa-v5-cl-unrec__t{font-size:var(--sa-v5-fs-strong);font-weight:800;color:var(--sa-v5-np-tx);
  margin-bottom:5px}
.sa-v5-cl-unrec__l{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sa-v5-cl-hist{width:100%;border-collapse:collapse;font-size:var(--sa-v5-fs-body)}
.sa-v5-cl-hist th{font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sa-v5-ink3);text-align:right;padding:6px 8px;
  border-bottom:1px solid var(--sa-v5-line2)}
.sa-v5-cl-hist th:first-child,.sa-v5-cl-hist td:first-child{text-align:left}
.sa-v5-cl-hist td{padding:7px 8px;border-bottom:1px solid var(--sa-v5-line);
  text-align:right;color:var(--sa-v5-ink2);font-variant-numeric:tabular-nums}
.sa-v5-cl-scroll{overflow-x:auto}
@media (max-width:820px){
  .sa-v5-cl-grid{grid-template-columns:1fr}
  .sa-v5-cl-m{grid-template-columns:repeat(2,1fr)}
  .sa-v5-cl-rrow{grid-template-columns:30px 1fr}
  .sa-v5-cl-rrow__m,.sa-v5-cl-rrow__sub{grid-column:2;text-align:left}
}


/* ── PHASE A · `Vizualizare` — the Azi perspective selector ────────────────────
   Built from the existing `sa-seg` glass control; only the label, the wrapping and
   the count badge are new. No new palette, no new radius, no new type step. */
.az-persp{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.az-persp__lb{font-size:var(--sa-v5-fs-label,10.5px);font-weight:700;letter-spacing:.10em;
  text-transform:uppercase;color:var(--sa-v5-ink3,#697285)}
.az-persp__seg{flex-wrap:wrap;max-width:100%}
.az-persp__b{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.az-persp__n{font-size:var(--sa-v5-fs-micro,10px);font-weight:800;padding:1px 5px;
  border-radius:999px;background:var(--sa-v5-np-sf,#FFF7F1);
  color:var(--sa-v5-np-tx,#93340F);border:1px solid var(--sa-v5-np-bd,#FBB584)}
.sa-hero__who{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.sa-hero__who b{font-size:var(--sa-v5-fs-strong,13px);color:var(--sa-v5-ink,#0F1420)}
@media (max-width:720px){
  .az-persp{justify-content:flex-start}
  .az-persp__seg{overflow-x:auto;flex-wrap:nowrap}
}

/* ══════════════════════════════════════════════════════════════════════════
   PORTOFOLIU · REFINANȚARE — built on the V5 tokens, no new palette.
   Mortgage keeps its cobalt; a provisional value is warm, never green.
   ══════════════════════════════════════════════════════════════════════════ */
.rf-list{display:flex;flex-direction:column;gap:8px}
.rf-row,.rf-wb{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;
  border-radius:var(--sa-v5-r-card);background:var(--sa-v5-surface);
  border:1px solid var(--sa-v5-line);box-shadow:var(--sa-v5-sh1);padding:12px 14px;
  position:relative;overflow:hidden}
.rf-row::before,.rf-wb::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--sa-v5-ip-400),var(--sa-v5-ip))}
.rf-row.is-sel{border-color:var(--sa-v5-ip-bd);background:var(--sa-v5-ip-sf)}
.rf-row__n{font-size:var(--sa-v5-fs-strong);font-weight:800;color:var(--sa-v5-ink);
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;overflow-wrap:anywhere}
.rf-row__s{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);margin-top:3px}
.rf-row__r{text-align:right;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.rf-row__exp{font-size:var(--sa-v5-fs-h3);font-weight:800;color:var(--sa-v5-ink);
  white-space:nowrap;font-variant-numeric:tabular-nums}
.rf-row__sub{font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3);font-weight:600}
.rf-grade{font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;padding:2px 7px;border-radius:var(--sa-v5-r-pill)}
.rf-grade--ok{color:var(--sa-v5-gr-tx);background:var(--sa-v5-gr-sf);
  border:1px solid var(--sa-v5-gr-bd)}
.rf-grade--prov{color:var(--sa-v5-np-tx);background:var(--sa-v5-np-sf);
  border:1px solid var(--sa-v5-np-bd)}
.rf-miss{display:inline-block;font-size:var(--sa-v5-fs-micro);font-weight:700;
  padding:2px 6px;margin:2px 3px 0 0;border-radius:var(--sa-v5-r-pill);
  background:var(--sa-v5-field);border:1px solid var(--sa-v5-line2);color:var(--sa-v5-ink2)}
.rf-missrow{margin-top:5px;font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3)}
.rf-warn{font-size:var(--sa-v5-fs-micro);font-weight:700;color:var(--sa-v5-np-tx);
  background:var(--sa-v5-np-sf);border:1px solid var(--sa-v5-np-bd);
  border-radius:var(--sa-v5-r-pill);padding:1px 6px}
.rf-legacy{margin-top:5px;font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3)}
.rf-legacy code{background:var(--sa-v5-field);border:1px solid var(--sa-v5-line2);
  border-radius:4px;padding:1px 5px;font-family:var(--mono,ui-monospace,Menlo,monospace)}
.rf-prop{margin-top:5px;font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-np-tx);
  background:var(--sa-v5-np-sf);border:1px solid var(--sa-v5-np-bd);
  border-radius:var(--sa-v5-r-pill);padding:5px 9px;display:inline-block}
.rf-prop--none{color:var(--sa-v5-ink3);background:var(--sa-v5-field);
  border-color:var(--sa-v5-line2)}
.rf-conf{font-size:var(--sa-v5-fs-micro);font-weight:800;margin-left:6px;opacity:.8}
.rf-needs{font-size:var(--sa-v5-fs-micro);font-weight:800;margin-left:8px;
  text-transform:uppercase;letter-spacing:.05em}
.rf-why{font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3);margin-top:3px}
.rf-note{margin-top:11px;font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ink2);
  background:var(--sa-v5-tq-sf);border:1px solid var(--sa-v5-tq-bd);
  border-radius:var(--sa-v5-r-pill);padding:9px 12px}
.rf-banner{border-radius:var(--sa-v5-r-card);background:var(--sa-v5-np-sf);
  border:1px solid var(--sa-v5-np-bd);padding:12px 15px;margin-bottom:13px;
  color:var(--sa-v5-np-tx);font-size:var(--sa-v5-fs-body)}
.rf-banner__r{font-size:var(--sa-v5-fs-meta);margin-top:4px;color:var(--sa-v5-ink2)}
.rf-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:13px}
.rf-fl{display:flex;flex-direction:column;gap:3px}
.rf-fl>span{font-size:var(--sa-v5-fs-micro);font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sa-v5-ink3)}
.rf-fl select{font:inherit;font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ink);
  background:var(--sa-v5-field);border:1px solid var(--sa-v5-line2);
  border-radius:var(--sa-v5-r-pill);padding:7px 9px;min-width:130px}
.rf-summary{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink2);margin-bottom:11px;
  background:var(--sa-v5-surface2);border:1px solid var(--sa-v5-line);
  border-radius:var(--sa-v5-r-pill);padding:9px 13px}
.rf-bulk{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:11px;
  padding:10px 14px;border-radius:var(--sa-v5-r-card);background:var(--sa-v5-ip-sf);
  border:1px solid var(--sa-v5-ip-bd);font-size:var(--sa-v5-fs-body);color:var(--sa-v5-ip-tx)}
.rf-mk{margin-top:6px;font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink2)}
.rf-mk--none{color:var(--sa-v5-ink3);font-style:normal}
.rf-delta{margin-left:8px;font-weight:800;font-size:var(--sa-v5-fs-micro);
  padding:1px 7px;border-radius:var(--sa-v5-r-pill);background:var(--sa-v5-field);
  border:1px solid var(--sa-v5-line2)}
/* P0-I — a rate difference is a comparison in percentage points, not a guaranteed
   saving. Green claims a benefit the CRM cannot prove without balance, remaining
   maturity and costs, so the delta wears the neutral mortgage cobalt instead. */
.rf-delta.is-pos{background:var(--sa-v5-ip-sf);border-color:var(--sa-v5-ip-bd);
  color:var(--sa-v5-ip-tx)}
.rf-pf{margin-top:5px;font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink2)}
.rf-pf--none{color:var(--sa-v5-ink3)}
.rf-reasons{margin-top:7px;display:flex;gap:6px;flex-wrap:wrap}
.rf-reason{font-size:var(--sa-v5-fs-micro);font-weight:700;padding:3px 8px;
  border-radius:var(--sa-v5-r-pill);background:var(--sa-v5-ip-sf);
  border:1px solid var(--sa-v5-ip-bd);color:var(--sa-v5-ip-tx)}
.rf-tel{font-size:var(--sa-v5-fs-meta);font-weight:700;color:var(--sa-v5-ip);
  text-decoration:none;border-bottom:1px dotted var(--sa-v5-ip-bd)}
@media (max-width:820px){
  .rf-row,.rf-wb{grid-template-columns:1fr}
  .rf-row__r{align-items:flex-start;text-align:left}
}

.rf-sib{font-size:var(--sa-v5-fs-micro);font-weight:700;padding:2px 7px;
  border-radius:var(--sa-v5-r-pill);background:var(--sa-v5-tq-sf);
  border:1px solid var(--sa-v5-tq-bd);color:var(--sa-v5-tq)}

.rf-prop--ok{color:var(--sa-v5-gr-tx);background:var(--sa-v5-gr-sf);
  border-color:var(--sa-v5-gr-bd)}

/* An <a> wearing the button class kept the browser's default underline, so the primary
   action rendered as underlined text inside a filled button. The button is the same
   control whichever element carries it. */
.sa-v5 a.sa-v5-btn,.sa-v5 a.sa-v5-btn:hover,.sa-v5 a.sa-v5-btn:focus{text-decoration:none}
.rf-prov-inline{color:var(--sa-v5-np-tx);font-weight:600}

/* ── partner references ─────────────────────────────────────────────────────
   A ranked set, not a verdict. Each line carries its own fixed period so two
   different propositions can never look like one. */
.rf-refs{margin-top:7px;border:1px solid var(--sa-v5-line2);border-radius:var(--sa-v5-r-row);
  background:var(--sa-v5-surface2);padding:8px 10px}
.rf-refs__h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  font-size:var(--sa-v5-fs-micro);font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sa-v5-ink3);margin-bottom:5px}
.rf-refs__scope{font-weight:600;letter-spacing:0;text-transform:none;
  color:var(--sa-v5-np-tx);background:var(--sa-v5-np-sf);border:1px solid var(--sa-v5-np-bd);
  border-radius:var(--sa-v5-r-pill);padding:1px 7px}
.rf-ref{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;padding:3px 0;
  font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink2);
  border-top:1px solid var(--sa-v5-line)}
.rf-ref:first-of-type{border-top:0}
.rf-ref.is-first .rf-ref__r{color:var(--sa-v5-ip);font-weight:800}
.rf-ref__r{font-weight:700;font-variant-numeric:tabular-nums;min-width:56px}
.rf-ref__p{font-weight:700;color:var(--sa-v5-ink)}
.rf-ref__m{color:var(--sa-v5-ink3)}
.rf-ref__d,.rf-ref__e{color:var(--sa-v5-ink4);font-size:var(--sa-v5-fs-micro)}
.rf-refs__f{margin-top:6px;font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3)}
.rf-fut{margin-top:5px;font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-tq);
  background:var(--sa-v5-tq-sf);border:1px solid var(--sa-v5-tq-bd);
  border-radius:var(--sa-v5-r-pill);padding:4px 9px;display:inline-block}
.rf-banner--ok{background:var(--sa-v5-gr-sf);border-color:var(--sa-v5-gr-bd);
  color:var(--sa-v5-gr-tx)}
.rf-banner--ok code{background:var(--sa-v5-surface);border:1px solid var(--sa-v5-line2);
  border-radius:4px;padding:0 4px;font-family:var(--mono,ui-monospace,Menlo,monospace)}

.rf-na{color:var(--sa-v5-ink4)}
.rf-na .rf-miss{opacity:.7;font-style:normal}
.rf-none{color:var(--sa-v5-ink4)}
.rf-src{margin-top:6px;font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3)}
.rf-src summary{cursor:pointer;font-weight:700}
.rf-src code{background:var(--sa-v5-surface);border:1px solid var(--sa-v5-line2);
  border-radius:4px;padding:0 4px;font-family:var(--mono,ui-monospace,Menlo,monospace);
  word-break:break-all}

/* ── P2 · DATE CLIENT DE COMPLETAT (§19) ──────────────────────────────────
   Table-shaped information stays a list; what changes is the grammar: one KPI
   family, one row shape, one pill family, tokens instead of literal colours. */
.sa-v5 .ad-split{display:grid;grid-template-columns:minmax(0,1fr) 340px;
  gap:14px;align-items:start;margin-top:14px}
.sa-v5 .ad-main{min-width:0}
.sa-v5 .ad-side{position:sticky;top:12px}
.sa-v5 .ad-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;margin-bottom:12px}
.sa-v5 .ad-k{display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  text-align:left;width:100%;padding:9px 11px;border:1px solid var(--sa-v5-hair);
  border-radius:var(--sa-v5-r-card);background:var(--sa-v5-surface);
  box-shadow:var(--sa-v5-e1);cursor:pointer;transition:border-color .15s var(--sa-v5-ease)}
.sa-v5 .ad-k .sa-v5-k__val{font-size:21px}
.sa-v5 .ad-k .ad-k__word{font-size:14px;font-weight:700;letter-spacing:-.01em}
.sa-v5 .ad-k:hover{border-color:var(--sa-v5-line2)}
/* selection is the ONLY accent a tile carries — a count is a fact, not a verdict */
.sa-v5 .ad-k.is-on{border-color:var(--sa-v5-brand);
  box-shadow:0 0 0 2px var(--sa-v5-brand-sf),var(--sa-v5-e1)}
.sa-v5 .ad-k--note{cursor:default;background:var(--sa-v5-surface2)}
.sa-v5 .ad-k--note:hover{border-color:var(--sa-v5-hair)}

.sa-v5 .ad-filters{margin-bottom:11px}
.sa-v5 .ad-fl--grow{flex:1;min-width:190px}
.sa-v5 .ad-filters input,.sa-v5 .ad-filters select{font:inherit;color:var(--sa-v5-ink);
  padding:6px 9px;border:1px solid var(--sa-v5-line);border-radius:var(--sa-v5-r-pill);
  background:var(--sa-v5-field);min-width:0}
.sa-v5 .ad-filters input:focus,.sa-v5 .ad-filters select:focus{outline:none;
  border-color:var(--sa-v5-brand)}

.sa-v5 .ad-list{border:1px solid var(--sa-v5-hair);border-radius:var(--sa-v5-r-card);
  background:var(--sa-v5-surface);overflow:hidden}
.sa-v5 .ad-row{display:flex;justify-content:space-between;align-items:flex-start;
  gap:12px;width:100%;text-align:left;padding:10px 13px;background:none;border:0;
  border-top:1px solid var(--sa-v5-hair);cursor:pointer;font:inherit;color:inherit}
.sa-v5 .ad-row:first-child{border-top:0}
.sa-v5 .ad-row:hover{background:var(--sa-v5-surface2)}
.sa-v5 .ad-row.is-sel{background:var(--sa-v5-brand-sf)}
.sa-v5 .ad-row__main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.sa-v5 .ad-row__n{font-size:var(--sa-v5-fs-strong);font-weight:700;
  color:var(--sa-v5-ink);overflow-wrap:anywhere}
.sa-v5 .ad-row__s{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink3);
  overflow-wrap:anywhere}
.sa-v5 .ad-row__pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.sa-v5 .ad-row__r{text-align:right;white-space:nowrap;flex:none}
.sa-v5 .ad-row__c{display:block;font-size:17px;font-weight:800;color:var(--sa-v5-ink);
  font-variant-numeric:tabular-nums lining-nums}
.sa-v5 .ad-row__cl{display:block;font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3)}

/* one pill family, three states, each meaning exactly one thing */
.sa-v5 .ad-pill{display:inline-flex;align-items:center;font-size:var(--sa-v5-fs-micro);
  font-weight:600;padding:1px 7px;border-radius:var(--sa-v5-r-pill);
  border:1px solid transparent;white-space:nowrap}
.sa-v5 .ad-pill--missing{background:var(--sa-v5-rd-sf);color:var(--sa-v5-rd-dp);
  border-color:var(--sa-v5-rd-bd)}
.sa-v5 .ad-pill--invalid{background:var(--sa-v5-surface);color:var(--sa-v5-rd-dp);
  border-color:var(--sa-v5-rd)}
/*  is PRODUCT-scoped: inside a Card context it resolves to the Card
   violet. A GDPR note is not a product, so it takes the neutral surface instead. */
.sa-v5 .ad-pill--gdpr{background:var(--sa-v5-surface2);color:var(--sa-v5-ink2);
  border-color:var(--sa-v5-line)}
.sa-v5 .ad-pill--ok{background:var(--sa-v5-gr-sf);color:var(--sa-v5-gr-tx);
  border-color:var(--sa-v5-gr-bd)}

@media (max-width:1180px){
  .sa-v5 .ad-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sa-v5 .ad-split{grid-template-columns:minmax(0,1fr)}
  .sa-v5 .ad-side{position:static}
}
@media (max-width:720px){
  .sa-v5 .ad-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sa-v5 .ad-row{flex-direction:column;gap:6px}
  .sa-v5 .ad-row__r{text-align:left}
  .sa-v5 .ad-row__c{display:inline;font-size:15px}
  .sa-v5 .ad-row__cl{display:inline;margin-left:4px}
}

/* ── P2 · CLIENȚI + PORTOFOLIU CLIENȚI (§19) ──────────────────────────────
   The tables stay tables — that is the right information architecture for a
   dense client list. `.pf-v5` scopes the V5 grammar around them without
   rewriting the console's own markup. */
.sa-v5.pf-v5{padding:0}
.sa-v5.pf-v5 .sa-v5-hero{margin-bottom:12px}

/* the pipeline bar: a volume, stated plainly */
.sa-v5 .pf-pipebar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  margin-bottom:11px;padding:10px 13px;background:var(--sa-v5-surface2);
  border:1px solid var(--sa-v5-hair);border-radius:var(--sa-v5-r-card)}
.sa-v5 .pf-pipebar__main{min-width:0}
/* §19 — an amount is a quantity. Green means "won" everywhere else in this
   product, so the pipeline figure takes ink, not the success colour. */
.sa-v5 .pf-pipebar__v{font-size:17px;font-weight:800;color:var(--sa-v5-ink);
  letter-spacing:-.02em;font-variant-numeric:tabular-nums lining-nums}
.sa-v5 .pf-pipebar__l{font-size:var(--sa-v5-fs-meta);color:var(--sa-v5-ink2);margin-top:1px}
.sa-v5 .pf-pipebar__n{font-size:var(--sa-v5-fs-micro);color:var(--sa-v5-ink3);margin-top:2px}

/* the client table's own amount column carried the same success colour */
.sa-v5.pf-v5 td.pf-amt{color:var(--sa-v5-ink);font-weight:600;
  font-variant-numeric:tabular-nums lining-nums}
/* §19 — `.pf-val-num` is defined as emerald in index.html's inline stylesheet.
   Inside the V5 portfolio it is a credit amount, so it reads as a number. */
.sa-v5.pf-v5 .pf-val-num{color:var(--sa-v5-ink)}

.sa-v5.pf-v5 .table-wrap{border:1px solid var(--sa-v5-hair);
  border-radius:var(--sa-v5-r-card);background:var(--sa-v5-surface);overflow:auto}
.sa-v5.pf-v5 .pf-work-console{background:none}

/* ── FINCASE-01 · PARTICIPANȚI + FINANȚĂRI (§8/§9/§10/§19) ────────────────
   Compact roles, no generic grey admin panel, no internal ids on screen. */
.sa-v5 .fc-sec,.zc-root .fc-sec{border:1px solid var(--sa-v5-hair,#E7E2D8);
  border-radius:var(--sa-v5-r-card,12px);background:var(--sa-v5-surface,#fff);
  padding:11px 13px;margin:2px 0}
.fc-sec__h{display:flex;align-items:baseline;gap:8px;margin-bottom:7px}
.fc-sec__t{font-size:13px;font-weight:700;color:var(--sa-v5-ink,#1B2130);
  letter-spacing:-.01em}
.fc-sec__m{font-size:11px;color:var(--sa-v5-ink3,#697285)}
.fc-list{display:flex;flex-direction:column;gap:5px}
.fc-row{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:6px 0;border-top:1px solid var(--sa-v5-hair,#EFEAE1)}
.fc-row:first-child{border-top:0}
.fc-row__main{min-width:0;display:flex;flex-direction:column;gap:1px}
.fc-name{background:none;border:0;padding:0;font:inherit;font-weight:700;
  font-size:13px;color:var(--sa-v5-ink,#1B2130);text-align:left;cursor:pointer;
  overflow-wrap:anywhere}
.fc-name:hover{text-decoration:underline}
.fc-row__s{font-size:11px;color:var(--sa-v5-ink3,#697285)}
.fc-row__r{display:flex;align-items:center;gap:5px;flex:none;flex-wrap:wrap;
  justify-content:flex-end}

/* three roles, three weights — the primary debtor is the only emphatic one */
.fc-role{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;
  padding:1px 8px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.fc-role--primary_debtor{background:var(--sa-v5-brand-sf,#EEF4FF);
  color:var(--sa-v5-brand-dp,#1D4ED8);border-color:var(--sa-v5-brand-bd,#C7D9FF)}
.fc-role--co_debtor{background:var(--sa-v5-surface2,#FDFBF7);
  color:var(--sa-v5-ink2,#3A4356);border-color:var(--sa-v5-line,#EAE4DA)}
.fc-role--guarantor{background:var(--sa-v5-surface2,#FDFBF7);
  color:var(--sa-v5-ink3,#697285);border-color:var(--sa-v5-line,#EAE4DA)}

.fc-mini{font-size:10.5px!important;padding:2px 8px!important;height:auto!important}
.fc-add{margin-top:9px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fc-in{font:inherit;font-size:12px;padding:5px 9px;border-radius:999px;
  border:1px solid var(--sa-v5-line,#EAE4DA);background:var(--sa-v5-field,#F3EFE7);
  color:var(--sa-v5-ink,#1B2130);min-width:0;flex:1}
.fc-in--role{flex:none;min-width:132px}
.fc-in:focus{outline:none;border-color:var(--sa-v5-brand,#1D4ED8)}
.fc-res{flex-basis:100%;display:flex;flex-direction:column;gap:2px;margin-top:2px}
.fc-res__i{text-align:left;background:var(--sa-v5-surface2,#FDFBF7);border:1px solid
  var(--sa-v5-hair,#EFEAE1);border-radius:9px;padding:5px 9px;font:inherit;
  font-size:12px;cursor:pointer;color:var(--sa-v5-ink,#1B2130)}
.fc-res__i:hover{border-color:var(--sa-v5-brand,#1D4ED8)}

/* the client's financings */
.fc-finlist{display:flex;flex-direction:column;gap:6px}
.fc-fin{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
  border:1px solid var(--sa-v5-hair,#E7E2D8);border-radius:var(--sa-v5-r-card,12px);
  background:var(--sa-v5-surface,#fff);padding:9px 12px}
.fc-fin__l{min-width:0}
.fc-fin__t{font-size:13px;font-weight:700;color:var(--sa-v5-ink,#1B2130)}
.fc-fin__s{font-size:11.5px;color:var(--sa-v5-ink3,#697285);margin-top:1px;
  overflow-wrap:anywhere}
.fc-fin__w{font-size:11px;color:var(--sa-v5-ink3,#697285);margin-top:2px}
.fc-fin__r{flex:none}

@media (max-width:720px){
  .fc-row{flex-direction:column;align-items:flex-start;gap:4px}
  .fc-row__r{justify-content:flex-start}
  .fc-fin{flex-direction:column}
  .fc-in--role{width:100%}
}

/* ── BANKATTEMPT-01 · TRASEU BANCAR (§16/§26) ─────────────────────────────
   A routing history, deliberately NOT shaped like the dossier stage rail: rows,
   not a track; status is a chip on the bank, not a position in a sequence. */
.ba-list{display:flex;flex-direction:column;gap:5px}
.ba-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
  padding:7px 0;border-top:1px solid var(--sa-v5-hair,#EFEAE1)}
.ba-row:first-child{border-top:0}
.ba-row.is-sel{background:var(--sa-v5-brand-sf,#EEF4FF);border-radius:9px;
  padding-left:8px;padding-right:8px}
.ba-row__main{min-width:0}
.ba-row__top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ba-inst{font-size:13px;font-weight:700;color:var(--sa-v5-ink,#1B2130)}
.ba-row__s{font-size:11px;color:var(--sa-v5-ink3,#697285);margin-top:2px;
  overflow-wrap:anywhere}
.ba-why{font-size:11px;color:var(--sa-v5-rd-dp,#991B1B);margin-top:2px}
.ba-row__acts{display:flex;gap:4px;flex-wrap:wrap;flex:none;justify-content:flex-end}
.ba-mini{font-size:10.5px!important;padding:2px 8px!important;height:auto!important}

/* status is a fact about the bank's answer, in one small chip */
.ba-st{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;
  padding:1px 8px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.ba-st--prep{background:var(--sa-v5-surface2,#FDFBF7);color:var(--sa-v5-ink3,#697285);
  border-color:var(--sa-v5-line,#EAE4DA)}
.ba-st--sent,.ba-st--rev,.ba-st--docs{background:var(--sa-v5-brand-sf,#EEF4FF);
  color:var(--sa-v5-brand-dp,#1D4ED8);border-color:var(--sa-v5-brand-bd,#C7D9FF)}
.ba-st--ok{background:var(--sa-v5-gr-sf,#EFFBF5);color:var(--sa-v5-gr-tx,#065F46);
  border-color:var(--sa-v5-gr-bd,#BBF0D8)}
.ba-st--no{background:var(--sa-v5-rd-sf,#FEF2F2);color:var(--sa-v5-rd-dp,#991B1B);
  border-color:var(--sa-v5-rd-bd,#FBD5D5)}
.ba-st--off{background:var(--sa-v5-surface2,#FDFBF7);color:var(--sa-v5-ink3,#697285);
  border-color:var(--sa-v5-line,#EAE4DA)}
.ba-st--fund{background:var(--sa-v5-gr-sf,#EFFBF5);color:var(--sa-v5-gr-tx,#065F46);
  border-color:var(--sa-v5-gr,#10B981)}
.ba-st--unk{background:var(--sa-v5-surface2,#FDFBF7);color:var(--sa-v5-ink3,#697285);
  border-color:var(--sa-v5-line,#EAE4DA);font-style:italic}

/* the selected route is obvious without shouting */
.ba-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;
  padding:1px 7px;border-radius:999px;white-space:nowrap}
.ba-badge--sel{background:var(--sa-v5-brand,#1D4ED8);color:#fff}
.ba-badge--fund{background:var(--sa-v5-gr-tx,#065F46);color:#fff}

.ba-add{margin-top:9px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ba-in--amt{max-width:170px}

@media (max-width:720px){
  .ba-row{flex-direction:column;gap:6px}
  .ba-row__acts{justify-content:flex-start}
  .ba-add>*{width:100%}
}

/* ── ROUTING-01 · TRASEE CONTRACTUALE ─────────────────────────────────────── */
.rt-list{display:flex;flex-direction:column;gap:5px}
.rt-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
  padding:8px 11px;border:1px solid var(--sa-v5-hair,#E7E2D8);
  border-radius:var(--sa-v5-r-card,12px);background:var(--sa-v5-surface,#fff)}
.rt-row.is-blocked{border-color:var(--sa-v5-rd-bd,#FBD5D5);
  background:var(--sa-v5-rd-sf,#FEF2F2)}
.rt-row__main{min-width:0}
.rt-row__n{font-size:13px;font-weight:700;color:var(--sa-v5-ink,#1B2130)}
.rt-prod{font-size:10.5px;font-weight:700;color:var(--sa-v5-ink3,#697285);
  border:1px solid var(--sa-v5-line,#EAE4DA);border-radius:999px;padding:0 6px;
  margin-left:4px}
.rt-row__s{font-size:11.5px;color:var(--sa-v5-ink2,#3A4356);margin-top:2px}
.rt-src{font-size:10.5px;color:var(--sa-v5-ink3,#697285);margin-top:2px;
  overflow-wrap:anywhere}
.rt-row__r{display:flex;gap:5px;align-items:center;flex:none;flex-wrap:wrap;
  justify-content:flex-end}
.rt-warn{font-size:12px;color:var(--sa-v5-ink2,#3A4356);
  background:var(--sa-v5-surface2,#FDFBF7);border:1px solid var(--sa-v5-line,#EAE4DA);
  border-radius:var(--sa-v5-r-card,12px);padding:9px 12px;margin-bottom:10px}
@media (max-width:720px){ .rt-row{flex-direction:column} .rt-row__r{justify-content:flex-start} }

/* PF-FRONTLINE-BATCH-1-SELF-SUFFICIENT-BLOCK
   Everything below this marker renders on surfaces that mount on <body>, outside the
   `.sa-v5` token scope. The UI proof scans from this marker down and fails the release
   if any var() here lacks a literal fallback. */

/* ══════════════════════════════════════════════════════════════════════════
   PF FRONTLINE BATCH 1 §2 — CNP identity hint + conflict.

   Every custom property below carries its literal fallback. The colour tokens are
   declared on `.sa-v5`, but the `Client PF nou` modal is appended to <body> OUTSIDE
   that scope: without the fallback the block would render with no background and no
   border exactly where it matters most, and nothing in the markup would say why.
   ══════════════════════════════════════════════════════════════════════════ */
.cnpid-hint{margin-top:6px;font-size:var(--sa-v5-fs-meta,11.5px);font-weight:600;
  line-height:1.5;color:var(--sa-v5-ip-tx,#1B3A80);background:var(--sa-v5-ip-sf,#F4F8FF);
  border:1px solid var(--sa-v5-ip-bd,#8FBAFB);border-radius:10px;padding:7px 10px}
.cnpid-hint b{font-weight:800}
.cnpid-hint--bad{color:var(--sa-v5-rd-dp,#7F1D1D);background:var(--sa-v5-rd-sf,#FEE2E2);
  border-color:var(--sa-v5-rd-bd,#F49898)}

.cnpid-conf{margin-top:8px;border-radius:12px;padding:10px 12px;
  color:var(--sa-v5-np-tx,#93340F);background:var(--sa-v5-np-sf,#FFF7F1);
  border:1px solid var(--sa-v5-np-bd,#FBB584)}
.cnpid-conf__t{font-size:var(--sa-v5-fs-strong,13px);font-weight:800;
  color:var(--sa-v5-np-dp,#7C2D12);margin-bottom:5px}
.cnpid-conf__l{margin:0 0 6px;padding-left:18px;font-size:var(--sa-v5-fs-body,12.5px);
  line-height:1.6}
.cnpid-conf__l b{font-weight:800}
.cnpid-conf__m{font-size:var(--sa-v5-fs-meta,11.5px);font-weight:600;line-height:1.5;
  color:var(--sa-v5-np-tx,#93340F)}
.cnpid-conf__a{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;align-items:center}
/* acknowledged: the divergence is a decision now, not an open question */
.cnpid-conf--acked{background:var(--sa-v5-surface2,#FBFCFE);
  border-color:var(--sa-v5-line2,#D4DCE8);color:var(--sa-v5-ink2,#3A4356)}
.cnpid-conf--acked .cnpid-conf__t{color:var(--sa-v5-ink,#0F1420)}
.cnpid-conf--acked .cnpid-conf__m{color:var(--sa-v5-ink3,#697285)}

/* an empty registry and a failed read must not look alike — see _clDossierBlock */
.zw-hint--bad{color:var(--sa-v5-rd-dp,#7F1D1D)}
.sa-v5-mini{padding:3px 9px;font-size:var(--sa-v5-fs-micro,10px)}

/* ──────────────────────────────────────────────────────────────────────────
   Button self-sufficiency outside the `.sa-v5` token scope.

   `.sa-v5-btn--primary` fills itself with a linear-gradient built from two custom
   properties declared on `.sa-v5`. Both `#zw-root` (the unified client/dossier
   drawer) and `.modal-overlay` (the `Client PF nou` form) are appended to <body>,
   OUTSIDE that element — and an unresolved var() invalidates the WHOLE gradient
   declaration, leaving `color:#fff` on no background at all. The button is still
   there, still clickable, and completely invisible.

   Restating both variants with literal fallbacks is a no-op wherever the tokens
   exist, because var() prefers the token and only falls back when it is missing.
   Verified in a real browser: inside `.sa-v5` the computed background-image is the
   same gradient as before.
   ────────────────────────────────────────────────────────────────────────── */
.sa-v5-btn{color:var(--sa-v5-ink2,#3A4356);border-color:var(--sa-v5-line2,#D4DCE8);
  border-radius:var(--sa-v5-r-pill,999px);font-size:var(--sa-v5-fs-body,12.5px)}
.sa-v5-btn:hover{border-color:var(--sa-v5-ink4,#98A1B2);color:var(--sa-v5-ink,#0F1420)}
.sa-v5-btn:focus-visible{outline:3px solid var(--sa-v5-ip-400,#3B82F6);outline-offset:2px}
.sa-v5-btn--primary,.sa-v5-btn--primary:hover{color:#fff;
  border-color:var(--sa-v5-ink,#0F1420);
  background:linear-gradient(160deg,var(--sa-v5-ink2,#3A4356),var(--sa-v5-ink,#0F1420))}

/* ──────────────────────────────────────────────────────────────────────────
   The Colaboratori form primitives, made self-sufficient for the same reason.

   `.sa-v5-cl-*` was written for the Colaboratori SECTION, which renders inside
   `.sa-v5`. The furnizor block and the in-dossier `Furnizor nou` form render inside
   `#zw-root`, which does not — so `background:var(--sa-v5-field)` and
   `border:1px solid var(--sa-v5-line2)` both resolved to nothing and the inputs
   appeared as bare labels with no box at all. A real browser showed it; no amount of
   DOM-stub rendering could have.

   Restated with literal fallbacks, so the same markup is usable in both places.
   ────────────────────────────────────────────────────────────────────────── */
.sa-v5-cl-form{border-radius:var(--sa-v5-r-card,12px);background:var(--sa-v5-surface,#fff);
  border:1px solid var(--sa-v5-line,#E4E9F1)}
.sa-v5-cl-lb{font-size:var(--sa-v5-fs-label,10.5px);color:var(--sa-v5-ink3,#697285)}
.sa-v5-cl-in,.sa-v5-cl-sel,.sa-v5-cl-ta{font-size:var(--sa-v5-fs-body,12.5px);
  color:var(--sa-v5-ink,#0F1420);background:var(--sa-v5-field,#F1F4FA);
  border:1px solid var(--sa-v5-line2,#D4DCE8);border-radius:var(--sa-v5-r-pill,999px)}
.sa-v5-cl-in:focus,.sa-v5-cl-sel:focus,.sa-v5-cl-ta:focus{
  outline:2px solid var(--sa-v5-ip-400,#3B82F6);background:var(--sa-v5-surface,#fff)}
.sa-v5-cl-err{font-size:var(--sa-v5-fs-body,12.5px);color:var(--sa-v5-rd-dp,#7F1D1D);
  background:var(--sa-v5-rd-sf,#FEE2E2);border:1px solid var(--sa-v5-rd-bd,#F49898);
  border-radius:var(--sa-v5-r-pill,999px)}
.sa-v5-sect__t{font-size:var(--sa-v5-fs-label,10.5px);color:var(--sa-v5-ink3,#697285)}
.sa-v5-sect__t::after{background:var(--sa-v5-line,#E4E9F1)}

/* ──────────────────────────────────────────────────────────────────────────
   PJ OPERATOR V2 — visual reconstruction.

   Exactly two rules, both structural. No colour, no font, no radius, no shadow is
   introduced: every visual token still comes from the Azi primitives the markup
   already uses, which is what the computed-style gate measures.
   ────────────────────────────────────────────────────────────────────────── */

/* The panel header. `sa-panel__id` is a grid whose first column holds Azi's large
   avatar; PJ shows no avatar, so it needs the same stack without that column. */
.sa-v5 .sa-panel__hd{display:block;margin-bottom:10px}
.sa-v5 .sa-panel__hd .sa-v5-meta{margin-top:2px}

/* The worklist row is three lines and no portrait, so the reason line sits directly
   under the identity instead of being pushed down by an avatar-height head. */
.sa-v5 .sa-v5-list .sa-v5-card .sa-v5-why{margin-top:6px;align-items:baseline}
.sa-v5 .sa-v5-list .sa-v5-card .sa-v5-why .sa-v5-due{margin-left:auto}

/* At the narrow breakpoint the filter groups must be allowed to wrap. `.sa-fgroup` is
   `nowrap` in the shared kit, which suits Azi's short segment labels; PJ's band labels
   (`De făcut acum`, `Nou / De contactat`) are longer and pushed the cluster past the
   right edge at 390px. Scoped to the breakpoint that already exists, so the desktop
   geometry measured against Azi is untouched. */
@media (max-width:900px){
  .sa-v5 .sa-sechead .sa-fgroup{flex-wrap:wrap}
}

/* ══════════════════════════════════════════════════════════════════════════
   PJ VISUAL FINISH — composition only.

   No new colour, font, radius or shadow: every value below is either a layout
   dimension or an existing token. The computed-style gate compares PJ against Azi
   on type, colour, radius, shadow and padding and must keep passing.
   ══════════════════════════════════════════════════════════════════════════ */

/* §2.A — the list is dominant at 68–72 / 28–32. `sa-v5-split` is Azi's ratio and
   stays untouched for Azi; PJ states its own because the contract fixes it. */
.sa-v5 .pjw-surface--split{display:grid;grid-template-columns:70fr 30fr;
  gap:16px;align-items:start}

/* §2.B — with one or two cases a 70/30 split leaves two small objects adrift in a
   very large canvas. The surface becomes ONE column of bounded width: the list on
   top, its context directly beneath, reading as a single work surface (§9). */
.sa-v5 .pjw-surface--focus{display:block;max-width:920px}
.sa-v5 .pjw-surface--focus .pjw-panel{margin-top:12px;position:static;width:auto}
.sa-v5 .pjw-surface--focus .sa-v5-card{cursor:default}

/* §2.C — zero is a short sentence, not a canvas-sized card. */
.sa-v5 .pjw-surface--zero{max-width:920px}

/* §9 — list and detail start on the same line and share one rhythm. */
.sa-v5 .pjw-surface{align-items:start}
.sa-v5 .pjw-list{min-width:0}
.sa-v5 .pjw-panel{min-width:0}

/* §3 — three axes, three weights. Scope is the neutral chip the kit already
   defines; the band group carries the accent and the counts; the KPI is text. */
.sa-v5 .pjw-scope .sa-chip[aria-pressed="true"],
.sa-v5 .co-bar .sa-chip[aria-pressed="true"]{
  background:var(--sa-v5-field,#F1F4FA);border-color:var(--sa-v5-line2,#D4DCE8);
  color:var(--sa-v5-ink,#0F1420)}
.sa-v5 .pjw-kpi{white-space:nowrap}
.sa-v5 .pjw-kpi b{color:var(--sa-v5-ink,#0F1420)}

/* §5 — age is a stated fact and is typed as meta, never as an urgency treatment. */
.sa-v5 .pjw-age{margin-left:auto}
.sa-v5 .sa-v5-why .sa-v5-due{margin-left:8px}

/* §14 — a score that does not discriminate is readable but not a ranking. */
.sa-v5 .co-score--flat{white-space:nowrap;opacity:.75}

/* Companii rows use the Dosare row verbatim; only the trailing fields need to keep
   from collapsing on a narrow column. */
.sa-v5 .co-list{min-width:0}
/* the contact chip carries a phone number, and an ellipsised phone is worse than
   no phone at all: the cell is sized for the real values (longest measured 243px)
   instead of cutting digits. Ellipsis stays only as the outlier fallback. */
.sa-v5 .co-row .sa-v5-inst{max-width:264px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.sa-v5 .co-bar .filter-select{height:32px}

@media (max-width:1080px){
  .sa-v5 .pjw-surface--split{grid-template-columns:1fr}
}

@media (max-width:860px){
  /* `.sa-v5-dr` starts wrapping here. The trailing cells are rigid (nowrap chips),
     so without this the identity column — the one thing the row exists to show —
     was compressed to 3-8px. Identity owns the first line; the facts follow. */
  .sa-v5 .co-row .sa-v5-dr__id{flex:1 1 100%;min-width:0}
  /* at this width a long contact cannot fit on one line; wrapping keeps the whole
     phone number readable, truncating it would not. */
  .sa-v5 .co-row .sa-v5-inst{max-width:100%;white-space:normal;overflow-wrap:anywhere}
}

/* ═══════════════════════════════════════════════════════════════════════════
   ÎNCHIDEREA ZILEI (DCC V2)
   Same design system as Azi / Dosare / PJ Operator: no new palette, no new
   radius family, no hero. Every colour below is a token of `.sa-v5` with a
   literal fallback, because these rules also apply on surfaces that mount
   outside `.sa-v5` where an unresolved token would invalidate the declaration.
   ═══════════════════════════════════════════════════════════════════════════ */
.sa-v5 .dcc-bar{align-items:center}
.sa-v5 .dcc-why{margin:2px 0 10px}
.sa-v5 .dcc-note{margin:0 0 10px}

/* §21 — the verdict is legible at a glance and is NOT a hero */
.sa-v5 .dcc-verdict{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;
  border-radius:100px;font-size:var(--sa-v5-fs-micro,11px);font-weight:800;
  letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border:1px solid}
.sa-v5 .dcc-v--ok{background:#ECFDF5;color:#065F46;border-color:#A7F3D0}
.sa-v5 .dcc-v--debt{background:#FEF2F2;color:#991B1B;border-color:#FECACA}
.sa-v5 .dcc-v--unk{background:#FFFBEB;color:#92400E;border-color:#FDE68A}
.sa-v5 .dcc-v--na{background:var(--sa-v5-field,#F1F4FA);color:var(--sa-v5-ink2,#4A5568);
  border-color:var(--sa-v5-line2,#D4DCE8)}

/* §22 — operational filters, not KPI vanity cards */
.sa-v5 .dcc-strip{gap:8px;flex-wrap:wrap;margin:0 0 12px}
.sa-v5 .dcc-f{white-space:nowrap}
.sa-v5 .dcc-f--on{background:var(--sa-v5-brand-sf,#EAF0FB);
  border-color:var(--sa-v5-brand-bd,#BBD0F2);color:var(--sa-v5-brand-dp,#1D4ED8)}
.sa-v5 .dcc-f--zero{opacity:.55}
.sa-v5 .dcc-total{margin-left:auto;white-space:nowrap}

/* §23 — 70/30, and §25: a couple of rows must not be stretched over the canvas */
.sa-v5 .dcc-surface{display:grid;grid-template-columns:70fr 30fr;gap:16px;align-items:start}
.sa-v5 .dcc-surface--focus{display:block;max-width:920px}
.sa-v5 .dcc-surface--focus .dcc-panel{margin-top:12px}
.sa-v5 .dcc-list{min-width:0;display:flex;flex-direction:column;gap:8px}
.sa-v5 .dcc-panel{min-width:0}
.sa-v5 .dcc-zero{max-width:920px}

.sa-v5 .dcc-row{cursor:pointer;display:flex;flex-direction:column;gap:4px}
.sa-v5 .dcc-row__hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sa-v5 .dcc-row__l2{min-width:0;overflow-wrap:anywhere}
.sa-v5 .dcc-row__ft{display:flex;align-items:center;gap:10px}
.sa-v5 .dcc-row__ft .sa-v5-due{margin-left:auto}
.sa-v5 .dcc-row--on{border-color:var(--sa-v5-ink,#111726);box-shadow:var(--sa-v5-e2,0 4px 12px rgba(16,24,40,.08))}

/* the category is a neutral label; only the discipline flag carries alarm, and
   age alone never does (§23) */
.sa-v5 .dcc-tag{display:inline-flex;padding:2px 8px;border-radius:100px;
  font-size:var(--sa-v5-fs-micro,11px);font-weight:700;white-space:nowrap;
  background:var(--sa-v5-field,#F1F4FA);color:var(--sa-v5-ink2,#4A5568);
  border:1px solid var(--sa-v5-line2,#D4DCE8)}
.sa-v5 .dcc-flag{display:inline-flex;padding:2px 8px;border-radius:100px;
  font-size:var(--sa-v5-fs-micro,11px);font-weight:800;white-space:nowrap;border:1px solid}
.sa-v5 .dcc-flag--defect{background:#FEF2F2;color:#991B1B;border-color:#FECACA}
.sa-v5 .dcc-flag--unknown{background:#FFFBEB;color:#92400E;border-color:#FDE68A}

/* §24 — the detail answers the questions, it does not repeat the row's identity */
.sa-v5 .dcc-cockpit{padding:14px}
.sa-v5 .dcc-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0}
.sa-v5 .dcc-facts dt{font-size:var(--sa-v5-fs-micro,11px);font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;color:var(--sa-v5-ink3,#7A8698);
  white-space:nowrap}
.sa-v5 .dcc-facts dd{margin:0;font-size:var(--sa-v5-fs-meta,12px);
  color:var(--sa-v5-ink,#0F1420);overflow-wrap:anywhere}
.sa-v5 .dcc-def{margin-top:12px;padding-top:10px;border-top:1px solid var(--sa-v5-hair,#EDE8DF)}
.sa-v5 .dcc-def__t{font-size:var(--sa-v5-fs-micro,11px);font-weight:800;text-transform:uppercase;
  letter-spacing:.04em;color:#991B1B}
.sa-v5 .dcc-def__l{margin:6px 0 0;padding-left:18px;font-size:var(--sa-v5-fs-meta,12px);
  color:var(--sa-v5-ink,#0F1420)}
.sa-v5 .dcc-cta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

.sa-v5 .dcc-form{margin-top:12px;padding-top:10px;border-top:1px solid var(--sa-v5-hair,#EDE8DF);
  display:flex;flex-direction:column;gap:8px}
.sa-v5 .dcc-form__t{font-size:var(--sa-v5-fs-micro,11px);font-weight:800;text-transform:uppercase;
  letter-spacing:.04em;color:var(--sa-v5-ink3,#7A8698)}
.sa-v5 .dcc-form__e{font-size:var(--sa-v5-fs-meta,12px);color:#991B1B}
/* the drawer inputs mount inside `.sa-v5`, but the literal fallbacks stay so a
   token that is not published here can never render an invisible field */
.sa-v5 .dcc-form .sa-v5-cl-in{width:100%;box-sizing:border-box;height:34px;padding:0 10px;
  border:1px solid var(--sa-v5-line2,#D4DCE8);border-radius:9px;
  background:var(--sa-v5-surface,#fff);color:var(--sa-v5-ink,#0F1420);
  font-family:inherit;font-size:13px}

/* §14 — the next day is a compact fact block, not a second planner */
.sa-v5 .dcc-next{margin-top:16px;padding-top:12px;border-top:1px solid var(--sa-v5-hair,#EDE8DF)}
.sa-v5 .dcc-next__t{font-weight:700;margin-bottom:6px}
.sa-v5 .dcc-next__r{display:flex;align-items:center;gap:10px;padding:5px 0;min-width:0}
.sa-v5 .dcc-next__r .sa-v5-due{margin-left:auto}
.sa-v5 .dcc-next__r .sa-v5-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* §27 — mobile is list → detail, never a squeezed 70/30 */
@media (max-width:1080px){
  .sa-v5 .dcc-surface--split{grid-template-columns:1fr}
  .sa-v5 .dcc-panel{margin-top:4px}
}
@media (max-width:860px){
  .sa-v5 .dcc-total{margin-left:0;width:100%}
  .sa-v5 .dcc-facts{grid-template-columns:1fr;gap:1px 0}
  .sa-v5 .dcc-facts dd{margin-bottom:6px}
  .sa-v5 .dcc-next__r{flex-wrap:wrap}
  .sa-v5 .dcc-next__r .sa-v5-due{margin-left:0}
  .sa-v5 .dcc-next__r .sa-v5-meta{white-space:normal}
}

/* ═══════════════════════════════════════════════════════════════════════════
   IA CONSOLIDATION V1 — the shared surface anatomy.

   One header, one mode switcher, one rhythm for every consolidated surface, so
   Azi, Clienți, Portofoliu and Furnizori read as one product. No new palette,
   no new radius family, no hero: the tokens are the ones `.sa-v5` already
   publishes, each with a literal fallback because these rules also apply on
   nodes that mount outside a `.sa-v5` ancestor.
   ═══════════════════════════════════════════════════════════════════════════ */
.sa-v5 .ia-head{margin:0 0 14px}
.sa-v5 .ia-head__top{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}
.sa-v5 .ia-head__id{min-width:0;flex:1}
.sa-v5 .ia-head__eyebrow{font-size:var(--sa-v5-fs-micro,11px);font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;color:var(--sa-v5-ink3,#7A8698);
  margin-bottom:3px}
/* the title is the largest thing on the surface — hierarchy, not decoration */
.sa-v5 .ia-head__ttl{margin:0;font-size:21px;line-height:1.15;font-weight:800;
  letter-spacing:-.02em;color:var(--sa-v5-ink,#0F1420)}
.sa-v5 .ia-head__sub{margin-top:4px;font-size:var(--sa-v5-fs-meta,12px);
  color:var(--sa-v5-ink3,#7A8698);max-width:62ch}
.sa-v5 .ia-head__act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ── mode switcher (§12B) · one control, one row, selected state unmistakable */
.sa-v5 .ia-modes{display:flex;gap:4px;margin-top:12px;padding:3px;border-radius:11px;
  background:var(--sa-v5-field,#F1F4FA);border:1px solid var(--sa-v5-line,#E6EAF2);
  width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.sa-v5 .ia-modes::-webkit-scrollbar{display:none}
.sa-v5 .ia-mode{appearance:none;border:0;cursor:pointer;font-family:inherit;
  white-space:nowrap;display:inline-flex;align-items:center;gap:6px;
  padding:6px 13px;border-radius:9px;background:transparent;
  font-size:13px;font-weight:650;color:var(--sa-v5-ink2,#4A5568);
  transition:background .15s var(--sa-v5-ease,ease),color .15s var(--sa-v5-ease,ease)}
.sa-v5 .ia-mode:hover{color:var(--sa-v5-ink,#0F1420)}
.sa-v5 .ia-mode--on{background:var(--sa-v5-surface,#fff);color:var(--sa-v5-ink,#0F1420);
  font-weight:800;box-shadow:var(--sa-v5-e1,0 1px 2px rgba(16,24,40,.05))}
.sa-v5 .ia-mode:focus-visible{outline:3px solid var(--sa-v5-ip-400,#7DA2F0);outline-offset:2px}
.sa-v5 .ia-modes__n{font-variant-numeric:tabular-nums;font-size:11px;font-weight:800;
  padding:1px 6px;border-radius:100px;background:var(--sa-v5-field,#F1F4FA);
  color:var(--sa-v5-ink3,#7A8698)}
.sa-v5 .ia-mode--on .ia-modes__n{background:var(--sa-v5-brand-sf,#EAF0FB);
  color:var(--sa-v5-brand-dp,#1D4ED8)}

/* ── the consolidated shell sits directly above the surface body ─────────── */
.sa-v5.ia-surface .sa-wrap{padding-bottom:0}
.ia-surface + .sa-v5 .sa-v5-hero,
.ia-surface + .sa-v5 > .sa-v5-hero{margin-top:0}
/* An inner view keeps its controls but no longer opens with a second title
   block, so the surface has exactly one header and one vertical rhythm. */
.sa-v5 .sa-v5-hero:empty{display:none}
.sa-v5 .sa-v5-hero__top > div:empty{display:none}

@media (max-width:860px){
  .sa-v5 .ia-head__top{gap:10px}
  .sa-v5 .ia-head__ttl{font-size:19px}
  .sa-v5 .ia-modes{width:100%;justify-content:flex-start}
  .sa-v5 .ia-head__act{width:100%}
}

/* ═══════════════════════════════════════════════════════════════════════════
   IA PREMIUM FINAL PATCH — the last two mobile defects, fixed at the cause.
   Visual only: no template, no handler and no business rule is touched.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width:860px){
  /* VENITURI · bank concentration row.
     A mobile layout for this row already existed earlier in this stylesheet, but a
     LATER unconditional rule re-declared `grid-template-columns` with the desktop
     five-column template. Equal specificity, so last-one-wins: at 390px the row
     resolved to `22px 88px 76px 0px 14px`, which left the amount cell 22px wide
     while it carried "2.401.324 RON" + its share (86px of ink), and handed the
     bar 240px. Restated HERE, after that rule, so the mobile layout is the one
     that actually applies. */
  .sa-v5 .sa-v5-bnk{grid-template-columns:22px minmax(0,1fr) auto;row-gap:3px}
  /* the cells are PLACED, not auto-flowed: the bar spans the full width on its own
     line, and auto-placement would otherwise push the amount onto a third line
     into the 22px rank column — which is how it kept measuring 22px wide. */
  .sa-v5 .sa-v5-bnk__i{grid-area:1/1/2/2}
  .sa-v5 .sa-v5-bnk__n{grid-area:1/2/2/3}
  .sa-v5 .sa-v5-bnk__v{grid-area:1/3/2/4}
  .sa-v5 .sa-v5-bnk__bar{grid-area:2/1/3/4}
  /* the bank name gets the line instead of an ellipsis that ate its last letters
     ("Intesa Sanpaol…", "Libra Internet B…") */
  .sa-v5 .sa-v5-bnk__n{width:auto;min-width:0;white-space:normal;
    overflow:visible;text-overflow:clip;line-height:1.25}
  /* the money keeps its own column and never wraps mid-number */
  .sa-v5 .sa-v5-bnk__v{white-space:nowrap;text-align:right}

  /* DOSARE · dossier row.
     `.sa-v5-dr` wraps at this width, but its identity column is `flex:1` beside
     rigid `nowrap` chips (tag 124px, inst 93px, late 116px, stage 143px,
     amount 84px). In a 266px row the client name was squeezed to 52px and wrapped
     vertically down 226px. Identity owns the first line; the facts follow it.
     The same rule already existed scoped to `.co-row`; it belongs to the row
     primitive itself, which is where it now lives. */
  .sa-v5 .sa-v5-dr__id{flex:1 1 100%;min-width:0}

  /* VENITURI / FURNIZORI · the month selector sits in a hero with `overflow:hidden`,
     and at 390px its row was 31px wider than the box, so the "curentă" badge lost
     its last 13px of ink. The hero row wraps here instead of cropping a word. */
  .sa-v5 .sa-v5-hero__top{flex-wrap:wrap;row-gap:8px}
  .sa-v5 .t6-msel{flex-wrap:wrap;row-gap:6px;min-width:0}
  .sa-v5 .sa-v5-hero__spacer{display:none}

  /* The mode switcher is mine, and at 390px its third mode ("Date incomplete")
     sat outside the strip: reachable only by a horizontal scroll with no
     affordance. All modes are visible instead — a switcher that hides a mode is
     not a switcher. */
  .sa-v5 .ia-modes{flex-wrap:wrap;width:100%;overflow-x:visible}
  .sa-v5 .ia-mode{flex:1 1 auto;justify-content:center}
}

/* ── TRANCHE 2 STAGE 1C — ENTITLEMENT vs CASH ───────────────────────────────
   The block reuses the existing card and table primitives; only what is genuinely
   new gets its own rules. Colours come from the published tokens, with literal
   fallbacks, so the block can never render invisible if a token is missing. */
.ven-cash__lead{font-size:13px;line-height:1.5;color:var(--f700,#334155);margin:2px 0 12px}
.ven-cash__t{width:100%}
.ven-cash__t .num{text-align:right;font-variant-numeric:tabular-nums}
.ven-cash__t tfoot td{font-weight:700;border-top:1px solid var(--line,#e2e8f0)}
.ven-cash__n{font-size:11px;color:var(--f500,#64748b)}
.ven-cash__over td{background:var(--warn-bg,#fff7ed)}
.ven-cash__flag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;
  font-size:11px;font-weight:600;background:var(--warn-bg,#fff7ed);color:var(--warn-fg,#9a3412)}
.ven-cash__note{margin-top:10px;font-size:12px;color:var(--f500,#64748b)}
