/*
 * The royal-blue redesign wave. It is late on purpose — most of what is here
 * restyles a screen the earlier files already styled, and it wins because it
 * comes after them.
 *
 * Part of the ordered atlas stylesheet — the files in this directory are
 * linked in filename order and the order is load-bearing, so a rule moved
 * between them can change what wins.
 */
/* ===================== Redesign chrome — royal-blue shell (Figma match) ===================== */
:root{--rail:#1E63E0;--rail-active:#16305F;--rail-line:rgba(255,255,255,.14);--rail-line2:rgba(255,255,255,.26);--rail-soft:rgba(255,255,255,.12);--rail-muted:#C6D8FA;--rail-txt:#EAF1FD}
/* sidebar shell → royal blue */
.sidebar{background:var(--rail);border-right:1px solid var(--rail-line)}
.sidebar .brand{border-bottom:1px solid var(--rail-line)}
.sidebar .brand-text span{color:var(--rail-muted)}
.sidebar .nav-item{color:#E4ECFB}
.sidebar .nav-item:hover{background:var(--rail-soft);color:#fff}
.sidebar .nav-item.active{background:var(--rail-active);color:#fff}
.sidebar .nav-sep{color:rgba(255,255,255,.55)}
.sidebar .nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22)}
.sidebar .rail-foot,.sidebar .side-foot{border-top:1px solid var(--rail-line)}
.sidebar .acting-lbl,.sidebar .fm-label{color:var(--rail-muted)}
.sidebar .acting select{background:var(--rail-soft);border:1px solid var(--rail-line2);color:var(--rail-txt)}
.sidebar .fm-seg{background:rgba(0,0,0,.16);border:1px solid var(--rail-line2)}
.sidebar .fm-seg button{color:var(--rail-muted)}
.sidebar .fm-seg button:hover{color:#fff}
.sidebar .reset-btn{color:var(--rail-muted);border:1px solid var(--rail-line2)}
.sidebar .reset-btn:hover{color:#fff;background:var(--rail-soft);border-color:rgba(255,255,255,.35)}
.sidebar .rail-user{border-top:1px solid var(--rail-line)}
.sidebar .avatar{background:rgba(255,255,255,.18)}
.sidebar .user-meta b{color:#fff}
.sidebar .user-meta span{color:var(--rail-muted)}
.sidebar .logout{color:var(--rail-muted);border:1px solid var(--rail-line2)}
.sidebar .logout:hover{color:#fff;background:var(--rail-soft);border-color:rgba(255,255,255,.35)}
/* top bar → royal blue, light-inverted content */
.topbar{background:var(--rail);border-bottom:1px solid rgba(255,255,255,.2)}
.topbar .crumbs{color:var(--rail-muted)}
.topbar .crumbs b{color:#fff}
.topbar .crumbs a{color:#DCE7FB}
.topbar .crumbs .sep{color:#9FBBF0}
.topbar .search input{background:var(--rail-soft);border:1px solid var(--rail-line2);color:#fff}
.topbar .search input::placeholder{color:var(--rail-muted)}
.topbar .search input:focus{border-color:rgba(255,255,255,.5)}
.topbar .theme-toggle{background:var(--rail-soft);border:1px solid var(--rail-line2);color:var(--rail-txt)}
.topbar .theme-toggle:hover{color:#fff;border-color:rgba(255,255,255,.4)}
.topbar .nav-toggle{background:var(--rail-soft);border:1px solid var(--rail-line2);color:var(--rail-txt)}
.topbar .nav-toggle:hover{color:#fff;border-color:rgba(255,255,255,.4)}
.topbar .search-clr{color:var(--rail-muted)}
.topbar .search-clr:hover{color:#fff}
/* a client login's own brand on the chrome (src/branding.py shell_brand puts the
   accent variables and .brand-root on <html>). The rail takes the accent; text
   and hairlines on it take --accent-ink, so a pale brand gets dark text rather
   than white. The active row uses --accent-d, which moves away from the ink. */
:root.brand-root{--rail:var(--accent);--rail-active:var(--accent-d);--rail-txt:var(--accent-ink);--rail-muted:var(--accent-ink);
  --rail-line:color-mix(in srgb,var(--accent-ink) 14%,transparent);--rail-line2:color-mix(in srgb,var(--accent-ink) 26%,transparent);
  --rail-soft:color-mix(in srgb,var(--accent-ink) 12%,transparent)}
.brand-root .sidebar .nav-item,.brand-root .sidebar .nav-item:hover,.brand-root .sidebar .nav-item.active,
.brand-root .sidebar .nav-sep,.brand-root .sidebar .brand-text h1,.brand-root .sidebar .user-meta b,
.brand-root .sidebar .fm-seg button:hover,.brand-root .sidebar .reset-btn:hover,.brand-root .sidebar .logout:hover,
.brand-root .topbar .crumbs b,.brand-root .topbar .crumbs a,.brand-root .topbar .crumbs .sep,
.brand-root .topbar .search input,.brand-root .topbar .theme-toggle:hover,.brand-root .topbar .nav-toggle:hover,
.brand-root .topbar .search-clr:hover{color:var(--accent-ink)}
.brand-root .sidebar .avatar{background:color-mix(in srgb,var(--accent-ink) 18%,transparent)}
.brand-root .sidebar .nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent-ink) 22%,transparent)}
.brand-root .sidebar .fm-seg{background:color-mix(in srgb,var(--accent-ink) 10%,transparent)}
.brand-root .sidebar .reset-btn:hover,.brand-root .sidebar .logout:hover,.brand-root .topbar .theme-toggle:hover,
.brand-root .topbar .nav-toggle:hover,.brand-root .topbar .search input:focus{border-color:color-mix(in srgb,var(--accent-ink) 40%,transparent)}
.brand-root .topbar{border-bottom-color:var(--rail-line2)}
/* the client's mark in the sidebar (sidebar.js): their logo on a white tile, or their initial */
.brand-client-logo{width:36px;height:36px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:9px;padding:3px}
/* a light-on-dark logo sits straight on the rail colour, at its own width, on a
   row of its own above the name — it is usually a wordmark (#82) */
.brand-client-logo.inverse{width:auto;max-width:100%;height:32px;background:none;border-radius:0;padding:0;object-position:left center}
.sidebar .brand.brand-stacked{flex-direction:column;align-items:flex-start;gap:8px}
.brand-client-mark{width:36px;height:36px;flex-shrink:0;border-radius:9px;display:grid;place-items:center;font-weight:700;
  font-size:15px;background:color-mix(in srgb,var(--accent-ink) 16%,transparent);color:var(--accent-ink)}
.brand-root .sidebar .brand-text h1.brand-client-name{font-family:inherit;font-size:15px;letter-spacing:0;line-height:1.2}
/* niche traffic-light triage */
.ncv-status{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.nstat{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;padding:4px 11px;border-radius:20px;font-size:11.5px;font-weight:600}
.nstat .dot{width:7px;height:7px;border-radius:50%}
.ns-ok{background:#E7F5EF;color:#0E7A54}.ns-ok .dot{background:#0E9F6E}
.ns-warn{background:#FBF1E3;color:#9A6410}.ns-warn .dot{background:#D08700}
.ns-bad{background:#FBEAEA;color:#B4231E}.ns-bad .dot{background:#E02424}
.nplat{font-size:12.5px;color:var(--txt);font-weight:500}
.nplat.muted{color:var(--muted);font-weight:400}
/* team & assignment */
.tm-row{display:flex;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:13px}
.tm-row:last-child{border-bottom:none}
.tm-head{padding:8px 2px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.tm-head span{color:var(--faint)}
.tm-n{flex:.8;display:flex;justify-content:flex-end;text-align:right}
.tm-av{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:600;flex-shrink:0}
.tm-stack{margin-right:-8px;box-shadow:0 0 0 2px var(--panel)}
.tm-id{display:flex;flex-direction:column;line-height:1.25}
.tm-id small{color:var(--muted);font-size:11.5px}
.tm-cov{background:#E7F5EF;color:#0E7A54;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}
.tm-cap{flex:1;max-width:96px;height:8px;border-radius:5px;background:var(--panel2);overflow:hidden}
.tm-cap-fill{display:block;height:100%;border-radius:5px}
.cap-warn{background:#C77700}.cap-accent{background:var(--accent)}.cap-ok{background:#0E9F6E}
/* daily brief — who to work today + mandate coverage */
.wt-row{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:11px 2px;cursor:pointer;font-family:inherit}
.wt-row:last-of-type{border-bottom:none}
.wt-row:hover{background:var(--panel2)}
.wt-bar{width:3px;height:34px;border-radius:3px;flex-shrink:0}
.wt-av{width:34px;height:34px;border-radius:9px;background:var(--panel2);color:var(--muted);display:grid;place-items:center;font-size:11px;font-weight:600;flex-shrink:0}
.wt-id{flex:1;display:flex;flex-direction:column;min-width:0;line-height:1.3}
.wt-id b{font-size:13px;color:var(--ink)}
.wt-id small{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wt-when{font-size:11px;color:var(--faint);white-space:nowrap}
.wt-score{font-size:13px;font-weight:600;color:var(--faint);font-family:var(--mono);min-width:24px;text-align:right}
.wt-tag{font-size:11px;font-weight:600;padding:5px 11px;border-radius:20px;white-space:nowrap;background:var(--accent-soft);color:var(--accent-text,var(--accent))}
.wt-rating{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;background:#EEF1F7;flex-shrink:0}
.r-Ap{color:#0E7A54}.r-A{color:var(--accent-text,var(--accent))}.r-B{color:#6E767E}
.ra-row{display:flex;align-items:flex-start;gap:11px;padding:10px 2px;border-bottom:1px solid var(--line)}
.ra-row:last-child{border-bottom:none}
.ra-ic{width:30px;height:30px;border-radius:8px;background:var(--panel2);color:var(--muted);display:grid;place-items:center;font-size:13px;flex-shrink:0}
.ra-id{flex:1;display:flex;flex-direction:column;line-height:1.35;min-width:0}
.ra-id b{font-size:13px;color:var(--ink)}
.ra-id small{font-size:11.5px;color:var(--muted)}
.ra-when{font-size:11px;color:var(--faint);white-space:nowrap;margin-top:2px}
/* sidebar mandate switcher */
.rail-switch{position:relative;margin:0 12px 8px;padding:9px 11px;border-radius:9px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18)}
.rs-label{font-size:9px;letter-spacing:.6px;color:#CFE0FA;font-weight:600;margin-bottom:5px}
.rs-btn{display:flex;align-items:center;gap:8px;color:#FBFCFE;font-size:13px;font-weight:600;cursor:pointer}
.rs-grid{width:16px;height:16px;fill:none;stroke:#FBFCFE;stroke-width:1.7;flex-shrink:0}
.rs-chev{width:15px;height:15px;fill:none;stroke:#CFE0FA;stroke-width:2;margin-left:auto;flex-shrink:0;transition:transform .15s}
.rs-meta{font-size:11.5px;color:#BBD0F5;margin-top:5px}
.rs-menu{position:absolute;top:100%;left:0;right:0;margin-top:6px;z-index:60;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 36px -10px rgba(6,16,40,.30);padding:6px}
.rs-sec{font-size:9px;letter-spacing:.5px;color:var(--faint);font-weight:600;padding:7px 9px 4px}
.rs-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:7px;cursor:pointer;color:var(--txt);font-size:13px;font-weight:600}
.rs-item:hover{background:var(--panel2)}
.rs-item.on{background:var(--accent-soft)}
.rs-mi{width:18px;height:18px;fill:none;stroke:var(--accent-text,var(--accent));stroke-width:1.8;flex-shrink:0}
.rs-mt{flex:1}
.rs-ck{color:var(--accent-text,var(--accent));font-weight:700}
.rs-av{width:22px;height:22px;border-radius:6px;background:#E7ECF5;color:#4B5870;display:grid;place-items:center;font-size:10px;font-weight:600;flex-shrink:0}
.rs-cnt{font-size:11px;color:var(--muted);background:var(--panel2);padding:1px 7px;border-radius:10px;font-family:var(--mono)}
.rs-div{height:1px;background:var(--line);margin:5px 9px}
.rs-item.rs-accent{color:var(--accent-text,var(--accent))}
.rs-plus{width:22px;height:22px;border-radius:6px;background:var(--accent-soft);color:var(--accent-text,var(--accent));display:grid;place-items:center;font-size:14px;flex-shrink:0}
/* targets table — owner / stage / rating */
.tgt-owner{display:flex;align-items:center;gap:8px}
.tgt-oav{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:600;flex-shrink:0}
.stage-pill{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;background:#EEF1F7;color:var(--muted)}
.st-diligence{background:#E7F5EF;color:#0E7A54}
.st-ioi{background:color-mix(in srgb,var(--accent) 10%,#fff);color:var(--accent-text,var(--accent))}
.st-nda{background:#F0EBFA;color:#6D5BD0}
.st-contacted{background:#FBF1E3;color:#9A6410}
.st-sourced{background:#EEF1F7;color:#6E767E}
.rate-pill{display:inline-block;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#EEF1F7}
/* pipeline kanban cards (Figma) */
.kc-hd{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.kc-av{width:28px;height:28px;border-radius:7px;background:var(--panel2);color:var(--muted);display:grid;place-items:center;font-size:10px;font-weight:600;flex-shrink:0}
.kc-co{font-size:13px;color:var(--ink);line-height:1.25;font-weight:600}
.kc-chips{display:flex;gap:6px;margin-bottom:12px}
.kc-state{font-size:11px;font-weight:600;color:var(--muted);background:var(--panel2);padding:3px 8px;border-radius:6px}
.kc-ft{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kc-ev{font-size:13px;color:var(--ink);font-weight:500}
.kc-tag{font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:20px}
.kt-new{background:#EEF1F7;color:#6E767E}
.kt-age{background:#FBF1E3;color:#9A6410}
.kt-sent{background:#FBF1E3;color:#9A6410}
.kt-done{background:#E7F5EF;color:#0E7A54}
.kcol-dot{width:8px;height:8px;border-radius:50%;background:var(--faint);display:inline-block;margin-right:3px;flex-shrink:0}
.kd-nda{background:#D08700}.kd-ioi{background:#0E9F6E}.kd-diligence{background:#0E9F6E}
/* clients cards (Figma) */
.client-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cl-card{cursor:pointer;transition:.15s}
.cl-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.cl-hd{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.cl-av{width:38px;height:38px;border-radius:9px;background:var(--panel2);color:var(--muted);display:grid;place-items:center;font-size:12px;font-weight:600;flex-shrink:0}
.cl-id{flex:1;display:flex;flex-direction:column;line-height:1.3;min-width:0}
.cl-id b{font-size:15px;color:var(--ink)}
.cl-id small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.cl-crit{font-size:12.5px;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:14px}
.cl-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cl-tile{background:var(--panel2);border-radius:8px;padding:11px 12px}
.cl-tl{font-size:11px;color:var(--muted);margin-bottom:4px}
.cl-tv{font-size:20px;font-weight:600;color:var(--ink);font-family:var(--mono)}
.cl-add{display:flex;align-items:center;gap:12px;justify-content:center;padding:20px;border:1.5px dashed var(--line2);border-radius:12px;margin-top:14px;cursor:pointer}
.cl-add:hover{border-color:var(--accent)}
.cl-add:hover .cl-add-ic,.cl-add:hover b{color:var(--accent-text,var(--accent))}
.cl-add-ic{width:32px;height:32px;border-radius:8px;background:var(--panel2);color:var(--muted);display:grid;place-items:center;font-size:18px}
.cl-add b{color:var(--ink);font-size:13px;display:block}
.cl-add small{font-size:11.5px;color:var(--muted)}
.warm-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle}
.wd-warm{background:#0E9F6E}.wd-cool{background:#8A97AC}
.mc-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line);cursor:pointer}
.mc-row:last-child{border-bottom:none}
.mc-av{width:32px;height:32px;border-radius:8px;background:var(--panel2);color:var(--muted);display:grid;place-items:center;font-size:11px;font-weight:600;flex-shrink:0}
.mc-id{display:flex;flex-direction:column;line-height:1.3}
.mc-id b{font-size:13px;color:var(--ink)}
.mc-id small{font-size:11.5px;color:var(--muted)}

/* Quotes — Figma fee-proposals card */
.q-av{width:30px;height:30px;border-radius:8px;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:0 0 auto}
.qpill{display:inline-block;padding:3px 11px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.qp-Accepted{background:#E7F5EF;color:#0E7A5F}
.qp-Sent{background:color-mix(in srgb,var(--accent) 10%,#fff);color:#2B5FB3}
.qp-Approved{background:#EAF6EE;color:#1E8A4C}
.qp-Approval{background:#FBF1E0;color:#B5791E}
.qp-Draft{background:#EEF0F3;color:#5A6472}
.qp-Declined{background:#F7E9E9;color:#B23A3A}

/* Commercials — muted roll-up mini-tiles */
.cx-mini{padding:14px 16px;background:var(--panel2)}
.cx-mini .sb-label{font-size:11.5px;color:var(--muted)}
.cx-val{font-family:var(--mono);font-size:20px;font-weight:700;color:var(--ink);margin-top:4px}

/* Outreach — Sequences queue (Figma) */
.oq-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;margin-top:16px;align-items:start}
.oq-hd{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line)}
.oq-hd b{font-size:14px;color:var(--ink)}
.oq-list{display:flex;flex-direction:column}
.oq-row{display:flex;align-items:center;gap:12px;padding:13px 18px 13px 15px;border-bottom:1px solid var(--line);border-left:3px solid transparent;cursor:pointer}
.oq-row:last-child{border-bottom:none}
.oq-row:hover{background:var(--panel2)}
.oq-row.lb-call{border-left-color:#C77700}
.oq-row.lb-email{border-left-color:#1E63E0}
.oq-row.lb-sms{border-left-color:#0E9F6E}
.oq-row.paused{border-left-color:transparent;cursor:default}
.oq-row.paused:hover{background:transparent}
.oq-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;background:var(--panel2);color:var(--muted)}
.oq-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9}
.oq-ic.ch-call{background:#FBEEDD;color:#B26A00}
.oq-ic.ch-email{background:#E8EFFB;color:#1E63E0}
.oq-ic.ch-sms{background:#E4F5EE;color:#0E7A5F}
.oq-av{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;background:var(--panel2);color:var(--muted);font-size:11px;font-weight:700}
.oq-body{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.oq-body b{font-size:13.5px;color:var(--ink)}
.oq-body span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oq-due{font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;background:#FBF1E0;color:#B5791E;white-space:nowrap}
.oq-due.over{background:#F7E9E9;color:#B23A3A}
.oq-due.paused{background:#EEF0F3;color:#5A6472}
.oq-side{display:flex;flex-direction:column;gap:16px}
.oq-cad{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line)}
.oq-cad:last-child{border-bottom:none}
.oq-cad-id{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.oq-cad-id b{font-size:13px;color:var(--ink)}
.oq-cad-id span{font-size:11.5px;color:var(--muted)}
.oq-reply{font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;background:color-mix(in srgb,var(--accent) 10%,#fff);color:#2B5FB3;white-space:nowrap}
.oq-reply.muted{background:#EEF0F3;color:#8A94A3}
@media(max-width:900px){.oq-grid{grid-template-columns:1fr}}

/* Data Room — managed DD dashboard (Figma) */
.dr-frow{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line)}
.dr-frow:last-child{border-bottom:none}
.dr-fic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;background:color-mix(in srgb,var(--accent) 7%,#fff);color:var(--accent-text,var(--accent))}
.dr-fic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.dr-fstat{font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;white-space:nowrap}
.dr-fstat.fs-done{background:#E7F5EF;color:#0E7A5F}
.dr-fstat.fs-prog{background:#FBF1E0;color:#B5791E}
.dr-fstat.fs-none{background:#EEF0F3;color:#5A6472}
.dr-rel{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);cursor:pointer}
.dr-rel:last-child{border-bottom:none}
.dr-rel:hover{background:var(--panel2)}
.dr-rel-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;background:var(--panel2);color:var(--muted)}
.dr-rel-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
.dr-chk{display:flex;align-items:center;gap:11px;padding:9px 18px}
.dr-chk-ic{width:18px;height:18px;border-radius:50%;flex:0 0 auto;border:1.5px solid var(--line);display:grid;place-items:center;background:var(--panel)}
.dr-chk-ic.done{background:#12A150;border-color:#12A150}
.dr-chk-ic svg{width:11px;height:11px;fill:none;stroke:#fff;stroke-width:2.4}
.dr-chk-item{flex:1;min-width:0;font-size:13px;color:var(--ink)}
.dr-chk-st{font-size:11.5px;font-weight:600;white-space:nowrap}
.dr-chk-st.ok{color:#0E7A5F}
.dr-chk-st.out{color:#98A2B3}
.dr-chk:last-child{padding-bottom:16px}
.dr-act2{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line)}
.dr-act2:last-child{border-bottom:none}

/* Target cockpit — Figma header row */
.cr-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.cr-tb-id{display:flex;align-items:center;gap:14px;min-width:0}
.cr-tb-av{width:46px;height:46px;border-radius:12px;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex:0 0 auto}
.cr-tb-name{font-size:22px;font-weight:700;color:var(--ink);line-height:1.15;display:flex;align-items:center}
.cr-tb-sub{font-size:13px;color:var(--muted);margin-top:3px}

/* Governance — oversight dashboard (Figma) */
.lvl-pill{font-family:var(--mono);font-size:10.5px;font-weight:600;color:var(--accent-text,#3257A8);background:color-mix(in srgb,var(--accent) 10%,#fff);padding:2px 7px;border-radius:6px;letter-spacing:.02em}
.gv-row{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line)}
.gv-row:last-child{border-bottom:none}
.gv-time{font-family:var(--mono);font-size:11.5px;color:var(--muted);white-space:nowrap}
.gv-conn{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line)}
.gv-conn:last-child{border-bottom:none}
.gv-cic{width:34px;height:34px;border-radius:9px;flex:0 0 auto;display:grid;place-items:center;background:var(--panel2);color:var(--muted);font-size:11px;font-weight:700}
.gv-on{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#0E7A5F;white-space:nowrap}
.gv-dot{width:7px;height:7px;border-radius:50%;background:#12A150}

/* Portal branding — white-label configurator */
.bd-grid{display:grid;grid-template-columns:400px 1fr;gap:18px;align-items:start}
.bd-mode{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 14px;border:1.5px solid var(--line);border-radius:11px;background:var(--panel);cursor:pointer;margin-top:10px}
.bd-mode:first-of-type{margin-top:4px}
.bd-mode.on{border-color:#12A150;background:#F2FBF6}
.bd-mode b{display:block;font-size:13.5px;color:var(--ink)}
.bd-mode span:not(.bd-radio){font-size:12px;color:var(--muted)}
.bd-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);flex:0 0 auto;position:relative}
.bd-mode.on .bd-radio{border-color:#12A150}
.bd-mode.on .bd-radio:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#12A150}
.bd-logo{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.bd-mark{width:44px;height:44px;border-radius:11px;color:#fff;display:grid;place-items:center;font-size:18px;font-weight:700;flex:0 0 auto}
.bd-llabel{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.bd-lname{font-size:12.5px;color:var(--ink);font-family:var(--mono)}
.bd-flabel{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 5px}
.bd-soon{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#8a6a1f;background:#F5ECD5;border:1px solid #e6d5a8;border-radius:20px;padding:3px 9px;white-space:nowrap}
.bd-input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:13.5px;color:var(--ink);background:var(--panel);font-family:inherit}
.bd-input:disabled{background:var(--panel2)}
.bd-cname{font-size:11px;font-weight:600;color:#0E7A5F;background:#E7F5EF;padding:2px 9px;border-radius:20px}
.bd-swatches{display:flex;align-items:center;gap:9px;margin-top:6px}
.bd-sw{width:36px;height:36px;border-radius:9px;border:none;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
.bd-sw svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2.6}
.bd-sw.on{box-shadow:0 0 0 2px var(--panel),0 0 0 4px currentColor}
.bd-custom{display:flex;align-items:center;gap:9px;margin-top:12px}
.bd-picker{width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--panel);cursor:pointer;flex:0 0 auto}
.bd-hexin{width:120px;font-family:var(--mono);text-transform:uppercase}
.bd-hexin.bad{border-color:#dc2626}
.bd-warn{margin-top:8px;font-size:12px;line-height:1.45;color:#b45309}
.bd-note{display:flex;align-items:flex-start;gap:8px;margin-top:8px;font-size:12px;line-height:1.45;color:var(--muted)}
.bd-note b{font-family:var(--mono);color:var(--ink);font-weight:600}
.bd-note-sw{width:14px;height:14px;border-radius:4px;flex:0 0 auto;margin-top:2px}
.bd-pvlabel{font-size:12.5px;color:var(--muted);margin-bottom:9px}
.bd-pvlabel a{color:#1E63E0;font-weight:600}
.bd-browser{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 8px 30px rgba(16,24,40,.08)}
.bd-bar{display:flex;align-items:center;gap:7px;padding:10px 14px;background:#F1F3F6;border-bottom:1px solid var(--line)}
.bd-tl{width:11px;height:11px;border-radius:50%;flex:0 0 auto}
.bd-url{display:flex;align-items:center;gap:7px;margin-left:10px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:4px 11px;font-size:12px;color:#475467;flex:1}
.bd-url svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8}
.bd-portal-hd{display:flex;align-items:center;gap:14px;padding:20px 24px;color:#fff}
.bd-phmark{width:34px;height:34px;border-radius:8px;background:color-mix(in srgb,currentColor 16%,transparent);display:grid;place-items:center;font-size:15px;font-weight:700;flex:0 0 auto}
.bd-phmark img{width:75%;height:75%;object-fit:contain}
/* the preview of a light-on-dark logo on the banner colour, as portal.js draws it (#82) */
.bd-phmark.bd-phmark-inv{width:auto;max-width:120px;background:none;border-radius:0}
.bd-phmark.bd-phmark-inv img{width:auto;height:100%;max-width:100%}
.bd-opt{text-transform:none;letter-spacing:0;color:var(--faint);margin-left:4px}
.bd-phname{font-size:17px;font-weight:700;letter-spacing:.08em;display:flex;flex-direction:column;line-height:1.1}
.bd-phname span{font-size:9px;font-weight:600;letter-spacing:.14em;opacity:.8;margin-top:3px}
.bd-phnav{display:flex;gap:20px;margin-left:auto;font-size:12.5px;opacity:.92}
.bd-phav{width:30px;height:30px;border-radius:8px;background:color-mix(in srgb,currentColor 16%,transparent);display:grid;place-items:center;font-size:11px;font-weight:700;margin-left:18px;flex:0 0 auto}
.bd-portal-body{padding:22px 24px 18px;background:#F7F9FB}
.bd-welcome{font-size:16px;color:#101828}
.bd-wsub{font-size:12.5px;color:#667085;margin:3px 0 15px;white-space:pre-line}
.bd-ptiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.bd-pt{background:#fff;border:1px solid #E4E7EC;border-radius:10px;padding:13px 14px}
.bd-pt b{font-size:22px;font-weight:700;display:block;line-height:1}
.bd-pt span{font-size:11.5px;color:#667085;margin-top:5px;display:block}
.bd-prow{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid #E4E7EC;border-left:3px solid;border-radius:10px;padding:14px 16px}
.bd-pav{width:34px;height:34px;border-radius:8px;background:#EEF2F6;color:#475467;display:grid;place-items:center;font-size:12px;font-weight:700;flex:0 0 auto}
.bd-prow b{font-size:13.5px;color:#101828;display:flex;align-items:center;gap:9px}
.bd-first{font-size:10.5px;font-weight:600;color:#fff;padding:2px 8px;border-radius:20px}
.bd-psub{font-size:12px;color:#667085;margin-top:3px}
.bd-review{border:none;color:#fff;font-size:12.5px;font-weight:600;padding:8px 16px;border-radius:8px;cursor:pointer;flex:0 0 auto}
.bd-pfoot{font-size:11px;color:#98A2B3;margin-top:16px;padding-top:10px;border-top:1px solid #EAECF0;white-space:pre-line}
/* the portal-content card and its preview (#84) */
.bd-area{resize:vertical;min-height:44px;line-height:1.45}
.bd-tabs{display:flex;flex-wrap:wrap;gap:6px 14px}
.bd-tab{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);cursor:pointer}
.bd-tab-fixed{color:var(--muted);cursor:default}
.bd-hint{font-size:11.5px;color:var(--muted);margin-top:6px}
.bd-avatar{border-radius:50%;overflow:hidden;background:var(--panel2);color:var(--muted)}
.bd-avatar img{width:100%;height:100%;object-fit:cover}
.bd-pcontact{display:flex;align-items:center;gap:10px;margin-top:14px;padding:11px 13px;border:1px solid #EAECF0;border-radius:10px}
.bd-pcontact b{display:block;font-size:13px;color:#101828}
.bd-pclabel{display:block;font-size:10px;color:#98A2B3;text-transform:uppercase;letter-spacing:.05em}
@media(max-width:1000px){.bd-grid{grid-template-columns:1fr}}

/* Company profile — Firecrawl-enriched (Figma) */
.pf-web{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--accent-text,var(--accent));font-family:var(--serif)}
.pf-web svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9}
.pf-banner{display:flex;align-items:center;gap:13px;background:#EEF4FF;border:1px solid #D6E4FF;border-radius:12px;padding:13px 18px;margin-bottom:16px}
.pf-bic{width:34px;height:34px;border-radius:9px;background:var(--accent);color:var(--accent-ink,#fff);display:grid;place-items:center;flex:0 0 auto}
.pf-bic svg{width:17px;height:17px;fill:currentColor;stroke:none}
.pf-banner b{font-size:13.5px;color:var(--ink);display:block}
.pf-banner>div span{font-size:12px;color:#475467}
.pf-cov{font-size:12.5px;font-weight:600;color:#0E7A5F;white-space:nowrap}
.pf-sources{font-size:12.5px;font-weight:600;color:var(--accent-text,var(--accent));white-space:nowrap;cursor:pointer}
.pf-sh{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.pf-sh b{font-size:14px;color:var(--ink)}
.pf-path{font-family:var(--mono);font-size:11px;color:#98A2B3;background:var(--panel2);padding:2px 7px;border-radius:6px}
.pf-copy{font-size:13.5px;line-height:1.6;color:var(--ink-soft,#344054);margin:0 0 14px}
.pf-chips{display:flex;flex-wrap:wrap;gap:8px}
.pf-chip{font-size:12.5px;color:var(--ink);background:var(--panel2);border:1px solid var(--line);padding:6px 11px;border-radius:8px}
.pf-loc{display:flex;align-items:center;gap:12px;padding:13px 18px;border-top:1px solid var(--line)}
.pf-pin{width:32px;height:32px;border-radius:9px;background:var(--panel2);color:var(--muted);display:grid;place-items:center;flex:0 0 auto}
.pf-pin svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
.pf-ltag{font-size:11px;font-weight:600;color:#5A6472;background:var(--panel2);padding:4px 10px;border-radius:20px;white-space:nowrap}
.pf-accs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pf-acc{display:flex;align-items:flex-start;gap:10px;background:#F2FBF6;border:1px solid #CFEEDE;border-radius:10px;padding:13px}
.pf-acc-ic{width:26px;height:26px;border-radius:7px;background:#12A150;color:#fff;display:grid;place-items:center;flex:0 0 auto}
.pf-acc-ic svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}
.pf-acc b{font-size:13px;color:#0E7A5F;display:block}
.pf-acc span{font-size:11.5px;color:#3F7A63}
.pf-fm{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;border-top:1px solid var(--line)}
.pf-fm-k{font-size:13px;color:var(--muted)}
.pf-fm-v{font-size:13.5px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:8px}
.pf-src{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}
.pf-src.sc{background:#12A150}
.pf-src.md{background:#E0A100}
.pf-legend{display:flex;align-items:center;gap:6px;padding:12px 18px 16px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line)}
.pf-person{display:flex;align-items:center;gap:12px;padding:11px 18px;border-top:1px solid var(--line)}
.pf-more{display:block;padding:13px 18px;border-top:1px solid var(--line);font-size:12.5px;font-weight:600;color:var(--accent-text,var(--accent));cursor:pointer}
.pf-kw{font-size:12px;color:var(--accent-text,#3257A8);background:color-mix(in srgb,var(--accent) 10%,#fff);padding:5px 11px;border-radius:20px}

/* Client detail — Figma */
.cd-tier{font-size:11.5px;font-weight:600;color:#0E7A5F;background:#E7F5EF;padding:3px 11px;border-radius:20px}
.pf-fromintake{margin-left:auto;font-size:12px;font-weight:600;color:var(--accent-text,var(--accent));cursor:pointer}
.cd-crit{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line)}
.cd-crit:first-of-type{border-top:none}
.cd-crit-k{font-size:12.5px;color:var(--muted)}
.cd-crit-v{font-size:13px;color:var(--ink);text-align:right}
.cd-niche{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line);cursor:pointer}
.cd-niche:hover{background:var(--panel2)}
.cd-nav{width:32px;height:32px;border-radius:8px;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex:0 0 auto}
.cd-opps{font-size:11px;font-weight:600;color:var(--accent-text,#3257A8);background:color-mix(in srgb,var(--accent) 10%,#fff);padding:4px 10px;border-radius:20px;white-space:nowrap}
.cd-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line)}
.cd-more{display:block;width:100%;border:none;background:none;color:var(--accent-text,var(--accent));font-size:12px;font-weight:600;padding:7px 4px 2px;cursor:pointer;text-align:center}
.cd-more:hover{text-decoration:underline}
.cd-col{background:var(--panel2);padding:12px 12px 16px}
.cd-col-hd{display:flex;justify-content:space-between;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--muted);padding:4px 4px 10px}
.cd-card{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:11px 12px;margin-bottom:9px;cursor:pointer}
.cd-card:hover{border-color:var(--accent)}
.cd-card b{display:block;font-size:12.5px;color:var(--ink)}
.cd-card span{font-size:11.5px;color:var(--muted)}
.cd-empty{color:var(--muted);text-align:center;padding:14px 0;margin:0}

/* Niche detail — L01→L02→L03 rollup */
.nd-rollup{display:flex;align-items:center;gap:16px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-top:16px}
.nd-rl{display:flex;align-items:center;gap:11px}
.nd-rl div{display:flex;flex-direction:column;line-height:1.3}
.nd-rl b{font-size:13px;color:var(--ink)}
.nd-rl span:not(.lvl-pill){font-size:12px;color:var(--muted)}
.nd-arrow{width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:1.8;flex:0 0 auto}

/* Pipeline health — Figma */
.ph-leak{display:flex;align-items:center;gap:12px;padding:8px 0}
.ph-leak-lbl{width:160px;flex:0 0 auto;font-size:12.5px;color:var(--ink)}
.ph-leak-bar{flex:1;height:26px;border-radius:7px;background:var(--panel2);overflow:hidden}
.ph-leak-bar span{display:flex;align-items:center;height:100%;background:var(--accent);color:var(--accent-ink,#fff);font-size:11px;font-weight:600;padding-left:10px;border-radius:7px;min-width:34px}
.ph-leak-n{width:38px;text-align:right;font-size:12.5px;color:var(--muted);font-family:var(--mono)}
.ph-time{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;border-top:1px solid var(--line)}
.ph-time-k{font-size:13px;color:var(--ink)}
.ph-time-v{font-family:var(--mono);font-size:13px;color:var(--muted)}
.ph-time-v.warm{color:#B5791E}
.ph-time-v.hot{color:#B23A3A}
.ph-needs{font-size:12px;font-weight:600;color:#B23A3A}
.ph-ar{display:flex;align-items:center;gap:12px;padding:14px 18px;border-top:1px solid var(--line);border-left:3px solid transparent}
.ph-ar.lb-age{border-left-color:#C77700}
.ph-ar.lb-hold{border-left-color:#98A2B3}
.ph-ar.lb-hot{border-left-color:#B23A3A}
.ph-artag{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}
.ph-artag.t-age{background:#FBF1E0;color:#B5791E}
.ph-artag.t-hold{background:#EEF0F3;color:#5A6472}
.ph-artag.t-hot{background:#F7E9E9;color:#B23A3A}
.ph-ardetail{font-size:11.5px;color:var(--muted);margin-top:4px}

/* Data Room — deal-rooms index */
.dr-search{display:flex;align-items:center;gap:7px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:6px 11px;min-width:230px}
.dr-search svg{width:15px;height:15px;flex-shrink:0;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dr-search input{border:none;background:none;outline:none;font-size:13px;color:var(--ink);width:100%}
.drx-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line);cursor:pointer}
.drx-row:last-child{border-bottom:none}
.drx-row:hover{background:var(--panel2)}
.drx-id{flex:1;min-width:150px;display:flex;flex-direction:column;line-height:1.35}
.drx-id b{font-size:13.5px;color:var(--ink)}
.drx-id span{font-size:12px;color:var(--muted)}
.drx-dd{display:flex;align-items:center;gap:8px;width:132px;flex:0 0 auto}
.drx-dd .dr-bar{flex:1;height:6px;background:var(--panel2);border-radius:20px;overflow:hidden}
.drx-pct{font-family:var(--mono);font-size:11.5px;color:var(--muted);width:32px;text-align:right}
.drx-docs{font-size:11.5px;color:var(--muted);width:118px;text-align:right;flex:0 0 auto}
.drx-acc{font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;white-space:nowrap;flex:0 0 auto}
.drx-acc.ga{background:#E7F5EF;color:#0E7A5F}
.drx-acc.gp{background:#FBF1E0;color:#B5791E}
.drx-arrow{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:2;flex:0 0 auto}

/* Client portal — per-deal room cards */
.pdr-hd{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.pdr-doc{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line)}
.pdr-doc:last-child{border-bottom:none}

/* Mandate niche tagging */
.cd-untagged{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:20px 18px}
.cd-untagged b{font-size:13.5px;color:var(--ink)}
.cd-untagged span{font-size:12.5px;color:var(--muted);line-height:1.5}
.cd-untagged .btn{margin-top:5px}
.tn-sub{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:14px}
.tn-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;overflow:hidden}
.tn-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;background:var(--panel);
        border:none;border-bottom:1px solid var(--line);cursor:pointer;font-family:inherit}
.tn-row:last-child{border-bottom:none}
.tn-row:hover{background:var(--panel2)}
.tn-row.on{background:#F2F7FF}
.tn-check{width:19px;height:19px;border-radius:6px;border:1.5px solid var(--line2,#cbd5e1);flex:0 0 auto;
          display:grid;place-items:center;background:var(--panel)}
.tn-row.on .tn-check{background:var(--accent);border-color:var(--accent)}
.tn-check svg{width:12px;height:12px;fill:none;stroke:var(--accent-ink,#fff);stroke-width:2.6}

/* Mandate onboarding lifecycle bar */
.mand-bar{display:flex;flex-direction:column;align-items:stretch;gap:13px;padding:15px 18px;margin-bottom:16px;background:#F7FAFF;border-color:#DCE7FA}
.mand-steps{display:flex;align-items:center;gap:0;flex-wrap:wrap;row-gap:8px}
.mand-step{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.mand-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;
          background:var(--panel);border:1.5px solid var(--line);color:var(--muted);font-size:10.5px;font-weight:700}
.mand-dot svg{width:12px;height:12px;fill:none;stroke:var(--accent-ink,#fff);stroke-width:2.6}
.mand-step.done .mand-dot{background:#12A150;border-color:#12A150;color:#fff}
.mand-step.on .mand-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff)}
.mand-lbl{font-size:12px;color:var(--muted);white-space:nowrap}
.mand-step.on .mand-lbl{color:var(--ink);font-weight:600}
.mand-step.done .mand-lbl{color:var(--ink)}
.mand-line{flex:1;height:2px;background:var(--line);margin:0 9px;min-width:14px}
.mand-line.done{background:#12A150}
.mand-cta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #DCE7FA;padding-top:12px}
.mand-hint{font-size:12.5px;color:var(--muted);margin-right:auto}
.qdel-wrap{position:relative;display:inline-block;margin-left:4px}
.qdel.on{color:#B23A3A;border-color:#e3c4c4;background:rgba(178,58,58,.06)}
.qdel-pop{position:absolute;right:0;bottom:calc(100% + 9px);z-index:60;min-width:224px;text-align:left;
  background:var(--surface,#fff);border:1px solid var(--line2);border-radius:12px;padding:13px 14px;
  box-shadow:0 12px 30px rgba(14,22,38,.16);animation:qdel-in .14s ease}
.qdel-pop::after{content:"";position:absolute;right:14px;top:100%;border:7px solid transparent;border-top-color:var(--surface,#fff);filter:drop-shadow(0 1px 0 var(--line2))}
.qdel-pop b{display:block;font-size:13.5px;color:var(--ink)}
.qdel-pop>span{display:block;font-size:12px;color:var(--muted);margin:3px 0 10px}
.qdel-pop-act{display:flex;justify-content:flex-end;gap:7px}
.qdel-yes{background:#B23A3A;color:#fff;border:none}
.qdel-yes:hover{background:#9c2f2f}
@keyframes qdel-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.toast-wrap{position:fixed;top:74px;right:18px;z-index:300;display:flex;flex-direction:column;gap:9px;max-width:360px}
.toast{display:flex;align-items:center;gap:10px;background:var(--surface,#fff);border:1px solid var(--line2);border-left:4px solid var(--accent);border-radius:11px;padding:11px 13px;box-shadow:0 10px 26px rgba(14,22,38,.16);font-size:13.5px;color:var(--ink);animation:toast-in .18s ease}
.toast svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:var(--accent-text,var(--accent));stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.toast.tt-err{border-left-color:#B23A3A}
.toast.tt-err svg{stroke:#B23A3A}
.toast.tt-ok{border-left-color:#2E7D5B}
.toast.tt-ok svg{stroke:#2E7D5B}
.toast-x{margin-left:auto;border:none;background:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px}
.toast-x:hover{color:var(--ink)}
@keyframes toast-in{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
/* branded portal theme — when a client's saved accent is applied, everything
   accent-driven inside the portal follows it (numbers, buttons, links). Text
   drawn in the accent uses --accent-text, which static/js/lib/color.js darkens
   until it reads at 4.5:1 on white and on the soft tint; fills keep --accent.
   The stat figures carry inline colours in portal.js, hence the !important. */
.pf-themed .sb-stat .sb-val{color:var(--accent-text)!important}
.pf-themed .btn.grad{background:var(--accent);color:var(--accent-ink);box-shadow:none}
.pf-themed .btn.grad:hover{background:var(--accent-d)}
.pf-themed .viewtab.on{color:var(--accent-text)}
.pf-themed .pf-int-btn.up{border-color:var(--accent);color:var(--accent-text)}
.pf-themed .pf-stage-dot{background:var(--accent)!important}
.pf-themed a{color:var(--accent-text)}
/* the banner is painted in the accent, so its text is --accent-ink (white or
   ink, whichever reads on it — static/js/lib/color.js), never a fixed white.
   Small text keeps the full ink: fading it toward the accent undoes the
   contrast inkOn() picked it for. Only the decorative x and borders fade. */
.pf-themed .portal-banner{color:var(--accent-ink)}
.pf-themed .portal-banner .pb-sub,.pf-themed .portal-banner .pb-view{color:var(--accent-ink)}
.pf-themed .portal-banner .pb-x{color:color-mix(in srgb,var(--accent-ink) 55%,transparent)}
.pf-themed .portal-banner .pb-signout{color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent-ink) 28%,transparent)}
.pf-themed .pb-bell-badge{color:var(--accent-ink)}
/* dialogs open from the portal (Share link) — themed for a client login, whose
   brand portal.js also puts on <html> */
.pf-themed .modal-ic,.pf-themed .chip.on{color:var(--accent-ink);box-shadow:none}
