/* Plinian OS — design system. Dark by default; [data-theme="light"] flips tokens. */

/* ============ TOKENS ============ */
:root,
:root[data-theme="dark"] {
  --bg-base: #0a0a0c;
  --bg-sunken: #08080a;
  --bg-surface: #101013;
  --bg-card: #16161a;
  --bg-elevated: #1c1c22;
  --bg-hover: rgba(255,255,255,0.04);
  --bg-active: rgba(255,255,255,0.07);
  --border: rgba(255,255,255,0.08);
  --border-strong: rgba(255,255,255,0.14);
  --text: #ededef;
  --text-secondary: #a1a1aa;
  --text-muted: #8b8b96;
  --accent: #3b82f6;
  --accent-hover: #5a9cff;
  --accent-soft: rgba(59,130,246,0.15);
  --success: #10b981;
  --warn: #f59e0b;
  --danger: #ef4444;
  --info: #38bdf8;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.4);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.55);
  color-scheme: dark;
}
:root[data-theme="light"] {
  --bg-base: #ffffff;
  --bg-sunken: #f4f4f6;
  --bg-surface: #fafafa;
  --bg-card: #ffffff;
  --bg-elevated: #ffffff;
  --bg-hover: rgba(0,0,0,0.035);
  --bg-active: rgba(0,0,0,0.06);
  --border: rgba(0,0,0,0.10);
  --border-strong: rgba(0,0,0,0.16);
  --text: #18181b;
  --text-secondary: #52525b;
  --text-muted: #8a8a93;
  --accent: #2563eb;
  --accent-hover: #1d4ed8;
  --accent-soft: rgba(37,99,235,0.10);
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.10);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.16);
  color-scheme: light;
}

:root {
  --rail-w: 244px;
  --assist-w: 372px;
  --topbar-h: 52px;
  --radius: 9px;
  --radius-sm: 6px;
  --radius-lg: 14px;
  --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  /* Per-lane identity palette (l1..l7) — one stable hue per outreach lane, shared by the
     Match Review filter chips, list tags, and sibling strip via the .lane-lN helpers below. */
  --lane-l1: #3b82f6; --lane-l2: #38bdf8; --lane-l3: #10b981; --lane-l4: #a78bfa;
  --lane-l5: #f59e0b; --lane-l6: #fb923c; --lane-l7: #f472b6;
  --lane-l8: #2dd4bf; --lane-l9: #fb7185; --lane-l10: #818cf8; /* general buckets: RE / Co-Invest / OCIO */
}
.lane-l1 { --lane: var(--lane-l1); } .lane-l2 { --lane: var(--lane-l2); }
.lane-l3 { --lane: var(--lane-l3); } .lane-l4 { --lane: var(--lane-l4); }
.lane-l5 { --lane: var(--lane-l5); } .lane-l6 { --lane: var(--lane-l6); }
.lane-l7 { --lane: var(--lane-l7); } .lane-l8 { --lane: var(--lane-l8); }
.lane-l9 { --lane: var(--lane-l9); } .lane-l10 { --lane: var(--lane-l10); }
.lane-swatch { width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--lane, var(--text-muted)); display: inline-block; }

/* ============ RESET ============ */
*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  font-family: var(--font);
  background: var(--bg-base);
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
button { font-family: inherit; cursor: pointer; }
::selection { background: var(--accent-soft); }
[x-cloak] { display: none !important; }

/* Keyboard focus: visible ring everywhere (mouse focus stays clean). */
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-sm); }
:focus:not(:focus-visible) { outline: none; }

/* scrollbars */
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
*::-webkit-scrollbar-track { background: transparent; }

/* ============ AUTH GATE ============ */
.auth-wrap { display: grid; place-items: center; height: 100vh; background:
  radial-gradient(1200px 600px at 50% -10%, rgba(59,130,246,0.12), transparent 60%), var(--bg-base); }
.auth-card { width: 340px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-lg); }
.auth-brand { display: flex; align-items: center; gap: 10px; font-weight: 650; font-size: 17px; margin-bottom: 4px; }
.auth-sub { color: var(--text-muted); font-size: 13px; margin-bottom: 22px; }
.auth-card label { display: block; font-size: 12px; color: var(--text-secondary); margin: 14px 0 6px; }
.auth-err { color: var(--danger); font-size: 12.5px; margin-top: 12px; min-height: 16px; }

/* ============ APP LAYOUT ============ */
.app { display: grid; grid-template-columns: var(--rail-w) 1fr; height: 100vh; overflow: hidden; }
.app.assist-open { grid-template-columns: var(--rail-w) 1fr var(--assist-w); }

/* ---- left rail ---- */
.rail { background: var(--bg-surface); border-right: 1px solid var(--border); display: flex; flex-direction: column; min-height: 0; }
.rail-head { height: var(--topbar-h); display: flex; align-items: center; gap: 9px; padding: 0 16px; font-weight: 650; font-size: 15px; border-bottom: 1px solid var(--border); }
.rail-logo { width: 22px; height: 22px; border-radius: 6px; background: linear-gradient(135deg, #3b82f6, #1d4ed8); display: grid; place-items: center; color: #fff; font-size: 12px; font-weight: 800; }
.rail-logo-img { height: 22px; width: auto; flex: none; vertical-align: middle; }
/* theme-swap the mark: white mountains on the dark UI, dark mountains on light */
.logo-dark { display: none; }
:root[data-theme="light"] .logo-white { display: none; }
:root[data-theme="light"] .logo-dark { display: inline-block; }
.rail-nav { flex: 1; overflow-y: auto; padding: 10px 8px 16px; }
.nav-group-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); padding: 14px 10px 6px; font-weight: 600; }
.nav-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: var(--radius-sm); color: var(--text-secondary); text-decoration: none; font-size: 13.5px; font-weight: 480; border: none; background: none; width: 100%; text-align: left; position: relative; }
.nav-item:hover { background: var(--bg-hover); color: var(--text); }
.nav-item.active { background: var(--accent-soft); color: var(--text); font-weight: 560; }
.nav-item.active::before { content: ""; position: absolute; left: -8px; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: var(--accent); }
.nav-item svg { width: 17px; height: 17px; flex: none; stroke-width: 1.8; }
.nav-badge { margin-left: auto; background: var(--accent); color: #fff; font-size: 10.5px; font-weight: 650; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; display: grid; place-items: center; font-family: var(--mono); }
.rail-foot { border-top: 1px solid var(--border); padding: 8px; }

/* ---- top bar ---- */
.main { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--bg-base); }
.topbar { height: var(--topbar-h); display: flex; align-items: center; gap: 12px; padding: 0 16px; border-bottom: 1px solid var(--border); flex: none; }
.topbar h1 { font-size: 14px; font-weight: 600; margin: 0; color: var(--text); }
.search-trigger { display: flex; align-items: center; gap: 9px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 6px 10px; color: var(--text-muted); font-size: 13px; min-width: 280px; }
.search-trigger:hover { border-color: var(--border-strong); }
.search-trigger svg { width: 15px; height: 15px; }
.kbd { margin-left: auto; font-family: var(--mono); font-size: 10.5px; color: var(--text-muted); background: var(--bg-elevated); border: 1px solid var(--border); border-radius: 4px; padding: 1px 5px; }
.top-spacer { flex: 1; }
.icon-btn { display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--radius-sm); border: 1px solid transparent; background: none; color: var(--text-secondary); }
.icon-btn:hover { background: var(--bg-hover); color: var(--text); }
.demo-toggle { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-card); color: var(--text-secondary); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; cursor: pointer; }
.demo-toggle:hover { border-color: var(--border-strong); color: var(--text); }
.demo-toggle.demo-off { color: var(--text-muted); }
.demo-toggle.demo-off .demo-dot { color: var(--success); }
.demo-toggle.demo-demo { border-color: rgba(59,130,246,0.4); background: rgba(59,130,246,0.10); color: #93c5fd; }
.demo-toggle.demo-demo .demo-dot { color: #60a5fa; }
.demo-toggle.demo-presentation { border-color: rgba(245,158,11,0.4); background: rgba(245,158,11,0.10); color: #fcd34d; }
.demo-toggle.demo-presentation .demo-dot { color: var(--warn); }
.demo-dot { font-size: 10px; line-height: 1; }
.demo-label { line-height: 1; }
.demo-showcase-wrap { position: relative; }
.demo-showcase-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: var(--radius-sm); border: 1px solid rgba(245,158,11,0.4); background: rgba(245,158,11,0.10); color: #fcd34d; font-size: 11.5px; font-weight: 600; cursor: pointer; max-width: 240px; }
.demo-showcase-chip:hover, .demo-showcase-chip.on { border-color: rgba(245,158,11,0.7); }
.demo-showcase-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 180px; }
.demo-chev { font-size: 9px; line-height: 1; opacity: 0.7; }
.demo-picker { position: absolute; top: calc(100% + 6px); right: 0; min-width: 240px; max-height: 340px; overflow-y: auto; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); z-index: 200; padding: 4px; }
.demo-picker-head { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; padding: 8px 10px 6px; }
.demo-picker-opt { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 8px 10px; background: none; border: none; color: var(--text); font-size: 12.5px; text-align: left; cursor: pointer; border-radius: 4px; }
.demo-picker-opt:hover { background: var(--bg-hover); }
.demo-picker-opt.on { color: var(--warn); }
.demo-picker-check { color: var(--warn); font-weight: 700; }
.icon-btn svg { width: 17px; height: 17px; stroke-width: 1.8; }
.btn { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-card); color: var(--text); font-size: 13px; font-weight: 520; }
.btn:hover { background: var(--bg-hover); border-color: var(--border-strong); }
.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn svg { width: 15px; height: 15px; stroke-width: 2; }

/* ---- content ---- */
.content { flex: 1; overflow-y: auto; padding: 24px 28px; min-height: 0; }

/* ---- placeholder view ---- */
.placeholder { max-width: 520px; margin: 8vh auto; text-align: center; color: var(--text-muted); }
.placeholder .ph-icon { width: 46px; height: 46px; margin: 0 auto 16px; color: var(--text-muted); }
.placeholder .ph-icon svg { width: 46px; height: 46px; stroke-width: 1.4; }
.placeholder h2 { color: var(--text); font-size: 18px; margin: 0 0 6px; }
.placeholder p { font-size: 13.5px; line-height: 1.6; }
.ph-tag { display: inline-block; margin-top: 14px; font-family: var(--mono); font-size: 11px; color: var(--accent); background: var(--accent-soft); padding: 3px 10px; border-radius: 20px; }

/* ============ ASSISTANT RAIL ============ */
.assist { background: var(--bg-surface); border-left: 1px solid var(--border); display: flex; flex-direction: column; min-height: 0; }
.assist-head { height: var(--topbar-h); display: flex; align-items: center; gap: 9px; padding: 0 14px; border-bottom: 1px solid var(--border); font-weight: 600; font-size: 13.5px; }
.assist-head .spark { color: var(--accent); }
.assist-head .spark svg { width: 17px; height: 17px; }
.assist-body { flex: 1; overflow-y: auto; padding: 16px; }
.assist-empty { color: var(--text-muted); font-size: 13px; text-align: center; margin-top: 30%; }
.assist-foot { border-top: 1px solid var(--border); padding: 12px; }
.assist-input { width: 100%; resize: none; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text); padding: 10px 12px; font-family: inherit; font-size: 13.5px; }
.assist-input:focus { outline: none; border-color: var(--accent); }

/* ============ SHARED FORM ============ */
.field { width: 100%; background: var(--bg-base); border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text); padding: 9px 11px; font-size: 13.5px; font-family: inherit; }
.field:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.form-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--text); cursor: pointer; padding: 4px 0; }
.form-check input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--accent); cursor: pointer; margin: 0; }

/* ============ COMMAND PALETTE ============ */
.cmdk-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); backdrop-filter: blur(2px); display: grid; place-items: start center; padding-top: 14vh; z-index: 100; }
.cmdk { width: 580px; max-width: 92vw; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); overflow: hidden; }
.cmdk-input { width: 100%; border: none; background: none; color: var(--text); font-size: 16px; padding: 16px 18px; border-bottom: 1px solid var(--border); font-family: inherit; }
.cmdk-input:focus { outline: none; }
.cmdk-list { max-height: 380px; overflow-y: auto; padding: 8px; }
.cmdk-item { display: flex; align-items: center; gap: 11px; padding: 9px 11px; border-radius: var(--radius-sm); color: var(--text-secondary); font-size: 13.5px; }
.cmdk-item.active { background: var(--accent-soft); color: var(--text); }
.cmdk-item svg { width: 16px; height: 16px; }
.cmdk-empty { padding: 26px; text-align: center; color: var(--text-muted); font-size: 13px; }

/* ============ TOAST ============ */
.toasts { position: fixed; bottom: 20px; right: 20px; display: flex; flex-direction: column; gap: 8px; z-index: 200; }
.toast { background: var(--bg-elevated); border: 1px solid var(--border-strong); border-left: 3px solid var(--accent); border-radius: var(--radius-sm); padding: 10px 14px; font-size: 13px; box-shadow: var(--shadow-md); min-width: 220px; }
.toast.success { border-left-color: var(--success); }
.toast.error { border-left-color: var(--danger); }

.spinner { width: 16px; height: 16px; border: 2px solid var(--border-strong); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ============ COCKPIT ============ */
.cockpit { max-width: none; }
.capture-bar { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; margin-bottom: 20px; box-shadow: var(--shadow-sm); }
.capture-input { width: 100%; resize: vertical; min-height: 46px; background: transparent; border: none; color: var(--text); font-family: inherit; font-size: 14.5px; line-height: 1.5; }
.capture-input:focus { outline: none; }
.capture-actions { display: flex; align-items: center; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.cap-cats { display: flex; gap: 6px; }
.chip { padding: 4px 11px; border-radius: 16px; border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); font-size: 12.5px; font-weight: 500; text-transform: capitalize; }
.chip:hover { border-color: var(--border-strong); color: var(--text); }
.chip.on { background: var(--accent-soft); border-color: var(--accent); color: var(--text); }
.capture-actions .btn-primary { margin-left: auto; }
.icon-btn.rec { color: var(--danger); background: rgba(239,68,68,0.12); animation: pulse 1.3s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: 0.5; } }

.cockpit-grid { display: grid; grid-template-columns: 1.7fr 1fr; gap: 18px; align-items: start; }
@media (max-width: 1080px) { .cockpit-grid { grid-template-columns: 1fr; } }

.panel { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.panel-head { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--border); }
.panel-head h3 { margin: 0; font-size: 13.5px; font-weight: 600; }
.panel-body { padding: 8px; }
.seg { display: flex; gap: 2px; margin-left: auto; background: var(--bg-base); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 2px; }
.seg button { border: none; background: none; color: var(--text-muted); font-size: 12px; font-weight: 500; padding: 3px 10px; border-radius: 4px; }
.seg button.on { background: var(--bg-elevated); color: var(--text); box-shadow: var(--shadow-sm); }
.empty { text-align: center; color: var(--text-muted); padding: 38px 16px; font-size: 13.5px; }
.empty-sm { color: var(--text-muted); font-size: 12.5px; padding: 6px 8px; }

.inbox-card { border-radius: var(--radius-sm); margin: 2px 0; }
.inbox-card:hover { background: var(--bg-hover); }
.inbox-card.open { background: var(--bg-base); border: 1px solid var(--border); }
.ic-row { display: flex; align-items: center; gap: 11px; padding: 9px 10px; cursor: pointer; }
.ic-chip { font-size: 10px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.03em; padding: 2px 7px; border-radius: 5px; flex: none; font-family: var(--mono); background: var(--bg-elevated); color: var(--text-secondary); border: 1px solid var(--border); }
.ic-chip[data-chip="email"] { color: #93c5fd; }
.ic-chip[data-chip="meeting"] { color: #c4b5fd; }
.ic-chip[data-chip="reply"] { color: #6ee7b7; }
.ic-main { flex: 1; min-width: 0; }
.ic-title { font-size: 13.5px; font-weight: 520; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic-sub { font-size: 12px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.ic-prio { color: var(--warn); font-size: 9px; }
.ic-time { font-size: 11px; color: var(--text-muted); font-family: var(--mono); flex: none; }
.ic-detail { padding: 4px 12px 12px; }
.ic-body { font-size: 13px; color: var(--text-secondary); line-height: 1.55; white-space: pre-wrap; margin: 2px 0 10px; }
.ic-btns { display: flex; flex-wrap: wrap; gap: 6px; }
.ic-foot { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.ic-meta { font-size: 12.5px; color: var(--text-secondary); margin-bottom: 8px; }
.ic-draft { background: var(--bg-sunken); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 12px; font-family: var(--mono); font-size: 12px; color: var(--text-secondary); white-space: pre-wrap; max-height: 260px; overflow-y: auto; margin: 0; }

.today-section { padding: 8px; }
.today-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); font-weight: 600; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.today-label .count { background: var(--accent-soft); color: var(--accent); border-radius: 10px; padding: 0 6px; font-size: 10.5px; font-family: var(--mono); }
.today-row { display: flex; align-items: center; gap: 9px; padding: 6px 8px; font-size: 13px; border-radius: var(--radius-sm); }
.today-row:hover { background: var(--bg-hover); }
.today-row .rank { font-family: var(--mono); font-size: 11px; color: var(--text-muted); min-width: 16px; }

/* assistant messages */
.amsg { margin-bottom: 12px; display: flex; }
.amsg.user { justify-content: flex-end; }
.amsg-body { max-width: 86%; padding: 9px 12px; border-radius: 12px; font-size: 13.5px; line-height: 1.55; white-space: pre-wrap; }
.amsg.user .amsg-body { background: var(--accent); color: #fff; border-bottom-right-radius: 4px; }
.amsg.agent .amsg-body { background: var(--bg-card); border: 1px solid var(--border); color: var(--text); border-bottom-left-radius: 4px; }
.amsg.error .amsg-body { background: rgba(239,68,68,0.12); border: 1px solid rgba(239,68,68,0.3); color: #fca5a5; }

/* ============ RECORDS ============ */
.records { max-width: 1280px; }
.records.records-wide { max-width: none; }
.rec-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.rec-search-wrap { display: flex; align-items: center; gap: 8px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0 10px; min-width: 240px; }
.rec-search-wrap svg { width: 15px; height: 15px; color: var(--text-muted); flex: none; }
.rec-search { border: none; background: none; color: var(--text); font-size: 13.5px; padding: 7px 0; width: 100%; font-family: inherit; }
.rec-search:focus { outline: none; }
.filter-group { display: flex; gap: 5px; }
.rec-count { margin-left: auto; font-size: 12px; color: var(--text-muted); font-family: var(--mono); }

/* filter builder */
.fb-wrap { position: relative; display: inline-flex; }
.chip.fb-add { display: inline-flex; align-items: center; gap: 5px; text-transform: none; cursor: pointer; }
.chip.fb-add svg { width: 13px; height: 13px; stroke-width: 2.2; }
.fb-pop { position: absolute; top: calc(100% + 7px); left: 0; z-index: 60; width: 270px; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius); padding: 13px; box-shadow: var(--shadow-lg); display: flex; flex-direction: column; gap: 11px; }
.fb-row { display: flex; flex-direction: column; gap: 5px; }
.fb-row > span { font-size: 11px; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; color: var(--text-muted); }
.fb-row .field { padding: 7px 10px; font-size: 13px; }
.fb-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 2px; }
.fb-actions .btn { padding: 6px 14px; }
.chip.fb-chip { display: inline-flex; align-items: center; gap: 6px; text-transform: none; cursor: pointer; }
.chip.fb-chip .fb-x { font-size: 14px; line-height: 1; color: var(--text-secondary); }
.chip.fb-chip:hover .fb-x { color: var(--text); }

.rec-table-wrap { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.rec-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.rec-table thead th { text-align: left; font-weight: 560; color: var(--text-muted); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.03em; padding: 10px 14px; border-bottom: 1px solid var(--border); cursor: pointer; user-select: none; white-space: nowrap; }
.rec-table thead th:hover { color: var(--text-secondary); }
.sort-ind { color: var(--accent); font-size: 11px; }
.rec-table tbody tr { border-bottom: 1px solid var(--border); cursor: pointer; }
.rec-table tbody tr:last-child { border-bottom: none; }
.rec-table tbody tr:hover { background: var(--bg-hover); }
.rec-table td { padding: 10px 14px; color: var(--text-secondary); white-space: nowrap; max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
.rec-table td.primary { color: var(--text); font-weight: 520; }
.rec-table td.mono { font-family: var(--mono); font-size: 12.5px; }
.rec-link { color: var(--accent); text-decoration: none; font-size: 12.5px; }
.rec-link:hover { color: var(--accent-hover); text-decoration: underline; }

/* multi-select */
.rec-check-col { width: 38px; padding-right: 0 !important; }
.rec-table thead th.rec-check-col, .rec-table td.rec-check-col { cursor: default; text-align: center; }
.rec-check-col input[type="checkbox"] { width: 15px; height: 15px; accent-color: var(--accent); cursor: pointer; vertical-align: middle; margin: 0; }
.rec-table tbody tr.row-selected, .rec-table tbody tr.row-selected:hover { background: var(--accent-soft); }
.rec-table tbody tr.rec-group-head { background: var(--bg-surface); cursor: default; }
.rec-table tbody tr.rec-group-head:hover { background: var(--bg-surface); }
.rec-table tbody tr.rec-group-head td { padding: 9px 14px; border-top: 1px solid var(--border); }
.rec-group-name { font-size: 11.5px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text); }
.rec-group-count { font-family: var(--mono); font-size: 12px; color: var(--accent); font-weight: 600; margin-left: 8px; }

/* bulk action bar */
.bulk-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: 22px; z-index: 150; display: flex; flex-direction: column; align-items: stretch; }
.bulk-actions { display: flex; align-items: center; gap: 8px; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-lg); padding: 8px 12px; box-shadow: var(--shadow-lg); }
.bulk-count { font-size: 13px; color: var(--text); font-weight: 560; white-space: nowrap; padding: 0 4px; }
.bulk-count b { color: var(--accent); font-family: var(--mono); }
.bulk-sep { width: 1px; align-self: stretch; background: var(--border); margin: 2px 0; }
.bulk-actions .btn { white-space: nowrap; }
.bulk-actions .btn.on { background: var(--accent-soft); border-color: var(--accent); color: var(--text); }
.bulk-clear { width: 28px; height: 28px; font-size: 14px; }
.bulk-panel { background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-lg) var(--radius-lg) 0 0; padding: 12px 14px; box-shadow: var(--shadow-lg); margin-bottom: -1px; }
.bulk-panel-row { display: flex; align-items: center; gap: 10px; }
.bulk-panel-label { font-size: 13px; color: var(--text-secondary); }
.bulk-panel-row .field { width: auto; min-width: 160px; padding: 7px 10px; }
.bulk-campaign { align-items: flex-start; }
.bulk-campaign-input { position: relative; min-width: 250px; }
.bulk-campaign-results { position: absolute; bottom: calc(100% + 4px); left: 0; right: 0; background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); max-height: 200px; overflow-y: auto; z-index: 5; }
.bulk-campaign-opt { display: block; width: 100%; text-align: left; padding: 8px 11px; font-size: 13px; color: var(--text-secondary); background: none; border: none; border-bottom: 1px solid var(--border); }
.bulk-campaign-opt:last-child { border-bottom: none; }
.bulk-campaign-opt:hover { background: var(--bg-hover); color: var(--text); }
.bulk-err { color: var(--danger); font-size: 12px; margin-top: 8px; }

/* merge modal */
.review.merge-modal { width: 600px; max-width: 92vw; }
.review.pick-modal { width: 560px; max-width: 92vw; }
.pick-body { padding: 16px 20px; max-height: 60vh; overflow-y: auto; }
.pick-search-wrap { display: flex; flex-direction: column; gap: 10px; }
.pick-results { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; max-height: 360px; overflow-y: auto; }
.pick-opt { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; background: var(--bg-elevated); border: none; border-bottom: 1px solid var(--border); cursor: pointer; text-align: left; color: var(--text); }
.pick-opt:last-child { border-bottom: none; }
.pick-opt:hover { background: var(--bg-hover); }
.pick-opt-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.pick-opt-name { font-size: 13.5px; font-weight: 520; color: var(--text); }
.pick-opt-sub { font-size: 11.5px; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pick-opt-co { font-size: 11.5px; color: var(--text-secondary); font-style: italic; white-space: nowrap; }
.pick-empty { padding: 14px; text-align: center; font-size: 13px; color: var(--text-muted); border: 1px dashed var(--border); border-radius: var(--radius-sm); }
.pick-confirm { display: flex; flex-direction: column; gap: 14px; padding: 8px 4px; }
.pick-confirm-row { display: flex; justify-content: space-between; align-items: start; padding: 12px 14px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); }
.pick-move-line { font-size: 13.5px; color: var(--text); padding: 10px 14px; background: var(--bg-base); border-left: 2px solid var(--accent); border-radius: 0 4px 4px 0; }
.pick-move-line b { color: var(--text); font-weight: 600; }
.pick-note { font-size: 11.5px; color: var(--text-muted); margin: 0; }
.merge-modal .review-body { display: block; }
.merge-hint { font-size: 13px; color: var(--text-secondary); line-height: 1.5; margin-bottom: 14px; }
.merge-choices { display: flex; flex-direction: column; gap: 8px; }
.merge-choice { display: flex; align-items: center; gap: 11px; padding: 11px 13px; border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; }
.merge-choice:hover { border-color: var(--border-strong); }
.merge-choice.on { border-color: var(--accent); background: var(--accent-soft); }
.merge-choice input[type="radio"] { width: 16px; height: 16px; accent-color: var(--accent); flex: none; }
.merge-choice-body { flex: 1; min-width: 0; }
.merge-choice-title { font-size: 14px; font-weight: 560; color: var(--text); }
.merge-choice-sub { font-size: 12px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.merge-keep-badge { font-size: 11px; font-weight: 600; color: var(--accent); border: 1px solid var(--accent); border-radius: 5px; padding: 2px 7px; flex: none; }
.merge-fill { margin-top: 16px; border-top: 1px solid var(--border); padding-top: 13px; }
.merge-fill-label { font-size: 12px; color: var(--text-muted); margin-bottom: 8px; }
.merge-fill-row { display: flex; flex-direction: column; gap: 2px; padding: 6px 0; border-bottom: 1px solid var(--border); }
.merge-fill-row:last-child { border-bottom: none; }
.merge-fill-key { color: var(--text-muted); font-family: var(--mono); font-size: 11px; }
.merge-fill-val { color: var(--text-secondary); font-size: 12.5px; text-align: left; white-space: normal; overflow-wrap: anywhere; line-height: 1.45; }
.tag { display: inline-block; padding: 2px 9px; border-radius: 5px; font-size: 11.5px; font-weight: 520; background: var(--bg-elevated); border: 1px solid var(--border); color: var(--text-secondary); text-transform: capitalize; }
.rec-pager { display: flex; align-items: center; gap: 10px; justify-content: flex-end; padding: 12px 14px; border-top: 1px solid var(--border); font-size: 12.5px; color: var(--text-muted); }
.rec-pager .btn { padding: 4px 12px; }

/* board */
.rec-board { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 8px; align-items: flex-start; }
.board-col { flex: 1; min-width: 230px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius); }
.board-col-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: 12.5px; font-weight: 600; }
.board-count { font-family: var(--mono); font-size: 11px; color: var(--text-muted); background: var(--bg-base); border-radius: 10px; padding: 1px 8px; }
.board-col-body { padding: 8px; display: flex; flex-direction: column; gap: 8px; min-height: 60px; }
.board-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 11px; cursor: pointer; }
.board-card:hover { border-color: var(--accent); }
.board-card-title { font-size: 13px; font-weight: 520; }
.board-card-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 6px; font-size: 11.5px; color: var(--text-muted); }
.board-card-meta .mono { font-family: var(--mono); }
.board-empty { text-align: center; color: var(--text-muted); font-size: 18px; padding: 8px; }

/* ============ RECORD DRAWER ============ */
/* Record detail = centered pop-out modal (was a right-rail drawer). */
.drawer-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.55); display: grid; place-items: center; padding: 28px; z-index: 120; }
.drawer { position: relative; width: 960px; max-width: 94vw; max-height: 90vh; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); display: flex; flex-direction: column; overflow: hidden; }
.drawer-drop { position: absolute; inset: 0; z-index: 20; background: var(--accent-soft); border: 2px dashed var(--accent); border-radius: var(--radius-lg); display: grid; place-items: center; pointer-events: none; }
.drawer-drop-inner { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--accent); font-size: 14px; font-weight: 600; }
.drawer-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 24px; border-bottom: 1px solid var(--border); }
.drawer-obj { font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); font-weight: 600; }
.drawer-title { font-size: 20px; font-weight: 660; margin-top: 3px; }
.drawer-head .icon-btn { margin-left: auto; flex: none; }
.drawer-body { flex: 1; overflow-y: auto; padding: 18px 24px 22px; }
/* Two-column field grid; long free-text fields span both columns. */
.drawer-fields { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
.drawer-field { display: grid; grid-template-columns: 132px 1fr; gap: 14px; align-items: start; padding: 9px 0; border-bottom: 1px solid var(--border); min-width: 0; }
.drawer-field.wide { grid-column: 1 / -1; grid-template-columns: 132px 1fr; }
.drawer-field dt { color: var(--text-muted); font-size: 12px; line-height: 1.4; }
.drawer-field dd { margin: 0; color: var(--text); font-size: 13px; line-height: 1.45; word-break: break-word; }
@media (max-width: 720px) { .drawer-fields { grid-template-columns: 1fr; } }

/* ============ DRAFTS QUEUE ============ */
.draft-list { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.draft-card { display: flex; align-items: center; gap: 11px; padding: 11px 14px; border-bottom: 1px solid var(--border); cursor: pointer; }
.draft-card:last-child { border-bottom: none; }
.draft-card:hover { background: var(--bg-hover); }
.vf-pill { font-size: 10px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.03em; padding: 2px 7px; border-radius: 5px; font-family: var(--mono); }
.vf-pill.block { background: rgba(239,68,68,0.14); color: #fca5a5; }
.vf-pill.flag { background: rgba(245,158,11,0.14); color: #fcd34d; }

/* ============ REVIEW MODAL (compliance gate) ============ */
.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.55); backdrop-filter: blur(2px); display: grid; place-items: center; z-index: 130; padding: 4vh 16px; }
.review { width: 920px; max-width: 96vw; max-height: 92vh; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); display: flex; flex-direction: column; overflow: hidden; }
.review.review-wide { width: 1240px; }
.review-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.review-title { font-size: 15px; font-weight: 620; }
.review-body { flex: 1; overflow-y: auto; display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; padding: 18px; }
@media (max-width: 760px) { .review-body { grid-template-columns: 1fr; } }
.rv-label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; margin: 12px 0 5px; }
.rv-label:first-child { margin-top: 0; }
.rv-body { resize: vertical; line-height: 1.55; font-size: 13.5px; min-height: 220px; }
.rv-revise { display: flex; gap: 8px; margin-top: 12px; }
.rv-revise .field { flex: 1; }
.review-side { display: flex; flex-direction: column; gap: 14px; }
.rv-section { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; }
.rv-section-head { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; font-weight: 600; margin-bottom: 10px; }
.rv-section-head .btn { padding: 3px 9px; font-size: 12px; }
.rv-pass { color: var(--success); font-size: 12.5px; }
.vf { padding: 8px 0; border-top: 1px solid var(--border); }
.vf:first-of-type { border-top: none; padding-top: 0; }
.vf-name { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text); }
.vf-evi { font-size: 11.5px; color: var(--text-muted); font-family: var(--mono); margin-top: 4px; padding-left: 2px; }
.rv-rationale { font-size: 12.5px; color: var(--text-secondary); line-height: 1.55; margin: 0; white-space: pre-wrap; }
.review-foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 18px; border-top: 1px solid var(--border); background: var(--bg-surface); }
.compliance-gate { display: flex; flex-direction: column; gap: 4px; }
.ck { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-secondary); cursor: pointer; }
.ck input { accent-color: var(--accent); width: 15px; height: 15px; }
.ck.danger { color: #fca5a5; }
.rv-msg { font-size: 12.5px; color: var(--success); max-width: 280px; }
.rv-msg.err { color: var(--danger); }

/* draft review: context block + pre-flight meta */
.rv-ctx { padding: 4px 0; }
.rv-ctx + .rv-ctx { border-top: 1px dashed var(--border); margin-top: 8px; padding-top: 10px; }
.rv-ctx-name { font-size: 13.5px; font-weight: 600; color: var(--text); }
.rv-ctx-sub { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.rv-ctx-sub.rv-ctx-warn { color: var(--warn); }
.link-pill.rv-add-btn { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); cursor: pointer; }
.link-pill.rv-add-btn:hover { background: rgba(59,130,246,0.22); }
.link-pill.rv-add-btn::after { content: none; }

/* Add-to-CRM inline form */
.rv-add { margin-top: 12px; padding: 12px; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); display: flex; flex-direction: column; gap: 6px; }
.rv-add-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); margin-top: 4px; }
.rv-add-label:first-child { margin-top: 0; }
.rv-add .field { padding: 7px 10px; font-size: 13px; }
.rv-add-co { position: relative; }
.rv-add-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: var(--radius-sm); background: var(--accent-soft); border: 1px solid var(--accent); color: var(--text); font-size: 12.5px; }
.rv-add-chip button { background: none; border: none; color: var(--text-secondary); font-size: 14px; line-height: 1; padding: 0; cursor: pointer; }
.rv-add-results { position: absolute; top: 100%; left: 0; right: 0; margin-top: 3px; background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); max-height: 180px; overflow-y: auto; z-index: 5; }
.rv-add-opt { display: block; width: 100%; text-align: left; padding: 7px 11px; font-size: 13px; color: var(--text-secondary); background: none; border: none; border-bottom: 1px solid var(--border); cursor: pointer; }
.rv-add-opt:last-child { border-bottom: none; }
.rv-add-opt:hover { background: var(--bg-hover); color: var(--text); }
.rv-add-create { margin-top: 6px; padding: 6px 10px; font-size: 12.5px; color: var(--accent); background: none; border: 1px dashed var(--accent); border-radius: var(--radius-sm); cursor: pointer; text-align: left; }
.rv-add-create:hover { background: var(--accent-soft); }
.rv-add-err { font-size: 12px; color: var(--danger); margin-top: 4px; }
.rv-add-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.rv-add-actions .btn { padding: 6px 14px; }

/* Cleanup view (outreach data hygiene) */
.cleanup { padding-bottom: 90px; }
.cleanup-head { margin-bottom: 20px; }
.cleanup-head h2 { font-size: 22px; font-weight: 650; margin: 0 0 6px; color: var(--text); }
.cleanup-head p { font-size: 13px; color: var(--text-secondary); margin: 0; max-width: 720px; line-height: 1.5; }
.cleanup-section { margin-bottom: 28px; }
.cleanup-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.cleanup-section-head h3 { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text); margin: 0; }
.cleanup-count { font-family: var(--mono); font-size: 13px; color: var(--accent); font-weight: 600; margin-left: 6px; }
.cleanup-section-sub { font-size: 12px; color: var(--text-muted); margin: 0 0 12px; line-height: 1.5; max-width: 760px; }
.cleanup-section-sub code { font-family: var(--mono); font-size: 11.5px; color: var(--text-secondary); background: var(--bg-elevated); padding: 1px 5px; border-radius: 3px; }
.cleanup-empty { font-size: 13px; color: var(--text-muted); padding: 18px; background: var(--bg-card); border: 1px dashed var(--border); border-radius: var(--radius); text-align: center; }
.cleanup-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.cleanup-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.cleanup-card-kind { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); }
.cleanup-card-name { font-size: 14.5px; font-weight: 600; color: var(--text); }
.cleanup-card-sub { font-size: 12px; color: var(--text-secondary); margin-bottom: 8px; }
.cleanup-card-btn { margin-top: auto; align-self: flex-start; }
.cleanup-table { margin-top: 4px; }
.cleanup-sub { font-size: 11.5px; color: var(--text-muted); margin-top: 2px; }
.cleanup-picked { display: flex; flex-wrap: wrap; gap: 4px; }
.chip.cleanup-pickchip { display: inline-flex; align-items: center; gap: 5px; text-transform: none; }
.chip.cleanup-pickchip button { background: none; border: none; color: var(--text-secondary); font-size: 14px; line-height: 1; padding: 0; cursor: pointer; }
.cleanup-camp-pick { position: relative; min-width: 240px; }
.cleanup-camp-pick .field { padding: 7px 10px; font-size: 13px; }
.cleanup-camp-results { position: absolute; bottom: calc(100% + 4px); left: 0; right: 0; background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); max-height: 220px; overflow-y: auto; z-index: 5; }
.cleanup-camp-opt { display: block; width: 100%; text-align: left; padding: 7px 11px; font-size: 13px; color: var(--text-secondary); background: none; border: none; border-bottom: 1px solid var(--border); cursor: pointer; }
.cleanup-camp-opt:last-child { border-bottom: none; }
.cleanup-camp-opt:hover { background: var(--bg-hover); color: var(--text); }

/* Cleanup v2: expandable contact rows + bigger tag modal */
.cleanup-list { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--bg-card); }
.cleanup-list-head { display: grid; grid-template-columns: 38px 2.2fr 1.5fr 0.7fr 1fr 1.1fr; gap: 12px; padding: 9px 14px; background: var(--bg-surface); border-bottom: 1px solid var(--border); font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); align-items: center; }
.cleanup-list-head .rec-check-col { padding: 0; }
.cleanup-row { border-bottom: 1px solid var(--border); }
.cleanup-row:last-child { border-bottom: none; }
.cleanup-row-main { display: grid; grid-template-columns: 38px 2.2fr 1.5fr 0.7fr 1fr 1.1fr; gap: 12px; padding: 9px 14px; align-items: center; font-size: 13px; color: var(--text-secondary); cursor: pointer; }
.cleanup-row-main:hover { background: var(--bg-hover); }
.cleanup-row.row-selected, .cleanup-row.row-selected .cleanup-row-main { background: var(--accent-soft); }
.cleanup-row-main .rec-check-col { padding: 0; }
.cleanup-cell-contact { display: flex; align-items: center; gap: 7px; min-width: 0; }
.cleanup-cell-contact > span:last-child { min-width: 0; overflow: hidden; }
.cleanup-row-name { color: var(--text); font-weight: 520; display: flex; align-items: center; gap: 7px; }
.cleanup-cell-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.cleanup-name-pill { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--warn); border: 1px solid rgba(245,158,11,0.4); background: rgba(245,158,11,0.10); border-radius: 5px; padding: 1px 5px; cursor: help; }
.cleanup-name-pill.notperson { display: inline-flex; align-items: center; gap: 4px; color: var(--text-muted); border-color: var(--border); background: var(--bg-elevated); }
.cleanup-name-fix { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 520; color: #6ee7b7; border: 1px solid rgba(16,185,129,0.4); background: rgba(16,185,129,0.12); border-radius: 5px; padding: 1px 5px 1px 4px; cursor: help; }
.cleanup-cell-company { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; }
.cleanup-co-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.cleanup-camp-list { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.chip.cleanup-camp-chip { font-size: 10.5px; padding: 1px 6px; text-transform: none; background: var(--bg-card); border-color: var(--border); color: var(--text-secondary); max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cleanup-name-accept { background: none; border: none; color: #34d399; font-size: 12px; line-height: 1; padding: 0 2px; cursor: pointer; }
.cleanup-name-accept:hover { color: #6ee7b7; }
.cleanup-name-x { background: none; border: none; color: var(--text-muted); font-size: 13px; line-height: 1; padding: 0 2px; cursor: pointer; }
.cleanup-name-x:hover { color: var(--danger); }
.cleanup-firstonly-btn { font-size: 10.5px; font-weight: 500; color: var(--text-muted); background: var(--bg-card); border: 1px solid var(--border); border-radius: 5px; padding: 1px 6px; cursor: pointer; }
.cleanup-firstonly-btn:hover { color: var(--text); background: var(--bg-elevated); border-color: var(--border-strong); }
.cleanup-name-inline { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.cleanup-name-edit { display: inline-flex; align-items: center; gap: 4px; }
.cleanup-name-input { height: 26px; padding: 2px 8px; font-size: 12.5px; width: 200px; }
.cleanup-sugg { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.cleanup-sugg-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); font-weight: 600; }
.chip.cleanup-sugg-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; padding: 1px 5px 1px 9px; text-transform: none; background: rgba(59,130,246,0.10); border-color: rgba(59,130,246,0.35); color: #93c5fd; cursor: help; }
.chip.cleanup-sugg-chip.ai { background: rgba(168,85,247,0.12); border-color: rgba(168,85,247,0.4); color: #d8b4fe; }
.cleanup-sugg-x { background: none; border: none; color: var(--text-muted); font-size: 13px; line-height: 1; padding: 0 2px; cursor: pointer; }
.cleanup-sugg-x:hover { color: var(--danger); }
.cleanup-sugg { flex-wrap: wrap; }
.cleanup-sugg-btn { font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 5px; background: var(--accent); color: #fff; border: 1px solid var(--accent); cursor: pointer; }
.cleanup-sugg-btn:hover { background: var(--accent-hover); }
.cleanup-row-detail { padding: 4px 14px 12px 60px; background: var(--bg-base); border-top: 1px dashed var(--border); }
.cleanup-sample { padding: 7px 0; border-bottom: 1px solid var(--border); }
.cleanup-sample:last-child { border-bottom: none; }
.cleanup-sample-top { display: flex; align-items: baseline; gap: 8px; }
.cleanup-sample-dir { font-family: var(--mono); font-size: 12px; flex: none; }
.cleanup-sample-dir.inbound { color: var(--success); }
.cleanup-sample-dir.outbound { color: var(--accent); }
.cleanup-sample-subj { flex: 1; min-width: 0; font-size: 13px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cleanup-sample-date { font-size: 11.5px; color: var(--text-muted); flex: none; }
.cleanup-sample-link { font-size: 11.5px; color: var(--accent); text-decoration: none; flex: none; }
.cleanup-sample-link:hover { text-decoration: underline; }
.cleanup-sample-snip { font-size: 12px; color: var(--text-muted); margin-top: 3px; padding-left: 22px; line-height: 1.4; }

/* Cleanup tag modal */
.review.cleanup-modal { width: 700px; max-width: 96vw; }
.cleanup-modal .review-body { display: block; padding: 18px 22px; }
.cleanup-mode { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 6px; }
.cleanup-mode-opt { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; font-size: 13.5px; }
.cleanup-mode-opt:hover { border-color: var(--border-strong); }
.cleanup-mode-opt.on { border-color: var(--accent); background: var(--accent-soft); color: var(--text); }
.cleanup-mode-opt input[type="radio"] { width: 16px; height: 16px; accent-color: var(--accent); flex: none; }
.cleanup-mode-hint { margin-top: 14px; padding: 12px 14px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 13px; color: var(--text-secondary); line-height: 1.5; }
.cleanup-mode-hint p { margin: 0; }
.cleanup-modal-camp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; margin-top: 10px; max-height: 320px; overflow-y: auto; }
.cleanup-modal-camp { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 12px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); text-align: left; cursor: pointer; }
.cleanup-modal-camp:hover { border-color: var(--accent); background: var(--accent-soft); }
.cleanup-modal-camp-name { font-size: 13px; font-weight: 520; color: var(--text); }
.cleanup-modal-camp-type { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); }

/* Cleanup v3: sortable column headers + per-column filter row + inline edit */
.cleanup-th { background: none; border: none; padding: 0; text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); cursor: pointer; font-weight: 600; }
.cleanup-th:hover { color: var(--text-secondary); }
.cleanup-th .sort-ind { font-family: var(--mono); font-size: 12px; color: var(--accent); margin-left: 4px; }
.cleanup-list-filterrow { display: grid; grid-template-columns: 38px 2.2fr 1.5fr 0.7fr 1fr 1.1fr; gap: 12px; padding: 7px 14px; background: var(--bg-base); border-bottom: 1px solid var(--border); align-items: center; }
.cleanup-colf { background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text); font-size: 12px; padding: 5px 9px; font-family: inherit; }
.cleanup-colf:focus { outline: none; border-color: var(--accent); }
.cleanup-edit-bar { padding: 4px 0 12px; border-bottom: 1px dashed var(--border); margin-bottom: 10px; }
.cleanup-edit-toggle { padding: 4px 11px; font-size: 12px; }
.cleanup-edit-form { background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); padding: 12px; }
.cleanup-edit-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.cleanup-edit-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); }
.cleanup-edit-grid .field { padding: 7px 10px; font-size: 13px; font-weight: normal; text-transform: none; letter-spacing: 0; color: var(--text); }
.cleanup-edit-err { color: var(--danger); font-size: 12px; margin-top: 8px; }
.cleanup-edit-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 10px; }
.cleanup-edit-actions .btn { padding: 6px 14px; }
.cleanup-edit-fullrow { grid-column: 1 / -1; }
.cleanup-edit-co { position: relative; }
.cleanup-edit-co-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: var(--radius-sm); background: var(--accent-soft); border: 1px solid var(--accent); color: var(--text); font-size: 13px; font-weight: normal; text-transform: none; letter-spacing: 0; }
.cleanup-edit-co-chip button { background: none; border: none; color: var(--text-secondary); font-size: 14px; line-height: 1; padding: 0; cursor: pointer; }
.cleanup-edit-co-results { position: absolute; top: 100%; left: 0; right: 0; margin-top: 3px; background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); max-height: 180px; overflow-y: auto; z-index: 8; }
.cleanup-edit-co-opt { display: block; width: 100%; text-align: left; padding: 7px 11px; font-size: 13px; color: var(--text-secondary); background: none; border: none; border-bottom: 1px solid var(--border); cursor: pointer; font-weight: normal; text-transform: none; letter-spacing: 0; }
.cleanup-edit-co-opt:last-child { border-bottom: none; }
.cleanup-edit-co-opt:hover { background: var(--bg-hover); color: var(--text); }
.cleanup-edit-co-create { margin-top: 6px; padding: 7px 11px; font-size: 12.5px; font-weight: 500; color: var(--accent); background: none; border: 1px dashed var(--accent); border-radius: var(--radius-sm); cursor: pointer; text-align: left; text-transform: none; letter-spacing: 0; width: 100%; }
.cleanup-edit-co-create:hover { background: var(--accent-soft); }
.cleanup-edit-co-create:disabled { opacity: 0.6; cursor: not-allowed; }

/* Cleanup v4: right-side tag drawer (replaces modal). List stays interactive. */
.cleanup { transition: padding-right 0.18s ease; }
.cleanup.drawer-open { padding-right: 572px; }
.cleanup-drawer { position: fixed; right: 0; top: var(--topbar-h); bottom: 0; width: 560px; max-width: 50vw; background: var(--bg-elevated); border-left: 1px solid var(--border-strong); box-shadow: var(--shadow-lg); display: flex; flex-direction: column; z-index: 120; }
.cleanup-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--border); flex: none; }
.cleanup-drawer-body { flex: 1; overflow-y: auto; padding: 16px 18px; }
.cleanup-drawer-section { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--border); }
.cleanup-drawer-section:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.cleanup-drawer-pickers .cleanup-drawer-sel { display: flex; flex-wrap: wrap; gap: 5px; max-height: 160px; overflow-y: auto; padding: 2px; margin-top: 6px; }
.chip.cleanup-selchip { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; text-transform: none; background: var(--bg-card); border-color: var(--border); }
.chip.cleanup-selchip > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 280px; }
.chip.cleanup-selchip button { background: none; border: none; color: var(--text-secondary); font-size: 14px; line-height: 1; padding: 0; cursor: pointer; flex: none; }
.cleanup-drawer .cleanup-mode { grid-template-columns: 1fr 1fr; }
.cleanup-drawer .cleanup-mode-opt { padding: 9px 11px; font-size: 12.5px; }
.cleanup-drawer-camp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 8px; }
.cleanup-drawer-camp-grid .cleanup-modal-camp { padding: 8px 10px; }
.cleanup-drawer-camp-grid .cleanup-modal-camp-name { font-size: 12.5px; }
.cleanup-drawer-foot { padding: 12px 18px; border-top: 1px solid var(--border); background: var(--bg-surface); display: flex; flex-direction: column; gap: 8px; flex: none; }
.cleanup-drawer-save { justify-content: center; padding: 10px 14px; font-size: 13.5px; }
.cleanup.drawer-open .bulk-bar { display: none; }
.rv-pills { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.rv-meta { font-size: 10.5px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); }
.rv-meta-line { font-size: 11.5px; color: var(--text-muted); font-family: var(--mono); margin-bottom: 6px; }
.vf-pill.warn { background: rgba(245,158,11,0.14); color: #fcd34d; }
.vf-pill.pass { background: rgba(16,185,129,0.14); color: #6ee7b7; }

/* ============ DASHBOARDS ============ */
.dash { max-width: 1180px; }
.kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
@media (max-width: 880px) { .kpi-row { grid-template-columns: repeat(2, 1fr); } }
.kpi { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; }
.kpi-label { font-size: 11.5px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; }
.kpi-val { font-family: var(--mono); font-size: 26px; font-weight: 600; margin-top: 6px; }
.dash-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 880px) { .dash-grid { grid-template-columns: 1fr; } }
.bar-row { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 10px; padding: 6px 4px; }
.bar-label { font-size: 12.5px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar-track { height: 8px; background: var(--bg-base); border-radius: 5px; overflow: hidden; }
.bar-fill { height: 100%; background: var(--accent); border-radius: 5px; min-width: 2px; transition: width 0.4s ease; }
.bar-fill.alt { background: var(--success); }
.bar-val { font-family: var(--mono); font-size: 11.5px; color: var(--text-muted); white-space: nowrap; }

/* ============ MEETINGS CALENDAR ============ */
.cal { max-width: none; }
.cal-toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.cal-month { font-size: 17px; font-weight: 640; margin: 0; min-width: 170px; text-align: center; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.cal-dow { background: var(--bg-surface); padding: 8px; text-align: center; font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; }
.cal-cell { background: var(--bg-card); min-height: 104px; padding: 6px; display: flex; flex-direction: column; gap: 3px; }
.cal-cell.out { background: var(--bg-surface); }
.cal-cell.out .cal-daynum { color: var(--text-muted); opacity: 0.5; }
.cal-cell.today { background: var(--accent-soft); }
.cal-daynum { font-size: 12px; font-weight: 560; color: var(--text-secondary); font-family: var(--mono); margin-bottom: 2px; }
.cal-cell.today .cal-daynum { color: var(--accent); }
.cal-ev { display: flex; gap: 5px; align-items: baseline; background: var(--bg-elevated); border-left: 2px solid var(--text-muted); border-radius: 4px; padding: 2px 6px; cursor: pointer; overflow: hidden; }
.cal-ev:hover { background: var(--bg-active); }
.cal-ev.rec { border-left-color: var(--success); }
.cal-ev-time { font-size: 10px; color: var(--text-muted); font-family: var(--mono); flex: none; }
.cal-ev-title { font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-nav { display: flex; align-items: center; gap: 8px; }

/* week time-grid */
.wk { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--bg-card); }
.wk-gutter { width: 52px; flex: none; }
.wk-head { display: flex; border-bottom: 1px solid var(--border); }
.wk-dayhead { flex: 1; text-align: center; padding: 7px 4px; display: flex; flex-direction: column; gap: 1px; border-left: 1px solid var(--border); }
.wk-dayhead.today { background: var(--accent-soft); }
.wk-dow { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); }
.wk-daynum { font-size: 16px; font-weight: 640; }
.wk-dayhead.today .wk-daynum { color: var(--accent); }
.wk-allday { display: flex; border-bottom: 1px solid var(--border); min-height: 26px; background: var(--bg-surface); }
.wk-allday-label { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); display: flex; align-items: center; justify-content: flex-end; padding-right: 7px; }
.wk-allday-col { flex: 1; border-left: 1px solid var(--border); padding: 3px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wk-allday-ev { font-size: 11px; background: var(--bg-elevated); border-left: 2px solid var(--text-muted); border-radius: 4px; padding: 1px 6px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wk-allday-ev.rec { border-left-color: var(--success); }
.wk-body { display: flex; }
.wk-times { width: 52px; flex: none; }
.wk-time { font-size: 10px; color: var(--text-muted); font-family: var(--mono); text-align: right; padding-right: 7px; transform: translateY(-6px); }
.wk-daycol { flex: 1; position: relative; border-left: 1px solid var(--border); min-width: 0; }
.wk-daycol.today { background-color: var(--accent-soft); }
.wk-ev { position: absolute; background: var(--bg-elevated); border: 1px solid var(--border); border-left: 2px solid var(--accent); border-radius: 5px; padding: 2px 6px; cursor: pointer; overflow: hidden; display: flex; flex-direction: column; gap: 1px; box-shadow: var(--shadow-sm); }
.wk-ev:hover { background: var(--bg-active); z-index: 5; }
.wk-ev.rec { border-left-color: var(--success); }
.wk-ev-time { font-size: 9.5px; color: var(--text-muted); font-family: var(--mono); }
.wk-ev-title { font-size: 11.5px; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; }

/* meeting card extras */
.mtg-when { font-size: 12.5px; color: var(--text-muted); margin-top: 3px; }
.mtg-detail { font-size: 12.5px; margin-bottom: 8px; }
.mtg-detail b { color: var(--text-muted); font-weight: 600; margin-right: 6px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; }
.att-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.att { font-size: 11.5px; padding: 2px 9px; border-radius: 12px; background: var(--bg-elevated); border: 1px solid var(--border); color: var(--text-secondary); }
.att.accepted { border-color: rgba(16,185,129,0.4); color: #6ee7b7; }
.att.declined { border-color: rgba(239,68,68,0.4); color: #fca5a5; }
.crm-sugg { font-size: 12px; padding: 5px 0; color: var(--text-secondary); display: flex; gap: 7px; align-items: center; }
.mtg-prep { font-size: 12.5px; line-height: 1.55; color: var(--text-secondary); white-space: pre-wrap; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; max-height: 320px; overflow-y: auto; }
.mtg-ai { display: flex; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--border); }
.mtg-ai:last-child { border-bottom: none; }
.mtg-ai-text { font-size: 12.5px; flex: 1; min-width: 0; }
.mtg-ai.done .mtg-ai-text { color: var(--text-muted); text-decoration: line-through; }
.mtg-ai-btn { flex: none; font-size: 11px; padding: 2px 9px; border-radius: 6px; border: 1px solid var(--border); background: var(--bg-elevated); color: var(--text-secondary); cursor: pointer; }
.mtg-ai-btn:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.mtg-ai-done { flex: none; font-size: 11px; color: var(--success); }
.mtg-transcript { margin-top: 10px; font-size: 12px; line-height: 1.5; color: var(--text-secondary); white-space: pre-wrap; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; max-height: 360px; overflow-y: auto; }
/* meetings table multi-select */
.mtg-tabletools { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; min-height: 30px; }
.mtg-bulkbar { display: flex; align-items: center; gap: 8px; }
.mtg-bulkcount { font-size: 12.5px; color: var(--text-secondary); font-weight: 600; }
.mtg-archtoggle { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); cursor: pointer; user-select: none; }
.mtg-archtoggle input { cursor: pointer; }
.mtg-ck { width: 36px; text-align: center; }
.mtg-ck input { cursor: pointer; vertical-align: middle; }
.rec-table tr.row-sel td { background: var(--accent-soft); }
.rec-table tr.row-arch td { opacity: 0.55; }

/* meetings table — day grouping, category rail, richer rows (scoped to .mtg-table) */
.mtg-table-scroll { max-height: calc(100vh - 232px); overflow: auto; }
.mtg-table thead th { position: sticky; top: 0; z-index: 3; background: var(--bg-card); }
.mtg-th-when { width: 96px; }
.mtg-th-who { width: 320px; }
.mtg-th-status { width: 104px; }

.mtg-dayhead td { padding: 8px 14px 7px 0; }
.mtg-dayhead-label { font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); }
.mtg-dayhead.today .mtg-dayhead-label { color: var(--accent); }
.mtg-dayhead.past .mtg-dayhead-label { opacity: 0.6; }
.mtg-dayhead-count { font-family: var(--mono); font-size: 10.5px; color: var(--text-muted); margin-left: 8px; }

/* category rail: inset shadow on the first cell so row-sel bg / row-arch opacity layer cleanly over it */
.mtg-row td:first-child { box-shadow: inset 3px 0 0 0 var(--cat, var(--border-strong)); }
.mtg-row.cat-external  { --cat: var(--accent); }
.mtg-row.cat-recorded  { --cat: var(--success); }
.mtg-row.cat-tentative { --cat: var(--warn); }
.mtg-row.cat-cancelled { --cat: var(--danger); }
.mtg-row.cat-hold      { --cat: var(--text-muted); }
.mtg-row.cat-internal  { --cat: var(--border-strong); }
.mtg-row.cat-cancelled .mtg-title { text-decoration: line-through; color: var(--text-muted); }
.mtg-row.cat-cancelled td { opacity: 0.7; }
.mtg-row.cat-hold .mtg-title { color: var(--text-secondary); font-weight: 460; }

.mtg-when { width: 96px; color: var(--text-muted); font-size: 12px; }
.mtg-row.is-past .mtg-when { opacity: 0.75; }
.mtg-row.is-past .mtg-title { color: var(--text-secondary); }
.mtg-title-cell { max-width: 460px; }
.mtg-title { color: var(--text); font-weight: 540; font-size: 14px; }

.mtg-who { max-width: 320px; }
.mtg-who-inner, .mtg-who { display: flex; align-items: center; gap: 10px; }
.mtg-avatars { display: inline-flex; flex: none; }
.mtg-av, .mtg-av-more { width: 28px; height: 28px; margin-left: -7px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 650; font-family: var(--mono); background: var(--bg-elevated); color: var(--text-secondary); border: 1.5px solid var(--bg-card); }
.mtg-av:first-child { margin-left: 0; }
.mtg-av.ext { background: var(--accent-soft); color: #93c5fd; }
.mtg-av-more { font-size: 10px; color: var(--text-muted); }
.mtg-who-label { font-size: 13.5px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.mtg-status { display: flex; gap: 4px; flex-wrap: wrap; }
.vf-pill.join { background: var(--accent-soft); color: #93c5fd; }
.vf-pill.muted { background: var(--bg-active); color: var(--text-muted); }

/* network reconnect */
.recall-row { padding: 9px 4px; border-bottom: 1px solid var(--border); }
.recall-row:last-child { border-bottom: none; }
.recall-theme { font-size: 13px; font-weight: 520; display: flex; align-items: center; gap: 8px; }
.recall-people { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }

/* ============ STANDUP OVERLAY ============ */
.su-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(3px); display: grid; place-items: center; z-index: 140; padding: 4vh 16px; }
.su-modal { width: 640px; max-width: 96vw; max-height: 92vh; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); display: flex; flex-direction: column; overflow: hidden; }
.su-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.su-brand { display: flex; align-items: center; gap: 9px; font-weight: 620; font-size: 15px; }
.su-body { flex: 1; overflow-y: auto; padding: 24px; }
.su-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 280px; text-align: center; color: var(--text-secondary); }
.su-loading .spinner { width: 26px; height: 26px; }
.su-step h2 { font-size: 19px; font-weight: 640; margin: 0 0 4px; }
.su-sub { color: var(--text-muted); font-size: 13.5px; margin: 0 0 18px; line-height: 1.5; }
.su-opps { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.su-opp { display: flex; align-items: flex-start; gap: 11px; padding: 11px 13px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; }
.su-opp input { margin-top: 2px; accent-color: var(--accent); width: 16px; height: 16px; }
.su-opp.off { opacity: 0.5; }
.su-opp-name { font-size: 13.5px; font-weight: 520; }
.su-opp-meta { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.su-extra { margin: 8px 0 14px; }
.su-extra summary { font-size: 12.5px; color: var(--text-secondary); cursor: pointer; padding: 6px 0; }
.su-extra .field { margin-bottom: 8px; }
.su-q { display: flex; gap: 13px; align-items: flex-start; margin-bottom: 16px; }
.su-q-avatar { flex: none; width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(135deg, #3b82f6, #1d4ed8); color: #fff; display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.su-q-text { font-size: 15px; line-height: 1.5; margin: 0; }
.su-slips { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; max-height: 42vh; overflow-y: auto; }
.su-slip { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 11px 13px; }
.su-slip-main { margin-bottom: 8px; }
.su-slip-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.su-block { display: flex; align-items: center; gap: 10px; padding: 9px 11px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); margin-bottom: 6px; }
.su-block-time { font-family: var(--mono); font-size: 11.5px; color: var(--text-muted); flex: none; min-width: 116px; }
.su-block-title { flex: 1; font-size: 13px; }
.su-block-actions { display: flex; gap: 2px; }
.su-block-actions .icon-btn { width: 26px; height: 26px; }
.su-block-actions .icon-btn svg { width: 14px; height: 14px; }
.su-foot { display: flex; align-items: center; gap: 10px; margin-top: 18px; }
.su-done { font-size: 40px; color: var(--success); }
.su-errbar { padding: 10px 18px; background: rgba(239,68,68,0.12); color: #fca5a5; font-size: 12.5px; border-top: 1px solid rgba(239,68,68,0.3); }

/* ============ CREATE RECORD FORM ============ */
.create-modal { width: 600px; }
.create-body { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; align-content: start; }
@media (max-width: 600px) { .create-body { grid-template-columns: 1fr; } }
.form-field { display: flex; flex-direction: column; min-width: 0; }
.form-field.full { grid-column: 1 / -1; }
.form-field .rv-label { margin: 0 0 5px; }
select.field { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6b76' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; padding-right: 28px; }
.rel-picker { position: relative; }
.rel-chosen { display: flex; align-items: center; justify-content: space-between; gap: 8px; background: var(--bg-base); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px 11px; font-size: 13.5px; }
.rel-chosen button { border: none; background: none; color: var(--text-muted); font-size: 18px; line-height: 1; padding: 0 2px; }
.rel-chosen button:hover { color: var(--text); }
.rel-results { position: absolute; top: calc(100% + 4px); left: 0; right: 0; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); z-index: 5; max-height: 200px; overflow-y: auto; }
.rel-opt { padding: 8px 11px; font-size: 13px; cursor: pointer; }
.rel-opt:hover { background: var(--bg-hover); }

/* delete */
.btn-danger { background: transparent; border-color: rgba(239,68,68,0.4); color: #fca5a5; }
.btn-danger:hover { background: rgba(239,68,68,0.12); border-color: var(--danger); color: #fca5a5; }
.drawer-foot { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--border); }
.del-confirm { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--text-secondary); }
.del-confirm span { margin-right: auto; }

/* ============ RECORD DETAIL VIEW (campaigns / deals) ============ */
.rec-detail { max-width: 900px; transition: max-width 0.15s ease-out; }
.rec-detail.wide { max-width: none; }
.detail-wide-toggle { font-size: 11.5px; color: var(--text-muted); padding: 5px 9px; }
.detail-wide-toggle:hover { color: var(--text); }
.detail-top { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; }
.detail-title { font-size: 24px; font-weight: 660; margin: 0 0 14px; }
.detail-meta { display: flex; flex-wrap: wrap; gap: 22px; padding: 14px 16px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 12px; }
.meta-item { display: flex; flex-direction: column; gap: 4px; }
.meta-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; }
.meta-item > span:last-child { font-size: 13.5px; }
.detail-bodytext { font-size: 13.5px; color: var(--text-secondary); line-height: 1.6; margin: 0 0 18px; white-space: pre-wrap; }
.detail-section { margin-bottom: 14px; }
.detail-section .rec-table td { max-width: 360px; }
.detail-sub { font-size: 13px; color: var(--text-muted); margin: -8px 0 16px; }

/* ============ CAMPAIGN PIPELINE VIEW ============ */
.pl-summary { display: flex; align-items: stretch; gap: 0; padding: 14px 20px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 22px; }
.pl-sumgroup { display: flex; flex-direction: column; padding: 0 26px; position: relative; min-width: 0; }
.pl-sumgroup:first-child { padding-left: 6px; flex: 1; }
.pl-sumgroup + .pl-sumgroup::before { content: ''; position: absolute; left: 0; top: 6px; bottom: 6px; width: 1px; background: var(--border); }
.pl-sumlabel { font-size: 9px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--text-muted); font-weight: 700; margin-bottom: 11px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.pl-stats { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(50px, 1fr); gap: 10px; align-items: end; flex: 1; }
.pl-stat { display: flex; flex-direction: column; align-items: center; text-align: center; min-width: 0; }
.pl-num { font-family: var(--mono); font-size: 21px; font-weight: 600; line-height: 1; font-feature-settings: "tnum"; }
.pl-cap { font-size: 9px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); margin-top: 6px; white-space: nowrap; }

.pl-stage { margin-bottom: 26px; }
.pl-stage-head { display: flex; align-items: baseline; gap: 10px; padding-bottom: 8px; margin-bottom: 12px; border-bottom: 1px solid var(--border); }
.pl-stage-name { font-size: 12.5px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text); }
.pl-stage-count { font-family: var(--mono); font-size: 13px; color: var(--accent); font-weight: 600; }
.pl-stage-desc { margin-left: auto; font-size: 12px; color: var(--text-muted); font-style: italic; }

.pl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(248px, 1fr)); gap: 12px; }
.pl-card { background: var(--bg-card); border: 1px solid var(--border); border-left: 3px solid var(--text-muted); border-radius: var(--radius); padding: 12px 14px; cursor: pointer; transition: border-color 0.12s, transform 0.12s; }
.pl-card:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.pl-card.active { border-left-color: var(--success); background: linear-gradient(90deg, rgba(16,185,129,0.06), transparent 60%), var(--bg-card); }
.pl-card.active:hover { border-color: rgba(16,185,129,0.5); border-left-color: var(--success); }
.pl-card.closed { border-left-color: var(--danger); background: linear-gradient(90deg, rgba(239,68,68,0.06), transparent 60%), var(--bg-card); }
.pl-card.closed:hover { border-color: rgba(239,68,68,0.5); border-left-color: var(--danger); }
.pl-card.neutral:hover { border-color: var(--border-strong); }
.pl-card-head { display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: 8px; }
/* Firm + AUM share one inline container so AUM follows the firm name and
   they wrap together (instead of AUM getting pushed to its own line/dropped
   off-card when the firm name is long). */
.pl-card-head-firm { min-width: 0; line-height: 1.35; }
.pl-firm { font-size: 13.5px; font-weight: 600; color: var(--text); margin-right: 6px; }
.pl-aum { font-size: 11.5px; color: var(--text-muted); font-family: var(--mono); white-space: nowrap; }
.pl-pill { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 2px 7px; border-radius: 4px; border: 1px solid; white-space: nowrap; align-self: start; }
.pl-pill.active { color: #6ee7b7; border-color: rgba(16,185,129,0.4); }
.pl-pill.closed { color: #fca5a5; border-color: rgba(239,68,68,0.4); }
/* "New" — an inbound-reply deal awaiting notes. Amber so it reads as a to-do. */
.pl-pill.new { color: #fcd34d; border-color: rgba(245,158,11,0.5); background: rgba(245,158,11,0.12); }
/* Hold the New + status pills together in the head's right-hand grid cell. */
.pl-pills { display: flex; gap: 5px; align-items: start; justify-content: flex-end; }
.pl-note { font-size: 12px; font-style: italic; color: var(--text-secondary); margin: 9px 0; padding: 6px 10px; background: var(--bg-base); border-left: 2px solid var(--border-strong); border-radius: 0 4px 4px 0; }
.pl-card.active .pl-note { border-left-color: var(--success); }
.pl-card.closed .pl-note { border-left-color: var(--danger); }
.pl-contacts { display: flex; flex-direction: column; gap: 3px; margin-top: 8px; }
.pl-contact { font-size: 12px; }
.pl-cname { color: var(--text-secondary); font-weight: 480; }
.pl-ctitle { color: var(--text-muted); }

.pl-list { display: flex; flex-direction: column; }
.pl-row { display: grid; grid-template-columns: 280px 1fr; gap: 16px; padding: 9px 4px; border-bottom: 1px solid var(--border); align-items: baseline; }
.pl-row:last-child { border-bottom: none; }
.pl-row-contacts { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.pl-rc { font-size: 12px; color: var(--text-muted); }
.pl-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pl-chip { font-size: 12.5px; padding: 5px 12px; border-radius: 7px; background: var(--bg-card); border: 1px solid var(--border); color: var(--text-secondary); }
.pl-chip.danger { color: #fca5a5; border-color: rgba(239,68,68,0.35); }

/* outreach activity rows (expandable: date sent + follow-up + Gmail links) */
.pl-orow { border-bottom: 1px solid var(--border); }
.pl-orow:last-child { border-bottom: none; }
.pl-orow-head { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: center; padding: 10px 6px; cursor: pointer; }
.pl-orow-head:hover { background: var(--bg-hover); }
.pl-orow .pl-row-firm { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pl-chev { font-size: 10px; color: var(--text-muted); width: 10px; flex: none; }
.pl-replied { font-size: 10.5px; font-weight: 600; color: var(--success); border: 1px solid rgba(16,185,129,0.4); border-radius: 5px; padding: 1px 6px; }
.pl-orow-meta { display: flex; gap: 24px; align-items: center; }
.pl-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.pl-meta-k { font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); }
.pl-meta-v { font-size: 12.5px; font-family: var(--mono); color: var(--text-secondary); }
.pl-orow-detail { padding: 10px 14px 14px 24px; background: var(--bg-base); border-top: 1px dashed var(--border); }
.pl-od-contacts { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-bottom: 10px; }
.pl-send { padding: 8px 0; border-bottom: 1px solid var(--border); }
.pl-send:last-child { border-bottom: none; }
.pl-send-top { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.pl-send-subj { font-size: 13px; color: var(--text); font-weight: 520; }
.pl-send-date { font-size: 11.5px; font-family: var(--mono); color: var(--text-muted); flex: none; }
.pl-send-bot { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; margin-top: 3px; }
.pl-send-to { font-size: 12px; color: var(--text-muted); }
.pl-gmail { font-size: 12px; color: var(--accent); text-decoration: none; flex: none; }
.pl-gmail:hover { text-decoration: underline; }
.pl-od-empty { font-size: 12px; color: var(--text-muted); font-style: italic; padding: 4px 0; }
.pl-od-fu { font-size: 12px; color: var(--text-secondary); margin-top: 8px; display: flex; gap: 8px; align-items: center; }

/* outreach tracker: stage pills, funnel strip, status table */
.st-pill { display: inline-block; padding: 2px 9px; border-radius: 11px; font-size: 11.5px; font-weight: 600; border: 1px solid var(--border-strong); white-space: nowrap; }
.st-pill.sm { font-size: 10.5px; padding: 1px 7px; }
.st-queued { color: var(--text-muted); border-color: var(--border-strong); background: var(--bg-elevated); }
.st-sent { color: #93c5fd; border-color: rgba(59,130,246,0.4); background: rgba(59,130,246,0.12); }
.st-opened { color: #7dd3fc; border-color: rgba(56,189,248,0.4); background: rgba(56,189,248,0.12); }
.st-replied { color: #6ee7b7; border-color: rgba(16,185,129,0.45); background: rgba(16,185,129,0.14); }
.st-fu1 { color: #fcd34d; border-color: rgba(245,158,11,0.45); background: rgba(245,158,11,0.14); }
.st-fu2 { color: #fca5a5; border-color: rgba(239,68,68,0.45); background: rgba(239,68,68,0.14); }
.st-norsp { color: var(--text-muted); border-color: var(--border); background: transparent; }

.ot-funnel { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.ot-fseg { display: flex; flex-direction: column; align-items: center; gap: 1px; min-width: 80px; padding: 9px 12px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-card); cursor: pointer; }
.ot-fseg .ot-fnum { font-size: 17px; font-weight: 700; font-family: var(--mono); line-height: 1.1; }
.ot-fseg .ot-flabel { font-size: 10.5px; color: var(--text-muted); text-align: center; white-space: nowrap; }
.ot-fseg.on { box-shadow: inset 0 0 0 1.5px currentColor; }
.ot-fseg.ot-needs { color: var(--warn); border-color: rgba(245,158,11,0.4); background: rgba(245,158,11,0.10); }

.ot-table { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
/* List row is now compact 2-column [firm-side | stage-pill]; dates moved to card on expand. */
.ot-row { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; padding: 9px 14px; cursor: pointer; }
.ot-row:hover { background: var(--bg-hover); }
.ot-orow { border-bottom: 1px solid var(--border); }
.ot-orow:last-child { border-bottom: none; }
.ot-firm { display: flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--text); font-weight: 520; min-width: 0; }
.ot-firm > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ot-action-dot { color: var(--warn); font-size: 9px; line-height: 1; }
.ot-date { font-size: 12.5px; font-family: var(--mono); color: var(--text-secondary); }
.ot-date.due { color: #fcd34d; font-weight: 600; }
.ot-detail { padding: 10px 14px 14px 30px; background: var(--bg-base); border-top: 1px dashed var(--border); }
/* Card view inside the expanded outreach row (mirrors .pl-card aesthetic). */
.ot-card { background: var(--bg-card); border: 1px solid var(--border); border-left: 3px solid var(--text-muted); border-radius: var(--radius); padding: 14px 16px; }
.ot-card.active { border-left-color: var(--warn); background: linear-gradient(90deg, rgba(245,158,11,0.05), transparent 60%), var(--bg-card); }
.ot-card.neutral { border-left-color: var(--border-strong); }
.ot-card.closed-cohort { border-left-color: var(--danger); background: linear-gradient(90deg, rgba(239,68,68,0.05), transparent 60%), var(--bg-card); }
.ot-card-head { display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: 10px; margin-bottom: 10px; }
.ot-metrics { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12px; color: var(--text-muted); margin-bottom: 12px; padding: 8px 12px; background: var(--bg-base); border-radius: var(--radius-sm); }
.ot-metrics b { color: var(--text-secondary); font-weight: 600; font-family: var(--mono); }
.ot-metrics .ot-rep b { color: #6ee7b7; }
.ot-metrics .ot-due b { color: #fcd34d; }
.ot-metrics .ot-muted { font-style: italic; color: var(--text-muted); }
.ot-note-block { margin-bottom: 12px; }
.ot-note-view { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--bg-base); border-left: 2px solid var(--border-strong); border-radius: 0 4px 4px 0; }
.ot-note-text { flex: 1; font-size: 12.5px; font-style: italic; color: var(--text-secondary); line-height: 1.5; white-space: pre-wrap; }
.ot-note-text.empty { color: var(--text-muted); font-style: italic; }
.ot-note-edit { font-size: 11.5px; padding: 3px 9px; }
.ot-note-edit-form { display: flex; flex-direction: column; gap: 6px; }
.ot-note-edit-form .field { font-size: 12.5px; resize: vertical; }
.ot-note-err { font-size: 12px; color: var(--danger); }
.ot-note-actions { display: flex; justify-content: flex-end; gap: 8px; }
.ot-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.ot-contacts-section { margin-top: 14px; padding-top: 10px; border-top: 1px dashed var(--border); }
.ot-contacts-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; margin-bottom: 6px; }
.ot-contact { padding: 8px 0; border-bottom: 1px solid var(--border); }
.ot-contact:last-child { border-bottom: none; }
.ot-c-top { display: flex; align-items: center; gap: 10px; }
.ot-c-name { font-size: 13px; color: var(--text); }
.ot-c-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 4px; font-size: 12px; color: var(--text-muted); align-items: center; }
.ot-c-meta b { color: var(--text-secondary); font-weight: 600; font-family: var(--mono); }
.ot-c-due b { color: #fcd34d; }
.ot-c-rep b { color: #6ee7b7; }
.ot-c-subj { font-style: italic; }

/* Outreach tracker: wrong-campaign re-tag UI (expanded org row) */
.ot-retag { margin-bottom: 10px; }
.ot-retag-btn { padding: 4px 11px; font-size: 12px; color: var(--text-muted); }
.ot-retag-btn:hover { color: var(--warn); border-color: rgba(245,158,11,0.4); }
.ot-retag-panel { background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.ot-retag-row { display: flex; gap: 8px; align-items: center; }
.ot-retag-row .field { padding: 7px 10px; font-size: 13px; flex: 1; }
.ot-retag-results { display: flex; flex-direction: column; gap: 3px; max-height: 200px; overflow-y: auto; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.ot-retag-opt { display: flex; justify-content: space-between; align-items: center; padding: 8px 11px; font-size: 13px; color: var(--text); background: var(--bg-elevated); border: none; border-bottom: 1px solid var(--border); cursor: pointer; text-align: left; }
.ot-retag-opt:last-child { border-bottom: none; }
.ot-retag-opt:hover { background: var(--bg-hover); }
.ot-retag-opt-type { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); }
.ot-retag-foot { display: flex; justify-content: flex-end; }
.ot-retag-err { font-size: 12px; color: var(--danger); }

/* ============ DEAL RELATIONSHIP WORKSPACE ============ */
.org-head { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.person { padding: 11px 0; border-bottom: 1px solid var(--border); }
.person:last-child { border-bottom: none; }
.person-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.person-name { font-size: 13.5px; font-weight: 560; }
.person-title { font-size: 12.5px; color: var(--text-muted); }
.person-li { margin-left: auto; font-size: 11px; color: var(--accent); text-decoration: none; }
.person-li:hover { text-decoration: underline; }
.person-sub { display: flex; gap: 14px; margin-top: 3px; font-size: 12px; color: var(--text-muted); }
.person-bio { font-size: 12.5px; color: var(--text-secondary); line-height: 1.55; margin-top: 6px; }
.person-remove { width: 24px; height: 24px; flex: none; }
.person-remove svg { width: 13px; height: 13px; }
.person-remove:hover { color: var(--danger); background: rgba(239,68,68,0.12); }
.person-involve { margin-top: 8px; font-size: 12.5px; padding: 6px 10px; }
.rec-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.rec-actions .btn, .detail-top .btn { display: inline-flex; align-items: center; gap: 6px; }

/* link pills (external detail) */
.drawer-sub2 { font-size: 12.5px; color: var(--text-muted); margin-top: 4px; }
.pills-row { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.link-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 500; padding: 4px 11px; border-radius: 7px; background: var(--bg-elevated); border: 1px solid var(--border); color: var(--text-secondary); text-decoration: none; transition: border-color 0.12s, color 0.12s; }
.link-pill:hover { border-color: var(--border-strong); color: var(--text); }
.link-pill:not(.enriched)::after { content: '↗'; font-size: 10px; color: var(--text-muted); }
.link-pill.enriched { color: #6ee7b7; border-color: rgba(16,185,129,0.35); background: rgba(16,185,129,0.08); cursor: default; }
.email-row { padding: 9px 11px; border-bottom: 1px solid var(--border); }
.email-row:last-child { border-bottom: none; }
.email-row:hover { background: var(--bg-hover); }
.email-top { display: flex; align-items: baseline; gap: 10px; }
.email-subj { font-size: 13px; font-weight: 500; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.email-date { font-size: 11px; color: var(--text-muted); flex: none; }
.email-meta { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--text-muted); margin-top: 3px; }
.email-snip { font-size: 12px; color: var(--text-muted); margin-top: 4px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ============ RECORD FILES ============ */
.files-section .panel-head .btn { display: inline-flex; align-items: center; gap: 6px; }
.file-row { display: flex; align-items: center; gap: 11px; padding: 9px 12px; border-bottom: 1px solid var(--border); }
.file-row:last-child { border-bottom: none; }
.file-row:hover { background: var(--bg-hover); }
.file-ico { width: 18px; height: 18px; color: var(--text-muted); flex: none; }
.file-main { flex: 1; min-width: 0; }
.file-name { font-size: 13px; font-weight: 500; color: var(--accent); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.file-name:hover { text-decoration: underline; }
.file-meta { font-size: 11.5px; color: var(--text-muted); font-family: var(--mono); margin-top: 2px; }

/* ─── Knowledge Base ─────────────────────────────────────── */
.btn-ghost { background: transparent; }
.btn-ghost:hover { background: var(--bg-hover); }
.btn-ghost.active { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.kb-hit { align-items: flex-start; }
.kb-snip { font-size: 12px; color: var(--text-muted); margin-top: 2px; line-height: 1.45;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kb-mark { background: var(--accent-soft); color: var(--accent); font-weight: 600; border-radius: 2px; padding: 0 1px; }
.kb-webframe { width: 100%; height: 70vh; min-height: 420px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-sunken); }
.kb-ext { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--border); align-items: flex-start; }
.kb-ext:last-child { border-bottom: none; }
.kb-ext-main { flex: 1; min-width: 0; }
.kb-ext-summary { font-size: 13px; color: var(--text); line-height: 1.45; }
.kb-ext-meta { font-size: 11.5px; color: var(--text-muted); font-family: var(--mono); margin-top: 3px; }
/* master–detail layout — fills the content area (.content = 100vh - topbar - 48px padding) */
.kb-wrap { display: flex; flex-direction: column; height: calc(100vh - var(--topbar-h) - 48px); }
.kb-layout { display: flex; gap: 20px; align-items: stretch; flex: 1 1 auto; min-height: 0; }
.kb-list { flex: 0 0 440px; min-width: 0; overflow-y: auto; }
.kb-pane { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; overflow: hidden;
  background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; }
/* Body scrolls as one unit (so long extracted-knowledge lists don't hide the content
   below). PDF viewer overrides this to fill the pane (see .kb-pane-body.kb-body-fill). */
.kb-pane-body { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.kb-pane-body.kb-body-fill { overflow: hidden; }
.kb-pane-doc { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.kb-pane-scroll { min-height: 0; }
.kb-hit.kb-sel { background: var(--accent-soft); border-radius: var(--radius-sm); }
.kb-hit.kb-sel .ic-title { color: var(--accent); }
.kb-pane-empty { flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  text-align: center; color: var(--text-muted); min-height: 260px; padding: 24px; }
.kb-pane-empty svg { width: 34px; height: 34px; stroke-width: 1.5; opacity: .5; }
.kb-pane-empty p { font-size: 13px; max-width: 280px; line-height: 1.5; }
.kb-pane-head { display: flex; gap: 10px; align-items: flex-start; }
.kb-pane-title { font-size: 16px; font-weight: 640; color: var(--text); line-height: 1.35; }
.kb-pane-meta { font-size: 12px; color: var(--text-muted); font-family: var(--mono); margin: 8px 0 0 0; }
.kb-pane-src { margin-top: 12px; }
.kb-pdf { flex: 1 1 auto; width: 100%; height: auto; min-height: 0;
  border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-sunken); }
.kb-pane-section { margin-top: 20px; }
.kb-pane-label { font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 8px; }
.kb-pane-hint { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--accent); }
.kb-chunk { padding: 10px 0; border-top: 1px solid var(--border); }
.kb-chunk:first-child { border-top: none; }
.kb-chunk-label { font-size: 11px; font-family: var(--mono); color: var(--text-muted); text-transform: uppercase; letter-spacing: .4px; }
.kb-chunk p { margin: 4px 0 0; font-size: 12.5px; color: var(--text-secondary); line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.kb-chunk-match { background: var(--accent-soft); border-radius: var(--radius-sm); padding: 10px 12px; border-top: none; margin: 6px 0; }
.kb-chunk-match + .kb-chunk { border-top: none; }
.kb-chunk-match .kb-chunk-label { color: var(--accent); }
.kb-chunk-match p { color: var(--text); }

/* ============ CAMPAIGN ADD NAMES + SUGGESTION ENGINE ============ */
.cs-modal { width: 760px; }
.cs-review { width: 940px; }
.cs-accept { width: 560px; }
.cs-z2 { z-index: 140; }
.cs-z3 { z-index: 150; }

.cs-tabs { display: flex; gap: 4px; padding: 0 18px; border-bottom: 1px solid var(--border); }
.cs-tab { padding: 10px 14px; font-size: 13px; font-weight: 560; color: var(--text-muted); background: transparent; border: none; border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; }
.cs-tab:hover { color: var(--text-secondary); }
.cs-tab.on { color: var(--text); border-bottom-color: var(--accent); }

.cs-body { flex: 1; overflow-y: auto; padding: 18px; display: block; }
.cs-hint { font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; margin: 0 0 14px; }
.cs-firm { font-size: 13.5px; font-weight: 600; color: var(--text); }
.cs-meta { font-size: 12px; color: var(--text-muted); }
.cs-empty { font-size: 12.5px; color: var(--text-muted); padding: 14px 2px; }

/* manual results */
.cs-mresults { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.cs-mrow { display: flex; align-items: center; gap: 12px; padding: 9px 12px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); }
.cs-mrow-main { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }

/* suggest controls */
.cs-controls { display: flex; flex-wrap: wrap; gap: 12px; margin: 12px 0 4px; align-items: flex-end; }
.cs-ctl { display: flex; flex-direction: column; }
.cs-ctl .rv-label { margin: 0 0 5px; }
.cs-grow { flex: 1; min-width: 150px; }
.cs-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cs-chip { font-size: 12px; padding: 5px 11px; border-radius: 7px; background: var(--bg-card); border: 1px solid var(--border); color: var(--text-secondary); cursor: pointer; }
.cs-chip:hover { border-color: var(--border-strong); }
.cs-chip.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }

.cs-runrow { display: flex; align-items: center; gap: 14px; margin: 16px 0 4px; flex-wrap: wrap; }
.cs-counts { font-size: 12px; color: var(--text-muted); }
.cs-warn, .cs-counts .cs-warn { color: var(--warn); }
.cs-loading { display: flex; align-items: center; gap: 10px; color: var(--text-muted); font-size: 12.5px; padding: 24px 2px; }

/* candidates */
.cs-cands { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.cs-cand { background: var(--bg-card); border: 1px solid var(--border); border-left: 3px solid var(--text-muted); border-radius: var(--radius); padding: 12px 14px; cursor: pointer; transition: border-color 0.12s, transform 0.12s; }
.cs-cand:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); border-color: var(--border-strong); }
.cs-cand.cs-high { border-left-color: var(--success); }
.cs-cand.cs-normal { border-left-color: var(--accent); }
.cs-cand.cs-thin { border-left-color: var(--warn); }
.cs-cand-top { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.cs-score { font-size: 11px; color: var(--text-muted); font-family: var(--mono); }
.cs-srccount { font-size: 11px; color: var(--text-muted); }
.cs-reason { font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; margin: 7px 0; }
.cs-clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cs-cand-foot { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.cs-cand-foot .btn { padding: 4px 11px; font-size: 12px; }

.cs-pill { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 2px 8px; border-radius: 5px; border: 1px solid; }
.cs-pill.cs-high { color: var(--success); border-color: rgba(16,185,129,0.4); background: rgba(16,185,129,0.10); }
.cs-pill.cs-normal { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
.cs-pill.cs-thin { color: var(--warn); border-color: rgba(245,158,11,0.4); background: rgba(245,158,11,0.10); }
.cs-link { background: none; border: none; color: var(--accent); font-size: 12px; font-weight: 540; cursor: pointer; padding: 0; text-decoration: none; }
.cs-link:hover { color: var(--accent-hover); text-decoration: underline; }

/* firm review workspace */
.cs-rbody { grid-template-columns: 1.6fr 1fr; }
.cs-rmain { min-width: 0; }
.cs-rhead { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.cs-reason-full { font-size: 13px; color: var(--text); line-height: 1.6; }
.cs-quote { font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; padding: 8px 12px; border-left: 2px solid var(--border-strong); background: var(--bg-card); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }
.cs-thin-note { font-size: 12px; color: var(--warn); background: rgba(245,158,11,0.08); border: 1px solid rgba(245,158,11,0.3); border-radius: var(--radius-sm); padding: 9px 11px; line-height: 1.5; margin-bottom: 8px; }
.cs-evlist { display: flex; flex-direction: column; gap: 8px; }
.cs-ev { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 12px; }
.cs-ev-top { display: flex; align-items: center; gap: 8px; }
.cs-ev-kind { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); background: var(--bg-elevated); padding: 2px 6px; border-radius: 4px; white-space: nowrap; }
.cs-ev-title { font-size: 12.5px; font-weight: 560; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cs-ev-snip { font-size: 12px; color: var(--text-secondary); line-height: 1.5; margin-top: 6px; }
.cs-prof-meta { font-size: 12px; color: var(--text-muted); font-family: var(--mono); margin-bottom: 10px; }
.cs-prof-field { margin-bottom: 10px; }
.cs-prof-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; margin-bottom: 3px; }
.cs-prof-val { font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; }

/* accept → contact selection */
.cs-acc-actions { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.cs-clist { display: flex; flex-direction: column; gap: 6px; }
.cs-crow { display: flex; align-items: center; gap: 11px; padding: 9px 12px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; }
.cs-crow:hover { border-color: var(--border-strong); }
.cs-crow input { accent-color: var(--accent); width: 15px; height: 15px; }
.cs-crow-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

/* ─── KB email viewer ─────────────────────────────────────── */
.kb-email-thread { border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-sunken); overflow: hidden; }
.kb-email-msg { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-bottom: 1px solid var(--border); }
.kb-email-msg:last-child { border-bottom: none; }
.kb-email-dir { flex: 0 0 auto; font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .4px; padding: 2px 7px; border-radius: 4px; }
.kb-email-dir.in { background: var(--bg-elevated); color: var(--text-secondary); border: 1px solid var(--border); }
.kb-email-dir.out { background: var(--accent-soft); color: var(--accent); }
.kb-email-meta { flex: 1; min-width: 0; }
.kb-email-from { font-size: 12.5px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kb-email-to { color: var(--text-muted); }
.kb-email-date { font-size: 11px; color: var(--text-muted); font-family: var(--mono); margin-top: 1px; }
.kb-email-gmail { flex: 0 0 auto; font-size: 11.5px; color: var(--accent); white-space: nowrap; }
.kb-email-body { margin-top: 6px; }
.kb-email-para { font-size: 13.5px; color: var(--text); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; margin-bottom: 12px; }
.kb-email-quote { font-size: 12px; color: var(--text-muted); line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; border-left: 2px solid var(--border); padding: 4px 0 4px 12px; margin-top: 6px; }

/* ── Task triage (cockpit Pending/Live + #/tasks) ──────────────── */
.triage-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
@media (max-width: 1100px) { .triage-grid { grid-template-columns: 1fr; } }
.panel-sub { font-size: 11.5px; color: var(--text-muted); margin-left: 8px; }
.count { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--accent-soft); color: var(--accent); font-size: 11px; font-weight: 650; margin-left: 6px; }

.bulkbar { display: flex; align-items: center; gap: 8px; padding: 8px 14px; background: var(--accent-soft); border-bottom: 1px solid var(--border); font-size: 12.5px; color: var(--text-secondary); }

.task-card { border: 1px solid var(--border); border-radius: var(--radius-md, 8px); padding: 10px 12px; margin-bottom: 8px; background: var(--bg-card); transition: border-color .12s; }
.task-card:hover { border-color: var(--border-strong); }
.task-card.sel { border-color: var(--accent); background: var(--accent-soft); }
.task-card.live { border-left: 2px solid var(--accent); }
.tc-row { display: flex; gap: 10px; align-items: center; }
.tc-check { flex: 0 0 auto; }
/* Two-line card: line 1 = title + pills (inline), line 2 = actions */
.tc-main { min-width: 0; flex: 1; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tc-title { font-size: 13.5px; font-weight: 550; color: var(--text); line-height: 1.35; flex: 1 1 auto; min-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-desc { flex: 1 0 100%; font-size: 12px; color: var(--text-muted); margin-top: 2px; line-height: 1.4; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.tc-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 0; align-items: center; flex: 0 0 auto; }
.tc-actions { display: flex; gap: 6px; margin-top: 6px; align-items: center; }
.task-card { padding: 8px 12px; }

.btn-mini { padding: 3px 9px; font-size: 11.5px; line-height: 1.4; border-radius: 6px; }

/* ============ QUEUES (operational backlog monitor) ============ */
.queues { max-width: 1120px; }
.q-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 4px; flex-wrap: wrap; }
.q-subtitle { font-size: 13px; color: var(--text-secondary); }
.q-asof { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--text-muted); }
.q-section { margin-top: 4px; }
.q-lane { display: flex; align-items: center; gap: 8px; margin: 22px 0 12px; font-size: 13px; font-weight: 560; color: var(--text); }
.q-lane svg { width: 16px; height: 16px; stroke-width: 2; color: var(--text-secondary); }
.q-lane-hint { font-weight: 400; color: var(--text-muted); font-size: 12.5px; }
/* Grid with equal-height rows (grid-auto-rows:1fr) so every card in a section
   matches the tallest — uniform sizing per section, no per-row stretch gaps. */
.q-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(238px, 1fr)); gap: 12px; grid-auto-rows: 1fr; }
/* Cowork lane: fixed 4 columns so the numbered pipeline steps (1 → 2 → 3 → 4)
   always line up on their own first row, in order; the independent cards flow
   beneath. (The generic auto-fill grid gives 3 cols at this width, which wrapped
   step 4 off the first row and scrambled the sequence.) */
.q-grid.q-grid-cowork { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .q-grid.q-grid-cowork { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.q-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 13px 15px; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); }
.q-card.attn { border-color: rgba(245,158,11,0.45); }
.q-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.q-name { font-size: 13.5px; font-weight: 560; color: var(--text); }
.q-pill { flex: none; font-size: 10px; font-weight: 650; letter-spacing: 0.04em; text-transform: uppercase; padding: 2px 8px; border-radius: 20px; }
.q-pill.cowork { background: rgba(245,158,11,0.16); color: var(--warn); }
.q-pill.inapp { background: var(--accent-soft); color: var(--accent); }
.q-pill.auto { background: rgba(16,185,129,0.16); color: var(--success); }
.q-pill.log { background: var(--bg-active); color: var(--text-muted); }
.q-numrow { display: flex; align-items: baseline; gap: 7px; margin-top: 9px; }
.q-num { font-family: var(--mono); font-size: 25px; font-weight: 600; line-height: 1; color: var(--text); }
.q-num.attn { color: var(--warn); }
.q-unit { font-size: 12px; color: var(--text-muted); }
.q-age { font-size: 11.5px; color: var(--text-muted); }
.q-desc { font-size: 12px; color: var(--text-secondary); margin-top: 7px; line-height: 1.45; }
.q-note { font-size: 11.5px; color: var(--text-muted); margin-top: 4px; min-height: 14px; }
.q-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.q-actions .btn-mini.q-copy { white-space: nowrap; }
.q-actions .btn-mini.q-copy.cmd { font-family: var(--mono); font-size: 11px; }
.q-copy.copied { color: var(--success); border-color: var(--success); }
/* Cards with depth are clickable → drill into the orgs behind the count */
.q-card.clickable { cursor: pointer; transition: border-color .12s, box-shadow .12s, transform .12s; }
.q-card.clickable:hover { border-color: var(--border-strong); box-shadow: var(--shadow); transform: translateY(-1px); }
.q-card.clickable:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Queue drill-in modal — list of orgs/firms + their status behind one card */
.review.q-detail { width: 600px; max-width: 96vw; }
.q-detail-count { font-family: var(--mono); font-weight: 600; color: var(--text-muted); margin-left: 4px; }
.q-detail-sub { font-size: 12.5px; color: var(--text-secondary); padding: 0 18px 12px; border-bottom: 1px solid var(--border); }
.q-detail-body { display: block; padding: 0; }
.q-detail-list { list-style: none; margin: 0; padding: 0; }
.q-detail-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 10px 18px; border-bottom: 1px solid var(--border); }
.q-detail-row:hover { background: var(--bg-surface); }
.q-detail-main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.q-detail-name { font-size: 13.5px; font-weight: 560; color: var(--text); }
.q-detail-meta { font-size: 11.5px; color: var(--text-muted); line-height: 1.4; }
.q-detail-status { flex: none; font-size: 10.5px; font-weight: 600; letter-spacing: .02em; padding: 2px 9px; border-radius: 20px; background: var(--bg-active); color: var(--text-secondary); white-space: nowrap; }
.q-detail-status.warn { background: rgba(245,158,11,0.16); color: var(--warn); }
.q-detail-status.ok { background: rgba(16,185,129,0.16); color: var(--success); }
.q-detail-status.muted { background: var(--bg-active); color: var(--text-muted); }
.q-detail-foot-note { font-size: 12px; color: var(--text-muted); }
/* per-row dismiss (reject) + undo in the drill-in */
.q-detail-side { flex: none; display: flex; align-items: center; gap: 8px; }
.q-detail-dismiss, .q-detail-undo { flex: none; font-size: 11px; font-weight: 560; padding: 3px 9px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-secondary); cursor: pointer; white-space: nowrap; }
.q-detail-dismiss:hover { border-color: var(--danger, #ef4444); color: var(--danger, #ef4444); background: rgba(239,68,68,0.08); }
.q-detail-undo:hover { border-color: var(--accent); color: var(--accent); }
.q-detail-dismiss:disabled, .q-detail-undo:disabled { opacity: .5; cursor: default; }
.q-detail-dismiss.busy { opacity: .5; pointer-events: none; }
.q-detail-row.dismissed { opacity: .6; }
.q-detail-row.dismissed .q-detail-name { text-decoration: line-through; }

/* Cockpit "don't forget" banner */
.q-banner { display: flex; align-items: center; gap: 11px; padding: 10px 14px; margin-bottom: 18px; background: rgba(245,158,11,0.10); border: 1px solid rgba(245,158,11,0.32); border-radius: var(--radius); cursor: pointer; }
.q-banner:hover { border-color: rgba(245,158,11,0.55); background: rgba(245,158,11,0.14); }
.q-banner > svg { width: 18px; height: 18px; stroke-width: 2; color: var(--warn); flex: none; }
.q-banner-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.q-banner-txt > span:first-child { font-size: 13px; font-weight: 560; color: var(--text); }
.q-banner-list { font-size: 12px; color: var(--text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-banner-go { margin-left: auto; flex: none; font-size: 12px; font-weight: 560; color: var(--warn); }

/* step badge on the match-pipeline cards */
.q-namewrap { display: flex; align-items: center; gap: 7px; min-width: 0; }
.q-seq { flex: none; width: 17px; height: 17px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 10.5px; font-weight: 650; display: grid; place-items: center; font-family: var(--mono); }

/* ============ CAPTURE REVIEW ============ */
.cr { max-width: 920px; }
.cr-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 12px; }
.cr-sub { font-size: 13px; color: var(--text-secondary); max-width: 560px; }
.cr-tools { display: flex; gap: 8px; flex: none; }
.cr-filters { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 14px; }
.cr-list { display: flex; flex-direction: column; gap: 8px; }
.cr-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; }
.cr-row-main { min-width: 0; flex: 1; }
.cr-row-top { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.cr-firm { font-size: 13.5px; font-weight: 560; color: var(--text); background: none; border: none; padding: 0; cursor: pointer; }
.cr-firm:hover { color: var(--accent); text-decoration: underline; }
.cr-cat { font-size: 10px; font-weight: 650; text-transform: uppercase; letter-spacing: .03em; padding: 2px 7px; border-radius: 20px; }
.cr-cat.no_site { background: var(--accent-soft); color: var(--accent); }
.cr-cat.timeout { background: rgba(245,158,11,0.16); color: var(--warn); }
.cr-cat.wrong { background: rgba(239,68,68,0.14); color: var(--danger); }
.cr-cat.other { background: var(--bg-active); color: var(--text-muted); }
.cr-status { font-size: 11px; color: var(--text-muted); font-family: var(--mono); }
.cr-age { font-size: 11.5px; color: var(--text-muted); margin-left: auto; }
.cr-url { display: block; font-size: 12px; color: var(--accent); margin-top: 5px; font-family: var(--mono); word-break: break-all; text-decoration: none; }
.cr-url:hover { text-decoration: underline; }
.cr-reason { font-size: 12px; color: var(--text-secondary); margin-top: 5px; line-height: 1.45; }
.cr-edit { display: flex; gap: 7px; align-items: center; margin-top: 9px; flex-wrap: wrap; }
.cr-edit .field { max-width: 320px; }
.cr-actions { display: flex; flex-direction: column; gap: 6px; flex: none; width: 96px; }
.cr-actions .btn-mini { width: 100%; justify-content: center; }

.tmeta-chip { font-size: 10.5px; padding: 1px 7px; border-radius: 10px; background: var(--bg-elevated); color: var(--text-secondary); border: 1px solid var(--border); white-space: nowrap; }
.tmeta-chip.rel { color: var(--text); }
.tmeta-chip.mtg { cursor: pointer; color: var(--accent); border-color: var(--accent-soft); }
.tmeta-chip.mtg:hover { background: var(--accent-soft); }
.tmeta-chip[data-src="meeting"] { color: #c084fc; }
.tmeta-chip[data-src="capture"] { color: #34d399; }
.tmeta-chip[data-src="email"] { color: #60a5fa; }
.tmeta-chip[data-src="agent"] { color: #fbbf24; }
.tmeta-chip[data-src="manual"] { color: var(--text-secondary); }

.prio-pill { font-size: 10.5px; padding: 1px 8px; border-radius: 10px; font-weight: 600; text-transform: capitalize; }
.prio-pill[data-prio="high"] { background: rgba(239,68,68,0.15); color: #f87171; }
.prio-pill[data-prio="medium"] { background: rgba(245,158,11,0.15); color: #fbbf24; }
.prio-pill[data-prio="low"] { background: var(--bg-elevated); color: var(--text-muted); }

.due-pill { font-size: 10.5px; padding: 1px 8px; border-radius: 10px; background: var(--bg-elevated); color: var(--text-secondary); white-space: nowrap; }
.due-pill.soon { background: rgba(245,158,11,0.15); color: #fbbf24; }
.due-pill.overdue { background: rgba(239,68,68,0.15); color: #f87171; }

.qs-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; margin-top: 8px; }
.qs-row .field { padding: 5px 8px; font-size: 12px; }

.live-group { margin-bottom: 6px; }
.live-group-head { font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); padding: 6px 2px 4px; }

/* tasks page */
.tasks-page { padding: 2px; }
.rec-toolbar .field.tf { max-width: 150px; padding: 6px 10px; font-size: 12.5px; }
.tasks-table td { vertical-align: middle; }
.tasks-table .ta-actions { white-space: nowrap; display: flex; gap: 5px; justify-content: flex-end; }
.tasks-table tr.row-archived { opacity: .55; }
.arch-tag { font-size: 10px; color: var(--text-muted); margin-left: 8px; border: 1px solid var(--border); border-radius: 8px; padding: 0 6px; }
.lane-pill { font-size: 10.5px; padding: 1px 8px; border-radius: 10px; text-transform: capitalize; }
.lane-pill[data-lane="pending"] { background: rgba(245,158,11,0.15); color: #fbbf24; }
.lane-pill[data-lane="live"] { background: rgba(52,211,153,0.15); color: #34d399; }
.lane-pill[data-lane="dismissed"] { background: var(--bg-elevated); color: var(--text-muted); }

/* ── Cockpit top row: capture + upcoming meetings ──────────────── */
/* Same column template as the panels below so "Upcoming" aligns with the reader pane. */
.cockpit-top { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(300px,1fr); gap: 16px; align-items: stretch; margin-bottom: 16px; }
@media (max-width: 980px) { .cockpit-top { grid-template-columns: 1fr; } }
.cockpit-top .capture-bar { margin: 0; display: flex; flex-direction: column; position: relative; padding: 14px 16px; background: var(--bg-elevated); border: 1px solid var(--border-strong); transition: border-color .12s, box-shadow .12s; }
.cockpit-top .capture-bar:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.cockpit-top .capture-input { flex: 1; resize: none; font-size: 15px; }
.cockpit-top .capture-actions { margin-top: 10px; }
.capture-bar.drag { outline: 2px dashed var(--accent); outline-offset: -6px; }
.cap-drop-hint { position: absolute; inset: 6px; z-index: 3; display: grid; place-items: center; background: var(--accent-soft); border-radius: 10px; color: var(--accent); font-size: 13.5px; font-weight: 650; pointer-events: none; }
.cap-files { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.cap-file-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 220px; padding: 2px 4px 2px 10px; border-radius: 12px; background: var(--bg-elevated); border: 1px solid var(--border); font-size: 11.5px; color: var(--text-secondary); }
.cap-file-chip > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cap-file-chip button { background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: 15px; line-height: 1; padding: 4px 7px; border-radius: 8px; }
.cap-file-chip button:hover { color: #f87171; }
.cap-attach { cursor: pointer; }
.panel.upcoming { display: flex; flex-direction: column; min-height: 0; }
.up-list { flex: 1; max-height: 220px; overflow-y: auto; }
.up-line { display: flex; align-items: baseline; gap: 10px; padding: 8px 14px; border-bottom: 1px solid var(--border); cursor: pointer; font-size: 12.5px; box-shadow: inset 2px 0 0 transparent; transition: background .1s, box-shadow .1s; }
.up-line:last-child { border-bottom: none; }
.up-line:hover { background: var(--bg-hover); box-shadow: inset 2px 0 0 var(--border-strong); }
.up-line.soon { background: rgba(245,158,11,0.12); }
.up-line.soon:hover { background: rgba(245,158,11,0.18); }
.up-line.soon .up-when { color: #fbbf24; }
.up-line.imminent { background: rgba(239,68,68,0.13); }
.up-line.imminent:hover { background: rgba(239,68,68,0.20); }
.up-line.imminent .up-when { color: #f87171; }
.up-when { flex: 0 0 auto; width: 84px; color: var(--text-secondary); font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.up-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }

/* ── Cockpit tasks: condensed list + reading pane ──────────────── */
.tasks-cockpit { margin-bottom: 16px; }
/* Rank: Tasks is the primary workspace (taller, stronger header); campaigns is secondary (compact). */
.tasks-cockpit.tasks-primary .tc-list, .tasks-cockpit.tasks-primary .tc-read { max-height: 520px; }
.tasks-cockpit.tasks-primary > .panel-head { border-left: 2px solid var(--accent); padding-left: 12px; }
.tasks-cockpit.tasks-primary > .panel-head h3 { font-size: 15px; }
.tasks-cockpit.compact .tc-list, .tasks-cockpit.compact .tc-read { max-height: 280px; }
.tasks-cockpit.compact > .panel-head h3 { font-size: 13px; color: var(--text-secondary); }
/* Standardized small header action (replaces hardcoded inline padding). */
.btn.btn-sm { padding: 5px 11px; font-size: 12.5px; }
.tasks-cockpit-body { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(300px,1fr); }
@media (max-width: 980px) { .tasks-cockpit-body { grid-template-columns: 1fr; } }

.tc-list { max-height: 400px; overflow-y: auto; border-right: 1px solid var(--border); }
@media (max-width: 980px) { .tc-list { border-right: none; border-bottom: 1px solid var(--border); } }
.tc-line { display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-bottom: 1px solid var(--border); cursor: pointer; font-size: 13px; box-shadow: inset 2px 0 0 transparent; transition: background .1s, box-shadow .1s; }
.tc-line:last-child { border-bottom: none; }
.tc-line:hover { background: var(--bg-hover); box-shadow: inset 2px 0 0 var(--border-strong); }
.tc-line.sel { background: var(--accent-soft); box-shadow: inset 2px 0 0 var(--accent); }
.tc-line.sel:hover { box-shadow: inset 2px 0 0 var(--accent); }
.tc-line-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.tc-line.isnew .tc-line-title { font-weight: 600; }
.tc-line-rel { flex: 0 0 auto; font-size: 11px; color: var(--text-muted); max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.new-badge { flex: 0 0 auto; font-size: 9px; font-weight: 700; letter-spacing: .05em; padding: 1px 6px; border-radius: 9px; background: var(--accent); color: #fff; }
.prio-dot { flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: var(--text-muted); }
.prio-dot[data-prio="high"] { background: #f87171; }
.prio-dot[data-prio="medium"] { background: #fbbf24; }
.prio-dot[data-prio="low"] { background: var(--text-muted); }

.tc-read { padding: 16px 18px; max-height: 400px; overflow-y: auto; position: relative; }
.tc-read.drag { outline: 2px dashed var(--accent); outline-offset: -8px; }
.tc-drop-hint { position: absolute; inset: 8px; z-index: 3; display: grid; place-items: center; background: var(--accent-soft); border-radius: 10px; color: var(--accent); font-size: 13.5px; font-weight: 650; pointer-events: none; }
.tc-read-empty { color: var(--text-muted); font-size: 13px; display: grid; place-items: center; min-height: 140px; }
.tc-read-title { font-size: 15px; font-weight: 600; color: var(--text); line-height: 1.4; margin-bottom: 10px; }
.tc-read-badges { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.tc-read-meta { margin: 0 0 14px; display: flex; flex-direction: column; gap: 5px; }
.trm-row { display: grid; grid-template-columns: 72px 1fr; gap: 12px; font-size: 12.5px; align-items: baseline; }
.trm-row dt { color: var(--text-muted); font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; }
.trm-row dd { margin: 0; color: var(--text-secondary); }
.tc-read-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; margin-bottom: 16px; padding-top: 12px; border-top: 1px solid var(--border); }
.tc-read-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pill-action { border-radius: 999px; padding: 6px 16px; font-size: 12.5px; }
.linkish { background: none; border: none; color: var(--accent); cursor: pointer; padding: 0; font: inherit; text-align: left; }
.linkish:hover { text-decoration: underline; }

/* task attachments (reading pane) */
.tc-files { border-top: 1px solid var(--border); padding-top: 12px; margin-bottom: 16px; }
.tc-files-head { display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); margin-bottom: 8px; }
.tc-attach { cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.hidden-file { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.tc-files-empty { font-size: 12px; color: var(--text-muted); }
.tc-files-err { font-size: 12px; color: var(--danger, #f87171); margin-bottom: 6px; }
.tc-file { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 12.5px; }
.tc-file-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-file-size { flex: 0 0 auto; font-size: 11px; color: var(--text-muted); }
.tc-file-x { flex: 0 0 auto; background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: 16px; line-height: 1; padding: 4px 7px; border-radius: 8px; }
.tc-file-x:hover { color: #f87171; }

/* ── Workflows · Enrich Contact ─────────────────────────────────────────── */
.wf-page { padding: 2px; height: 100%; display: flex; flex-direction: column; min-height: 0; }
.wf-submit { display: flex; gap: 8px; align-items: center; margin-bottom: 14px; }
.wf-input { flex: 1 1 auto; min-width: 0; }
/* Body fills the remaining window height; each pane scrolls internally. */
.wf-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 1.6fr); grid-template-rows: minmax(0, 1fr); flex: 1 1 auto; min-height: 0; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
@media (max-width: 980px) { .wf-body { grid-template-columns: 1fr; grid-template-rows: minmax(220px, 1fr) minmax(220px, 1fr); } }
.wf-list { max-height: none; min-height: 0; }
.wf-read { max-height: none; min-height: 0; }
.wf-line { gap: 9px; }
.wf-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--text-muted); }
.wf-dot.done { background: #34d399; }
.wf-dot.enriching { background: var(--accent); animation: wf-pulse 1.3s ease-in-out infinite; }
@keyframes wf-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.wf-badge { flex: 0 0 auto; font-size: 10.5px; padding: 1px 8px; border-radius: 9px; background: var(--accent-soft); color: var(--accent); max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wf-badge.enriching { background: var(--bg-hover); color: var(--text-muted); font-style: italic; }
.wf-fresh { flex: 0 0 auto; font-size: 10.5px; color: var(--text-muted); }
.wf-read-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.wf-photo { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; flex: 0 0 auto; border: 1px solid var(--border); }
.wf-sub { font-size: 12.5px; color: var(--text-secondary); margin-top: 2px; }
.wf-links { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 7px; }
.wf-enriching { display: flex; gap: 10px; align-items: center; color: var(--text-muted); font-size: 13px; padding: 18px 0; border-top: 1px solid var(--border); margin-top: 4px; }
.wf-dossier { padding-top: 12px; border-top: 1px solid var(--border); }
.wf-summary { font-size: 13.5px; color: var(--text); line-height: 1.55; margin: 0 0 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
.wf-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.wf-chip { font-size: 11px; padding: 2px 9px; border-radius: 999px; background: var(--bg-hover); color: var(--text-secondary); }
.wf-sec { margin-bottom: 16px; }
.wf-sec h4 { font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); margin: 0 0 7px; }
.wf-sec ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 5px; }
.wf-sec li { font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; }
.wf-fit { border: 1px solid var(--border); border-radius: 9px; padding: 9px 11px; margin-bottom: 7px; }
.wf-fit-head { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; }
.wf-fit-label { font-size: 12.5px; font-weight: 600; color: var(--text); flex: 1 1 auto; }
.wf-fit-score { font-size: 11px; font-weight: 700; color: var(--accent); background: var(--accent-soft); padding: 1px 7px; border-radius: 8px; }
.wf-fit-why { font-size: 12px; color: var(--text-secondary); line-height: 1.5; }
.wf-sources li a { color: var(--accent); }
.wf-src-date { color: var(--text-muted); font-size: 11px; }
.wf-meta-line { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; color: var(--text-muted); padding-top: 6px; }
.wf-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.wf-fit-select { max-width: 230px; padding: 6px 10px; font-size: 12.5px; }
.wf-hint { font-size: 11.5px; color: var(--text-muted); margin-top: 8px; }
.rec-research .panel-sub { font-size: 11px; color: var(--text-muted); }
.rec-research .wf-dossier { border-top: none; padding-top: 0; }

/* ── Drafts review queue (D0) ───────────────────────────────────────── */
.dq { display: grid; grid-template-columns: 800px minmax(0, 1fr); gap: 16px; height: calc(100vh - 118px); }
.dq-rail { display: flex; flex-direction: column; min-height: 0; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.dq-rail-head { padding: 9px 10px; border-bottom: 1px solid var(--border); display: flex; flex-direction: column; gap: 8px; }

/* type axis — compact segmented control (reuses .seg tokens; span the rail full-width) */
.dq-typeseg { margin-left: 0; width: 100%; }
.dq-typeseg button { flex: 1; }

/* campaign axis — single horizontal-scroll colour-chip row (mirrors .mr-lane-filter) */
.dq-campchips { display: flex; gap: 6px; min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; padding-bottom: 2px; scroll-snap-type: x proximity; }
.dq-campchips::-webkit-scrollbar { height: 6px; }
.dq-campchip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 16px; border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); font-size: 12px; font-weight: 500; cursor: pointer; white-space: nowrap; flex: 0 0 auto; scroll-snap-align: start; }
.dq-campchip:hover { border-color: var(--border-strong); color: var(--text); }
.dq-campchip.on { border-color: var(--lane, var(--accent)); background: color-mix(in srgb, var(--lane, var(--accent)) 16%, transparent); color: var(--text); }
.dq-campchip.none { color: var(--text-muted); }
.dq-campchip.none.on { border-color: var(--accent); background: var(--accent-soft); color: var(--text); }
.dq-campchip-ct { font-family: var(--mono); font-size: 10.5px; opacity: 0.7; }

.dq-rail-meta { display: flex; align-items: center; gap: 8px; font-size: 10.5px; color: var(--text-muted); font-family: var(--mono); }
.dq-meta-ct { flex: none; }
.dq-meta-stat { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: 0.85; }
.dq-sortbtn { margin-left: auto; flex: none; display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-base); color: var(--text-secondary); font-family: var(--font); font-size: 11px; font-weight: 500; cursor: pointer; }
.dq-sortbtn:hover { border-color: var(--border-strong); color: var(--text); }
.dq-sortbtn.on { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
.dq-sortbtn svg { flex: none; }
.dq-rail-list { flex: 1; overflow-y: auto; min-height: 0; }
/* firm-grouped view — sticky firm header above each firm's drafts */
.dq-firmhdr { display: flex; align-items: center; gap: 8px; padding: 6px 12px 5px; background: var(--bg-sunken); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 1; }
.dq-firmhdr-name { flex: 0 1 auto; min-width: 0; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dq-firmhdr-ct { flex: none; margin-left: auto; font-size: 10px; font-family: var(--mono); color: var(--text-muted); }

/* multi-select checkbox — revealed on row/header hover or while a selection is active */
.dq-check { flex: none; width: 15px; height: 15px; border: 1.5px solid var(--border-strong); border-radius: 4px; display: inline-grid; place-items: center; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .1s; }
.dq-item:hover .dq-check, .dq-firmhdr:hover .dq-check, .dq-rail-list.selecting .dq-check, .dq-check.on { opacity: 1; pointer-events: auto; }
.dq-check.on { background: var(--accent); border-color: var(--accent); }
.dq-check svg { width: 10px; height: 10px; stroke: #fff; opacity: 0; }
.dq-check.on svg { opacity: 1; }
/* bulk action bar (footer, while a selection is active) */
.dq-bulkbar { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-top: 1px solid var(--border); background: var(--bg-elevated); }
.dq-bulk-ct { font-size: 12px; color: var(--text-secondary); }
.dq-bulk-ct b { color: var(--text); font-family: var(--mono); }
.dq-bulk-link { font-size: 11.5px; color: var(--accent); text-decoration: none; cursor: pointer; }
.dq-bulk-link:hover { text-decoration: underline; }
.dq-bulk-spacer { margin-left: auto; }
.dq-bulk-clear { padding: 4px 8px; border: none; background: none; color: var(--text-muted); font-size: 12px; cursor: pointer; }
.dq-bulk-clear:hover { color: var(--text); }
.dq-bulk-archive { padding: 5px 14px; border: 1px solid color-mix(in srgb, var(--danger) 55%, transparent); border-radius: 6px; background: color-mix(in srgb, var(--danger) 14%, transparent); color: #fca5a5; font-size: 12px; font-weight: 600; cursor: pointer; }
.dq-bulk-archive:hover { background: color-mix(in srgb, var(--danger) 24%, transparent); }
.dq-bulk-archive:disabled { opacity: .5; cursor: default; }

/* list row — lane stripe + one dense line (recipient · firm · signals · age · score) */
.dq-item { display: flex; align-items: stretch; border-bottom: 1px solid var(--border); cursor: pointer; }
.dq-item:hover { background: var(--bg-hover); }
.dq-item.on { background: var(--accent-soft); }
.dq-item-stripe { flex: none; width: 3px; align-self: stretch; background: var(--lane, var(--text-muted)); opacity: 0.85; }
.dq-item.on .dq-item-stripe { background: var(--accent); opacity: 1; }
.dq-row { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; padding: 7px 12px 7px 10px; }
/* Bill's rule: always show the full name + full firm (no truncation); the title
   takes the remaining space and ellipsis-truncates if needed. Order: name · firm · title. */
.dq-item-who { flex: 0 0 auto; font-size: 13px; font-weight: 600; color: var(--text); white-space: nowrap; }
.dq-item-who.guess { text-decoration: underline dotted var(--text-muted); text-underline-offset: 3px; }
.dq-item-firm { flex: 0 0 auto; font-size: 11.5px; color: var(--text-muted); white-space: nowrap; }
.dq-item-title { flex: 1 1 auto; min-width: 0; font-size: 11.5px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dq-item-firm::before, .dq-item-title::before { content: '·'; margin-right: 5px; color: var(--text-muted); opacity: 0.5; }
.dq-item-flags { display: inline-flex; align-items: center; gap: 6px; flex: none; margin-left: auto; }
.dq-age { flex: none; font-size: 10px; font-family: var(--mono); color: var(--text-muted); }
.dq-age.stale { color: var(--warn); font-weight: 650; }

/* collapsed signal markers (replace the footer text pills) */
.dq-mk { flex: none; font-size: 11px; line-height: 1; width: 15px; height: 15px; display: inline-grid; place-items: center; border-radius: 4px; }
.dq-mk.fup { color: #d8b4fe; background: rgba(168,85,247,0.16); }
.dq-mk.block { color: var(--danger); background: rgba(239,68,68,0.16); }
.dq-mk.stay { color: var(--warn); background: rgba(245,158,11,0.16); }
.dq-dot { width: 6px; height: 6px; border-radius: 50%; flex: none; }
.dq-dot.edited { background: var(--accent); }

.dq-score { font-family: var(--mono); font-weight: 700; font-size: 11.5px; padding: 1px 7px; border-radius: 5px; background: var(--bg-elevated); color: var(--text-muted); }
.dq-score.good { background: rgba(16,185,129,0.14); color: #6ee7b7; }
.dq-score.mid { background: rgba(245,158,11,0.14); color: #fcd34d; }
.dq-score.bad { background: rgba(239,68,68,0.14); color: #fca5a5; }
.dq-rail-keys { padding: 8px 12px; border-top: 1px solid var(--border); font-size: 10.5px; color: var(--text-muted); font-family: var(--mono); }

/* .dq-tag — retained: the review-pane header reuses it for the "stale" chip */
.dq-tag { font-size: 9.5px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.04em; padding: 1px 6px; border-radius: 4px; }
.dq-tag.stale { background: rgba(245,158,11,0.14); color: #fcd34d; }

.dq-main { display: flex; flex-direction: column; min-height: 0; gap: 12px; overflow-y: auto; padding-right: 4px; }
.dq-main-empty { display: grid; place-items: center; }
.dq-head { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; }
.dq-head-main { min-width: 0; flex: 1; }
.dq-name-row { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.dq-name { font-size: 16px; font-weight: 650; color: var(--text); }
.dq-sub { font-size: 12.5px; color: var(--text-muted); margin-top: 2px; }
.dq-warn { color: var(--warn); }
.dq-ctxstrip { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; font-size: 12px; color: var(--text-secondary); }
.dq-ctx-bit b { color: var(--text); font-weight: 600; }
.dq-ctx-what { color: var(--text-muted); }
.dq-wl { display: inline-flex; align-items: center; gap: 10px; margin-top: 8px; padding: 5px 11px; border-radius: var(--radius-sm); font-size: 12px; font-weight: 600; }
.dq-wl.ok { background: rgba(16,185,129,0.12); color: #6ee7b7; border: 1px solid rgba(16,185,129,0.35); }
.dq-wl.no { background: rgba(245,158,11,0.12); color: #fcd34d; border: 1px solid rgba(245,158,11,0.35); }
.dq-wl.bad { background: rgba(239,68,68,0.12); color: #fca5a5; border: 1px solid rgba(239,68,68,0.4); }
.dq-wl button.act { border-width: 2px; opacity: 1; font-weight: 700; }

/* Opportunity prospect lists editor (record drawer) */
.opp-lists-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.opp-list-head { display: flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 650; }
.opp-list-head .n { font-family: var(--mono); font-size: 10.5px; padding: 1px 7px; border-radius: 999px; background: var(--bg-elevated); color: var(--text-muted); }
.opp-list-head.ok { color: #6ee7b7; }
.opp-list-head.bad { color: #fca5a5; }
.opp-list-sub { font-size: 11px; color: var(--text-muted); margin: 2px 0 8px; }
.opp-list-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid var(--border); font-size: 12.5px; color: var(--text); }
.opp-list-row span:first-child { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.opp-list-when { font-family: var(--mono); font-size: 10.5px; color: var(--text-muted); }
.opp-list-row button { background: none; border: none; color: var(--text-muted); font-size: 15px; line-height: 1; cursor: pointer; padding: 0 3px; }
.opp-list-row button:hover { color: var(--danger); }
.opp-list-add { margin-top: 14px; }
.opp-list-results { margin-top: 6px; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--bg-card); overflow: hidden; }
.opp-list-opt { display: flex; align-items: center; gap: 8px; padding: 7px 11px; border-bottom: 1px solid var(--border); font-size: 12.5px; }
.opp-list-opt:last-child { border-bottom: none; }
.opp-list-opt span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.opp-list-opt .btn { padding: 3px 9px; font-size: 11px; }
.dq-wl button { font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 999px; border: 1px solid currentColor; background: transparent; color: inherit; cursor: pointer; opacity: 0.85; }
.dq-wl button:hover { opacity: 1; }
.dq-meeting { margin-top: 7px; font-size: 12px; color: var(--text-secondary); line-height: 1.5; background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 7px 10px; }
.dq-meeting b { color: var(--text); font-weight: 600; }

.dq-scorebox { position: relative; text-align: center; cursor: pointer; min-width: 74px; }
.dq-score-big { font-size: 21px; padding: 6px 13px; border-radius: var(--radius-sm); display: inline-block; }
.dq-score-cap { font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); margin-top: 3px; }
.dq-score-parts { position: absolute; top: 100%; right: 0; margin-top: 6px; width: 290px; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius); box-shadow: var(--shadow-md); padding: 12px; z-index: 30; cursor: default; }
.dq-score-part { display: grid; grid-template-columns: 92px 1fr 84px; align-items: center; gap: 8px; font-size: 11px; color: var(--text-secondary); padding: 3px 0; text-align: left; }
.dq-score-label { font-weight: 600; color: var(--text); }
.dq-score-bar { height: 5px; background: var(--bg-base); border-radius: 3px; overflow: hidden; }
.dq-score-bar span { display: block; height: 100%; border-radius: 3px; background: var(--text-muted); }
.dq-score-bar span.good { background: #34d399; }
.dq-score-bar span.mid { background: #fbbf24; }
.dq-score-bar span.bad { background: #f87171; }
.dq-score-detail { color: var(--text-muted); font-family: var(--mono); font-size: 10px; text-align: right; }

.dq-fields { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px 16px; }
.dq-field-row { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 10px; padding: 3px 0; }
.dq-field-row label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; }
.dq-field-row .field { padding: 6px 10px; font-size: 13px; }
.dq-subjdiff { font-size: 12px; padding: 6px 0 2px 74px; color: var(--text-muted); }
.dq-subject-wrap { display: flex; align-items: center; gap: 8px; }
.dq-subject-wrap .field { flex: 1; }
.dq-subject-wrap .field:disabled { opacity: 0.65; cursor: not-allowed; }
.dq-subject-lock { font-size: 10.5px; color: var(--text-muted); white-space: nowrap; cursor: help; }

.dq-body { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; font-size: 13.5px; line-height: 1.6; color: var(--text); }
.dq-body-view { white-space: pre-wrap; min-height: 180px; }
.dq-body-edit { min-height: 260px; resize: vertical; line-height: 1.6; font-size: 13.5px; }
.dq-email { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 22px 18px; cursor: text; }
.dq-email-meta { display: flex; justify-content: space-between; gap: 12px; font-family: 'Segoe UI', Tahoma, Arial, sans-serif; font-size: 9pt; color: #777; border-bottom: 1px solid #ececec; padding-bottom: 8px; margin-bottom: 10px; }
.dq-email-subject { font-family: 'Segoe UI', Tahoma, Arial, sans-serif; font-size: 10pt; font-weight: 700; color: #111; margin-bottom: 12px; }
.dq-email-body { font-family: 'Segoe UI', Tahoma, Arial, sans-serif; font-size: 10pt; line-height: 1.5; color: #222; }
.dq-email-body p { font-size: 10pt; }
.dq-email-body mark.em-block { background: #fecaca; color: #991b1b; padding: 0 2px; border-radius: 2px; }
.dq-email-body mark.em-voice { background: #fef3c7; color: #92400e; padding: 0 2px; border-radius: 2px; }
.em-sig { margin-top: 14px; border-top: 1px dashed #ddd; padding-top: 12px; }
.em-sig img { max-width: 100%; }
.em-sig-missing { color: #999; font-style: italic; font-size: 12px; }
.em-quote { margin-top: 16px; }
.em-quote-attr { font-size: 9pt; color: #777; margin-bottom: 6px; }
.em-quote-body { margin: 0 0 0 4px; padding: 2px 0 2px 12px; border-left: 2px solid #ccc; color: #555; font-size: 10pt; line-height: 1.5; }

.dq-diff-bar { display: flex; align-items: center; gap: 8px; background: var(--accent-soft); border: 1px solid var(--accent); border-radius: var(--radius); padding: 8px 14px; }
.dq-diff-count { font-size: 12.5px; color: var(--text); flex: 1; }
.dq-diff-bar .btn { padding: 4px 11px; font-size: 12px; }
.dq-del { background: rgba(239,68,68,0.18); color: #fca5a5; text-decoration: line-through; border-radius: 3px; padding: 0 2px; }
.dq-ins { background: rgba(16,185,129,0.16); color: #6ee7b7; border-radius: 3px; padding: 0 2px; }
.dq-change.dec-accept .dq-ins { background: transparent; color: inherit; }
.dq-change.dec-reject .dq-del { background: transparent; color: inherit; text-decoration: none; }
.dq-chg-btns { display: inline-flex; gap: 2px; vertical-align: middle; margin: 0 2px; }
.dq-chg-btns button { font-size: 10.5px; line-height: 1; padding: 2px 5px; border-radius: 4px; border: 1px solid var(--border-strong); background: var(--bg-elevated); color: var(--text-secondary); cursor: pointer; }
.dq-chg-btns button:first-child:hover { background: rgba(16,185,129,0.2); color: #6ee7b7; }
.dq-chg-btns button:last-child:hover { background: rgba(239,68,68,0.2); color: #fca5a5; }

.dq-flags { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.dq-flag-col { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; }
.dq-flag-head { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; font-weight: 600; margin-bottom: 8px; }
.dq-flag-head .btn { padding: 3px 9px; font-size: 11.5px; }

.dq-revise { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dq-revise .field { flex: 1; min-width: 220px; }
.dq-revise .link-pill { cursor: pointer; }

.dq-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 11px 16px; position: sticky; bottom: 0; }

.dq-confirm { width: 480px; max-width: 92vw; background: var(--bg-elevated); border: 1px solid var(--border-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.dq-confirm-title { font-size: 15px; font-weight: 650; }
.dq-confirm-att { font-size: 12.5px; color: var(--text-secondary); line-height: 1.55; margin: 0; }
.dq-confirm-warn { font-size: 12.5px; color: var(--danger); background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.3); border-radius: var(--radius-sm); padding: 8px 11px; }
.dq-confirm-actions { display: flex; justify-content: flex-end; gap: 9px; }
.dq-key { font-family: var(--mono); font-size: 10px; opacity: 0.75; border: 1px solid currentColor; border-radius: 3px; padding: 0 4px; margin-left: 4px; }

/* ============ MATCH REVIEW (pre-draft queue) ============ */
.mr-head { display: flex; align-items: center; gap: 12px; }
/* Lane filter: a single scrollable line (never wraps to a second row) — its own class so
   it no longer shares .mr-lanes with the detail sibling strip (which set flex:1 and forced
   the wrap/overflow). */
.mr-lane-filter { display: flex; gap: 6px; flex: 1 1 auto; min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; padding-bottom: 2px; scroll-snap-type: x proximity; }
.mr-lane-filter::-webkit-scrollbar { height: 6px; }
.mr-lane-filter .mr-lane-chip { flex: 0 0 auto; scroll-snap-align: start; }
.mr-lane-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 16px; border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); font-size: 12px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.mr-lane-chip.on { border-color: var(--lane, var(--accent)); background: color-mix(in srgb, var(--lane, var(--accent)) 16%, transparent); color: var(--text); }
.mr-lane-ct { font-family: var(--mono); font-size: 10.5px; opacity: 0.7; }
.mr-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: var(--text-muted); }
.mr-dot.cs-high { background: #22c55e; }
.mr-dot.cs-normal { background: var(--accent); }
.mr-dot.cs-thin { background: #d9a23d; }
.mr-lane-tag { margin-left: auto; flex: none; display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; color: var(--text-muted); font-family: var(--mono); white-space: nowrap; overflow: hidden; max-width: 96px; }
.mr-lane-tag > span:last-child { overflow: hidden; text-overflow: ellipsis; }
/* deep-capture in-flight marker — firm shouldn't be actioned until it lands + re-matches */
.mr-capchip { flex: none; margin-left: 6px; font-size: 11px; line-height: 1; padding: 2px 5px; border-radius: 6px; background: rgba(245,158,11,0.16); border: 1px solid rgba(245,158,11,0.4); color: var(--warn); cursor: default; }
.mr-capnote { display: flex; align-items: center; gap: 8px; margin: 14px 0 6px; padding: 9px 12px; border-radius: var(--radius); background: rgba(245,158,11,0.10); border: 1px solid rgba(245,158,11,0.34); color: var(--text); font-size: 12.5px; }
.mr-capnote-ico { flex: none; font-size: 14px; }
/* secondary filter bar (contact / fit / capture) */
.mr-filters2 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 10px 0 2px; }
.mr-fgroup { display: inline-flex; align-items: center; gap: 5px; }
.mr-flabel { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); }
.mr-fchip { padding: 3px 10px; border-radius: 14px; border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); font-size: 12px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.mr-fchip:hover { border-color: var(--border-strong); color: var(--text); }
.mr-fchip.on { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
.mr-fcap.on { border-color: rgba(245,158,11,0.5); background: rgba(245,158,11,0.16); color: var(--warn); }
.mr-fclear { padding: 3px 8px; border: none; background: none; color: var(--text-muted); font-size: 12px; cursor: pointer; text-decoration: underline; }
.mr-fcount { font-size: 11.5px; color: var(--text-muted); }
.mr-conf { font-size: 11px; font-weight: 650; padding: 3px 9px; border-radius: 11px; flex: none; border: 1px solid var(--border-strong); }
.mr-conf.cs-high { color: #6ee7b7; border-color: rgba(16,185,129,0.4); background: rgba(16,185,129,0.12); }
.mr-conf.cs-normal { color: #93c5fd; border-color: rgba(59,130,246,0.4); background: rgba(59,130,246,0.12); }
.mr-conf.cs-thin { color: #fcd34d; border-color: rgba(245,158,11,0.4); background: rgba(245,158,11,0.12); }
.mr-person { background: var(--bg-base); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 14px; margin: 14px 0; }
.mr-person-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mr-person-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; }
.mr-person-name { font-size: 14px; font-weight: 560; color: var(--text); margin-top: 2px; }
.mr-person-email { font-size: 12.5px; color: var(--text-secondary); font-family: var(--mono); margin-top: 2px; }
.mr-muted { font-size: 12px; color: var(--text-muted); padding: 4px 0; }
.mr-swap { margin-top: 10px; border-top: 1px dashed var(--border); padding-top: 8px; max-height: 220px; overflow-y: auto; }
.mr-swap-row { display: flex; justify-content: space-between; gap: 10px; padding: 7px 9px; border-radius: var(--radius-sm); cursor: pointer; font-size: 13px; }
.mr-swap-row:hover { background: var(--bg-hover); }
.mr-for h4, .mr-against h4 { margin-bottom: 4px; }
.mr-against { border-left: 3px solid #d9663d; padding-left: 12px; background: linear-gradient(90deg, rgba(217,102,61,0.06), transparent 70%); border-radius: 0 4px 4px 0; }
.mr-against h4 { color: #d9663d; }
.mr-reject { margin: 14px 0; padding: 12px; background: var(--bg-base); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); }
.mr-reject-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.mr-chip { padding: 4px 10px; border-radius: 14px; border: 1px solid var(--border); background: var(--bg-elevated); color: var(--text-secondary); font-size: 12px; cursor: pointer; }
.mr-chip.on { background: rgba(217,102,61,0.14); border-color: #d9663d; color: #f0a584; }
.mr-reject-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.btn-sm { padding: 4px 10px; font-size: 12px; }
.btn-danger { color: #fff; background: var(--danger); border-color: var(--danger); }
.btn-danger:hover { filter: brightness(1.08); }

/* Match Review v2: status segments, returned banner, chosen-contact */
.mr-head { flex-wrap: wrap; }
.mr-status { display: flex; gap: 4px; flex: none; }
.mr-seg { padding: 4px 11px; border-radius: 7px; border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); font-size: 12px; font-weight: 560; cursor: pointer; }
.mr-seg.on { background: var(--accent-soft); border-color: var(--accent); color: var(--text); }
.mr-seg span { font-family: var(--mono); opacity: 0.8; margin-left: 3px; }
.mr-swap-row.on { background: var(--accent-soft); border: 1px solid var(--accent); }
.mr-returned { background: rgba(217,102,61,0.08); border: 1px solid rgba(217,102,61,0.35); border-radius: var(--radius-sm); padding: 12px 14px; margin: 14px 0; }
.mr-ret-label { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em; color: #d9663d; font-weight: 700; margin-bottom: 6px; }
.mr-ret-comment { font-size: 13px; color: var(--text); line-height: 1.5; font-style: italic; }
.mr-ret-addressed { font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; margin-top: 8px; }

/* "This firm across your lanes" sibling strip — real classes (was 100% inline-styled), and
   no longer borrows the overloaded .mr-lanes rule. Each pill carries its lane's colour. */
.mr-siblings { margin: 6px 0 2px; padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-card); }
.mr-siblings-head { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.6; margin-bottom: 6px; }
.mr-siblings-row { display: flex; flex-wrap: wrap; gap: 6px; max-height: 84px; overflow-y: auto; }
.mr-sib-pill { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 3px 8px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); cursor: pointer; }
.mr-sib-pill:hover { border-color: var(--lane, var(--border-strong)); color: var(--text); }
.mr-sib-pill.cur { border-color: var(--lane, var(--accent)); background: color-mix(in srgb, var(--lane, var(--accent)) 14%, transparent); color: var(--text); }
.mr-sib-status { opacity: 0.6; }
.mr-sib-cur { color: var(--lane, var(--accent)); font-size: 10px; font-style: italic; }
.mr-sib-pill { cursor: default; }
.mr-sib-body { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.mr-sib-ck { width: 13px; height: 13px; flex: none; margin: 0; accent-color: var(--lane, var(--accent)); cursor: pointer; }
.mr-sib-pill.picked { border-color: var(--lane, var(--border-strong)); }

/* bulk firm-level action bar (in the "across your lanes" strip) */
.mr-bulk { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--border); }
.mr-bulk-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.mr-bulk-count { font-size: 11.5px; color: var(--text-secondary); margin-right: 2px; }
.mr-bulk-count b { color: var(--text); font-family: var(--mono); }
.mr-bulk-panel { margin-top: 8px; }
.mr-bulk-selhint { font-size: 11px; font-weight: 400; text-transform: none; letter-spacing: 0; opacity: 0.85; }
.mr-bulk-selhint a { color: var(--accent); text-decoration: none; }
.mr-bulk-selhint a:hover { text-decoration: underline; }

/* matches hub: vehicle chip, add-match, smart combine suggestions, add picker, combine menu, split */
.mr-sib-veh { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.03em; opacity: 0.6; padding: 0 4px; border: 1px solid var(--border); border-radius: 4px; }
.mr-add-btn { margin-left: 8px; font-size: 11px; font-weight: 500; text-transform: none; letter-spacing: 0; padding: 2px 9px; border-radius: 12px; border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); cursor: pointer; }
.mr-add-btn:hover { border-color: var(--border-strong); color: var(--text); }
.mr-add-btn.on { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }

.mr-suggest { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.mr-suggest-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 500; padding: 4px 11px; border-radius: 14px; border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--border)); background: var(--accent-soft); color: var(--accent); cursor: pointer; }
.mr-suggest-chip:hover { border-color: var(--accent); }
.mr-suggest-chip:disabled { opacity: 0.5; cursor: default; }
.mr-suggest-chip b { font-family: var(--mono); }
.mr-suggest-ico { font-size: 13px; line-height: 1; }

.mr-add { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--border); }
.mr-add-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; }
.mr-add-list { max-height: 200px; overflow-y: auto; display: flex; flex-direction: column; gap: 3px; }
.mr-add-row { display: flex; align-items: center; gap: 8px; font-size: 12.5px; padding: 5px 8px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); cursor: pointer; }
.mr-add-row:hover { border-color: var(--border-strong); color: var(--text); }
.mr-add-row.on { border-color: var(--accent); background: var(--accent-soft); color: var(--text); }
.mr-add-camp { font-weight: 600; color: var(--text); }
.mr-add-lane { opacity: 0.8; }
.mr-add-row .mr-sib-veh { margin-left: auto; }

.mr-combine-head { font-size: 12px; color: var(--text-secondary); margin-bottom: 7px; }
.mr-combine-head b { color: var(--text); font-family: var(--mono); }
.mr-combine-targets { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }

.mr-split-btn { border-color: color-mix(in srgb, var(--lane-l8) 50%, var(--border)); color: var(--lane-l8); }
.mr-split-btn:hover { border-color: var(--lane-l8); }

/* ===== firm-grouped list (one row per company) + per-match dispatch hub ===== */
.mr-firm-line { gap: 8px; }
.mr-firm-line .tc-line-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.mr-firm-dots { display: inline-flex; gap: 3px; flex: none; }
.mr-firm-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--lane, var(--text-muted)); }
.mr-firm-ct { font-size: 10.5px; font-family: var(--mono); color: var(--text-muted); flex: none; white-space: nowrap; }

/* the firm's matches, each a row carrying its own recipient + per-match actions */
.mr-matches { display: flex; flex-direction: column; gap: 6px; max-height: 340px; overflow-y: auto; }
.mr-match { border: 1px solid var(--border); border-left: 3px solid var(--lane, var(--border)); border-radius: var(--radius-sm); background: var(--bg-base); padding: 7px 9px; }
.mr-match.cur { background: color-mix(in srgb, var(--lane, var(--accent)) 12%, transparent); }
.mr-match.picked { border-color: var(--lane, var(--border-strong)); }
.mr-match-main { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mr-match-lane { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text); cursor: pointer; }
.mr-match-st { font-size: 11px; color: var(--text-muted); text-transform: capitalize; }
.mr-match-sent { font-size: 10px; line-height: 16px; border-radius: 5px; padding: 0 5px; border: 1px solid transparent; white-space: nowrap; }
.mr-match-sent.sent { color: var(--success); border-color: color-mix(in srgb, var(--success) 40%, transparent); }
.mr-match-sent.bounced { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 45%, transparent); }
.mr-match-sent.unsent { color: var(--text-muted); border-color: var(--border); }
.mr-recip { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-size: 12px; flex-wrap: wrap; }
.mr-recip-set { display: inline-flex; align-items: center; gap: 5px; }
.mr-recip-name { color: var(--text); }
.mr-recip-noemail { font-size: 10px; color: var(--warn); border: 1px solid rgba(245,158,11,0.4); border-radius: 5px; padding: 0 4px; }
.mr-recip-finding { color: var(--accent); font-style: italic; }
.mr-recip-none { color: var(--text-muted); }
.mr-recip-btn { font-size: 11px; padding: 2px 8px; border-radius: 11px; border: 1px solid var(--border); background: var(--bg-elevated); color: var(--text-secondary); cursor: pointer; }
.mr-recip-btn:hover { border-color: var(--border-strong); color: var(--text); }
.mr-recip-pick { margin-top: 7px; border-top: 1px dashed var(--border); padding-top: 7px; max-height: 184px; overflow-y: auto; }
.mr-recip-row { display: flex; justify-content: space-between; gap: 10px; padding: 5px 8px; border-radius: var(--radius-sm); cursor: pointer; font-size: 12.5px; }
.mr-recip-row:hover { background: var(--bg-hover); }
.mr-recip-row.on { background: var(--accent-soft); border: 1px solid var(--accent); }
.mr-find { margin-top: 7px; border-top: 1px dashed var(--border); padding-top: 7px; }
.mr-find .field { width: 100%; }
.mr-find-note { font-size: 11px; color: var(--text-muted); margin-top: 6px; }
.mr-recip-hint { font-size: 12px; color: var(--text-muted); margin: 12px 0 2px; line-height: 1.5; }
.mr-mergebar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; padding: 7px 10px; border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--border)); background: var(--accent-soft); border-radius: var(--radius-sm); font-size: 12px; color: var(--text); }
.mr-mergebar b { font-weight: 600; }
.mr-merge-lead { display: inline-flex; align-items: center; gap: 6px; }
.mr-merge-lead .field { width: auto; height: 28px; padding: 2px 8px; font-size: 12px; }
.mr-mergebar > .btn { margin-left: auto; }

/* ============ INTAKE FRONT DOOR ============ */
.intake-page { max-width: 720px; margin: 0 auto; padding: 10px 4px 48px; }
.intake-head { margin-bottom: 16px; }
.intake-title { font-size: 20px; font-weight: 600; color: var(--text); }
.intake-sub { font-size: 13px; color: var(--text-secondary); margin-top: 4px; line-height: 1.5; }
.intake-modes { display: flex; gap: 6px; margin-bottom: 14px; }
.intake-mode { padding: 7px 14px; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-base); color: var(--text-secondary); font-size: 13px; font-weight: 500; cursor: pointer; }
.intake-mode:hover { border-color: var(--border-strong); color: var(--text); }
.intake-mode.on { border-color: var(--accent); background: var(--accent-soft); color: var(--text); }
.intake-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; }
.intake-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.intake-people-label { font-size: 12px; color: var(--text-muted); margin: 8px 0 8px; }
.intake-person { display: grid; grid-template-columns: 1.2fr 1fr 1.2fr auto; gap: 8px; align-items: center; margin-bottom: 8px; }
.intake-x { width: 30px; height: 30px; border: 1px solid var(--border); background: var(--bg-base); border-radius: 7px; color: var(--text-muted); cursor: pointer; font-size: 17px; line-height: 1; }
.intake-x:hover { color: var(--danger); border-color: var(--danger); }
.intake-addperson { background: none; border: none; color: var(--accent); font-size: 12.5px; cursor: pointer; padding: 2px 0; }
.intake-actions { margin-top: 14px; }
.intake-urlhint { font-size: 12.5px; color: var(--text-secondary); margin-top: 9px; line-height: 1.5; padding: 9px 11px; background: var(--bg-base); border-radius: 8px; border: 1px solid var(--border); }
.intake-foot { font-size: 11.5px; color: var(--text-muted); margin-top: 10px; line-height: 1.5; }
.intake-result { margin-bottom: 12px; padding: 11px 13px; border-radius: 9px; font-size: 13px; background: rgba(34,197,94,0.10); border: 1px solid rgba(34,197,94,0.32); color: var(--text); }
.intake-result a { color: var(--accent); }
.intake-error { margin-bottom: 12px; padding: 10px 13px; border-radius: 9px; font-size: 13px; background: rgba(239,68,68,0.10); border: 1px solid rgba(239,68,68,0.30); color: var(--danger); }
.intake-drop { text-align: center; padding: 30px 16px; border: 1.5px dashed var(--border-strong); border-radius: 11px; color: var(--text-secondary); font-size: 13px; }
.intake-drop svg { width: 30px; height: 30px; margin-bottom: 8px; }
.intake-soon { font-size: 11.5px; color: var(--text-muted); margin-top: 8px; }
.intake-drop { cursor: pointer; display: block; }
.intake-drop:hover { border-color: var(--accent); }

/* ============ WORKBENCH (work.js) — read-only control tower ============ */
.wk-cov { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 9px 12px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: var(--radius); margin: 4px 0 6px; }
.wk-cov-lbl { font-size: 12px; font-weight: 560; color: var(--text-secondary); }
.wk-cov-pill { font-size: 11.5px; padding: 2px 10px; border-radius: 20px; display: inline-flex; align-items: center; gap: 5px; }
.wk-cov-pill.on { background: rgba(16,185,129,0.16); color: var(--success); }
.wk-cov-pill.on::before { content: "\2713"; font-size: 10px; }
.wk-cov-pill.pending { background: var(--bg-active); color: var(--text-muted); border: 1px dashed var(--border-strong); }
.wk-cov-pill.pending::before { content: "\25CB"; font-size: 9px; }
.wk-cov-pill.off { background: transparent; color: var(--text-muted); border: 1px dashed var(--border); opacity: 0.7; }
.wk-cov-pill.off::before { content: "\2715"; font-size: 9px; }
.wk-cov-note { font-size: 12px; color: var(--text-muted); margin: 0 0 14px; line-height: 1.45; }
.wk-stats { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 6px; }
.wk-stat { font-size: 12.5px; padding: 3px 11px; border-radius: 20px; background: var(--bg-elevated); color: var(--text-secondary); }
.wk-stat b { font-weight: 700; font-family: var(--mono); }
.wk-stat.info { background: var(--accent-soft); color: var(--accent); }
.wk-stat.warn { background: rgba(245,158,11,0.16); color: var(--warn); }
.wk-stat.danger { background: rgba(239,68,68,0.15); color: var(--danger); }
.wk-lane { display: flex; align-items: center; gap: 8px; margin: 20px 0 10px; font-size: 13px; font-weight: 560; }
.wk-lane.info { color: var(--info); }
.wk-lane.danger { color: var(--danger); }
.wk-lane.warn { color: var(--warn); }
.wk-lane.ok { color: var(--success); }
.wk-lane.muted { color: var(--text-secondary); }
.wk-lane-n { font-family: var(--mono); font-size: 11px; font-weight: 600; background: var(--bg-active); color: var(--text-muted); border-radius: 20px; padding: 1px 8px; }
.wk-list { display: flex; flex-direction: column; gap: 8px; }
.wk-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; cursor: pointer; transition: border-color .12s, box-shadow .12s; box-shadow: var(--shadow-sm); }
.wk-card:hover { border-color: var(--border-strong); box-shadow: var(--shadow-md); }
.wk-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.wk-titlewrap { display: flex; align-items: center; gap: 9px; min-width: 0; }
.wk-toolbadge { flex: none; font-size: 10px; font-weight: 650; letter-spacing: 0.03em; text-transform: uppercase; padding: 2px 7px; border-radius: 5px; font-family: var(--mono); background: var(--bg-elevated); color: var(--text-secondary); border: 1px solid var(--border); }
.wk-toolbadge.cowork { color: #c4b5fd; }
.wk-toolbadge.claude-code { color: #93c5fd; }
.wk-toolbadge.runner { color: #6ee7b7; }
.wk-name { font-size: 14px; font-weight: 560; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wk-pill { flex: none; font-size: 10px; font-weight: 650; letter-spacing: 0.03em; padding: 2px 9px; border-radius: 20px; background: var(--bg-active); color: var(--text-muted); white-space: nowrap; }
.wk-pill.info { background: var(--accent-soft); color: var(--accent); }
.wk-pill.danger { background: rgba(239,68,68,0.15); color: var(--danger); }
.wk-pill.warn { background: rgba(245,158,11,0.16); color: var(--warn); }
.wk-pill.ok { background: rgba(16,185,129,0.16); color: var(--success); }
.wk-obj { font-size: 12.5px; color: var(--text-secondary); margin-top: 7px; line-height: 1.45; }
.wk-sum { font-size: 12.5px; color: var(--text); margin-top: 5px; line-height: 1.5; }
.wk-next { font-size: 12.5px; color: var(--accent); margin-top: 6px; line-height: 1.45; }
.wk-next-a { font-weight: 700; }
.wk-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.wk-chip { font-size: 11px; padding: 2px 8px; border-radius: 6px; background: var(--bg-elevated); color: var(--text-secondary); border: 1px solid var(--border); display: inline-flex; align-items: center; gap: 4px; text-decoration: none; }
.wk-chip.warn { background: rgba(245,158,11,0.14); color: var(--warn); border-color: transparent; }
.wk-chip.ok { background: rgba(16,185,129,0.14); color: var(--success); border-color: transparent; }
.wk-link { color: var(--accent); }
.wk-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.wk-detail .wk-d { display: flex; flex-direction: column; gap: 9px; }
.wk-d-row { display: grid; grid-template-columns: 92px 1fr; gap: 12px; font-size: 13px; line-height: 1.5; color: var(--text); }
.wk-d-k { color: var(--text-muted); font-size: 12px; }
.wk-d-sec { margin-top: 6px; border-top: 1px solid var(--border); padding-top: 10px; }
.wk-d-h { font-size: 12px; font-weight: 560; color: var(--text-secondary); margin-bottom: 7px; }
.wk-d-audit { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; color: var(--text-secondary); padding: 3px 0; }
.wk-d-when { color: var(--text-muted); flex: none; }
.wk-foot-actions { display: flex; gap: 8px; }
