/* =================================================================
   REVE — Revenue Command Center
   "TITANIUM" — one skin, both orgs. Steel blacks lifted a step,
   monochrome discipline: the steel-blue ink IS the accent (no
   colored primary); tan is the quiet second voice; green/amber/red
   are semantic and never substitute for the accent. Org identity is
   carried by org tags, not org-wide overrides.
   Locked in the skin lab 2026-07-25 (skin-lab.html, v5 combo:
   Titanium + Inter/Inter Display + airy + glass + floating rail +
   ruled tables + machined finish + display headers + aurora canvas
   + crisp radii). Gated skin layer at end of file; Phase C
   collapses it into these base rules.
   Prior skin: "ROX" — docs/plans/2026-07-19-rox-reskin-design.md.
   Vanilla HTML/CSS/JS. Motion is JS-driven and fail-safe.
   ================================================================= */

/* ---- self-hosted type (no CDN — Tailscale funnel) ---- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/inter-400.woff2") format("woff2")}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/inter-500.woff2") format("woff2")}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/inter-600.woff2") format("woff2")}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/inter-700.woff2") format("woff2")}
@font-face{font-family:'Inter Display';font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/inter-display-400.woff2") format("woff2")}
@font-face{font-family:'Inter Display';font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/inter-display-500.woff2") format("woff2")}
@font-face{font-family:'Inter Display';font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/inter-display-600.woff2") format("woff2")}
@font-face{font-family:'Inter Display';font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/inter-display-700.woff2") format("woff2")}

:root{
  /* canvas — Reve Canvas (HubSpot-inspired light, locked 2026-08-03):
     light content in a dark shell; white cards on a cool-gray canvas   */
  --bg:#f6f8fa;        /* page canvas                                    */
  --bg-2:#eef1f5;      /* recessed wells (lane bg, table header band)    */
  --card:#ffffff;      /* primary surface                                */
  --card-2:#f7fafc;    /* nested surface / hover                         */
  --card-3:#edf2f7;    /* third step / active                            */
  --bd:#e2e8ef;        /* hairline borders                               */
  --bd-2:#cbd6e2;      /* strong borders (inputs, buttons)               */

  /* text — slate-teal ink (HubSpot "heather" family) */
  --ink:#2e3f50;  --soft:#46586b;  --muted:#68798c;  --faint:#9aa8b6;

  /* accents — teal is the interactive voice; tan the second voice */
  --blue:#0b7a8a;  --blue-soft:rgba(11,122,138,.08);
  --tan:#8a7a58;   --tan-soft:#f4efe3;

  /* dark shell (rail) + primary CTA */
  --shell:#14171b; --shell-2:#1e2228; --shell-3:#282d34;
  --shell-ink:#c6cdd5; --shell-faint:#8a939e; --shell-bd:#262b31;
  --forest:#134f46; --forest-2:#0c3b34;
  --violet:#5f54c4; --violet-soft:#edebf9;

  /* semantics — re-derived for white surfaces */
  --ok:#1a8f60;   --ok-soft:#e5f4ec;
  --warn:#a8730f; --warn-soft:#faf1dd;
  --bad:#c2453a;  --bad-soft:#fbebe9;

  /* chips — scheme A (locked): one neutral field, state lives in the dot */
  --chip-bg:#edf1f6; --chip-ink:#3d5165;

  /* activity/cadence hues — light-tuned */
  --cad-out:#5d6b7a;   /* outbound — slate      */
  --cad-in:#3d8f6d;    /* inbound — green       */
  --cad-meet:#8a7a58;  /* meetings — stone      */

  /* org tags: sai #0b5b67/#e2eff1 · doe #544aae/#ebe9f8 (micro tags) */

  color-scheme:light;  /* native controls (selects, scrollbars) render light */
  --ui:'Inter',-apple-system,'SF Pro Text','Segoe UI',system-ui,sans-serif;
  --display:'Inter Display','Inter',-apple-system,system-ui,sans-serif;
  --r:10px; --r-sm:6px;               /* soft: cards 10 · nested 6        */
  --pop:0 18px 44px -12px rgba(23,37,53,.18);
  --shadow:0 1px 2px rgba(45,62,80,.05);

  /* fixed layout metrics — airy density (locked v5) */
  --fs:15px; --row-py:18px; --pad:26px; --rail-w:238px;

  /* ---- pastel "block" chips — dark --pill-ink text sits on these ---- */
  --ok-blk:#7cc7a4; --warn-blk:#dcb96b; --bad-blk:#e39a92; --blue-blk:#8fbfc9;
  --pill-ink:#1d2b38;
  --neutral-soft:rgba(45,62,80,.05);      /* neutral chip/overlay tint */
  /* (BRIDGE block retired 2026-07-25 — Phase C swept all 477 alias uses
     onto the real tokens above) */
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--ui);
  background:transparent; /* canvas paints on <html> (aurora wash below) */
  color:var(--ink);
  font-size:var(--fs);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
/* (grain overlay retired — titanium v5 locks grain:off) */
.mono{font-family:var(--ui);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.tnum{font-variant-numeric:tabular-nums}
/* status = dot + text — THE status primitive (§4). No backgrounds, no borders. */
.st{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:550;white-space:nowrap}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.st.ok{color:var(--ok)} .st.warn{color:var(--warn)} .st.bad{color:var(--bad)}
.st.blue{color:var(--blue)} .st.tan{color:var(--tan)} .st.mut{color:var(--muted)}
.vdot{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600}
.vdot::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
button{font-family:inherit;cursor:pointer;color:inherit}
a{color:inherit;text-decoration:none}
::selection{background:color-mix(in srgb, var(--blue) 24%, transparent); color:var(--ink)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:var(--card-3);border-radius:var(--r-sm);border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--bd-2)}
::-webkit-scrollbar-track{background:transparent}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:100vh;position:relative;z-index:1}
/* content column is 1fr but defaults to min-width:auto; pin it so wide pane
   content wraps instead of stretching the page into a horizontal scroll */
.app>div{min-width:0;background:var(--bg);border-top-left-radius:16px;margin-top:10px}

/* ---------- rail — dark shell ---------- */
.rail{
  background:var(--shell);color:var(--shell-ink);position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;padding:20px 14px;gap:2px;
}
.logo{display:flex;align-items:center;gap:11px;padding:4px 8px 18px}
.logo .mark{width:38px;height:38px;border-radius:0;background:none;
  display:grid;place-items:center;flex:none}
.logo .mark img{width:38px;height:38px;display:block;filter:drop-shadow(0 4px 14px rgba(0,0,0,.4))}
.logo b{font-family:var(--ui);font-weight:800;font-size:26px;color:#eef1f4;letter-spacing:-.005em;line-height:1;text-transform:uppercase;display:inline-block;transform:scaleX(1.04);transform-origin:left}
.logo small{display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--shell-faint);margin-top:3px;font-weight:600;font-family:var(--ui)}
.nav-h{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--shell-faint);margin:18px 10px 6px;font-weight:600}
.nav-i{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;color:var(--shell-ink);
  font-weight:500;font-size:14.5px;position:relative;transition:background .18s,color .18s}
.nav-i svg{width:16px;height:16px;opacity:.9;flex:none}
.nav-i:hover{background:var(--shell-2);color:#e8ecf0}
.nav-i.on{background:var(--shell-3);color:#fff}
.nav-i .pill{margin-left:auto;font-family:var(--ui);font-size:12px;font-weight:500;background:var(--shell-2);
  color:var(--shell-faint);padding:1px 7px;border-radius:99px;border:1px solid transparent}
.nav-i.on .pill{background:#39414a;color:#cdd5dd;border-color:transparent}
.rail-foot{margin-top:auto;border-top:1px solid var(--shell-bd);padding-top:14px;display:flex;align-items:center;gap:10px}
.rail-foot .av{width:32px;height:32px;border-radius:50%;background:#2c4a44;display:grid;place-items:center;color:#bfe0d5;font-weight:700;font-size:13px;flex:none}
.rail-foot .who{font-size:14px;font-weight:600;color:#e8ecf0;line-height:1.25}
.rail-foot .who small{display:block;color:var(--shell-faint);font-size:12px;font-weight:500;margin-top:1px}

/* ---------- topbar ---------- */
.top{display:flex;align-items:center;gap:14px;padding:12px 28px;border-bottom:1px solid var(--bd);
  background:var(--card);border-top-left-radius:16px;position:sticky;top:0;z-index:30}
.crumb{font-size:14px;color:var(--muted);font-weight:500}
.crumb b{color:var(--ink);font-weight:600}
.search{position:relative;margin-left:4px;flex:1;max-width:330px;display:flex;align-items:center;gap:9px;background:var(--card);
  border:1px solid var(--bd-2);border-radius:999px;padding:8px 14px;color:var(--muted);font-size:14px;transition:border-color .18s}
.search:focus-within{border-color:color-mix(in srgb, var(--blue) 45%, transparent)}
.search svg{width:15px;height:15px;flex:none}
.search input{border:0;outline:0;background:none;font-family:inherit;font-size:14px;color:var(--ink);width:100%}
.search input::placeholder{color:var(--faint)}
.search kbd{font-family:var(--ui);font-size:11.5px;color:var(--faint);border:1px solid var(--bd);border-radius:var(--r-sm);padding:1px 5px;background:var(--bg-2)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:11px}
/* ---- global search dropdown (⌘K) ---- */
.srch-pop{position:absolute;top:calc(100% + 8px);left:0;right:0;min-width:360px;max-height:min(70vh,560px);
  overflow-y:auto;background:var(--card);border:1px solid var(--bd);border-radius:12px;
  box-shadow:var(--pop);z-index:60;padding:6px}
.sp-group{padding:2px 0 4px}
.sp-h{display:flex;align-items:center;gap:7px;padding:8px 12px 5px;font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.sp-h span{font-family:var(--ui);font-weight:500;color:var(--faint);opacity:.75}
.sp-row{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;background:none;
  cursor:pointer;padding:8px 12px;border-radius:var(--r-sm);color:var(--ink);font-family:inherit;font-size:14px}
.sp-row:hover,.sp-row.on{background:var(--bg-2)}
.sp-row.on{outline:1px solid var(--bd-2)}
.sp-ic{flex:none;width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;
  font-size:11px;font-weight:700;font-family:var(--ui);letter-spacing:.02em}
.sp-ic.deal{background:color-mix(in srgb,var(--card-3) 30%,transparent);color:var(--card-3)}
.sp-ic.lead{background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok)}
.sp-ic.client{background:color-mix(in srgb,var(--tan) 24%,transparent);color:var(--tan)}
.sp-tx{min-width:0;flex:1}
.sp-t{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-t mark{background:none;color:var(--card-3);font-weight:700}
.sp-s{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.sp-amt{flex:none;font-family:var(--ui);font-size:12.5px;color:var(--muted)}
.sp-more{padding:5px 12px 3px;font-size:11.5px;color:var(--faint)}
.sp-empty{padding:20px 14px;text-align:center;color:var(--muted);font-size:13.5px}
.sp-foot{display:flex;gap:14px;padding:8px 12px 4px;margin-top:2px;border-top:1px solid var(--bd);
  font-size:11px;color:var(--faint)}
.sp-foot kbd{font-family:var(--ui);font-size:10.5px;border:1px solid var(--bd);border-radius:4px;
  padding:0 4px;margin-right:3px;color:var(--muted)}
@media(max-width:760px){.srch-pop{position:fixed;top:64px;left:12px;right:12px;min-width:0}}
.period{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--bd-2);
  border-radius:999px;padding:8px 14px;font-weight:600;font-size:14px;color:var(--soft)}
.period .g{width:7px;height:7px;border-radius:50%;background:var(--ok-blk);box-shadow:0 0 0 3px var(--ok-soft)}
.stamp{font-size:12px;color:var(--faint);font-weight:500;text-align:right;line-height:1.35}
.stamp b{color:var(--muted);font-family:var(--ui);font-weight:500}
.stamp .age-warn{color:var(--warn)}
.stamp .age-bad{color:var(--bad)}
/* Topbar health badges (2026-08-09): the unreachable/run-alert/envelope/
   freshness warnings used to render as bare inline text and wrapped the
   header. All get pill styling; the freshness list is collapsed by app.js
   into one .fresh-chip whose detail lives in the org-grouped popover. */
.stamp .badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;
  font-size:11px;font-weight:600;white-space:nowrap;vertical-align:middle}
.stamp .badge.warn{color:var(--warn);background:var(--warn-soft);
  border:1px solid color-mix(in srgb, var(--warn) 30%, transparent)}
.stamp .badge.bad{color:var(--bad);background:var(--bad-soft);
  border:1px solid color-mix(in srgb, var(--bad) 30%, transparent)}
.fresh-chip{position:relative;cursor:pointer}
.fresh-chip .fc-car{font-size:9px;opacity:.65}
.fresh-chip::after{content:"";position:absolute;top:100%;left:0;right:0;height:10px} /* hover bridge to the popover */
.fresh-pop{display:none;position:absolute;top:calc(100% + 8px);right:-4px;z-index:80;min-width:240px;
  background:var(--card);border:1px solid var(--bd-2);border-radius:10px;
  box-shadow:0 8px 24px rgba(45,62,80,.14);padding:10px 13px;text-align:left;cursor:default;font-weight:500}
.fresh-chip:hover .fresh-pop,.fresh-chip:focus-within .fresh-pop,.fresh-chip.open .fresh-pop{display:block}
.fp-org{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--faint);margin:7px 0 3px}
.fp-org:first-child{margin-top:0}
.fp-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:2px 0;
  font-size:12px;color:var(--ink)}
.fp-kind{font-size:10.5px;font-weight:600;color:var(--warn)}
.fp-note{display:block;margin-top:8px;padding-top:7px;border-top:1px solid var(--bd);font-size:11px;
  line-height:1.4;color:var(--muted);font-weight:400;white-space:normal;max-width:250px}
.icon-btn{width:35px;height:35px;border-radius:var(--r);border:1px solid var(--bd);background:var(--card);
  display:grid;place-items:center;color:var(--muted);transition:all .18s}
.icon-btn:hover{border-color:var(--bd-2);color:var(--ink);transform:translateY(-1px)}
.icon-btn svg{width:16px;height:16px}

/* ---------- main ---------- */
.main{padding:26px 28px 70px;max-width:1680px}
.view{display:none}
.view.on{display:block}
.page-h{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;gap:20px;flex-wrap:wrap}
.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);font-weight:650;margin-bottom:8px;position:relative;padding-left:16px}
.page-h h1{font-weight:650;font-size:26px;letter-spacing:-.03em;margin:0;line-height:1.1}
.page-h p{margin:10px 0 0;color:var(--muted);font-size:14.5px;max-width:580px;line-height:1.55}
.h-actions{display:flex;gap:9px}
.btn{display:inline-flex;align-items:center;gap:8px;height:34px;border:1px solid var(--bd-2);background:var(--card);
  padding:0 16px;line-height:1;white-space:nowrap;border-radius:999px;font-weight:600;font-size:14px;color:var(--ink);
  box-shadow:var(--shadow);transition:all .18s}
.btn:hover{background:var(--card-2)}
.btn.pri,.btn.dark{background:var(--forest);color:#fff;border-color:var(--forest)}
.btn.pri:hover,.btn.dark:hover{background:var(--forest-2);transform:translateY(-1px)}
.btn svg{width:15px;height:15px;flex:none}

/* context strip */
.ctx{display:grid;grid-template-columns:repeat(6,1fr);margin-bottom:16px;border:1px solid var(--bd);
  border-radius:var(--r);background:var(--card);overflow:hidden}
.ctx .c{padding:11px 16px;border-right:1px solid var(--bd)}
.ctx .c:last-child{border-right:0}
.ctx .c .l{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:600}
.ctx .c .v{font-family:var(--ui);font-weight:500;font-size:15px;margin-top:4px;color:var(--soft)}
.ctx .c .v.bad{color:var(--bad)}
@media(max-width:760px){.ctx{grid-template-columns:repeat(3,1fr)}.ctx .c:nth-child(3){border-right:0}}

/* ---------- KPI band ---------- */
.kpis{display:grid;grid-template-columns:1.55fr 1fr 1fr 1fr;gap:13px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:var(--pad);position:relative;overflow:hidden;
  transition:border-color .2s,transform .2s}
.kpi:hover{border-color:var(--bd-2);transform:translateY(-2px)}
.kpi .lab{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
/* kicker badge inside a KPI label (e.g. "default target") — was unstyled,
   rendering as run-on caps */
.kpi .lab .badge{margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;
  border-radius:var(--r-sm);letter-spacing:.05em}
.kpi .lab .badge.warn{color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);background:var(--warn-soft)}
.kpi .big{font-weight:620;font-size:38px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:10px;line-height:.95;color:var(--ink)}
.kpi .big .cur{color:var(--faint);font-size:28px;vertical-align:.24em;margin-right:2px}
.kpi .sub{margin-top:10px;font-size:13px;color:var(--muted);font-weight:500;display:flex;align-items:center;gap:8px}
.trend{font-family:var(--ui);font-weight:500;padding:2px 8px;border-radius:var(--r-sm);font-size:12.5px}
.trend.up{background:var(--ok-soft);color:var(--ok)}
.trend.dn{background:var(--bad-soft);color:var(--bad)}
.trend.flat{background:var(--neutral-soft);color:var(--muted)}

/* hero gap KPI */
.kpi.hero .big{font-size:58px}
.gapbar{margin-top:18px;height:28px;border-radius:var(--r-sm);background:var(--bg-2);border:1px solid var(--bd);
  position:relative;overflow:hidden;display:flex;align-items:center}
.gapbar .fill{height:100%;background:var(--ink);width:38.4%;display:flex;align-items:center;justify-content:flex-end;
  padding-right:9px;color:var(--bg);font-family:var(--ui);font-size:12px;font-weight:600;white-space:nowrap;min-width:0}
.gapbar .gap{flex:1;height:100%;display:flex;align-items:center;padding-left:10px;color:var(--bad);
  font-family:var(--ui);font-size:12px;white-space:nowrap;
  background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb, var(--bad) 13%, transparent) 6px 7px)}
.gap-note{font-size:13px;color:var(--warn);font-weight:500;margin-top:12px;display:flex;align-items:center;gap:7px}
.gap-note svg{width:14px;height:14px;flex:none}

/* ---------- panel ---------- */
.grid2{display:grid;grid-template-columns:1.55fr 1fr;gap:13px}
.panel{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;transition:border-color .2s}
.panel:hover{border-color:var(--bd-2)}
.panel-h{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--bd)}
.panel-h h3{margin:0;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.panel-h .meta{font-size:12.5px;color:var(--faint);font-weight:500;font-family:var(--ui)}
.panel-b{padding:18px}

/* ---------- forecast waterfall ---------- */
.wf-wrap{position:relative;padding:18px 6px 4px}
.wf-plot{position:relative;height:210px;display:flex;align-items:flex-end;gap:var(--wf-gap,16px)}
.wf-grid{position:absolute;inset:0;pointer-events:none}
.wf-grid .gl{position:absolute;left:0;right:0;border-top:1px dashed var(--bd);font-family:var(--ui);font-size:11px;color:var(--faint)}
.wf-grid .gl span{position:absolute;right:0;top:-14px;background:var(--card);padding:0 3px}
.wf-grid .gl.tgt{border-top:1px solid var(--soft)}
.wf-grid .gl.tgt span{color:var(--soft);font-weight:600}
.wfcol{flex:1;position:relative;height:100%}
.wfcol .seg{position:absolute;left:0;right:0;border-radius:var(--r-sm)}
.wfcol .conn{position:absolute;left:100%;width:var(--wf-gap,16px);height:1.5px;background:var(--muted);opacity:.45;z-index:3}
.wfcol .vlab{position:absolute;left:50%;transform:translateX(-50%);font-family:var(--ui);font-size:12.5px;font-weight:500;white-space:nowrap}
.wf-x{display:flex;gap:var(--wf-gap,16px);margin-top:10px}
.wf-x .xc{flex:1;text-align:center;font-size:12.5px;color:var(--soft);font-weight:500;line-height:1.3}
.wf-x .xc small{display:block;font-weight:400;color:var(--faint);font-size:11px}

/* ---------- rep table ---------- */
.reptable{width:100%;border-collapse:collapse;font-size:14px}
.reptable th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);
  font-weight:600;padding:0 14px 10px;border-bottom:1px solid var(--bd)}
.reptable th.num,.reptable td.num{text-align:right;font-family:var(--ui);font-variant-numeric:tabular-nums}
.reptable td{padding:var(--row-py) 14px;border-bottom:1px solid var(--bd);font-weight:500;color:var(--soft)}
.reptable tr:last-child td{border-bottom:0}
.reptable tbody tr{transition:background .15s}
.reptable tbody tr:hover td{background:var(--card-2)}
.reptable tr.zero td{color:var(--muted)}
.rep-name{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--ink)}
.reptable tr.zero .rep-name{color:var(--soft)}
.rep-name .av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:var(--pill-ink);font-size:11.5px;font-weight:700;flex:none}
.tinybar{display:flex;align-items:center;gap:9px;justify-content:flex-end}
.tinybar .track{width:54px;height:5px;border-radius:var(--r-sm);background:var(--bg-2);overflow:hidden;flex:none;border:1px solid var(--bd)}
.tinybar .track i{display:block;height:100%;background:var(--ink)}
.sig{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;white-space:nowrap}
.sig .dot{width:7px;height:7px;border-radius:50%;flex:none}
.sig.ok{color:var(--ok)}.sig.ok .dot{background:var(--ok-blk)}
.sig.warn{color:var(--warn)}.sig.warn .dot{background:var(--warn-blk)}
.sig.zero{color:var(--pill-ink);background:var(--bad-blk);padding:2px 9px;border-radius:var(--r)}
.sig.zero .dot{background:var(--pill-ink)}
.sig-note{color:var(--muted);font-weight:500;font-size:13px;margin-left:9px}

/* S6 forecast — rep-more fold */
.reptable tr.rep-more td{padding:6px 14px;border-bottom:0}
.rep-more-btn{background:none;border:0;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;padding:4px 2px}
.rep-more-btn:hover{color:var(--soft)}
/* S6 forecast — Advanced fold */
.fc-adv{margin-top:13px}
.fc-adv-h{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:0;cursor:pointer;color:var(--soft);font-size:13px;font-weight:600;padding:10px 2px}
.fc-adv-h:hover{color:var(--ink)}
.fc-adv-h .car{font-size:9px;color:var(--faint);transition:transform .15s}
.fc-adv.open .fc-adv-h .car{transform:rotate(90deg)}
.fc-adv-h .fc-adv-cov{margin-left:auto;font-size:11px;font-weight:500;color:var(--blue);font-variant-numeric:tabular-nums}
.fc-adv-b{display:none;flex-direction:column;gap:13px;padding-top:4px}
.fc-adv.open .fc-adv-b{display:flex}
/* S6 forecast — mirror org chips */
.chips.org-mirror{margin-right:10px}
.chips.org-mirror .chip.down{opacity:.45;cursor:not-allowed}

/* ---------- attention list ---------- */
.att{display:flex;gap:12px;align-items:center;padding:var(--row-py) 0;border-bottom:1px solid var(--bd);cursor:pointer}
.att:last-child{border-bottom:0;padding-bottom:2px}
.att:hover .t{color:var(--blue)}
.att .ic{width:31px;height:31px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center}
.att .ic.r{background:var(--bad-soft);color:var(--bad)}
.att .ic.a{background:var(--warn-soft);color:var(--warn)}
.att .ic svg{width:15px;height:15px}
.att .txt{min-width:0;flex:1}
.att .t{font-weight:600;font-size:14px;color:var(--ink);transition:color .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.att .d{color:var(--muted);font-size:13px;font-weight:500;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.att .amt{margin-left:auto;font-family:var(--ui);font-weight:500;font-size:14px;text-align:right;white-space:nowrap;color:var(--soft)}

/* ---------- pipeline toolbar ---------- */
.tools{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}
.chips{display:inline-flex;gap:7px;row-gap:7px;background:transparent;border:0;padding:0;flex-wrap:wrap;align-self:flex-start}
.chip{border:1px solid var(--bd-2);background:var(--card);color:var(--soft);font-size:13.5px;font-weight:550;height:30px;line-height:1;
  padding:0 14px;border-radius:999px;display:inline-flex;gap:7px;align-items:center;transition:all .18s;white-space:nowrap;box-shadow:var(--shadow)}
.chip:hover{background:var(--card-2);color:var(--ink)}
.chip.on{background:#e7f0f2;color:#0b5b67;border-color:#b4d2d7;box-shadow:none;font-weight:600}
.chip .n{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.chip.on .n{color:#4d8b95}
.chip .sw{width:7px;height:7px;border-radius:50%;flex:none}
.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sel{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--bd);
  border-radius:var(--r);padding:0 10px 0 12px;font-weight:500;font-size:14px;color:var(--muted);position:relative;transition:border-color .18s}
.sel:hover{border-color:var(--bd-2)}
.sel label{font-weight:500;color:var(--faint)}
.sel select{appearance:none;border:0;background:none;font-family:inherit;font-weight:600;font-size:14px;color:var(--ink);
  padding:9px 20px 9px 4px;outline:0;cursor:pointer}
.sel select option{background:var(--card);color:var(--ink)}
.sel .cv{position:absolute;right:9px;pointer-events:none;color:var(--faint)}
.sel .cv svg{width:12px;height:12px;display:block}

/* multiselect filter dropdowns (Pipeline tab) */
.msel{position:relative;display:inline-flex;min-height:32px;white-space:nowrap}
/* Rox mockup ft4 look: tight buttons, blue accents, 300px pop-shadowed pane. */
.ms-btn{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--bd-2);
  border-radius:999px;padding:6px 26px 6px 13px;box-shadow:var(--shadow);font-family:inherit;font-size:12.5px;font-weight:500;color:var(--muted);
  cursor:pointer;position:relative;transition:border-color .15s,color .15s}
.ms-btn:hover{color:var(--soft);border-color:var(--bd-2)}
.msel.open .ms-btn,.ms-btn.act{border-color:color-mix(in srgb, var(--blue) 50%, transparent);color:var(--soft)}
.ms-btn label{font-weight:500;color:var(--muted);cursor:pointer;pointer-events:none}
.ms-btn b{font-weight:550;color:var(--ink);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-btn .ms-n{background:var(--forest);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 6px}
.ms-btn .cv{position:absolute;right:10px;pointer-events:none;color:var(--faint);transition:transform .15s}
.msel.open .ms-btn .cv{transform:rotate(180deg)}
.ms-btn .cv svg{width:11px;height:11px;display:block}
.ms-pane{position:absolute;top:calc(100% + 8px);left:0;z-index:70;width:300px;max-height:344px;overflow:auto;
  background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r);padding:6px;box-shadow:var(--pop)}
.ms-opt{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r-sm);cursor:pointer;
  font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap}
.ms-opt:hover{background:var(--card-3);color:var(--ink)}
.ms-opt .ck{width:15px;height:15px;flex:none;border:1.5px solid var(--bd-2);border-radius:4.5px;background:var(--card);position:relative;transition:.1s}
.ms-opt.on{color:var(--ink)}
.ms-opt.on .ck{background:var(--blue);border-color:var(--blue)}
.ms-opt.on .ck::after{content:"";position:absolute;left:4.5px;top:2px;width:4px;height:8px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(40deg)}
.ms-opt.all{border-radius:var(--r-sm)}
/* quick All · None · Everything-else — blue text buttons (ft4-quick) */
.ms-acts{display:flex;align-items:center;gap:7px;padding:8px 8px 4px;margin-bottom:2px}
.ms-acts button{background:none;border:0;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--blue);
  cursor:pointer;padding:2px 6px;border-radius:var(--r-sm);transition:background .1s}
.ms-acts button:hover{background:var(--blue-soft)}
.ms-acts button:disabled{opacity:.35;pointer-events:none}
/* search row — magnifier icon + underlined input */
.ms-search{display:flex;align-items:center;gap:8px;padding:2px 8px 0;margin-bottom:2px;
  border-bottom:1px solid var(--bd);color:var(--faint)}
.ms-search svg{width:13px;height:13px;flex:none}
.ms-q{flex:1;width:100%;background:none;border:0;border-radius:0;
  padding:8px 0;margin:0;font-family:inherit;font-size:12.5px;color:var(--ink);outline:0}
.ms-q::placeholder{color:var(--faint)}
.ms-opt .ms-lab{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
.ms-opt:not(.on) .ms-lab{color:var(--muted);font-weight:400}
.ms-opt.hidden{display:none}
.ms-opt .ms-cnt{margin-left:auto;font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.ms-opt .ms-only{display:none;background:none;border:0;font-family:inherit;
  font-size:10.5px;font-weight:600;color:var(--blue);cursor:pointer;padding:3px 8px;border-radius:var(--r-sm);margin-left:2px}
.ms-opt:hover .ms-only{display:inline-block}
.ms-opt .ms-only:hover{background:var(--blue-soft)}
.ms-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:2px;
  padding:8px;border-top:1px solid var(--bd);font-size:11.5px;color:var(--faint)}
.ms-foot .ms-done{background:none;border:0;font-family:inherit;font-size:12px;font-weight:600;
  color:var(--blue);cursor:pointer;padding:0;transition:color .1s}
.ms-foot .ms-done:hover{color:var(--ink)}
.pf-clear{background:none;border:0;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--faint);
  cursor:pointer;padding:6px 4px;transition:color .18s}
.pf-clear:hover{color:var(--ink)}
.spacer{flex:1}
.count{font-size:12.5px;color:var(--faint);font-weight:500}
.count b{color:var(--soft);font-weight:600;font-variant-numeric:tabular-nums}
/* pipeline health chips — Rox mockup rounded-pill group (scoped, shared .chip untouched) */
#chips{background:var(--card);border-radius:4px}
#chips .chip{border-radius:4px;padding:6px 15px;font-size:12.5px;font-weight:550}
#chips .chip .n{font-size:11px}

/* ---------- deal table ---------- */
.dtable-wrap{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:visible}
.dtable{width:100%;border-collapse:collapse;font-size:14.5px}
.dtable thead th{position:sticky;top:64px;background:var(--bg-2);text-align:left;font-size:10.5px;letter-spacing:.07em;
  text-transform:uppercase;color:var(--soft);font-weight:650;padding:12px 17px;border-bottom:1px solid var(--bd);z-index:8}
.dtable thead th:first-child{border-top-left-radius:var(--r)}
.dtable thead th:last-child{border-top-right-radius:var(--r)}
.dtable th.num,.dtable td.num{text-align:right;font-family:var(--ui);font-variant-numeric:tabular-nums}
.dtable thead th.sortable{cursor:pointer;user-select:none}
.dtable thead th.sortable:hover{color:var(--blue)}
.dtable thead th.sortable::after{content:"";display:inline-block;width:0;margin-left:5px;opacity:.85;font-size:8px;vertical-align:1px}
.dtable thead th.sortable:hover::after{content:"↕";opacity:.4}
.dtable thead th.sortable.sorted{color:var(--blue)}
.dtable thead th.sortable.sorted.asc::after,.dtable thead th.sortable.sorted.asc:hover::after{content:"↑";opacity:.95;width:auto}
.dtable thead th.sortable.sorted.desc::after,.dtable thead th.sortable.sorted.desc:hover::after{content:"↓";opacity:.95;width:auto}
.dtable td{padding:var(--row-py) 17px;border-bottom:1px solid var(--bd);vertical-align:middle;color:var(--soft)}
.dtable tbody tr{transition:background .15s}
.dtable tbody tr:hover{background:var(--card-2)}
.dtable tbody tr.clickable{cursor:pointer}
.dtable tbody tr.clickable:hover .d-name{color:var(--blue)}
.dtable tbody tr:last-child td{border-bottom:0}
.d-name{font-weight:600;color:var(--ink);font-size:14.5px;display:flex;align-items:center;gap:9px;transition:color .15s}
.d-name .open{font-size:11.5px;color:var(--blue);opacity:0;font-weight:600;font-family:var(--ui);transition:opacity .15s}
.dtable tr.clickable:hover .d-name .open{opacity:1}
.d-stage{font-size:13px;color:var(--muted);font-weight:500;margin-top:3px}
.owner-tag{display:inline-flex;align-items:center;gap:8px;font-weight:500;font-size:14px;color:var(--soft)}
.owner-tag.first{font-size:13.5px}
.owner-tag .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:var(--pill-ink);font-size:10.5px;font-weight:700;flex:none}
/* Lead Source cell */
.lead-src{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--soft);white-space:nowrap}
.lead-src .ls-dot{width:6px;height:6px;border-radius:50%;background:var(--cad-out);flex:none}
.due{font-family:var(--ui);font-size:14px;font-weight:500}
.due.bad{color:var(--bad)}
.due.warnc{color:var(--warn)}
.due.okc{color:var(--muted)}

/* priority ramp tokens (#15): score pill colours grey->blue, high = act now.
   Scoped to .score so the warm --hot/--warn/--concern palette is untouched
   everywhere else (category pills, KPI cards, legend). */
:root{
  --score-hi-blk:#9db4ce; --score-hi:#c3cdd9;
  --score-mid-blk:#7f8ea0; --score-mid:#9aa6b4;
  --score-lo-blk:#7c7f88; --score-lo:#9a9ea8;
  --score-dead-blk:#63656c; --score-dead:#7d8089;
}
/* score ring — 38px conic, tier-colored, number inside (§4) */
.scorewrap{position:relative;display:inline-flex;align-items:center;gap:5px;justify-content:flex-end}
.score{position:relative;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  font-size:12.5px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink);flex:none}
.score .ring{position:absolute;inset:0;border-radius:50%}
.score .ring::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--card)}
.dtable tbody tr:hover .score .ring::after{background:var(--card-2)}
.score em{font-style:normal;z-index:1}
.score.hot .ring{background:conic-gradient(var(--ok) var(--p,0%),var(--bd) 0)}
.score.warn .ring{background:conic-gradient(var(--warn) var(--p,0%),var(--bd) 0)}
.score.concern .ring{background:conic-gradient(var(--tan) var(--p,0%),var(--bd) 0)}
.score.dead .ring{background:conic-gradient(var(--bad) var(--p,0%),var(--bd) 0)}
.scorewrap>.dl{min-width:22px;font-size:10px;font-weight:700;text-align:left}
.scorewrap>.dl.up{color:var(--ok)}
.scorewrap>.dl.dn{color:var(--bad)}

/* hover card */
.hovercard{position:absolute;z-index:60;top:calc(100% + 9px);right:0;width:300px;background:var(--card-2);color:var(--ink);
  border-radius:var(--r);box-shadow:var(--pop);opacity:0;visibility:hidden;transition:opacity .1s;border:1px solid var(--bd-2);text-align:left;overflow:hidden}
.scorewrap:hover .hovercard{opacity:1;visibility:visible}
.hovercard .hc-h{display:flex;align-items:center;gap:13px;padding:15px 16px;border-bottom:1px solid var(--bd)}
.hovercard .hc-ring{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;position:relative}
.hovercard .hc-ring::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--card-2)}
.hovercard .hc-ring b{position:relative;z-index:1;font-family:var(--ui);font-weight:600;font-size:14px}
.hovercard .hc-meta{font-size:13px;color:var(--muted);font-weight:500}
.hovercard .hc-meta b{display:block;font-size:14px;color:var(--ink);font-weight:600;margin-bottom:2px;font-family:var(--ui)}
.hovercard .hc-meta span{font-family:var(--ui);font-size:13px}
.hovercard .why{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.09em;font-weight:600;padding:13px 16px 0}
.hovercard ul{margin:8px 0 0;padding:0 16px 15px;list-style:none;display:flex;flex-direction:column;gap:8px}
.hovercard li{display:flex;gap:10px;font-size:14px;color:var(--soft);font-weight:500;align-items:flex-start;line-height:1.4}
.hovercard li .b{width:16px;height:16px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;margin-top:1px;color:var(--pill-ink)}
.hovercard li .b svg{width:10px;height:10px;stroke-width:3.2}
.hovercard li.pos .b{background:var(--ok-blk)}
.hovercard li.neg .b{background:var(--bad-blk)}

/* ---------- activity timeline column (Gong-style, last 30 days) ---------- */
.dtable th.act-col{min-width:230px}
.dtable td.act-cell{padding-top:0;padding-bottom:0}
.acthead{display:flex;flex-direction:column;gap:6px}
.acthead>span{white-space:nowrap}
.acthead .ax{display:flex;align-items:center;justify-content:space-between;position:relative;
  font-family:var(--ui);font-size:10px;letter-spacing:.04em;color:var(--faint);text-transform:none;font-weight:500}
.acthead .ax .td{color:var(--soft);font-weight:600;letter-spacing:.08em}
/* activity legend — info dot in the header with a hover/focus popover */
.actinfo{position:relative;display:inline-grid;place-items:center;width:13px;height:13px;margin-left:6px;
  border-radius:50%;border:1px solid var(--bd-2);color:var(--muted);font-style:italic;font-size:10.5px;
  font-weight:700;cursor:help;vertical-align:middle;text-transform:none;letter-spacing:0}
.actinfo:hover{color:var(--ink);border-color:var(--bd-2)}
/* raise the whole header cell's stacking context while the legend is shown so the
   popover paints above sibling sticky <th>s and the cells below it */
.dtable th.act-col:hover,.dtable th.act-col:focus-within{z-index:301}
.actlegend{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);
  z-index:302;width:228px;background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r);
  box-shadow:var(--pop);padding:11px 13px;display:flex;flex-direction:column;gap:7px;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,transform .12s ease;
  text-transform:none;letter-spacing:0;font-weight:500;white-space:normal}
.actinfo:hover .actlegend,.actinfo:focus .actlegend,.actinfo:focus-within .actlegend{
  opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.actlegend .lg-h{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600}
.actlegend .lg-row{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--soft)}
.actlegend .lg-sw{width:13px;height:13px;border-radius:3px;flex:none;background:var(--bd)}
.actlegend .lg-foot{font-size:12px;color:var(--faint);line-height:1.4;border-top:1px solid var(--bd);padding-top:7px}

.act{display:flex;align-items:center;gap:3px;height:38px;min-width:200px}
/* declined meeting — red 'no' marker: red cell with a dark diagonal strike */
.act-empty{display:flex;align-items:center;gap:8px;color:var(--faint);font-size:12.5px}
.act-empty .ln{flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--bd) 0 5px,transparent 5px 10px)}
.act-empty .tx{display:flex;align-items:center;gap:6px;white-space:nowrap}
.act-empty .wd{width:6px;height:6px;border-radius:50%;background:var(--bad);opacity:.7;flex:none}

/* ---------- B+ activity strip: sentiment dots, two lanes, gap bands ---------- */
.dtable .act .tl4bp{height:38px}
.tl4bp .gl{position:absolute;top:6px;bottom:12px;width:1px;background:rgba(45,62,80,.07)}
.tl4bp .gl.today{background:var(--bd-2)}
.tl4bp .lane{position:absolute;left:-1px;font-size:8.5px;font-weight:700;letter-spacing:.09em;color:var(--faint)}
.tl4bp .gapv{position:absolute;top:4px;height:26px;border-radius:3px;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(45,62,80,.06) 0 3px,transparent 3px 7px)}
.tl4bp .conn{position:absolute;width:1px;background:var(--bd-2)}
.tl4bp .tail-lab{position:absolute;right:0;font-size:9.5px;color:var(--faint);white-space:nowrap;font-variant-numeric:tabular-nums}
.tl4bp .bp-dot{position:absolute;left:50%;transform:translate(-50%,-50%);border-radius:50%}
.bp-dot.em{width:7px;height:7px}
.bp-dot.call{width:10px;height:10px;background:var(--card);border:2px solid}
.bp-dot.meet{width:12px;height:12px;border:2px solid;box-shadow:0 0 0 2px var(--bd-2)}
.bp-dot.decl{width:12px;height:12px;background:var(--card);border:2.5px solid var(--bad)}
/* unscored events — hollow grey, never an invented tone */
.bp-dot.em.un{background:var(--card);border:1.5px solid var(--faint)}
.bp-dot.call.un{border-color:var(--faint)}
.bp-dot.meet.un{background:var(--card);border-color:var(--faint);box-shadow:none}
.tl4-hit:hover .bp-dot{filter:brightness(1.3)}
.tl4bp .tl4-tip{max-width:250px}
.tl4-tip .bp-why{display:block;font-size:11px;font-style:italic;color:var(--muted);margin:0 0 4px}
.tl4-tip .bp-snip{display:block;font-size:11.5px;color:var(--soft);line-height:1.45;margin-top:6px;padding-top:6px;border-top:1px solid var(--bd)}
.tl4-tip .bp-snip.q{font-style:italic}
.tl4-tip .bp-foot{display:block;font-size:10.5px;color:var(--warn);margin-top:6px}

/* ---------- floating activity tooltip ---------- */
.act-tip{position:fixed;z-index:200;pointer-events:none;opacity:0;transform:translateY(4px);
  transition:opacity .12s ease,transform .12s ease;
  width:296px;background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r);
  box-shadow:var(--pop);padding:13px 14px}
.act-tip.show{opacity:1;transform:translateY(0)}
.act-tip .th{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px}
.act-tip .ch{width:23px;height:23px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;color:var(--pill-ink)}
.act-tip .ch svg{width:13px;height:13px}
.act-tip .ti{flex:1;min-width:0}
.act-tip .ti .lab{font-size:14px;font-weight:600;color:var(--ink);line-height:1.25;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.act-tip .ti .meta{font-size:12px;color:var(--muted);margin-top:2px}
.act-tip .ti .meta .dir{font-weight:600}
.act-tip .when{font-family:var(--ui);font-size:11.5px;color:var(--faint);flex:none;text-align:right;line-height:1.3}
.act-tip .when b{display:block;color:var(--soft);font-size:12.5px;font-weight:600}
.act-tip .body{font-size:13px;color:var(--soft);line-height:1.5;border-top:1px solid var(--bd);padding-top:9px;
  white-space:pre-wrap;word-break:break-word}
.act-tip .evs{display:flex;flex-direction:column}
.act-tip .ev{display:flex;gap:8px;align-items:flex-start;padding:5px 0}
.act-tip .ev+.ev{border-top:1px solid var(--bd)}
.act-tip .ev .dot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex:none}
.act-tip .ev .sub{font-size:11.5px;color:var(--muted);margin-top:2px;text-transform:none;letter-spacing:0}
.act-tip .ev.more{color:var(--faint);font-size:12.5px;padding-top:7px}

/* ---------- DEAL WORKSPACE ---------- */
.ws-back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:500;font-size:14px;margin-bottom:14px;transition:color .15s}
.ws-back:hover{color:var(--blue)}
.ws-back svg{width:14px;height:14px}
.ws-head{display:flex;gap:18px;align-items:flex-start;margin-bottom:18px;flex-wrap:wrap}
.ws-title{flex:1;min-width:300px}
.ws-title h1{font-weight:650;font-size:26px;letter-spacing:-.03em;margin:0;line-height:1.1}
.ws-title .row{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.meta-pill{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 13px;font-size:13px;font-weight:500;
  border-radius:var(--r-sm);background:var(--card-2);color:var(--soft);border:1px solid var(--bd);white-space:nowrap}
.meta-pill .sdot{width:7px;height:7px;border-radius:50%;flex:none}
.meta-pill.stage{color:var(--ink);font-weight:600}
.meta-pill.pipe{color:var(--muted);font-weight:500}
.meta-pill.alert{background:var(--bad-soft);color:var(--bad);border-color:color-mix(in srgb, var(--bad) 22%, transparent);font-weight:600}
.owner-chip{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 13px 0 4px;border-radius:4px;
  background:var(--card-2);border:1px solid var(--bd);font-size:14px;font-weight:500;color:var(--soft);white-space:nowrap}
.owner-chip .av{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;color:var(--pill-ink);font-size:11px;font-weight:700;flex:none}
.owner-chip.unassigned{color:var(--blue)}
.ws-cta{margin-left:auto;display:flex;gap:9px;flex:none}

.ws-grid{display:grid;grid-template-columns:1fr 340px;gap:14px;align-items:start}
/* grid items default to min-width:auto, so long unbreakable content (URLs in
   emails, transcripts) would expand the 1fr track and scroll the whole app.
   Pin both tracks to min-width:0 and let pane content wrap instead. */
.ws-grid>div{min-width:0}

/* metric band */
.mband{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--card);border:1px solid var(--bd);
  border-radius:var(--r);overflow:hidden;margin-bottom:14px}
.mband .m{padding:15px 18px;border-right:1px solid var(--bd)}
.mband .m:last-child{border-right:0}
.mband .lab{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:600}
.mband .v{font-weight:620;font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:6px;line-height:1;color:var(--ink)}
.mband .v small{font-family:var(--ui);font-size:13px;color:var(--muted);font-weight:500}

/* insight / move card */
.insight{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:var(--pad);margin-bottom:14px}
.insight .badge{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--bad);background:var(--bad-soft);padding:5px 11px;border-radius:var(--r);border:1px solid color-mix(in srgb, var(--bad) 18%, transparent)}
.insight .badge .pulse{width:7px;height:7px;border-radius:50%;background:var(--bad-blk)}
.insight p.read{margin:14px 0 0;font-size:14px;line-height:1.6;color:var(--soft)}
.insight p.read b{color:var(--ink)}
.obj-h{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:16px 0 9px}
.obj{display:flex;gap:6px;flex-wrap:wrap}
.obj span{font-size:13px;font-weight:500;color:var(--bad);background:var(--bad-soft);padding:3px 10px;border-radius:var(--r-sm);white-space:nowrap;border:1px solid color-mix(in srgb, var(--bad) 14%, transparent)}
.move{margin-top:16px;padding:14px 16px;background:var(--card-2);border:1px solid var(--bd);border-left:3px solid var(--ok-blk);border-radius:var(--r)}
.move b{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ok);font-weight:600;display:flex;align-items:center;gap:7px}
.move b svg{width:13px;height:13px}
.move p{margin:7px 0 0;font-weight:500;color:var(--ink);font-size:14.5px;line-height:1.5}

/* subtabs */
.subtabs{display:flex;gap:2px;border-bottom:1px solid var(--bd);margin-bottom:0;padding:0 1px}
.subtab{padding:11px 15px;font-weight:500;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;background:none;border-top:0;border-left:0;border-right:0;transition:color .15s}
.subtab .n{font-family:var(--ui);font-size:11.5px;background:var(--card-2);color:var(--muted);padding:1px 6px;border-radius:var(--r);margin-left:6px;border:1px solid var(--bd)}
.subtab:hover{color:var(--soft)}
.subtab.on{color:var(--ink);border-bottom-color:var(--ink)}
.subtab.on .n{background:var(--blue);color:#fff;border-color:transparent}
.subpane{display:none;padding:17px 1px;overflow-wrap:anywhere}
.subpane.on{display:block}
/* ws5 segmented sub-tab control (deal workspace) — ported from rox-mockup 862-869 */
.ws5-tabs{display:inline-flex;gap:4px;background:var(--card);border:1px solid var(--bd);border-radius:4px;padding:4px;margin-bottom:12px}
.ws5-tab{padding:6px 14px;border-radius:4px;font-size:12.5px;font-weight:550;color:var(--muted);background:none;border:0;cursor:pointer}
.ws5-tab:hover{color:var(--soft)}
.ws5-tab.on{background:var(--card-3);color:var(--ink);box-shadow:inset 0 0 0 1px var(--bd-2)}
.ws5-tab .n{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums;margin-left:5px}
.ws5-tab.on .n{color:var(--blue)}
.ws5-panel{display:none}
.ws5-panel.on{display:block}
/* ws5-card — panel-stack wrapper (mockup 792) */
.ws5-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:16px 18px 15px;margin-bottom:14px}

/* call card */
.call{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:17px 18px}
.call-h{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.call-h .ff{width:30px;height:30px;border-radius:var(--r-sm);background:var(--warn-blk);color:var(--pill-ink);display:grid;place-items:center;font-weight:700;font-size:12.5px;flex:none;font-family:var(--ui)}
.call-h .t{font-weight:600;font-size:14px;color:var(--ink)}
.call-h .t small{display:block;color:var(--muted);font-weight:500;font-size:12.5px;margin-top:2px;font-family:var(--ui)}
.call-h a{margin-left:auto;font-size:14px;font-weight:600;color:var(--blue);display:inline-flex;align-items:center;gap:5px}
.call-h a:hover{color:var(--ink)}
.call-h a svg{width:13px;height:13px}
.call ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.call li{display:flex;gap:11px;font-size:14.5px;color:var(--soft);line-height:1.5}
.call li b{color:var(--ink);font-weight:600}
.call li .mk{width:5px;height:5px;border-radius:50%;background:var(--blue-blk);margin-top:8px;flex:none}

/* timeline — modular cards: each activity type has its own anatomy */
.tl{position:relative;padding-left:26px}
.tl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--card-3)}
.tl-i{position:relative;margin-bottom:14px}
.tl-i:last-child{margin-bottom:0}
.tl-i>.tl-knob{position:absolute;left:-23px;top:15px;width:15px;height:15px;border-radius:50%;border:3px solid var(--bg);background:var(--muted);z-index:1}
.tl-i.email.in>.tl-knob{background:var(--cad-in)}
.tl-i.email.out>.tl-knob{background:var(--blue-blk)}
.tl-i.call>.tl-knob{background:var(--cad-out);border-radius:4px;width:14px;height:14px}
.tl-i.meet>.tl-knob{background:var(--warn-blk)}
.tl-i.note>.tl-knob{background:var(--muted)}
.tl-i.trans>.tl-knob{background:var(--faint)}
.tlc{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden}

/* EMAIL — slim card, header bar tinted by direction */
.tlmail .tlmail-hd{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--bd)}
.tlmail.out .tlmail-hd{background:linear-gradient(90deg,color-mix(in srgb, var(--blue-blk) 10%, transparent),transparent)}
.tlmail.in .tlmail-hd{background:linear-gradient(90deg,color-mix(in srgb, var(--bad) 10%, transparent),transparent)}
.tlmail .tlmail-av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--ui);font-size:11.5px;font-weight:700;flex:none}
.tlmail.out .tlmail-av{background:color-mix(in srgb, var(--blue-blk) 18%, transparent);color:var(--blue-blk)}
.tlmail.in .tlmail-av{background:color-mix(in srgb, var(--bad) 18%, transparent);color:var(--cad-in)}
.tlmail .tlmail-route{font-size:14px;color:var(--soft);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tlmail .tlmail-route b{color:var(--ink);font-weight:600}
.tlmail .tlmail-route .ar{color:var(--faint);margin:0 6px}
.tlmail .tlmail-badge{margin-left:auto;font-family:var(--ui);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r-sm);flex:none}
.tlmail.out .tlmail-badge{color:var(--blue-blk);border:1px solid color-mix(in srgb, var(--blue-blk) 30%, transparent)}
.tlmail.in .tlmail-badge{color:var(--cad-in);border:1px solid color-mix(in srgb, var(--bad) 30%, transparent)}
.tlmail .tlmail-when{font-family:var(--ui);font-size:12px;color:var(--faint);flex:none}
.tlmail .tlmail-body{padding:12px 14px 13px}
.tlmail .tlmail-subj{font-weight:600;font-size:14.5px;margin-bottom:5px;color:var(--ink)}
.tlmail .tlmail-snip{font-size:14px;color:var(--soft);line-height:1.55;white-space:pre-line}
.tlmail .tlmail-empty{font-size:13px;color:var(--faint);font-style:italic}
.tlmail .tlmail-cc{margin-top:9px;font-family:var(--ui);font-size:12px;color:var(--muted)}

/* CALL — hero card with sentiment meter, intel chips, action items */
.tlcall{border-color:rgba(125,135,163,.24)}
.tlcall .tlcall-hd{padding:14px 16px;background:linear-gradient(180deg,rgba(125,135,163,.10),transparent);display:flex;align-items:center;gap:12px}
.tlcall .tlcall-ic{width:38px;height:38px;border-radius:var(--r);background:rgba(125,135,163,.16);color:var(--cad-out);display:grid;place-items:center;font-size:18px;flex:none}
.tlcall .tlcall-t{font-weight:600;font-size:15px;color:var(--ink);min-width:0}
.tlcall .tlcall-t small{display:block;font-family:var(--ui);font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}
.tlmeter{margin-left:auto;text-align:right;flex:none}
.tlmeter .lab{font-size:12.5px;font-weight:600}
.tlmeter.warm .lab{color:var(--ok)}.tlmeter.mixed .lab{color:var(--warn)}
.tlmeter.cool .lab{color:var(--bad)}.tlmeter.neutral .lab{color:var(--muted)}
.tlmeter .bar{width:80px;height:4px;border-radius:3px;background:var(--card-3);margin-top:5px;overflow:hidden;margin-left:auto}
.tlmeter .bar i{display:block;height:100%;border-radius:3px}
.tlmeter.warm .bar i{width:80%;background:var(--ok)}.tlmeter.mixed .bar i{width:55%;background:var(--warn)}
.tlmeter.cool .bar i{width:30%;background:var(--bad)}.tlmeter.neutral .bar i{width:45%;background:var(--muted)}
.tlcall .tlcall-body{padding:13px 16px 14px}
.tlcall .tlcall-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tlcall .tlcall-grid h5{font-family:var(--ui);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0 0 6px}
.tlcall .tlcall-grid p{font-size:14px;color:var(--soft);line-height:1.55;margin:0}
.tlcall .tlcall-foot{display:flex;align-items:center;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--bd)}
.tlcall .tlcall-rec{font-size:13px;font-weight:600;color:var(--cad-out);border:1px solid rgba(125,135,163,.35);border-radius:var(--r-sm);padding:5px 12px;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.tlcall .tlcall-rec:hover{background:rgba(125,135,163,.10)}
.tlcall .tlcall-ns{font-size:13px;color:var(--muted)}
.tlcall details>summary{cursor:pointer;list-style:none;font-family:var(--ui);font-size:12.5px;color:var(--muted);margin-top:12px}
.tlcall details>summary::-webkit-details-marker{display:none}
.tlcall details>summary::before{content:"▸ "}
.tlcall details[open]>summary::before{content:"▾ "}
.tlcall details .own{font-size:12.5px;font-weight:600;color:var(--cad-out);margin:9px 0 3px}
.tlcall details ul{margin:0;padding:0;list-style:none}
.tlcall details li{font-size:13px;color:var(--soft);margin:0 0 3px 14px;position:relative;line-height:1.5}
.tlcall details li::before{content:"→";position:absolute;left:-14px;color:var(--cad-out)}

/* MEETING — calendar card */
.tlmeet{display:flex}
.tlmeet .tlmeet-date{flex:none;width:78px;background:linear-gradient(180deg,color-mix(in srgb, var(--warn) 14%, transparent),color-mix(in srgb, var(--warn) 4%, transparent));border-right:1px solid var(--bd);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 0}
.tlmeet .tlmeet-date .mo{font-family:var(--ui);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--warn-blk)}
.tlmeet .tlmeet-date .dy{font-size:26px;font-weight:700;line-height:1;margin:3px 0;color:var(--ink)}
.tlmeet .tlmeet-date .ti{font-family:var(--ui);font-size:11.5px;color:var(--muted)}
.tlmeet .tlmeet-b{padding:13px 16px;flex:1;min-width:0}
.tlmeet .tlmeet-t{font-weight:600;font-size:14px;color:var(--ink)}
.tlmeet .tlmeet-tag{font-family:var(--ui);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--warn-blk);border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);border-radius:var(--r-sm);padding:1px 7px;margin-left:8px}
.tlmeet .tlqa{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin-top:10px}
.tlmeet .tlqa div{font-size:13px;color:var(--soft)}
.tlmeet .tlqa b{display:block;font-size:12px;color:var(--faint);font-weight:500;margin-bottom:1px}
.tlmeet .tlmeet-link{font-size:13px;display:inline-block;margin-top:10px;color:var(--blue)}

/* NOTE — sticky paper */
.tlnote{background:linear-gradient(180deg,color-mix(in srgb, var(--tan) 10%, var(--card)),color-mix(in srgb, var(--tan) 5%, var(--bg-2)));border:1px solid color-mix(in srgb, var(--tan) 18%, transparent);border-radius:4px var(--r) var(--r) var(--r);padding:11px 15px;max-width:72%;box-shadow:var(--pop)}
.tlnote .nl{font-family:var(--ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn-blk)}
.tlnote .nt{font-size:14px;color:var(--soft);margin-top:4px;line-height:1.5}
.tlnote .nm{font-family:var(--ui);font-size:11.5px;color:var(--faint);margin-top:7px}

/* TRANSCRIPT — attachment row */
.tltrans{display:flex;align-items:center;gap:12px;padding:11px 14px;border-style:dashed}
.tltrans .fic{width:34px;height:34px;border-radius:var(--r-sm);background:var(--card-2);display:grid;place-items:center;color:var(--faint);font-size:16px;flex:none}
.tltrans .fn{font-size:14px;font-weight:500;color:var(--soft)}
.tltrans .fm{font-family:var(--ui);font-size:11.5px;color:var(--faint);margin-top:2px}
@media (max-width:600px){.tlcall .tlcall-grid,.tlmeet .tlqa{grid-template-columns:1fr}.tlnote{max-width:100%}}
.tl-more{margin-top:6px;padding:11px 14px;border:1px dashed var(--bd-2);border-radius:var(--r);
  font-size:13px;color:var(--muted);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tl-showall{margin-left:auto;font-family:var(--ui);font-size:13px;font-weight:600;color:var(--cad-out);
  background:none;border:1px solid color-mix(in srgb, var(--blue-blk) 30%, transparent);border-radius:var(--r-sm);padding:4px 11px;cursor:pointer}
.tl-showall:hover{background:color-mix(in srgb, var(--blue-blk) 10%, transparent);color:var(--ink)}

/* emails (expandable) */
.mail{border:1px solid var(--bd);border-radius:var(--r);margin-bottom:8px;background:var(--card);overflow:hidden;transition:border-color .18s}
.mail:hover{border-color:var(--bd-2)}
.mail-h{display:flex;align-items:center;gap:11px;padding:12px 14px;cursor:pointer}
.mail-h .dirdot{width:8px;height:8px;border-radius:50%;flex:none}
.mail-h.in .dirdot{background:var(--ok-blk)}.mail-h.out .dirdot{background:var(--blue-blk)}
.mail-h .subj{font-weight:600;font-size:14px;flex:1;min-width:0;color:var(--ink);overflow-wrap:anywhere}
.mail-h .subj small{display:block;color:var(--muted);font-weight:500;font-size:12.5px;margin-top:1px}
.mail-h .when{font-family:var(--ui);font-size:12px;color:var(--faint);font-weight:500}
.mail-h .chev{width:14px;height:14px;color:var(--faint);transition:transform .18s}
.mail.open .chev{transform:rotate(90deg)}
.mail-b{display:none;padding:0 14px 14px 33px;font-size:14px;color:var(--soft);line-height:1.6;overflow-wrap:anywhere;word-break:break-word}
.mail.open .mail-b{display:block}

/* contacts */
.contact{display:flex;align-items:center;gap:13px;padding:15px 17px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r)}
.contact .av{width:40px;height:40px;border-radius:50%;background:var(--blue-blk);color:var(--pill-ink);display:grid;place-items:center;font-weight:700;flex:none;font-size:15px}
.contact .nm{font-weight:600;font-size:14px;color:var(--ink)}
.contact .nm small{display:block;color:var(--muted);font-weight:500;font-size:13px;margin-top:2px}
.contact .stat{margin-left:auto;display:flex;gap:22px;text-align:center}
.contact .stat div b{font-family:var(--ui);font-size:17px;display:block;font-weight:500;color:var(--ink)}
.contact .stat div small{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600}

/* sidebar (right) followup */
.side{position:sticky;top:82px;display:flex;flex-direction:column;gap:14px}
.draft{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden}
.draft-h{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--bd);background:var(--card-2)}
.draft-h .sp{width:8px;height:8px;border-radius:50%;background:var(--ok-blk);box-shadow:0 0 0 4px var(--ok-soft)}
.draft-h h4{margin:0;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--soft)}
.draft-h .ai{margin-left:auto;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--blue);
  background:var(--bg-2);padding:3px 9px;border-radius:var(--r);border:1px solid var(--bd)}
.draft-b{padding:15px 16px}
.draft .fld{font-size:14px;margin-bottom:10px}
.draft .fld span{color:var(--faint);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:11px}
.draft .fld div{font-weight:600;margin-top:2px;color:var(--ink)}
.draft .email{font-size:14px;color:var(--soft);line-height:1.65;white-space:pre-wrap;border-top:1px solid var(--bd);
  padding-top:12px;margin-top:9px;overflow-wrap:anywhere;word-break:break-word}
.draft-f{display:flex;gap:8px;padding:13px 16px;border-top:1px solid var(--bd)}
.draft-f .btn{flex:1;justify-content:center}
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(16px);background:var(--card-2);color:var(--ink);
  border:1px solid var(--bd-2);padding:11px 18px;border-radius:var(--r);font-weight:600;font-size:13.5px;box-shadow:var(--pop);opacity:0;transition:opacity .22s,transform .22s;z-index:120;display:flex;gap:9px;align-items:center;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast svg{width:15px;height:15px;color:var(--ok)}

.mini-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:16px 17px}
.mini-card h4{margin:0 0 12px;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;align-items:center}
.mini-card h4 .sc{font-family:var(--ui);color:var(--warn);font-size:14.5px}
.kv{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--bd);font-size:14px}
.kv:last-child{border-bottom:0}
.kv span{color:var(--muted);font-weight:500}
.kv b{font-weight:500;font-family:var(--ui);font-size:14px}

/* ---------- Display (tweaks) panel ---------- */

@media(max-width:1120px){
  .ws-grid{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}
}
/* Mobile nav: below 860px the rail becomes an off-canvas drawer opened by the
   topbar hamburger (#navBurger). body.nav-open slides it in over a scrim. */
.burger{display:none}
.nav-scrim{display:none;position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.45)}
@media(max-width:860px){
  .app{grid-template-columns:1fr}.kpis{grid-template-columns:1fr}.mband{grid-template-columns:1fr 1fr}
  .rail{position:fixed;left:0;top:0;bottom:0;z-index:60;width:min(78vw,300px);height:100dvh;
    overflow-y:auto;transform:translateX(-100%);transition:transform .2s ease}
  body.nav-open .rail{transform:none;box-shadow:0 0 46px rgba(0,0,0,.55)}
  body.nav-open .nav-scrim{display:block}
  .burger{display:grid}
  body.assistant-mode .burger{display:none}
  .top{padding:12px 16px}
  .top .stamp{display:none}
  .search kbd{display:none}
}

/* ---- live-data additions (port) ---- */
/* neutral = genuinely unscored (no data); "stalled" deals now color by score
   via the concern/warn/hot tiers, so gray no longer reads as "calm/stalled". */
.score.neutral .ring{background:conic-gradient(var(--muted) var(--p,0%),var(--bd) 0)}
.chip .sw.stall,.chip .sw.neutral{background:var(--muted)}
.sig.stall{color:var(--muted)}.sig.stall .dot{background:var(--muted)}
.ws-empty{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:40px;text-align:center;color:var(--muted)}
.ws-empty b{display:block;color:var(--ink);font-size:19px;font-weight:650;letter-spacing:-.02em;margin-bottom:8px}
.loading{padding:50px;text-align:center;color:var(--faint);font-family:var(--ui);font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.call .ai-items{margin:13px 0 0;padding-top:13px;border-top:1px solid var(--bd)}
.call .ai-items .h{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:8px}


/* =====================================================================
   PHASE 4 — enrichment / ICP bands / Today queue / Company intel
   (ported into the Onyx language)
   ===================================================================== */
/* --- shared pills / provenance --- */
.epill{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ui);font-weight:600;
  font-size:12.5px;padding:2px 8px;border-radius:4px;min-width:22px;background:var(--chip-bg);color:var(--chip-ink);line-height:1.5}
.epill.b,.epill.green{color:var(--ok)}
.epill.a,.epill.blue{color:var(--blue)}
.epill.gray{color:var(--muted)}
.epill.none,.epill.red{color:var(--bad)}
.epill.warn{color:#8a6206}
.name-pill{font-size:11.5px;padding:1px 7px;margin-left:7px;vertical-align:1px;flex:none}
.fitpill{font-family:var(--ui);font-weight:600;font-size:13px;background:var(--chip-bg);color:var(--chip-ink);padding:3px 8px;border-radius:4px;min-width:30px;display:inline-block;text-align:center}
.fitpill.hi{color:var(--ok)}.fitpill.mid{color:#8a6206}.fitpill.lo{color:var(--bad)}
.faint-cell{color:var(--faint)}
.actdate{font-size:14px;font-weight:500;line-height:1.25;display:inline-block;white-space:nowrap}
.actdate small{display:block;font-size:12.5px;font-weight:400;color:var(--faint)}
.actdate.hi,.actdate.mid{color:var(--ink)}.actdate.lo{color:var(--muted)}
.actdate.next{color:var(--ok)}
.wait{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:550;white-space:nowrap}
.wait::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.wait.us{color:var(--blue)}
.wait.them{color:var(--tan)}
.wait.unk{color:var(--faint)}
.dom-link{color:var(--blue);font-family:var(--ui);font-size:13px}
.dom-link:hover{text-decoration:underline}
.src-badge{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--bd-2);
  color:var(--blue);font-size:10.5px;font-weight:700;vertical-align:1px;margin-left:3px}
.src-badge:hover{border-color:var(--blue)}
.est-badge{font-family:var(--ui);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  color:var(--warn);background:var(--warn-soft);padding:1px 5px;border-radius:var(--r-sm);margin-left:4px}
.rev-est{color:var(--warn)}
/* revenue verification chip — Apollo value cross-checked vs web research */
.vchip{display:inline-grid;place-items:center;min-width:14px;height:14px;padding:0 3px;border-radius:4px;
  font-size:10.5px;font-weight:700;vertical-align:1px;margin-left:4px;cursor:default}
.vchip.ok{color:var(--ok);background:var(--ok-soft)}
.vchip.bad{color:var(--bad);background:var(--bad-soft)}
.vchip.dim{color:var(--faint);background:transparent;font-weight:600}

/* --- Today strip (Action Queue) --- */
.today{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);margin-bottom:16px;overflow:hidden}
.today-h{display:flex;align-items:center;gap:11px;padding:13px 18px;border-bottom:1px solid var(--bd)}
.today-toggle{width:22px;height:22px;border:1px solid var(--bd);background:var(--card-2);border-radius:var(--r-sm);
  color:var(--muted);font-size:11.5px;display:grid;place-items:center}
.today-toggle:hover{color:var(--ink)}
.today-title{font-size:17px;font-weight:650;letter-spacing:-.02em;color:var(--ink);line-height:1}
.today-sub,.today-sum{font-size:13px;color:var(--faint);font-weight:500}
.today-sum{margin-left:2px}.today-sum b{color:var(--soft);font-weight:600}
.today.collapsed .today-h{border-bottom:0}
.today-row{display:flex;gap:11px;padding:14px 16px;overflow-x:auto;scroll-snap-type:x proximity}
.tcard{flex:0 0 252px;scroll-snap-align:start;background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);
  padding:13px 14px;display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:border-color .15s,transform .15s}
.tcard:hover{border-color:var(--bd-2);transform:translateY(-2px)}
.tcard-top{display:flex;align-items:center;gap:8px}
.tcard-rank{font-family:var(--ui);font-size:12px;color:var(--faint);font-weight:600;flex:none}
.tcard-name{font-weight:600;font-size:14px;color:var(--ink);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcard-mid{display:flex;align-items:center;gap:8px;font-family:var(--ui);font-size:13px;color:var(--soft)}
.tcard-cat{font-family:var(--ui);font-size:11.5px;font-weight:600;text-transform:capitalize;padding:1px 7px;border-radius:var(--r);background:var(--bg-2);color:var(--muted)}
.tcard-own{margin-left:auto;font-family:var(--ui);font-size:12.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:88px}
.tcard-move{font-size:13px;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* --- Company intel card --- */
.intel-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:var(--pad);margin-bottom:14px}
.intel-card h3{margin:0 0 14px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:9px}
.intel-card h3 .ttl{font-weight:650;font-size:16.5px;letter-spacing:-.02em;color:var(--ink)}
.ic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden}
.ic-cell{background:var(--card-2);padding:12px 14px}
.ic-k{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:600}
.ic-v{font-weight:600;font-size:14px;color:var(--ink);margin-top:4px;display:flex;align-items:center}
.ic-v.est{color:var(--warn)}
.ic-sigs{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}
.ic-reasons{margin:13px 0 0;padding-left:18px;font-size:14px;color:var(--soft);line-height:1.6}
.ic-mismatch{margin-top:13px;padding:11px 13px;border-radius:var(--r);font-size:14px;font-weight:500;line-height:1.45}
.ic-mismatch.up{background:var(--ok-soft);color:var(--ok);border:1px solid color-mix(in srgb, var(--ok) 20%, transparent)}
.ic-mismatch.warn{background:var(--bad-soft);color:var(--bad);border:1px solid color-mix(in srgb, var(--bad) 20%, transparent)}
.ic-foot{margin-top:13px;font-size:12.5px;color:var(--faint);font-weight:500}
.ic-foot code{font-family:var(--ui);background:var(--bg-2);padding:1px 6px;border-radius:var(--r-sm);color:var(--muted)}
.ic-stale{font-family:var(--ui);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  color:var(--bad);background:var(--bad-soft);padding:1px 5px;border-radius:var(--r-sm);margin-left:2px;cursor:default}
.vchip.bad{white-space:nowrap}

/* ---------- Phase 4b: call-intel chips, brief, band split, calibration ---------- */
.ci-chips { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0 2px; }
.brief .read { margin: 6px 0 0; }
.bs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; padding: 12px 14px; }
.bs-cell { border: 1px solid var(--bd-2); border-radius:var(--r-sm); padding: 10px 12px; }
.bs-k { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; }
.bs-k small { color: var(--faint); font-weight: 400; text-transform: none; letter-spacing: 0; margin-left: 4px; }
.bs-v { font-size: 17px; font-weight: 700; margin-top: 4px; }
.bs-v small { display: block; font-size: 11px; color: var(--muted); font-weight: 400; margin-top: 2px; }
.bs-cell.cov { border-style: dashed; }
.bs-cell.cov.ok .bs-v { color: var(--ok); }
.bs-cell.cov.short .bs-v { color: var(--bad); }
.calib-lifts { padding: 10px 14px 4px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.calib-lifts small { color: var(--muted); }
.calib-callout { margin: 10px 14px 12px; padding: 10px 12px; border-radius:var(--r-sm); font-size: 12.5px; background: var(--warn-blk); color: var(--warn); border: 1px solid var(--bd-2); }
.calib-callout.ok { background: var(--ok-blk); color: var(--ok); }
.epill.amber{color:#8a6206}

/* =====================================================================
   TODAY COCKPIT — two-lane decision view + /assistant queue-only mode
   (port of mockups/today variant B, scoped under .tdy so nothing leaks
   into Pipeline/Forecast). Momentum chips: salmon waiting-on-us · sand
   needs-zaki · violet promised · sage advancing · slate waiting-on-them.
   ===================================================================== */
.tdy{--violet:var(--tan);--violet-bg:var(--tan-soft)}
.tdy .hidden{display:none}
.tdy .lanes{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.tdy .lane-h{font-weight:650;font-size:16.5px;letter-spacing:-.02em;margin:0 0 3px;color:var(--ink)}
.tdy .lane-sub{font-size:12.5px;color:var(--muted);margin:0 0 13px}
.tdy .lane{display:flex;flex-direction:column;gap:10px}
.tdy .q-head{margin-bottom:6px}
/* June math card */
.tdy .june{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:14px 20px;
  display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-bottom:12px}
.tdy .june .jt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600}
.tdy .june .jkv{display:flex;flex-direction:column;gap:1px}
.tdy .june .jkv small{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.tdy .june .jkv b{font-weight:620;font-size:18px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.tdy .june .jkv b.gap{color:var(--bad)}
.tdy .june .jkv b.booked{color:var(--ok)}
.tdy .june .jkv b.commit{color:var(--warn)}
.tdy .june .bar{flex:1;min-width:160px;height:7px;border-radius:var(--r-sm);background:var(--card-3);overflow:hidden}
.tdy .june .bar i{display:block;height:100%;background:var(--ok-blk);min-width:2px}
/* deal card (shared renderer) */
.tdy .deal{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:13px 16px;
  transition:border-color .15s,background .15s;cursor:pointer}
.tdy .deal:hover{border-color:var(--bd-2);background:var(--card-2)}
.tdy .deal.esc{border-left:3px solid var(--warn-blk)}
.tdy .deal.sc{border-left:3px solid var(--bad-blk)}
.tdy .deal-top{display:flex;align-items:flex-start;gap:10px}
.tdy .star{background:none;border:0;font-size:16px;line-height:1.2;color:var(--faint);padding:0 2px;flex:none;transition:color .15s,transform .15s}
.tdy .star:hover{color:var(--warn)}
.tdy .star.on{color:var(--warn-blk);transform:scale(1.12)}
.tdy .deal-name{flex:1;min-width:0}
.tdy .deal-name a{font-weight:600;font-size:14px;color:var(--ink)}
.tdy .deal-name a:hover{text-decoration:underline}
.tdy .deal-sub{font-size:12.5px;color:var(--muted);margin-top:1px}
.tdy .amt{font-size:15px;font-weight:500;color:var(--ink);flex:none}
.tdy .amt.zero{color:var(--faint)}
/* momentum chips (mchip ≠ pipeline .chip) */
.tdy .mchip{flex:none;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  padding:2.5px 9px;border-radius:var(--r);border:1px solid transparent;white-space:nowrap}
.tdy .m-red{color:var(--bad);background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 28%, transparent)}
.tdy .m-amber{color:var(--warn);background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 28%, transparent)}
.tdy .m-violet{color:var(--violet);background:var(--violet-bg);border-color:rgba(210,177,131,.28)}
.tdy .m-green{color:var(--ok);background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 28%, transparent)}
.tdy .m-neutral{color:var(--muted);background:var(--neutral-soft);border-color:rgba(144,142,137,.28)}
.tdy .esc-row{margin-top:8px;font-size:13px;color:var(--warn);background:var(--warn-soft);
  border:1px solid color-mix(in srgb, var(--warn) 18%, transparent);border-radius:var(--r-sm);padding:5px 10px}
.tdy .sc-row{margin-top:8px;font-size:13px;color:var(--bad);background:var(--bad-soft);
  border:1px solid color-mix(in srgb, var(--bad) 20%, transparent);border-radius:var(--r-sm);padding:6px 10px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tdy .sc-row .sc-actions{margin-left:auto;display:flex;gap:6px}
.tdy .deal-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;font-size:12.5px;color:var(--muted)}
.tdy .due-now{color:var(--bad);font-weight:600}
.tdy .evt{margin-top:7px;font-size:13px;color:var(--soft)}
.tdy .evt .evt-tag{font-family:var(--ui);font-size:11.5px;color:var(--faint);margin-right:6px;
  border:1px solid var(--bd);border-radius:var(--r-sm);padding:1px 6px;background:var(--bg-2)}
.tdy .promise{margin:8px 0 0;padding:7px 12px;border-left:2px solid var(--violet);background:var(--violet-bg);
  border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:13.5px;color:var(--soft)}
.tdy .promise .src{font-family:var(--ui);font-style:normal;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--violet);margin-left:9px}
.tdy .cdate{margin-top:8px;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.tdy .cdate s{color:var(--faint)}
.tdy .cdate b{color:var(--warn);font-weight:500}
.tdy .stale-tag{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--bad);
  border:1px solid color-mix(in srgb, var(--bad) 30%, transparent);border-radius:4px;padding:0 5px}
/* inline action errors — {ok:false} always surfaces here, salmon tint */
.tdy .act-err{margin-top:8px;font-size:13px;color:var(--bad);background:var(--bad-soft);
  border:1px solid color-mix(in srgb, var(--bad) 20%, transparent);border-radius:var(--r-sm);padding:6px 10px}
/* detail drawer */
.tdy .row .drawer{margin:6px 0 4px 16px}
.tdy .detail{background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r);padding:15px 18px;
  display:flex;flex-direction:column;gap:12px}
.tdy .detail .summary{margin:0;font-size:14px;color:var(--soft);line-height:1.6}
.tdy .detail .d-h{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:0 0 5px}
.tdy .fix-date{background:var(--card);border:1px solid var(--bd);border-radius:var(--r-sm);padding:10px 12px;
  display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:13px}
.tdy .fix-date .arrow{color:var(--faint)}
.tdy .fix-date .hsd{color:var(--faint);text-decoration:line-through}
.tdy .fix-date .sgd{color:var(--warn);font-weight:600}
.tdy .ghost-btn{background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:4px 11px;
  font-size:12.5px;font-weight:600;color:var(--soft);transition:background .15s,border-color .15s}
.tdy .ghost-btn:hover{background:var(--card-3);border-color:var(--bd-2)}
.tdy .ghost-btn.ack{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 35%, transparent)}
.tdy .ghost-btn:disabled{opacity:.5;cursor:default}
/* follow-up draft (tdraft ≠ workspace .draft) */
.tdy .tdraft{border:1px solid var(--bd);border-radius:var(--r-sm);overflow:hidden;background:var(--card)}
.tdy .draft-toggle{display:flex;width:100%;text-align:left;align-items:center;gap:8px;background:none;border:0;
  padding:9px 13px;font-size:13px;font-weight:600;color:var(--soft)}
.tdy .draft-toggle:hover{background:var(--card-2)}
.tdy .draft-toggle .caret{margin-left:auto;color:var(--faint);transition:transform .15s}
.tdy .tdraft.open .caret{transform:rotate(180deg)}
.tdy .draft-body{border-top:1px solid var(--bd);padding:12px 14px;display:flex;flex-direction:column;gap:9px}
.tdy .draft-subject{font-size:12.5px;color:var(--warn)}
.tdy .draft-text{margin:0;font-family:var(--ui);font-size:14px;color:var(--soft);white-space:pre-wrap;line-height:1.6}
.tdy .copy-btn{align-self:flex-start;background:var(--blue);color:#fff;border:0;border-radius:var(--r-sm);
  padding:6px 14px;font-size:13px;font-weight:700;transition:opacity .15s}
.tdy .copy-btn:hover{opacity:.85}
.tdy .no-draft{font-size:13px;color:var(--faint);font-style:italic}
.tdy .hs-link{font-size:12.5px;color:var(--blue);font-weight:600}
.tdy .hs-link:hover{text-decoration:underline}
/* follow-up queue items */
.tdy .qitem{display:flex;flex-direction:column;gap:6px;transition:opacity .2s}
.tdy .qitem .qdetail{margin-left:16px}
.tdy .qitem.is-done{opacity:.38}
.tdy .qitem.is-done .deal-name a{text-decoration:line-through}
.tdy .q-actions{display:flex;gap:8px;margin-top:10px}
/* Approve drawer (execution layer 2026-08-09) */
.tdy .aq-lane{display:flex;flex-direction:column;gap:18px}
.tdy .aq-why{margin-bottom:2px}
.tdy .aq-to{font-size:12.5px;color:var(--soft);align-self:center;margin-right:auto}
.tdy .q-actions .st{align-self:center;font-size:12.5px}
@media(max-width:980px){.tdy .lanes{grid-template-columns:1fr}}
/* /assistant — queue-only, full width, all other tabs/chrome hidden */
body.assistant-mode .rail,body.assistant-mode .top,body.assistant-mode #view-today .page-h{display:none}
body.assistant-mode .app{grid-template-columns:1fr}
body.assistant-mode .main{max-width:880px;margin:0 auto}

/* ---- Call synthesis block (deal Workspace › Calls) ---- */
.cs-block { margin-bottom: 16px; display: flex; flex-direction: column; gap: 10px; }
.cs-fresh { font-size: 11px; color: var(--faint); letter-spacing: .02em; }
.cs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 720px) { .cs-grid { grid-template-columns: 1fr; } }
.cs-card { background: var(--card); border: 1px solid var(--bd); border-radius:var(--r); padding: 10px 12px; }
.cs-h { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin-bottom: 8px; }
.cs-h .n { color: var(--ink); margin-left: 4px; }
.cs-row { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-top: 1px solid var(--bd); }
.cs-row:first-of-type { border-top: none; }
.cs-row.overdue .cs-txt { color: var(--bad); }
.cs-txt { color: var(--ink); font-size: 13px; line-height: 1.35; }
.cs-src { color: var(--faint); font-size: 11px; white-space: nowrap; flex-shrink: 0; }
.cs-od { color: var(--bad); }
.cs-tag { color: var(--warn); font-size: 11px; white-space: nowrap; }
.cs-done { color: var(--ok); font-size: 11px; white-space: nowrap; }
.cs-unv { color: var(--faint); cursor: help; font-weight: 700; }
.cs-pitch { color: var(--soft); font-size: 13px; line-height: 1.45; }
.cs-empty { color: var(--faint); font-size: 12px; font-style: italic; }
.cs-more { color: var(--muted); font-size: 12px; margin-top: 6px; }
details.cs-card summary { cursor: pointer; list-style: revert; }
details.cs-card summary::-webkit-details-marker { color: var(--muted); }

/* ---- Calls tab: ws5 call-card language (ported from rox-mockup 796-923) ---- */
.ws5-asof{margin-left:auto;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.ws5-sh{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:6px}
.ws5-cgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin-top:12px}
.ws5-cgrid p{font-size:12.5px;color:var(--soft);line-height:1.5}
@media (max-width:720px){.ws5-cgrid{grid-template-columns:1fr}}
.ws5-chip{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;border:1px solid var(--bd-2);border-radius:4px;padding:2px 9px;color:var(--muted);white-space:nowrap}
.ws5-chip.warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, transparent)}
.ws5-chip.bad{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, transparent)}
.ws5-chip.tan{color:var(--tan);border-color:rgba(210,177,131,.4)}
.ws5-chip.blue{color:#7d9cf0;border-color:rgba(125,156,240,.4)}
.ws5-chips{display:flex;flex-wrap:wrap;gap:6px}
.ws5-para{font-style:normal;color:var(--faint);font-weight:700;cursor:help}
.ws5-gly{flex:none;width:16px;text-align:center;font-size:11px}
.ws5-gly.meet{color:var(--cad-meet)}
.ws5-tone{flex:none;font-size:11px;font-weight:600}
.ws5-tone.ok{color:var(--ok)}.ws5-tone.warn{color:var(--warn)}.ws5-tone.mut{color:var(--muted)}
.ws5-xcard{background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);padding:13px 15px;font-size:12.5px;color:var(--soft);line-height:1.5}
.ws5-xcard+.ws5-xcard{margin-top:10px}
.ws5-call-h{display:flex;align-items:baseline;gap:9px}
.ws5-call-h b{font-size:13px;color:var(--ink)}
.ws5-call-h .ws5-tone{margin-left:auto}
.ws5-call-dt{font-size:11px;color:var(--faint)}
.ws5-call-att{font-size:11.5px;color:var(--muted);margin-top:2px}
.ws5-pr{font-size:12.5px;padding:2px 0}
.ws5-pr b{font-weight:650;color:var(--ink)}
.ws5-src{display:block;font-size:10.5px;color:var(--faint);margin-top:1px}
.ws5-ai{margin-top:10px;border-top:1px solid var(--bd);padding-top:8px}
.ws5-ai summary{cursor:pointer;font-size:11.5px;font-weight:600;color:var(--muted);list-style:none}
.ws5-ai summary::-webkit-details-marker{display:none}
.ws5-ai summary::before{content:"\25B6 ";font-size:9px}
.ws5-ai[open] summary::before{content:"\25BC "}
.ws5-ai-g{margin-top:6px}
.ws5-ai-g b{font-size:10px;color:var(--tan);font-weight:650;letter-spacing:.06em;text-transform:uppercase}
.ws5-ai-i{font-size:12.5px;color:var(--soft);padding:2px 0 2px 12px}
.ws5-call-f{display:flex;align-items:center;gap:14px;margin-top:10px;padding-top:9px;border-top:1px solid var(--bd)}
.ws5-rec{font-size:12px;font-weight:600;color:var(--muted)}
.ws5-rec:hover{color:var(--ink)}
.ws5-next{margin-left:auto;font-size:12px;font-weight:600;color:var(--blue)}
.ws5-pitch{font-size:13px;color:var(--ink);font-weight:550;background:var(--card-2);border:1px solid var(--bd);border-left:2px solid var(--tan);border-radius:var(--r);padding:11px 14px;margin:12px 0}

/* ---- Owed-by-us badge in the pipeline table waiting column (R5) ---- */
.owed-badge { display: inline-block; margin-top: 3px; font-size: 10.5px; padding: 1px 6px;
  border-radius:var(--r-sm); background: var(--neutral-soft); color: var(--soft);
  border: 1px solid var(--bd); white-space: nowrap; }
.owed-badge.od { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 35%, transparent); background: color-mix(in srgb, var(--bad) 8%, transparent); }

/* ---- Contacts tab ws6-pgrid card grid (S4d reskin) ---- */
.ws6-p-head{display:flex;align-items:center;gap:16px;font-size:12.5px;color:var(--muted);margin-bottom:12px;flex-wrap:wrap}
.ws6-p-head b{color:var(--ink);font-weight:600}
.ws6-p-head .st{margin-left:auto;font-size:12px}
.ws6-pgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ws6-pcard{background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);padding:13px 15px;transition:border-color .12s}
.ws6-pcard:hover{border-color:var(--bd-2)}
.ws6-pcard.cool{opacity:.72}
.ws6-pcard.dim{opacity:.55}
.ws6-p-top{display:flex;align-items:center;gap:11px}
.ws6-pav{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--pill-ink);flex:none}
.ws6-p-nm{min-width:0}
.ws6-p-nm b{display:block;font-size:13.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws6-p-nm small{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.ws6-p-mail{font-size:11.5px;color:var(--faint);margin-top:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws6-p-meter{display:flex;align-items:center;gap:9px;margin-top:9px}
.ws6-p-meter .tr{flex:1;height:4px;border-radius:4px;background:var(--card-3);overflow:hidden}
.ws6-p-meter .tr i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,color-mix(in srgb, var(--ok) 60%, var(--bg-2)),var(--ok))}
.ws6-pcard.cool .ws6-p-meter .tr i{background:var(--warn)}
.ws6-p-meter small{font-size:10.5px;color:var(--faint);flex:none;font-variant-numeric:tabular-nums}
.ws6-p-stats{display:flex;margin-top:11px;border-top:1px solid var(--bd);padding-top:9px}
.ws6-p-stats span{flex:1;font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.ws6-p-stats b{display:block;font-size:13px;font-weight:620;color:var(--soft);letter-spacing:0;text-transform:none;margin-bottom:2px;font-variant-numeric:tabular-nums}
@media(max-width:640px){.ws6-pgrid{grid-template-columns:1fr}}

/* ---- Contacts tab card (timeline .tlc language) ---- */
.tlcontact { border-color: color-mix(in srgb, var(--blue) 22%, transparent); }
.tl-i.contact > .tl-knob { background: var(--blue); }
.tlct-hd { padding: 14px 16px; display: flex; align-items: center; gap: 12px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--blue) 9%, transparent), transparent); }
.tlct-av { width: 38px; height: 38px; border-radius:var(--r); display: grid; place-items: center;
  font-size: 13px; font-weight: 700; color: var(--pill-ink); flex: none; }
.tlct-t { font-weight: 600; font-size: 15px; color: var(--ink); min-width: 0; }
.tlct-t small { display: block; font-family: var(--ui); font-size: 10.5px; color: var(--muted); font-weight: 400; margin-top: 2px; }
.tlct-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 13px 16px 15px; border-top: 1px solid var(--bd); }
.tlct-stats > div { text-align: center; }
.tlct-stats b { display: block; font-size: 18px; color: var(--ink); font-weight: 600; line-height: 1.1; }
.tlct-stats span { font-family: var(--ui); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; color: var(--faint); }


/* ===== Closing Examples ===== */
.ce-honest{display:inline-block;font-size:13px;color:var(--warn);background:color-mix(in srgb, var(--warn) 8%, transparent);
  border:1px solid color-mix(in srgb, var(--warn) 25%, transparent);padding:6px 12px;border-radius:4px;margin:6px 0 20px}
.ce-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.ce-chip{font-size:13px;padding:6px 13px;border-radius:4px;border:1px solid var(--bd);
  background:var(--card);color:var(--soft);cursor:pointer;font-family:var(--ui)}
.ce-chip.on{background:#e7f0f2;color:#0b5b67;border-color:#b4d2d7;font-weight:600}
.ce-cn{opacity:.6;font-size:12.5px}
.ce-grid{column-count:2;column-gap:14px}
@media(max-width:900px){.ce-grid{column-count:1}}
.ce-grid .ce-card{break-inside:avoid}
.ce-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:15px 17px;margin-bottom:12px}
.ce-top{display:flex;align-items:center;justify-content:space-between;cursor:pointer;gap:10px}
.ce-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ce-badge{font-size:11.5px;letter-spacing:.4px;text-transform:uppercase;font-weight:600;
  padding:3px 8px;border-radius:var(--r-sm);color:var(--ok-blk);background:var(--ok-soft);border:1px solid color-mix(in srgb, var(--ok) 18%, transparent)}
.ce-badge.obj{color:var(--blue);background:var(--blue-soft);border-color:color-mix(in srgb, var(--blue) 20%, transparent)}
/* --violet is a .tdy-scoped token — invalid here; tan matches the tint */
.ce-badge.con{color:var(--tan);background:rgba(210,177,131,.08);border-color:rgba(210,177,131,.2)}
.ce-badge.rec{color:var(--warn);background:color-mix(in srgb, var(--warn) 8%, transparent);border-color:color-mix(in srgb, var(--warn) 20%, transparent)}
.ce-q{color:var(--warn);font-size:12.5px;letter-spacing:1px}
.ce-exp{color:var(--faint);font-size:12.5px}
.ce-why{color:var(--soft);font-size:14px;font-style:italic;margin-top:7px}
.ce-body{white-space:pre-wrap;font-size:13px;color:var(--soft);font-family:var(--ui);line-height:1.6;
  max-height:0;overflow:hidden;transition:max-height .25s;margin-top:0}
.ce-card.open .ce-body{max-height:1600px;margin-top:12px}
.ce-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.ce-prov{color:var(--faint);font-size:12.5px;font-family:var(--ui)}
.ce-copy{font-size:13px;color:var(--ok-blk);background:var(--ok-soft);border:1px solid color-mix(in srgb, var(--ok) 20%, transparent);
  padding:5px 11px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--ui)}
.ce-inline{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:14px 15px;margin-top:14px}
.ce-inh{font-size:12.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:11px}
.ce-insub{text-transform:none;letter-spacing:0;color:var(--faint)}
.ce-inline .ce-card{background:var(--bg);padding:12px 13px}
.ce-browse{display:block;text-align:center;color:var(--ok-blk);font-size:13px;margin-top:4px;cursor:pointer;text-decoration:none}
/* Closing Examples — approval gate */
.ce-gatebar{font-size:13px;color:var(--soft);background:var(--card);border:1px solid var(--bd);
  border-radius:var(--r-sm);padding:9px 13px;margin-bottom:12px;width:100%}
.ce-gatebar b{color:var(--ink)}
.ce-acts{display:inline-flex;gap:8px;align-items:center}
.ce-appr{font-size:13px;padding:5px 12px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--ui);
  color:var(--pill-ink);background:var(--ok);border:1px solid var(--ok)}
.ce-appr.on{color:var(--ok-blk);background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 25%, transparent)}
.ce-appr:disabled{opacity:.5;cursor:default}
.ce-tag{font-size:11.5px;letter-spacing:.4px;text-transform:uppercase;font-weight:600;
  padding:3px 8px;border-radius:var(--r-sm);color:var(--warn);background:color-mix(in srgb, var(--warn) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--warn) 25%, transparent)}
.ce-card.pending{border-style:dashed;border-color:color-mix(in srgb, var(--warn) 35%, transparent)}
/* ---- shared call-intel primitives (used by Follow-ups + workspace call UI) ---- */
.fflink{font-size:12.5px;padding:3px 9px;border-radius:var(--r-sm);border:1px solid var(--bd-2);background:var(--card-2);color:var(--soft);text-decoration:none}
.fflink:hover{background:var(--card-3);color:var(--ink)}
.sigchip{font-size:12.5px;padding:2px 7px;border-radius:var(--r-sm);background:var(--card-2);color:var(--soft)}
.sigchip.obj{background:var(--bad-soft);color:var(--bad-blk)}
.sigchip.comp{background:rgba(125,135,163,.12);color:var(--cad-out)}
.sigchip.price{background:var(--blue-soft);color:var(--blue-blk)}
.sigchip.none{background:transparent;color:var(--faint);font-style:italic}
.sentdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle}
.sentdot.pos{background:var(--ok)} .sentdot.neu{background:var(--warn)} .sentdot.neg{background:var(--bad)}

/* ===================== Follow-ups tab v2 (fu2) ===================== */
/* (v3 2026-08-17: full width; msel toolbar replaces the chip bar) */
/* scorecard strip */
.fu2-score{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:13px 16px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:16px}
.fu2-sc-lab{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-right:6px}
.fu2-sc{display:inline-flex;align-items:baseline;gap:7px;padding:5px 12px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;font-size:12.5px;font-weight:600;color:var(--soft)}
button.fu2-sc:hover{background:var(--card-2);border-color:var(--bd)}
.fu2-sc.on{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}
.fu2-sc .n{font-variant-numeric:tabular-nums;font-weight:700}
.fu2-sc .n .owed{color:var(--warn)}
.fu2-sc .n .owed.zero{color:var(--ok)}
.fu2-sc .d{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
/* toolbar — shared .msel dropdowns + search (ld-toolbar clone) */
.fu2-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.fu2-toolbar #fu2-q{flex:1;min-width:190px;max-width:320px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:8px 12px;font-family:inherit;font-size:14px;color:var(--ink)}
.fu2-toolbar #fu2-q::placeholder{color:var(--faint)}
.fu2-count{margin-left:auto;font-size:12.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.fu2-count b{color:var(--soft);font-weight:600}
.fu2-nomatch{font-size:12.5px;color:var(--faint);font-style:italic;padding:4px 2px}
/* section headers + lanes */
.fu2-sec{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:26px 0 12px;display:flex;align-items:center;gap:9px}
.fu2-sec .n{color:var(--muted);font-weight:600}
.fu2-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:13px;align-items:start}
.fu2-list .fu2-more{grid-column:1/-1}
@media(max-width:520px){.fu2-list{grid-template-columns:1fr}}
/* v4 owed lane: one full-width horizontal row per call. Header LINE keeps
   the title first-class (chips ellipsize, never the other way around);
   body is a 3-column grid: commitments | outbound tracking | actions. */
.fu2-list.fu2-rows{grid-template-columns:1fr}
.fu2-rowcard{display:flex;flex-direction:column;gap:11px}
.fu2-rc-hd{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.fu2-rc-hd .st{flex:0 0 auto}
.fu2-rc-title{font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:140px}
.fu2-rc-meta{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap;flex:0 1 auto;min-width:0;overflow:hidden}
.fu2-rc-sp{flex:1 1 0}
.fu2-rc-hd .fu2-sent,.fu2-rc-hd .fflink{flex:0 0 auto;white-space:nowrap}
.fu2-rc-hd .fu2-deal{max-width:340px}
.fu2-rc-b{display:grid;grid-template-columns:minmax(240px,1.25fr) minmax(210px,1fr) minmax(230px,.9fr);gap:20px;align-items:start}
.fu2-rc-mid{display:flex;flex-direction:column;gap:6px;min-width:0}
/* long free text never blows the row open: clamp the AI suggestion and
   promise lines to two lines inside the row card */
.fu2-rowcard .fu2-we,.fu2-rowcard .fu2-they,.fu2-rowcard .fu2-next{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fu2-rc-track{min-width:0;border-left:1px solid var(--bd);padding-left:16px}
.fu2-rc-acts{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:0}
.fu2-rc-sigs{display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:100%;min-width:0}
.fu2-rc-sigs .sigchip{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fu2-rc-acts .fu2-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.fu2-attn{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.fu2-track{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.fu2-track.none b{color:var(--soft);font-weight:650}
.fu2-track.none .bad{color:var(--bad);font-weight:700}
.fu2-track-it{display:flex;gap:7px;align-items:baseline;min-width:0}
.fu2-track-it .d{color:var(--faint);white-space:nowrap}
.fu2-track-it .w{font-weight:650;color:var(--soft);white-space:nowrap}
.fu2-track-it q{quotes:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fu2-track-more{color:var(--faint);font-size:11px}
.fu2-client{display:inline-flex;align-items:center;padding:1px 8px;border-radius:99px;background:var(--chip-bg);color:var(--chip-ink);font-size:11px;font-weight:600}
.fu2-client.exp{color:var(--blue)}
@media(max-width:1100px){
  .fu2-rc-b{grid-template-columns:1fr 1fr}
  .fu2-rc-acts{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}
  .fu2-rc-sigs{flex-direction:row;align-items:center}
}
@media(max-width:700px){
  .fu2-rc-b{grid-template-columns:1fr}
  .fu2-rc-track{border-left:0;padding-left:0}
  .fu2-rc-acts{flex-direction:column;align-items:flex-start}
}
/* card */
.fu2-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow);padding:15px 17px;cursor:pointer;transition:border-color .15s,background .15s}
.fu2-card:hover{border-color:var(--bd-2);background:var(--card-2)}
.fu2-card:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.fu2-hd{display:flex;align-items:flex-start;gap:12px}
.fu2-t{flex:1;min-width:0}
.fu2-t b{font-size:14.5px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fu2-t small{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:3px}
.fu2-owner{font-weight:650;color:var(--soft)}
.fu2-talk{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:99px;background:var(--chip-bg);color:var(--chip-ink);font-size:11px;font-weight:600}
.fu2-talk.led::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--tan)}
.fu2-right{display:flex;align-items:center;gap:12px;flex:none}
.fu2-deal{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;background:var(--chip-bg);color:var(--chip-ink);font-size:11.5px;font-weight:600;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fu2-deal.none{color:var(--muted);font-style:italic}
.fu2-body{margin:11px 0 0;display:flex;flex-direction:column;gap:6px}
.fu2-lab{display:inline-block;min-width:92px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-right:6px}
.fu2-we,.fu2-they,.fu2-next{font-size:13.5px;color:var(--soft)}
.fu2-we q,.fu2-they q,.fu2-next q{quotes:"“" "”";color:var(--ink)}
.fu2-wait{margin-left:8px;font-size:11.5px;font-weight:650;color:var(--warn);white-space:nowrap}
.fu2-wait.bad{color:var(--bad)}
.fu2-chase{margin-left:8px;padding:1px 8px;border-radius:99px;background:var(--tan-soft);color:var(--tan);font-size:11px;font-weight:650}
.fu2-morep{margin-left:8px;font-size:11.5px;color:var(--muted)}
.fu2-sug{color:var(--muted);font-style:italic}
.fu2-ft{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--bd)}
.fu2-sent{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:550;color:var(--soft)}
.fu2-acts{margin-left:auto;display:flex;gap:8px}
.fu2-btn{padding:5px 13px;border-radius:var(--r-sm);border:1px solid var(--bd-2);background:var(--card-2);font-size:12.5px;font-weight:600;color:var(--soft)}
.fu2-btn:hover{background:var(--card-3)}
.fu2-btn.pri{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 40%,var(--bd-2))}
.fu2-btn:disabled{opacity:.55;cursor:default}
.fu2-drafted{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ok)}
/* done card evidence strip */
.fu2-ev{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);margin-left:auto}
.fu2-ev .undo{border:none;background:none;font-size:12px;font-weight:600;color:var(--muted);text-decoration:underline;padding:0}
/* done fold */
.fu2-dhead{display:flex;align-items:center;gap:9px;margin:26px 0 12px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);cursor:pointer;user-select:none}
.fu2-dcar{transition:transform .15s;font-size:10px}
.fu2-dhead.open .fu2-dcar{transform:rotate(90deg)}
.fu2-dn{color:var(--muted);font-weight:600}
/* show more */
.fu2-more{align-self:flex-start;border:none;background:none;font-size:12.5px;font-weight:600;color:var(--blue);padding:4px 0}
/* empty / celebrate */
.fu2-empty{padding:34px 20px;text-align:center;color:var(--muted);font-size:13.5px;background:var(--card);border:1px dashed var(--bd-2);border-radius:var(--r)}
.fu2-empty a{color:var(--blue);font-weight:600;cursor:pointer}
.fu2-clear{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--ok-soft);color:var(--ok);border-radius:var(--r);font-size:13.5px;font-weight:600;margin-bottom:6px}
/* undo toast */
.fu2-undo{position:fixed;left:50%;bottom:26px;transform:translate(-50%,80px);display:flex;align-items:center;gap:14px;padding:10px 18px;background:#14171b;color:#e8ecf0;border-radius:99px;font-size:13px;box-shadow:var(--pop);transition:transform .25s;z-index:340}
.fu2-undo.show{transform:translate(-50%,0)}
.fu2-undo button{border:none;background:none;color:#7fd4e0;font-weight:700;font-size:13px;padding:0}
/* link-deal picker */
.fu2-pick{position:absolute;z-index:300;width:min(340px,90vw);background:var(--card);border:1px solid var(--bd-2);border-radius:var(--r);box-shadow:var(--pop);padding:10px}
.fu2-pick input{width:100%;padding:7px 10px;border:1px solid var(--bd-2);border-radius:var(--r-sm);font:inherit;font-size:13px;margin-bottom:8px;background:var(--card-2);color:var(--ink)}
.fu2-pick-opt{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:7px 9px;border:none;background:none;border-radius:var(--r-sm);font-size:13px}
.fu2-pick-opt:hover{background:var(--card-2)}
.fu2-pick-opt small{color:var(--muted)}
.fu2-pick-none{padding:7px 9px;font-size:13px;color:var(--muted)}
/* detail drawer */
.fu2-scrim{position:fixed;inset:0;background:rgba(23,37,53,.32);opacity:0;pointer-events:none;transition:opacity .3s;z-index:290}
.fu2-scrim.on{opacity:1;pointer-events:auto}
.fu2-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,94vw);background:var(--card);border-left:1px solid var(--bd);box-shadow:var(--pop);transform:translateX(103%);transition:transform .38s cubic-bezier(.85,0,.15,1);z-index:295;display:flex;flex-direction:column}
.fu2-drawer.on{transform:none}
.fu2-dr-h{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 14px;border-bottom:1px solid var(--bd)}
.fu2-dr-h h3{margin:0;font-size:16.5px;font-weight:650;font-family:var(--display)}
.fu2-dr-h small{display:block;color:var(--muted);font-size:12.5px;margin-top:4px}
.fu2-dr-x{margin-left:auto;border:none;background:none;font-size:20px;color:var(--muted);padding:2px 6px}
.fu2-dr-b{flex:1;overflow-y:auto;padding:18px 22px 26px}
.fu2-dr-sec{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:18px 0 8px}
.fu2-dr-sec:first-child{margin-top:0}
.fu2-quote{margin:8px 0;padding:9px 13px;border-left:3px solid var(--bd-2);background:var(--card-2);border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:13px;color:var(--soft)}
.fu2-quote q{quotes:"“" "”";color:var(--ink)}
.fu2-quote .src{display:block;margin-top:3px;font-size:11px;color:var(--faint)}
.fu2-dr-draft{background:var(--blue-soft);border:1px solid color-mix(in srgb,var(--blue) 30%,var(--bd));border-radius:var(--r);padding:14px 16px;margin-bottom:16px}
.fu2-dr-draft .sub{font-weight:650;font-size:13.5px;margin-bottom:6px}
.fu2-dr-draft pre{white-space:pre-wrap;font-family:var(--ui);font-size:13px;color:var(--soft);margin:0 0 10px;max-height:300px;overflow-y:auto}
.fu2-dr-ft{display:flex;gap:8px;padding:14px 22px;border-top:1px solid var(--bd)}
/* Instant meeting follow-up (Reve composer, plan 2026-08-17) */
.ws-meetfu{display:block;font-size:12.5px;font-weight:600;margin:6px 0;color:var(--soft);cursor:pointer}
.ws-meetfu.ready{color:var(--ok)}
.ws-meetfu.error{color:var(--warn)}
.fu2-btn.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--bd-2))}
a.fu2-btn{display:inline-flex;align-items:center;text-decoration:none;line-height:1.4}
.fu2-mf-acts{display:flex;gap:8px;flex-wrap:wrap}
.fu2-mf-chips{font-size:12.5px;color:var(--warn);margin-bottom:6px}
.fu2-mf-chips code{background:color-mix(in srgb,var(--warn) 14%,transparent);border-radius:4px;padding:1px 5px;margin-left:4px}
.fu2-mf-warn{font-size:12px;color:var(--muted);margin-bottom:8px}
/* ===== hygiene checkpoint (2026-08-17) ===== */
.fu2-hygflag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:0;border-radius:99px;background:var(--warn-soft);color:var(--warn);font-size:11.5px;font-weight:650;cursor:pointer;flex:none}
.fu2-hygflag:hover{filter:brightness(.96)}
.fu2-hyg{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow);margin:6px 0 10px}
.fu2-hyg-h{display:flex;align-items:center;gap:9px;padding:13px 16px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);cursor:pointer;user-select:none}
.fu2-hyg-h .n{color:var(--muted);font-weight:600}
.fu2-hyg-h .fu2-dcar{color:var(--faint)}
.fu2-hyg-h.open .fu2-dcar{transform:rotate(90deg)}
.fu2-hyg-rows{border-top:1px solid var(--bd)}
.fu2-hyg-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--bd);flex-wrap:wrap}
.fu2-hyg-row:last-child{border-bottom:0}
.fu2-hyg-row:hover{background:var(--card-2)}
.hyg-deal{font-size:13.5px;font-weight:600;color:var(--ink);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hyg-meta{font-size:12px;color:var(--muted)}
.fu2-hyg-row .hyg-meta{white-space:nowrap}
.hyg-chips{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.hyg-chip{font-size:11px;font-weight:650;padding:2px 9px;border-radius:99px;background:var(--warn-soft);color:var(--warn);white-space:nowrap}
.hyg-chip.bad{background:var(--bad-soft);color:var(--bad)}
.hyg-acts{display:flex;gap:8px;flex:none}
/* workspace fix panel */
.hyg-panel{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 28%,var(--bd));border-radius:var(--r);padding:14px 16px}
.hyg-panel .hp-t{font-weight:650;font-size:13.5px;margin-bottom:6px;color:var(--ink)}
.hyg-find{display:flex;align-items:baseline;gap:8px;margin:4px 0}
.hp-note{font-size:12px;color:var(--muted);margin:8px 0 0}
.hyg-src{font-size:11px;color:var(--faint);margin-top:2px}
.hyg-stage{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--soft);margin:6px 0;flex-wrap:wrap}
.hyg-stage .arr{color:var(--faint)}
.hyg-stage b.to{color:var(--blue)}
.hyg-panel-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.hyg-banner{display:flex;align-items:center;gap:10px;padding:9px 13px;background:var(--warn-soft);color:var(--warn);border-radius:var(--r-sm);font-size:12.5px;font-weight:600;margin-top:6px}
.hyg-banner .fu2-btn{margin-left:auto}
.hyg-confirm{margin-top:12px;background:var(--card);border:1px solid color-mix(in srgb,var(--warn) 45%,var(--bd-2));border-radius:var(--r-sm);padding:12px 14px}
.hyg-confirm .t{font-size:13px;font-weight:650;color:var(--warn);margin-bottom:4px}
.hyg-confirm p{margin:0 0 10px;font-size:12.5px;color:var(--soft)}
.hyg-confirm .fu2-btn.go{color:#fff;background:var(--warn);border-color:var(--warn)}
.hyg-form{display:flex;flex-direction:column;gap:7px;margin:6px 0 2px}
.hyg-form label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-weight:600}
.hyg-form input{flex:1;background:var(--card);border:1px solid var(--bd-2);border-radius:var(--r-sm);padding:6px 10px;font:inherit;font-size:13px;color:var(--ink)}
/* dotted-leader line-item rows (td6-it look) + diff tints */
.li-rows{display:flex;flex-direction:column;margin:6px 0 2px}
.li-it{display:flex;align-items:baseline;gap:7px;font-size:12.5px;color:var(--muted);line-height:2}
.li-it .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none;max-width:62%;color:inherit}
.li-it .dots{flex:1;border-bottom:1px dotted var(--bd-2);transform:translateY(-4px)}
.li-it b{color:var(--soft);font-weight:550;flex:none}
.li-it b i{font-style:normal;color:var(--faint);font-size:10.5px}
.li-it.add .nm,.li-it.add b{color:var(--ok)}
.li-it.add .nm::before{content:"+ ";font-weight:700}
.li-it.del .nm{color:var(--bad);text-decoration:line-through}
.li-it.del b{color:var(--bad)}
.li-it.del .nm::before{content:"− ";font-weight:700;text-decoration:none}
/* two-pane workspace body (evidence | fix) */
.fu2-dr-b.hyg-cols{display:grid;grid-template-columns:1fr 1.12fr;gap:0;padding:0}
.hyg-cols .ws-col{padding:18px 22px 22px;min-width:0}
.hyg-cols .ws-col.ev{border-right:1px solid var(--bd);background:var(--card-2)}
.ws-ico{width:36px;height:36px;border-radius:9px;background:var(--warn-soft);color:var(--warn);display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}
.ws-eyebrow{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--warn);font-weight:700;margin-bottom:3px}
@media(max-width:760px){.fu2-dr-b.hyg-cols{grid-template-columns:1fr}.hyg-cols .ws-col.ev{border-right:0;border-bottom:1px solid var(--bd)}}
@media (max-width:720px){
  .fu2-hd{flex-wrap:wrap}
  .fu2-right{width:100%;order:3}
  .fu2-acts{margin-left:0;width:100%}
  .fu2-acts .fu2-btn{flex:1}
  .fu2-score{overflow-x:auto;flex-wrap:nowrap}
}
@media (prefers-reduced-motion:reduce){
  .fu2-scrim,.fu2-drawer,.fu2-undo,.fu2-dcar{transition:none}
}
/* ===================== end fu2 block ===================== */

/* ===================================================================== */
/*  TODAY BRIEF — KPI strip, directive, pipeline buckets, billing        */
/*  (scoped under .tdy; reuses .kpis/.kpi, .lanes/.lane/.june)            */
/* ===================================================================== */
.tdy .brief-kpis{margin-bottom:18px}
.tdy .kpi.flag{border-color:color-mix(in srgb, var(--warn) 40%, transparent)}
.tdy .kpi.flag .big{color:var(--warn-blk)}

.tdy .directive{display:flex;gap:15px;align-items:flex-start;text-decoration:none;
  background:linear-gradient(120deg,var(--card-2),var(--card));border:1px solid var(--bd-2);
  border-radius:var(--r);padding:18px 20px;margin-bottom:22px;
  box-shadow:var(--pop);transition:border-color .2s,transform .2s}
.tdy a.directive:hover{border-color:var(--bd-2);transform:translateY(-1px)}
.tdy .directive .chk{width:28px;height:28px;border-radius:var(--r-sm);border:2px solid var(--ok-blk);
  flex:none;margin-top:2px;display:grid;place-items:center;color:var(--ok-blk);font-weight:700}
.tdy .directive.done .chk{background:var(--ok-blk);color:var(--pill-ink)}
.tdy .directive .dlab{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ok);font-weight:600}
.tdy .directive .dbig{font-weight:650;font-size:19px;letter-spacing:-.02em;color:var(--ink);margin-top:4px;line-height:1.2}
.tdy .directive .dmeta{margin-top:8px;font-size:13px;color:var(--muted);display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.tdy .directive .dmeta b{color:var(--soft);font-weight:600}
.tdy .directive .dmeta .sep{color:var(--faint)}

.tdy .brief-sec{margin-top:30px}
.tdy .brief-sec-h{display:flex;align-items:baseline;gap:10px;margin:0 2px 12px}
.tdy .brief-sec-h .t{font-weight:650;font-size:17px;letter-spacing:-.02em;color:var(--ink)}
.tdy .brief-sec-h .hint{font-size:12.5px;color:var(--faint)}
.tdy .brief-sec-h .ln{flex:1;height:1px;background:var(--bd)}

.tdy .buckets{display:flex;flex-direction:column;gap:8px}
.tdy .bk{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden}
.tdy .bk-h{display:flex;align-items:center;gap:11px;padding:13px 16px;cursor:pointer;transition:background .15s}
.tdy .bk-h:hover{background:var(--card-2)}
.tdy .bdot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--muted)}
.tdy .bdot.m-red{background:var(--bad)}
.tdy .bdot.m-amber{background:var(--warn)}
.tdy .bdot.m-violet{background:var(--violet)}
.tdy .bdot.m-green{background:var(--ok)}
.tdy .bdot.m-neutral{background:var(--muted)}
.tdy .bnm{font-size:14px;font-weight:600;color:var(--ink)}
.tdy .bct{font-family:var(--ui);font-size:12px;color:var(--muted);background:var(--card-2);
  border:1px solid var(--bd);border-radius:var(--r);padding:1px 8px}
.tdy .btot{margin-left:auto;font-size:13px;color:var(--soft)}
.tdy .bcar{width:15px;height:15px;color:var(--faint);transition:transform .2s;flex:none}
.tdy .bk.open .bcar{transform:rotate(90deg)}
.tdy .bk-b{display:none;padding:2px 16px 9px}
.tdy .bk.open .bk-b{display:block}
.tdy .bdeal{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--bd)}
.tdy .bdeal .bdn{font-size:14px;font-weight:600;color:var(--ink);text-decoration:none}
.tdy .bdeal .bdn:hover{text-decoration:underline}
.tdy .bdeal .bdm{font-size:12.5px;color:var(--muted)}
.tdy .bdeal .binspect{margin-left:auto;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd-2);background:var(--card-2);color:var(--muted);font-family:var(--ui);font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:var(--r);cursor:pointer;flex:none}
.tdy .bdeal .binspect:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.tdy .bdeal .binspect svg{width:12px;height:12px}
.tdy .bdeal .blast{font-size:12.5px;color:var(--faint);flex:none;width:66px;text-align:right}
.tdy .bdeal .bdv{font-size:13px;color:var(--soft);flex:none;width:74px;text-align:right}

.tdy .bill{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.tdy .bill-need{display:flex;flex-direction:column;gap:8px}
.tdy .need{display:flex;align-items:center;gap:10px;background:var(--warn-soft);
  border:1px solid color-mix(in srgb, var(--warn) 32%, transparent);border-radius:var(--r);padding:11px 14px}
.tdy .need.ok{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 30%, transparent)}
.tdy .need .ndn{font-weight:600;color:var(--ink);font-size:14px}
.tdy .need .nns{font-size:13px;color:var(--warn-blk)}
.tdy .need.ok .nns{color:var(--ok)}
.tdy .need .nv{margin-left:auto;font-size:14px;color:var(--warn-blk)}
.tdy .sent-card .srow{display:flex;justify-content:space-between;font-size:14px;
  padding:8px 0;border-top:1px solid var(--bd);color:var(--soft)}
.tdy .sent-card .srow.muted{color:var(--faint);justify-content:flex-start}
@media(max-width:980px){.tdy .bill{grid-template-columns:1fr}}

/* Today's schedule rail (owner's calendar; replaces the old follow-up lane) */
.tdy .sched{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden}
.tdy .sch{display:grid;grid-template-columns:74px 1fr auto;gap:12px;align-items:center;
  padding:12px 16px;border-top:1px solid var(--bd)}
.tdy .sch:first-child{border-top:none}
.tdy .sch-t{font-size:13px;color:var(--muted)}
.tdy .sch-n{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:500;color:var(--soft);min-width:0}
.tdy .sch-n .sch-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--muted)}
.tdy .sch-n .sch-dot.ext{background:var(--bad-blk)}
.tdy .sch-tag{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--faint);border:1px solid var(--bd);border-radius:var(--r);padding:1px 7px;flex:none}
.tdy .sch-next{font-family:var(--ui);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ok);flex:none}
.tdy .sch.next{background:var(--ok-soft)}
.tdy .sch.next .sch-t{color:var(--ok)}
.tdy .sch.next .sch-n{color:var(--ink);font-weight:600}
.tdy .sch.past{opacity:.42}
.tdy .sch-join{display:inline-flex;align-items:center;border:1px solid var(--bd-2);background:var(--card-2);
  color:var(--soft);font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:var(--r);text-decoration:none;flex:none}
.tdy .sch-join:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.tdy .sch-empty{padding:16px;color:var(--muted);font-size:14px}

/* ===================================================================== */
/*  MEETING DETAIL — shared bits for the Day Plan's expandable rows       */
/*  (the old standalone schedule cards are gone; rows live in .dp-sched)  */
/* ===================================================================== */
.tdy .sc-tag{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border:1px solid var(--bd);border-radius:var(--r);padding:1px 7px;flex:none}
.tdy .sc-tag.client{color:var(--bad-blk);border-color:color-mix(in srgb, var(--bad) 30%, transparent)}
.tdy .sc-nexttag{font-family:var(--ui);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ok);flex:none}
/* avatars (attendee list) */
.tdy .sc-av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;color:var(--pill-ink);flex:none;border:2px solid var(--card)}
.tdy .sc-av.ext{box-shadow:0 0 0 1.5px var(--bad-blk)}
/* join */
.tdy .sc-join{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--bd-2);background:var(--card-2);color:var(--soft);font-size:13px;font-weight:600;padding:7px 14px;border-radius:var(--r);text-decoration:none;flex:none}
.tdy .sc-join:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.tdy .sc-join.big{background:var(--ok-blk);color:var(--pill-ink);border-color:var(--ok-blk);padding:9px 18px;font-size:14px}
.tdy .sc-join.big:hover{background:color-mix(in srgb, var(--ok), #fff 9%)}
.tdy .sc-join svg{width:14px;height:14px}
.tdy .sc-nolink{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border:1px solid var(--bd);border-radius:var(--r);padding:1px 7px}
/* expanded body */
.tdy .sc-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:22px;margin-top:12px}
.tdy .sc-dh{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:0 0 8px;display:flex;align-items:center;gap:8px}
.tdy .sc-rsvp{margin-left:auto;font-family:var(--ui);font-size:12px;color:var(--muted);letter-spacing:0;text-transform:none}
.tdy .sc-agenda{font-size:14px;color:var(--soft);line-height:1.55;white-space:pre-wrap}
.tdy .sc-empty{color:var(--faint);font-size:13px;font-style:italic}
.tdy .sc-att{display:flex;align-items:center;gap:10px;padding:4px 0}
.tdy .sc-att .sc-av{margin-left:0}
.tdy .sc-nm{font-size:14px;color:var(--soft);font-weight:500}
.tdy .sc-nm b{color:var(--ink);font-weight:600}
.tdy .sc-role{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);border:1px solid var(--bd);border-radius:var(--r);padding:1px 6px}
.tdy .sc-role.client{color:var(--bad-blk);border-color:color-mix(in srgb, var(--bad) 30%, transparent)}
.tdy .sc-st{margin-left:auto;font-size:12.5px;font-weight:500;flex:none}
.tdy .sc-st.accepted{color:var(--ok)}
.tdy .sc-st.needsAction{color:var(--faint)}
.tdy .sc-st.declined{color:var(--bad)}
.tdy .sc-st.tentative{color:var(--warn)}
.tdy .sc-joinwrap{margin-top:16px}
@media(max-width:720px){.tdy .sc-b{padding-left:18px}.tdy .sc-grid{grid-template-columns:1fr}}

/* ===================================================================== */
/*  BILLING LEDGER — closed-won this month + Stripe payment status       */
/* ===================================================================== */
.tdy .cw-list{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden}
.tdy .cw-row{display:grid;grid-template-columns:1fr auto auto auto;gap:14px;align-items:center;padding:12px 16px;border-top:1px solid var(--bd)}
.tdy .cw-row:first-child{border-top:none}
.tdy .cw-nm{font-size:14px;font-weight:600;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdy .cw-amt{font-size:14px;color:var(--soft);text-align:right;white-space:nowrap}
.tdy .cw-mut{color:var(--faint);font-weight:500}
.tdy .cw-pill{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 9px;border-radius:var(--r);border:1px solid transparent;white-space:nowrap;justify-self:start}
.tdy .cw-pill.pay-paid{color:var(--ok);background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 28%, transparent)}
.tdy .cw-pill.pay-partial{color:var(--warn);background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 28%, transparent)}
.tdy .cw-pill.pay-inv{color:var(--blue);background:color-mix(in srgb, var(--blue) 10%, transparent);border-color:color-mix(in srgb, var(--blue) 28%, transparent)}
.tdy .cw-pill.pay-none{color:var(--bad-blk);background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 28%, transparent)}
.tdy .cw-link{font-size:12.5px;font-weight:600;color:var(--blue);text-align:right;white-space:nowrap}
.tdy .cw-link:hover{color:var(--blue-blk);text-decoration:underline}
.tdy .cw-empty{padding:16px;color:var(--muted);font-size:14px}
.tdy .cw-links{display:flex;gap:12px;justify-content:flex-end;white-space:nowrap}
@media(max-width:640px){.tdy .cw-row{grid-template-columns:1fr auto;row-gap:6px}.tdy .cw-amt{grid-column:2}.tdy .cw-links{grid-column:2;justify-self:end}}

/* ===== Day Plan — editable top-of-Today snapshot ===================== */
.tdy .dayplan .dp-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:820px){.tdy .dayplan .dp-cols{grid-template-columns:1fr}}
.tdy .dp-col{background:var(--card);border:1px solid var(--bd);border-radius:var(--r,12px);padding:14px 14px 10px}
.tdy .dp-col-h{display:flex;align-items:baseline;gap:8px;margin:0 2px 10px}
.tdy .dp-col-h .dp-cn{font-weight:650;font-size:15px;letter-spacing:-.02em;color:var(--ink)}
.tdy .dp-col-h .dp-csub{font-size:12.5px;color:var(--faint)}
.tdy .dp-col-h .dp-count{margin-left:auto;font-family:var(--ui);font-size:12.5px;color:var(--muted)}
/* meetings for this block — the page's only calendar. One-line rows; click
   to expand agenda/attendees/join. Past rows collapse to .dp-pastline. */
.tdy .dp-sched{display:flex;flex-direction:column;gap:2px;margin:0 0 10px;padding:0 0 8px;border-bottom:1px dashed var(--bd)}
.tdy .dp-sched.flat{margin:0;border-bottom:0;background:var(--card);border:1px solid var(--bd);border-radius:var(--r,12px);padding:10px 12px}
.tdy .dp-pastline{font-size:12.5px;color:var(--faint);cursor:pointer;padding:2px 5px;border-radius:var(--r-sm)}
.tdy .dp-pastline:hover{color:var(--muted);background:var(--card-2)}
.tdy .dp-more{display:inline-block;margin-top:10px;font-size:13px;color:var(--blue);cursor:pointer;text-decoration:none}
.tdy .dp-more:hover{text-decoration:underline}
/* to-do list */
.tdy .dp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.tdy .dp-empty{color:var(--faint);font-size:13px;padding:6px 2px}
.tdy .dp-item{display:flex;align-items:flex-start;gap:8px;padding:6px 4px;border-radius:var(--r-sm)}
.tdy .dp-item:hover{background:var(--card-2)}
.tdy .dp-check{flex:none;width:18px;height:18px;margin-top:1px;border:1.5px solid var(--bd-2);border-radius:var(--r-sm);
  background:transparent;color:var(--ok);font-size:13px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}
.tdy .dp-check:hover{border-color:var(--ok)}
.tdy .dp-item.done .dp-check{background:color-mix(in srgb, var(--ok) 16%, transparent);border-color:var(--ok)}
.tdy .dp-text{flex:1;font-size:14px;color:var(--ink);line-height:1.35;outline:none;border-radius:4px;padding:1px 3px;min-width:40px}
.tdy .dp-text:focus{background:var(--card-3,var(--card-2));box-shadow:0 0 0 1px var(--bd-2)}
.tdy .dp-item.done .dp-text{color:var(--faint);text-decoration:line-through}
.tdy .dp-carried{flex:none;color:var(--warn);font-size:13px;align-self:center;cursor:default}
.tdy .dp-link{flex:none;color:var(--blue);text-decoration:none;font-size:14px;align-self:center}
.tdy .dp-tools{flex:none;display:flex;gap:2px;align-self:center;opacity:0;transition:opacity .12s}
.tdy .dp-item:hover .dp-tools{opacity:1}
.tdy .dp-tools button{background:transparent;border:0;color:var(--muted);font-size:12.5px;cursor:pointer;padding:2px 5px;border-radius:var(--r-sm);font-family:var(--ui)}
.tdy .dp-tools button:hover{color:var(--ink);background:var(--bd)}
.tdy .dp-rm:hover{color:var(--bad)!important}
.tdy .dp-add{width:100%;margin-top:8px;background:transparent;border:0;border-top:1px solid var(--bd);
  padding:9px 4px 4px;color:var(--ink);font-size:14px;font-family:inherit;outline:none}
.tdy .dp-add::placeholder{color:var(--faint)}
.tdy .dp-mute:hover{color:var(--warn)!important}
/* Backlog rail — work demoted off the plan waits below it, one click away
   (same collapse idiom as the Action list's Done rail) */
.tdy .dp-bkrail{margin-top:10px;border-top:1px solid var(--bd)}
.tdy .dp-bkhead{display:flex;align-items:center;gap:9px;padding:9px 4px 8px;cursor:pointer;user-select:none}
.tdy .dp-bkcar{color:var(--faint);font-size:10px;transition:transform .18s;display:inline-block}
.tdy .dp-bkhead.on .dp-bkcar{transform:rotate(90deg)}
.tdy .dp-bkhead:hover .dp-bklab{color:var(--soft)}
.tdy .dp-bklab{color:var(--faint);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:color .12s}
.tdy .dp-bkn{font-size:10.5px;font-weight:700;color:var(--muted);background:var(--card-2);border-radius:4px;
  padding:1px 7px;font-variant-numeric:tabular-nums}
.tdy .dp-bklist{list-style:none;margin:0;padding:0 0 4px;display:flex;flex-direction:column;gap:2px}
/* the collapsed state is carried by the [hidden] ATTRIBUTE; an author-origin
   display:flex beats the UA's [hidden]{display:none}, so it must be re-stated
   here or the rail can never collapse */
.tdy .dp-bklist[hidden]{display:none}
.tdy .dp-bk{display:flex;padding:6px 4px;border-radius:var(--r-sm);opacity:.72;transition:opacity .12s,background .12s}
.tdy .dp-bk:hover{opacity:1;background:var(--card-2)}
.tdy .dp-bkwhy{font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.tdy .dp-restore{font-size:11px;color:var(--faint);border:1px solid var(--bd);border-radius:var(--r-sm);padding:2px 7px;
  background:var(--card);cursor:pointer;font-family:inherit}
.tdy .dp-restore:hover{color:var(--blue);border-color:var(--bd-2)}

/* ===== Collapsed drawers — Pipeline / Billing / ClickUp ============== */
.tdy .tdrawer .td-h{cursor:pointer;user-select:none}
.tdy .tdrawer .td-h:hover .t{color:var(--soft)}
.tdy .td-car{width:15px;height:15px;color:var(--faint);flex:none;align-self:center;transition:transform .15s}
.tdy .tdrawer.open .td-car{transform:rotate(90deg)}
.tdy .tdrawer .td-b{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.2,.7,.2,1)}
.tdy .tdrawer.open .td-b{grid-template-rows:1fr}
.tdy .tdrawer .td-bi{overflow:hidden;min-height:0}
@media (prefers-reduced-motion: reduce){.tdy .tdrawer .td-b{transition:none}}
.tdy .td-b .cu-head{display:flex;justify-content:flex-end;margin-bottom:8px}
.tdy .dp-add:focus{border-top-color:var(--bd-2)}

/* ===== Booked KPI — MRR / one-time-fee breakdown ==================== */
.tdy .kpi.hero .bd-breakdown{margin-top:12px;border-top:1px solid var(--bd);padding-top:8px;display:flex;flex-direction:column;gap:2px}
.tdy .bd-row{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;cursor:pointer;
  padding:5px 4px;border-radius:var(--r-sm);color:var(--soft);font-family:inherit;font-size:13px;text-align:left}
.tdy .bd-row:hover{background:var(--card-2)}
.tdy .bd-car{color:var(--muted);font-size:10.5px;transition:transform .12s;display:inline-block;width:9px}
.tdy .bd-row.open .bd-car{transform:rotate(90deg)}
.tdy .bd-k{flex:1;color:var(--ink)}
.tdy .bd-v{color:var(--ink);font-size:14px}
.tdy .bd-n{min-width:20px;text-align:center;font-family:var(--ui);font-size:11.5px;color:var(--muted);
  background:var(--bd);border-radius:var(--r);padding:1px 6px}
.tdy .bd-list{display:flex;flex-direction:column;gap:1px;margin:0 0 4px;padding:2px 0 4px 17px}
.tdy .bd-list.hidden{display:none}
.tdy .bd-deal{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:var(--r-sm);
  text-decoration:none;color:var(--soft);font-size:13px}
.tdy .bd-deal:hover{background:var(--card-2);color:var(--ink)}
.tdy .bd-dn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdy .bd-dv{color:var(--muted);font-size:12.5px}
.tdy .bd-deal:hover .bd-dv{color:var(--ink)}
.tdy .bd-none{color:var(--faint);font-size:12.5px;padding:3px 6px}
.tdy .bd-note{font-size:11.5px;color:var(--faint);padding:2px 4px;cursor:default}

/* ===== ClickUp tasks (bottom of Today, read-only) =================== */
.tdy .cu-open{font-size:12.5px;color:var(--blue);text-decoration:none;white-space:nowrap}
.tdy .cu-open:hover{text-decoration:underline}
.tdy .cu-list{display:flex;flex-direction:column;gap:2px}
.tdy .cu-task{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);
  background:var(--card);border:1px solid var(--bd);text-decoration:none;color:var(--ink)}
.tdy .cu-task:hover{background:var(--card-2);border-color:var(--bd-2)}
.tdy .cu-task.done{opacity:.5}
.tdy .cu-task.done .cu-name{text-decoration:line-through;color:var(--muted)}
.tdy .cu-dot{flex:none;width:8px;height:8px;border-radius:50%}
.tdy .cu-name{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdy .cu-st{flex:none;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);
  background:var(--bd);padding:2px 7px;border-radius:var(--r)}
.tdy .cu-who{flex:none;font-size:12.5px;color:var(--soft)}
.tdy .cu-due{flex:none;font-size:12.5px;color:var(--muted);font-family:var(--ui)}
.tdy .cu-due.over{color:var(--bad)}
.tdy .cu-empty{color:var(--faint);font-size:13px;padding:8px 4px}

/* ===================== MISSION CONTROL ===================== */
.mc{--mc-violet:var(--tan);--mc-violet-bg:var(--tan-soft)}

/* pulse strip */
.mc .mc-pulse{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin-bottom:20px}
.mc .mc-kpi{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:13px 15px 11px}
.mc .mc-lbl{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.mc .mc-val{font-size:23px;letter-spacing:-.03em;line-height:1.1;display:block;padding:0;text-align:left}
.mc button.mc-val:hover{color:var(--blue)}
.mc .mc-note{font-size:13px;color:var(--faint);margin-top:4px}
.mc .mc-kpi.alert{border-color:color-mix(in srgb, var(--bad) 35%, transparent)}
.mc .mc-kpi.alert .mc-val{color:var(--bad)}
.mc .mc-kpi.go .mc-val{color:var(--ok)}

/* layout */
.mc .mc-cols{display:grid;grid-template-columns:1fr 272px;gap:20px;align-items:start}
@media (max-width:1080px){.mc .mc-cols{grid-template-columns:1fr}}

/* filters */
.mc .mc-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:13px;align-items:center}
.mc .mc-chip{border:1px solid var(--bd-2);border-radius:999px;padding:4px 13px;font-size:13px;color:var(--soft);background:var(--card);box-shadow:var(--shadow)}
.mc .mc-chip:hover{border-color:var(--bd-2,var(--bd))}
.mc .mc-chip.on{background:#e7f0f2;color:#0b5b67;border-color:#b4d2d7;font-weight:600}
.mc #mc-q{background:var(--card);border:1px solid var(--bd);border-radius:4px;color:var(--ink);
  font-family:inherit;font-size:13px;padding:5px 14px;width:160px}
.mc #mc-q::placeholder{color:var(--faint)}
.mc #mc-q:focus{outline:none;border-color:var(--bd-2,var(--soft))}

/* lanes */
.mc .mc-lane{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);margin-bottom:14px;overflow:hidden}
.mc .mc-lane-h{display:flex;align-items:center;gap:10px;padding:11px 15px;width:100%;text-align:left;background:none;border:none}
.mc .mc-lane-h:hover{background:var(--card-2)}
.mc .mc-dot{width:8px;height:8px;border-radius:50%;flex:none}
.mc .mc-tw{display:flex;flex-direction:column;gap:1px;min-width:0}
.mc .mc-t{font-size:13px;letter-spacing:.09em;text-transform:uppercase;font-weight:600}
.mc .mc-n{font-family:var(--ui);color:var(--muted);font-weight:400}
.mc .mc-why{font-size:13px;color:var(--faint)}
.mc .mc-sum{font-size:13px;color:var(--faint);margin-left:auto}
.mc .mc-caret{color:var(--faint);font-size:11.5px;transition:transform .15s}
.mc .mc-lane.closed .mc-caret{transform:rotate(-90deg)}
/* collapse now animated via grid-rows (see MC refinements block) */

/* rows */
.mc .mc-row{border-top:1px solid var(--bd)}
.mc .mc-row.is-done{opacity:.45}
.mc .mc-line{display:grid;grid-template-columns:4px 82px minmax(130px,1.1fr) 92px 30px minmax(150px,1.6fr) auto;
  gap:11px;align-items:center;padding:9px 15px 9px 0;min-height:42px;cursor:pointer}
.mc .mc-line:hover{background:var(--bg-2)}
.mc .mc-stripe{align-self:stretch;border-radius:0 3px 3px 0}
.mc .mc-amt{text-align:right;font-size:14px}
.mc .mc-amt.zero{color:var(--faint)}
.mc .mc-name-w{min-width:0}
.mc .mc-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc .mc-stg,.mc .mc-due{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc .mc-own{width:25px;height:25px;border-radius:50%;background:var(--card-2,var(--bd));border:1px solid var(--bd);
  display:grid;place-items:center;font-size:10.5px;font-weight:600;color:var(--soft);letter-spacing:.03em}
.mc .mc-gist{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc .mc-badges{display:flex;gap:5px;align-items:center;padding-right:2px}
.mc .mc-b{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;padding:2.5px 7px;border-radius:4px;white-space:nowrap}
.mc .mc-b-esc{background:var(--bad-soft);color:var(--bad)}
.mc .mc-b-asgn{background:var(--ok-soft);color:var(--ok)}
.mc .mc-b-days{background:var(--bd);color:var(--muted);font-family:var(--ui);letter-spacing:0}
.mc .mc-sdot{width:7px;height:7px;border-radius:50%;flex:none}

/* row detail */
.mc .mc-row .mc-det{display:none}
.mc .mc-row.open .mc-det{display:grid;grid-template-columns:1fr 1fr;gap:16px;
  padding:2px 18px 16px 97px;border-top:1px dashed var(--bd)}
@media (max-width:820px){.mc .mc-row.open .mc-det{grid-template-columns:1fr;padding-left:18px}}
.mc .mc-det h4{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:12px 0 5px}
.mc .mc-det p{font-size:14px;color:var(--soft);margin:0}
.mc .mc-quote{border-left:2px solid var(--bd);padding-left:10px;color:var(--muted);font-style:italic}
.mc .mc-acts{display:flex;gap:8px;margin-top:12px;grid-column:1/-1;flex-wrap:wrap}
.mc .mc-abtn{border:1px solid var(--bd);border-radius:var(--r-sm);padding:6px 13px;font-size:13px;
  color:var(--ink);background:var(--card-2,var(--card));text-decoration:none;display:inline-block}
.mc .mc-abtn:hover{border-color:var(--soft);text-decoration:none}
.mc .mc-abtn.primary{background:var(--ok);color:var(--pill-ink);border-color:var(--ok);font-weight:600}

/* rail */
.mc .mc-rail .mc-box{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:15px;margin-bottom:14px}
.mc .mc-rail h3{font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-weight:600}
.mc .mc-ev{display:flex;gap:9px;padding:6px 0;border-top:1px solid var(--bd);font-size:14px;color:var(--soft)}
.mc .mc-ev:first-of-type{border-top:none}
.mc .mc-ev-t{color:var(--faint);flex:none;width:52px;font-size:13px}
.mc .mc-ev-x{color:var(--warn);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.mc .mc-dq{border-top:1px solid var(--bd);padding:8px 0}
.mc .mc-dq:first-of-type{border-top:none}
.mc .mc-dq-n{color:var(--bad);font-size:14px}
.mc .mc-dq-n.warn{color:var(--warn)}
.mc .mc-dq p{color:var(--muted);font-size:13px;margin:2px 0 0}

/* KPI jump buttons must not inherit the app's default button chrome */
.mc button.mc-val{background:none;border:none;color:var(--ink);cursor:pointer;font-family:var(--ui)}
.mc .mc-kpi.alert button.mc-val{color:var(--bad)}
.mc .mc-kpi.go button.mc-val{color:var(--ok)}
.mc button.mc-val:hover{color:var(--blue)}

/* awaiting-reply section (inbox-wide sweep) */
.mc .mc-aw-h{cursor:default}
.mc .mc-aw-h:hover{background:none}
.mc .mc-aw-chips{display:flex;gap:6px;margin-left:auto;flex:none}
.mc .mc-aw-row{display:grid;grid-template-columns:4px 44px minmax(180px,1fr) minmax(140px,1.4fr) 30px auto;
  gap:11px;align-items:center;padding:9px 15px 9px 0;min-height:42px;border-top:1px solid var(--bd)}
.mc .mc-aw-days{text-align:right;font-size:14px;color:var(--blue)}
.mc .mc-aw-who{min-width:0}
.mc .mc-aw-open{padding:4px 10px;font-size:13px}
.mc .mc-aw-empty{color:var(--faint);font-size:13px;padding:10px 16px;border-top:1px solid var(--bd)}

/* ===================== REPLIES TAB ===================== */
.rp{--mc-violet:var(--tan)}

/* view tabs */
.rp .rp-tabs{display:flex;gap:2px;border-bottom:1px solid var(--bd);margin-bottom:14px}
.rp .rp-tab{background:none;border:0;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;
  padding:10px 15px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer}
.rp .rp-tab .mono{color:var(--faint);margin-left:5px;font-weight:500}
.rp .rp-tab:hover{color:var(--soft)}
.rp .rp-tab.on{color:var(--ink);border-bottom-color:var(--tabc)}
.rp .rp-tab.on .mono{color:var(--tabc)}

/* filter bar */
.rp .rp-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:13px}
.rp .rp-sep{width:1px;height:18px;background:var(--bd);margin:0 4px}
.rp #rp-q{background:var(--card);border:1px solid var(--bd);border-radius:4px;color:var(--ink);
  font-family:inherit;font-size:13px;padding:5px 14px;width:220px}
.rp #rp-q::placeholder{color:var(--faint)}
.rp #rp-q:focus{outline:none;border-color:var(--bd-2,var(--soft))}
.rp .rp-gen{margin-left:auto;font-size:12.5px;color:var(--faint);font-family:var(--ui)}

/* rows */
.rp .rp-row{background:var(--card);border:1px solid var(--bd);border-radius:var(--r-sm);
  margin-bottom:6px;overflow:hidden}
.rp .rp-line{display:grid;grid-template-columns:30px 44px minmax(200px,1.1fr) minmax(140px,1.4fr) auto;
  gap:11px;align-items:center;padding:9px 14px 9px 10px;min-height:44px;cursor:pointer}
.rp .rp-line:hover{background:var(--card-2)}
.rp .rp-ck{accent-color:var(--ok);width:15px;height:15px;cursor:pointer;justify-self:center}
.rp .rp-days{text-align:right;font-size:14px}
.rp .rp-who{min-width:0}
.rp .rp-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.rp .rp-em{color:var(--muted);font-weight:400;font-size:13px}
.rp .rp-subj{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp .rp-gist{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp .rp-chips{display:flex;gap:6px;align-items:center}
.rp .rp-deal{font-size:12px;background:var(--chip-bg);color:var(--chip-ink);border-radius:4px;
  padding:3px 9px;cursor:pointer;white-space:nowrap}
.rp .rp-deal:hover{filter:brightness(1.15)}
.rp .rp-shell{font-style:normal;color:var(--warn);margin-right:4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
.rp .rp-nodeal{font-size:12px;color:var(--faint);border:1px dashed var(--bd);border-radius:4px;padding:2.5px 8px;white-space:nowrap}
.rp .rp-b{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;padding:2.5px 7px;border-radius:4px;white-space:nowrap}
.rp .rp-b-note{background:var(--tan-soft);color:var(--mc-violet)}
.rp .rp-b-snz{background:var(--tan-soft);color:var(--mc-violet);text-transform:none;letter-spacing:0}
.rp .rp-b-hold{background:var(--warn-soft);color:var(--warn)}
.rp .rp-box{width:20px;height:20px;border-radius:50%;background:var(--card-2,var(--bd));border:1px solid var(--bd);
  display:grid;place-items:center;font-size:10.5px;font-weight:600;color:var(--soft)}

/* row detail */
.rp .rp-det{display:none}
.rp .rp-row.open .rp-det{display:block;border-top:1px dashed var(--bd);padding:4px 16px 16px}
.rp .rp-det-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}
@media (max-width:820px){.rp .rp-det-grid{grid-template-columns:1fr}}
.rp .rp-det h4{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:12px 0 5px}
.rp .rp-det p{font-size:14px;color:var(--soft);margin:0}
.rp .rp-quote{border-left:2px solid var(--bd);padding-left:10px;color:var(--muted);font-style:italic}
.rp .rp-note{width:100%;min-height:54px;background:var(--bg-2,rgba(0,0,0,.25));border:1px solid var(--bd);
  border-radius:var(--r-sm);color:var(--ink);font-family:inherit;font-size:14px;padding:8px 10px;resize:vertical}
.rp .rp-note:focus{outline:none;border-color:var(--bd-2,var(--soft))}
.rp .rp-savenote{margin-top:7px}
.rp .rp-stamp{color:var(--warn);font-size:12.5px}
.rp .rp-acts{display:flex;gap:8px;margin-top:14px;grid-column:1/-1;flex-wrap:wrap;align-items:center}
.rp .rp-date{background:var(--card-2,var(--card));border:1px solid var(--bd);border-radius:var(--r-sm);
  color:var(--ink);font-family:var(--ui);font-size:13px;padding:5px 8px;color-scheme:dark}

/* vendor fold */
.rp .rp-vendor{margin-top:14px}
.rp .rp-vendor-h{width:100%;text-align:left;background:var(--card);border:1px dashed var(--bd);
  border-radius:var(--r-sm);padding:9px 14px;font-size:12.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);display:flex;gap:8px;align-items:center}
.rp .rp-vendor-h .mc-caret{margin-left:auto}
.rp .rp-vendor:not(.open) .rp-vendor-rows{display:none}
.rp .rp-vendor:not(.open) .rp-vendor-h .mc-caret{transform:rotate(-90deg)}
.rp .rp-vendor-rows{margin-top:6px}

/* resolved view */
.rp .rp-res-row{display:grid;grid-template-columns:minmax(200px,1fr) minmax(160px,1.2fr) auto;
  gap:11px;align-items:center;background:var(--card);border:1px solid var(--bd);
  border-radius:var(--r-sm);padding:9px 14px;margin-bottom:6px}
.rp .rp-res-meta{font-size:13px;color:var(--muted)}
.rp .rp-empty{color:var(--faint);font-size:14px;padding:22px;text-align:center;
  border:1px dashed var(--bd);border-radius:var(--r-sm)}

/* bulk bar */
.rp .rp-bulk{position:sticky;bottom:14px;display:none;gap:10px;align-items:center;
  background:var(--card-2,var(--card));border:1px solid var(--bd-2,var(--bd));border-radius:4px;
  padding:9px 18px;box-shadow:var(--pop);width:fit-content;margin:14px auto 0;font-size:14px}
.rp .rp-bulk.on{display:flex}

/* header actions (actor seg + sweep) */
#rp-header-actions{display:flex;gap:10px;align-items:center}
#rp-header-actions .rp-actor{display:flex}

/* shared chip/button styles reach the Replies tab too (.mc-scoped originals) */
.rp .mc-chip{border:1px solid var(--bd-2);border-radius:999px;padding:4px 13px;font-size:13px;color:var(--soft);background:var(--card);box-shadow:var(--shadow)}
.rp .mc-chip:hover{border-color:var(--bd-2,var(--bd))}
.rp .mc-chip.on{background:#e7f0f2;color:#0b5b67;border-color:#b4d2d7;font-weight:600}
.rp .mc-abtn{border:1px solid var(--bd);border-radius:var(--r-sm);padding:6px 13px;font-size:13px;
  color:var(--ink);background:var(--card-2,var(--card));text-decoration:none;display:inline-block}
.rp .mc-abtn:hover{border-color:var(--soft);text-decoration:none}
.rp .mc-abtn.primary{background:var(--ok);color:var(--pill-ink);border-color:var(--ok);font-weight:600}
.rp .mc-caret{color:var(--faint);font-size:11.5px}

/* ===== multi-org (merged workspace) ===== */
.org-tag{display:inline-flex;align-items:center;gap:5px;flex:none;font-size:9px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;line-height:1;vertical-align:2px;margin-left:6px}
.org-tag::before{content:"";width:4px;height:4px;border-radius:1.5px;background:currentColor;opacity:.9;flex:none}
/* org identity hues — deliberately OUTSIDE the semantic palette so an org
   tag never reads as deal status (§2: sai/doe/both micro tags) */
.org-tag.org-success{color:#0b5b67}
.org-tag.org-doe{color:#544aae}
.org-tag.org-both{color:#47606e}
/* segmented control — shared primitive (org seg, actor seg, KPI window,
   dayplan add-org). Was co-located with the retired Display panel. */
.seg{display:flex;align-items:stretch;background:var(--bg);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;padding:3px;gap:3px}
.seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;min-height:26px;white-space:nowrap;line-height:1;font-weight:500;font-size:13px;color:var(--muted);background:none;border:0;border-radius:var(--r-sm);transition:all .15s}
.seg button:hover{color:var(--soft)}
.seg button.on{background:var(--card-3);color:var(--ink);box-shadow:inset 0 0 0 1px var(--bd-2)}
.org-seg{padding:2px;gap:2px}
.org-seg button{flex:none;padding:5px 12px;font-size:13px;cursor:pointer}
.dp-add-row{display:flex;align-items:center;gap:6px}
.dp-add-row .dp-add{flex:1;min-width:0}

/* ===== Phase 2: Today tab ===== */
/* B1 — KPI window toggle */
/* ===== Month band (Rox §5.1) — replaces the 4 KPI cards ===== */
.mband{display:grid;grid-template-columns:1.35fr 1.15fr 1fr;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);margin-bottom:14px;overflow:hidden}
.mb-c{padding:20px 22px;position:relative;min-width:0}
.mb-c + .mb-c{border-left:1px solid var(--bd)}
.mb-lab{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:600;display:flex;align-items:center;flex-wrap:wrap;gap:2px 0}
.mb-big{font-size:38px;font-weight:620;letter-spacing:-.035em;color:var(--ink);margin-top:8px;line-height:1;font-variant-numeric:tabular-nums}
.mb-big small{font-size:15px;color:var(--muted);font-weight:500;letter-spacing:0;margin-left:8px}
.mb-bar{margin-top:14px;height:6px;border-radius:var(--r-sm);background:var(--card-3);position:relative;overflow:visible}
.mb-fill{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-sm);background:linear-gradient(90deg,color-mix(in srgb, var(--blue) 55%, var(--bg-2)),var(--blue))}
.mb-tick{position:absolute;top:-4px;bottom:-4px;width:1.5px;background:var(--faint)}
.mb-caps{display:flex;justify-content:space-between;margin-top:9px;font-size:11.5px;color:var(--faint)}
.mb-caps b{color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}
.mb-caps .gap{color:var(--tan);font-weight:600}
.mb-caps .ok{color:var(--ok);font-weight:600}
.mb-sub{font-size:12.5px;color:var(--muted);margin-top:10px}
.mb-sub.warn{color:var(--warn)}
.mb-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-top:8px}
.mb-c.alert .mb-big{color:var(--bad);font-size:30px;margin-top:10px}
.mb-act{display:inline-flex;align-items:center;gap:6px;margin-top:11px;font-size:12px;font-weight:600;color:var(--tan);cursor:pointer}
.mb-act svg{width:13px;height:13px}
.td6-mode{display:inline-flex;gap:2px;margin-left:10px;background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:2px}
.td6-mode button{padding:2px 9px;border-radius:var(--r-sm);font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--faint);text-transform:uppercase;background:none;border:0}
.td6-mode button.on{background:var(--card-3);color:var(--soft)}
.td6-mode.td6-win{margin-left:auto}
.td6-agr-h{display:flex;align-items:baseline;gap:9px;margin-top:8px}
.td6-n{font-size:30px;font-weight:620;letter-spacing:-.03em;color:var(--ink);line-height:1}
.td6-agr-sub{font-size:12px;color:var(--muted)}
.td6-avg{margin-left:auto;font-size:12px;color:var(--muted)}
.td6-items{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:10px}
.td6-items .td6-it.total{grid-column:1/-1}
.td6-it{display:flex;align-items:baseline;gap:7px;font-size:11.5px;color:var(--muted);line-height:1.85;min-width:0}
.td6-it .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none;max-width:60%;color:inherit}
.td6-it a.nm:hover{color:var(--soft);text-decoration:underline}
.td6-it .dots{flex:1;border-bottom:1px dotted var(--bd-2);transform:translateY(-3.5px)}
.td6-it b{color:var(--soft);font-weight:550;flex:none}
.td6-it b i{font-style:normal;color:var(--faint);font-size:10px}
.td6-it.total .nm{color:var(--soft);font-weight:600}
.td6-it.total b{color:var(--ink);font-weight:650}
.td6-pop{margin-top:12px;background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);padding:10px 14px}
.td6-pop .l{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:4px}
.td6-pop .td6-it{line-height:1.75}
.td6-pop .td6-it .nm{max-width:72%}
.td6-note{font-size:10px;color:var(--faint);margin-top:6px;cursor:help}
.td6-people{display:inline-flex;gap:3px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:4px;margin:0 0 12px}
.td6-p{display:inline-flex;align-items:center;padding:6px 16px;border-radius:var(--r-sm);font-size:12.5px;font-weight:550;color:var(--muted);background:none;border:0}
.td6-p:hover{color:var(--soft)}
.td6-p.on{background:var(--card-3);color:var(--ink);box-shadow:inset 0 0 0 1px var(--bd-2)}
@media(max-width:1000px){.mband{grid-template-columns:1fr}.mb-c + .mb-c{border-left:0;border-top:1px solid var(--bd)}}

/* ===== Day rail (Rox §5.1) ===== */
.day-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:12px;align-items:start}
@media(max-width:1000px){.day-grid{grid-template-columns:1fr}}
.tdy .dayplan .day-grid .dp-cols{display:flex;flex-direction:column;gap:12px;grid-template-columns:none}
.cal-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:16px 18px 14px}
.cal-h{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
.cal-h .t{font-size:13px;font-weight:600;color:var(--ink)}
.cal-h .n{margin-left:auto;font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.cal-empty{color:var(--faint);font-size:12.5px;padding:14px 0 8px}
.hrow{display:grid;grid-template-columns:52px 1fr;min-height:30px;position:relative}
.hrow .hl{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;padding-top:2px;text-align:right;padding-right:12px}
.hrow .hb{border-top:1px solid var(--bd);padding:3px 0 3px 0;display:flex;flex-direction:column;gap:4px;min-width:0}
.hrow:first-of-type .hb{border-top:0}
.nowline{position:absolute;left:52px;right:0;height:0;border-top:1.5px solid var(--bad);z-index:2;pointer-events:none}
.nowline::before{content:"";position:absolute;left:-4px;top:-3.5px;width:6px;height:6px;border-radius:50%;background:var(--bad)}
.nowline small{position:absolute;right:0;top:-15px;font-size:9.5px;color:var(--bad);font-weight:700;letter-spacing:.05em}
.cal-peek{padding:12px 14px}
.cal-card.cal-peek{outline:1px dashed var(--bd-2);outline-offset:-1px}
.cal-peeknote{font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--tan);background:var(--tan-soft);padding:1px 6px;border-radius:var(--r-sm)}
/* --- Calendar meeting chips + expandable body (mockup .cal-mtg/.cl4-*) --- */
.cal-mtg{display:flex;align-items:center;gap:9px;border-radius:var(--r-sm);background:var(--card-2);border:1px solid var(--bd);padding:7px 11px;font-size:12.5px}
.cal-mtg.past{opacity:.6}  /* .45 read near-invisible on titanium's quiet palette */
.cal-mtg.next{border-color:color-mix(in srgb, var(--blue) 45%, transparent);background:linear-gradient(0deg,var(--blue-soft),var(--blue-soft)),var(--card-2)}
.cal-mtg .tm{color:var(--muted);font-weight:550;font-size:11.5px;font-variant-numeric:tabular-nums;flex:none;width:52px}
.cal-mtg .nm{color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-mtg .tag{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;flex:none}
.cal-mtg .tag.client{color:var(--tan)} .cal-mtg .tag.ext{color:var(--muted)} .cal-mtg .tag.next{color:var(--blue)}
.cal-mtg .cd{font-size:11px;color:var(--blue);font-weight:600;flex:none;font-variant-numeric:tabular-nums}
.cal-mtg .cd:empty{display:none}
.cal-mtg .ppl{margin-left:auto;font-size:10.5px;color:var(--faint);flex:none;font-variant-numeric:tabular-nums}
.cal-mtg .join{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:#fff;background:var(--blue);border-radius:var(--r-sm);padding:3px 10px;flex:none}
.cal-mtg .join svg{width:12px;height:12px}
.cl4-join{position:relative;display:inline-flex;align-items:center;gap:5px;flex:none;font-size:11px;font-weight:600;color:var(--muted);background:var(--card-3);border:1px solid var(--bd-2);border-radius:var(--r-sm);padding:3.5px 9px;transition:.12s;text-decoration:none}
.cl4-join::after{content:"";position:absolute;inset:-5px}
.cl4-join svg{width:11.5px;height:11.5px}
.cl4-join:hover{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 45%, transparent)}
.cal-mtg.past .cl4-join{background:none}
.cl4-ev{display:flex;flex-direction:column}
/* Overlapping meetings — red conflict block: greedy lanes side by side,
   TOP-ALIGNED (no per-minute offsets — they cascaded chips diagonally on
   busy days); the overlap-window note below carries the timing. */
.cl4-conflict{position:relative;padding-left:10px}
.cl4-conflict::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:2px;border-radius:2px;background:var(--bad);opacity:.85}
.cl4-lanes{display:flex;gap:5px;align-items:flex-start}
.cl4-lane{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.cl4-conflict>.cl4-lanes .cl4-ev{min-width:0}
.cl4-conflict .cal-mtg .tm{width:auto;margin-right:1px}
.cl4-conflict .cal-mtg .ppl,.cl4-conflict .cal-mtg .tag{display:none}
.cl4-conflict .cl4-join{font-size:0;gap:0;padding:4.5px 7px;margin-left:auto}
.cl4-conflict .cal-mtg{border-color:color-mix(in srgb, var(--bad) 32%, transparent)}
.cl4-conflict .cl4-ev.open>.cl4-ev-b{border-color:color-mix(in srgb, var(--bad) 32%, transparent);border-top:0}
.cl4-conf-note{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:550;color:var(--bad);padding:3px 2px 0}
.cl4-conf-note::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}
/* Holds — self-blocked time as first-class context: banner bar at the start,
   tan wash + 3px left bar down every covered hour row (.hld, rounded at
   .hld-a start / .hld-z end), a faint repeated marker on continuation rows,
   and a release tick where the hold frees up. Tan, never red — a hold is
   context, not an alarm. */
.hrow .hb.hld{position:relative;background:linear-gradient(90deg,color-mix(in srgb, var(--tan) 9%, transparent),color-mix(in srgb, var(--tan) 2%, transparent) 75%);border-top-color:color-mix(in srgb, var(--tan) 22%, var(--bd))}
.hrow .hb.hld::before{content:"";position:absolute;left:0;top:0;bottom:-1px;width:3px;background:var(--tan);opacity:.55;border-radius:0 2px 2px 0}
.hrow .hb.hld.hld-a::before{top:2px;border-radius:2px}
.hrow .hb.hld.hld-z::before{bottom:2px;border-radius:2px}
.hld-cont{position:absolute;right:6px;top:4px;font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--tan);opacity:.55;pointer-events:none}
.hld-bar{display:flex;align-items:center;gap:10px;border-radius:var(--r-sm);padding:8px 12px;position:relative;background:linear-gradient(0deg,color-mix(in srgb, var(--tan) 13%, transparent),color-mix(in srgb, var(--tan) 13%, transparent)),var(--card);border:1px solid color-mix(in srgb, var(--tan) 38%, transparent)}
.hld-bar .ic{flex:none;width:16px;height:16px;border-radius:3px;background:var(--tan);color:#fff;display:inline-flex;align-items:center;justify-content:center}
.hld-bar .ic svg{width:9px;height:9px;fill:currentColor}
.hld-bar .lbl{font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--tan);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hld-bar .rng{font-size:12.5px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.hld-bar .dur{font-size:10.5px;font-weight:600;color:var(--tan);background:color-mix(in srgb, var(--tan) 14%, transparent);border-radius:var(--r-sm);padding:1px 6px;flex:none}
.hld-bar .org-tag{margin-left:auto}
.hld-tick{display:flex;align-items:center;gap:7px;font-size:9.5px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--tan);opacity:.75}
.hld-tick::before{content:"";width:14px;height:0;border-top:1px solid var(--tan)}
.hld-tick::after{content:"";flex:1;height:0;border-top:1px dashed color-mix(in srgb, var(--tan) 35%, transparent)}
.cal-h .n .hld-hn{color:var(--tan)}
.cl4-ev>.cal-mtg{cursor:pointer;transition:border-color .12s}
.cl4-ev>.cal-mtg:hover{border-color:var(--bd-2)}
.cl4-ev.open>.cal-mtg{border-radius:var(--r-sm) var(--r-sm) 0 0;border-bottom-color:transparent}
.cl4-ev.open>.cal-mtg.past{opacity:1}
.cl4-ev-b{background:var(--card-2);border:1px solid var(--bd);border-top:0;border-radius:0 0 var(--r-sm) var(--r-sm);padding:0 12px 12px;animation:cl4-drop .16s ease}
@keyframes cl4-drop{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.cl4-ev.open>.cal-mtg.next+.cl4-ev-b{border-color:color-mix(in srgb, var(--blue) 45%, transparent);background:linear-gradient(0deg,var(--blue-soft),var(--blue-soft)),var(--card-2)}
.cl4-ev-b::before{content:"";display:block;height:1px;background:var(--bd);margin:0 0 10px}
.cl4-agenda{font-size:12px;color:var(--soft);line-height:1.5;white-space:pre-wrap}
.cl4-agenda b{color:var(--ink);font-weight:600}
.cl4-sh{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650;margin:11px 0 3px}
.cl4-att{display:flex;flex-direction:column}
.cl4-p{display:flex;align-items:center;gap:9px;padding:3.5px 0;font-size:12.5px;color:var(--soft)}
.cl4-p small{color:var(--faint);font-size:11px;font-weight:400}
.cl4-av{width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--soft);background:var(--card-3);border:1px solid var(--bd-2)}
.cl4-rsvp{margin-left:auto;flex:none;width:16px;text-align:center;font-size:10.5px;font-weight:700}
.cl4-p.acc .cl4-rsvp{color:var(--ok)}
.cl4-p.dec .cl4-rsvp{color:var(--bad)}
.cl4-p.dec{opacity:.6}
.cl4-p.pen .cl4-rsvp{color:var(--faint)}
.cl4-joinfull{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:11px;padding:7.5px 0;border-radius:var(--r-sm);background:var(--blue);color:#fff;font-size:12.5px;font-weight:600;transition:.12s;text-decoration:none}
.cl4-joinfull:hover{background:color-mix(in srgb, var(--blue), #fff 9%)}
.cl4-joinfull svg{width:13px;height:13px}
/* RSVP marks: ✓ going / ✕ declined / ○ pending-tentative */
.sc-st{margin-left:auto;font-size:11px;font-weight:600}
.sc-st.accepted{color:var(--ok)} .sc-st.accepted::before{content:"✓ "}
.sc-st.declined{color:var(--bad)} .sc-st.declined::before{content:"✕ "}
.sc-st.needsAction,.sc-st.tentative{color:var(--muted)} .sc-st.needsAction::before,.sc-st.tentative::before{content:"○ "}

/* ===== Priorities — pb4 run-of-show spine (Rox §5.1/§4) ===== */
.task-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:16px 18px 14px}
.pb4-h{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.pb4-h .t{font-size:13px;font-weight:600;color:var(--ink)}
.pb4-prog{display:flex;gap:3px;margin-left:auto}
.pb4-prog i{width:13px;height:3px;border-radius:2px;background:var(--card-3);transition:background .25s}
.pb4-prog i.on{background:var(--ok)}
.pb4-count{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.pb4-stack{list-style:none;position:relative;display:flex;flex-direction:column;margin:0;padding:0}
.pb4-stack::before{content:"";position:absolute;left:14px;top:12px;bottom:12px;width:1px;background:var(--bd-2)}
.pb4-mark{position:relative;padding:9px 0 3px 30px;font-size:10px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.pb4-mark:first-child{padding-top:2px}
.pb4-mark::before{content:"";position:absolute;left:11px;top:calc(50% + 2px);width:7px;height:1px;background:var(--bd-2)}
.pb4-addrow{list-style:none;padding-left:30px}
.pb4-item{display:flex;gap:11px;align-items:flex-start;padding:6px 7px 6px 3px;border:1px solid transparent;border-radius:var(--r);position:relative;transition:background .12s;margin:0}
.pb4-item:hover{background:var(--card-2)}
.pb4-chk{position:relative;z-index:1;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--bd-2);background:var(--card);flex:none;margin-top:1px;display:grid;place-items:center;font-size:10.5px;line-height:1;color:transparent;transition:border-color .15s,background .15s,color .15s;padding:0}
.pb4-chk::after{content:"";position:absolute;inset:-7px}
.pb4-chk:hover{border-color:var(--ok);color:color-mix(in srgb, var(--ok) 55%, transparent)}
.pb4-item:hover .pb4-chk{background:var(--card-2)}
.pb4-body{flex:1;min-width:0}
.pb4-t{font-size:13.5px;color:var(--soft);transition:color .15s}
.pb4-meta{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}
.pb4-ai{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--tan)}
.pb4-ai::before{content:"✦";font-size:9px}
.pb4-side{margin-left:auto;display:flex;align-items:center;gap:6px;flex:none}
.pb4-carry{font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--tan);white-space:nowrap}
.pb4-tools{display:none;gap:4px}
.pb4-item:hover .pb4-tools{display:inline-flex}
.pb4-tools button{font-size:11px;color:var(--faint);border:1px solid var(--bd);border-radius:var(--r-sm);padding:2px 7px;background:var(--card)}
.pb4-tools button:hover{color:var(--soft);border-color:var(--bd-2)}
.pb4-item.up{background:linear-gradient(0deg,var(--blue-soft),var(--blue-soft)),var(--card-2);border-color:color-mix(in srgb, var(--blue) 40%, transparent);padding-top:11px;padding-bottom:12px;margin:5px 0}
.pb4-item.up .pb4-body::before{content:"up next";display:block;font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--blue);margin-bottom:3px}
.pb4-item.up .pb4-t{font-size:14.5px;font-weight:550;color:var(--ink);letter-spacing:-.01em}
.pb4-item.up .pb4-chk{border-color:color-mix(in srgb, var(--blue) 55%, transparent)}
.pb4-item.up .pb4-chk:hover{border-color:var(--ok)}
.pb4-item.done .pb4-chk{background:color-mix(in srgb,var(--ok) 16%,var(--card));border-color:transparent;color:var(--ok)}
.pb4-item.done .pb4-t{color:var(--faint);text-decoration:line-through;text-decoration-color:rgba(45,62,80,.35)}
.pb4-item.done .pb4-meta{opacity:.5}
@keyframes pb4-pop{0%{transform:scale(.72);box-shadow:0 0 0 0 var(--ok-soft)}45%{transform:scale(1.18);box-shadow:0 0 0 7px var(--ok-soft)}100%{transform:scale(1);box-shadow:0 0 0 12px transparent}}
.pb4-chk.pb4-pop{animation:pb4-pop .34s cubic-bezier(.3,1.4,.5,1)}
.pb4-zero{display:flex;align-items:center;gap:9px;padding:2px 4px 8px;font-size:12.5px;color:var(--muted)}
.pb4-zero .st{font-size:12px}

/* ===== Billing drawer summary strip + aging (Rox §5.1) ===== */
.pb4-bsum{display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);margin:8px 0 10px;overflow:hidden}
.pb4-bs{padding:10px 14px 7px}
.pb4-bs + .pb4-bs{border-left:1px solid var(--bd)}
.pb4-bs .l{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:650;white-space:nowrap}
.pb4-bs .l::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--muted);flex:none}
.pb4-bs.warn .l::before{background:var(--warn)}
.pb4-bs.bad .l::before{background:var(--bad)}
.pb4-bs.tan .l::before{background:var(--tan)}
.pb4-bs.ok .l::before{background:var(--ok)}
.pb4-bs .v{display:block;font-size:17px;font-weight:620;letter-spacing:-.02em;color:var(--ink);margin-top:4px}
.pb4-bs .n{display:block;font-size:10.5px;color:var(--faint);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pb4-bbar{grid-column:1/-1;display:flex;gap:2px;height:3px;margin:2px 14px 10px;border-radius:3px;overflow:hidden}
.pb4-bbar i{border-radius:2px}
.cw-st{display:inline-flex;flex-direction:column;gap:2px;align-items:flex-start}
.cw-aged{font-style:normal;font-size:10.5px;color:var(--faint)}
.cw-aged.hot{color:var(--warn)}
/* pipeline drawer buckets */
.bkt{margin:8px 0 12px}
.bkt-h{display:flex;align-items:center;gap:9px;padding:4px 2px 6px;border-bottom:1px solid var(--bd);margin-bottom:2px}
.bkt-h .st{font-size:12px;font-weight:650}
.bkt-n{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.bkt-t{margin-left:auto;font-size:12px;color:var(--muted)}
.bmore{font-size:11.5px;color:var(--faint);padding:5px 2px 0}
.bdeal .bdm{color:var(--muted);font-size:12px}
.bdeal .vd{font-size:11px}

/* ===== Peek panel + veil (Rox §4 side panels) ===== */
.peek{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:92vw;background:var(--card);border-left:1px solid var(--bd-2);box-shadow:-28px 0 60px -24px rgba(23,37,53,.28);z-index:80;transform:translateX(105%);transition:transform .22s cubic-bezier(.3,.8,.3,1);display:flex;flex-direction:column}
.peek.open{transform:none}
.peek-veil{position:fixed;inset:0;z-index:79;display:none;background:transparent}
.peek-veil.show{display:block}
.pk-h{padding:20px 22px 16px;border-bottom:1px solid var(--bd)}
.pk-top{display:flex;align-items:flex-start;gap:10px}
.pk-nm{font-size:18px;font-weight:650;letter-spacing:-.02em;color:var(--ink)}
.pk-x{margin-left:auto;width:28px;height:28px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--muted);border:1px solid var(--bd);background:none;flex:none}
.pk-x:hover{color:var(--ink);border-color:var(--bd-2)}
.pk-sub{display:flex;align-items:center;gap:10px;margin-top:7px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.pk-b{padding:18px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;flex:1}
.pk-facts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.pk-f{background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);padding:10px 12px}
.pk-f .l{display:block;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:600}
.pk-f .v{display:block}
.pk-f .v{font-size:14.5px;font-weight:600;color:var(--ink);margin-top:4px;font-variant-numeric:tabular-nums}
.pk-sec .sh{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:7px}
.pk-why{display:flex;gap:8px;font-size:12.5px;color:var(--soft);padding:2px 0;line-height:1.45}
.pk-why .b{flex:none;font-weight:700}
.pk-why.pos .b{color:var(--ok)} .pk-why.neg .b{color:var(--bad)}
.pk-ev{display:flex;gap:10px;align-items:baseline;font-size:13px;color:var(--soft);padding:3px 0}
.pk-ev .d{flex:none;color:var(--faint);font-size:11.5px;font-variant-numeric:tabular-nums;width:44px}
.pk-ev .cdot{flex:none;width:6px;height:6px;border-radius:50%;position:relative;top:-1px}
/* peek line items — product · term · amount + total */
.pk-li{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid var(--bd);font-size:13px}
.pk-li:last-child{border-bottom:0}
.pk-li .pk-linm{flex:1;color:var(--soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pk-li .pk-liq{color:var(--faint);font-size:11.5px}
.pk-li .pk-lit{flex:none;font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.pk-li .pk-liamt{flex:none;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;min-width:64px;text-align:right}
.pk-li.total{margin-top:2px;border-top:1px solid var(--bd-2);border-bottom:0;padding-top:9px}
.pk-li.total .pk-linm{color:var(--faint);text-transform:uppercase;font-size:10.5px;letter-spacing:.06em;font-weight:700}
.pk-li.empty{color:var(--faint);border-bottom:0}
.pk-next{display:flex;gap:9px;background:var(--card-2);border:1px solid var(--bd);border-left:2px solid var(--blue);border-radius:var(--r);padding:12px 14px;font-size:13px;color:var(--soft);line-height:1.5}
.pk-next .ar{color:var(--blue);flex:none;font-weight:700}
.pk-next i{font-style:normal;font-weight:600;color:var(--ink)}
.pk-foot{margin-top:auto;padding:16px 22px;border-top:1px solid var(--bd);display:flex;gap:8px}
.pk-foot .btn{flex:1;justify-content:center}
#view-pipeline tr.peeking td{background:var(--card-2)}
/* last-activity column: date ink + muted ago (was recency-green) */
.actdate{color:var(--ink);font-weight:550}
.actdate small{color:var(--faint)}
.tdy .kpi-win{padding:2px;gap:2px}
.tdy .kpi-win button{flex:none;padding:4px 11px;font-size:13px;cursor:pointer}
/* A3 — person filter chips */
.tdy .tp-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 12px}
.tdy .tp-chips .mc-chip{border:1px solid var(--bd-2);border-radius:999px;padding:4px 13px;font-size:13px;color:var(--soft);background:var(--card);box-shadow:var(--shadow);cursor:pointer}
.tdy .tp-chips .mc-chip:hover{border-color:var(--bd-2,var(--bd))}
.tdy .tp-chips .mc-chip.on{background:#e7f0f2;color:#0b5b67;border-color:#b4d2d7;font-weight:600}
/* B2 — day-plan item layout: full-width task text on line 1, deal/why/org
   meta chips on their own line below (chips must never squeeze the text) */
.tdy .dp-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.tdy .dp-row1{display:flex;align-items:flex-start;gap:8px;min-width:0}
.tdy .dp-row1 .dp-text{flex:1;min-width:0}
.tdy .dp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-left:3px}
.tdy .dp-deal{border:1px solid var(--bd-2);border-radius:4px;background:var(--card-2);color:var(--blue);
  font-size:12px;font-weight:600;padding:1px 9px;cursor:pointer;flex:none;max-width:230px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdy .dp-deal:hover{border-color:var(--blue)}
.tdy .dp-why{color:var(--muted);font-size:12px;flex:none;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdy .dp-item.done .dp-deal,.tdy .dp-item.done .dp-why{opacity:.45}
/* B3 — schedule rows: tighter, clearer scan line */
.tdy .dp-sched{gap:1px}
.tdy .dp-pastline{font-size:12.5px;color:var(--faint);padding:2px 7px;cursor:pointer}
.tdy .dp-pastline:hover{color:var(--soft)}
/* B4 — billing row expand. The caret lives INSIDE the name cell so the row
   keeps its original 4-column grid (name · pill · amount · link); .cw-item
   wrappers take over the row separators from .cw-row. */
.tdy .cw-item{border-top:1px solid var(--bd)}
.tdy .cw-item:first-child{border-top:none}
.tdy .cw-item .cw-row{border-top:none}
.tdy .cw-row{cursor:pointer}
.tdy .cw-car{display:inline-block;color:var(--faint);font-size:11.5px;width:14px;transition:transform .15s}
.tdy .cw-row.open .cw-car{transform:rotate(90deg)}
.tdy .cw-det{padding:4px 10px 12px 26px;display:flex;flex-direction:column;gap:10px}
.tdy .cw-det.hidden{display:none}
.tdy .cw-facts{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end}
.tdy .cw-facts span{display:flex;flex-direction:column;gap:2px}
.tdy .cw-facts small{color:var(--faint);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em}
.tdy .cw-facts b{font-size:14px;color:var(--ink);font-weight:500}
.tdy .cw-facts .binspect{margin-left:auto}
.tdy .cw-lines small{display:block;color:var(--faint);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
/* invoice ledger rows in the billing expansion (2026-08-09): number · dates ·
   status · dollars · Stripe/hosted/customer links */
.tdy .cw-inv{display:grid;grid-template-columns:minmax(76px,auto) 1fr auto auto auto;gap:12px;align-items:center;padding:4px 0;font-size:12.5px}
.tdy .cw-inv-no{color:var(--muted)}
.tdy .cw-inv-dt{color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tdy .cw-inv-amt{color:var(--soft);text-align:right;white-space:nowrap}
.tdy .cw-inv-amt i{font-style:normal;color:var(--faint)}
.tdy .cw-inv-lk{display:flex;gap:10px;white-space:nowrap}
/* carried-over section header — the aged chase list under the window rows */
.tdy .cw-carried{display:flex;align-items:center;gap:10px;padding:11px 16px 8px;border-top:1px solid var(--bd);background:var(--card-2)}
.tdy .cw-carried-sum{font-size:12px;color:var(--muted)}
@media(max-width:640px){.tdy .cw-inv{grid-template-columns:auto 1fr;row-gap:2px}.tdy .cw-inv-amt,.tdy .cw-inv-lk{grid-column:2;justify-self:end}}
.tdy .cw-li{display:flex;align-items:baseline;gap:12px;font-size:13px;padding:3px 0;border-bottom:1px dashed var(--bd)}
.tdy .cw-li:last-child{border-bottom:0}
.tdy .cw-li-nm{flex:1;color:var(--ink)}
.tdy .cw-li-qp{color:var(--muted)}
.tdy .cw-li-rec{color:var(--blue);font-style:normal;margin-left:3px}
.tdy .cw-li-amt{color:var(--ink);font-weight:600}
.tdy .cw-li-none{color:var(--faint);font-size:13px}

/* ===== Phase 3: Pipeline + Forecast ===== */
/* C1 — outstanding item beside the status pill */
.dtable .wait-out{margin-top:3px;font-size:12px;color:var(--muted);max-width:230px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdy .bout{color:var(--muted);font-size:12px;flex:1;min-width:60px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* C2 — explicit last-activity label in the Today pipeline drawer */
.tdy .blast-lab{font-style:normal;color:var(--faint);font-size:10.5px;text-transform:uppercase;
  letter-spacing:.06em;margin-right:5px}
/* D3 — plain-English computation notes under forecast panels */
.panel-note{margin-top:10px;padding:8px 10px;border-top:1px dashed var(--bd);
  font-size:12.5px;line-height:1.55;color:var(--muted)}

/* ===== Phase 4: Deal workspace + Replies ===== */
/* E3 — reply line (ask + stance) */
.ws-stance{margin:0 0 12px;padding:11px 14px;border:1px solid var(--bd);border-radius:var(--r,12px);
  background:var(--card);display:flex;flex-direction:column;gap:5px}
.ws-stance-t{font-size:14.5px;color:var(--ink);line-height:1.5}
.ws-ask{font-size:13px;color:var(--soft)}
.ws-ask span{color:var(--faint);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;margin-right:6px}
.ws-ask b{color:var(--blue)}
/* E2 — compact company intel */
.intel-card.compact .ic-toggle{cursor:pointer;display:flex;align-items:center;gap:8px;margin:0}
.intel-card.compact .ic-gist{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--muted);font-size:13px;font-weight:400;font-family:var(--sans,inherit);text-transform:none;letter-spacing:0}
.intel-card.compact .ic-car{color:var(--faint);font-size:11.5px;transition:transform .15s}
.intel-card.compact.open .ic-car{transform:rotate(180deg)}
.intel-card.compact .ic-body{display:none}
.intel-card.compact.open .ic-body{display:block;margin-top:10px}
/* E4 — call intel lists */
.tlcall .ci-list{margin:2px 0 0;padding-left:16px;font-size:13px;line-height:1.55;color:var(--soft)}
.tlcall .ci-list li{margin:1px 0}
.tlcall .ci-prom b{color:var(--ink);font-weight:600;margin-right:3px}
.tlcall .ci-prom.them b{color:var(--blue)}
/* E5 — contact source badges */
.tlct-t .src-chip{display:inline-block;margin-left:5px;padding:0 6px;border-radius:4px;
  border:1px solid var(--bd-2);color:var(--muted);font-size:10.5px;text-transform:uppercase;
  letter-spacing:.05em;vertical-align:2px}
/* E6 — brief section provenance */
.brief-src{margin-top:6px;font-size:12px;color:var(--faint);border-top:1px dashed var(--bd);padding-top:5px}
/* F1 — replies detail email line */
.rp .rp-em-line{margin:2px 0 10px;font-size:13px;color:var(--muted)}

/* ===================== ONBOARDING & CLIENTS ===================== */
.cl .cl-sec{margin-bottom:26px}
.cl .cl-sec>h3{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  font-weight:600;margin-bottom:11px}
.cl .cl-sec>h3 .mono{color:var(--faint);margin-left:4px}
.cl .cl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.cl .cl-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);
  padding:14px 16px;cursor:pointer}
.cl .cl-card:hover{border-color:var(--bd-2);background:var(--card-2)}
.cl .cl-card-h{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.cl .cl-card-h b{font-size:14px}
.cl .cl-frac{margin-left:auto;font-size:13px;color:var(--muted)}
.cl .cl-dot{width:9px;height:9px;border-radius:50%;flex:none}
.cl .cl-bar{height:6px;background:var(--bd);border-radius:4px;overflow:hidden;margin-bottom:10px}
.cl .cl-bar i{display:block;height:100%;background:var(--ok);border-radius:4px}
.cl .cl-ask{font-size:13px;color:var(--soft);margin-bottom:9px;line-height:1.45}
.cl .cl-ask-tag{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;
  background:var(--warn-soft);color:var(--warn);border-radius:4px;padding:2px 7px;margin-right:4px}
.cl .cl-card-f{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cl .cl-funnel{font-size:14px;color:var(--soft);margin-bottom:9px}
.cl .cl-meta{font-size:12.5px;color:var(--faint)}
.cl .cl-hot{color:var(--bad)}
.cl .cl-pill{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  border-radius:4px;padding:2.5px 9px;white-space:nowrap;border:none;cursor:pointer}
.cl .cl-done{background:var(--ok-soft);color:var(--ok)}
.cl .cl-prog{background:var(--blue-soft);color:var(--blue)}
.cl .cl-wait{background:var(--warn-soft);color:var(--warn)}
.cl .cl-pend{background:var(--bd);color:var(--muted)}
.cl .cl-ok{background:var(--ok-soft);color:var(--ok)}
.cl .cl-err{background:var(--bad-soft);color:var(--bad)}
.cl .cl-cands{display:flex;gap:7px;flex-wrap:wrap}

/* profile */
.cl .cl-prof-h{display:flex;align-items:center;gap:10px;margin:10px 0 14px;flex-wrap:wrap}
.cl .cl-prof-h h2{font-weight:650;font-size:22px;letter-spacing:-.02em}
.cl .cl-summary{color:var(--soft);max-width:78ch;margin-bottom:16px;line-height:1.55}
.cl .cl-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:13px;align-items:start}
@media (max-width:980px){.cl .cl-cols{grid-template-columns:1fr}}
.cl .cl-step{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--bd)}
.cl .cl-step:first-child{border-top:none}
.cl .cl-step .cl-pill{flex:none;min-width:74px;text-align:center;margin-top:1px}
.cl .cl-step-t{font-size:14px;color:var(--ink)}
.cl .cl-quote{font-size:13px;color:var(--muted);font-style:italic;border-left:2px solid var(--bd-2);
  padding-left:9px;margin-top:4px;line-height:1.45}
.cl .cl-wait-row{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--bd);font-size:14px;color:var(--soft)}
.cl .cl-wait-row:first-child{border-top:none}
.cl .cl-wait-row .cl-pill{flex:none;margin-top:1px}
.cl .cl-wait-row .cl-meta{margin-left:auto;flex:none}
.cl .cl-extra{font-size:14px;color:var(--soft);padding:4px 0}
.cl .cl-empty{color:var(--faint);font-size:13px;padding:12px 4px}

/* current-client analytics */
.cl .cl-tiles{margin-top:2px}
.cl .cl-tile{display:flex;flex-direction:column;gap:2px}
.cl .cl-tile-v{font-size:22px;letter-spacing:-.03em}
.cl .cl-tile-l{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
/* (.cl-chart/.cl-barcol retired 2026-08-09 — the Campaigns-tab daily bars
   moved to the live header as cwDailyChart, styles under .cw-ch*.) */
.cl .cl-mail{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--bd)}
.cl .cl-mail:first-child{border-top:none}
.cl .cl-mail-dir{font-family:var(--ui);flex:none;width:16px;text-align:center}
.cl .cl-mail-dir.out{color:var(--blue)}
.cl .cl-mail-dir.in{color:var(--ok)}
.cl .cl-mail-b{min-width:0;font-size:14px}
.cl .cl-mail-b b{font-weight:500}

/* ---------- cl6 · client book (band + table + row expand) ---------- */
/* v2 2026-08-07: slim strip replaces the 3-cell 38px-numeral mband */
.cl .cl6-strip{display:flex;align-items:stretch;background:var(--card);border:1px solid var(--bd);
  border-radius:var(--r);margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow);flex-wrap:wrap}
.cl .c6c{padding:10px 18px;min-width:0}
.cl .c6c + .c6c{border-left:1px solid var(--bd)}
.cl .c6l{font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);
  font-weight:650;margin-bottom:3px;white-space:nowrap}
.cl .c6r{display:flex;align-items:baseline;gap:6px;font-size:12.5px;color:var(--muted);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.cl .c6r b{font-size:16px;font-weight:650;color:var(--ink);letter-spacing:-.02em}
.cl .c6r i{font-style:normal;color:var(--bd-2)}
.cl .c6r.c6-mix{gap:7px;flex-wrap:wrap;white-space:normal;align-items:center}
.cl .c6c.grow{flex:1}
.cl .c6-act{display:inline-flex;align-items:center;gap:6px;align-self:center;margin:0 18px 0 auto;
  font-size:12px;font-weight:600;color:var(--tan);background:none;border:0;cursor:pointer;white-space:nowrap}
.cl .c6-act svg{width:13px;height:13px}
@media (max-width:1000px){.cl .c6c + .c6c{border-left:0;border-top:1px solid var(--bd)}
  .cl .c6c{flex:1 1 100%}.cl .c6-act{margin:8px 18px 10px auto}}
.cl .cl6-mut{color:var(--muted)}
.cl .ld5-sub{margin-top:3px;font-size:12px;color:var(--faint)}
/* last-touch stale flag (actdate primitive is global) */
.cl .actdate small.cl6-stale{color:var(--warn);font-weight:600}
/* read-only derived next step */
.cl .cl6-next{display:flex;gap:9px;align-items:baseline;max-width:290px}
.cl .cl6-nt{font-size:12.5px;color:var(--soft);line-height:1.45;min-width:0}
.cl .cl6-npen{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);flex:none}
/* caret + open-row treatment */
.cl .cl6-car{display:inline-block;font-size:9px;color:var(--faint);transition:transform .15s}
.cl tr.cl6-row.open .cl6-car{transform:rotate(180deg)}
.cl tr.cl6-row{cursor:pointer}
.cl tr.cl6-row.open td{background:var(--card-2);border-bottom-color:transparent}
.cl tr.cl6-none td{color:var(--faint);padding:16px 17px}
/* expand-in-place */
.cl tr.cl6-x{cursor:default}
.cl tr.cl6-x td{background:var(--card-2);padding:0;cursor:default}
.cl .cl6-xb{padding:16px 18px 18px}
.cl .cl6-xb>.ws6-risk{margin-bottom:14px}
.cl .cl6-xg{display:grid;grid-template-columns:1.2fr .95fr 1fr;gap:22px;align-items:start}
@media (max-width:900px){.cl .cl6-xg{grid-template-columns:1fr}}
.cl .cl6-xg .cl4-sh{margin:0 0 8px}
.cl .cl6-feed .cl-mail:first-child{border-top:none}
.cl .cl6-facts .ws6-f{padding:7px 0}
.cl .cl6-facts .ws6-f .k{width:66px;color:var(--muted)}
.cl .cl6-steps .pb4-item:hover{background:var(--card-3)}
.cl .cl6-steps .pb4-chk.cl6-ro{cursor:default;pointer-events:none}
.cl .cl6-xf{margin-top:14px}
.cl .cl6-full{font-size:12.5px;color:var(--blue);cursor:pointer}
/* cl4-sh section header (net-new) */
.cl .cl4-sh{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650;margin:11px 0 3px}

/* ---------- Leads tab (90d traffic-source cohort) ---------- */
.ld-funnel{display:flex;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow-x:auto;margin-bottom:12px}
.ld-fs{flex:1;min-width:108px;padding:14px 16px;border-right:1px solid var(--bd)}
.ld-fs:last-child{border-right:0}
.ld-fs-lab{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:600;white-space:nowrap}
.ld-fs-n{font-weight:620;font-size:23px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15;margin-top:2px}
.ld-fs-conv{font-size:12px;color:var(--muted);margin-top:1px;white-space:nowrap}
.ld-conv{font-size:11.5px;color:var(--ok);background:var(--ok-soft);padding:0 6px;border-radius:var(--r-sm)}
.ld-count{margin-left:auto;font-size:12.5px;color:var(--faint)}

/* ---- leads filter toolbar: multiselects (shared .msel) + toggle + search */
.ld-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ld-toolbar #ld-q{flex:1;min-width:190px;max-width:320px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:8px 12px;font-family:inherit;font-size:14px;color:var(--ink)}
.ld-toolbar #ld-q::placeholder{color:var(--faint)}
.ld .ms-pane{min-width:252px}
.ld .ms-opt .ms-lab{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ld .ms-opt .ld-msn{font-size:12px;color:var(--faint);margin-left:8px}
.ld .ms-opt.unmapped .ms-lab{color:var(--warn)}
.ld-tog{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:8px 12px;font-size:13.5px;color:var(--muted);font-weight:500}
.ld-tog:hover{border-color:var(--bd-2)}
.ld-tog .sw{width:22px;height:13px;border-radius:var(--r-sm);background:var(--card-3);position:relative;transition:background .15s}
.ld-tog .sw::after{content:"";position:absolute;top:1.5px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--faint);transition:left .15s,background .15s}
.ld-tog.on{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 40%, transparent);color:var(--ok)}
.ld-tog.on .sw{background:color-mix(in srgb, var(--ok) 35%, transparent)}
.ld-tog.on .sw::after{left:10px;background:var(--ok-blk)}
/* applied filter chips */
.ld-applied{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px}
.ld-applied:empty{display:none}
.ld-ap{display:inline-flex;align-items:center;gap:6px;background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r-sm);padding:3px 5px 3px 10px;font-size:12.5px;color:var(--soft);font-weight:500}
.ld-ap .grp{color:var(--faint);font-weight:400}
.ld-ap button{border:0;background:none;font-size:12px;line-height:1;padding:2px 5px;border-radius:var(--r-sm);opacity:.65;cursor:pointer}
.ld-ap button:hover{opacity:1;background:var(--card-3)}
#ld-clear{border:0;background:none;font-size:12.5px;color:var(--faint);font-weight:500;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer}
#ld-clear:hover{color:var(--soft);background:var(--card)}
/* ---- Last activity cell */
.ld-act{display:flex;align-items:center;gap:9px;white-space:nowrap}
.ld-act-ic{flex:none;width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center}
.ld-act-ic svg{width:13px;height:13px}
.ld-act-ic.out{background:rgba(125,135,163,.12);color:var(--cad-out)}
.ld-act-ic.in{background:color-mix(in srgb, var(--bad) 13%, transparent);color:var(--cad-in)}
.ld-act-ic.meet{background:var(--ok-soft);color:var(--ok)}
.ld-act-ic.call{background:color-mix(in srgb, var(--blue) 12%, transparent);color:var(--blue)}
.ld-act-ic.none{background:var(--card-3);color:var(--faint);font-size:11px}
.ld-act-t{line-height:1.25}
.ld-act-t b{display:block;font-size:13px;font-weight:600;color:var(--soft)}
.ld-act-t small{font-family:var(--ui);font-size:11px;color:var(--faint)}
.ld-act.stale .ld-act-t b,.ld-act.stale .ld-act-t small{color:var(--bad)}
/* ---- Next event cell */
.ld-nx{display:inline-flex;align-items:center;gap:8px;background:var(--ok-soft);border:1px solid color-mix(in srgb, var(--ok) 30%, transparent);border-radius:var(--r-sm);padding:4px 11px 4px 8px;white-space:nowrap}
.ld-nx svg{width:12px;height:12px;color:var(--ok);flex:none}
.ld-nx-t{line-height:1.2}
.ld-nx-t b{display:block;font-size:12.5px;font-weight:600;color:var(--ok)}
.ld-nx-t small{display:block;font-size:11px;color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis}
.ld-nx.today{background:color-mix(in srgb, var(--ok) 16%, transparent);border-color:color-mix(in srgb, var(--ok) 55%, transparent)}
.ld-nx.today b::after{content:"TODAY";font-family:var(--ui);font-size:8.5px;letter-spacing:.08em;color:var(--pill-ink);background:var(--ok-blk);padding:1px 5px;border-radius:4px;margin-left:6px;vertical-align:1.5px}
.ld-nx-ov{display:inline-flex;align-items:center;gap:5px;color:var(--warn);font-size:12.5px;white-space:nowrap}
.ld tbody tr.has-nx>td:first-child{position:relative}
.ld tbody tr.has-nx>td:first-child::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2.5px;background:var(--ok-blk);border-radius:0 2px 2px 0}
/* ---- recommended follow-up card (detail drawer) */
.ld-reco{display:flex;align-items:flex-start;gap:12px;background:var(--card);border:1px solid var(--bd);border-left:3px solid var(--blue);border-radius:var(--r);padding:13px 16px}
.ld-reco.high{border-left-color:var(--bad);background:linear-gradient(90deg,var(--bad-soft),var(--card) 55%)}
.ld-reco.warn{border-left-color:var(--warn);background:linear-gradient(90deg,var(--warn-soft),var(--card) 55%)}
.ld-reco.ok{border-left-color:var(--ok);background:linear-gradient(90deg,var(--ok-soft),var(--card) 55%)}
.ld-reco.low{border-left-color:var(--muted);background:linear-gradient(90deg,var(--neutral-soft),var(--card) 55%)}
.ld-reco-ic{font-size:17px;line-height:1.3}
.ld-reco>div{flex:1;min-width:0}
.ld-reco-k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:600}
.ld-reco-act{font-weight:600;font-size:15px;letter-spacing:-.01em;color:var(--ink);margin:2px 0 3px}
.ld-reco-why{font-size:13px;color:var(--muted);line-height:1.45}
.ld-sub{font-size:12.5px;color:var(--faint);margin-top:1px}
.ld-ch{font-size:14px}
.ld-stage{font-size:12.5px;color:var(--soft);background:var(--card-3);border:1px solid var(--bd);border-radius:var(--r-sm);padding:2px 8px;white-space:nowrap}
.ld-state{font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:2px 8px;border-radius:var(--r-sm);color:var(--pill-ink);white-space:nowrap}
.ld-ghosting{background:var(--bad-blk)}
.ld-waiting_on_us,.ld-meeting_set{background:var(--blue-blk)}
.ld-active,.ld-converted{background:var(--ok-blk)}
.ld-give_up{background:var(--muted)}
.ld-working{background:var(--warn-blk)}
.ld-deal_lost{background:var(--warn-blk)}
.ld-untouched{background:transparent;color:var(--faint);border:1px solid var(--bd)}
.ld-none{color:var(--faint)}
/* inferred deal link (deal_keys match, no HubSpot association yet) — the
   .rp-shell prefix-chip idiom, restyled for the leads table + workspace */
.ld-via{font-style:normal;color:var(--warn);margin-right:4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
.lw-deal-row{display:flex;align-items:stretch;gap:6px}
.lw-deal-row .lw-deal{flex:1;min-width:0}
.lw-detach{flex:none;align-self:center;font-size:11px;color:var(--muted);background:none;border:1px solid var(--bd);border-radius:var(--r-sm);padding:3px 8px;cursor:pointer}
.lw-detach:hover{color:var(--bad);border-color:var(--bad)}
/* dot+text state marker (S0-S3 .st/.vdot primitive) — §4 rejects pills, so the
   State cell + panel sub-header use these instead of .ld-state. More specific
   than the bare .ld-<state> pill rules above, so background is neutralized and
   the color drives the .st dot (currentColor). */
.st.ld-ghosting,.st.ld-deal_lost,.st.ld-no_show_recovery{background:none;color:var(--bad)}
.st.ld-waiting_on_us,.st.ld-meeting_set{background:none;color:var(--blue)}
.st.ld-active,.st.ld-converted{background:none;color:var(--ok)}
.st.ld-working{background:none;color:var(--warn)}
.st.ld-give_up{background:none;color:var(--muted)}
.st.ld-untouched{background:none;border:0;color:var(--faint)}
.ld tr.peeking td{background:var(--card-2)}
.ld-ch.unmapped{color:var(--warn)}
.ld .rp-deal.lost{opacity:.5}
.ld-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px 22px}
.ld-k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:3px}
.ld-v{font-size:14px;color:var(--soft);line-height:1.5}
.ld-raw{font-size:12.5px;word-break:break-all;color:var(--muted)}
.ld-status-sel{background:var(--card);border:1px solid var(--bd-2);color:var(--ink);border-radius:var(--r-sm);padding:6px 10px;font-size:14px;font-family:inherit;font-weight:600;max-width:100%}
.ld-sync{font-size:12px;color:var(--faint);margin-top:4px}
.ld-link{color:var(--blue);font-size:14px}
.ld .rp-deal{font-size:12px;background:var(--chip-bg);color:var(--chip-ink);border-radius:4px;padding:2px 9px;cursor:pointer;white-space:nowrap}
.ld .rp-deal:hover{filter:brightness(1.15)}

/* Leads table must never widen the page: long unbroken strings (channel
   detail URLs, import names, deal names) ellipsize instead of stretching,
   and the wrap scrolls internally as a backstop on narrow windows —
   .dtable-wrap's global overflow:visible is for sticky-header popovers the
   Leads table doesn't use. */
.ld .dtable-wrap{overflow-x:auto}
/* inside the overflow-x scrollport the viewport-anchored top:64px pins the
   header 64px INTO the card (rows painted above it) — anchor to the wrap */
.ld .dtable thead th{top:0}
.ld .dtable td{padding:9px 12px}
.ld .dtable thead th{padding-left:12px;padding-right:12px}
.ld td .d-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ld .ld-dt{color:var(--muted);font-size:12.5px;white-space:nowrap}
.ld td .d-name a.ld-dom{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ld .ld-sub{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ld .ld-ch{display:block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ld .owner-tag{max-width:150px}
.ld .owner-tag>*:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ld .rp-deal{display:inline-block;max-width:170px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
/* Meeting-prep card (2026-08-17) — top of the lead workspace main column,
   only when a meeting is booked. Conflict line uses the amber CONFIRM-chip
   convention: a disagreement the rep must resolve, not a decoration. */
.lw-prep h4{margin:12px 0 4px;font-size:11.5px;text-transform:uppercase;
  letter-spacing:.06em;color:var(--faint)}
.lw-prep .lw-list{margin:0;padding-left:18px;font-size:13px;color:var(--ink)}
.lw-prep .lw-list li{margin:3px 0}
.lw-prep-tier{display:flex;align-items:center;gap:10px;margin:4px 0 2px}
.lw-tier-chip{display:inline-block;padding:3px 10px;border-radius:var(--r-sm);
  background:var(--blue-soft);color:var(--blue);font-weight:650;font-size:12.5px}
.lw-prep-conflict{margin:8px 0;padding:8px 10px;border-radius:var(--r-sm);
  background:color-mix(in srgb, var(--warn) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);
  color:var(--ink);font-size:13px}
.lw-prep-facts{font-size:12.5px;color:var(--muted);margin:4px 0}
.lw-prep-ans{display:grid;grid-template-columns:1fr;gap:4px}
.lw-prep-a{font-size:12.5px;color:var(--ink)}
.lw-prep-a b{display:block;font-size:11px;color:var(--faint);font-weight:600}

/* Score chip — tier-tinted 0-100 (2026-08-16). Disqualified keeps its number
   struck through: the row must show WHY it sank, never vanish. */
.ld-score{display:inline-block;min-width:30px;text-align:center;padding:2px 7px;
  border-radius:var(--r-sm);font-weight:650;font-size:12.5px;font-variant-numeric:tabular-nums;
  background:var(--card-3);color:var(--muted)}
.ld-score.t-hot{background:var(--ok-soft);color:var(--ok-blk)}
.ld-score.t-warm{background:color-mix(in srgb, var(--ok) 12%, transparent);color:var(--ok)}
.ld-score.t-cool{background:var(--card-3);color:var(--ink)}
.ld-score.t-cold{background:var(--card-3);color:var(--faint)}
.ld-score.t-disqualified{background:color-mix(in srgb, var(--bad) 12%, transparent);
  color:var(--bad);text-decoration:line-through}
/* Industry + Size cells (fold group ≤1560px) */
.ld-ind{display:inline-block;max-width:150px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-size:12.5px;color:var(--muted)}
.ld-size{font-size:12.5px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.ld-size.src-hubspot{color:var(--ink)}   /* server truth reads a shade stronger */
/* tel: chip in the Lead sub-line — number only exists on ~10% of rows, so it
   rides here instead of costing a column */
.ld-phone{color:var(--ok);font-size:12px;white-space:nowrap;text-decoration:none}
.ld-phone:hover{text-decoration:underline}
/* Narrow windows: fold Industry (8) + Size (9) + Touches (11) + Deal (13) out
   of the Leads table so it fits without internal scroll; all stay available
   in the lead workspace. NOTE these indices track the TH array in
   ldTableHTML — rebased 2026-08-16 when Latest source was dropped and
   Score/Industry/Size landed (they were 9/11 in the 11-column layout). */
@media (max-width:1560px){
  .ld .dtable td:nth-child(8),.ld .dtable th:nth-child(8),
  .ld .dtable td:nth-child(9),.ld .dtable th:nth-child(9),
  .ld .dtable td:nth-child(11),.ld .dtable th:nth-child(11),
  .ld .dtable td:nth-child(13),.ld .dtable th:nth-child(13){display:none}
  .ld .rp-deal{max-width:130px}
  .ld td .d-name,.ld .ld-sub{max-width:190px}
}
/* ===== Lead workspace (2026-07-26) — the lead record as its OWN screen,
   replacing the expand-in-place drawer. It borrows the deal workspace shell
   wholesale (ws-head/ws5-head, ws-grid, side, ws5-card, ws5-tabs, ws6-ev) so
   the two records read identically; only the ring, the side-card rows and the
   editable-field affordance are new here. ===== */
.lw-ring em{font-size:13px;font-weight:650;display:flex;align-items:baseline}
.lw-ring em small{font-size:9px;font-weight:600;color:var(--faint)}
.lw-sub{color:var(--muted);font-size:13px;margin-top:6px}
/* upcoming meetings: unstyled bare text inside the old drawer — on a full
   screen it sits between the facts card and the tabs, so it needs a shape */
.ld-up{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.ld-up-chip{display:inline-flex;align-items:center;gap:6px;background:var(--card);
  border:1px solid var(--bd);border-left:3px solid var(--ok);border-radius:var(--r-sm);
  padding:7px 12px;font-size:12.5px;font-weight:550;color:var(--ink)}
.ld-facts{padding:14px 16px}
/* Condensed Band: 44px strip (pipeline column keeps its own 38px geometry).
   The band's geometry AND its containing block are declared under
   `.dtable .act` — fine for the pipeline column and for the old drawer, which
   was a <tr> inside the leads table. This screen renders it outside any table,
   so both must be restated: without position:relative on .tl4 every absolutely
   positioned lane/dot/gridline escapes upward onto the card header. The
   .act.ld-band4 specificity is needed to beat the later bare `.act` table
   compaction rule (height:30px). */
.act.ld-band4{position:relative;height:44px;min-width:0;gap:0;padding-right:4px;margin-bottom:4px}
.ld-band4 .tl4{position:relative;width:100%;cursor:pointer}
.ld-band4 .tl4bp{height:44px}
.ld-band4 .tl4-tip{max-width:300px}
/* side-rail cards: journey / company / deals */
.lw-card{padding:0;overflow:visible;margin-bottom:0}  /* hidden clips the band-dot tip */
.lw-card-h{display:flex;align-items:baseline;gap:10px;padding:11px 15px;border-bottom:1px solid var(--bd)}
.lw-card-h h3{margin:0;font-size:13.5px;font-weight:620;flex:1}
.lw-band{padding:12px 14px 2px}
.lw-jrows{padding:9px 15px 13px}
.lw-jr{display:flex;align-items:baseline;gap:10px;padding:3.5px 0;font-size:13px}
.lw-jr .l{color:var(--faint);flex:1;min-width:0}
.lw-jr .v{color:var(--ink);font-weight:550;text-align:right;white-space:nowrap}
.lw-jr .v a{color:var(--blue)}
.lw-jr .fwarn{color:var(--warn)}
.lw-list{margin:0;padding:0 15px 13px 30px;color:var(--muted);font-size:12.5px;line-height:1.5}
.lw-deals{padding:10px 12px 12px;display:flex;flex-direction:column;gap:7px}
.lw-deal{display:grid;gap:2px;text-align:left;width:100%;background:var(--card-2);
  border:1px solid var(--bd);border-radius:var(--r-sm);padding:9px 11px;cursor:pointer;
  font-family:inherit;color:var(--ink);transition:border-color .15s,background .15s}
.lw-deal:hover{border-color:var(--bd-2);background:var(--card)}
.lw-deal b{font-size:13.5px;font-weight:600}
.lw-deal span{font-size:11.5px;color:var(--muted)}
.lw-deal.lost b{color:var(--muted);text-decoration:line-through}
.lw-deal-amt{color:var(--ink)!important;font-weight:600}
/* deal workspace → lead workspace jump on a contact card */
.lw-clink{flex:none;background:transparent;border:1px solid var(--bd);border-radius:999px;
  color:var(--blue);font-family:inherit;font-size:11px;font-weight:600;
  padding:2px 9px;cursor:pointer;transition:border-color .15s,background .15s}
.lw-clink:hover{border-color:var(--blue);background:var(--card-2)}
/* editable field inside the facts grid: reads as a value, behaves as a control */
.ld-ef{position:relative}
.ld-sel{appearance:none;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);
  color:var(--ink);font-family:inherit;font-size:14px;font-weight:560;
  padding:2px 22px 2px 6px;margin-left:-6px;cursor:pointer;max-width:100%;transition:all .15s}
.ld-sel:hover{border-color:var(--bd-2);background:var(--card-2)}
.ld-sel:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.ld-ef .v{position:relative}
.ld-ef .v::after{content:"⌄";position:absolute;right:5px;top:-3px;color:var(--faint);pointer-events:none;font-size:12px}
.ld-sync{display:block;font-size:10.5px;color:var(--faint);margin-top:3px}

.ld-dom{font-size:12.5px;color:var(--blue);font-weight:500;margin-left:7px;white-space:nowrap}
.ld-dom:hover{text-decoration:underline}
.ld td .d-name{max-width:270px}

/* ---------- Audits tab (ClickUp audit board × HubSpot) — Rox reskin (ad6) ---------- */
/* ported from rox-mockup.html ad6-* / hv4-* blocks, mockup vars remapped to the
   live doe token set (--bad→--dead alias exists, --blue/--sky, --ok/--hot).
   The old .au-* generation was fully removed; JS now emits ad6-* markup. */

/* KPI grid — 6-cell (adds Clients on board + Clock breaches) */
.ad6-kpis{display:grid;grid-template-columns:repeat(6,1fr);background:var(--card);border:1px solid var(--bd);border-radius:var(--r);margin-bottom:14px;overflow:hidden}
.ad6-kpi{padding:14px 16px 12px;min-width:0}
.ad6-kpi+.ad6-kpi{border-left:1px solid var(--bd)}
.ad6-kn{font-size:24px;font-weight:620;letter-spacing:-.03em;color:var(--ink);margin-top:7px;line-height:1;font-variant-numeric:tabular-nums}
.ad6-kpi.warn .ad6-kn{color:var(--warn)}
.ad6-kpi.bad .ad6-kn{color:var(--bad)}
.ad6-ks{font-size:10.5px;color:var(--faint);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:960px){.ad6-kpis{grid-template-columns:repeat(3,1fr)}.ad6-kpi:nth-child(-n+3){border-bottom:1px solid var(--bd)}.ad6-kpi:nth-child(3n+1){border-left:0}}

/* conflicts banner — reuses .ws6-risk (24 hits); only these two are net-new */
.ad6-confrow{font-size:12.5px;color:var(--soft);margin-top:5px}
.ad6-confrow b{color:var(--ink);font-weight:600}

/* toolbar: status chips (swatch + count) + strategist ms-pane + search + copy */
.au-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.au-chips{display:flex;gap:6px;flex-wrap:wrap}
.au-fchip{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--bd);border-radius:4px;padding:6px 13px;font-size:13px;color:var(--muted);font-weight:500;cursor:pointer}
.au-fchip:hover{border-color:var(--bd-2);color:var(--soft)}
.au-fchip.on{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 40%, transparent);color:var(--ok);font-weight:600}
.au-fchip .sw{width:7px;height:7px;border-radius:50%;flex:none}
.au-fchip .n{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.au-fchip.on .n{color:inherit}
.au-toolbar #au-q{flex:1;min-width:190px;max-width:320px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:8px 12px;font-family:inherit;font-size:14px;color:var(--ink)}
.au-toolbar #au-q::placeholder{color:var(--faint)}

/* the matrix board — rows are clients, columns channels; scrolls internally
   like the Leads table, never widens the page. Desktop keeps overflow visible
   so the sticky thead tracks the viewport (an overflow container pins it 64px
   into the card — the Total Life clip bug); mobile trades sticky for scroll. */
.au-matrix-wrap{overflow:visible}
@media (max-width:960px){
  .au-matrix-wrap{overflow-x:auto}
  .au-matrix thead th{position:static}
}
.au-matrix th,.au-matrix td{text-align:center}
.au-matrix thead th{padding:11px 10px}
.au-matrix thead th:first-child{padding-left:14px}
.au-matrix tbody td{padding:10px;vertical-align:top}
.au-matrix th:first-child,.au-matrix td:first-child{text-align:left;padding-left:14px}
.au-matrix .st{font-size:11.5px;gap:5px}
.au-row.ad6-on td{background:var(--card-2)}
.au-cl .d-name{white-space:nowrap}
.au-cl-sub{display:block;font-size:10.5px;color:var(--faint);margin-top:2px;white-space:nowrap}

/* matrix cell — hv4 hover card replaces the title= tooltip */
.hv4-cell{position:relative;display:inline-block;max-width:100%}
.hv4-cell::after{content:"";position:absolute;inset:-10px} /* hit area + hover bridge across the gap */
.hv4-tip{position:absolute;z-index:70;top:calc(100% + 8px);left:-8px;width:272px;background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r);padding:12px 14px;box-shadow:var(--pop);display:none;cursor:default;font-size:12.5px;font-weight:400;color:var(--soft);line-height:1.45;white-space:normal;text-align:left}
.hv4-cell:hover .hv4-tip{display:block}
.hv4-tip.hv4-up{top:auto;bottom:calc(100% + 8px)}   /* bottom-third rows open above */
.hv4-tip.hv4-right{left:auto;right:-8px}             /* last columns flip to stay on-screen */
.hv4-top{display:flex;align-items:baseline;gap:8px}
.hv4-top .st{font-size:12.5px}
.hv4-age{margin-left:auto;font-size:11px;color:var(--muted);font-weight:550;white-space:nowrap}
.hv4-lab{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650;margin:10px 0 4px}
.hv4-move{font-size:12.5px;color:var(--soft)}
.hv4-move i{font-style:normal;font-weight:600;color:var(--ink)}
.hv4-foot{margin-top:10px;padding-top:8px;border-top:1px solid var(--bd);font-size:10.5px;color:var(--faint)}
.ad6-acc{font-size:10px;color:var(--faint);margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ad6-acc.hot{color:var(--bad);font-weight:650}
.ad6-flagn{font-size:10px;font-weight:700;color:var(--warn);flex:none}
.ad6-opp{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tan)}
.ad6-clock b{display:block;font-size:13px;font-weight:600;color:var(--soft);font-variant-numeric:tabular-nums}
.ad6-clock.soon b{color:var(--blue)}
.ad6-clock small{display:block;font-size:10.5px;color:var(--faint);margin-top:2px}
.ad6-clock.none b{color:var(--faint);font-weight:400}
.ad6-breach{display:block;font-size:10px;color:var(--bad);font-weight:650;margin-top:3px;white-space:nowrap}

/* expanded dual-track row — Access lane (sales owes) vs Audit lane (delivery owes) */
.au-matrix tr.ad6-xrow{cursor:default}
.au-matrix tr.ad6-xrow>td{background:var(--card-2);padding:14px 16px 16px;cursor:default;text-align:left}
.ad6-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ad6-chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--soft);background:var(--card);border:1px solid var(--bd);border-radius:var(--r-sm);padding:4px 10px;white-space:nowrap;text-decoration:none}
.ad6-chip b{color:var(--ink);font-weight:600}
.ad6-chip.mut{color:var(--faint)}
.ad6-chip .st{font-size:11.5px}
.ad6-ext{cursor:pointer;transition:.12s}
.ad6-ext:hover{border-color:color-mix(in srgb, var(--blue) 45%, transparent);color:var(--blue)}
.ad6-flags{display:flex;flex-direction:column;gap:3px;margin-top:12px}
.ad6-flag{display:flex;gap:9px;align-items:baseline;font-size:12.5px;color:var(--soft)}
.ad6-flag .st{font-size:11px;flex:none;width:26px}
.ad6-coord{margin-top:10px;font-size:13px;color:var(--soft);background:var(--card);border:1px solid var(--bd);border-left:2px solid var(--tan);border-radius:var(--r);padding:10px 13px}
.ad6-coord b{color:var(--ink);font-weight:600}
.ad6-duo{display:grid;grid-template-columns:1fr 1.15fr;gap:12px;margin-top:12px;align-items:start}
@media (max-width:1100px){.ad6-duo{grid-template-columns:1fr}}
.ad6-lane{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:12px 14px}
.ad6-lane .ws5-sh{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:8px}
.ad6-lane .ws6-f{display:flex;align-items:center;gap:11px;padding:6px 0;font-size:13px;min-width:0}
.ad6-lane .ws6-f .k{flex:none;width:76px;font-size:12px;color:var(--muted)}
.ad6-lane .ws6-f .v{font-weight:500;font-size:12.5px;color:var(--ink);display:inline-flex;align-items:baseline;gap:6px;min-width:0}
.ad6-lane .ws6-f .v small{color:var(--faint);font-weight:400}
.ad6-dot{width:7px;height:7px;border-radius:50%;flex:none}
.ad6-dot.ok{background:var(--ok)}.ad6-dot.bad{background:var(--bad)}.ad6-dot.mut{background:var(--faint)}
.ad6-steps{margin:0}
.ad6-steps .pb4-item{cursor:default}
.ad6-steps .pb4-item:hover{background:none}
.ad6-steps .pb4-chk{pointer-events:none}
.ad6-steps .pb4-item.done .pb4-t{text-decoration:none;color:var(--soft)}
.ad6-steps .pb4-t small{color:var(--faint);font-size:10.5px;margin-left:6px}
.ad6-steps .pb4-why{font-size:11.5px;color:var(--faint)}
.ad6-due{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.ad6-due.late{color:var(--bad);font-weight:650}
.ad6-due.mut{color:var(--faint)}


/* ================= Deal Context (health verdict + story + coaching) ====== */
.vd{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
  color:var(--muted);vertical-align:middle;white-space:nowrap}
.vd::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}
.vd.adv{color:var(--ok)}
.vd.stl{color:var(--warn)}
.vd.atr{color:var(--bad)}
.vd.gho{color:var(--muted)}
.d-stage .vd{margin-left:8px}
/* verdict trajectory marker: ↓ downgraded / ↑ recovered since last assessment */
.vd-delta{margin-left:5px;font-size:13px;font-weight:800}
.vd-delta.down{color:var(--bad)}
.vd-delta.up{color:var(--ok)}
.dc-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);
  padding:16px 18px;margin:0 0 14px}
.dc-card.empty{padding:12px 18px}
.dc-top{display:flex;align-items:center;gap:12px}
.dc-top .vd{flex:none;height:24px;font-size:12.5px}
.dc-t{font-weight:700;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.dc-headline{flex:1;font-size:15.5px;font-weight:650;color:var(--ink);line-height:1.35}
.dc-refresh{flex:none;font-size:13px;padding:6px 11px;margin-left:auto}
.dc-refresh[disabled]{opacity:.55;cursor:default}
.dc-none{color:var(--muted);font-size:14px;margin-top:6px}
.dc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px}
@media(max-width:960px){.dc-grid{grid-template-columns:1fr}}
.dc-h{font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.dc-sec{margin-bottom:14px}
.dc-next{font-size:14px;font-weight:600;color:var(--ok);margin:6px 0}
.dc-next.none{color:var(--bad)}
.dc-why2{display:block;color:var(--muted);font-size:13px;margin-top:2px}
/* Right-rail line items card (2026-08-04): moved out of the deal-context
   card to sit under the Priority fold — still visible without a click. */
.side-li{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:12px 15px}
.side-li-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.side-li-t{font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.side-li .ws-litags{margin:0}

/* ---- line-item editor (2026-08-18) --------------------------------------
   Edit sits at the card head; the modal reuses the .fcmodal shell. */
.side-li-edit{margin-left:auto;font-size:11px;font-weight:650;letter-spacing:.04em;
  text-transform:uppercase;color:var(--muted);background:none;border:1px solid var(--bd);
  border-radius:var(--r-sm);padding:3px 9px}
.side-li-edit:hover{color:var(--ink);border-color:var(--bd-2)}
/* ---- Line-item editor (redesign 2026-08-19) --------------------------------
   Owns its whole modal chrome (.lie-h/.lie-b/.lie-f) rather than the shared
   .rm-* header, because this one carries a live-sync chip and a conflict
   banner no other modal has. .fcmodal still supplies the shell: position,
   card, max-height, flex column, open/close transition. */
.fcmodal-li{width:min(94vw,800px)}
.lie-h{display:flex;align-items:center;gap:14px;padding:16px 20px 14px;border-bottom:1px solid var(--bd);flex:none}
.lie-h-t{font-size:16px;font-weight:660;letter-spacing:-.02em;color:var(--ink);line-height:1.2}
.lie-h-s{font-size:11.5px;color:var(--faint);margin-top:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lie-h-s .dot{width:5px;height:5px;border-radius:50%;background:var(--faint);flex:none}
.lie-h-r{margin-left:auto;display:flex;align-items:center;gap:8px}
.lie-sync{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;white-space:nowrap;
  color:var(--ok);background:var(--ok-soft);border:1px solid rgba(26,143,96,.18);border-radius:99px;padding:4px 10px 4px 8px}
.lie-sync .pip{width:6px;height:6px;border-radius:50%;background:var(--ok);flex:none}
.lie-sync.stale{color:var(--warn);background:var(--warn-soft);border-color:rgba(168,115,15,.2)}
.lie-sync.stale .pip{background:var(--warn)}
.lie-sync.load{color:var(--muted);background:var(--card-2);border-color:var(--bd)}
.lie-sync.load .pip{background:var(--faint);animation:liepulse 1.1s ease-in-out infinite}
@keyframes liepulse{0%,100%{opacity:1}50%{opacity:.25}}
.lie-ic{width:29px;height:29px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;
  color:var(--muted);border:1px solid var(--bd);background:none;font-size:13px}
.lie-ic:hover{color:var(--ink);border-color:var(--bd-2);background:var(--card-2)}
/* conflict banner — the stale-set refusal, with the recovery it needs */
.lie-alert{display:flex;align-items:flex-start;gap:10px;margin:14px 20px 0;padding:11px 12px;
  border:1px solid rgba(168,115,15,.28);background:var(--warn-soft);border-radius:var(--r)}
.lie-alert .ico{flex:none;width:18px;height:18px;border-radius:50%;background:var(--warn);color:#fff;
  display:grid;place-items:center;font-size:11px;font-weight:700;margin-top:1px}
.lie-alert-b{flex:1;min-width:0}
.lie-alert-t{font-size:12.5px;font-weight:650;color:#7d5608}
.lie-alert-d{font-size:11.5px;color:#8a6a2a;margin-top:2px;line-height:1.5}
.lie-alert .act{flex:none;font-size:11.5px;font-weight:650;color:#7d5608;background:#fff;white-space:nowrap;
  border:1px solid rgba(168,115,15,.35);border-radius:var(--r-sm);padding:6px 11px}
.lie-alert .act:hover{background:#fffaf0}
/* rows */
.lie-b{overflow-y:auto;flex:1;padding:0 20px}
.lie-cols,.lie-row{display:grid;grid-template-columns:1fr 62px 108px 132px 96px 28px;gap:9px;align-items:center}
.lie-cols{padding:14px 0 6px;position:sticky;top:0;background:var(--card);z-index:2}
.lie-cols span{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--faint)}
.lie-cols .r{text-align:right}
.lie-rows{display:flex;flex-direction:column;gap:5px;padding-bottom:4px}
.lie-row{position:relative;padding-left:9px;border-radius:var(--r-sm)}
.lie-row:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:2px;background:var(--bd-2)}
.lie-row.rec:before{background:var(--tan)}
.lie-row:hover{background:var(--card-2)}
.lie-row input,.lie-row select{font:inherit;font-size:13px;color:var(--ink);background:var(--card);
  border:1px solid var(--bd);border-radius:var(--r-sm);padding:7px 9px;width:100%;min-width:0}
.lie-row input:focus,.lie-row select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.lie-nmwrap{position:relative;display:flex;align-items:center}
.lie-nmwrap input{padding-right:38px}
.lie-badge{position:absolute;right:8px;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--blue);background:var(--blue-soft);border-radius:3px;padding:2px 5px;pointer-events:none}
.lie-badge.cust{color:var(--muted);background:var(--card-3)}
.lie-pwrap{position:relative}
.lie-pwrap:before{content:"$";position:absolute;left:9px;top:50%;transform:translateY(-50%);
  font-size:12.5px;color:var(--faint);pointer-events:none}
.lie-pwrap input{padding-left:19px;text-align:right;font-variant-numeric:tabular-nums}
.lie-q{text-align:right;font-variant-numeric:tabular-nums}
.lie-term.flat{font-size:11px;color:var(--faint);text-align:center}
.lie-amt{text-align:right;font-size:13px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.lie-amt em{font-style:normal;font-size:10.5px;font-weight:600;color:var(--tan);margin-left:1px}
.lie-x{width:26px;height:26px;border:1px solid transparent;border-radius:var(--r-sm);background:none;
  color:var(--faint);font-size:12px;display:grid;place-items:center}
.lie-row:hover .lie-x{border-color:var(--bd)}
.lie-x:hover{color:var(--bad);border-color:var(--bad);background:var(--bad-soft)}
/* one add box: browse, search and "create custom" all live in its list */
.lie-add{margin-top:10px;position:relative}
.lie-search{position:relative}
.lie-search:before{content:"⌕";position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--faint);font-size:14px}
.lie-search input{font:inherit;font-size:13px;color:var(--ink);background:var(--card-2);
  border:1px dashed var(--bd-2);border-radius:var(--r-sm);padding:9px 10px 9px 30px;width:100%}
.lie-search input:focus,.lie-search input.open{outline:none;background:var(--card);border-style:solid;
  border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.lie-pop{margin-top:6px;border:1px solid var(--bd-2);border-radius:var(--r);background:var(--card);
  box-shadow:var(--pop);overflow:hidden;max-height:262px;overflow-y:auto}
.lie-pop-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px;
  background:var(--card-2);border-bottom:1px solid var(--bd);position:sticky;top:0}
.lie-pop-h span{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--faint)}
.lie-hit{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;
  border:0;border-bottom:1px solid var(--bd);padding:9px 12px;font:inherit;font-size:13px;color:var(--soft)}
.lie-hit:last-child{border-bottom:0}
.lie-hit:hover,.lie-hit.sel{background:var(--blue-soft);color:var(--ink)}
.lie-hit-n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}
.lie-hit-n em{font-style:normal;font-size:10.5px;color:var(--faint);margin-left:6px}
.lie-hit-n b{font-weight:700;color:var(--ink)}
.lie-hit-term{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;flex:none;
  color:var(--tan);background:var(--tan-soft);border-radius:3px;padding:2px 6px}
.lie-hit-term.once{color:var(--muted);background:var(--card-3)}
.lie-hit-p{flex:none;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink);width:88px;text-align:right}
.lie-hit kbd{flex:none;font:inherit;font-size:10px;color:var(--faint);border:1px solid var(--bd);
  border-radius:3px;padding:1px 5px;background:var(--card-2);min-width:20px;text-align:center}
.lie-hit.sel kbd{color:var(--blue);border-color:rgba(11,122,138,.3);background:#fff}
/* the custom-item row: last in the list, pinned so 31 products can't bury it */
.lie-mk{position:sticky;bottom:0;background:var(--card-2);border-top:1px solid var(--bd-2);border-bottom:0}
.lie-mk:hover,.lie-mk.sel{background:var(--blue-soft)}
.lie-mk .plus{flex:none;width:19px;height:19px;border-radius:var(--r-sm);display:grid;place-items:center;
  font-size:13px;font-weight:600;color:var(--blue);background:var(--blue-soft);border:1px solid rgba(11,122,138,.2)}
.lie-mk.sel .plus{background:#fff}
.lie-more{padding:7px 12px;font-size:10.5px;color:var(--faint);background:var(--card);
  border-bottom:1px solid var(--bd);text-align:center}
.lie-nores{padding:14px 12px;font-size:12px;color:var(--faint);text-align:center;border-bottom:1px solid var(--bd)}
.lie-empty{font-size:12.5px;color:var(--faint);padding:26px 4px;text-align:center;line-height:1.6}
.lie-empty b{display:block;color:var(--soft);font-size:13.5px;font-weight:640;margin-bottom:3px}
.lie-empty b.i{display:inline;font-size:inherit;margin:0}
/* one-time / recurring / deal amount — a single total hid the difference */
.lie-sum{margin-top:14px;border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;background:var(--card-2)}
.lie-sum-r{display:grid;grid-template-columns:1fr 1fr 1.15fr}
.lie-cell{padding:11px 14px;border-right:1px solid var(--bd)}
.lie-cell:last-child{border-right:0;background:var(--card-3)}
.lie-cell .l{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--faint)}
.lie-cell .v{font-size:17px;font-weight:660;letter-spacing:-.02em;color:var(--ink);
  font-variant-numeric:tabular-nums;margin-top:3px;line-height:1.15}
.lie-cell .v em{font-style:normal;font-size:11.5px;font-weight:600;color:var(--tan)}
.lie-cell .v.nil{color:var(--faint)}
.lie-cell .s{font-size:10.5px;color:var(--faint);margin-top:2px}
.lie-cell.delta .v{color:var(--forest)}
.lie-sum-f{border-top:1px solid var(--bd);padding:7px 14px;font-size:10.5px;color:var(--faint);background:var(--card)}
.lie-sum-f b{color:var(--muted);font-weight:640}
/* footer */
.lie-f{display:flex;align-items:center;gap:10px;padding:13px 20px;border-top:1px solid var(--bd);flex:none;background:var(--card)}
.lie-msg{flex:1;font-size:11.5px;color:var(--faint);display:flex;align-items:center;gap:7px;min-width:0}
.lie-msg.bad{color:var(--bad);font-weight:600}
.lie-msg kbd{font:inherit;font-size:10px;color:var(--muted);border:1px solid var(--bd);
  border-radius:3px;padding:1px 5px;background:var(--card-2)}
.lie-cancel{font-size:12.5px;font-weight:640;color:var(--soft);background:var(--card);
  border:1px solid var(--bd-2);border-radius:var(--r-sm);padding:8px 15px}
.lie-cancel:hover{color:var(--ink);background:var(--card-2)}
.lie-save{font-size:12.5px;font-weight:660;color:#fff;background:var(--forest);border:1px solid var(--forest);
  border-radius:var(--r-sm);padding:8px 17px;display:inline-flex;align-items:center;gap:8px}
.lie-save:hover{background:var(--forest-2);border-color:var(--forest-2)}
.lie-save[disabled]{opacity:.55}
.lie-save .cnt{font-size:10.5px;font-weight:700;background:rgba(255,255,255,.18);border-radius:99px;padding:1px 7px}
.lie-spin{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;animation:liespin .7s linear infinite}
@keyframes liespin{to{transform:rotate(360deg)}}
@media (max-width:720px){
  .lie-cols,.lie-row{grid-template-columns:1fr 52px 92px 108px 82px 26px;gap:6px}
  .lie-sum-r{grid-template-columns:1fr}
  .lie-cell{border-right:0;border-bottom:1px solid var(--bd)}
}

/* ---- one-click proposal draft (Obsidian, 2026-08-12) --------------------
   The proposal Doc's own masthead as a button — navy #10162B + purple
   #574AE2 are the Doc brand (deliberate literals, not app tokens: this
   button IS the artifact it makes). Sheen sweeps on hover; while building,
   the button is the progress surface. Scenario A of the 2026-08-12 mockup
   (~/cro-host/mockups/proposal-button-mockup.html). */
.pbtn-slot{display:flex;gap:8px;align-items:stretch}
.pbtn-slot[hidden]{display:none}
.pbtn-obsidian{position:relative;overflow:hidden;display:flex;align-items:center;gap:11px;flex:1;min-width:0;
  background:linear-gradient(180deg,#161d38,#10162B 55%,#0c1124);
  border:1px solid #2b3357;border-radius:var(--r);padding:11px 14px;cursor:pointer;text-align:left;
  font:inherit;text-decoration:none;
  box-shadow:0 1px 2px rgba(16,22,43,.28),inset 0 1px 0 rgba(255,255,255,.07);
  transition:transform .18s,border-color .18s,box-shadow .18s}
.pbtn-obsidian:hover{transform:translateY(-1px);border-color:#574AE2;
  box-shadow:0 10px 26px -10px rgba(87,74,226,.5),inset 0 1px 0 rgba(255,255,255,.1)}
.pbtn-obsidian::after{content:"";position:absolute;top:-40%;bottom:-40%;left:-10%;width:34%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.2) 45%,rgba(199,194,255,.35) 55%,transparent);
  transform:skewX(-18deg) translateX(-260%)}
.pbtn-obsidian:hover::after{transform:skewX(-18deg) translateX(520%);
  transition:transform .85s cubic-bezier(.22,.61,.36,1)}
.pbtn-obsidian .tile{flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:7px;background:rgba(87,74,226,.24);border:1px solid rgba(130,118,255,.5)}
.pbtn-obsidian .tile svg{width:15px;height:15px;stroke:#c7c2ff}
.pbtn-obsidian .tx{flex:1;min-width:0}
.pbtn-obsidian .t1{display:block;font-size:13px;font-weight:650;color:#eef0ff;letter-spacing:.01em}
.pbtn-obsidian .t2{display:block;font-size:10.5px;color:#8d94c6;margin-top:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pbtn-obsidian .go{flex:none;color:#6f79b8;font-size:15px;transition:transform .18s,color .18s}
.pbtn-obsidian:hover .go{transform:translateX(3px);color:#c7c2ff}
.pbtn-obsidian.building{cursor:default}
.pbtn-obsidian.building:hover{transform:none;border-color:#2b3357;
  box-shadow:0 1px 2px rgba(16,22,43,.28),inset 0 1px 0 rgba(255,255,255,.07)}
.pbtn-obsidian.building:hover::after{transform:skewX(-18deg) translateX(-260%);transition:none}
.pbtn-obsidian.building .tile{background:rgba(87,74,226,.14)}
.pbtn-spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(199,194,255,.25);
  border-top-color:#c7c2ff;animation:pbtnspin 1s linear infinite}
@keyframes pbtnspin{to{transform:rotate(360deg)}}
.pbtn-bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(87,74,226,.25);overflow:hidden}
.pbtn-bar i{position:absolute;top:0;bottom:0;width:38%;border-radius:2px;
  background:linear-gradient(90deg,transparent,#574AE2,#c7c2ff,transparent);
  animation:pbtnslide 1.6s ease-in-out infinite}
@keyframes pbtnslide{0%{left:-40%}100%{left:105%}}
.pbtn-obsidian.ready{border-color:rgba(26,143,96,.55)}
.pbtn-obsidian.ready .tile{background:rgba(26,143,96,.18);border-color:rgba(26,143,96,.5)}
.pbtn-obsidian.ready .tile svg{stroke:#7ce0b4}
.pbtn-obsidian.ready .go{color:#7ce0b4}
.pbtn-obsidian.err{border-color:rgba(194,69,58,.55)}
.pbtn-obsidian.err .tile{background:rgba(194,69,58,.16);border-color:rgba(194,69,58,.5)}
.pbtn-obsidian.err .tile svg{stroke:#f0a49c}
.pbtn-obsidian.err .t2{color:#c88f96}
.pbtn-rebuild{flex:none;width:34px;border:1px solid var(--bd-2);border-radius:var(--r);
  background:var(--card);color:var(--muted);font-size:15px;cursor:pointer;transition:.15s}
.pbtn-rebuild:hover{color:var(--ink);background:var(--card-2)}
/* ---- access instructions (2026-08-18): the proposal button's twin, one
   slot above it. Same obsidian body — these two make the two documents a
   client receives — with the lavender #C9BFF5 accent off the DOE brand
   guide so the pair reads as a set, not a duplicate. The rail's 14px gap
   is pulled in: they are one stack of actions, not two cards. */
.pbtn-slot + .pbtn-slot{margin-top:-6px}
.pbtn-obsidian.access .tile{background:rgba(201,191,245,.18);border-color:rgba(201,191,245,.45)}
.pbtn-obsidian.access .tile svg{stroke:#dcd6ff}
.pbtn-obsidian.access:hover{border-color:#7B5EF8;
  box-shadow:0 10px 26px -10px rgba(123,94,248,.5),inset 0 1px 0 rgba(255,255,255,.1)}
.pbtn-obsidian.access.building .tile{background:rgba(201,191,245,.1)}
.pbtn-obsidian.access.ready .tile{background:rgba(26,143,96,.18);border-color:rgba(26,143,96,.5)}
.pbtn-obsidian.access.err .tile{background:rgba(194,69,58,.16);border-color:rgba(194,69,58,.5)}
/* Pain points & levers (redesign 2026-08-01): prospect-voiced problems with
   verbatim evidence + source·date. The card hides entirely when empty. */
.ws-pains{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);
  padding:14px 18px;margin:0 0 14px}
.ws-pains h3{font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  color:var(--muted);margin:0 0 4px}
.pain{padding:10px 0}
.pain + .pain{border-top:1px solid var(--bd)}
.pain-top{display:flex;align-items:baseline;gap:9px}
.pain-pt{font-size:14px;font-weight:600;line-height:1.45;color:var(--ink)}
.pain-int{flex:none;font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  padding:2px 7px;border-radius:999px;border:1px solid var(--bd-2);color:var(--muted);background:var(--neutral-soft)}
.pain-int.hi{color:var(--bad);background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 35%, transparent)}
.pain-int.mid{color:var(--warn);background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 35%, transparent)}
.pain-q{font-size:13px;color:var(--soft);font-style:italic;line-height:1.5;margin-top:4px}
.pain-src{font-size:11.5px;color:var(--faint);margin-top:3px;letter-spacing:.02em}
/* timeline as rows + month dividers; cards expand in place */
.tl2{padding-top:2px}
.tl-month{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:700;margin:14px 0 6px}
.tl-month:first-child{margin-top:2px}
.tl-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--bd);border-radius:var(--r);
  margin-bottom:6px;background:var(--card);cursor:pointer;transition:border-color .15s}
.tl-row:hover{border-color:var(--bd-2)}
.tl-ric{width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;font-size:12px;background:var(--card-2);color:var(--muted)}
.tl-ric.out{background:color-mix(in srgb, var(--blue-blk) 15%, transparent);color:var(--blue-blk)}
.tl-ric.in{background:color-mix(in srgb, var(--bad) 15%, transparent);color:var(--cad-in)}
.tl-ric.call{background:rgba(125,135,163,.15);color:var(--cad-out)}
.tl-ric.meet{background:color-mix(in srgb, var(--warn) 15%, transparent);color:var(--warn-blk)}
.tl-rt{flex:1;min-width:0;font-size:14px;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-rsub{color:var(--muted);font-weight:400}
.tl-rwhen{font-family:var(--ui);font-size:12px;color:var(--faint);flex:none}
.tl-rowbody{display:none;margin:-7px 0 6px;padding:10px 10px 4px;border:1px solid var(--bd);border-top:0;
  border-radius:0 0 var(--r) var(--r);background:var(--bg-2)}
.tl-row.open{border-color:rgba(125,135,163,.35);border-radius:var(--r) var(--r) 0 0}
.tl-row.open+.tl-rowbody{display:block}
.tl-rowbody .tl-i{margin-bottom:8px}
.tl-rowbody .tl-knob{display:none}
.tl2 .tl-more{margin-top:8px}
/* right-rail folds: priority-why + closing examples as single rows */
.side-fold{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden}
.side-fold-h{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:12px 15px;
  font-size:14px;color:var(--soft);text-align:left;cursor:pointer;font-family:inherit}
.side-fold-h:hover{background:var(--card-2)}
.side-fold-h b{color:var(--ink);font-weight:600}
.side-score{font-family:var(--ui);font-weight:700;color:var(--pill-ink);border-radius:var(--r-sm);padding:3px 10px;font-size:13px;flex:none}
.side-car{margin-left:auto;color:var(--faint);font-size:10px;transition:transform .18s}
.side-fold.open .side-car{transform:rotate(90deg)}
.side-fold-b{display:none;border-top:1px solid var(--bd);padding:10px 15px 13px}
.side-fold.open .side-fold-b{display:block}


/* ===== Pipeline refinements (redesign 2026-07-12) ===== */
/* dropped ball: waiting on us with nothing scheduled */
.nxt-none{color:var(--bad);font-weight:600;font-size:13px}
/* by-stage group headers */
/* by-stage group rows — Rox mockup ft4-grp */
.dtable tbody tr.ft4-grp td{background:var(--card-3);padding:8px 14px;cursor:pointer;border-top:1px solid var(--bd)}
.dtable tbody tr.ft4-grp:hover td{background:var(--card-3)}
.ft4-gh{display:flex;align-items:center;gap:10px}
.ft4-gcar{width:13px;height:13px;flex:none;color:var(--faint);transition:transform .15s;transform:rotate(90deg)}
.dtable tbody tr.ft4-grp:hover .ft4-gcar{color:var(--soft)}
tr.ft4-grp.closed .ft4-gcar{transform:none;color:var(--blue)}
.ft4-gnm{font-size:12.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em;white-space:nowrap}
.ft4-gn{font-size:11px;color:var(--muted);background:var(--card-2);border:1px solid var(--bd);border-radius:4px;padding:1px 8px;font-variant-numeric:tabular-nums}
.ft4-gamt{margin-left:auto;font-size:12px;font-weight:600;color:var(--soft);font-variant-numeric:tabular-nums}
.ft4-gamt small{color:var(--faint);font-weight:400;margin-right:6px;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase}
.dtable tbody tr.ft4-none td,.dtable tbody tr.ft4-none:hover td{background:none;cursor:default;text-align:center;color:var(--faint);font-size:12.5px;padding:26px 14px}
#pipeGroupSeg{align-self:center}
.seg .seg-lab{font-size:11px;color:var(--faint);align-self:center;padding:0 4px 0 8px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}


/* ===== Pipeline table compaction — match approved mock fit (2026-07-12).
   Overrides the earlier sizes by order; table fits without horizontal
   scroll, deal names stay on one line. ===== */
#view-pipeline .dtable{font-size:13.5px}
#view-pipeline .dtable thead th{padding:11px 10px;font-size:10.5px;letter-spacing:.05em;white-space:nowrap}
#view-pipeline .dtable td{padding:var(--row-py) 10px}
#view-pipeline .dtable th.act-col{min-width:180px}
.act{min-width:165px;height:30px;gap:2.5px}
.d-name{font-size:14px;white-space:nowrap}
.d-stage{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}
.wait{font-size:12px}
.wait-out{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.owner-tag{font-size:13px}
.owner-tag .av{width:21px;height:21px;font-size:8.5px}
.actdate{font-size:13px}
.actdate small{font-size:10.5px}
.due{font-size:13px}


/* ===== Pipeline spacing repair (2026-07-12) — the table must never be
   wider than its container: every flexible cell gets a hard cap +
   ellipsis, and the extra width stops pooling in the Deal column. ===== */
#view-pipeline .dtable{table-layout:auto}
#view-pipeline .dtable td{padding:10px 10px}
#view-pipeline .dtable td:nth-child(2){max-width:360px}
.d-name{min-width:0}
.d-name .d-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:0 1 auto}
.d-name .open{flex:none}
.d-stage{max-width:330px}
#view-pipeline .dtable th.act-col{min-width:170px;width:190px}
.act{min-width:160px}
.wait-out{max-width:170px}
.owner-tag{white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}
#view-pipeline .dtable td:nth-child(6){max-width:190px}
#view-pipeline .dtable tr.grp td{max-width:none}


/* ===== Pipeline responsive fit v4 (2026-07-28): indices rebased AGAIN for
   the new Likely-to-close col at position 1 (v3 was the 10-col rebase).
   The waiting-gist is opt-in on very wide screens only; Next Meeting,
   Notes, then Line Items step out as the window narrows (all remain on
   the deal page / peek). Horizontal padding tightened 8→6 so the extra
   column doesn't reopen the inter-column whitespace.
   cols: 1 Likely · 2 Deal · 3 Activity · 4 Owner · 5 Lead Source · 6 Last ·
         7 Next Tap · 8 Line Items · 9 Waiting · 10 Next Meeting · 11 Notes ===== */
.wait-out{display:none}
.d-stage{max-width:250px}
#view-pipeline .dtable td{padding:10px 6px}
#view-pipeline .dtable thead th{padding:11px 6px}
.owner-tag{max-width:112px}
#view-pipeline .dtable td:nth-child(2){max-width:300px}
#view-pipeline .dtable td:nth-child(6){max-width:160px}
/* Likely-to-close column — Mission Control's .mc-prop treatment table-scoped
   (originals live under .mc; alignment flips to the left edge here). */
.dtable td.propcell{width:56px}
.dtable .mc-prop{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;min-width:0}
.dtable .mc-prop b{font-size:14.5px;font-weight:600;color:color-mix(in srgb, var(--blue) 30%, var(--muted))}
.dtable .mc-prop i{font-style:normal;font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
/* tier ramp (Canvas 2026-08-03): the old teal-into-slate mixes collapsed into
   one grey on the light canvas — tiers now wear semantic tokens so the ramp
   reads at a glance: green > teal > amber > grey */
.dtable .mc-prop[data-tier="very_likely"] b{color:var(--ok);font-weight:700}
.dtable .mc-prop[data-tier="likely"] b{color:var(--blue);font-weight:650}
.dtable .mc-prop[data-tier="possible"] b{color:var(--warn)}
.dtable .mc-prop[data-tier="unlikely"] b,.dtable .mc-prop[data-tier=""] b{color:var(--faint);font-weight:500}
/* Line Items column: short channel pills, capped so the col stays narrow */
#view-pipeline .dtable th.li-col{min-width:96px}
.licell{max-width:150px}
.li-tags{display:flex;flex-wrap:wrap;gap:3px;max-width:150px}
.li-tag{display:inline-flex;align-items:center;white-space:nowrap;font-size:10.5px;font-weight:600;
  letter-spacing:.02em;padding:2px 8px;border-radius:4px;border:0;
  background:#eaf0f6;color:#33475b}
.li-tag.more{color:var(--faint);background:transparent}
/* hover popover: FULL line-item list with prices (covers the "+n" overflow).
   pointer-events:none so it never traps the row click; z above the sticky
   header (act-col hover raises to 301). */
.licell{position:relative}
.li-pop{position:absolute;left:0;top:calc(100% + 5px);z-index:320;min-width:200px;max-width:320px;
  background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r-sm);box-shadow:var(--pop);
  padding:8px 11px;display:none;pointer-events:none}
.li-tags:hover .li-pop{display:block}
.li-pr{display:flex;justify-content:space-between;gap:16px;font-size:12px;line-height:1.45;padding:2px 0}
.li-pn{color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li-pa{color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;flex:none}
.li-pa i{font-style:normal;color:var(--faint);font-size:10.5px}
.li-none{color:var(--faint)}
.ws-litags{max-width:none;margin:2px 0 8px}
@media (min-width:1980px){
  .wait-out{display:block;max-width:150px}
}
@media (max-width:1720px){
  #view-pipeline .dtable th:nth-child(10),#view-pipeline .dtable td:nth-child(10){display:none} /* Next Meeting */
  #view-pipeline .dtable th.li-col{min-width:80px}
  .licell,.licell .li-tags{max-width:112px}
  #view-pipeline .dtable th.act-col{min-width:150px;width:158px}
  .act{min-width:140px}
  .d-stage{max-width:210px}
  #view-pipeline .dtable td:nth-child(2){max-width:270px}
}
@media (max-width:1540px){
  #view-pipeline .dtable th:nth-child(11),#view-pipeline .dtable td:nth-child(11){display:none} /* Notes */
  .owner-tag{max-width:92px}
  #view-pipeline .dtable td:nth-child(2){max-width:240px}
}
@media (max-width:1330px){
  #view-pipeline .dtable th:nth-child(8),#view-pipeline .dtable td:nth-child(8){display:none} /* Line Items */
  #view-pipeline .dtable td{padding:10px 5px}
  #view-pipeline .dtable thead th{padding:11px 5px}
  .act{min-width:128px;gap:2px}
  #view-pipeline .dtable th.act-col{min-width:138px;width:144px}
  #view-pipeline .dtable td:nth-child(2){max-width:215px}
}
/* collapsible stage groups */
#view-pipeline .dtable tr.grp td{cursor:pointer;user-select:none}
#view-pipeline .dtable tr.grp .gcar{display:inline-block;margin-right:9px;color:var(--muted);font-size:12px;transition:transform .15s;vertical-align:-1px}
#view-pipeline .dtable tr.grp:hover .gcar{color:var(--ink)}
#view-pipeline .dtable tr.grp.closed .gcar{transform:rotate(-90deg);color:var(--blue)}
#view-pipeline .dtable tr.grp.closed td{background:color-mix(in srgb, var(--blue) 5%, transparent)}

}


/* ===== Today redesign (2026-07-12): week strip · countdown · sparkline ===== */
.wkstrip{display:flex;gap:3px;align-self:flex-end;flex:none}
.wkday{width:46px;border:0;background:transparent;border-radius:var(--r-sm);padding:5px 0 4px;
  text-align:center;cursor:pointer;font-family:inherit;position:relative;transition:background .14s}
.wkday:hover{background:var(--card)}
.wkday small{display:block;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:650}
.wkday b{display:block;font-weight:550;font-size:13px;color:var(--soft);margin:1px 0 0;line-height:1}
.wkday.on{background:var(--card-2)}
.wkday.on::after{content:"";position:absolute;left:9px;right:9px;bottom:0;height:2px;border-radius:2px;background:var(--blue)}
.wkday.on b{color:var(--ink)}
.wkday.dim{opacity:.4}
@media(max-width:1180px){
  /* strip wraps to its own full-width row and scrolls sideways in place */
  .wkstrip{align-self:stretch;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .wkday{flex:none}
}
.tdy .kpi.hero{position:relative}
/* day peek (read-only other-day view) */
.pk-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:10px 12px}
.pk-row{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--soft);padding:7px 6px;border-radius:var(--r-sm)}
.pk-row:hover{background:var(--card-2)}
.pk-t{color:var(--muted);font-size:13px;min-width:60px}
.pk-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.pk-empty{color:var(--faint);font-size:13.5px;padding:10px 6px;font-style:italic}
/* Team notes (F1) — user-authored context, shared across peek/sidebar/timeline.
   Ported from rox-mockup.html §pk-note; all vars exist above. pkNoteCard()
   markup is pinned by tests/js/test_notes.js. */
.pk-note{background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);padding:10px 12px;margin-bottom:6px}
.pk-note .nh{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.pk-note .nav2{width:20px;height:20px;border-radius:50%;background:var(--card-3);border:1px solid var(--bd-2);display:grid;place-items:center;font-size:8.5px;font-weight:700;color:var(--tan);flex:none}
.pk-note .nw{font-size:12px;font-weight:600;color:var(--soft)}
.pk-note .nd{margin-left:auto;font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.pk-note .nt{font-size:12.5px;color:var(--soft);line-height:1.5}
.pk-note.mine{border-color:color-mix(in srgb, var(--blue) 30%, transparent)}
.pk-noteadd{display:flex;gap:8px;margin-top:8px}
.pk-noteadd input{flex:1;background:none;border:1px dashed var(--bd-2);border-radius:var(--r-sm);padding:8px 12px;font-family:inherit;font-size:12.5px;color:var(--soft);outline:0}
.pk-noteadd input::placeholder{color:var(--faint)}
.pk-noteadd input:focus{border-color:var(--blue);border-style:solid}
.pk-notehint{font-size:10px;color:var(--faint);margin-top:6px;letter-spacing:.03em}
.pk-empty-note{color:var(--faint);font-size:12.5px;font-style:italic;padding:2px 0 4px}
.ws-notecard{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:13px 15px;margin-bottom:16px}
.tl-ric.note{background:var(--tan-soft);color:var(--tan)}
.pk-back{font-size:13px;color:var(--blue);font-weight:600;cursor:pointer;flex:none}
.pk-back:hover{text-decoration:underline}


/* ===== Mission Control refinements (redesign 2026-07-12) ===== */
.mc .mc-kpi.mc-click{cursor:pointer;transition:border-color .15s}
.mc .mc-kpi.mc-click:hover{border-color:var(--blue)}
.mc .mc-jmp{position:absolute;right:12px;top:12px;font-size:11px;color:var(--faint)}
.mc .mc-kpi{position:relative}
.mc .mc-whyi{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--bd-2);
  color:var(--muted);font-size:10px;font-weight:700;font-style:italic;cursor:help;flex:none;margin-left:2px}
.mc .mc-whyi:hover{color:var(--ink)}
.mc .mc-b-more{background:var(--card-2);color:var(--muted);border:1px solid var(--bd);cursor:default}
.mc-qab{border:1px solid var(--bd-2);background:var(--card-2);color:var(--soft);font-size:11.5px;font-weight:600;
  border-radius:var(--r-sm);padding:3px 10px;cursor:pointer;font-family:inherit;white-space:nowrap}
.mc-qab:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.mc .mc-lane .mc-rows{display:grid;grid-template-rows:1fr;transition:grid-template-rows .28s cubic-bezier(.2,.7,.2,1)}
.mc .mc-lane.closed .mc-rows{display:grid;grid-template-rows:0fr}
.mc .mc-rows-i{overflow:hidden;min-height:0}
@media (prefers-reduced-motion: reduce){.mc .mc-lane .mc-rows{transition:none}}
.mc .mc-chip.mc-saved{border-style:dashed;color:var(--blue)}
.mc .mc-chip.mc-saved.on{border-style:solid;background:transparent;color:var(--blue);border-color:var(--blue)}
.mc .mc-chip.mc-save{color:var(--blue);border-style:dashed}
.mc .mc-vx{margin-left:7px;color:var(--faint);font-size:10px}
.mc .mc-vx:hover{color:var(--bad)}


/* ===== Replies refinements (redesign 2026-07-12) ===== */
.rp .rp-w1{color:var(--blue)}
.rp .rp-w2{color:var(--warn)}
.rp .rp-w3{color:var(--bad)}
.rp .rp-ck{opacity:.35;transition:opacity .15s}
.rp .rp-line:hover .rp-ck,.rp .rp-ck:checked{opacity:1}
.rp .rp-qa{display:inline-flex;gap:5px;opacity:0;transition:opacity .15s;margin-left:4px}
.rp .rp-line:hover .rp-qa{opacity:1}
.rp .rp-gen b{color:var(--soft);font-family:var(--ui);font-weight:500;cursor:default}


/* ===== Leads refinements (redesign 2026-07-12) ===== */
.ld-bar{height:4px;border-radius:3px;background:var(--card-3);margin-top:8px;overflow:hidden}
.ld-bar i{display:block;height:100%;background:linear-gradient(90deg,color-mix(in srgb, var(--blue) 55%, var(--bg-2)),var(--blue))}
.ld-jd{display:inline-flex;gap:4px;align-items:center}
.ld-jd i{width:7px;height:7px;border-radius:50%;background:var(--card-3);flex:none}
.ld-jd i.f{background:var(--blue)}
.ld-jd i.x{background:var(--bad-blk)}
.ld-jd small{margin-left:7px;font-size:12px;color:var(--muted);white-space:nowrap}
tr.ld-fell td:first-child{box-shadow:inset 3px 0 0 var(--bad-blk)}


/* ===== collapsible rail (redesign 2026-07-12) — icons-only at 72px ===== */
.app{transition:grid-template-columns .28s cubic-bezier(.2,.7,.2,1)}
.app.railc{grid-template-columns:72px 1fr}
.railtg{position:absolute;top:30px;right:-13px;width:26px;height:26px;border-radius:50%;z-index:35;
  background:var(--card-2);border:1px solid var(--bd-2);color:var(--muted);font-size:12px;cursor:pointer;
  display:grid;place-items:center;transition:transform .28s,color .15s,border-color .15s;padding:0 0 1px;font-family:inherit}
.railtg:hover{color:var(--ink);border-color:var(--blue)}
.app.railc .railtg{transform:rotate(180deg)}
.app.railc .rail{padding:20px 10px}
.app.railc .logo{justify-content:center;padding:6px 0 20px;gap:0}
.app.railc .logo>div:last-child{display:none}
.app.railc .nav-i{justify-content:center;padding:11px 0;gap:0}
.app.railc .nav-i svg{width:19px;height:19px}
.app.railc .nav-i .nv{display:none}
.app.railc .nav-i .pill{position:absolute;top:3px;right:5px;margin:0;font-size:9px;padding:0 5px;line-height:1.6;border-radius:var(--r-sm)}
.app.railc .nav-i.on::before{left:-10px}
.app.railc .nav-h{visibility:hidden;height:10px;margin:10px 0 2px;border-top:1px solid var(--bd)}
.app.railc .rail-foot{justify-content:center}
.app.railc .rail-foot .who{display:none}
@media (prefers-reduced-motion: reduce){.app{transition:none}}
@media (max-width:860px){
  .railtg{display:none}                 /* rail is an off-canvas drawer here */
  .app.railc{grid-template-columns:1fr}
  .app.railc .rail{padding:20px 14px}
  .app.railc .logo>div:last-child{display:block}
  .app.railc .nav-i{justify-content:flex-start;padding:9px 10px;gap:11px}
  .app.railc .nav-i .nv{display:inline}
  .app.railc .nav-i .pill{position:static;font-size:12px;padding:1px 8px;margin-left:auto}
  .app.railc .rail-foot .who{display:block}
}


/* sortable headers: affordance visible at rest, not only on hover */
.dtable thead th.sortable::after{content:"↕";opacity:.3;width:auto}
.dtable thead th.sortable:hover{color:var(--blue)}
.dtable thead th.sortable.sorted{color:var(--blue)}


/* waiting-on: honest empty state instead of a bare dash */
.wait.unk{cursor:help}


/* ===== rich activity popover content (2026-07-12) ===== */
.act-tip{width:340px}
.act-tip .th2{display:flex;align-items:baseline;gap:8px;margin-bottom:9px}
.act-tip .tn{font-size:13.5px;font-weight:700;color:var(--ink)}
.act-tip .tw{margin-left:auto;font-family:var(--ui);font-size:11px;color:var(--faint)}
.act-tip .ev2{display:flex;gap:9px;padding:7px 0;border-top:1px solid var(--bd);align-items:flex-start}
.act-tip .ev2:first-of-type{border-top:0}
.act-tip .eic{width:22px;height:22px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;font-size:10.5px;margin-top:1px}
.act-tip .eic.out{background:color-mix(in srgb, var(--blue-blk) 15%, transparent);color:var(--blue-blk)}
.act-tip .eic.in{background:color-mix(in srgb, var(--bad) 15%, transparent);color:var(--cad-in)}
.act-tip .eic.call{background:rgba(125,135,163,.15);color:var(--cad-out)}
.act-tip .eic.meet{background:color-mix(in srgb, var(--warn) 15%, transparent);color:var(--warn-blk)}
.act-tip .eic.decl{background:var(--bad-soft);color:var(--bad)}
.act-tip .eb{flex:1;min-width:0}
.act-tip .el1{font-size:13px;font-weight:600;color:var(--ink);line-height:1.35}
.act-tip .el1 span{color:var(--muted);font-weight:400}
.act-tip .egist{font-size:12.5px;color:var(--soft);line-height:1.5;margin-top:1px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.act-tip .egist.q{font-style:italic;color:var(--muted)}
.act-tip .emeta{font-size:11px;color:var(--faint);margin-top:2px;font-family:var(--ui)}
.act-tip .tfoot{margin-top:9px;padding-top:8px;border-top:1px solid var(--bd);font-size:11.5px;color:var(--faint);display:flex}
.act-tip .tfoot b{color:var(--blue);font-weight:600;margin-left:auto}


/* ===== waiting-on hover: last action + next move (2026-07-12) ===== */
.act-tip .wh{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.act-tip .wpill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600}
.act-tip .wpill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.act-tip .wpill.us{color:var(--blue)}
.act-tip .wpill.them{color:var(--tan)}
.act-tip .sh{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:700;margin:9px 0 5px}
.act-tip .nmove{display:flex;gap:9px;align-items:flex-start;background:var(--ok-soft);
  border:1px solid color-mix(in srgb, var(--ok) 22%, transparent);border-radius:var(--r);padding:9px 11px}
.act-tip .nmove .ar{color:var(--ok);font-weight:700;flex:none}
.act-tip .nmove .nt2{font-size:13px;color:var(--ink);line-height:1.5}
.act-tip .nmove .nt2 i{font-style:normal;color:var(--ok);font-weight:600}
.wait[data-wt]{cursor:help}

/* ---- Next-activity cell (rox reskin) + attendee hover window ---- */
.nextcell{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;
  color:var(--blue);white-space:nowrap;font-variant-numeric:tabular-nums}
.nextcell svg{width:13px;height:13px;flex:none}
.nextcell b{font-weight:600}
.nextcell small{font-weight:400;color:var(--muted)}
.nextcell[data-nx]{cursor:help}
.nxt-none{font-size:12px;color:var(--ok);font-weight:500}
.act-tip .nxh{margin-bottom:3px}
.act-tip .nxt-title{font-size:13.5px;font-weight:650;color:var(--ink);line-height:1.3}
.act-tip .nxt-when{font-family:var(--ui);font-size:11.5px;color:var(--blue);margin-bottom:2px}
.act-tip .nxa{display:flex;align-items:baseline;gap:8px;padding:3px 0}
.act-tip .nxa-rs{width:14px;flex:none;text-align:center;font-size:11px;font-weight:700}
.act-tip .nxa-rs.accepted{color:var(--ok)}
.act-tip .nxa-rs.declined{color:var(--bad)}
.act-tip .nxa-rs.tentative,.act-tip .nxa-rs.needsAction{color:var(--faint)}
.act-tip .nxa-nm{font-size:12.5px;color:var(--soft);line-height:1.35}
.act-tip .nxa-nm.us{color:var(--blue)}
.act-tip .nxa-nm small{color:var(--faint);font-weight:400}

/* Freshness bar — pinned under the sticky 64px header (app.js updateFreshBar).
   Sticky + opaque so content scrolls cleanly beneath it. .stale = data past the
   SLO (loud red); .newdata = server has newer data than this tab (click-to-
   update pill, accent). Verified in-browser both orgs 2026-07-13. */
.freshbar{display:none;position:sticky;top:64px;z-index:20;padding:9px 18px;text-align:center;font-size:13px;font-weight:600;letter-spacing:.01em;border-bottom:1px solid transparent}
.freshbar.show{display:block}
.freshbar.stale{background:color-mix(in srgb, var(--bad) 16%, var(--bg));color:color-mix(in srgb, var(--bad) 55%, var(--ink));border-bottom-color:color-mix(in srgb, var(--bad) 45%, transparent)}
.freshbar.newdata{background:color-mix(in srgb, var(--blue) 12%, var(--bg));color:var(--blue);border-bottom-color:color-mix(in srgb, var(--blue) 40%, transparent);cursor:pointer}
.freshbar.newdata:hover{filter:brightness(1.14)}

/* Action Items — Jessy's shared task board (renderOrg). Notion-style redesign
   2026-08-03, locked in action-items-mockup.html: status-grouped rows with
   chip-select columns (each chip wraps a real <select>, so the freshness
   focus-guard keeps protecting mid-edit fields), quick-add rows, and a
   side-peek task page (fixed right panel) with sub-tasks + comments.
   Peek open = body.al-peekon: content shifts left and the Priority/Org/
   Requested-by columns fold away (they live in the peek). */
.org-wrap{max-width:1080px;
  --alcols:30px minmax(220px,1fr) 158px 112px 100px 132px 92px}
#view-org .page-h,#view-org .org-wrap{transition:margin .28s cubic-bezier(.33,.7,.3,1)}
body.al-peekon #view-org .page-h,body.al-peekon #view-org .org-wrap{margin-right:min(480px,46vw)}
body.al-peekon .org-wrap{--alcols:30px minmax(160px,1fr) 158px 92px}
body.al-peekon .al-fold{display:none}
/* toolbar: count chips + the New button */
.al-bar{display:flex;align-items:center;gap:12px;margin:2px 0 6px;flex-wrap:wrap}
.al-cnts{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.al-cnt{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--faint);
  border:1px solid var(--bd);border-radius:4px;padding:2px 11px;font-variant-numeric:tabular-nums}
.al-cnt b{color:var(--soft);font-weight:700}
.al-cnt i{width:6px;height:6px;border-radius:50%;flex:none}
.al-cnt-doing i{background:var(--blue)}
.al-cnt-wait i{background:var(--warn)}
.al-cnt-done i{background:var(--ok)}
.al-new{margin-left:auto;display:inline-flex;align-items:center;gap:7px;background:var(--blue);
  border:1px solid var(--blue);color:#fff;border-radius:8px;padding:7px 16px;font:inherit;
  font-size:13.5px;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}
.al-new:hover{background:#0a6d7c;border-color:#0a6d7c}
.al-new span{font-size:15px;line-height:1;font-weight:700}
/* column header — one shared grid template so every row lines up */
.al-colhead{display:grid;grid-template-columns:var(--alcols);gap:10px;align-items:center;
  padding:9px 10px 7px;margin:0 -10px;border-bottom:1px solid var(--bd);font-size:10.5px;
  font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.al-r{text-align:right}
/* status groups */
.al-group{margin-top:18px}
.al-gh{display:flex;align-items:center;gap:8px;padding:3px 8px;margin-left:-8px;border-radius:7px;
  cursor:pointer;user-select:none;width:fit-content}
.al-gh:hover{background:var(--card-3)}
.al-gcar{color:var(--faint);font-size:10px;display:inline-block;transition:transform .15s;transform:rotate(90deg)}
.al-gclosed .al-gcar{transform:none}
.al-gclosed .al-grows{display:none}
.al-gst{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:650}
.al-gst::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.al-gs-doing{color:var(--blue)}
.al-gs-to-do{color:var(--soft)}
.al-gs-waiting-on-zaki{color:var(--warn)}
.al-gn{font-size:11.5px;font-weight:650;color:var(--faint)}
.al-grows{margin-top:2px}
/* rows */
.al-item{display:grid;grid-template-columns:var(--alcols);gap:10px;align-items:center;
  padding:6px 10px;margin:0 -10px;border-radius:8px;cursor:pointer;transition:background .1s}
.al-item:hover{background:var(--card-2)}
.al-item.al-sel{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--blue),var(--shadow)}
/* check circle — completes the task with a pop + strike + glide to the rail */
.al-ck{width:19px;height:19px;border-radius:50%;border:1.5px solid var(--bd-2);background:var(--card);
  padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none;
  justify-self:start;transition:border-color .15s,background .2s}
.al-ck:hover{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}
.al-ck svg{width:11px;height:11px;overflow:visible}
.al-ck path{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:16;stroke-dashoffset:16}
.al-done .al-ck,.al-checking .al-ck{background:var(--blue);border-color:var(--blue)}
.al-checking .al-ck{animation:al-pop .35s cubic-bezier(.2,1.6,.4,1)}
.al-done .al-ck path,.al-checking .al-ck path{stroke-dashoffset:0;transition:stroke-dashoffset .22s ease .05s}
@keyframes al-pop{0%{transform:scale(.8)}55%{transform:scale(1.22)}100%{transform:scale(1)}}
/* name cell: text + tiny sub/comment/notes marks + hover OPEN hint */
.al-nm{min-width:0;display:flex;align-items:center;gap:7px;font-size:14px;font-weight:550;
  white-space:nowrap;overflow:hidden}
.al-nm i{font-style:normal;overflow:hidden;text-overflow:ellipsis;position:relative}
.al-nm i::after{content:"";position:absolute;left:0;top:52%;height:1.5px;width:0;background:var(--muted);
  transition:width .35s ease}
.al-checking .al-nm i::after,.al-done .al-nm i::after{width:100%}
.al-checking .al-nm,.al-done .al-nm{color:var(--muted)}
.al-mk{flex:none;font-size:10.5px;color:var(--faint);background:var(--card-3);border-radius:5px;
  padding:1px 6px;font-variant-numeric:tabular-nums}
.al-openhint{display:none;flex:none;font-size:10px;font-weight:650;color:var(--muted);
  background:var(--card);border:1px solid var(--bd);border-radius:6px;padding:1px 7px;box-shadow:var(--shadow)}
.al-item:hover .al-openhint{display:inline-flex}
/* chip-selects: neutral field + state dot, the whole chip is the dropdown */
.al-chip{display:inline-flex;align-items:center;max-width:100%;background:var(--chip-bg);
  border-radius:999px;padding:2px 6px 2px 10px;position:relative;cursor:pointer}
.al-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dot,var(--faint));
  flex:none;margin-right:6px}
.al-chip:hover{background:var(--card-3)}
.al-chip select{appearance:none;-webkit-appearance:none;background:transparent;border:none;outline:none;
  font:inherit;font-size:12px;font-weight:600;color:var(--chip-ink);padding:0 15px 0 0;max-width:100%;
  text-overflow:ellipsis;cursor:pointer}
.al-chip::after{content:"";position:absolute;right:8px;top:50%;width:6px;height:6px;margin-top:-4.5px;
  border-right:1.5px solid var(--faint);border-bottom:1.5px solid var(--faint);transform:rotate(45deg);
  pointer-events:none}
.al-cempty select{color:var(--faint);font-weight:500}
.al-cempty::before{width:0;margin:0}
.al-cs-doing{--dot:var(--blue)}
.al-cs-to-do{--dot:#68798c}
.al-cs-waiting-on-zaki{--dot:var(--warn)}
.al-cp-p0,.al-cp-high{--dot:var(--bad)}
.al-cp-medium{--dot:var(--warn)}
.al-cp-low{--dot:var(--faint)}
/* org chip renders as the brand tag, not a dot chip */
.al-corg{padding-left:9px}
.al-corg::before{display:none}
.al-corg select{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.al-co-success{background:#e2eff1}
.al-co-success select{color:#0b5b67}
.al-co-doe{background:#ebe9f8}
.al-co-doe select{color:#544aae}
.al-co-both{background:linear-gradient(100deg,#e2eff1 48%,#ebe9f8 52%)}
/* requested-by: avatar + bare select */
.al-reqw{display:inline-flex;align-items:center;gap:7px;max-width:100%;border-radius:7px;padding:2px 4px}
.al-reqw:hover{background:var(--card-3)}
.al-reqw select{appearance:none;-webkit-appearance:none;background:none;border:none;outline:none;
  font:inherit;font-size:12.5px;font-weight:550;color:var(--soft);padding:0 4px 0 0;max-width:100%;cursor:pointer}
.al-av{width:21px;height:21px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-size:9px;font-weight:700;color:var(--pill-ink)}
.al-av-none{background:var(--card-3);color:var(--faint)}
/* due: pretty relative text, invisible date input on top opens the picker */
.al-duew{display:flex;justify-content:flex-end;min-width:0}
.al-duec{position:relative;display:inline-flex}
.al-due-t{font-size:12.5px;font-weight:550;color:var(--muted);font-variant-numeric:tabular-nums;
  border-radius:6px;padding:2px 7px;white-space:nowrap}
.al-duec:hover .al-due-t{background:var(--card-3)}
.al-due-t.al-d-today{color:var(--blue);font-weight:650}
.al-due-t.al-d-soon{color:var(--warn);font-weight:600}
.al-due-t.al-d-late{color:var(--bad);font-weight:650}
.al-due-t.al-d-none{color:var(--faint);font-weight:450}
.al-duec input[type=date]{position:absolute;inset:0;opacity:0;cursor:pointer;border:none;margin:0;padding:0}
.al-duec input::-webkit-calendar-picker-indicator{position:absolute;inset:0;opacity:0;cursor:pointer}
/* quick-add: ghost "+ New task" row that becomes a name-only input */
.al-addrow{padding:6px 10px;margin:0 -10px;border-radius:8px;color:var(--faint);font-size:13.5px;cursor:pointer}
.al-addrow:hover{background:var(--card-2);color:var(--muted)}
.al-qa{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:6px 10px;margin:0 -10px;border-radius:8px;background:var(--card);
  box-shadow:inset 0 0 0 1.5px var(--blue),var(--shadow)}
.al-qack{width:19px;height:19px;border-radius:50%;border:1.5px dashed var(--bd-2)}
.al-qa-in{border:none;background:none;outline:none;font:inherit;font-size:14px;font-weight:550;
  width:100%;padding:0;color:var(--ink)}
.al-qa-in::placeholder{color:var(--faint)}
.al-qa-hint{font-size:11px;color:var(--faint);white-space:nowrap}
.al-qa-hint b{font-weight:600;background:var(--card-3);border-radius:4px;padding:1px 5px;color:var(--muted)}
/* Done rail — completed tasks live below the working list, one click away */
.al-donewrap{margin-top:28px;border-top:1px solid var(--bd);padding-top:8px}
.al-dhead{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:0 -10px;border-radius:8px;
  cursor:pointer;user-select:none}
.al-dhead:hover{background:var(--card-2)}
.al-dcar{color:var(--faint);font-size:11px;transition:transform .18s;display:inline-block}
.al-dhead.on .al-dcar{transform:rotate(90deg)}
.al-dhead:hover .al-dlab{color:var(--soft)}
.al-dlab{color:var(--ok);font-size:12.5px;font-weight:650;display:inline-flex;align-items:center;gap:7px}
.al-dlab::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.al-dn{font-size:11.5px;font-weight:650;color:var(--faint);font-variant-numeric:tabular-nums}
.al-clear{margin-left:auto;background:none;border:1px solid var(--bd);border-radius:7px;color:var(--muted);
  font:inherit;font-size:11.5px;font-weight:550;padding:3px 10px;cursor:pointer}
.al-clear:hover{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.al-item.al-done{grid-template-columns:30px minmax(0,1fr) auto auto}
.al-done .al-nm i{color:var(--faint)}
.al-dmeta{display:inline-flex;gap:4px;opacity:.6}
.al-when{font-size:11.5px;color:var(--faint);white-space:nowrap}
/* completing / restoring motion */
.al-checking{background:var(--blue-soft)}
.al-leaving{opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease}
.al-entering{animation:al-enter .34s ease}
@keyframes al-enter{0%{opacity:0;transform:translateY(-8px)}100%{opacity:1;transform:translateY(0)}}
/* ---- side peek: the task page ---- */
.al-peek{position:fixed;top:0;right:0;bottom:0;width:min(480px,94vw);z-index:240;
  background:var(--card);border-left:1px solid var(--bd);
  box-shadow:-18px 0 44px -24px rgba(23,37,53,.2);
  transform:translateX(103%);transition:transform .28s cubic-bezier(.33,.7,.3,1);
  display:flex;flex-direction:column}
.al-peek.on{transform:none}
.al-pktop{flex:none;display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--bd)}
.al-pkbtn{width:29px;height:29px;border-radius:7px;border:none;background:none;color:var(--muted);
  font-size:15px;line-height:1;cursor:pointer}
.al-pkbtn:hover{background:var(--card-3);color:var(--ink)}
.al-pkwhen{font-size:11.5px;color:var(--faint);margin-left:auto}
.al-pkdel{border:1px solid var(--bd);background:none;border-radius:7px;color:var(--muted);font:inherit;
  font-size:11.5px;font-weight:550;padding:3px 10px;cursor:pointer}
.al-pkdel:hover{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.al-pkbody{flex:1;min-height:0;overflow-y:auto;padding:24px 30px 40px}
.al-pktitle{width:100%;border:none;outline:none;background:none;resize:none;font-family:var(--display);
  font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.25;color:var(--ink);padding:0;margin:0 0 14px}
.al-pktitle::placeholder{color:var(--faint)}
.al-props{display:flex;flex-direction:column;gap:2px}
.al-prop{display:flex;align-items:center;min-height:32px;border-radius:7px;padding:2px 6px;margin:0 -6px}
.al-prop:hover{background:var(--card-2)}
.al-pk{flex:none;width:118px;font-size:12.5px;font-weight:550;color:var(--muted)}
.al-pv{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:13px}
.al-pv .al-duew{justify-content:flex-start}
.al-prel{font-size:11.5px;color:var(--faint)}
.al-prel.al-d-late{color:var(--bad)}
.al-prel.al-d-today{color:var(--blue)}
.al-prel.al-d-soon{color:var(--warn)}
.al-pkdiv{height:1px;background:var(--bd);margin:16px 0}
.al-pkh{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:650;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.al-pkn{margin-left:auto;font-weight:550;color:var(--faint);letter-spacing:0;text-transform:none}
.al-pknote{width:100%;border:1px solid var(--bd);background:var(--card);border-radius:7px;
  padding:7px 10px;font:inherit;font-size:13px;color:var(--ink);margin-bottom:14px}
.al-pknote:focus{border-color:var(--blue);outline:none}
.al-pkdetail{width:100%;min-height:90px;resize:vertical;border:1px solid var(--bd);background:var(--card);
  border-radius:7px;padding:8px 10px;font:inherit;font-size:13.5px;line-height:1.55;color:var(--soft)}
.al-pkdetail:focus{border-color:var(--blue);outline:none}
/* sub-tasks (peek) */
.al-subbar{height:4px;border-radius:99px;background:var(--card-3);margin:2px 0 8px;overflow:hidden}
.al-subbar i{display:block;height:100%;border-radius:99px;background:var(--blue);transition:width .25s}
.al-sub{display:flex;align-items:center;gap:10px;padding:4px 8px;margin:0 -8px;border-radius:7px}
.al-sub:hover{background:var(--card-2)}
.al-subck{width:16px;height:16px;flex:none;border-radius:5px;border:1.5px solid var(--bd-2);
  background:var(--card);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.al-subck svg{width:9px;height:9px}
.al-subck path{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.al-sub.on .al-subck{background:var(--blue);border-color:var(--blue)}
.al-sub.on .al-subck path{opacity:1}
.al-subt{flex:1;min-width:0;font-size:13.5px}
.al-sub.on .al-subt{color:var(--faint);text-decoration:line-through}
.al-subdel{border:none;background:none;color:var(--faint);cursor:pointer;font-size:12px;opacity:0;padding:2px 5px}
.al-sub:hover .al-subdel{opacity:1}
.al-subdel:hover{color:var(--bad)}
.al-subin{width:100%;border:none;background:none;outline:none;font:inherit;font-size:13px;
  color:var(--soft);padding:6px 0;border-bottom:1px dashed var(--bd)}
.al-subin::placeholder{color:var(--faint)}
.al-subin:focus{border-bottom-color:var(--blue)}
/* comments (peek) */
.al-cmt{display:flex;gap:10px;padding:8px 0}
.al-cmt .al-av{width:25px;height:25px;font-size:10px;margin-top:1px}
.al-cmtb{flex:1;min-width:0}
.al-cmth{display:flex;align-items:baseline;gap:8px}
.al-cmth b{font-size:12.5px;font-weight:650}
.al-cmth span{font-size:11px;color:var(--faint)}
.al-cmtt{font-size:13.5px;color:var(--soft);line-height:1.5;white-space:pre-wrap}
.al-cmtin{display:flex;gap:10px;align-items:center;padding-top:6px}
.al-cmtin .al-av{width:25px;height:25px;font-size:10px}
.al-cmtin input{flex:1;border:1px solid var(--bd);border-radius:9px;background:var(--card);
  padding:7px 12px;font:inherit;font-size:13px;color:var(--ink);outline:none}
.al-cmtin input:focus{border-color:var(--blue)}
.al-pkmeta{margin-top:22px;padding-top:12px;border-top:1px solid var(--bd);display:flex;gap:18px;
  font-size:11px;color:var(--faint)}
/* undo toast */
.al-undo{position:fixed;left:50%;bottom:26px;transform:translate(-50%,80px);z-index:260;
  display:flex;align-items:center;gap:14px;background:var(--card-2);border:1px solid var(--bd-2);
  border-radius:var(--r);padding:10px 12px 10px 16px;font-size:13.5px;color:var(--soft);
  box-shadow:var(--pop);transition:transform .3s cubic-bezier(.2,1.2,.4,1),opacity .3s;
  opacity:0;pointer-events:none}
.al-undo.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.al-undo b{color:var(--ink);font-weight:600}
.al-undo button{background:var(--card-3);border:1px solid var(--bd-2);color:var(--blue);font:inherit;
  font-size:12.5px;font-weight:700;border-radius:var(--r-sm);padding:4px 12px;cursor:pointer}
.al-undo button:hover{border-color:var(--blue)}
.al-empty{padding:34px;text-align:center;color:var(--faint)}
@media (max-width:900px){
  .al-fold{display:none}
  .org-wrap{--alcols:30px minmax(140px,1fr) 140px 84px}
  body.al-peekon #view-org .page-h,body.al-peekon #view-org .org-wrap{margin-right:0}
  .al-peek{width:100vw}
}
@media (prefers-reduced-motion:reduce){
  .al-ck,.al-ck path,.al-nm i::after,.al-gcar,.al-dcar,.al-leaving,.al-peek,
  #view-org .page-h,#view-org .org-wrap{transition:none!important}
  .al-checking .al-ck,.al-entering{animation:none!important}
}

/* ===== Pipeline redesign (2026-07-18): cadence activity · soft-dot pills · sans amount ===== */
/* Cadence timeline — one dot per touch, coloured by type (replaces heatmap cells) */
/* Band timeline (tl4K, §4) — quiet track, engaged-span fill, 6.5px dots,
   12px ringed brass meetings, dashed silence tail, recency halo, per-dot
   hover tips on ≥13px invisible hit targets, edge-aware (<15% l / >85% r) */
.dtable .act{position:relative;display:flex;align-items:center;min-width:190px;height:30px;gap:0;padding-right:4px}
.dtable .act .tl4{position:relative;width:100%;height:24px;cursor:pointer}
.tl4-track{position:absolute;left:0;right:0;top:9px;height:6px;border-radius:3px;background:rgba(45,62,80,.05);box-shadow:inset 0 0 0 1px rgba(45,62,80,.05)}
.tl4-span{position:absolute;top:9px;height:6px;border-radius:3px;background:linear-gradient(90deg,rgba(125,135,163,.10),rgba(125,135,163,.30))}
.tl4-tail{position:absolute;right:0;top:12px;height:0;border-top:1px dashed var(--bd-2)}
.tl4-hit{position:absolute;top:0;bottom:0;width:13px;transform:translateX(-50%)}
.tl4-hit:hover{z-index:6}
.tl4-hit:hover::before{content:"";position:absolute;inset:1px 2px;border-radius:var(--r-sm);background:var(--neutral-soft)}
.tl4-dot{position:absolute;left:50%;top:12px;transform:translate(-50%,-50%);width:6.5px;height:6.5px;border-radius:50%}
.tl4-dot.out{background:var(--cad-out)}
.tl4-dot.in{background:var(--cad-in)}
.tl4-dot.meet{width:12px;height:12px;background:var(--card);border:2px solid var(--cad-meet)}
.tl4-dot.decl{width:12px;height:12px;background:var(--card);border:2px solid var(--bad)}
.tl4-hit.last .tl4-dot{box-shadow:0 0 0 2.5px var(--bd)}
.tl4-hit:hover .tl4-dot{filter:brightness(1.3)}
.tl4-tip{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);width:max-content;max-width:224px;background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r);padding:9px 12px 8px;box-shadow:var(--pop);display:none;pointer-events:none;z-index:70;text-align:left;white-space:normal}
.tl4-tip.l{left:0;transform:none}
.tl4-tip.r{left:auto;right:0;transform:none}
.tl4-hit:hover .tl4-tip{display:block}
.tl4-tr{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.tl4-dotc{width:6px;height:6px;border-radius:50%;flex:none}
.tl4-tt{font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:650;color:var(--soft)}
.tl4-td{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:14px}
.tl4-tx{display:block;font-size:12px;line-height:1.4;color:var(--soft);min-width:120px}
.tl4-cx{display:block;font-size:10.5px;color:var(--faint);margin-top:5px;padding-top:5px;border-top:1px solid var(--bd)}
/* legend swatches are circles, matching the strip dots */
.actlegend .lg-sw{border-radius:50%}
/* verdict + waiting render via the .vd/.wait dot+text primitives (§4) */
/* Next activity — date + accent countdown pill */
.actdate.next{color:var(--ink);font-weight:600}
.actdate.next small{display:inline-block;margin-top:4px;color:var(--blue);background:var(--blue-soft);
  border:1px solid color-mix(in srgb, var(--blue) 26%, transparent);border-radius:var(--r-sm);padding:3px 7px;font-size:11px;font-weight:600;font-family:var(--ui)}
/* Amount — same UI font as Last activity (was mono) */
.dtable td.num.amt-cell{font-family:var(--ui);font-weight:600;font-size:15px;color:var(--ink)}

/* ===== Commitments card (workspace, 2026-07-18) =====
   Who-owes-what under the Deal context card. Interaction motion (check circle,
   strike, Done rail, undo toast) cloned wholesale from the Action-list .al-*
   block above, on the same design tokens (var(--card), var(--bd), var(--ok),
   the shared tokens) so the Rox skin styles it directly. */
.cm-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px;
  margin-bottom:16px}
.cm-top{display:flex;align-items:center;gap:10px}
.cm-t{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cm-asof{margin-left:auto;font-size:11px;color:var(--faint)}
.cm-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:12px 0 2px}
.cm-h .n{color:var(--ink);margin-left:4px}
.cm-item{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--bd)}
.cm-sec .cm-item:first-of-type{border-top:none}
.cm-txt{flex:1;min-width:0;position:relative}
.cm-meta{display:flex;align-items:center;gap:6px;flex:none;max-width:46%}
.cm-chip{font-size:10.5px;font-weight:700;letter-spacing:.03em;border-radius:var(--r-sm);padding:2px 7px;
  white-space:nowrap;border:1px solid var(--bd);color:var(--faint)}
.cm-chip.due{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 30%, transparent)}
.cm-chip.od{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 32%, transparent);background:color-mix(in srgb, var(--bad) 12%, transparent)}
.cm-chip.unk{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 30%, transparent);cursor:help}
.cm-chip.ev{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 32%, transparent);cursor:help}
.cm-chip.man{color:var(--blue);font-weight:600;cursor:help}
.cm-chip.cm-today{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 35%, transparent);background:color-mix(in srgb, var(--warn) 12%, transparent)}
.cm-chip.cm-soon{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 30%, transparent)}
/* shared due-tier chip (urgency plan 2026-07-18) — same soft-dot recipe as
   .cm-chip; rides Day Plan meta rows and the Pipeline Next column */
.due-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.03em;border-radius:4px;padding:1.5px 7px;
  white-space:nowrap;border:0;background:var(--chip-bg);color:var(--chip-ink);margin-left:6px}
.due-chip::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--faint);flex:none}
.due-chip.overdue{color:var(--bad)}
.due-chip.overdue::before{background:var(--bad)}
.due-chip.today{color:#8a6206}
.due-chip.today::before{background:var(--warn)}
.due-chip.tomorrow::before{background:var(--blue)}
.due-chip.week{color:var(--chip-ink)}
.mc-due.mc-late{color:var(--bad);font-weight:600}
.mc-due.mc-today{color:var(--warn)}
/* overdue follow-ups exist -> one quiet dot on the Today nav pill */
#nav-today{position:relative}
#nav-today.nav-due::after{content:"";position:absolute;top:-2px;right:-3px;width:6px;height:6px;
  border-radius:50%;background:var(--bad)}
.cm-ev{font-size:11px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:100%}
.cm-empty{color:var(--faint);font-size:12px;font-style:italic;padding:6px 0}
/* check circle — same pop + strike + glide as the Action list */
.cm-ckc{flex:none;display:flex;justify-content:center}
.cm-ck{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--bd-2);background:transparent;
  padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none;
  transition:border-color .15s,background .2s}
.cm-ck:hover{border-color:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}
.cm-ck svg{width:12px;height:12px;overflow:visible}
.cm-ck path{fill:none;stroke:var(--pill-ink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:16;stroke-dashoffset:16}
.cm-done .cm-ck,.cm-checking .cm-ck{background:var(--ok-blk);border-color:var(--ok-blk)}
.cm-checking .cm-ck{animation:al-pop .35s cubic-bezier(.2,1.6,.4,1)}
.cm-done .cm-ck path,.cm-checking .cm-ck path{stroke-dashoffset:0;transition:stroke-dashoffset .22s ease .05s}
.cm-txt::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:var(--faint);
  transform:scaleX(0);transform-origin:left center;transition:transform .3s ease .1s;pointer-events:none}
.cm-checking .cm-txt::after{transform:scaleX(1)}
.cm-done .cm-txt{color:var(--faint);text-decoration:line-through}
.cm-checking{background:var(--ok-soft)}
.cm-leaving{opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}
.cm-entering{animation:al-enter .34s ease}
/* Done rail */
.cm-dhead{display:flex;align-items:center;gap:10px;padding:9px 2px;margin-top:10px;cursor:pointer;
  user-select:none;border-top:1px solid var(--bd)}
.cm-dcar{color:var(--faint);font-size:11px;transition:transform .18s;display:inline-block}
.cm-dhead.on .cm-dcar{transform:rotate(90deg)}
.cm-dhead:hover .cm-dlab{color:var(--soft)}
.cm-dlab{color:var(--faint);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  transition:color .12s}
.cm-dn{font-size:11px;font-weight:700;color:var(--pill-ink);background:var(--ok-blk);border-radius:4px;
  padding:1px 8px;font-variant-numeric:tabular-nums}
.cm-donelist .cm-item{opacity:.72}
.cm-donelist .cm-item .cm-ckc{opacity:1}
/* manual remove — visible on row hover only, like the Action list delete */
.cm-del{background:none;border:none;color:var(--faint);cursor:pointer;font-size:13px;padding:3px 6px;
  border-radius:var(--r-sm);line-height:1;opacity:0;transition:opacity .15s,color .12s,background .12s}
.cm-item:hover .cm-del{opacity:1}
.cm-del:hover{color:var(--warn);background:var(--card-3)}
/* inline manual add */
.cm-add-open{margin-top:10px;background:none;border:1px dashed var(--bd-2);border-radius:var(--r-sm);
  color:var(--faint);font:inherit;font-size:12.5px;padding:6px 12px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px}
.cm-add-open span{color:var(--ok);font-weight:700}
.cm-add-open:hover{border-color:var(--ok);color:var(--soft)}
.cm-addform{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.cm-add-in{flex:1;min-width:180px;background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);
  color:var(--ink);padding:7px 10px;font:inherit;font-size:13px}
.cm-add-in:focus{border-color:var(--ok);outline:none}
.cm-own-t{display:inline-flex;border:1px solid var(--bd);border-radius:var(--r-sm);overflow:hidden;flex:none}
.cm-own{background:transparent;border:none;color:var(--faint);font:inherit;font-size:12px;font-weight:700;
  padding:6px 10px;cursor:pointer}
.cm-own.on{background:var(--ok-blk);color:var(--pill-ink)}
.cm-add-due{background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);color:var(--soft);
  padding:6px 8px;font:inherit;font-size:12.5px}
.cm-add-save{background:var(--card-3);border:1px solid var(--bd-2);color:var(--ok);font:inherit;
  font-size:12.5px;font-weight:700;border-radius:var(--r-sm);padding:6px 14px;cursor:pointer}
.cm-add-save:hover{border-color:var(--ok)}
.cm-add-cancel{background:none;border:none;color:var(--faint);font-size:14px;cursor:pointer;
  padding:5px 7px;border-radius:var(--r-sm);line-height:1}
.cm-add-cancel:hover{color:var(--warn);background:var(--card-3)}
/* undo toast — same fixed pill as the Action list's */
.cm-undo{position:fixed;left:50%;bottom:26px;transform:translate(-50%,80px);z-index:60;
  display:flex;align-items:center;gap:14px;background:var(--card-2);border:1px solid var(--bd-2);
  border-radius:var(--r);padding:10px 12px 10px 16px;font-size:13.5px;color:var(--soft);
  box-shadow:var(--pop);transition:transform .3s cubic-bezier(.2,1.2,.4,1),opacity .3s;
  opacity:0;pointer-events:none}
.cm-undo.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.cm-undo b{color:var(--ink);font-weight:600}
.cm-undo button{background:var(--card-3);border:1px solid var(--bd-2);color:var(--ok);font:inherit;
  font-size:12.5px;font-weight:700;border-radius:var(--r-sm);padding:4px 12px;cursor:pointer}
.cm-undo button:hover{border-color:var(--ok)}
@media (prefers-reduced-motion:reduce){
  .cm-ck,.cm-ck path,.cm-txt::after,.cm-dcar,.cm-leaving{transition:none!important}
  .cm-checking .cm-ck,.cm-entering{animation:none!important}
}


/* ===== S4 Workspace Rox pass ===== */
.ws-eyebrow{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);font-weight:650;margin-bottom:6px}
.ws6-stage{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ok);border:1px solid color-mix(in srgb, var(--ok) 35%, transparent);background:color-mix(in srgb, var(--ok) 7%, transparent);border-radius:4px;padding:2.5px 11px;white-space:nowrap}
.ws6-stage::before{content:"";width:9px;height:9px;border-radius:50%;border:1.5px dotted currentColor;flex:none}
/* editable deal-stage picker — keeps the ws6-stage pill, drops a menu */
.ws6-stage.stagepick{cursor:pointer;position:relative;gap:6px;-webkit-user-select:none;user-select:none;transition:background .12s,border-color .12s}
.ws6-stage.stagepick:hover{background:color-mix(in srgb, var(--ok) 14%, transparent);border-color:color-mix(in srgb, var(--ok) 55%, transparent)}
.ws6-stage.stagepick:focus-visible{outline:2px solid color-mix(in srgb, var(--ok) 50%, transparent);outline-offset:1px}
.stagepick-l{white-space:nowrap}
.stagepick-car{font-size:8px;opacity:.65;transition:transform .15s}
.ws6-stage.stagepick.open .stagepick-car{transform:rotate(180deg)}
.stagemenu{display:none;position:absolute;top:calc(100% + 7px);left:0;z-index:70;min-width:236px;max-height:340px;overflow-y:auto;background:var(--card);border:1px solid var(--bd-2);border-radius:var(--r);padding:5px;box-shadow:var(--pop);text-align:left;cursor:default}
.ws6-stage.stagepick.open .stagemenu{display:block}
.stagemenu-opt{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border-radius:var(--r-sm);font-size:12.5px;font-weight:550;color:var(--muted);white-space:nowrap;letter-spacing:0;text-transform:none;text-align:left}
.stagemenu-opt:hover{background:var(--card-2);color:var(--ink)}
.stagemenu-opt.on{color:var(--ok)}
.stagemenu-dot{width:9px;height:9px;border-radius:50%;border:1.5px dotted currentColor;flex:none}
.stagemenu-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.stagemenu-chk{flex:none;color:var(--ok);font-weight:700;font-size:11px}
.ws-stageN{font-size:11.5px;color:var(--faint)}
.dc-card.dc-flag{border-color:color-mix(in srgb, var(--warn) 35%, transparent)}
.dc-card.dc-clean{border-color:color-mix(in srgb, var(--ok) 28%, transparent)}
/* timeline day/month dividers -> centered date chips (§4 activity feed) */
.tl-month{display:flex;align-items:center;gap:10px;margin:16px 0 8px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650}
.tl-month::before,.tl-month::after{content:"";flex:1;height:1px;background:var(--bd)}
/* email card: direction icon tile, no initials avatar */
.tlmail .tlmail-ic{font-family:var(--ui);font-size:13px;border-radius:var(--r-sm)}
.tlmail.out .tlmail-av{background:var(--blue-soft);color:var(--blue)}
.tlmail.in .tlmail-av{background:var(--ok-soft);color:var(--cad-in)}
/* email body as left-ruled quoted block */
.tlmail .tlmail-b{border-left:2px solid var(--bd-2);padding-left:12px}

/* ===== S7 Replies: read-only AI voice draft card ===== */
.rp-draft{background:var(--card-2);border:1px solid color-mix(in srgb, var(--blue) 28%, transparent);border-radius:var(--r);padding:12px 14px;margin:10px 0}
.rp-draft h4{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.rp-das{font-size:10.5px;color:var(--blue);font-weight:600;text-transform:none;letter-spacing:0}
.rp-dcaveat{font-size:10.5px;color:var(--warn);font-weight:600;text-transform:none;letter-spacing:0}
.rp-dsub{font-weight:600;color:var(--ink);font-size:13px;margin:0 0 6px}
.rp-dbody{font-size:13px;color:var(--soft);line-height:1.55;white-space:pre-wrap;margin:0 0 9px;border-left:2px solid var(--bd-2);padding-left:11px}

/* ===== S4b Workspace — mockup parity (ws5/ws6) ===== */
.ws5-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.ws5-title{display:flex;align-items:center;gap:16px}
.ws5-title .score{margin-top:0}
.ws5-title .score .ring::after{background:var(--bg)}
.ws5-title h1{font-size:26px;font-weight:650;letter-spacing:-.03em;color:var(--ink);line-height:1.05;margin:0}
.ws5-pills{display:flex;align-items:center;gap:14px;margin-top:9px;flex-wrap:wrap}
.ws5-pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:550;color:var(--muted);white-space:nowrap}
.ws5-pill .owner-tag{font-size:12px}
.ws5-pill .owner-tag .av{width:18px;height:18px;font-size:8px}
.ws5-pill .owner-tag.unassigned{color:var(--blue)}
.ws5-cta{display:flex;align-items:center;gap:12px;flex:none;padding-top:8px}
.ws5-hs{font-size:12.5px;font-weight:550;color:var(--muted)}
.ws5-hs:hover{color:var(--ink)}
.ws6-risk{display:flex;align-items:flex-start;gap:12px;background:var(--card);border:1px solid color-mix(in srgb, var(--warn) 28%, transparent);border-radius:var(--r);padding:13px 16px;margin-bottom:12px;font-size:13px;color:var(--soft)}
.ws6-risk.clean{border-color:color-mix(in srgb, var(--ok) 25%, transparent)}
.ws6-risk-ic{width:28px;height:28px;border-radius:var(--r-sm);background:var(--warn-soft);color:var(--warn);display:grid;place-items:center;flex:none}
.ws6-risk.clean .ws6-risk-ic{background:var(--ok-soft);color:var(--ok)}
.ws6-risk-ic svg{width:15px;height:15px}
.ws6-risk b{color:var(--ink);font-weight:600}
.ws6-risk .sub{font-size:11.5px;color:var(--faint);margin-top:3px}
.ws6-move{display:flex;gap:11px;padding:9px 0 0;font-size:13px;color:var(--soft);line-height:1.55}
.ws6-move .mk{flex:none;width:18px;text-align:center;font-weight:700;font-style:normal}
.ws6-move.next .mk{color:var(--blue)}
.ws6-move.your .mk{color:var(--tan)}
.ws6-move i{font-style:normal;font-weight:600;color:var(--ink)}
.ws6-cmt2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}
.ws6-cmtcol{background:var(--card-2);border:1px solid var(--bd);border-top:2px solid var(--blue);border-radius:var(--r);padding:11px 12px}
.ws6-cmtcol.they{border-top-color:var(--tan)}
.ws6-cmt2-h{display:flex;align-items:baseline;gap:9px;margin-bottom:6px;padding:0 4px}
.ws6-cmt2-h .t{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--blue)}
.ws6-cmtcol.they .ws6-cmt2-h .t{color:var(--tan)}
.ws6-cmt2-h .n{font-size:11.5px;color:var(--muted)}
@media(max-width:1100px){.ws6-cmt2{grid-template-columns:1fr}}

/* ===== S4c: ws6-facts2 condensed company card ===== */
.ws6-factscard{padding:14px 18px}
.ws6-facts2{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 22px}
@media(max-width:1100px){.ws6-facts2{grid-template-columns:repeat(2,1fr)}}
.ws6-f2{min-width:0;text-align:left;padding:0;background:none;border:0;font-family:inherit}
.ws6-f2 .l{display:block;font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:650}
.ws6-f2 .v{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:550;color:var(--ink);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.ws6-f2 .v small{color:var(--faint);font-weight:400}
.ws6-f2 .v small.fwarn{color:var(--warn)}
.ws6-f2 .v a{color:var(--blue);font-weight:500;font-size:12.5px}
.ws6-fit2{cursor:pointer}
.ws6-fit2 .car{font-size:9px;color:var(--faint);transition:transform .15s}
.ws6-factscard.open .ws6-fit2 .car{transform:rotate(180deg)}
.ws6-fx{display:none;border-top:1px solid var(--bd);margin-top:12px;padding-top:12px}
.ws6-factscard.open .ws6-fx{display:block}
.ws6-fx .ic-sigs{margin-top:8px}

/* ===== ws6 timeline activity feed (Timeline tab) — ported from rox-mockup 1000-1024, 1073-1084 ===== */
.ws6-day{display:flex;align-items:center;gap:12px;margin:16px 0 8px}
.ws6-day:first-child{margin-top:0}
.ws6-day i{flex:1;height:1px;background:var(--bd)}
.ws6-day span{font-size:11px;font-weight:600;color:var(--muted);background:var(--card-2);border:1px solid var(--bd);border-radius:4px;padding:3px 13px;white-space:nowrap}
.ws6-ev{background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);margin-bottom:6px;overflow:hidden}
.ws6-ev-r{display:flex;align-items:center;gap:11px;padding:10px 13px;cursor:pointer}
.ws6-ev.nox .ws6-ev-r{cursor:default}
.ws6-ev:not(.nox) .ws6-ev-r:hover{background:var(--card-3)}
.ws6-ic{width:28px;height:28px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none}
.ws6-ic svg{width:14px;height:14px}
.ws6-ic.meet{background:var(--ok-soft);color:var(--ok)}
/* upcoming (future) events pinned above the past feed — green = booked truth */
.ws6-day.up span{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,var(--bd))}
.ws6-ev.up{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 25%,var(--bd))}
.ws6-ev.up .ws6-ic.meet{background:var(--card);color:var(--ok)}
.ws6-ev.up .ws6-ev-tm{color:var(--ok);font-weight:600}
.ws6-ic.in{background:rgba(111,168,140,.13);color:var(--cad-in)}
.ws6-ic.out{background:rgba(125,135,163,.13);color:var(--cad-out)}
.ws6-ic.note{background:var(--tan-soft);color:var(--tan)}
.ws6-ic.tr{background:var(--card-3);color:var(--muted)}
.ws6-ev-t{flex:1;min-width:0;font-size:13px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws6-ev-t b{color:var(--ink);font-weight:550}
.ws6-ev-tm{flex:none;font-size:11.5px;color:var(--faint)}
.ws6-ev-car{flex:none;font-size:9px;color:var(--faint);transition:transform .15s}
.ws6-ev.open .ws6-ev-car{transform:rotate(180deg)}
.ws6-avs{display:flex;gap:4px;align-items:center;padding:0 13px 10px 52px}
.ws6-avs .cl4-av{width:20px;height:20px;font-size:7.5px}
.ws6-ev-x{display:none;border-top:1px solid var(--bd);padding:12px 13px;background:var(--card)}
.ws6-ev.open .ws6-ev-x{display:block}
/* round avatar base used by ws6-avs (and ws6-em) */
.cl4-av{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--pill-ink);flex:none}
/* ws6 — email cards (icon tile + quoted body, no avatar) — mockup 1073-1084 */
.ws6-em{background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r);padding:11px 13px;margin-bottom:6px}
.ws6-em-h{display:flex;align-items:flex-start;gap:11px}
.ws6-em-meta{flex:1;min-width:0}
.ws6-em-who{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws6-em-who b{color:var(--ink);font-weight:600}
.ws6-em-who i{font-style:normal;color:var(--faint)}
.ws6-em-who small{color:var(--faint)}
.ws6-em-s{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws6-em-dt{flex:none;font-size:10.5px;color:var(--faint)}
.ws6-em-q{margin:9px 0 0 39px;padding:8px 12px;border-left:2px solid var(--bd-2);background:var(--card);border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:12.5px;color:var(--soft);line-height:1.55}
/* .pre — expanded bodies keep their line breaks (email/slack/blob action
   items, 2026-08-09); tOneline used to crush them into one gibberish run */
.ws6-em-q.pre{white-space:pre-line}
.ws6-ev-x .ws6-em{border:0;background:none;padding:0;margin:0}
.ws6-ev-x .ws6-em-q{background:var(--card-2)}
/* 'show all' footer (shared across ws5 tabs) */
.ws5-cap{font-size:11px;color:var(--faint);text-align:center;padding:10px 0 2px}
.ws5-cap a{color:var(--blue);font-weight:600;cursor:pointer}

/* ===== Today final pass — mockup parity ===== */
/* pipeline drawer: tp-deal grid rows + propensity meter */
.tp-deal{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(120px,.9fr) minmax(0,1.6fr) 76px;gap:12px;align-items:center;padding:8px 6px;border-radius:var(--r-sm);font-size:13px;cursor:pointer}
.tp-deal:hover{background:var(--card-2)}
.tp-nm{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-st{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden}
.tp-st .vd{font-size:11px}
.tp-nx{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-amt{color:var(--soft);font-weight:600;text-align:right}
/* likely-to-close rows reuse the Pipeline column's .mc-prop tier treatment,
   laid horizontally to fit the row (score · tier label) */
.tp-st .mc-prop{display:flex;align-items:baseline;gap:6px;min-width:0}
.tp-st .mc-prop b{font-size:14px;font-weight:600;color:color-mix(in srgb, var(--blue) 30%, var(--muted))}
.tp-st .mc-prop i{font-style:normal;font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.tp-st .mc-prop[data-tier="very_likely"] b{color:var(--ok);font-weight:700}
.tp-st .mc-prop[data-tier="likely"] b{color:var(--blue);font-weight:650}
.bkt-sum{font-size:11.5px;color:var(--faint)}
/* calendar owner avatar */
.mtg-own{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:7.5px;font-weight:700;color:var(--pill-ink);margin-left:6px;vertical-align:-4px;flex:none}
/* read-only suggested rows on an empty plan */
.pb4-ro{cursor:default}
.pb4-ghost{border-style:dashed;pointer-events:none}


/* ===== Mobile pass (Rox) — viewport-width media queries; the widest
   non-wrapping row was forcing iOS to zoom the whole canvas out ===== */
@media(max-width:760px){
  body{overflow-x:hidden}                       /* backstop: page never pans sideways */
  .td6-people{display:flex;flex-wrap:wrap}      /* person chips — THE width-breaker  */
  .td6-mode{margin-left:6px}
  .mb-c{padding:16px 14px}
  .mb-big{font-size:30px}
  .td6-items{grid-template-columns:1fr}
  .pb4-bsum{grid-template-columns:1fr}
  .pb4-bs + .pb4-bs{border-left:0;border-top:1px solid var(--bd)}
  .tp-deal{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:9px 6px}
  .tp-deal .tp-st{grid-column:1}
  .tp-deal .tp-nx{grid-column:1 / -1}
  .tp-deal .tp-amt{grid-row:1;grid-column:2}
  .ws5-head{flex-direction:column}
  .ws5-cta{padding-top:0}
  .ws6-facts2{grid-template-columns:1fr 1fr;gap:12px 14px}
  .ws6-cmt2{grid-template-columns:1fr}
  .ws5-cols{grid-template-columns:1fr}
  .pk-facts{grid-template-columns:1fr 1fr}
  /* wide tables scroll inside their view, never the page (§6.7 mobile variant) */
  #view-pipeline,#view-forecast,#view-leads,#view-audits,#view-replies{overflow-x:auto}
}


/* mobile topbar compaction */
@media(max-width:760px){
  .top{gap:8px}
  /* ".crumb" holds "Today · Customer revenue" — the suffix is a bare text
     node, so zero the container font and restore the <b> to hide it */
  .crumb{font-size:0}
  .crumb b{font-size:14px;white-space:nowrap}
  .period{padding:6px 10px;font-size:12.5px;white-space:nowrap}
  .org-seg button{padding:5px 9px;font-size:12px}
  .wkday{width:56px}
  .wkday b{font-size:13px}
}
/* ===== Pipeline: Next Tap cell + Notes column + cadence control (2026-07-20)
   Next Tap reuses the exact .nextcell treatment (blue icon + bold + muted
   descriptor) so it reads identically to Next Meeting; only the glyph and the
   amber/tan state differ. ===== */
.tap{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;
  color:var(--blue);white-space:nowrap;font-variant-numeric:tabular-nums}
.tap svg{width:13px;height:13px;flex:none}
.tap b{font-weight:600}
.tap small{font-weight:400;color:var(--muted)}
/* cadence label stacks UNDER the date (2026-07-28 crowding fix) */
.tap .tap-t{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.tap .tap-t small{font-size:10.5px}
.tap.due{color:var(--warn)}
.tap.paused{color:var(--tan)}

/* Notes column — inline editable, auto-growing free text (never overwritten). */
.dtable th.notes-col{min-width:180px}
.notecell{min-width:170px;max-width:250px}
.note-in{width:100%;background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);
  padding:8px 10px;color:var(--soft);font-family:var(--ui);font-size:12.5px;line-height:1.5;
  min-height:56px;resize:none;overflow:hidden;transition:border .15s,background .15s}
.note-in:hover{border-color:var(--bd-2)}
.note-in:focus{outline:none;border-color:var(--blue);background:var(--card-2)}
.note-in::placeholder{color:var(--faint)}

/* Side-panel cadence control + free-text note editor. */
.tapseg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tapseg.two{grid-template-columns:1.4fr 1fr;margin-top:6px}
.tsb{font-family:var(--ui);font-size:12.5px;font-weight:600;color:var(--soft);background:var(--bg-2);
  border:1px solid var(--bd);border-radius:var(--r-sm);padding:9px 4px;cursor:pointer;transition:.13s;text-align:center}
.tsb:hover{border-color:var(--bd-2);color:var(--ink)}
.tsb:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.tsb.on{background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}
.tsb.pausebtn.on{background:var(--tan-soft);border-color:var(--tan);color:var(--tan)}
.pk-freenote{width:100%;background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);
  padding:10px 11px;color:var(--soft);font-family:var(--ui);font-size:13px;line-height:1.45;
  min-height:64px;resize:vertical}
.pk-freenote:focus{outline:none;border-color:var(--blue)}

/* ===== boot skeleton — static shimmer in index.html, replaced by the first
   renderTodayView (or the error/hint message). Colors ride the surface vars
   so it matches both the dark default and any future theme. ===== */
.skel-wrap{display:grid;gap:14px}
.skel-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.skel{border-radius:var(--r);background:
  linear-gradient(100deg,var(--card) 40%,var(--card-2) 50%,var(--card) 60%);
  background-size:200% 100%;animation:skel-sheen 1.3s ease-in-out infinite}
.skel-hero{height:96px}
.skel-block{height:220px}
.skel-card{height:150px}
@keyframes skel-sheen{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}

/* ===== Forecast redesign (2026-07-24) — hero-style KPIs, goals, pacing
   chart, rep drill-down + goals manager. ROX tokens only; the mockup
   (forecast-mockup.html v5) is the visual contract. ===================== */
.kpis.fc4{grid-template-columns:1.35fr 1fr 1.15fr 1fr}
.kpi .big.tnum{font-size:27px;letter-spacing:-.02em;line-height:1}
.kpi.hero .big.tnum{font-size:38px}
.kpi .big .of{font-size:16px;color:var(--muted);font-weight:500;letter-spacing:0}
.kpi .big .permo{font-size:15px;color:var(--faint);font-weight:500}
.kpi .big.warnv{color:var(--warn)} .kpi .big.okv{color:var(--ok)} .kpi .big.badv{color:var(--bad)}
.kpi .sub2{margin-top:9px;font-size:12.5px;color:var(--muted);font-weight:500}
.kpi .sub2 b{color:var(--soft);font-weight:600}
.kpi .foot{margin-top:10px;font-size:11px;color:var(--faint);line-height:1.55;border-top:1px solid var(--bd);padding-top:8px;font-variant-numeric:tabular-nums}
.hbar{margin-top:14px;height:8px;border-radius:var(--r-sm);background:var(--bg-2);position:relative}
.hbar i{position:absolute;left:0;top:0;bottom:0;background:var(--blue);border-radius:var(--r-sm)}
.hbar .ptick{position:absolute;top:-4px;width:2px;height:16px;background:var(--faint);border-radius:2px;cursor:help}
.krow{display:flex;justify-content:space-between;margin-top:9px;font-size:12.5px;color:var(--muted)}
.krow b{color:var(--soft);font-weight:600}
.krow .r{color:var(--tan);font-weight:600;font-variant-numeric:tabular-nums}
.kwarn{margin-top:10px;font-size:12.5px;color:var(--warn);display:flex;align-items:flex-start;gap:7px;line-height:1.4}
.kwarn.okw{color:var(--ok)}
/* pipeline-gap micro meter */
.meter{margin-top:12px;height:14px;border-radius:var(--r-sm);background:var(--bg-2);position:relative;overflow:hidden;border:1px solid var(--bd)}
.meter .mseg{position:absolute;top:0;bottom:0}
.meter .m-won{background:var(--ink);opacity:.92}
.meter .m-pipe{background:repeating-linear-gradient(135deg,rgba(125,135,163,.55) 0 4px,rgba(125,135,163,.18) 4px 8px)}
.meter .m-short{background:var(--bad-soft)}
.mkey{display:flex;flex-wrap:wrap;gap:12px;margin-top:7px;font-size:10.5px;color:var(--faint)}
.mkey span{display:inline-flex;align-items:center;gap:5px}
.mkey i{width:8px;height:8px;border-radius:2px;flex:none}
.mkey .k1 i{background:var(--ink)}
.mkey .k2 i{background:repeating-linear-gradient(135deg,rgba(125,135,163,.7) 0 2px,rgba(125,135,163,.2) 2px 4px)}
.mkey .k3 i{background:var(--bad-soft);border:1px solid color-mix(in srgb, var(--bad) 40%, transparent)}
/* KPI hover breakdowns */
.kpis.fc4 .kpi{overflow:visible}
.bigwrap{position:relative;display:inline-block;cursor:help}
.bigwrap:hover .big{color:var(--blue)}
.kpi-pop{position:absolute;top:calc(100% + 9px);left:0;z-index:75;width:316px;max-height:290px;overflow:auto;
  background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r);box-shadow:var(--pop);padding:11px 13px;display:none}
.bigwrap:hover .kpi-pop{display:block}
.kp-h{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:7px}
.kp-row{display:flex;justify-content:space-between;gap:14px;font-size:12px;color:var(--soft);padding:2.5px 0}
.kp-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-row .nm small{color:var(--faint)}
.kp-row .amt{font-variant-numeric:tabular-nums;color:var(--ink);flex:none}
.kp-row.op{color:var(--muted)}
.kp-row.tot{border-top:1px solid var(--bd);margin-top:5px;padding-top:6px;font-weight:650}
/* goals section */
.goalscard{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:18px 20px;margin:0 0 13px}
.g-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.g-t{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.g-manage{margin-left:auto;background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:6px 13px;
  font-size:12.5px;font-weight:600;color:var(--soft);transition:.15s}
.g-manage:hover{border-color:color-mix(in srgb, var(--blue) 50%, transparent);color:var(--ink)}
.g-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:13px}
.g-card{background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r);padding:15px 17px}
.g-oh{display:flex;align-items:baseline;gap:9px}
.g-onm{font-size:15px;font-weight:650;color:var(--ink)}
.g-oof{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.g-oof b{color:var(--ink)}
.g-big{font-size:23px;font-weight:620;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:6px}
.g-big .of{font-size:12.5px;color:var(--muted);font-weight:500;letter-spacing:0}
.g-bar{height:6px;border-radius:var(--r-sm);background:var(--bg-2);position:relative;margin-top:10px}
.g-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--blue);border-radius:var(--r-sm)}
.g-bar .ptick{position:absolute;top:-3px;width:2px;height:12px;background:var(--faint);border-radius:2px}
.g-warn{margin-top:9px;font-size:12px;color:var(--warn);line-height:1.4}
.g-warn.okw{color:var(--ok)} .g-warn.mut{color:var(--faint)}
/* rep roll-up */
.fc-filters{display:flex;align-items:center;gap:8px;margin-left:16px}
.panel-h .fc-filters{flex:1}
.panel-h #fc-count b{color:var(--soft);font-variant-numeric:tabular-nums}
.reptable .rep-name{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--ink)}
.reptable .rep-name .av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:var(--pill-ink);font-size:11px;font-weight:700;flex:none}
.fc-reprow{cursor:pointer}
.fc-reprow:hover .rep-name{color:var(--blue)}
.rep-hint{font-size:11px;color:var(--faint);font-weight:500;opacity:0;transition:opacity .15s}
.fc-reprow:hover .rep-hint{opacity:1;color:var(--blue)}
.od-chip{font-size:10.5px;font-weight:600;color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);border-radius:var(--r-sm);padding:1px 6px;white-space:nowrap}
.goalcell{min-width:220px}
.gc-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted);margin-bottom:5px}
.gc-top .gc-l b{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}
.gc-gap{color:var(--tan);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.gc-gap.ok{color:var(--ok)}
.gc-bar{width:190px;margin-top:0}
.nogoal{font-size:12.5px;color:var(--faint)}
.fc-empty{color:var(--faint);font-size:13px;text-align:center;padding:26px}
.reptable tfoot td{border-top:1px solid var(--bd-2);border-bottom:0;color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}
.reptable tfoot td:first-child{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.ai-info{display:inline-grid;place-items:center;width:13px;height:13px;border-radius:50%;border:1px solid var(--bd-2);
  color:var(--muted);font-style:italic;font-size:10px;font-weight:700;cursor:help;vertical-align:middle}
/* modals (rep drill-down + goals manager) */
.fc-veil{position:fixed;inset:0;z-index:79;display:none;background:rgba(18,24,30,.38);backdrop-filter:blur(3px)}
.fc-veil.show{display:block}
.fcmodal{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%) scale(.98);opacity:0;pointer-events:none;
  width:min(90vw,1240px);max-height:86vh;background:var(--card);border:1px solid var(--bd-2);border-radius:var(--r);
  box-shadow:var(--pop);z-index:80;display:flex;flex-direction:column;transition:opacity .18s,transform .18s cubic-bezier(.3,.8,.3,1)}
.fcmodal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.fcmodal-goals{width:min(92vw,1080px)}
.fcmodal .rm-h{display:flex;align-items:center;gap:13px;padding:18px 22px;border-bottom:1px solid var(--bd);flex:none}
.fcmodal .rm-h .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--pill-ink);font-size:14px;font-weight:700;flex:none}
.fcmodal .rm-nm{font-size:18px;font-weight:660;letter-spacing:-.02em;color:var(--ink)}
.fcmodal .rm-sub{font-size:11px;color:var(--faint);margin-top:1px}
.fcmodal .rm-sub b{color:var(--muted)}
.fcmodal .rm-stats{margin-left:auto;display:flex;gap:24px}
.fcmodal .rm-st{text-align:right}
.fcmodal .rm-st .v{font-size:16px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}
.fcmodal .rm-st .v.ok{color:var(--ok)} .fcmodal .rm-st .v.warn{color:var(--warn)}
.fcmodal .rm-st .v .rms-of{font-size:11.5px;color:var(--faint);font-weight:500}
.fcmodal .rm-st .l{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-top:1px}
.fcmodal .rm-x{width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--muted);border:1px solid var(--bd);background:none;margin-left:8px}
.fcmodal .rm-x:hover{color:var(--ink);border-color:var(--bd-2)}
.fcmodal .rm-b{overflow-y:auto;flex:1;padding:0 0 8px}
.fcmodal .fc-dtable thead th{top:0}                 /* modal scroll ≠ page scroll */
.fcmodal .d-sub{font-size:12.5px;color:var(--muted);font-weight:500;margin-top:2px}
.fcmodal .d-sub .od{color:var(--bad);font-weight:600}
/* goals manager grid */
.gtable{width:100%;border-collapse:collapse;font-size:13px}
.gtable th{text-align:right;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:650;padding:8px 10px;border-bottom:1px solid var(--bd-2);white-space:nowrap}
.gtable th:first-child{text-align:left}
.gtable td{padding:7px 10px;border-bottom:1px solid var(--bd);text-align:right;font-variant-numeric:tabular-nums;color:var(--soft);white-space:nowrap}
.gtable td:first-child{text-align:left;color:var(--ink);font-weight:600}
.gtable tr.past td{color:var(--faint)}
.gtable tr.past td:first-child{color:var(--muted)}
.gtable tr.cur td{background:color-mix(in srgb, var(--blue) 5%, transparent)}
.gtable tr.cur td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
.gtable input{width:88px;background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:5px 7px;color:var(--ink);font-family:inherit;font-size:12.5px;text-align:right;font-variant-numeric:tabular-nums}
.gtable input:focus{outline:none;border-color:var(--blue)}
.gtable td.tot{color:var(--ink);font-weight:650}
.gtable.people input{width:74px;font-size:12px}
.gtable.people td,.gtable.people th{padding:7px 7px}
.gm-csv{margin-top:16px;display:flex;gap:10px;align-items:flex-start}
.gm-csv textarea{flex:1;min-height:74px;background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:9px 11px;
  color:var(--soft);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;resize:vertical}
.gm-csv textarea:focus{outline:none;border-color:var(--blue)}
.gm-apply{background:var(--blue-soft);border:1px solid color-mix(in srgb, var(--blue) 35%, transparent);color:var(--blue);border-radius:var(--r-sm);padding:8px 14px;font-size:12.5px;font-weight:600}
.gm-foot{display:flex;align-items:center;gap:14px;margin-top:14px}
.gm-msg{font-size:12px;color:var(--muted)}
.gm-msg.err{color:var(--bad)} .gm-msg.okm{color:var(--ok)}
.gm-save{margin-left:auto;background:var(--blue);border:0;color:#fff;border-radius:var(--r-sm);padding:8px 18px;font-size:13px;font-weight:650;cursor:pointer}
/* Line Items section (2026-07-28): channel tiles + Closed/Selected groups +
   admin candidate list. Reuses the pipeline .li-tag pill vocabulary.
   Refined same day (forecast polish pass): tiles are stat cards on the
   nested-surface grammar (g-card), the closed $ is the primary figure and a
   3px closed-vs-selected mix bar grounds each tile; groups and rows pick up
   the table hover language (card-2 wash + machined inset bar). */
.li-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;margin-bottom:16px}
.li-tile{background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:4px;transition:border-color .18s}
.li-tile:hover{border-color:var(--bd-2)}
.li-tile .li-tag{align-self:flex-start;margin-bottom:6px}
.li-tile.noitems .li-tag{color:var(--faint);border-style:dashed;background:transparent}
.li-trow{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:11px;color:var(--faint)}
.li-trow b{color:var(--soft);font-weight:600;font-variant-numeric:tabular-nums}
.li-trow.main b{color:var(--ink);font-weight:650;font-size:15.5px;letter-spacing:-.02em}
/* closed-vs-selected mix bar — closed share = ink (the meter's m-won voice)
   over the shared g-bar/hbar track; the open remainder reads as selected */
.li-mix{margin-top:7px;height:3px;border-radius:2px;background:#cfe2e6;overflow:hidden}
.li-mix i{display:block;height:100%;background:var(--ink);opacity:.9}
.li-grp{border-top:1px solid var(--bd);padding:2px 0}
.li-grp>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:9px;padding:12px 2px;font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--soft);transition:color .15s}
.li-grp>summary:hover{color:var(--ink)}
.li-grp>summary::-webkit-details-marker{display:none}
.li-grp>summary::before{content:"▸";color:var(--faint);font-size:10px;transition:color .15s}
.li-grp>summary:hover::before{color:var(--blue)}
.li-grp[open]>summary::before{content:"▾"}
.li-gn{font-size:11px;font-weight:600;color:var(--muted);background:var(--card-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:0 7px;font-variant-numeric:tabular-nums}
.li-grp>summary b{margin-left:auto;color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:0}
.li-glist{padding:0 0 10px}
.li-deal{border-top:1px solid color-mix(in srgb, var(--bd) 55%, transparent)}
.li-deal:first-child{border-top:0}
.li-deal>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:9px 8px;margin:0 -8px;min-width:0;border-radius:var(--r-sm);transition:background .15s}
.li-deal>summary:hover{background:var(--card-2);box-shadow:inset 2px 0 0 var(--blue)}
.li-deal>summary::-webkit-details-marker{display:none}
.li-deal .li-dn{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li-deal .li-dm{font-size:12px;color:var(--muted);white-space:nowrap}
.li-deal .li-pills{display:flex;flex-wrap:wrap;gap:3px;margin-left:auto}
.li-deal .li-da{font-size:13px;color:var(--soft);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:74px;text-align:right}
.li-deal .li-items{padding:2px 2px 10px 16px}
.li-deal.lost .li-dn{text-decoration:line-through;color:var(--faint)}
.li-deal.pend{opacity:.45}
.li-called{font-size:11px;font-weight:650;color:var(--ok);white-space:nowrap}
.li-miss{font-size:11px;font-weight:650;color:var(--bad);white-space:nowrap}
.li-unres{font-size:11px;font-weight:600;color:var(--warn);white-space:nowrap;cursor:help}
.li-rm{background:none;border:1px solid var(--bd);border-radius:var(--r-sm);color:var(--muted);font-size:11px;font-weight:600;padding:2px 8px;cursor:pointer;flex:none;transition:border-color .15s,color .15s}
.li-rm:hover{border-color:color-mix(in srgb, var(--bad) 45%, transparent);color:var(--bad)}
/* edit surface — the buffered-changes bar reads as its own nested panel */
.li-editbar{display:flex;align-items:center;gap:14px;margin-bottom:10px;background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:9px 14px}
.li-editbar .gm-save{margin-left:auto}
.li-cands{max-height:420px;overflow-y:auto;background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r-sm);margin-bottom:16px}
.li-cand{display:grid;grid-template-columns:auto minmax(140px,1.4fr) minmax(70px,.8fr) minmax(70px,.8fr) auto auto minmax(90px,1fr) auto;align-items:center;gap:12px;padding:9px 12px;border-top:1px solid color-mix(in srgb, var(--bd) 55%, transparent);cursor:pointer;transition:background .15s}
.li-cand:first-child{border-top:0}
.li-cand:hover{background:var(--card-2)}
.li-cand.on{background:color-mix(in srgb, var(--blue) 6%, transparent);box-shadow:inset 2px 0 0 var(--blue)}
.li-cand input{accent-color:var(--blue);width:15px;height:15px;margin:0;flex:none}
.li-cand .li-dn{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li-cand .li-dm{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li-cand .li-da{font-size:12.5px;color:var(--soft);font-variant-numeric:tabular-nums;text-align:right}
.li-cand .li-pills{display:flex;flex-wrap:wrap;gap:3px}
/* candidate propensity chip — same .mc-prop tier treatment, list-scoped */
.li-cand .mc-prop{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;min-width:0}
.li-cand .mc-prop b{font-size:14.5px;font-weight:600;color:color-mix(in srgb, var(--blue) 30%, var(--muted))}
.li-cand .mc-prop i{font-style:normal;font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.li-cand .mc-prop[data-tier="very_likely"] b{color:var(--ok);font-weight:700}
.li-cand .mc-prop[data-tier="likely"] b{color:var(--blue);font-weight:650}
.li-cand .mc-prop[data-tier="possible"] b{color:var(--warn)}
.li-cand .mc-prop[data-tier="unlikely"] b,.li-cand .mc-prop[data-tier=""] b{color:var(--faint);font-weight:500}
/* horizontal goal rows (Ramzey 2026-07-24: "make the goals horizontal") */
.g-grid.g-rows,.fc-duo .g-grid{display:flex;flex-direction:column;gap:0}
.g-row{display:grid;grid-template-columns:88px minmax(120px,1fr) minmax(90px,1.2fr) auto auto;
  align-items:center;gap:14px;padding:10px 2px;border-top:1px solid var(--bd)}
.g-row:first-child{border-top:0;padding-top:2px}
.g-rl{font-size:13.5px;font-weight:650;color:var(--ink);white-space:nowrap}
.g-rwon{font-size:13px;color:var(--muted);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.g-rwon b{color:var(--ink);font-weight:650;font-size:15px}
.g-rwon small{font-size:11.5px;color:var(--faint)}
.g-rbar .g-bar{margin-top:0}
.g-rpipe{font-size:11.5px;color:var(--faint);white-space:nowrap}
.g-rpipe b{color:var(--soft);font-weight:600}
.g-rver{font-size:11.5px;font-weight:600;color:var(--warn);white-space:nowrap;cursor:help}
.g-rver.okw{color:var(--ok)} .g-rver.mut{color:var(--faint);font-weight:500}
/* chart hover crosshair + tooltip */
.fcch-wrap{position:relative}
.fcch-tip{position:absolute;z-index:60;width:250px;pointer-events:none;
  background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r);
  box-shadow:var(--pop);padding:10px 12px}
.fcch-sec{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);
  font-weight:650;margin:7px 0 3px;padding-top:6px;border-top:1px solid var(--bd)}
.fcch-sec.mut{font-weight:500;text-transform:none;letter-spacing:0;font-size:11.5px}
/* condensed header + goals|chart side-by-side (Ramzey 2026-07-24) */
.fc-head{display:flex;align-items:center;gap:16px;margin:2px 0 14px}
.fc-head .eyebrow{margin:0}
.fc-duo{display:grid;grid-template-columns:1fr 1.15fr;gap:13px;margin-bottom:13px;align-items:start}
.fc-duo .goalscard{margin:0;height:100%}
.fc-duo .g-grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}
.fc-duo .g-big{font-size:20px}
@media (max-width:1180px){.fc-duo{grid-template-columns:1fr}}
@media (max-width:980px){.kpis.fc4{grid-template-columns:1fr 1fr}}


/* =================================================================
   TITANIUM SKIN LAYER — v5 skin-lab port (2026-07-25).
   Collapsed 2026-07-26: the html[data-*] gates were static attrs on
   index.html/login.html, so the layer now applies unconditionally —
   geometry/color tweaks folded into the base rules above; the rest
   lives here gate-free. `:root`-prefixed selectors are deliberate:
   they preserve the specificity the gated selectors held over
   mid-weight base rules (.ce-inline .ce-card, .kpi .big, .dc-chips
   .epill, .dtable thead th, body.assistant-mode). Don't bare them.
   ================================================================= */

/* ---------- type: Inter / Inter Display ---------- */
:root h1{font-family:var(--display);letter-spacing:-.02em}

/* ---------- depth: glass ---------- */
/* glass html/body backgrounds retired: the aurora canvas rule below wins
   the html background at equal specificity, and body:transparent moved to
   the base body rule */
/* Reve Canvas: glass retired — solid white cards, hairline border, whisper shadow */
:root :is(.kpi,.panel,.goalscard,.mband,.dtable-wrap,
    .mc-kpi,.mc-lane,.mc-box,.fu2-card,.ce-card,.ad6-kpis,.al-tbl-wrap){
  background:var(--card);
  box-shadow:var(--shadow);
}
.mc .mc-rail .mc-box{
  background:var(--card);
}

/* ---------- rail: floating (desktop only — at ≤860px the rail is the
   off-canvas drawer and must keep its fixed geometry) ---------- */
@media (min-width:861px){
  .rail{
    margin:0;
    height:100vh;
    top:0;
    border:0;
    border-radius:0;
    background:var(--shell);
  }
  /* collapse is retired under the floating rail (lab-approved look):
     hide the toggle AND neutralize a persisted railc state — app.js
     restores cro_rail from localStorage, and with the toggle hidden a
     collapsed boot would otherwise be stuck icon-only. */
  .railtg{display:none}
  :root .app.railc{grid-template-columns:var(--rail-w) 1fr}
  .app.railc .rail{padding:20px 14px}
  .app.railc .logo{justify-content:flex-start;padding:4px 8px 18px;gap:11px}
  .app.railc .logo>div:last-child{display:block}
  .app.railc .nav-i{justify-content:flex-start;padding:10px 12px;gap:12px}
  .app.railc .nav-i svg{width:16px;height:16px}
  .app.railc .nav-i .nv{display:inline}
  .app.railc .nav-i .pill{position:static;font-size:12px;padding:1px 7px;margin-left:auto;line-height:inherit;border-radius:var(--r)}
  .app.railc .nav-i.on::before{left:-14px}
  .app.railc .nav-h{visibility:visible;height:auto;margin:18px 10px 6px;border-top:0}
  .app.railc .rail-foot{justify-content:flex-start}
  .app.railc .rail-foot .who{display:block}
}

/* table rows: ruled — folded into the base .dtable td border */

/* ---------- finish: machined ---------- */
:root :is(.mband,.kpi,.panel,.goalscard,
    .mc-kpi,.mc-lane,.mc-box,.fu2-card,.ce-card,.ad6-kpis){position:relative}
:root :is(.mband,.kpi,.panel,.goalscard,
    .mc-kpi,.mc-lane,.mc-box,.fu2-card,.ce-card,.ad6-kpis)::after{
  content:none; /* machined top-edge glint retired on the light canvas */
}

.dtable tbody tr:hover td:first-child{
  box-shadow:inset 2px 0 0 var(--blue);
}
.eyebrow::before{
  content:""; position:absolute; left:0; top:50%; width:10px; height:1px;
  background:var(--blue);
}



/* ---------- polish layer: the craft details that read "engineered" ---------- */

:root :is(.kpi,.panel,.goalscard,.dtable-wrap,.mband,
    .mc-kpi,.mc-lane,.mc-box,.fu2-card,.ce-card,.ad6-kpis,.al-tbl-wrap){
  box-shadow:var(--shadow);
}


/* ---------- craft: component perfection layer.
   Every control on ONE metric system: buttons 34px, filters 32px,
   chips 30px, badges baseline-locked, nothing wraps, nothing clips. */






/* badge system: every micro-pill shares one skeleton */
:root :is(.pill,.due-chip,.epill,.org-tag,.vd,.owner-tag,.rp-deal){
  display:inline-flex;align-items:center;gap:5px;line-height:1.1;
  white-space:nowrap;vertical-align:middle}

/* pipeline deal column: the lab's min-width:320px is NOT ported — it
   defeats the tiered max-width fit system (300/270/240/215 across the
   pipeline breakpoints, app.css ~2670) and pushed the table 70px past
   its card at 1440. The tier system already owns this column's width. */

.d-name .d-nm{flex:1 1 auto}

/* rhythm */


:root .dtable th{letter-spacing:.08em}



/* ---------- headers: editorial display treatment ---------- */
.page-h h1{
  font-size:36px;font-weight:660;letter-spacing:-.035em;color:var(--ink);
  background:linear-gradient(180deg, var(--ink) 35%, color-mix(in srgb, var(--ink) 55%, var(--muted)));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.page-h{
  padding-bottom:16px;border-bottom:1px solid var(--bd);margin-bottom:24px}
:root :is(.big,.mb-big){letter-spacing:-.03em;font-weight:680}
.mb-big{font-size:40px}

/* ---------- canvas: aurora wash (after glass — wins the html bg;
   glass still frosts the cards) ---------- */
html{
  /* Reve Canvas: the dark shell paints the frame; the content column
     carries the light canvas with a rounded top-left corner */
  background:var(--shell);
}

/* ---------- port fixes (2026-07-25 verify pass) — surfaces the lab never
   contained, brought onto the locked skin ---------- */
/* admin: role dropdowns were bare UA-light selects — skin them */
select.role-sel,select.ga-sel{
  appearance:none;-webkit-appearance:none;
  background:var(--card-2);color:var(--ink);
  border:1px solid var(--bd-2);border-radius:var(--r-sm);
  padding:6px 26px 6px 10px;font:500 13px/1.3 var(--ui);cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23949aa1' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center;
}
select.role-sel:hover,select.ga-sel:hover{border-color:var(--blue)}
select.role-sel:focus,select.ga-sel:focus{outline:none;border-color:var(--blue)}
/* .chips{display:flex} beats the [hidden] attribute — an empty #fcOrgChips
   painted as a stray bordered box on Forecast */
.chips[hidden],.btn[hidden]{display:none}
/* admin/closing: bare h1s sit outside .page-h — give them the display
   treatment */
:is(#view-admin,#view-closing)>h1{
  font-size:36px;font-weight:660;letter-spacing:-.035em;margin:0 0 24px;
  padding-bottom:16px;border-bottom:1px solid var(--bd);
  background:linear-gradient(180deg, var(--ink) 35%, color-mix(in srgb, var(--ink) 55%, var(--muted)));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
/* admin: users table has no .dtable-wrap — give the table its card */
#view-admin table.dtable{
  background:var(--card);border:1px solid var(--bd);border-radius:var(--r);
  border-collapse:separate;border-spacing:0}
#view-admin table.dtable tr:last-child td{border-bottom:0}
/* admin: section headers (.dc-h) read as eyebrows here */
#view-admin .dc-h{letter-spacing:.14em;font-size:11px;color:var(--faint);position:relative;padding-left:16px}
#view-admin .dc-h::before{
  content:""; position:absolute; left:0; top:50%; width:10px; height:1px;
  background:var(--blue)}
/* admin: gate Logins section (2026-08-09) */
.ga-pw{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;
  background:var(--card-2);border:1px solid var(--bd-2);border-radius:var(--r-sm)}
.ga-pw code{font-size:15px;letter-spacing:.04em;user-select:all;color:var(--ink)}
.ga-btn{background:var(--card-2);color:var(--soft);border:1px solid var(--bd-2);
  border-radius:var(--r-sm);padding:5px 10px;font:500 12.5px/1.3 var(--ui);cursor:pointer}
.ga-btn:hover{border-color:var(--blue);color:var(--blue)}
.ga-btn.danger:hover{border-color:var(--bad);color:var(--bad)}
.ga-org{display:inline-flex;align-items:center;gap:5px;margin-right:10px;font-size:13px;color:var(--soft);cursor:pointer}
.ga-org input{accent-color:var(--blue)}
.ga-add td{background:var(--bg-2)}
.ga-add input{background:var(--card);border:1px solid var(--bd-2);border-radius:var(--r-sm);
  color:var(--ink);padding:6px 10px;font:500 13px var(--ui);min-width:200px}
/* org action list: div-grid rows get the machined row-hover bar the
   dtable rows have */
.al-row:hover>div:first-child{
  box-shadow:inset 2px 0 0 var(--blue)}

/* ===== rail: auto-hide icon strip, pops out on hover (2026-07-26) =====
   Desktop only — at ≤860px the rail stays the off-canvas drawer. The grid
   column keeps the mini width, so the popped-out rail floats OVER the page
   instead of reflowing it. Restated after the floating-rail block above so
   it wins at equal specificity. */
@media (min-width:861px){
  :root{--rail-mini:76px}
  :root .app,:root .app.railc{grid-template-columns:var(--rail-mini) 1fr}

  .rail{
    width:calc(var(--rail-mini) - 12px);
    padding:20px 10px;
    z-index:40;
    overflow:hidden auto;
    scrollbar-width:none;
    transition:width .22s cubic-bezier(.2,.7,.2,1) .18s, box-shadow .22s ease;
  }
  .rail::-webkit-scrollbar{width:0;height:0}

  /* resting state: icons + count badges only */
  .rail .logo{justify-content:center;padding:6px 0 20px;gap:0}
  .rail .logo>div:last-child{display:none}
  .rail .nav-i{justify-content:center;padding:11px 0;gap:0}
  .rail .nav-i svg{width:19px;height:19px}
  .rail .nav-i .nv{display:none;white-space:nowrap}
  .rail .nav-i .pill{position:absolute;top:3px;right:5px;margin:0;font-size:9px;
    padding:0 5px;line-height:1.6;border-radius:var(--r-sm)}
  .rail .nav-i.on::before{left:-10px}
  .rail .nav-h{visibility:hidden;height:10px;margin:10px 0 2px;border-top:1px solid var(--shell-bd)}
  .rail .rail-foot{justify-content:center}
  .rail .rail-foot .who{display:none}

  /* hover / keyboard focus: the full rail, as it was before */
  :is(.rail:hover,.rail:focus-within){
    width:calc(var(--rail-w) - 12px);
    padding:20px 14px;
    box-shadow:24px 0 60px -30px rgba(0,0,0,.55);
    transition-delay:.1s,0s;
  }
  :is(.rail:hover,.rail:focus-within) .logo{justify-content:flex-start;padding:4px 8px 18px;gap:11px}
  :is(.rail:hover,.rail:focus-within) .logo>div:last-child{display:block}
  :is(.rail:hover,.rail:focus-within) .nav-i{justify-content:flex-start;padding:10px 12px;gap:12px}
  :is(.rail:hover,.rail:focus-within) .nav-i svg{width:16px;height:16px}
  :is(.rail:hover,.rail:focus-within) .nav-i .nv{display:inline}
  :is(.rail:hover,.rail:focus-within) .nav-i .pill{position:static;font-size:12px;padding:1px 7px;
    margin-left:auto;line-height:inherit;border-radius:var(--r)}
  :is(.rail:hover,.rail:focus-within) .nav-i.on::before{left:-14px}
  :is(.rail:hover,.rail:focus-within) .nav-h{visibility:visible;height:auto;margin:18px 10px 6px;border-top:0}
  :is(.rail:hover,.rail:focus-within) .rail-foot{justify-content:flex-start}
  :is(.rail:hover,.rail:focus-within) .rail-foot .who{display:block}

  @media (prefers-reduced-motion: reduce){.rail{transition:none}}
}

/* rail nav: no count/badge chips next to the labels (2026-07-26) — the
   labels carry the meaning; the numbers were noise (and in the mini rail
   they sat on top of the icons). #nav-* ids stay in the markup so app.js
   keeps writing to them harmlessly. */
.rail .nav-i .pill{display:none}

/* ---------------------------------------------------------------
   MC propensity redesign (2026-07-26) — one ranked board + pinned
   collect lane. Rank is TYPOGRAPHIC (weight + blue-mix ink, the
   accent), never a traffic-light; chips stay semantic urgency.
   --------------------------------------------------------------- */
.mc .mc-line{grid-template-columns:4px 48px 82px minmax(130px,1.1fr) 118px 30px minmax(150px,1.6fr) auto}
.mc .mc-prop{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;min-width:0}
.mc .mc-prop b{font-size:14.5px;font-weight:600;color:color-mix(in srgb, var(--blue) 30%, var(--muted))}
.mc .mc-prop i{font-style:normal;font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.mc .mc-prop[data-tier="very_likely"] b{color:var(--ok);font-weight:700}
.mc .mc-prop[data-tier="likely"] b{color:var(--blue);font-weight:650}
.mc .mc-prop[data-tier="possible"] b{color:var(--warn)}
.mc .mc-prop[data-tier="unlikely"] b,.mc .mc-prop[data-tier=""] b{color:var(--faint);font-weight:500}
.mc .mc-act{min-width:0}
.mc .mc-achip{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;padding:2.5px 8px;border-radius:4px;
  border:0;background:var(--chip-bg);color:var(--chip-ink)}
.mc .mc-achip[data-mcchip="respond"]{color:var(--bad)}
.mc .mc-achip[data-mcchip="due"]{color:#8a6206}
.mc .mc-achip[data-mcchip="paper"]{color:var(--tan)}
.mc .mc-achip[data-mcchip="promise"]{color:var(--mc-violet)}
.mc .mc-achip[data-mcchip="them"]{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 45%, transparent)}
.mc .mc-chipfrow{margin-top:-7px}
.mc .mc-whyl{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--muted)}
.mc .mc-whyl li{margin:2px 0}
.mc .mc-paperln{font-size:13px;color:var(--tan);margin:0 0 8px}

/* ---------------------------------------------------------------
   Forecast tab polish (2026-07-28) — same information architecture,
   tightened craft: display-face figures on the KPI band, the blue
   micro-rule signature on every section header (the .eyebrow mark,
   carried through), goal bars that flip semantic on attainment,
   machined row hovers on the rep roll-up, and the hit-rate meta as
   a quiet stat chip. Titanium tokens only, no new colors.
   --------------------------------------------------------------- */
/* section-header signature — every Forecast panel title carries the
   10px blue rule the .eyebrow wears */
#view-forecast .panel-h h3,#view-forecast .g-top .g-t{position:relative;padding-left:16px}
#view-forecast .panel-h h3::before,#view-forecast .g-top .g-t::before{
  content:"";position:absolute;left:0;top:50%;width:10px;height:1px;background:var(--blue)}
/* KPI band: figures move onto the display face (the h1 voice) */
.kpis.fc4 .kpi .big{font-family:var(--display);letter-spacing:-.03em}
.kpis.fc4 .kpi.hero .big.tnum{font-size:40px}
.kpis.fc4 .hbar{background:var(--neutral-soft);box-shadow:inset 0 0 0 1px var(--bd)}
/* goal bars: attainment flips the fill semantic (blue = accent-in-progress,
   green = landed) — shared by the Goals rows and the rep goal cells */
.g-bar.hit i{background:var(--ok)}
/* Goals rows: numeric columns lock to the right edge, steadier rhythm */
.g-row{padding:11px 2px}
.g-row .g-rpipe,.g-row .g-rver{justify-self:end;text-align:right}
.g-row .g-rver{min-width:104px}
/* chart: tabular axis figures */
#fcChart text{font-variant-numeric:tabular-nums}
#fc-chart-meta{font-variant-numeric:tabular-nums}
/* rep roll-up: the dtable's machined hover bar + a grounded total row */
.reptable tbody tr:hover td:first-child{box-shadow:inset 2px 0 0 var(--blue)}
.reptable tfoot td{background:color-mix(in srgb, var(--bg-2) 55%, transparent)}
/* rep modal header stats: ruled dividers, display-face values */
.fcmodal .rm-stats{gap:22px}
.fcmodal .rm-st+.rm-st{border-left:1px solid var(--bd);padding-left:22px}
.fcmodal .rm-st .v{font-family:var(--display)}
/* hit-rate line — a quiet stat chip, not loose meta text */
#liHitRate:not(:empty){font-variant-numeric:tabular-nums;font-size:12px;font-weight:550;
  color:var(--soft);background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r);
  padding:5px 11px;white-space:nowrap}
/* .fc-filters{display:flex} beats the [hidden] attribute (same trap as
   #fcOrgChips, app.css §port-fixes) — the Line-items edit filters must
   actually hide outside edit mode */
.fc-filters[hidden]{display:none}

/* =====================================================================
   ANALYTICS (anx) — chart toolkit, 2026-07-30
   bklit grammar on Titanium: steel voice, tan second voice, semantics
   only for deltas/won. Reuses .panel/.kpis/.st/.eyebrow chrome as-is —
   nothing redefined here. One easing: cubic-bezier(.85,0,.15,1).
   ===================================================================== */
/* tab layout grid */
.anx-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:13px;margin-bottom:16px}
.anx-c3{grid-column:span 3}.anx-c4{grid-column:span 4}.anx-c6{grid-column:span 6}
.anx-c8{grid-column:span 8}.anx-c12{grid-column:span 12}
@media(max-width:1100px){.anx-c3,.anx-c4{grid-column:span 6}.anx-c6,.anx-c8{grid-column:span 12}}
@media(max-width:760px){.anx-grid{grid-template-columns:1fr}
  .anx-c3,.anx-c4,.anx-c6,.anx-c8,.anx-c12{grid-column:auto}}

/* tooltip singleton — dark translucent panel + blur (bklit) */
.anx-tip{position:fixed;z-index:300;pointer-events:none;min-width:150px;max-width:260px;
  background:rgba(21,23,26,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--pop);
  padding:8px 10px;display:flex;flex-direction:column;gap:4px}
.anx-tip[hidden]{display:none}
.anx-tip-t{font-size:10.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.anx-tip-r{display:flex;align-items:center;gap:7px;font-size:12px}
.anx-tip-l{color:var(--muted)}
/* value ink is EXPLICIT light — the panel is dark in both themes, and
   var(--ink) painted dark-on-dark here (contrast bug, fixed 2026-08-09) */
.anx-tip-v{color:#eef1f4;font-weight:600;font-variant-numeric:tabular-nums;margin-left:auto}
/* ring-variant swatch — outlined square, the house legend/tooltip mark */
.anx-sw{width:8px;height:8px;border-radius:2px;border:1.5px solid;background:transparent;
  flex:none;display:inline-block}
/* cw variant (client header chart, 2026-08-09): the exec hover card —
   larger type, wider box, explicit on-dark inks throughout */
.anx-tip.cw{min-width:190px;max-width:320px;padding:10px 12px;gap:6px}
.anx-tip.cw .anx-tip-t{font-size:11.5px;color:var(--shell-ink)}
.anx-tip.cw .anx-tip-r{font-size:13px}
.anx-tip.cw .anx-tip-l{color:var(--shell-faint)}
.anx-tip.cw .anx-tip-v{color:#f2f4f6}
/* legend row (outlined-square swatches; text wears text tokens, never series color) */
.anx-legend{display:flex;flex-wrap:wrap;gap:5px 16px;margin-top:10px}
.anx-legend-i{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:550;color:var(--muted)}
.anx-legend-i .anx-sw{margin-top:0}

/* (g) highlight-metric blocks: label / big tabular number / delta chip / spark */
.anx-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.anx-block{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);
  padding:14px 16px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s}
.anx-block:hover{border-color:var(--bd-2)}
.anx-block-l{font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.anx-block-row{display:flex;align-items:baseline;gap:9px;margin-top:6px}
.anx-block-v{font-family:var(--display);font-size:27px;font-weight:650;letter-spacing:-.02em;color:var(--ink)}
.anx-block-s{font-size:11.5px;color:var(--faint);margin-top:2px}
.anx-delta{font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;font-variant-numeric:tabular-nums}
.anx-delta.ok{color:var(--ok);background:rgba(82,181,135,.12)}
.anx-delta.bad{color:var(--bad);background:rgba(215,107,96,.12)}
.anx-delta.flat{color:var(--muted);background:var(--neutral-soft)}
/* full-bleed sparkline: negative margins run it to the card edges */
.anx-spark{display:block;width:calc(100% + 32px);height:34px;margin:10px -16px -14px;
  animation:anxReveal 1.1s cubic-bezier(.85,0,.15,1) both}
.anx-spark-l{fill:none;stroke:var(--blue);stroke-width:1.5;stroke-linejoin:round;
  stroke-linecap:round;vector-effect:non-scaling-stroke}
.anx-spark-d{fill:var(--blue)}

/* (e) concentric progress rings + center stat + mini-bar legend */
.anx-ring{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.anx-ring-wrap{position:relative;width:210px;max-width:100%;flex:none}
.anx-ring-wrap svg{display:block;width:100%;height:auto}
.anx-ring-track{fill:none;stroke:rgba(41,45,51,.6);stroke-width:12}
.anx-ring-arc{fill:none;stroke-width:12;stroke-linecap:round;transition:opacity .2s;
  animation:anxArc .9s cubic-bezier(.85,0,.15,1) backwards}
/* dim only on a REAL mark hover: anxRing toggles svg.hov + arc.on from its
   transparent full-slot hit rings — a bare svg:hover would fade the chart
   when the pointer crosses the empty center/gaps with nothing highlighted */
.anx-ring-wrap svg.hov .anx-ring-arc{opacity:.35}
.anx-ring-wrap svg.hov .anx-ring-arc.on{opacity:1}
.anx-ring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;pointer-events:none;text-align:center;padding:0 46px}
.anx-ring-cv{font-family:var(--display);font-size:26px;font-weight:650;letter-spacing:-.02em;color:var(--ink)}
.anx-ring-cl{font-size:10.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.anx-ring-leg{display:flex;flex-direction:column;gap:9px;min-width:180px;flex:1}
.anx-ring-li{display:flex;align-items:center;gap:8px;font-size:12px}
.anx-ring-ln{color:var(--ink);font-weight:550;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.anx-ring-lv{color:var(--muted);font-variant-numeric:tabular-nums}
.anx-ring-mini{width:60px;height:3px;border-radius:2px;background:rgba(41,45,51,.6);overflow:hidden;flex:none}
.anx-ring-mini i{display:block;height:100%;border-radius:2px}

/* (a/b) day heatmap — 11px cells, 2px gap, Mon-anchored rows */
.anx-hm-scroll{overflow-x:auto;padding-bottom:2px}
.anx-hm svg{display:block}
.anx-hm-m{font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;fill:var(--muted)}
.anx-hm-wd{font-size:10px;fill:var(--faint)}
.anx-hm-d{transition:opacity .15s;animation:anxFade .5s cubic-bezier(.85,0,.15,1) both;
  animation-delay:calc(var(--col,0)*12ms)}
.anx-hm-cells:hover .anx-hm-d{opacity:.3}
.anx-hm-cells .anx-hm-d:hover{opacity:1}
.anx-hm-0{stroke:rgba(41,45,51,.6);stroke-width:1}
.anx-hm-leg{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.anx-hm-leg-r{display:flex;align-items:center;gap:2px;font-size:10px;color:var(--muted)}
.anx-hm-leg-r b{font-weight:650;letter-spacing:.05em;text-transform:uppercase;margin-right:6px;
  color:var(--soft);font-size:9.5px}
.anx-hm-leg-r i{width:11px;height:11px;border-radius:2px;display:inline-block}
.anx-hm-leg-r i.z{box-shadow:inset 0 0 0 1px rgba(41,45,51,.6)}
.anx-hm-leg-r span{margin:0 5px}

/* (c) trapezoid funnel + halo strokes + conversion chips */
.anx-fn svg{display:block;width:100%;height:auto;margin:6px 0 8px}
.anx-fn-heads,.anx-fn-pills{display:grid;grid-template-columns:repeat(var(--n,1),1fr);gap:4px}
.anx-fn-h{display:flex;flex-direction:column;gap:2px;min-width:0;padding:0 4px}
.anx-fn-n{font-size:11px;color:var(--muted);font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.anx-fn-v{font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.anx-fn-p{display:flex;justify-content:center}
.anx-fn-pct{font-size:10px;font-weight:600;color:var(--ink);background:var(--card);
  border:1px solid var(--bd);border-radius:999px;padding:2px 8px;font-variant-numeric:tabular-nums}
.anx-fn-halo{fill:none;stroke:rgba(195,205,217,.12);stroke-width:1}
.anx-fn-seg{transition:opacity .2s}
.anx-fn-hit{fill:transparent}
.anx-fn-g{animation:anxWipe 1.1s cubic-bezier(.85,0,.15,1) both}
.anx-fn svg:hover .anx-fn-seg{opacity:.35}
.anx-fn svg .anx-fn-g:hover .anx-fn-seg{opacity:1}

/* shared entrances + reduced-motion opt-out */
@keyframes anxReveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes anxWipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes anxFade{from{opacity:0}}
@keyframes anxArc{from{stroke-dashoffset:var(--c)}}
@media (prefers-reduced-motion:reduce){
  .anx-spark,.anx-hm-d,.anx-fn-g,.anx-ring-arc,.ask-typing .d i{animation:none!important}
  .anx-fn-seg,.anx-ring-arc,.anx-hm-d,.an-scrim,.an-drawer,.an-st,.an-st-peek,
  .an-sm-bars i,.an-hm-cell,.an-lb-track i,.ask-scrim,.ask-drawer,.ask-fab{transition:none}}

/* ===== Analytics TAB (anx consumers) — layout + the few pieces the
   toolkit doesn't own: header row, debook under-strip, touches table,
   billing-unavailable state. Monochrome doctrine holds: --bad appears
   only on debooks (a semantic reversal), --ok only on collected $. ===== */
.an-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.an-head .chips{margin:0}
/* merged-view honesty banner: an in-view org with no analytics doc is named
   (mirrors the billing missing-feed treatment) */
.an-missing{margin-bottom:12px;padding:10px 14px;border:1px dashed var(--bd);
  border-radius:var(--r);color:var(--muted);font-size:12.5px}
#anBlocks .anx-block-v.bad{color:var(--bad)}
/* debooks: thin signed bars hanging under the revenue-split axis */
.an-db-row{display:flex;height:22px;margin-top:2px}
.an-db-c{flex:1;display:flex;justify-content:center;align-items:flex-start}
.an-db-c i{display:block;width:38%;min-height:2px;background:var(--bad);opacity:.5;
  border-radius:0 0 3px 3px}
.an-db-c:hover i{opacity:.9}
.an-db-lab{font-size:9.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;
  color:var(--faint);margin-top:3px}
/* in-body scope notes (e.g. "Season heatmap — always full year": the year
   map is the one month-axis chart that never narrows to the close window) */
#view-analytics .panel-b > .meta{display:block;font-size:10px;font-weight:650;
  letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
/* per-rep touches table */
.an-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:12px}
.an-table th{font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);text-align:left;padding:4px 8px;border-bottom:1px solid var(--bd)}
.an-table th.num,.an-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.an-table td{padding:5px 8px;border-bottom:1px solid var(--bd);color:var(--ink)}
.an-table td.num{color:var(--muted)}
.an-table tr:last-child td{border-bottom:none}
/* honest empty / unavailable states — never zeros presented as truth */
.an-empty{padding:14px 4px;color:var(--muted);font-size:12.5px}

/* ===== Analytics redesign 2026-07-31: KPI ledger strip + drill-in drawer +
   revenue small-multiples + rep leaderboard + line-item heatmap ===== */

/* (1) ledger strip — one machined .panel, hairline-split clickable columns */
.an-strip{display:grid;grid-template-columns:repeat(6,1fr);padding:0}
.an-st{padding:18px 20px 16px;border-left:1px solid var(--bd);cursor:pointer;position:relative;
  background:none;border-top:0;border-right:0;border-bottom:0;font:inherit;color:inherit;text-align:left;
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
  transition:background .2s}
.an-st:first-child{border-left:0}
.an-st:hover{background:var(--card-2)}
.an-st:hover .an-st-peek{opacity:1}
.an-st.open{box-shadow:inset 0 0 0 1px var(--blue)}
.an-st-l{font-size:10.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.an-st-row{display:flex;align-items:baseline;gap:8px;margin-top:7px;flex-wrap:wrap}
.an-st-v{font-family:var(--display);font-size:24px;font-weight:650;letter-spacing:-.02em;
  white-space:nowrap;color:var(--ink)}
.an-st-v.bad{color:var(--bad)}
.an-st-peek{position:absolute;top:12px;right:14px;font-size:10.5px;color:var(--faint);
  opacity:0;transition:opacity .2s}
.an-mp{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:5px}
.an-mp-r{display:flex;align-items:center;gap:8px}
.an-mp-r .m{font-size:9.5px;font-weight:650;letter-spacing:.06em;color:var(--faint);width:24px;
  flex:none;text-transform:uppercase}
.an-mp-r .tr{flex:1;height:6px;border-radius:3px;background:var(--bg-2);overflow:hidden}
.an-mp-r .tr i{display:block;height:100%;border-radius:3px}
.an-mp-r .n2{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;
  flex:none;width:44px;text-align:right}
@media(max-width:1050px){.an-strip{grid-template-columns:repeat(3,1fr)}
  .an-st:nth-child(4){border-left:0}
  .an-st:nth-child(n+4){border-top:1px solid var(--bd)}}
@media(max-width:640px){.an-strip{grid-template-columns:repeat(2,1fr)}
  .an-st{border-top:1px solid var(--bd)!important;border-left:1px solid var(--bd)!important}
  .an-st:nth-child(odd){border-left:0!important}
  .an-st:nth-child(-n+2){border-top:0!important}}

/* (2) KPI drill-in drawer + scrim — JS singleton (anxTipEl pattern); the
   tooltip (z 300) stays above, nothing else in the app passes 290 */
.an-scrim{position:fixed;inset:0;background:rgba(4,5,6,.55);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:290;
  opacity:0;pointer-events:none;transition:opacity .3s}
.an-scrim.on{opacity:1;pointer-events:auto}
.an-drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,94vw);z-index:295;
  background:var(--bg-2);border-left:1px solid var(--bd);box-shadow:-24px 0 60px -24px rgba(23,37,53,.28);
  transform:translateX(102%);transition:transform .38s cubic-bezier(.85,0,.15,1);
  display:flex;flex-direction:column}
.an-drawer.on{transform:none}
.an-dr-h{position:relative;padding:20px 22px 16px;border-bottom:1px solid var(--bd);flex:none}
.an-dr-l{font-size:11px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.an-dr-v{font-family:var(--display);font-size:30px;font-weight:650;letter-spacing:-.02em;
  margin-top:5px;color:var(--ink)}
.an-dr-v.bad{color:var(--bad)}
.an-dr-m{font-size:12px;color:var(--faint);margin-top:3px}
.an-dr-x{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:var(--r-sm);
  border:1px solid var(--bd);background:var(--card);color:var(--muted);font-size:14px;cursor:pointer}
.an-dr-x:hover{color:var(--ink);border-color:var(--bd-2)}
.an-dr-b{overflow-y:auto;flex:1;padding:6px 0 26px}
.an-mgrp{padding:14px 22px 4px}
.an-mgrp .mh{display:flex;align-items:baseline;gap:10px;font-size:11px;font-weight:650;
  letter-spacing:.09em;text-transform:uppercase;color:var(--faint);padding-bottom:8px}
.an-mgrp .mh .mt{margin-left:auto;color:var(--muted);font-size:12px;letter-spacing:0;
  text-transform:none;font-weight:600}
.an-drow{display:flex;align-items:center;gap:11px;padding:8px 22px;text-decoration:none;
  border-top:1px solid color-mix(in srgb,var(--bd) 55%,transparent)}
.an-drow:hover{background:var(--card)}
.an-drow .av{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;font-size:10.5px;font-weight:700;background:var(--card-3);color:var(--soft);
  border:1px solid var(--bd-2)}
.an-drow-t{min-width:0;display:flex;flex-direction:column}
.an-drow .nm{font-weight:600;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.an-drow .mt2{font-size:11.5px;color:var(--faint)}
.an-drow .amt{margin-left:auto;font-weight:600;font-size:13px;flex:none;color:var(--ink)}
.an-drow .amt.bad{color:var(--bad)}
.an-dr-f{flex:none;border-top:1px solid var(--bd);padding:12px 22px;display:flex;
  font-size:12px;color:var(--muted)}
.an-dr-f b{margin-left:auto;color:var(--ink);font-weight:650}

/* (3) revenue split — small-multiple cards on a SHARED y-scale */
.an-sm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.an-sm{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:15px 16px 12px}
.an-sm-l{font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);display:flex;align-items:center;gap:8px}
.an-sm-n{display:flex;align-items:baseline;gap:9px;margin-top:5px}
.an-sm-n b{font-family:var(--display);font-size:21px;font-weight:650;letter-spacing:-.02em;color:var(--ink)}
.an-sm-plot{position:relative;height:76px;margin-top:12px}
.an-sm-bars{position:absolute;inset:0;display:flex;align-items:flex-end;gap:4px}
.an-sm-bars i{flex:1;border-radius:3px 3px 1px 1px;min-height:2px;display:block;cursor:pointer;
  transition:opacity .2s}
/* !important beats the inline last-bar/rest opacity when a sibling is hovered */
.an-sm-bars:hover i:not(:hover){opacity:.45!important}
.an-sm-base{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--bd)}
.an-sm-xl{display:flex;margin-top:6px}
.an-sm-xl span{flex:1;text-align:center;font-size:9px;font-weight:600;color:var(--faint);
  text-transform:uppercase}
.an-sm-note,.an-lb-note{margin-top:10px;font-size:11px;color:var(--faint)}

/* (4) rep leaderboard — bucket-stacked tracks against the shared max */
.an-lb{display:flex;flex-direction:column}
.an-lb-row{display:grid;grid-template-columns:26px 150px 1fr 92px 74px;gap:14px;align-items:center;
  padding:12px 4px;border-top:1px solid color-mix(in srgb,var(--bd) 60%,transparent)}
.an-lb-row:first-child{border-top:0}
.an-lb-row .rk{font-size:12px;font-weight:650;color:var(--faint);text-align:center}
.an-lb-row .who{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13.5px;min-width:0}
.an-lb-row .who .wn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.an-lb-row .av{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;font-size:10.5px;font-weight:700;background:var(--card-3);color:var(--soft);
  border:1px solid var(--bd-2)}
.an-lb-track{height:22px;border-radius:5px;background:var(--bg-2);border:1px solid var(--bd);
  overflow:hidden;display:flex;gap:2px;cursor:pointer}
.an-lb-track i{display:block;height:100%;border-radius:2px}
.an-lb-track i:first-child{border-radius:4px 2px 2px 4px}
.an-lb-track i.hatch{background:repeating-linear-gradient(135deg,transparent 0 5px,
  color-mix(in srgb,var(--bad) 30%,transparent) 5px 7px),var(--bad-soft)}
.an-lb-row .amt{font-weight:650;font-size:14px;color:var(--ink);display:flex;flex-direction:column;
  align-items:flex-end;gap:2px}
.an-lb-row .amt.bad{color:var(--bad)}
.an-lb-row .amt .anx-delta{font-size:10px;padding:1px 6px}
.an-lb-spk{width:74px;height:26px;display:block}
.an-lb-db{border-top:1px solid var(--bd);margin-top:6px}
.an-lb-more{padding:8px 4px 2px;font-size:11.5px;color:var(--faint)}
@media(max-width:760px){.an-lb-row{grid-template-columns:26px 120px 1fr 80px}
  .an-lb-spk{display:none}}

/* (5) line-item heatmap — steel ramp cells, labels only on hot cells */
.an-hm{display:grid;gap:3px;align-items:center}
.an-hm-rl{font-size:12px;font-weight:600;color:var(--soft);padding-right:12px;white-space:nowrap}
.an-hm-cell{height:34px;border-radius:5px;position:relative;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;
  transition:transform .15s}
.an-hm-cell:hover{transform:scale(1.06);outline:1px solid var(--bd-2);z-index:2}
.an-hm-tot{font-size:12.5px;font-weight:650;text-align:right;padding-left:12px;color:var(--ink)}
.an-hm-ch{font-size:10px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;
  color:var(--faint);text-align:center}
.an-hm-scale{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:11px;color:var(--faint)}
.an-hm-scale .ramp{width:120px;height:8px;border-radius:4px;background:linear-gradient(90deg,#191d22,#cdd9e8)}
.an-hm-scale .lt{margin-left:14px}

/* ===================================================================== */
/*  CLIENT WORKSPACE (cw-) — approved v4 mockup 2026-08-02.               */
/*  Reuses panel/cl-pill/pb4/ws5/ws6 primitives; only net-new pieces here.*/
/* ===================================================================== */
.btn-sm{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd-2);background:var(--card-2);border-radius:4px;padding:4px 11px;font-size:12px;font-weight:550;color:var(--soft);cursor:pointer;transition:.12s}
.btn-sm:hover{border-color:var(--bd-2);color:var(--ink)}
.btn-sm.pri{background:var(--blue-soft);border-color:var(--blue);color:var(--ink)}

.cw-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:13px;align-items:start;margin-bottom:13px}
/* grid items must be allowed to shrink below content min-width — one long
   AI-prefilled value (nowrap ellipsis) otherwise sets the TRACK minimum and
   pushes the whole workspace past the viewport (found 2026-08-07) */
.cw-cols>div{min-width:0}
@media (max-width:980px){.cw-cols{grid-template-columns:1fr}}

/* milestone strip */
.cw-mstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));background:var(--card);border:1px solid var(--bd);border-radius:var(--r,6px);margin-bottom:14px;overflow:hidden}
.cw-mstrip .c{padding:13px 16px;min-width:0}
.cw-mstrip .c + .c{border-left:1px solid var(--bd)}
.cw-mstrip .l{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:5px}
.cw-mstrip .v{font-size:19px;font-weight:620;letter-spacing:-.02em;color:var(--ink);line-height:1.15;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cw-mstrip .v small{font-size:12px;color:var(--muted);font-weight:500;margin-left:5px}
.cw-mstrip .v.mut{color:var(--faint)}
.cw-mstrip .sub{font-size:12px;color:var(--muted);margin-top:5px;display:flex;gap:10px;flex-wrap:wrap}
.cw-mstrip .v .st{font-size:13.5px}

/* ---- 30-day plan band (2026-08-06): milestone SLAs vs signing clock ----
   Stepper cells with status top-borders (the commitments-column language)
   over a true-time ruler carrying the today cursor. */
.p30{background:var(--card);border:1px solid var(--bd);border-radius:var(--r,6px);margin-bottom:14px;overflow:hidden}
.p30-h{display:flex;align-items:center;gap:9px;padding:11px 15px;border-bottom:1px solid var(--bd);font-weight:650;font-size:13px;flex-wrap:wrap}
.p30-flags{margin-left:auto;display:flex;gap:13px;flex-wrap:wrap}
.p30-steps{display:grid;grid-template-columns:repeat(6,1fr)}
.p30-c{display:flex;align-items:center;gap:9px;padding:12px 13px;border-top:2px solid var(--bd);min-width:0}
.p30-c + .p30-c{border-left:1px solid var(--bd)}
.p30-ci{width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--card);border:2px solid var(--bd-2);color:var(--faint)}
.p30-ci svg{width:11px;height:11px}
.p30-cm{min-width:0}
.p30-cm b{display:block;font-size:12.5px;font-weight:650;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p30-cm span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p30-c.ok{border-top-color:var(--ok)}
.p30-c.ok .p30-ci{background:var(--ok);border-color:var(--ok);color:#fff}
.p30-c.ok .p30-cm span{color:var(--ok)}
.p30-c.bad{border-top-color:var(--bad)}
.p30-c.bad .p30-ci{background:var(--bad);border-color:var(--bad);color:#fff}
.p30-c.bad .p30-cm b,.p30-c.bad .p30-cm span{color:var(--bad)}
.p30-c.warn{border-top-color:var(--warn)}
.p30-c.warn .p30-ci{border-color:var(--warn)}
.p30-c.warn .p30-ci::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--warn)}
.p30-c.warn .p30-cm span{color:var(--warn)}
.p30-c.up .p30-ci::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bd-2)}
.p30-ruler{position:relative;height:26px;margin:4px 15px 12px;background:var(--bg-2);border-radius:99px;box-shadow:inset 0 0 0 1px var(--bd)}
.p30-ruler i{position:absolute;left:0;top:0;bottom:0;background:var(--blue-soft);border-right:2px solid var(--blue);border-radius:99px 0 0 99px}
.p30-now{position:absolute;top:50%;transform:translate(-50%,-50%);background:var(--ink);color:var(--card);font-size:10px;font-weight:700;padding:2.5px 10px;border-radius:99px;white-space:nowrap;z-index:2}
.p30-now.r{transform:translate(-100%,-50%)}
.cw-hdrive{gap:5px;color:var(--blue)}
.cw-hdrive svg{width:12px;height:12px}
.cw-start-edit{margin-left:7px;font-size:12px;color:var(--faint);cursor:pointer;vertical-align:2px}
.cw-start-edit:hover{color:var(--blue)}
.cw-start-in{display:none;margin-top:6px;width:100%;background:var(--card-2);border:1px solid var(--bd-2);border-radius:5px;padding:5px 9px;font:inherit;font-size:12.5px;color:var(--ink)}
.cw-start-in.open{display:block}
.cw-start-in:focus{outline:0;border-color:var(--blue)}
@media(max-width:900px){.p30-steps{grid-template-columns:repeat(3,1fr)}.p30-c{border-top-width:2px}.p30-c:nth-child(4){border-left:0}}
.cw-mstrip .sub b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.cw-mst-drive{font-size:13.5px}
.cw-mst-drive a{color:var(--blue)}
.cw-tabs{margin-top:2px}

/* grouped checklist */
.cw-grp{display:flex;align-items:center;gap:9px;font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;margin:15px 0 4px}
.cw-grp:first-child{margin-top:0}
.cw-grp.them{color:var(--tan)} .cw-grp.us{color:var(--blue)} .cw-grp.mut{color:var(--faint)}
.cw-grp .n{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.cw-grp i{flex:1;height:1px;background:var(--bd)}
.cw-grp + .cw-chkrow{border-top:none}
.cw-chkrow{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--bd)}
.cw-chkrow .cl-pill{flex:none;min-width:88px;text-align:center;margin-top:1px;cursor:pointer}
.cw-chkrow .cl-pill:hover{filter:brightness(1.2)}
.cw-chkrow .cl-pill.cw-aisug{border:1px dashed var(--bd-2);opacity:.85}
.cw-chk-b{flex:1;min-width:0}
.cw-chk-t{font-size:14px;color:var(--ink);overflow-wrap:anywhere}
.cw-chk-v{font-size:12.5px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text;border-radius:3px;padding:0 2px}
.cw-chk-v:hover{background:var(--card-2)}
.cw-chk-v[contenteditable="true"]{white-space:normal;outline:1px solid var(--blue);background:var(--card-2);color:var(--ink)}
.cw-foot{font-size:12px;color:var(--faint);margin-top:11px;padding-top:9px;border-top:1px solid var(--bd)}
.cw-ainode{width:20px;height:20px;border-radius:50%;flex:none;margin-top:1px;display:grid;place-items:center;background:var(--tan-soft);color:var(--tan);font-size:9px;font-weight:700;cursor:help}

/* follow-up age chip + hover email */
.cw-fu{position:relative;flex:none;font-size:12px;font-weight:650;color:var(--faint);font-variant-numeric:tabular-nums;margin-top:3px;cursor:default;white-space:nowrap}
.cw-fu.has{padding:2.5px 9px;border-radius:99px}
.cw-fu.ok{color:var(--ok);background:var(--ok-soft)}
.cw-fu.warn{color:var(--warn);background:var(--warn-soft)}
.cw-fu.bad{color:var(--bad);background:var(--bad-soft)}
.cw-fu.has::after{content:"";position:absolute;inset:-10px}
.cw-fu-tip{position:absolute;right:-4px;bottom:calc(100% + 8px);width:280px;background:var(--card-2);border:1px solid var(--bd-2);border-radius:8px;padding:11px 13px;box-shadow:var(--pop,0 18px 40px -18px rgba(0,0,0,.7));display:none;z-index:70;white-space:normal;text-align:left;pointer-events:none}
.cw-fu.has:hover .cw-fu-tip{display:block}
.cw-fu-lab{display:block;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:5px}
.cw-fu-tip b{display:block;font-size:12.5px;color:var(--ink);font-weight:600;margin-bottom:3px}
.cw-fu-b{display:block;font-size:12px;color:var(--soft);line-height:1.45}
.cw-fu-from{display:block;font-size:10.5px;color:var(--faint);margin-top:6px;padding-top:6px;border-top:1px solid var(--bd)}

/* waiting ledger (2026-08-07) — done rows + the us/them add toggle */
.cw-chkrow.done .cw-chk-t{text-decoration:line-through;color:var(--faint)}
.cw-chkrow.done .pb4-chk{background:color-mix(in srgb,var(--ok) 16%,var(--card));border-color:transparent;color:var(--ok)}
.cw-side-tog{flex:none;cursor:pointer;border:0;font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:10px}
.cw-side-tog.us{color:var(--blue);background:var(--blue-soft)}
.cw-side-tog.them{color:var(--tan);background:var(--tan-soft)}

/* next steps extras */
.cw-add{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--bd);align-items:center}
.cw-add input{flex:1;background:none;border:1px dashed var(--bd-2);border-radius:5px;padding:7px 11px;font-family:inherit;font-size:12.5px;color:var(--ink);outline:0}
.cw-add input:focus{border-color:var(--blue);border-style:solid}
.cw-add input::placeholder{color:var(--faint)}
.cw-step-rm{flex:none;width:20px;height:20px;border-radius:4px;border:0;background:none;color:var(--faint);font-size:11px;cursor:pointer;opacity:0;transition:.12s}
.pb4-item:hover .cw-step-rm,.cw-chkrow:hover .cw-step-rm{opacity:1}
.cw-step-rm:hover{color:var(--bad);background:var(--card-2)}

/* drive */
.cw-drive{display:flex;align-items:center;gap:11px;font-size:13px;min-width:0}
.cw-drive svg{width:18px;height:18px;color:var(--tan);flex:none}
.cw-drive .lk{color:var(--blue);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}
.cw-drive-act{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.cw-drive-act a{cursor:pointer}
.cw-drive-act a:hover{color:var(--ink)}

/* integrations */
.cw-int{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:13px}
@media (max-width:760px){.cw-int{grid-template-columns:1fr}}
.cw-intc{background:var(--card);border:1px solid var(--bd);border-radius:var(--r,6px);padding:13px 16px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.cw-intc .nm{font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.cw-int-meta{font-size:12.5px;color:var(--muted);line-height:1.5}
.cw-int-meta b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.cw-int-foot{margin-top:auto;padding-top:6px}
.cw-keynote{font-size:11.5px;color:var(--faint)}

/* collapsed sections (current clients) */

/* key modal */
.cw-modal-veil{position:fixed;inset:0;background:rgba(18,24,30,.38);z-index:110;display:none}
.cw-modal-veil.open{display:block}
.cw-modal{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);width:min(400px,calc(100vw - 32px));background:var(--card);border:1px solid var(--bd-2);border-radius:8px;box-shadow:var(--pop,0 18px 40px -18px rgba(0,0,0,.7));z-index:115;display:none;padding:20px 22px}
.cw-modal.open{display:block}
.cw-modal h3{font-size:16px;font-weight:650;color:var(--ink);letter-spacing:-.02em;margin-bottom:4px}
.cw-modal .sub{font-size:12px;color:var(--muted);margin-bottom:14px}
.cw-modal input{width:100%;background:var(--bg-2,var(--card-2));border:1px solid var(--bd-2);border-radius:5px;padding:9px 12px;font-family:ui-monospace,monospace;font-size:13px;color:var(--ink);letter-spacing:.08em;outline:0}
.cw-modal input:focus{border-color:var(--blue)}
.cw-modal .note{font-size:11.5px;color:var(--faint);line-height:1.5;margin:11px 0 16px}
.cw-modal .acts{display:flex;gap:8px;justify-content:flex-end}

/* timeline: recording link (rows use the shared ws6-ic tiles) */
.cw-rec{color:var(--muted);font-size:12px}
.cw-rec:hover{color:var(--ink)}

/* campaigns */
/* -------- account pulse band + touchpoint card (2026-08-08) -------- */
/* ---- live-client header (2026-08-09, mockup pick "B — chart-forward
   split"): identity row + ONE panel — pulse cells left, daily chart right,
   trust row footer. (.am-band/.am-h retired with the old pulse band.) ---- */
.cw-id{margin:10px 0 13px}
.cw-id-sp{flex:1}
.cw-id .cw-start-in{width:auto}
.cw-live{margin-bottom:14px}
.cw-split{display:grid;grid-template-columns:5fr 7fr}
.cw-split>div{min-width:0}
/* the pulse cells reuse .cw-mstrip's cell language as a 2×2 hairline grid */
.cw-mstrip.cw-cells2{grid-template-columns:1fr 1fr;border:0;border-right:1px solid var(--bd);border-radius:0;margin:0}
.cw-cells2 .c + .c{border-left:0}
.cw-cells2 .c:nth-child(2n){border-left:1px solid var(--bd)}
.cw-cells2 .c:nth-child(n+3){border-top:1px solid var(--bd)}
.cw-chartside{padding:14px 16px 10px}
.cw-ch-kpis{display:flex;gap:22px;align-items:baseline;margin-bottom:10px;flex-wrap:wrap}
.cw-ch-kpis .k .l{font-size:10px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.cw-ch-kpis .k .v{font-family:var(--display);font-size:18px;font-weight:650;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.cw-ch-kpis .k .v small{font-size:11.5px;color:var(--muted);font-weight:600;margin-left:4px}
.cw-ch-meta{margin-left:auto;font-size:11px;color:var(--faint);align-self:center;text-align:right}
.cw-ch-lbl{display:flex;align-items:center;gap:8px;font-size:9.5px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}
.cw-ch-lbl i{flex:1}
.cw-ch-lbl+.cw-ch-lbl,.cw-ch-base+.cw-ch-lbl{margin-top:6px}
.cw-ch-bars{display:flex;align-items:flex-end;gap:2px;height:96px}
.cw-ch-bars i{flex:1;min-width:2px;background:var(--blue);opacity:.82;border-radius:2px 2px 0 0;display:block;transition:opacity .15s}
.cw-ch-bars i.z{background:none}
.cw-ch-bars i.hov{opacity:1}
.cw-ch:hover .cw-ch-bars i:not(.hov){opacity:.45}
.cw-ch-base{height:1px;background:var(--bd);margin-top:1px}
.cw-ch-reps{display:flex;gap:2px;align-items:center;height:16px}
.cw-ch-reps b{flex:1;min-width:2px;display:flex;align-items:center;justify-content:center}
/* replies wear tan — the strip and the hover card speak the same second
   voice (sends stay steel); positive-reply days ride the ok family with a
   soft ring so they jump out of the strip (2026-08-09) */
.cw-ch-reps b s{display:block;border-radius:50%;background:var(--tan);text-decoration:none}
.cw-ch-reps b.pos s{background:var(--ok);box-shadow:0 0 0 2px var(--ok-soft)}
.cw-ch-poslbl{color:var(--ok);font-size:10px;letter-spacing:.02em;margin-right:8px}
.cw-ch-x{display:flex;margin-top:5px}
.cw-ch-x span{font-size:9px;font-weight:600;color:var(--faint);text-transform:uppercase;border-left:1px solid var(--bd);padding-left:6px}
.cw-ch-empty{padding:24px 8px;text-align:center;font-size:12.5px;color:var(--faint)}
/* folded scheduling run in the timeline — present but muted */
.ws6-ev.cw-fold{border-style:dashed;background:var(--card)}
.ws6-ev.cw-fold .ws6-ev-t{color:var(--muted)}
@media (max-width:1000px){.cw-split{grid-template-columns:1fr}
  .cw-mstrip.cw-cells2{border-right:0;border-bottom:1px solid var(--bd)}}
.cw-tp-kind{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:5px}
.cw-tp-reason{font-size:13.5px;color:var(--soft);line-height:1.5}
.cw-allclear{display:flex;gap:9px;align-items:center;color:var(--ok);font-size:13.5px;font-weight:550}
.cw-allclear svg{width:16px;height:16px;flex:none}
.cw-camp-h{display:flex;align-items:center;gap:10px;margin:16px 0 8px}
.cw-camp-h:first-child{margin-top:0}
.cw-camp-h .nm{font-size:13.5px;font-weight:600;color:var(--ink)}
.cw-camp-h .meta{font-size:11.5px;color:var(--faint)}

/* sources trust row (2026-08-08) — quiet footer under the pulse cells:
   which feeds we actually read for THIS client. */
.am-trust{border-top:1px solid var(--bd);background:var(--card-2);padding:8px 15px;font-size:12px;color:var(--muted);display:flex;gap:13px;flex-wrap:wrap;align-items:center}
.am-trust .st{font-size:12px}
.am-trust .cad{margin-left:auto;color:var(--faint);white-space:nowrap}

/* Interested tab (2026-08-08) — positive replies table */
.cw-it-prov{padding:2px 1px 10px;line-height:1.5}
.cw-it-prov b{color:var(--soft);font-weight:600;font-variant-numeric:tabular-nums}
.cw-it-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}
.tblwrap{overflow-x:auto}
.cw-it-tbl td{vertical-align:top}
.cw-it-when{white-space:nowrap;color:var(--muted);font-size:12.5px}
.cw-it-lead b{display:block;font-weight:600;color:var(--ink);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:30ch}
.cw-it-lead span{font-size:11.5px;color:var(--faint)}
.cw-it-txt{color:var(--soft);max-width:46ch;min-width:22ch}
.cw-it-camp{font-size:12px;color:var(--muted);white-space:nowrap;max-width:20ch;overflow:hidden;text-overflow:ellipsis}
.cw-it-more{display:block;width:100%;padding:9px;margin-top:8px;border:1px solid var(--bd);border-radius:5px;background:var(--card-2);color:var(--blue);font-size:12.5px;font-weight:600}
.cw-it-more:hover{background:var(--card-3)}

/* Interested tab v2 (2026-08-09) — one row per contact; the row opens the
   email-chain drawer (an ask-drawer clone: scrim + right aside singleton) */
.cw-it-row{cursor:pointer}
.cw-it-row:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.cw-it-n{display:inline-block;margin-left:5px;padding:0 6px;border-radius:999px;
  background:var(--chip-bg);color:var(--chip-ink);font-size:10.5px;font-weight:700;
  font-variant-numeric:tabular-nums}
.cwit-scrim{position:fixed;inset:0;background:rgba(4,5,6,.45);z-index:296;
  opacity:0;pointer-events:none;transition:opacity .3s}
.cwit-scrim.on{opacity:1;pointer-events:auto}
.cwit-drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,94vw);z-index:297;
  background:var(--bg-2);border-left:1px solid var(--bd);
  box-shadow:-24px 0 60px -24px rgba(23,37,53,.28);
  transform:translateX(102%);transition:transform .38s cubic-bezier(.85,0,.15,1);
  display:flex;flex-direction:column}
.cwit-drawer.on{transform:none}
.cwit-h{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--bd);flex:none}
.cwit-ttl{font-family:var(--display);font-weight:650;font-size:16px;color:var(--ink)}
.cwit-x{margin-left:auto;width:30px;height:30px;border-radius:var(--r-sm);border:1px solid var(--bd);
  background:var(--card);color:var(--muted);font-size:14px;cursor:pointer;flex:none}
.cwit-x:hover{color:var(--ink);border-color:var(--bd-2)}
.cwit-b{flex:1;overflow-y:auto;padding:16px 18px;background:var(--bg)}
.cwit-who{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.cwit-who b{font-size:14.5px;color:var(--ink)}
.cwit-who span{font-size:12px;color:var(--muted)}
.cwit-note{font-size:11.5px;color:var(--faint);margin:2px 0 10px}
.cwit-chain{display:flex;flex-direction:column;gap:10px}
.cwit-m{border:1px solid var(--bd);border-left:2px solid var(--bd);border-radius:10px;
  padding:9px 12px;background:var(--card-2);max-width:92%;align-self:flex-start}
.cwit-m.out{background:var(--blue-soft);border-left-color:var(--blue);align-self:flex-end}
.cwit-mh{display:flex;gap:8px;align-items:baseline;margin-bottom:3px}
.cwit-mh b{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cwit-m.out .cwit-mh b{color:var(--blue)}
.cwit-mh span{font-size:11px;color:var(--faint);margin-left:auto}
.cwit-ms{font-size:12px;font-weight:600;color:var(--soft);margin-bottom:3px}
.cwit-mb{font-size:13px;line-height:1.5;color:var(--ink);white-space:pre-line;overflow-wrap:break-word}

/* ===================================================================== */
/*  CLIENT BOOK board (bk-) — homepage redesign 2026-08-03.               */
/*  Lifecycle lanes + dense table toggle; risk lane = nightly AI read.    */
/* ===================================================================== */
/* v2 2026-08-07: five stage lanes on ONE row inside recessed wells;
   chips ported to the locked scheme-A system (4px rect, neutral field,
   state in the dot — true pills stay reserved for interactive controls). */
.bk-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:start}
@media (max-width:1560px){.bk-board{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1080px){.bk-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.bk-board{grid-template-columns:1fr}}
.bk-board>div{background:var(--bg-2);border:1px solid var(--bd);border-radius:var(--r);padding:8px}
.bk-lane-h{padding:4px 6px 8px}
.bk-lane-h .top{display:flex;align-items:center;gap:7px}
.bk-lane-h .t{font-size:12.5px;font-weight:650;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-lane-h .d{width:7px;height:7px;border-radius:50%;flex:none}
.bk-lane-h .n{font-size:11px;color:var(--faint);margin-left:auto}
.bk-lane-h .hint{font-size:10px;color:var(--faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-lane{display:flex;flex-direction:column;gap:8px;min-height:40px}
.bk-lane-empty{font-size:11.5px;color:var(--faint);border:1px dashed var(--bd-2);border-radius:var(--r-sm);padding:14px 8px;text-align:center;background:var(--card-2)}
.bk-card{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:11px 12px 10px;cursor:pointer;transition:border-color .12s,box-shadow .12s;position:relative;box-shadow:var(--shadow)}
.bk-card:hover{border-color:var(--bd-2);box-shadow:0 3px 10px -2px rgba(45,62,80,.12)}
.bk-card .open{position:absolute;top:10px;right:11px;font-size:10px;font-weight:600;color:var(--blue);opacity:0;transition:.12s;background:var(--card);padding-left:6px}
.bk-card:hover .open,.bk-card:focus-visible .open{opacity:1}
.bk-hd{display:flex;align-items:center;gap:7px;min-width:0}
.bk-hd .hd-dot{width:7px;height:7px;border-radius:50%;flex:none}
.bk-hd b{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-sub{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--faint);margin-top:4px;white-space:nowrap;overflow:hidden}
.bk-sub b{color:var(--muted);font-weight:550}
.bk-day{font-size:9.5px;font-weight:700;color:var(--chip-ink);background:var(--chip-bg);border-radius:4px;padding:1px 6px;font-variant-numeric:tabular-nums;flex:none}
.bk-mid{margin-top:9px}
.bk-prog{display:flex;align-items:center;gap:8px}
.bk-bar{flex:1;height:4px;border-radius:2px;background:var(--bd);overflow:hidden}
.bk-bar i{display:block;height:100%;border-radius:2px;background:var(--blue)}
.bk-prog .f{font-size:10.5px;font-weight:600;color:var(--muted);flex:none}
.bk-warm{display:flex;align-items:center;gap:2.5px;margin-top:7px}
.bk-warm i{flex:1;height:7px;border-radius:2px;background:var(--card-3)}
.bk-warm i.rd{background:var(--ok);opacity:.8}
.bk-warm i.wm{background:var(--warn);opacity:.5}
.bk-warm .f{font-size:10.5px;font-weight:600;color:var(--muted);margin-left:6px;flex:none}
.bk-spark{display:flex;align-items:flex-end;gap:1.5px;height:22px}
.bk-spark i{flex:1;min-width:2px;border-radius:1px 1px 0 0;background:var(--blue);opacity:.5}
.bk-spark i.z{background:var(--card-3);opacity:1;height:2px!important}
.bk-stat{display:flex;gap:9px;margin-top:6px;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap}
.bk-stat b{color:var(--ink);font-weight:620}
.bk-flags{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}
.bk-flag{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;border-radius:4px;padding:2.5px 8px;background:var(--chip-bg);color:var(--chip-ink);font-variant-numeric:tabular-nums;cursor:default;line-height:1.5;white-space:nowrap}
.bk-flag::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--faint);flex:none}
.bk-flag.ok::before{background:var(--ok)}
.bk-flag.warn::before{background:var(--warn)}
.bk-flag.bad::before{background:var(--bad)}
.bk-flag.warn{color:#8a6206}
.bk-flag.bad{color:var(--bad)}
.bk-flag.mut{color:var(--muted)}
.bk-flag.mut::before,.bk-flag.tag::before{display:none}
.bk-flag.tag{color:var(--blue)}
.bk-flag.st::before{background:var(--sd,var(--faint))}
.bk-flag.cand{cursor:pointer}
.bk-flag.cand::before{background:var(--tan)}
.bk-flag.cand:hover{background:#e4ebf2}
.bk-next{display:flex;gap:7px;align-items:baseline;margin-top:9px;padding-top:8px;border-top:1px solid var(--bd);font-size:11px;color:var(--soft);line-height:1.4}
.bk-next::before{content:"→";color:var(--blue);font-weight:700;flex:none}
/* account-management variants (2026-08-08): inbound ask + all-clear */
.bk-next.ask::before{content:"←";color:var(--warn)}
.bk-next.ok{color:var(--ok)}
.bk-next.ok::before{content:"✓";color:var(--ok)}
.d-sub{font-size:11.5px;color:var(--faint);margin-top:2px}
.t-next{font-size:12.5px;color:var(--soft);max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-next::before{content:"→ ";color:var(--blue)}
.t-prog{display:flex;align-items:center;gap:8px;min-width:110px}
.t-prog .bk-bar{width:64px;flex:none}
.t-prog .f{font-size:11.5px;color:var(--muted)}

/* ===== Slack monitor (2026-08-05): timeline channel tag + stage chips ===== */
.cl-stage{background:var(--warn-soft);color:var(--warn)}
.cw-slack{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.02em;
  background:var(--blue-soft);color:var(--blue);border-radius:4px;padding:0 6px;margin-right:3px}
.bk-stage{color:var(--warn);font-weight:600}

/* ===== onboarding pre-flight (2026-08-05): panel + stage stepper ===== */
.ob-score.ok{background:var(--ok-soft);color:var(--ok)}
.ob-score.warn{background:var(--warn-soft);color:var(--warn)}
.ob-dns{display:flex;gap:6px;align-items:center;margin-top:2px}
.ob-tl{margin-top:10px;border-top:1px solid var(--bd);padding-top:6px}
.ob-tlrow{display:flex;gap:8px;align-items:baseline;padding:4px 0;color:var(--muted)}
.ob-tlrow .n{flex:none;width:52px;font-size:10.5px;color:var(--faint)}
.ob-tlrow.done b{color:var(--ok)}
.ob-tlrow.cur b{color:var(--blue)}
.ob-tlrow .x{margin-left:auto;display:flex;gap:5px}
.ob-stagepop{display:none;position:absolute;z-index:30;margin-top:4px;
  background:var(--card);border:1px solid var(--bd);border-radius:8px;
  padding:6px;box-shadow:var(--shadow);gap:4px}
.ob-stagepop.open{display:flex}
.ob-stagepop .cl-pill,.cl-pill.ob-set{cursor:pointer}
.cl-pill.ob-set{background:var(--bd);color:var(--muted)}
.ob-stagepop .ob-clear{background:var(--bad-soft);color:var(--bad)}
.ob-draft{flex:1;min-width:0}
.ob-draft summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:6px}
.ob-draft summary::-webkit-details-marker{display:none}
.ob-draft .car{color:var(--faint);font-size:10px}
.ob-draft[open] .car{transform:rotate(180deg)}
.ob-draft-body{margin:8px 0 0;padding:10px 12px;background:var(--card);
  border:1px solid var(--bd);border-radius:8px;font-size:12px;line-height:1.55;
  font-family:inherit;white-space:pre-wrap;word-break:break-word;color:var(--ink)}

/* ===== activity heatmap (Reve Canvas, locked 2026-08-03) — replaces the
   tl4bp dot band everywhere activityHTML renders (pipeline, rep modal) ===== */
.hm{display:flex;gap:6px;align-items:center}
.hm .lbs{display:flex;flex-direction:column;gap:3px;flex:none}
.hm .lbs i{font-size:7.5px;font-weight:700;letter-spacing:.06em;color:var(--faint);font-style:normal;line-height:8px;text-align:right;width:24px}
/* one .bcol per bucket (both lanes) — the hover target for the bucket tip;
   the 1px side padding recreates the old 2px inter-column gap */
.hm .grid{display:flex}
.hm .bcol{position:relative;display:flex;flex-direction:column;gap:2px;padding:4px 1px}
/* must beat the sticky thead (8) + topbar (30) or the tip paints under them */
.hm .bcol.hs:hover{z-index:40}
.hm .bcol.hs:hover .c{box-shadow:0 0 0 1.5px var(--bd-2)}
.hm .bcol:hover .tl4-tip{display:block}
.hm .c{width:7px;height:8px;border-radius:2px;background:var(--bg-2)}
.hm .c.u1{background:#cfe2e6}.hm .c.u2{background:#8fbfc9}.hm .c.u3{background:#47929f}
.hm .c.t1{background:#cde9da}.hm .c.t2{background:#8ccdaa}.hm .c.t3{background:#35996a}
.hm .c.m{background:#a8935f}
.hm .c.mx{background:var(--bad)}
.hm .ql{font-size:8.5px;font-weight:650;color:var(--warn);flex:none;white-space:nowrap}
/* bucket tip interior — tl4-tip box, acts stacked with hairline separators */
.hm-th{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:650;
  color:var(--faint);margin-bottom:6px;font-variant-numeric:tabular-nums}
.hm-b{display:block}
.hm-b+.hm-b{margin-top:7px;padding-top:7px;border-top:1px solid var(--bd)}
.hm-more{display:block;font-size:10.5px;color:var(--faint);margin-top:6px}

/* ---------- Media profile card (deal workspace, DOE decks feature) ----------
   ic-grid's hairline-gap cells at 3-up; provenance rides the factCell
   src-badge; call-sourced values carry a tan "(call)" tag (second voice). */
.ws-media-h{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 12px}
.ws-media-h h3{font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--soft);margin:0}
.ws-media-h .asof{font-size:11.5px;color:var(--faint)}
.ws-media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:var(--r-sm);overflow:hidden}
@media(max-width:1100px){.ws-media-grid{grid-template-columns:repeat(2,1fr)}}
.ws-media .ic-v{font-size:15px;gap:6px;font-variant-numeric:tabular-nums}
.ws-media .ic-v small{font-size:12px;color:var(--muted);font-weight:500}
.ws-media-call{font-size:10.5px;color:var(--tan);font-weight:650;letter-spacing:.03em}
.ws-media-gaps{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ws-media-gap{font-size:11.5px;color:var(--chip-ink);background:var(--chip-bg);border-radius:999px;padding:3px 10px}
.ws-media-gap::before{content:"–";margin-right:5px;color:var(--faint)}
.ws-media-noacc{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:var(--warn-soft);border:1px solid color-mix(in srgb, var(--warn) 25%, transparent);border-radius:var(--r-sm);padding:10px 13px;font-size:13px;color:var(--warn);margin-bottom:10px}
.ws-media-noacc a{color:var(--blue);font-weight:550;white-space:nowrap}
.ws-media-noacc .hint{color:var(--muted);font-size:12px}
.ws-media-foot{display:flex;align-items:center;gap:7px;margin-top:12px;padding-top:11px;border-top:1px solid var(--bd);font-size:12.5px;color:var(--muted)}
.ws-media-foot a{color:var(--blue);font-weight:550}
.ws-media-foot span{color:var(--faint)}

/* ===== ASK REVE — chat drawer + launcher (an-drawer clone) =====
   z ladder: launcher 285 (over content, under every scrim); scrim 296 /
   drawer 297 sit above the analytics pair (290/295) so chat can open over
   any view — askOpen() closes the analytics drawer first regardless; the
   chart tooltip (300) stays on top of everything. */
.ask-fab{position:fixed;right:26px;bottom:26px;z-index:285;width:52px;height:52px;
  border-radius:50%;border:1px solid var(--shell-bd);background:var(--shell);color:#e8edf2;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 10px 30px -8px rgba(10,14,18,.5);transition:transform .18s,box-shadow .18s}
.ask-fab svg{width:22px;height:22px}
.ask-fab:hover{transform:translateY(-2px);box-shadow:0 16px 36px -10px rgba(10,14,18,.55)}
body.ask-on .ask-fab{display:none}
.ask-scrim{position:fixed;inset:0;background:rgba(4,5,6,.45);z-index:296;
  opacity:0;pointer-events:none;transition:opacity .3s}
.ask-scrim.on{opacity:1;pointer-events:auto}
.ask-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,94vw);z-index:297;
  background:var(--bg-2);border-left:1px solid var(--bd);
  box-shadow:-24px 0 60px -24px rgba(23,37,53,.28);
  transform:translateX(102%);transition:transform .38s cubic-bezier(.85,0,.15,1);
  display:flex;flex-direction:column}
.ask-drawer.on{transform:none}
.ask-h{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--bd);flex:none}
.ask-ttl{font-family:var(--display);font-weight:650;font-size:16px;color:var(--ink);flex:none}
.ask-chipwrap{min-width:0;display:flex;flex:1}
.ask-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 9px;
  border:1px solid color-mix(in srgb,var(--blue) 30%,var(--bd));border-radius:999px;
  background:var(--blue-soft);color:var(--blue);font-size:11.5px;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ask-chip.all{background:var(--chip-bg);color:var(--chip-ink);border-color:var(--bd)}
.ask-chip-x{border:0;background:none;color:inherit;cursor:pointer;font-size:11px;
  padding:0 1px;opacity:.7;flex:none}
.ask-chip-x:hover{opacity:1;color:var(--bad)}
.ask-x{margin-left:auto;width:30px;height:30px;border-radius:var(--r-sm);border:1px solid var(--bd);
  background:var(--card);color:var(--muted);font-size:14px;cursor:pointer;flex:none}
.ask-x:hover{color:var(--ink);border-color:var(--bd-2)}
.ask-log{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;
  gap:12px;background:var(--bg)}
.ask-msg{display:flex;gap:9px;align-items:flex-start}
.ask-msg.me{justify-content:flex-end}
.ask-av{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;
  justify-content:center;font-size:12px;font-weight:800;background:var(--forest);color:#eaf3f0;
  border:1px solid var(--bd-2)}
.ask-b{max-width:86%;background:var(--card);border:1px solid var(--bd);border-radius:12px;
  border-top-left-radius:4px;padding:9px 12px;font-size:13.5px;line-height:1.5;
  color:var(--ink);overflow-wrap:break-word;box-shadow:var(--shadow)}
.ask-msg.me .ask-b{background:var(--blue-soft);
  border-color:color-mix(in srgb,var(--blue) 25%,var(--bd));
  border-radius:12px;border-top-right-radius:4px;white-space:pre-wrap}
.ask-b p{margin:0 0 8px}
.ask-b p:last-child{margin-bottom:0}
.ask-b ul{margin:0 0 8px;padding-left:18px}
.ask-b ul:last-child{margin-bottom:0}
.ask-b li{margin:2px 0}
.ask-b.err{background:var(--bad-soft);
  border-color:color-mix(in srgb,var(--bad) 30%,var(--bd));color:var(--bad)}
.ask-cite{color:var(--blue);font-weight:600;text-decoration:none;
  border-bottom:1px dashed color-mix(in srgb,var(--blue) 45%,transparent)}
.ask-cite:hover{border-bottom-style:solid}
.ask-orgtag{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);margin-bottom:5px}
.ask-typing .d i{animation:askdot 1.2s infinite;display:inline-block;font-style:normal}
.ask-typing .d i:nth-child(2){animation-delay:.2s}
.ask-typing .d i:nth-child(3){animation-delay:.4s}
.ask-eta{color:var(--faint);font-size:11.5px}
@keyframes askdot{0%,60%,100%{opacity:.25}30%{opacity:1}}
.ask-f{flex:none;display:flex;gap:8px;align-items:flex-end;padding:12px 14px;
  border-top:1px solid var(--bd);background:var(--bg-2)}
.ask-in{flex:1;resize:none;border:1px solid var(--bd-2);border-radius:var(--r-sm);
  background:var(--card);color:var(--ink);font:inherit;font-size:13.5px;line-height:1.4;
  padding:8px 10px;max-height:120px;outline:none;min-height:36px}
.ask-in:focus{border-color:var(--blue)}
.ask-send{flex:none;border:0;border-radius:var(--r-sm);background:var(--forest);color:#eaf3f0;
  font-weight:650;font-size:13px;padding:9px 14px;cursor:pointer}
.ask-send:hover{background:var(--forest-2)}
.ask-send:disabled{opacity:.5;cursor:default}
.ask-rail{width:100%;justify-content:center;margin-top:10px;display:flex}
@media (max-width:760px){.ask-fab{right:16px;bottom:16px}}

/* ---------------------------------------------------------------
   MC pipeline columns (2026-08-09) — board rows carry the Pipeline
   table's activity heatmap (cropped to 15 days), the line-item
   pills (price popover included) and an open-workspace affordance.
   Grid rebased: stripe · rank · $ · deal · chip · owner · activity ·
   items · gist · badges. The lane collapse animation needs
   .mc-rows-i{overflow:hidden}, which clips hover popovers on the
   edge rows — an OPEN lane releases the clip via .settled (mcWire
   re-arms it around every toggle on transitionend).
   --------------------------------------------------------------- */
.mc .mc-line{grid-template-columns:4px 48px 82px minmax(130px,1.1fr) 118px 30px 112px 116px minmax(130px,1.4fr) auto}
.mc .mc-actw{min-width:0;display:flex;align-items:center}
.mc .mc-actw .act{min-width:0}
/* 7-bucket grid: cells breathe a little wider; the trailing quiet
   label is dropped here (the all-quiet state has its own cell) */
.mc .mc-hm15 .c{width:8px}
.mc .mc-hm15 .ql{display:none}
.mc .mc-noact{font-size:10.5px;font-weight:650;color:var(--faint);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.mc .mc-licell,.mc .mc-licell .li-tags{max-width:116px}
.mc .mc-open{flex:none;font-size:11.5px;color:var(--blue);opacity:0;font-weight:600;font-family:var(--ui);
  transition:opacity .15s;white-space:nowrap;cursor:pointer}
.mc .mc-line:hover .mc-open{opacity:1}
.mc .mc-lane.settled .mc-rows-i{overflow:visible}
@media (max-width:1560px){
  .mc .mc-line{grid-template-columns:4px 48px 82px minmax(130px,1.1fr) 118px 30px 112px minmax(130px,1.4fr) auto}
  .mc .mc-licell{display:none}
}
@media (max-width:1320px){
  .mc .mc-line{grid-template-columns:4px 48px 82px minmax(130px,1.1fr) 118px 30px minmax(150px,1.6fr) auto}
  .mc .mc-actw{display:none}
}

/* ---- sales scoreboard (Forecast, 2026-08-10) — RAG chips + Fix first ---- */
#scoretable .sc-cell{min-width:150px}
#scoretable .sc-top{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--soft);white-space:nowrap}
#scoretable .sc-top b{color:var(--ink);font-weight:650}
#scoretable .sc-den{color:var(--muted)}
#scoretable .sc-sub{font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap}
.rag{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none;box-shadow:inset 0 0 0 1px rgba(45,62,80,.12)}
.rag-g{background:var(--ok)}
.rag-a{background:var(--warn)}
.rag-r{background:var(--bad)}
#scoretable .sc-fix{max-width:250px}
.fixfirst{font:inherit;font-size:11.5px;font-weight:600;color:var(--warn);background:var(--warn-soft);border:1px solid color-mix(in srgb, var(--warn) 28%, transparent);border-radius:var(--r-sm);padding:4px 9px;cursor:pointer;text-align:left;line-height:1.35}
.fixfirst:hover{filter:brightness(.97)}
.fixfirst.hot{color:var(--bad);background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 30%, transparent)}
#fcRepModal .sc-gapsub{font-size:11.5px;color:var(--muted);white-space:nowrap;text-align:right}
#fcRepModal .sc-dn{color:var(--muted);font-weight:500}

/* ---------- Onboarding tab (DOE) — obb- namespace ----------
   Canvas-light board over the ClickUp gate ladder; strips, payment lanes,
   Monday summary, right drawer. Read-only v1 — see
   docs/plans/2026-08-11-doe-onboarding-tab.md. */
.obb-kpis{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.obb-kpi{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:10px 16px;min-width:116px}
.obb-kpi b{display:block;font-size:20px;color:var(--ink)}
.obb-kpi span{color:var(--muted);font-size:11.5px}
.obb-kpi.warn b{color:var(--warn)}.obb-kpi.bad b{color:var(--bad)}.obb-kpi.ok b{color:var(--ok)}
.obb-tabs{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.obb-tab{background:var(--card);border:1px solid var(--bd);border-radius:6px;padding:7px 15px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer}
.obb-tab:hover{border-color:var(--bd-2);color:var(--soft)}
.obb-tab.on{background:var(--blue-soft);border-color:color-mix(in srgb,var(--blue) 40%,transparent);color:var(--blue);font-weight:600}
.obb-tab .n{color:var(--bad);font-weight:700;margin-left:2px}
.obb-gen{margin-left:auto;color:var(--faint);font-size:11.5px}
.obb-strip{border:1px solid color-mix(in srgb,var(--bad) 35%,transparent);background:var(--bad-soft);border-radius:8px;padding:10px 14px;margin-bottom:12px}
.obb-strip h4{color:var(--bad);font-size:11.5px;text-transform:uppercase;letter-spacing:.55px;margin:0 0 7px}
.obb-strip .u{display:flex;gap:8px;flex-wrap:wrap}
.obb-strip .u a{color:var(--ink);background:var(--card);border:1px solid var(--bd);border-radius:6px;padding:4px 10px;font-size:12.5px;cursor:pointer;text-decoration:none}
.obb-strip .u a:hover{border-color:var(--bd-2)}
.obb-strip .u i{color:var(--muted);font-style:normal;margin-left:6px;font-size:11px}
.obb-board{display:grid;grid-template-columns:repeat(6,minmax(196px,1fr));gap:12px;overflow-x:auto;align-items:start}
.obb-pay{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:12px;overflow-x:auto;align-items:start}
.obb-col h3{font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0;padding:2px 4px 8px;display:flex;justify-content:space-between;font-weight:600}
.obb-none{color:var(--faint);font-size:12.5px;padding:6px 4px}
.obb-card{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:11px 12px;margin-bottom:10px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.obb-card:hover{border-color:var(--bd-2);box-shadow:0 2px 10px rgba(46,63,80,.07)}
.obb-card.blocked{border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.obb-cname{font-weight:600;font-size:13.5px;color:var(--ink);display:flex;gap:6px;align-items:center}
.obb-cname .t{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.obb-tag{font-size:10px;border:1px solid var(--bd);border-radius:5px;padding:1px 6px;color:var(--muted);flex:none;font-weight:500}
.obb-tag.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.obb-tag.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-soft)}
.obb-flags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.obb-gate{font-size:11.5px;color:var(--violet);margin-top:2px;font-weight:500}
.obb-svcs{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}
.obb-svcs.pad{padding:10px 14px}
.obb-svc{font-size:10.5px;border-radius:5px;padding:1px 7px;background:var(--card-2);border:1px solid var(--bd);color:var(--muted)}
.obb-svc.done{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:var(--ok-soft)}
.obb-svc.mis{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-soft)}
.obb-crow{display:flex;justify-content:space-between;align-items:center;margin-top:7px;font-size:11px;color:var(--muted);gap:8px}
.obb-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:middle}
.obb-dot.paid{background:var(--ok)}.obb-dot.chase{background:var(--bad)}.obb-dot.clearing{background:var(--warn)}.obb-dot.oob{background:var(--violet)}.obb-dot.needed{background:var(--faint)}
.obb-ppl{display:flex;gap:3px}
.obb-ppl i{font-style:normal;background:var(--card-2);border:1px solid var(--bd);width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9.5px;color:var(--muted)}
.obb-money{color:var(--ink);font-weight:600}
.obb-prow{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:11px 13px;margin-bottom:10px;cursor:pointer}
.obb-prow:hover{border-color:var(--bd-2)}
.obb-prow .a{display:flex;justify-content:space-between;font-weight:600;color:var(--ink)}
.obb-prow .b{font-size:12px;color:var(--muted);margin-top:4px}
.obb-prow .b .warn{color:var(--warn)}
.obb-prow .inv{font-size:11.5px;margin-top:6px}
.obb-prow .inv a{margin-right:8px}
.obb-watch{margin-top:7px;color:var(--warn);font-size:12px}
.obb-mon{max-width:1020px}
.obb-mon .btn{margin:0 0 12px}
.obb-mrow{display:grid;grid-template-columns:220px 160px 1fr 130px;gap:12px;padding:10px 14px;border-bottom:1px solid var(--bd);align-items:start;font-size:13px;color:var(--ink);cursor:pointer}
.obb-mrow:hover{background:var(--card-2)}
.obb-mrow.obb-mhead{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;cursor:default;font-weight:600}
.obb-mgate{color:var(--violet);font-size:12px;font-weight:500}
.obb-mnext{color:var(--soft)}
.obb-sub{color:var(--faint);font-size:11px}
.obb-ov{position:fixed;inset:0;background:rgba(20,23,27,.45);display:none;z-index:60}
.obb-ov.on{display:block}
.obb-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,94vw);background:var(--card);border-left:1px solid var(--bd);box-shadow:-12px 0 40px rgba(20,23,27,.18);z-index:61;display:none;overflow-y:auto;padding:22px 24px}
.obb-drawer.on{display:block}
.obb-dhead{display:flex;justify-content:space-between;align-items:center}
.obb-dhead h2{font-size:18px;margin:0;color:var(--ink)}
.obb-x{background:none;border:none;cursor:pointer;color:var(--muted);font-size:22px;padding:2px 8px}
.obb-dmeta{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;margin:14px 0;font-size:12.5px;color:var(--ink)}
.obb-dmeta b{color:var(--muted);font-weight:500;display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px}
.obb-dmeta .warn{color:var(--warn)}
.obb-chk{border:1px solid var(--bd);border-radius:10px;margin-top:14px;overflow:hidden}
.obb-chk h4{padding:9px 14px;background:var(--bg-2);font-size:11px;text-transform:uppercase;letter-spacing:.55px;color:var(--muted);margin:0;font-weight:600}
.obb-ci{display:flex;gap:11px;padding:10px 14px;border-top:1px solid var(--bd);align-items:flex-start}
.obb-ci .st{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;border:1px solid var(--bd-2);color:var(--faint)}
.obb-ci.ok .st{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.obb-ci.low .st{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.obb-ci .b{flex:1}
.obb-ci .lb{font-weight:600;font-size:13px;color:var(--ink)}
.obb-ci .src{font-size:10px;color:var(--faint);margin-left:8px;border:1px solid var(--bd);border-radius:4px;padding:0 5px;text-transform:uppercase;letter-spacing:.4px}
.obb-ci .ev{font-size:12px;color:var(--muted);margin-top:3px}
.obb-ci .note{font-size:11.5px;color:var(--warn);margin-top:3px}
.obb-foot{margin-top:14px;color:var(--faint);font-size:11.5px}
@media(max-width:900px){.obb-board,.obb-pay{display:flex;flex-direction:column}
.obb-mrow{grid-template-columns:1fr 1fr;grid-auto-flow:dense}}

/* =================================================================
   MINI-WORKSPACE OVERLAYS (2026-08-17 follow-ups redesign, user call:
   "update all right side drawers with new modal"). Every right-side
   slide-in drawer becomes a centered floating workspace — one overlay
   language app-wide, on the .fcmodal geometry. Pure presentation:
   each drawer keeps its own class, JS, and open-state class; only the
   geometry/motion is overridden here.
   ================================================================= */
:root :is(.fu2-drawer,.an-drawer,.cwit-drawer,.ask-drawer,.peek,.al-peek,.obb-drawer){
  top:50%;left:50%;right:auto;bottom:auto;
  width:min(720px,94vw);height:auto;max-height:88vh;
  background:var(--card);border:1px solid var(--bd-2);border-radius:14px;
  box-shadow:var(--pop);overflow:hidden;
  transform:translate(-50%,-46%) scale(.98);opacity:0;pointer-events:none;
  transition:opacity .2s,transform .3s cubic-bezier(.2,.9,.25,1);
}
:root :is(.fu2-drawer.on,.an-drawer.on,.cwit-drawer.on,.ask-drawer.on,
          .peek.open,.al-peek.on,.obb-drawer.on){
  transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto;
}
/* the hygiene review workspace runs wider for its two-pane body */
.fu2-drawer.hyg-ws{width:min(880px,94vw)}
/* obb toggles display (not transform) — keep that mechanism + its own scroll */
.obb-drawer{display:none}
.obb-drawer.on{display:block;overflow-y:auto}
/* capped flex columns need shrinkable scroll bodies */
:root :is(.fu2-dr-b,.pk-b,.cwit-b,.ask-b,.an-dr-b,.al-pkbody){min-height:0}
/* the attention-list peek no longer docks — the page keeps its full width */
body.al-peekon #view-org .page-h,body.al-peekon #view-org .org-wrap{margin-right:0!important}
/* scrims behind the workspaces pick up the glass blur */
:root :is(.fu2-scrim,.an-scrim,.cwit-scrim,.ask-scrim,.obb-ov){
  background:rgba(23,37,53,.38);
  -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);
}
.peek-veil.show{background:rgba(23,37,53,.28);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
@media (prefers-reduced-motion:reduce){
  :root :is(.fu2-drawer,.an-drawer,.cwit-drawer,.ask-drawer,.peek,.al-peek,.obb-drawer){transition:none}
}
