/* ── BUTTONS ── */
/* ── BUTTON PRIMITIVES (Phase 3 §6.20 §10.6) ──
   Flat-fill, no gradients, no glow box-shadows, no translateY hover lifts.
   Focus rings via outline (not box-shadow) per §9.7. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);border:1px solid transparent;font-family:inherit;white-space:nowrap;}
.btn:focus-visible{outline:2px solid var(--brand-og-accent);outline-offset:2px;}
.btn:disabled{opacity:.5;pointer-events:none;}

/* Primary — flat teal (working accent on light surfaces) */
.btn-primary{background:var(--brand-og-accent);color:#FFFFFF;}
.btn-primary:hover{background:var(--brand-og-accent-hover);}

/* Confirm — flat success (positive irreversible action: archive, finalize) */
.btn-confirm{background:var(--color-green);color:#FFFFFF;}
.btn-confirm:hover{background:#075938;}

/* Destructive — flat error (delete, DNC, archive-with-data-loss) */
.btn-destructive{background:rgba(var(--color-red-rgb),.10);color:var(--color-red);border-color:rgba(var(--color-red-rgb),.25);}
.btn-destructive:hover{background:rgba(var(--color-red-rgb),.18);border-color:rgba(var(--color-red-rgb),.40);}

/* Ghost — secondary neutral */
.btn-ghost{background:rgba(var(--accent-rgb),.06);color:var(--text);border:1px solid rgba(var(--accent-rgb),.16);}
.btn-ghost:hover{border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.1);}

/* Teal — subtle teal-tinted info action */
.btn-teal{background:rgba(var(--brand-og-accent-rgb),.10);color:var(--brand-og-accent);border:1px solid rgba(var(--brand-og-accent-rgb),.25);}
.btn-teal:hover{background:rgba(var(--brand-og-accent-rgb),.18);}

/* Sizes */
.btn-sm{padding:6px 10px;font-size:11px;}
.btn-xs{padding:4px 8px;font-size:10px;}

/* ── INPUT PRIMITIVE (Phase 3 §6.20 §10.6) ──
   Canonical text input. Surface-2 bg on light card, surface-3 inside
   surface-2 contexts. 4px radius, teal focus outline. */
.input{display:block;width:100%;padding:8px 12px;background:var(--s2);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);box-sizing:border-box;}
.input:focus{border-color:var(--brand-og-accent);box-shadow:0 0 0 2px rgba(var(--brand-og-accent-rgb),.25);}
.input:focus-visible{outline:2px solid var(--brand-og-accent);outline-offset:0;border-color:var(--brand-og-accent);}
.input::placeholder{color:var(--dim);}
.input:disabled{opacity:.6;cursor:not-allowed;background:var(--s3);}
.input[aria-invalid="true"]{border-color:var(--color-red);}
.input[aria-invalid="true"]:focus{box-shadow:0 0 0 2px rgba(var(--color-red-rgb),.25);}
.input-sm{padding:6px 10px;font-size:12px;}
.input-xs{padding:4px 8px;font-size:11px;}

/* Wave A: removed .sc-wrap / .sc-dropdown / .sc-option-* — the header Start Calling
   dropdown is dead surface (no DOM element creates these classes; handlers
   toggleSCDropdown + renderSCDropdown deleted in this wave). */

/* ── KPI CARDS ── */
.kpi-row{display:grid;gap:10px;margin-bottom:20px;}
.kpi-row-4{grid-template-columns:repeat(4,1fr);}
.kpi-row-5{grid-template-columns:repeat(5,1fr);}
.kpi-row-3{grid-template-columns:repeat(3,1fr);}

/* ── BENTO GRID — mixed-size KPI cards ── */
.kpi.kpi-wide{grid-column:span 2;}
.kpi.kpi-tall{grid-row:span 2;display:flex;flex-direction:column;justify-content:center;}
.kpi.kpi-featured{grid-column:span 2;background:linear-gradient(135deg,var(--s1) 0%,rgba(var(--accent-rgb),.04) 100%);border-color:rgba(var(--accent-rgb),.18);}
.kpi.kpi-featured .kpi-val{font-size:32px;}

/* ── KPI EXPANDABLE SUBSECTION ── */
.kpi-expand-row{
  grid-column:1/-1;
  border-top:1px solid var(--border);
  margin-top:2px;
}
.kpi-expand-toggle{
  display:flex;align-items:center;gap:6px;padding:6px 4px 0;
  font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;
  letter-spacing:.08em;cursor:pointer;user-select:none;width:fit-content;
}
.kpi-expand-toggle:hover{color:var(--text);}
.kpi-expand-caret{font-size:9px;transition:transform .2s;}
.kpi-expand-toggle.open .kpi-expand-caret{transform:rotate(180deg);}
.kpi-expand-body{display:none;padding:10px 0 4px;}
.kpi-expand-body.open{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.kpi-expand-body.open.cols-4{grid-template-columns:repeat(4,1fr);}

/* ── LEGAL DROPDOWN in modal ── */
.legal-dropdown-toggle{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 12px;background:var(--s2);border:1px solid var(--border);
  border-radius:10px;cursor:pointer;user-select:none;font-size:11px;transition:all .15s;
}
.legal-dropdown-toggle:hover{border-color:var(--border2);}
.legal-dropdown-toggle.open{border-radius:10px 10px 0 0;border-bottom-color:transparent;}
.legal-dropdown-body{
  display:none;border:1px solid var(--border);border-top:none;
  border-radius:0 0 10px 10px;background:var(--s2);overflow:hidden;
}
.legal-dropdown-body.open{display:block;}
.legal-dropdown-item{
  padding:10px 12px;border-bottom:1px solid var(--border);
}
.legal-dropdown-item:last-child{border-bottom:none;}
.legal-dropdown-prop{font-size:9px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;opacity:.7;}
.legal-dropdown-text{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text);line-height:1.6;}
.kpi{background:var(--s1);border:1px solid rgba(var(--accent-rgb),.1);border-radius:12px;padding:14px 16px;position:relative;cursor:default;box-shadow:0 2px 8px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.03);transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast),box-shadow var(--dur-fast);}
/* .kpi::before top stripe removed in R8 L4 Job 9 (BAN 3). The --kc
   per-card color now lives only on .kpi-val text (line below) — value
   color carries identity, chrome stays uniform. */
.kpi-label{font-size:9px;color:rgba(var(--accent-rgb),.5);font-weight:700;margin-bottom:6px;text-transform:uppercase;letter-spacing:.1em;font-family:'JetBrains Mono',monospace;}
.kpi-val{font-size:26px;font-weight:700;color:var(--kc,var(--accent));line-height:1;letter-spacing:-0.03em;font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;}
.kpi-sub{font-size:10px;color:var(--muted);margin-top:2px;}
.kpi.clickable{cursor:pointer;transition:border-color .15s;}.kpi.clickable:hover{border-color:rgba(var(--accent-rgb),.25);}

/* ── TABLE ── */
.tbl-wrap{background:var(--s1);border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 180px);box-shadow:0 4px 16px rgba(0,0,0,.3);}
.tbl-top{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--s1);border-bottom:1px solid var(--glass);color:var(--text);border-radius:11px 11px 0 0;}
.tbl-title{font-size:13px;font-weight:600;color:var(--text);}
.tbl-filter-label{font-size:9px;font-weight:600;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding-left:2px;}
.tbl-actions{display:flex;gap:6px;}
table{width:100%;border-collapse:collapse;table-layout:fixed;}
thead{position:sticky;top:0;z-index:2;}
thead th{padding:6px 12px;text-align:left;font-family:'JetBrains Mono',monospace;font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text);background:var(--s1);border-bottom:1px solid var(--glass);white-space:nowrap;font-weight:700;overflow:hidden;text-overflow:ellipsis;}
th.th-sort{cursor:pointer;user-select:none;transition:color .15s,background .15s;}
th.th-sort:hover{color:var(--color-blue);background:rgba(110,168,254,.08);}
th.th-sort-active{color:var(--color-blue);}
tbody tr{border-bottom:1px solid rgba(255,255,255,.04);transition:background .1s,box-shadow .1s;cursor:pointer;position:relative;background:var(--s1);}
tbody tr:nth-child(even){background:rgba(255,255,255,.02);}
tbody tr:hover{background:rgba(255,255,255,.04);box-shadow:inset 3px 0 0 var(--accent);}
tbody tr:nth-child(even){background:var(--s2);}
tbody tr:hover{background:var(--s3);box-shadow:inset 3px 0 0 var(--color-blue);}
tbody tr:last-child{border-bottom:none;}
tbody td{padding:8px 12px;font-size:12px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums;color:var(--text);}
.td-name{font-size:12px;font-weight:600;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;color:var(--text);}
.td-sub{font-size:10px;color:var(--muted);margin-top:2px;letter-spacing:0.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td-mono{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text);}
.td-r{text-align:right;}
/* Lead icon in first column */
.td-lead-col{text-align:center;width:32px;padding:0 !important;cursor:pointer;}
.td-lead-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:11px;cursor:default;}
.td-lead-hot{background:rgba(239,68,68,.1);color:#EF4444;}
.td-lead-cold{background:rgba(var(--brand-og-accent-rgb),.1);color:var(--brand-og-accent);}
.td-lead-none{color:var(--dim);font-size:9px;}
/* Row quick actions */
.th-actions{width:42px;text-align:center;}
.td-actions{opacity:0;transition:opacity .12s;text-align:center;white-space:nowrap;padding:4px 8px !important;}
tbody tr:hover .td-actions{opacity:1;}
tbody tr:focus-within .td-actions{opacity:1;}
.td-action-btn{width:26px;height:26px;border-radius:6px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .12s;padding:0;}
.td-action-btn:hover{background:var(--glass);color:var(--text);}
.td-action-btn:focus-visible{outline:2px solid var(--color-secondary);outline-offset:2px;}
.td-call-btn:hover,.td-call-btn:focus-visible{background:rgba(41,128,132,.10);color:var(--color-secondary);}
@media (hover:none){.td-actions{opacity:1;}}

/* Owner Hover Preview Card */
.owner-preview{position:fixed;z-index:800;background:var(--s1);border:1px solid var(--border2);border-radius:12px;padding:0;width:300px;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s;overflow:hidden;
  box-shadow: var(--shadow-overlay);}
.owner-preview.visible{opacity:1;transform:translateY(0);}
.owner-preview-inner{padding:12px 16px;}
.op-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.op-name{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.op-lead{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;letter-spacing:.04em;flex-shrink:0;margin-left:8px;}
.op-lead-hot{background:rgba(251,146,60,.12);color:var(--color-orange);border:1px solid rgba(251,146,60,.2);}
.op-lead-cold{background:rgba(var(--brand-og-accent-rgb),.1);color:var(--color-blue);border:1px solid rgba(var(--brand-og-accent-rgb),.2);}
.op-contact{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;}
.op-phone{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--text);font-weight:600;}
.op-addr{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.op-divider{height:1px;background:var(--border);margin-bottom:8px;}
.op-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:8px;}
.op-stat{display:flex;justify-content:space-between;align-items:center;}
.op-stat-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;}
.op-stat-val{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--text);}
.op-dates{display:flex;gap:12px;font-size:10px;color:var(--muted);margin-bottom:6px;}
.op-well{font-size:10px;color:var(--muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Badges */
.int-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:4px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;}
.int-ri{background:rgba(var(--accent-deep-rgb),.12);color:var(--accent);border:1px solid rgba(var(--accent-deep-rgb),.25);}
.int-or{background:rgba(var(--accent-rgb),.1);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.22);}
.cs-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;white-space:nowrap;}
/* .cs-dot removed Track G hygiene (2026-05-06) — leading status-pill ornament dot.
   Pill background-color + text label already encode the status; the dot was
   redundant AI-slop ornament. Industry comparison: Linear/Stripe/Notion/Attio
   status pills have NO leading dot — text + colored chip suffices. */
.cs-new{background:rgba(156,163,175,.1);color:var(--muted);border:1px solid rgba(156,163,175,.2);}
.cs-answered{background:rgba(46,196,138,.1);color:var(--green);border:1px solid rgba(46,196,138,.25);box-shadow:none;}
.cs-no-answer{background:rgba(248,113,113,.1);color:var(--red);border:1px solid rgba(248,113,113,.25);box-shadow:none;}
.cs-callback{background:rgba(var(--color-accent-rgb),.1);color:var(--color-accent);border:1px solid rgba(var(--color-accent-rgb),.22);box-shadow:none;}
.cs-converted{background:rgba(var(--brand-og-accent-rgb),.1);color:var(--blue);border:1px solid rgba(var(--brand-og-accent-rgb),.25);box-shadow:none;}
.cs-completed{background:rgba(46,196,138,.12);color:var(--green);border:1px solid rgba(46,196,138,.28);box-shadow:none;}
.cs-negotiation{background:rgba(var(--accent-rgb),.12);color:var(--accent-hover);border:1px solid rgba(var(--accent-rgb),.28);box-shadow:0 0 6px rgba(var(--accent-rgb),.12);}
.cs-skip{background:rgba(156,163,175,.1);color:#9CA3AF;border:1px solid rgba(156,163,175,.2);box-shadow:none;}
.cs-dnc{background:rgba(224,88,88,.1);color:var(--red);border:1px solid rgba(224,88,88,.22);box-shadow:none;}
.row-skip{opacity:.42;}
.row-completed{background:rgba(var(--color-action-rgb),.04) !important;}
.row-completed:hover{background:rgba(var(--color-action-rgb),.08) !important;}
.dnc-undo-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;margin:8px 0;border-radius:6px;background:rgba(224,88,88,.08);border:1px solid rgba(224,88,88,.2);}
.dnc-undo-label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--red);}
.dnc-undo-btn{padding:4px 12px;border-radius:5px;border:1px solid rgba(224,88,88,.3);background:transparent;color:var(--red);font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s;}
.dnc-undo-btn:hover{background:rgba(224,88,88,.15);}
.due-over{color:var(--red);font-family:'JetBrains Mono',monospace;font-size:10px;}
.due-today{color:var(--accent);font-family:'JetBrains Mono',monospace;font-size:10px;}
.due-soon{color:var(--brand-og-accent);font-family:'JetBrains Mono',monospace;font-size:10px;}
.due-ok{color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:10px;}
.dupe-pill{display:inline-flex;align-items:center;padding:1px 4px;border-radius:4px;font-size:9px;font-weight:600;background:rgba(var(--accent-rgb),.09);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.2);cursor:help;margin-left:6px;}
.om-cross-aoi-list{display:flex;flex-direction:column;gap:6px;}
.om-xaoi-item{border-radius:8px;overflow:hidden;background:rgba(255,255,255,.03);border:1px solid var(--glass);}
.om-xaoi-hdr{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;transition:background .12s;}
.om-xaoi-hdr:hover{background:rgba(255,255,255,.04);}
.om-xaoi-name{font-size:11px;font-weight:600;color:var(--text);}
.om-xaoi-summary{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);margin-left:auto;}
.om-xaoi-chevron{font-size:10px;color:var(--muted);transition:transform .15s;}
.om-xaoi-item.open .om-xaoi-chevron{transform:rotate(90deg);}
.om-xaoi-body{display:none;padding:0 10px 8px 14px;}
.om-xaoi-item.open .om-xaoi-body{display:block;}
.om-xaoi-well{display:flex;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.om-xaoi-well:last-child{border-bottom:none;}
.om-xaoi-well-name{font-size:10px;color:var(--text);font-weight:500;}
.om-xaoi-well-detail{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--color-green);}
.om-xaoi-well-row{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.om-xaoi-well-row:last-child{border-bottom:none;}
.om-xaoi-well-primary{display:flex;align-items:baseline;gap:8px;}
.om-xaoi-well-secondary{display:flex;align-items:center;gap:4px;margin-top:1px;}
.multi-pill{display:inline-flex;align-items:center;gap: 2px;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:600;background:rgba(var(--accent-rgb),.09);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.2);margin-left:6px;}
.offer-val{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;color:var(--color-green);letter-spacing:.01em;}

/* Toolbar */
.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.filter-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px;padding:8px 12px;background:var(--s1);border:1px solid var(--border);border-radius:10px;}
.tbl-actions-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:6px 0;}
.filter-dropdown{position:relative;}
.fd-btn{background:var(--glass-hover);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:4px 26px 4px 10px;color:var(--text);font-size:10px;font-family:'JetBrains Mono',monospace;outline:none;cursor:pointer;transition:border-color .15s;position:relative;text-align:left;white-space:nowrap;min-width:90px;}
.fd-btn::after{content:'▾';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:9px;color:rgba(255,255,255,.6);pointer-events:none;}
.fd-btn:hover{border-color:rgba(var(--accent-rgb),.4);}
.filter-dropdown.open .fd-btn{border-color:rgba(var(--accent-rgb),.5);background:var(--s1);}
.fd-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-dropdown);background:rgba(19,27,46,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(var(--accent-rgb),.18);border-radius:10px;padding:10px;min-width:240px;max-height:280px;overflow-y:auto;display:none;flex-wrap:wrap;gap: 4px;box-shadow:0 8px 32px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.2);}
.filter-dropdown.open .fd-panel{display:flex;}
.search-box{display:flex;align-items:center;gap:6px;background:var(--glass-hover);border:1px solid rgba(255,255,255,.2);border-radius:9px;padding:6px 12px;flex:1;min-width:160px;max-width:280px;transition:border-color .15s;box-shadow:none;}
.search-box input{background:none;border:none;outline:none;color:var(--text-on-dark);font-size:11px;font-family:'JetBrains Mono',monospace;width:100%;letter-spacing:.02em;}.search-box:focus-within{border-color:rgba(255,255,255,.4);box-shadow:0 0 0 3px rgba(255,255,255,.08);}
.search-box input::placeholder{color:rgba(255,255,255,.45);}
.chip{padding:4px 12px;border-radius:20px;font-size:10px;font-weight:500;cursor:pointer;transition:all .15s;border:1px solid rgba(var(--accent-rgb),.14);background:rgba(var(--accent-rgb),.05);color:var(--muted);white-space:nowrap;letter-spacing:.01em;}
.chip.on{border-color:var(--accent-deep);color:#e8e8e8;background:var(--accent-deep);}
.chip:hover:not(.on){color:var(--accent);border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.08);}
.sort-sel{background:var(--s2);border:1px solid rgba(var(--accent-rgb),.15);border-radius:8px;padding:4px 10px;color:var(--text);font-size:10px;font-family:'JetBrains Mono',monospace;outline:none;cursor:pointer;transition:border-color .15s;box-shadow:none;}.sort-sel:hover{border-color:rgba(var(--accent-rgb),.4);}

/* Pager */
.pager{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid rgba(255,255,255,.04);}
.pager-info{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);}
.pager-btns{display:flex;gap: 2px;}
.pg-btn{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;background:rgba(var(--accent-rgb),.05);border:1px solid rgba(var(--accent-rgb),.14);color:var(--muted);transition:all .15s;}
.pg-btn:hover,.pg-btn.on{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.1);}

/* ── SECTION HEADERS ── */
.view-header{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--s1);padding:14px 26px;margin:-22px -26px 16px;border-bottom:1px solid rgba(255,255,255,.06);box-sizing:border-box;position:relative;border-radius:0;}
/* Page-hero canonical size — pinned 24px globally per audit §4.9.
   Was 22px (here), 20px (#pv-header), 28px (analytics hero — kept since
   that surface uses Newsreader italic per the audit's Newsreader-deploy
   list). One canonical sans-serif page-hero size everywhere else. */
.vh-title{font-size:24px;font-weight:700;letter-spacing:-0.02em;color:var(--text);}
.vh-sub{font-size:12px;color:var(--muted);margin-top:2px;}
.vh-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;}
#pv-header{padding:0 0 6px;margin-bottom:0;background:none;border:none;box-shadow:none;border-radius:0;position:relative;z-index:10;}
.pv-back-link{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;padding:2px 0 6px;transition:color .15s;background:none;border:none;}
.pv-back-link:hover{color:var(--accent);}
.pv-hero{background:var(--s3);border:1px solid var(--glass-hover);border-radius:12px;padding:16px 20px;}
.pv-hero-top{display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;}
.pv-hero-left{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.pv-hdr-title{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.03em;}
.pv-hdr-client{font-size:11px;color:var(--muted);margin-top:1px;}

/* ── Project View redesign Phase B (2026-06-12) — two-column hero ──────────
   LEFT project identity | hairline | RIGHT analytics panel scoped to the
   active filter. Flat (no shadow), Newsreader-italic title, teal working
   states. Replaces the .pv-hero-top metric rail (its old rules stay but are
   unused by the new template). */
.pv-top{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:0 20px;}/* gutter so the back-link + Pause/Workspace inset from the flush page edges + align with the hero content */
.pv-top-spacer{flex:1;}
.pv-act-btn{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:7px 12px;border-radius:8px;border:1px solid var(--border);background:var(--s1);color:var(--color-text-secondary);cursor:pointer;}
.pv-act-btn:hover{border-color:var(--color-secondary);color:var(--color-secondary);}
.pv-act-btn svg{width:13px;height:13px;}
.pv-act-btn.pv-paused{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.3);color:#B45309;}
.pv-hero.pv-hero-2col{display:flex;align-items:stretch;padding:0;overflow:hidden;box-shadow:none;border:1px solid #E2E5EA;border-radius:var(--radius-lg,8px);background:#FFFFFF;}/* title side = white (matches table rows); the analytics rail adds its own --s3 tint below */
.pv-col-info{flex:1.05;min-width:0;padding:16px 20px;display:flex;flex-direction:column;justify-content:center;}
.pv-col-div{display:none;}/* removed 2026-06-13 (user-directed): uniform white hero, no internal divider */
.pv-col-analytics{flex:1;padding:13px 18px;display:flex;flex-direction:column;gap:8px;}/* tint removed 2026-06-13 (user-directed): fully uniform white hero, no divider */
.pv-eyebrow{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:4px;}
.pv-title-news{font-family:'Newsreader','Georgia',serif;font-style:italic;font-weight:500;font-size:24px;letter-spacing:-.01em;color:var(--text);line-height:1.1;}
.pv-meta-line{font-size:12px;color:var(--muted);margin-top:5px;}
.pv-an-scope{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-tertiary);}
.pv-an-scope b{color:var(--color-secondary);}
.pv-an-prog{display:flex;align-items:center;gap:8px;}
.pv-an-bar{flex:1;height:6px;border-radius:3px;background:var(--s1);overflow:hidden;}
.pv-an-bar > i{display:block;height:100%;background:var(--color-secondary);border-radius:3px;}
.pv-an-plbl{font-size:11px;color:var(--muted);white-space:nowrap;}
.pv-an-plbl b{font-family:'JetBrains Mono',monospace;color:var(--text);}
.pv-an-nums{display:flex;gap:22px;}
.pv-an-num .v{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;color:var(--text);line-height:1;}
.pv-an-num.money .v{color:var(--color-success);}
.pv-an-num .l{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:4px;}
.pv-an-funnel{font-size:11px;color:var(--muted);}
.pv-an-funnel .od{color:var(--color-warning);font-weight:600;}
@media (max-width:860px){ .pv-hero.pv-hero-2col{flex-direction:column;} .pv-col-div{width:auto;height:1px;} }

/* ── Phase C (2026-06-12) — Project View filter band ──────────────────────
   One row: County pills · Properties dropdown · (spacer) · Call-list filter ·
   Hide Pros. Filters here; the toolbar holds actions only. */
#view-project .pv-filterband{display:flex;align-items:center;flex-wrap:wrap;gap:0;margin-bottom:12px;background:var(--s1);border:1px solid #E2E5EA;border-radius:8px;overflow:visible;}
.pv-fb-group{display:flex;align-items:center;gap:6px;padding:9px 13px;flex-wrap:wrap;}
.pv-fb-div{width:1px;align-self:stretch;background:var(--border);flex-shrink:0;}
.pv-fb-spacer{flex:1;}
/* Content-sized filter sections (2026-06-13): every section is its own width
   (County + Properties dropdowns, the asset tabs, the 3-button call-list seg);
   the spacer eats slack so they sit on ONE row at normal widths. The band wraps
   only when the window is too narrow to fit them all — trailing sections drop to
   a second line rather than slide off-screen. County used to be the flexible
   pills section; it's now a dropdown like Properties, so no special-casing. */
.pv-filterband .pv-fb-group{flex:0 0 auto;}
.pv-fb-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-tertiary);margin-right:4px;white-space:nowrap;}
/* Properties dropdown (searchable; co-owner counts on items) */
.prop-dd{position:relative;}
.prop-dd-btn{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:5px 10px;border:1px solid var(--color-secondary);border-radius:6px;background:var(--color-secondary-muted);color:var(--color-secondary);cursor:pointer;font-family:inherit;}
.prop-dd-btn .cnt{font-family:'JetBrains Mono',monospace;font-size:9px;opacity:.8;}
.prop-dd-btn svg{width:11px;height:11px;}
.prop-dd-pop{position:absolute;top:calc(100% + 5px);left:0;z-index:30;width:248px;background:var(--s1);border:1px solid #E2E5EA;border-radius:8px;box-shadow:0 10px 28px -10px rgba(20,30,40,.22);padding:6px;max-height:340px;overflow:auto;}
.prop-dd-pop[hidden]{display:none;}
.prop-dd-search{width:100%;font-size:11px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;margin-bottom:4px;background:var(--s1);color:var(--text);font-family:inherit;}
.prop-dd-list{display:flex;flex-direction:column;}
.prop-dd-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font-size:11px;padding:6px 8px;border:none;border-radius:5px;background:none;color:var(--text);cursor:pointer;text-align:left;font-family:inherit;}
.prop-dd-item:hover{background:var(--s3);}
.prop-dd-item.active{background:var(--color-secondary-muted);color:var(--color-secondary);font-weight:600;}
.prop-dd-item .c{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);}
.prop-dd-item.active .c{color:var(--color-secondary);}

/* ── Phase D5 (2026-06-12): internal-scroll table like the OWNERS page ──────
   The hero, filter band, and table toolbar stay fixed; only the table BODY
   scrolls, with the column header sticky at top and the pager pinned at
   bottom. Mirrors #view-all.active's flex-column pattern. The table's
   `thead{position:sticky;top:0}` (components.css:115) already exists — it just
   needed a constrained scroll container (#pv-tbl flex:1 + overflow:auto). */
/* Flush full-page — mirrors #view-all.active (owners page): kill the base
   .view 22/26 gutter so the table spans the entire content width edge-to-edge.
   Header chrome + pinned pager stay fixed; rows scroll inside #pv-tbl. */
#view-project.active{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:0;}
#view-project.active > div:not(.tbl-wrap){flex-shrink:0;}
#view-project.active .tbl-wrap{flex:1;min-height:0;display:flex;flex-direction:column;}
#view-project.active .tbl-top,
#view-project.active #pv-asset-tabs{flex-shrink:0;}
#view-project.active #pv-tbl{flex:1;min-height:0;overflow:auto;}
#view-project.active #pv-tbl .pager{position:sticky;bottom:0;z-index:3;margin:0;background:var(--s1);border-top:1px solid var(--border);}

/* ── Step 9: Build Canvas (project-view selection → call list) ──────────────── */
/* Selection model: a toolbar "Add to call list" button engages build mode; while
   engaged, clicking owner rows toggles selection (no checkboxes). */
/* Matches the .cb-tbl-add "Add Owner" button metrics (4px 12px / 10px / 700)
   so the two toolbar buttons are the same height; identity is the teal outline. */
.tb-btn-build{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:4px 12px;border-radius:8px;cursor:pointer;border:1px solid var(--color-secondary,#298084);background:transparent;color:var(--color-secondary,#298084);white-space:nowrap;font-family:inherit;line-height:1.3;}
.tb-btn-build svg{width:11px;height:11px;}
.tb-btn-build:hover{background:var(--color-secondary-muted,rgba(41,128,132,.08));}
.tb-btn-build.is-active{background:var(--color-secondary,#298084);color:#fff;}
#view-project.pv-build-mode #pv-tbl tbody tr{cursor:pointer;}
#view-project.pv-build-mode #pv-tbl tbody tr:hover td{background:var(--color-secondary-muted,rgba(41,128,132,.05));}
#view-project tbody tr.is-selected td{background:var(--color-secondary-muted,rgba(41,128,132,.10));}
#view-project tbody tr.is-selected:hover td{background:var(--color-secondary-muted,rgba(41,128,132,.14));}
/* Build bar (injected above #pv-tbl in build mode) — count + add-to-existing + new. */
.build-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:0 0 10px;background:var(--color-secondary-muted,rgba(41,128,132,.08));border:1px solid var(--color-secondary,#298084);border-radius:8px;flex-shrink:0;flex-wrap:wrap;}
.bb-count{font-size:12px;color:var(--color-secondary,#298084);}
.bb-count b{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;}
.bb-hint{font-size:11px;color:var(--muted);}
.bb-spacer{flex:1;}
.bb-existing{font-size:11px;color:var(--color-text-secondary,var(--muted));display:inline-flex;align-items:center;}
.bb-select{font-size:11px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--s1,#fff);color:var(--text);max-width:230px;}
.bb-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:6px 12px;border-radius:6px;cursor:pointer;border:1px solid var(--border2,var(--border));background:var(--s1,#fff);color:var(--text);font-family:inherit;}
.bb-btn:hover{border-color:var(--color-secondary,#298084);}
.bb-new{border-color:var(--color-secondary,#298084);color:var(--color-secondary,#298084);}
.bb-done{background:var(--color-secondary,#298084);color:#fff;border-color:var(--color-secondary,#298084);}
.bb-done:hover{filter:brightness(1.06);border-color:var(--color-secondary,#298084);}
.pv-canvas-modal-hint{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.4;}
/* Global Call Goal Bar */
.gcg-wrap{padding:8px 16px;margin:0 0 2px;}
.gcg-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.gcg-label{font-size:9px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;}
.gcg-count{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text);font-weight:700;margin-left:auto;}
.gcg-pct{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--color-blue);font-weight:600;}
.gcg-pct--done{color:var(--color-green);}
.gcg-track{height:6px;background:var(--glass);border-radius:3px;overflow:hidden;display:flex;}
.gcg-seg{height:100%;min-width:2px;transition:width .3s;}
.gcg-seg:first-child{border-radius:3px 0 0 3px;}
.gcg-seg:last-child{border-radius:0 3px 3px 0;}
.gcg-seg:only-child{border-radius:3px;}
.gcg-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;}
.gcg-legend-item{font-size:9px;color:var(--muted);display:flex;align-items:center;gap: 2px;}
.gcg-legend-item b{color:var(--text);font-weight:600;}
.gcg-legend-dot{display:none;}

/* Project View hero metric bar — sticky-on-scroll per audit §3.5 P1.
   When the metric cluster scrolls past the page hero, it pins to the
   top so the user always sees overall project KPI context. Only at
   ≥769px (mobile keeps the bottom-bar treatment from R3.W2). */
.pv-hero-metrics{display:flex;align-items:center;gap:16px;}
@media (min-width: 769px) {
  #view-project .pv-hero-metrics {
    position: sticky;
    top: 0;
    z-index: var(--z-sticky, 2);
    background: var(--s1, #FFFFFF);
    padding: 8px 0;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-bottom: 1px solid transparent;
    transition: border-color .15s, padding .15s;
  }
  /* Subtle 1px hairline appears on stuck state (visual cue that bar is pinned) */
  #view-project .pv-hero-metrics:not(:first-child) {
    border-bottom-color: rgba(0,0,0,.06);
  }
}

/* Single-well collapsed display (audit §3.5 P1) — when N=1 wells, show
   as a compact "1 well · NAME" line instead of the filter button row. */
.wf-list--single {
  padding: 6px 12px;
  display: flex;
  align-items: center;
}
.wf-single-label {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: #6B7280;
  letter-spacing: .01em;
}
.wf-single-label b {
  color: #374151;
  font-weight: 600;
}
.pv-metric{text-align:center;min-width:0;}
.pv-metric-chart{display:flex;align-items:center;gap:10px;text-align:left;}
.pv-metric-val{font-size:18px;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--text);line-height:1.1;}
.pv-metric-of{font-size:12px;font-weight:500;color:var(--muted);}
.pv-metric-lbl{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-weight:600;}
.pv-metric-divider{width:1px;height:32px;background:rgba(255,255,255,.08);flex-shrink:0;}
.pv-metric-alert{background:rgba(234,134,143,.06);border-radius:6px;padding:4px 10px;margin:-4px -10px;}
/* ── Project Filter Bar ── */
.pv-filter-bar{display:flex;flex-direction:column;gap:8px;padding:14px 0 6px;}
.pv-filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0;}
.pv-filter-group:last-child{flex-shrink:1;min-width:0;}
.pv-filter-pill{display:inline-flex;align-items:center;gap: 4px;padding:8px 16px;border-radius:8px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--glass-hover);background:var(--s3);color:#c9cdd2;font-family:inherit;transition:all .15s;white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.3),0 1px 3px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.04);}
.pv-filter-pill:hover{border-color:rgba(255,255,255,.22);color:var(--text);background:var(--s3);box-shadow:0 4px 14px rgba(0,0,0,.35),0 1px 3px rgba(0,0,0,.2);}
.pv-filter-pill.active{border-color:var(--color-blue);color:#fff;background:linear-gradient(135deg,rgba(110,168,254,.18),rgba(110,168,254,.1));box-shadow:0 3px 12px rgba(110,168,254,.25),0 0 0 1px rgba(110,168,254,.15),inset 0 1px 0 var(--glass);}
.pv-filter-pill.pv-filter-well{font-size:10px;padding:6px 12px;border-radius:7px;}
.pv-filter-pill.pv-filter-well.active{border-color:var(--accent);background:linear-gradient(135deg,rgba(var(--accent-rgb),.16),rgba(var(--accent-rgb),.08));color:var(--accent);box-shadow:0 3px 12px rgba(var(--accent-rgb),.25),0 0 0 1px rgba(var(--accent-rgb),.15),inset 0 1px 0 var(--glass);}
.pv-filter-count{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:var(--muted);margin-left:2px;}
/* .pv-filter-dot removed Track G.2 — strict-dead, 0 JS/HTML refs. */
.pv-filter-sep{width:1px;height:28px;background:var(--glass-hover);margin:0 6px;flex-shrink:0;}
/* Pinned owner rows — sticky below thead */
.tbody-pinned tr{position:sticky;z-index:1;}
.tbody-pinned tr:last-child td{border-bottom:3px solid var(--accent) !important;box-shadow:0 4px 10px rgba(0,0,0,.15);}
.row-pinned{background:#1E2A3E !important;}
.row-pinned td{border-bottom:1px solid rgba(var(--accent-rgb),.15) !important;}
.row-pinned:hover{background:#243348 !important;}
/* Pin icon — always visible on pinned rows, hover-reveal on others */
.pin-icon{opacity:0;transition:all .15s;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;width:22px;height:22px;border-radius:5px;}
.pin-icon:hover{background:rgba(var(--accent-rgb),.1);}
tbody tr:hover .pin-icon{opacity:.5;}
.pin-icon.pinned{opacity:1;color:var(--accent);background:rgba(var(--accent-rgb),.1);}
.pin-icon.pinned:hover{background:rgba(var(--accent-rgb),.2);}
.td-pin-col{width:40px;text-align:center;cursor:pointer;padding:0 10px 0 4px !important;}
/* Drag states */
.pin-dragging{opacity:.5;}
.pin-drag-over{box-shadow:inset 0 -2px 0 var(--accent) !important;}

/* Asset class tab bar (Mineral / Leasehold) */
.asset-tab-bar{display:flex;gap:4px;margin-bottom:10px;}
.asset-tab{padding:6px 16px;border-radius:8px;font-size:11px;font-weight:600;border:1px solid var(--glass-hover);background:transparent;color:var(--muted);cursor:pointer;transition:all .15s;font-family:inherit;}
.asset-tab:hover{background:rgba(255,255,255,.04);color:var(--text);}
.asset-tab.active{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.25);color:var(--accent);}
/* Asset tabs relocated into the filter band (2026-06-13): drop the standalone
   strip's bottom margin and tighten padding to sit inline with the other band
   controls (County pills, Call-list seg, Hide Pros). */
.pv-filterband .asset-tab-bar{margin:0;align-items:center;line-height:1;}
.pv-filterband .asset-tab{padding:6px 13px;line-height:1;vertical-align:middle;}
/* Normalize the band's filter-pill controls (County pills + Hide Pros) to the
   same ~25-26px height as the Call-list seg / Properties button (line-height:1
   removes the extra ~3px the default pill line-height was adding). */
.pv-filterband .pv-filter-pill{padding:6px 12px;line-height:1;}

/* Scrollable well/tract bar */
.pv-well-bar-wrap{position:relative;min-width:0;margin-top:6px;padding:8px 12px;background:var(--glass);border:1px solid var(--glass-hover);border-radius:10px;}
.pv-well-bar-label{font-size:9px;font-weight:700;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;display:flex;align-items:center;gap:4px;}
.pv-well-bar-count{font-size:8px;background:var(--glass);padding:1px 4px;border-radius:4px;color:var(--muted);}
.pv-well-bar-scroll{display:flex;gap: 4px;padding:2px 0 2px;flex-wrap:wrap;overflow:hidden;}
.pv-well-bar-scroll::-webkit-scrollbar{display:none;}
.pv-well-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:8px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--glass-hover);background:var(--s3);color:var(--muted);font-family:inherit;transition:all .12s;white-space:nowrap;flex-shrink:0;}
.pv-well-chip:hover{border-color:rgba(255,255,255,.2);color:var(--text);background:rgba(255,255,255,.06);}
.pv-well-chip.active{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.1);box-shadow:0 1px 4px rgba(var(--accent-rgb),.15);}
/* ── Context Info Bar ── */
.pv-ctx-card{background:var(--s3);border:1px solid var(--glass-hover);border-radius:10px;padding:10px 16px;margin-bottom:10px;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.pv-ctx-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.pv-ctx-title{font-size:13px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.pv-ctx-details{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.pv-ctx-info-box{display:flex;gap:12px;flex-wrap:wrap;background:#232830;border:1px solid var(--glass);border-radius:8px;padding:6px 12px;}
.pv-ctx-info-item{display:flex;flex-direction:column;gap:2px;}
.pv-ctx-info-val{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text);font-weight:600;}
.pv-ctx-detail{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text);display:flex;align-items:center;gap:4px;}
.pv-ctx-lbl{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.pv-ctx-card--legal{display:flex;gap:16px;align-items:flex-start;}
.pv-ctx-left{flex-shrink:0;min-width:0;}
.pv-ctx-wells-col{flex:1;display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start;padding-left:16px;border-left:1px solid var(--glass);min-width:0;}
.pv-ctx-wells{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--glass);}
.pv-ctx-well{display:inline-flex;align-items:center;gap: 4px;font-size:10px;color:var(--text);background:rgba(255,255,255,.04);border:1px solid var(--glass);padding:2px 10px;border-radius:5px;}
/* .pv-ctx-well-dot removed Track G.2 (2026-05-06) — strict-dead, 0 JS/HTML refs. */
.pv-ctx-well-name{font-weight:500;}
.pv-ctx-loc{font-size:10px;color:var(--muted);font-weight:500;margin-left:6px;}
.pv-ctx-loc-sm{font-size:9px;color:var(--muted);font-weight:500;margin-left:4px;}
.pv-ctx-well-count{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);margin-left:auto;}
.pv-ctx-well-op{font-size:9px;color:var(--muted);font-style:italic;padding-left:6px;border-left:1px solid var(--glass);}
/* ── Project Analytics Button ── */
.pv-analytics-btn{display:inline-flex;align-items:center;gap: 6px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:8px 18px;border-radius:8px;border:1.5px solid var(--accent);background:var(--accent);color:var(--s1);cursor:pointer;transition:all .15s;box-shadow:0 2px 8px rgba(var(--accent-rgb),.35);}
.pv-analytics-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 4px 14px rgba(var(--accent-rgb),.45);}
/* ── Project Analytics Modal ── */
.pv-analytics-overlay{display:none;position:fixed;inset:0;z-index:var(--z-modal,9000);background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;justify-content:center;}
.pv-analytics-overlay.open{display:flex;}
.pv-analytics-card{background:var(--s1);border-radius:16px;width:820px;max-width:92vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.4);border:1px solid rgba(var(--brand-og-accent-rgb),.2);overflow:hidden;}
.pv-analytics-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;background:var(--s1);border-bottom:1px solid rgba(var(--brand-og-accent-rgb),.15);}
.pv-analytics-hdr-title{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}
.pv-analytics-close{width:30px;height:30px;border-radius:8px;border:1px solid var(--glass-hover);background:rgba(255,255,255,.05);color:rgba(255,255,255,.6);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.pv-analytics-close:hover{background:var(--border2);color:#FFFFFF;}
.pv-analytics-body{overflow-y:auto;flex:1;}
/* header background glow overlay */
.vh-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background:none;border-bottom:none;}
.vh-bg::after{display:none;}
/* all direct content sits above the background */
.view-header>*:not(.vh-bg){position:relative;z-index:1;}
#pv-header .vh-title{color:var(--text);font-size:24px;font-weight:700;letter-spacing:-.02em;}
.view-header .vh-title{color:var(--text);font-size:24px;font-weight:800;letter-spacing:-.02em;}
.view-header .vh-sub,#pv-header .vh-sub{color:var(--muted);}
.view-header .vh-actions .btn,.view-header .vh-actions button{color:var(--text);border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08);}
.view-header .vh-actions .btn:hover,.view-header .vh-actions button:hover{color:var(--text);border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.15);}
/* ── Notifications header stat icons ── */
.nq-hdr-stat{display:inline-flex;align-items:center;gap: 4px;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.02em;}
.nq-hdr-stat b{font-size:15px;font-weight:700;line-height:1;}
.nq-hdr-stat--red{color:var(--red);}
.nq-hdr-stat--blue{color:var(--brand-og-accent);}
/* ── All Owners header chips ── */
.ao-hdr-chip{display:inline-flex;align-items:center;gap: 4px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;padding:2px 10px;border-radius:20px;border:1px solid rgba(var(--brand-og-accent-rgb),.3);background:rgba(var(--brand-og-accent-rgb),.1);color:var(--blue);letter-spacing:.02em;}
.ao-hdr-chip--green{border-color:rgba(15,157,108,.3);background:rgba(15,157,108,.1);color:#0F9D6C;}
.ao-hdr-chip--red{border-color:rgba(248,113,113,.25);background:rgba(248,113,113,.08);color:rgba(248,113,113,.85);}
/* ── Dashboard header title block ── */
.dash-hdr-eyebrow{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:2px;display:flex;align-items:center;gap:8px;justify-content:center;}
.dash-hdr-eyebrow::before,.dash-hdr-eyebrow::after{content:'';display:inline-block;width:20px;height:1px;background:var(--accent);}
.dash-hdr-chips{display:flex;align-items:center;gap: 6px;margin-top:4px;flex-wrap:wrap;}
.dash-hdr-chip{display:inline-flex;align-items:center;gap: 4px;font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;padding:4px 10px;border-radius:6px;border:1px solid;white-space:nowrap;}

/* ── PROJECT CARDS (dashboard) ── */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-bottom:24px;}
.proj-card{background:var(--s1);border:1px solid rgba(var(--accent-rgb),.1);border-radius:16px;overflow:hidden;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s;position:relative;}
.proj-card:hover{border-color:rgba(var(--accent-rgb),.3);box-shadow:0 6px 24px rgba(var(--accent-rgb),.08),0 2px 6px rgba(0,0,0,.2);}
.proj-card-accent{position:absolute;top:0;left:0;bottom:0;width:4px;border-radius:14px 0 0 14px;}
.pc-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;}
.pc-left{display:flex;align-items:center;gap:10px;}
.pc-num{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#0a0c10;flex-shrink:0;}
.pc-title{font-size:14px;font-weight:700;}
.pc-subtitle{font-size:11px;color:var(--muted);margin-top:2px;}
.pc-right{text-align:right;}
.pc-offer{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--color-money);font-weight:600;letter-spacing:.01em;}
.pc-offer-label{font-size:9px;color:var(--muted);}
.pc-body{padding:12px 16px 12px 20px;}
.pc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px;}
.pc-stat{background:rgba(var(--accent-rgb),.05);border:1px solid rgba(var(--accent-rgb),.1);border-radius:7px;padding:6px 8px;text-align:center;}
.pc-stat-val{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:600;}
.pc-stat-label{font-size:9px;color:var(--muted);margin-top:1px;}
.pc-wells{display:flex;flex-wrap:wrap;gap:4px;}
.pc-well-tag{padding:2px 8px;border-radius:5px;font-size:10px;font-weight:500;background:var(--s3);border:1px solid var(--border);}
.pc-foot{padding:10px 16px 10px 20px;border-top:1px solid rgba(var(--accent-rgb),.09);display:flex;align-items:center;justify-content:space-between;background:rgba(var(--accent-rgb),.02);}
.pc-progress-wrap{flex:1;display:flex;align-items:center;gap:8px;}
.pc-progress-bar{flex:1;height:4px;background:rgba(var(--accent-rgb),.1);border-radius:2px;overflow:hidden;}
.pc-progress-fill{height:100%;border-radius:2px;transition:width .4s;}
.pc-progress-pct{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);}
.pc-alert{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--red);font-weight:600;}

/* Rename input */
.rename-input{background:var(--s3);border:1px solid var(--border2);border-radius:6px;padding:2px 8px;color:var(--text);font-size:12px;font-family:inherit,sans-serif;outline:none;width:140px;}
.rename-input:focus{border-color:var(--accent);}

/* ── DASHBOARD SPLIT LAYOUT ── */
.dash-analytics-hdr{display:flex;align-items:center;gap:10px;padding:10px 14px 10px;border-bottom:1px solid rgba(255,255,255,.08);background:var(--s1);}
.dash-analytics-hdr-label{font-size:12px;font-weight:600;color:var(--accent);letter-spacing:.02em;flex:1;}
.dash-analytics-hdr-tag{font-family:'JetBrains Mono',monospace;font-size:8px;color:rgba(var(--accent-rgb),.4);letter-spacing:.08em;}
/* ══════════════════════════════════════════════════════════
   DASHBOARD — MAXTON-INSPIRED DARK THEME
   ══════════════════════════════════════════════════════════ */
/* ── CONTACT BOOK HEADER ── */
.cb-header{display:flex;align-items:center;gap:16px;padding:16px 0;margin-bottom:14px;}
.cb-header-left{display:flex;align-items:center;gap:14px;flex:1;min-width:0;}
.cb-title{font-size:24px;font-weight:800;color:var(--text);white-space:nowrap;letter-spacing:-.03em;}
.cb-search{display:flex;align-items:center;gap:8px;background:var(--s3);border:1px solid var(--border2);border-radius:8px;padding:8px 14px;flex:1;max-width:360px;transition:border-color .15s,box-shadow .15s;color:var(--muted);box-shadow:0 2px 6px rgba(0,0,0,.2);}
.cb-search:focus-within{border-color:var(--color-blue);box-shadow:0 0 0 3px rgba(110,168,254,.12),0 2px 6px rgba(0,0,0,.2);}
.cb-search input{background:none;border:none;outline:none;color:var(--text);font-size:12px;font-family:inherit;width:100%;}
.cb-search input::placeholder{color:var(--muted);}
.cb-stats{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;}
.cb-stat{background:var(--s3);border:1px solid var(--glass-hover);border-radius:8px;padding:10px 16px;text-align:center;min-width:72px;box-shadow:0 2px 6px rgba(0,0,0,.2);}
.cb-stat-val{font-size:20px;font-weight:700;color:var(--text);font-family:'JetBrains Mono',monospace;line-height:1;}
.cb-stat-lbl{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;}
.cb-actions{display:flex;gap:8px;flex-shrink:0;}
.cb-action-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--glass-hover);background:var(--s3);color:var(--text);font-family:inherit;transition:background .12s,border-color .12s;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.2);}
.cb-action-btn:hover{background:var(--s3);border-color:rgba(255,255,255,.18);}
/* Export dropdown */
.cb-export-wrap{position:relative;}
.cb-export-dd{display:none;position:absolute;top:calc(100% + 6px);right:0;background:var(--s1);border:1px solid var(--border);border-radius:10px;min-width:180px;padding:4px;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.3);}
.cb-export-dd.open{display:block;}
.cb-export-opt{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:7px;cursor:pointer;font-size:12px;font-weight:500;color:var(--text);transition:background .12s;}
.cb-export-opt:hover{background:var(--glass);}
.cb-export-dd-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 12px 4px;font-family:'JetBrains Mono',monospace;}
.cb-export-btn{color:var(--accent);border-color:rgba(var(--accent-rgb),.25);background:rgba(var(--accent-rgb),.08);}
.cb-export-btn:hover{background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.4);}
/* Add Owner in table toolbar */
.cb-tbl-add{display:flex;align-items:center;gap: 4px;padding:4px 12px;border-radius:6px;font-size:10px;font-weight:600;cursor:pointer;border:1px solid rgba(110,168,254,.2);background:rgba(110,168,254,.08);color:var(--color-blue);font-family:inherit;transition:background .12s,border-color .12s;white-space:nowrap;}
.cb-tbl-add:hover{background:rgba(110,168,254,.15);border-color:rgba(110,168,254,.35);}

/* ── FOLLOW-UPS PAGE (2026-05-23 redesign) ──
   Replaces the legacy 4-stat-pill + 2/3+1/3 layout with eyebrow stats +
   single primary CTA + tiered urgency bands (Priority / Stale / Dead-letter /
   Today / Soon). Legacy .nq-page-stat / .nq-cta-btn rules below kept for the
   header structure; new .nq-eyb-* and .nq-section .nq-row classes implement
   the redesign. */

.nq-page-header{display:flex;align-items:center;gap:20px;padding:16px 0 12px;margin-bottom:8px;}
.nq-page-title{font-family:'Newsreader','Georgia',serif;font-style:italic;font-size:26px;font-weight:500;color:var(--text);letter-spacing:-.01em;white-space:nowrap;line-height:1.1;}
.nq-page-stats{flex:1;min-width:0;}
.nq-page-actions{display:flex;gap:10px;flex-shrink:0;}

#view-deals .nq-page-header{align-items:flex-start;gap:12px 16px;flex-wrap:wrap;}
#view-deals .nq-page-title{flex:0 0 auto;}
#view-deals .nq-page-stats{display:flex;align-items:stretch;gap:8px;flex:0 0 auto;min-width:max-content;}
#view-deals .nq-page-stat{min-width:64px;padding:8px 12px;}
#view-deals .nq-page-actions{flex:1 1 520px;min-width:0;align-items:center;justify-content:flex-end;}
#view-deals .deals-filter-pills{flex:1 1 auto;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
#view-deals .deals-filter-pills::-webkit-scrollbar{display:none;}

.nq-date-eyebrow{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 16px;}

/* Eyebrow: single mono row replacing 4 stat tiles */
.nq-eyebrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.04em;text-transform:uppercase;}
.nq-eyb-seg{display:inline-flex;align-items:baseline;gap:6px;padding:6px 10px;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;font:inherit;color:var(--muted);transition:background .12s,border-color .12s,color .12s;}
.nq-eyb-seg:hover{background:rgba(var(--accent-rgb),.05);border-color:rgba(var(--accent-rgb),.18);color:var(--text);}
.nq-eyb-seg.nq-eyb--active{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.32);color:var(--text);}
.nq-eyb-n{font-weight:700;font-size:13px;color:var(--nq-seg-color, var(--text));letter-spacing:0;}
.nq-eyb-lbl{color:inherit;}
.nq-eyb-seg-total{margin-left:8px;border-left:1px solid var(--color-glass-border);padding-left:14px;}

/* Legacy stat-tile (kept for tab parity if other surfaces still use it) */
.nq-page-stat{background:var(--s1);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px 16px;text-align:center;min-width:72px;box-shadow:0 2px 8px rgba(0,0,0,.2);}
.nq-page-stat-val{font-size:20px;font-weight:700;font-family:'JetBrains Mono',monospace;line-height:1;}
.nq-page-stat-lbl{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;}

/* Primary CTA — single button, flat-solid (Wireline overlay-only-shadow rule).
   Tinted near-white text (NOT pure #fff per CLAUDE.md ban) preserves teal-on-light contrast. */
.nq-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;color:oklch(0.985 0.003 200);font-family:inherit;transition:filter .15s;white-space:nowrap;letter-spacing:.01em;}
.nq-cta-primary{background:var(--accent);border-color:var(--accent);}
.nq-cta-primary:hover{filter:brightness(1.06);}
.nq-cta-primary:active{filter:brightness(.94);}
.nq-cta-arrow{display:inline-flex;align-items:center;opacity:.9;}

/* Stack of urgency bands — flat layout with hairline dividers, no per-section card chrome */
.nq-stack{display:flex;flex-direction:column;gap:0;max-width:920px;background:var(--surface);border:1px solid var(--color-glass-border);border-radius:8px;overflow:hidden;}

/* Section header — single horizontal strip with subtle band-color tint background
   (not a colored vertical accent stripe). Urgency signal: header background tint
   + count number color. Header itself is the toggle-target for collapsible bands. */
.nq-section{display:flex;flex-direction:column;}
.nq-section + .nq-section{border-top:1px solid var(--color-glass-border);}
.nq-section-hdr{display:flex;align-items:center;gap:14px;padding:10px 16px;cursor:pointer;user-select:none;background:color-mix(in oklch, var(--nq-band-color, var(--accent)) 5%, transparent);transition:background .12s;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;}
.nq-section-hdr:hover{background:color-mix(in oklch, var(--nq-band-color, var(--accent)) 8%, transparent);}
.nq-section-label{font-weight:700;color:var(--text);}
.nq-section-count{font-weight:700;color:var(--nq-band-color, var(--text));font-variant-numeric:tabular-nums;font-size:11px;}
.nq-section-sub{font-size:10px;color:var(--muted);font-weight:400;letter-spacing:.06em;text-transform:none;flex:1;font-family:inherit;}
.nq-section-toggle{font-weight:700;color:var(--accent);font-size:10px;letter-spacing:.1em;}
.nq-section-body{background:var(--surface);}

/* Row — 48px target; hover reveals action icons */
.nq-row{display:grid;grid-template-columns:1fr auto auto 84px 68px;align-items:center;gap:14px;padding:8px 16px;border-bottom:1px solid var(--color-glass-border);cursor:pointer;min-height:48px;transition:background .1s;}
.nq-row:last-child{border-bottom:none;}
.nq-row:hover{background:rgba(var(--accent-rgb),.04);}
.nq-row-main{display:flex;align-items:center;gap:8px;min-width:0;}
.nq-row-name{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nq-row-sub{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nq-row-status{display:inline-flex;}
.nq-row-due{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.nq-row-offer{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;color:var(--color-money, var(--color-accent));text-align:right;font-variant-numeric:tabular-nums;}
.nq-row-actions{display:flex;gap:4px;opacity:0;transition:opacity .12s;justify-content:flex-end;}
.nq-row:hover .nq-row-actions,
.nq-row:focus-within .nq-row-actions{opacity:1;}
.nq-row-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--muted);cursor:pointer;transition:background .1s,color .1s,border-color .1s;}
.nq-row-icon:hover{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.2);color:var(--accent);}

@media (max-width: 768px){
  .nq-row{grid-template-columns:1fr auto 60px;}
  .nq-row-offer,
  .nq-row-actions{display:none;}
  .nq-page-header{flex-wrap:wrap;}
  .nq-page-actions{order:3;flex-basis:100%;}
}
.nq-cta-overdue{background:var(--color-red);}
.nq-cta-overdue:hover{background:#7E1313;}
.nq-cta-today{background:var(--accent);}
.nq-cta-today:hover{background:var(--accent-hover);}

/* Notification layout — 2/3 + 1/3 */
.nq-layout{display:flex;gap:16px;align-items:stretch;}
.nq-layout-main{flex:2;min-width:0;display:flex;flex-direction:column;}
.nq-layout-side{flex:1;min-width:0;display:flex;flex-direction:column;}
.nq-fixed-section{height:520px;max-height:520px;display:flex;flex-direction:column;}
.nq-fixed-section>div:not(.nq-sec-hdr){overflow-y:auto;flex:1;min-height:0;}
.nq-upcoming-wrap{max-height:none !important;display:flex;flex-direction:column;flex:1;}
.nq-upcoming-list{overflow-y:auto;flex:1;min-height:0;padding:4px;}
.nq-empty-msg{padding:40px 20px;text-align:center;color:var(--muted);font-size:12px;font-style:italic;}

/* Notification section headers */
.nq-sec-hdr{display:flex;align-items:center;gap:10px;padding:12px 16px;margin-bottom:8px;border-radius:8px;background:var(--s1);}
.nq-sec-title{font-size:13px;font-weight:600;color:var(--text);flex:1;}
.nq-sec-count{font-size:12px;font-weight:700;font-family:'JetBrains Mono',monospace;}
.nq-sec-spacer{margin-bottom:16px;}

#view-dashboard,#view-all,#view-project,#view-deals{
  background:var(--s2);padding:20px;border-radius:0;
  background-image:
    radial-gradient(circle at 15% 10%, rgba(110,168,254,.03) 0%, transparent 50%),
    radial-gradient(circle at 85% 80%, rgba(117,183,152,.03) 0%, transparent 50%),
    url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h40v40H0z' fill='none'/%3E%3Cpath d='M0 40L40 0M-10 10L10-10M30 50L50 30' stroke='rgba(255,255,255,0.02)' stroke-width='1'/%3E%3C/svg%3E");
}
#view-dashboard .view-header{display:none;}

/* Command Row */
.dk-cmd-row{display:grid;grid-template-columns:2fr 3fr;gap:14px;margin-bottom:14px;align-items:start;}
.dk-cmd-card{display:flex;align-items:center;gap:14px;padding:10px 16px;}

/* Account Card */
.dk-card.dk-account-card{gap:14px;background:#1E2A45;border-color:rgba(110,168,254,.25);margin-top:24px;z-index:2;}
.dk-card.dk-account-card:hover{background:#233050;border-color:rgba(110,168,254,.4);}
.dk-acct-avatar{width:40px;height:40px;border-radius:8px;background:var(--brand-og-accent);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff;flex-shrink:0;outline:2px solid rgba(110,168,254,.3);outline-offset:2px;}
.dk-acct-logo{width:34px;height:34px;border-radius:7px;object-fit:contain;flex-shrink:0;}
.dk-acct-info{flex:1;min-width:0;}
.dk-acct-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dk-acct-detail{display:flex;align-items:center;gap:6px;margin-top:2px;}
.dk-acct-company{font-size:10px;font-weight:500;color:var(--muted);}
.dk-acct-sep{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.15);flex-shrink:0;}
.dk-acct-role{font-size:10px;font-weight:600;color:var(--color-blue);}
.dk-goal-mini{display:flex;justify-content:space-between;align-items:center;margin-top:6px;}
.dk-goal-mini-text{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);font-weight:600;}
.dk-goal-mini-pct{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);font-weight:700;}
.dk-goal-mini-bar{height:4px;border-radius:2px;background:var(--glass);overflow:hidden;margin-top:2px;}
.dk-goal-mini-fill{height:100%;border-radius:2px;transition:width .4s ease;}

/* Start Calling Card (.dk-call-card) block removed 2026-05-05 (Layer 21).
   Pre-V3 dashboard CTA; replaced by .cc-card module registry.
   .dk-call-icon, .dk-call-info, .dk-call-title, .dk-call-sub kept until verified
   independently dead in B1 follow-up sweep. */
/* ── Daily Briefing Card ──
   .dk-briefing-card parent class + ::before + @keyframes dk-bf-fadein removed
   Track D.1 (2026-05-06). render.js:2008 sets id="dk-briefing-card" but never
   adds the matching CLASS; the class selector matched 0 elements across all
   7 views. The element renders via class .cc-bf-briefing instead. The
   dk-bf-fadein animation had no other consumers. Live children rules
   (.dk-briefing-greeting, .dk-bf-line, .dk-bf-closing-banner with its own
   dk-bf-banner-in keyframes, etc.) preserved below. */
.dk-briefing-body{display:flex;flex-direction:column;gap:8px;width:100%;position:relative;z-index:1;}
.dk-briefing-hdr{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid rgba(var(--accent-rgb),.1);}
/* Dashboard greeting — Newsreader italic per audit §4.9 ("deploy
   Newsreader at the specified surfaces: project card titles, empty
   state titles, dashboard greeting"). One of the editorial moments. */
.dk-briefing-greeting{font-family:'Newsreader','Georgia',serif;font-style:italic;font-size:24px;font-weight:500;color:var(--text);letter-spacing:-.01em;line-height:1.2;}
.dk-bf-edit-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s;opacity:.5;}
.dk-bf-edit-btn:hover{opacity:1;color:var(--accent);background:rgba(var(--accent-rgb),.08);}
/* .dk-briefing-card.dk-bf-editing .dk-bf-line + :hover removed Track D.1 — parent class never applied; .dk-bf-editing class never set in JS. */
.dk-bf-dragging{opacity:.4 !important;}
.dk-bf-dragover{border-color:var(--accent) !important;background:rgba(var(--accent-rgb),.1) !important;box-shadow:inset 0 0 0 1px var(--accent);}
/* Closing Today Banner */
.dk-bf-closing-banner{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;background:var(--color-danger);color:#fff;border-radius:10px;padding:10px 16px;box-shadow:0 4px 16px rgba(220,38,38,.35);animation:dk-bf-banner-in .3s ease-out;}
@keyframes dk-bf-banner-in{from{opacity:0;}to{opacity:1;transform:translateY(0);}}
.dk-bf-closing-content{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;}
.dk-bf-closing-content b{font-weight:800;}
.dk-bf-closing-link{font-size:11px;font-weight:700;opacity:.85;margin-left:4px;}
.dk-bf-closing-close{background:none;border:none;color:rgba(255,255,255,.5);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;transition:all .15s;}
.dk-bf-closing-close:hover{color:#fff;background:rgba(255,255,255,.15);}
.dk-briefing-greeting span{color:var(--accent);font-weight:800;}
.dk-briefing-lines{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px;}
.dk-bf-line{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text);line-height:1;padding:4px 6px;border-radius:6px;transition:all .12s;cursor:pointer;}
.dk-bf-line.dk-bf-active:hover{background:rgba(var(--accent-rgb),.06);transform:translateX(2px);}
.dk-bf-line.dk-bf-empty{cursor:default;opacity:.3;border:1px dashed var(--border2);padding:4px 6px;}
.dk-bf-line.dk-bf-zero{cursor:default;opacity:.4;}
/* Edit-mode slot rules (.dk-briefing-card.dk-bf-editing X) removed Track D.1 — same parent-class strict-dead rationale. */
/* Briefing picker modal */
.dk-bf-picker-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:9999;display:flex;align-items:center;justify-content:center;}
.dk-bf-picker-modal{background:var(--s1);border:1px solid var(--border2);border-radius:12px;width:320px;max-height:80vh;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.3);}
.dk-bf-picker-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--glass);font-size:13px;font-weight:700;color:var(--text);}
.dk-bf-picker-list{padding:6px;max-height:400px;overflow-y:auto;}
.dk-bf-picker-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;font-size:12px;color:var(--text);cursor:pointer;transition:background .1s;}
.dk-bf-picker-item:hover{background:rgba(var(--accent-rgb),.06);}
.dk-bf-picker-used{opacity:.35;cursor:default;}
.dk-bf-picker-used:hover{background:none;}
.dk-bf-line b{font-weight:700;}
.dk-bf-icon{display:inline-flex;align-items:center;flex-shrink:0;width:20px;height:20px;border-radius:5px;justify-content:center;}
.dk-bf-icon[style*="color:var(--accent)"]{background:rgba(var(--accent-rgb),.08);}
.dk-bf-icon[style*="color:var(--color-red)"]{background:rgba(234,134,143,.08);}
.dk-bf-icon[style*="color:#EF4444"]{background:rgba(239,68,68,.08);}
.dk-bf-icon[style*="color:var(--color-accent)"]{background:rgba(var(--color-accent-rgb),.08);}
.dk-bf-icon[style*="color:var(--color-green)"]{background:rgba(var(--color-action-rgb),.08);}
.dk-bf-icon[style*="color:var(--muted)"]{background:rgba(156,163,175,.08);}


/* Animations */

/* Main Split Layout */
.dk-split{display:grid;grid-template-columns:2fr 3fr;gap:14px;height:calc(100vh - 320px);margin-bottom:32px;}
.dk-left{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden;}
.dk-left>.dk-card:first-child{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;}
.dk-right{display:flex;flex-direction:column;gap:14px;}

/* Cards */
.dk-card{background:var(--s1);border:1px solid rgba(255,255,255,.06);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.12),0 4px 12px rgba(0,0,0,.08);transition:all .15s;}
.dk-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.3);border-color:rgba(255,255,255,.1);}
.dk-card:hover{border-color:var(--border2);}
/* .dk-card-hdr / .dk-card-title removed 2026-05-05 (Layer 21).
   Pre-V3 card header system; dead via runtime DOM + zero JS class refs. */

/* .dk-tree-search / .dk-search-input retained — used by dashboard tree
   module which is independent of the dead .dk-tree-card wrapper. */
.dk-tree-search{padding:8px 10px 4px;flex-shrink:0;}
.dk-search-input{width:100%;background:var(--s1);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:8px 12px;font-size:11px;color:var(--text);font-family:inherit;outline:none;transition:border-color .15s;box-sizing:border-box;box-shadow:inset 0 1px 3px rgba(0,0,0,.2);}
.dk-search-input::placeholder{color:var(--muted);}
.dk-search-input:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px rgba(110,168,254,.15);}
.dk-tree-scroll{flex:1;overflow-y:auto;padding:8px;}
.dk-goals-body{padding:14px 16px;display:flex;flex-direction:column;gap:12px;}
.dk-ct-top{display:flex;align-items:center;gap:14px;}
.dk-goal-ring-wrap{position:relative;width:72px;height:72px;flex-shrink:0;}
.dk-goal-ring-wrap svg{}
.dk-goal-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.dk-goal-num{font-size:18px;font-weight:700;color:var(--text);font-family:'JetBrains Mono',monospace;}
.dk-goal-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;font-family:inherit;}
.dk-ct-outcomes{flex:1;display:flex;flex-direction:column;gap: 2px;}
.dk-ct-out-row{display:flex;align-items:center;gap:6px;font-size:10px;padding-left:8px;border-radius:2px;}
.dk-ct-out-dot{display:none;}
.dk-ct-out-label{flex:1;color:var(--muted);}
.dk-ct-out-val{font-weight:600;color:var(--text);font-family:'JetBrains Mono',monospace;min-width:16px;text-align:right;}
/* Action stats row inside call tracker */
.dk-ct-actions{display:flex;align-items:center;gap:6px;padding:0 4px;border-top:1px solid rgba(255,255,255,.05);padding-top:10px;}
.dk-ct-act{display:flex;flex-direction:column;align-items:center;flex:1;padding:8px 4px;background:var(--s1);border:1px solid rgba(255,255,255,.08);border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.3);}
.dk-ct-act-val{font-size:16px;font-weight:700;font-family:'JetBrains Mono',monospace;line-height:1;}
.dk-ct-act-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-top:2px;font-family:inherit;}
.dk-ct-act-alert{background:rgba(234,134,143,.1);border-color:rgba(234,134,143,.2);}
.dk-ct-act-alert .dk-ct-act-lbl{color:var(--color-red);}
.dk-ct-act-warn .dk-ct-act-lbl{color:#ffda6a;}
.dk-ct-notif-btn{font-size:10px;font-weight:600;color:var(--color-blue);background:rgba(110,168,254,.06);border:1px solid rgba(110,168,254,.15);border-radius:6px;cursor:pointer;padding:4px 10px;font-family:inherit;transition:background .12s,border-color .12s;flex-shrink:0;}
.dk-ct-notif-btn:hover{background:rgba(110,168,254,.12);border-color:rgba(110,168,254,.25);}
/* 7-day bar chart */
.dk-ct-chart{display:flex;align-items:flex-end;gap:4px;padding:0 4px;border-top:1px solid rgba(255,255,255,.05);padding-top:10px;}
.dk-ct-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap: 2px;}
.dk-ct-bar{width:100%;border-radius:4px 4px 0 0;transition:height .4s ease;min-height:3px;}
.dk-ct-bar-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-family:inherit;}
.dk-ct-bar-lbl.dk-ct-today{color:var(--text);font-weight:700;}
.dk-ct-bar-cnt{font-size:10px;color:var(--muted);font-family:'JetBrains Mono',monospace;min-height:10px;}

/* .dk-tree-card .dt-* descendants + dashboard card-hdr hairline overrides
   removed 2026-05-05 (Layer 21).
   .dk-tree-card / .dk-goals-card / #dk-pipeline / #dk-activity all confirmed
   dead via runtime DOM (0 across all 8 views) + zero JS class refs.
   The standalone .dt-row rules at .dt-row{...} (later in file) remain LIVE for
   the actual tree usage in render.js. */
/* Dashboard pipeline-summary widget (.dk-pipe-*) — strict-dead, removed Track D.2 (2026-05-06).
   Render path: deals.js:2156 renderDealsDashboardWidget() → id="dk-deals-widget".
   V3 dashboard lacks #dk-deals-widget container; render function early-returns.
   All .dk-pipe-stage / -bar / -bar-wrap / -label / -count / -dot rules dead. */

/* Activity Feed */
.dk-activity-scroll{max-height:200px;overflow-y:auto;padding:8px 12px;}
.dk-act-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.03);border-radius:4px;margin-bottom:1px;animation:dkFadeIn .3s ease-out;}
@keyframes dkFadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.dk-act-item:last-child{border-bottom:none;}
/* Type semantic carried by .dk-act-icon (lines below) — each icon has its
   own bg + color per type. Removed redundant left-stripe color signal in
   R8 Layer 4 Job 7 (BAN 1 cleanup). */
.dk-act-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:11px;}
.dk-act-icon.call{background:rgba(var(--brand-og-accent-rgb),.15);color:var(--blue);}
.dk-act-icon.status{background:rgba(61,202,130,.15);color:var(--color-completed);}
.dk-act-icon.note{background:rgba(245,158,11,.15);color:#F59E0B;}
.dk-act-icon.callback{background:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);}
.dk-act-body{flex:1;min-width:0;}
.dk-act-text{font-size:11px;color:var(--muted);line-height:1.4;font-family:inherit;}
.dk-act-text b{color:var(--text);font-weight:600;}
.dk-act-time{font-size:10px;color:var(--muted);font-family:'JetBrains Mono',monospace;margin-top:2px;}

/* ── Dark Analytics Panel (dka-*) — strict-dead, removed Track D.2 (2026-05-06) ──
   This 49-line block was the legacy V2 dashboard analytics module. Renders
   into id="dash-proj-analytics" via analytics.js:603. The V3 dashboard
   does NOT include that container element; runtime DOM count for every
   .dka-* selector was 0 across all 7 views, even after creating a deal
   fixture (D.2 verification step). Render function early-returns at the
   container lookup. Plus a broken `animation: dkaPulse` reference (no
   matching @keyframes) and the dead `#dash-proj-analytics.dk-card` +
   `.dpa-empty` rules that were part of the same render. All removed. */

.dash-split{display:block;margin-bottom:24px;}
.dash-unified-card{background:#f9fafb;border:4px solid var(--s1);border-radius:12px;overflow:hidden;}
.dash-unified-hdr{font-size:10px;font-weight:700;color:#FFFFFF;letter-spacing:.1em;text-transform:uppercase;padding:10px 12px;display:grid;grid-template-columns:1fr 2fr;align-items:center;background:var(--s1);}
.dash-hdr-left{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.dash-import-btn{display:inline-flex;align-items:center;gap: 4px;font-size:9px;font-weight:700;font-family:inherit;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;border-radius:7px;border:none;background:var(--accent);color:#FFFFFF;cursor:pointer;transition:all .15s;box-shadow:0 2px 6px rgba(var(--accent-rgb),.3);}
.dash-import-btn:hover{background:var(--accent-hover);box-shadow:0 3px 10px rgba(var(--accent-rgb),.4);}
.dash-unified-body{display:grid;grid-template-columns:1fr 2fr;min-height:300px;background:#f9fafb;}
.dash-split-left{display:flex;flex-direction:column;overflow:hidden;}
.dash-split-left-hdr{display:none;}
.dash-counties-edit-btn{background:var(--border2);border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:2px 6px;cursor:pointer;color:rgba(255,255,255,.85);display:flex;align-items:center;gap:4px;font-size:9px;font-weight:600;font-family:inherit;letter-spacing:.04em;transition:color .12s,background .12s,border-color .12s;text-transform:none;flex-shrink:0;}
.dash-counties-edit-btn:hover{color:#FFFFFF;background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.4);}
/* Manage Counties popup */
.county-mgr-popup{position:fixed;background:var(--s2);border:1px solid rgba(var(--accent-rgb),.25);border-radius:11px;box-shadow:0 12px 40px rgba(0,0,0,.16),0 2px 8px rgba(0,0,0,.08);width:264px;z-index:9999;overflow:hidden;display:none;}
.county-mgr-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;background:#141B2A;border-bottom:1px solid rgba(var(--accent-rgb),.18);}
.county-mgr-title{font-size:11px;font-weight:700;color:var(--text);}
.county-mgr-close{background:none;border:none;font-size:16px;line-height:1;color:var(--dim);cursor:pointer;padding:0 2px;transition:color .12s;}
.county-mgr-close:hover{color:var(--muted);}
.county-mgr-list{max-height:220px;overflow-y:auto;padding:8px 10px;}
.county-mgr-row{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.county-mgr-input{flex:1;background:#141B2A;border:1px solid rgba(var(--accent-rgb),.28);border-radius:5px;font-size:11px;color:var(--text);padding:4px 8px;font-family:inherit;outline:none;}
.county-mgr-input:focus{border-color:rgba(var(--accent-rgb),.5);background:var(--s2);}
.county-mgr-del{background:none;border:none;padding:4px;cursor:pointer;color:var(--text);border-radius:4px;display:flex;align-items:center;flex-shrink:0;transition:color .12s,background .12s;}
.county-mgr-del:hover{color:var(--red);background:rgba(248,113,113,.1);}
.county-mgr-footer{padding:8px 10px 10px;border-top:1px solid rgba(var(--accent-rgb),.12);display:flex;gap:6px;}
.county-mgr-add{background:none;border:1px dashed rgba(var(--accent-rgb),.4);border-radius:5px;color:var(--dim);font-size:10px;padding:4px 10px;cursor:pointer;font-family:inherit;transition:border-color .12s,color .12s;flex:1;}
.county-mgr-add:hover{border-color:rgba(var(--accent-rgb),.4);color:var(--accent);}
.county-mgr-save{background:var(--accent);border:none;border-radius:5px;color:#fff;font-size:10px;font-weight:600;padding:4px 14px;cursor:pointer;font-family:inherit;transition:background .12s;white-space:nowrap;}
.county-mgr-save:hover{background:var(--accent-deep);}
.dash-proj-list-scroll{overflow-y:auto;flex:1;padding:8px;max-height:500px;}

/* ── DASHBOARD TREE (uniform hierarchy) ── */
.dt-group{margin-bottom:1px;}
.dt-row{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:7px;cursor:pointer;transition:background .12s;user-select:none;min-height:28px;}
.dt-row:hover{background:rgba(var(--accent-rgb), .05);}
.dt-row.active{background:rgba(var(--brand-og-accent-rgb),.08);}
.dt-chevron{display:flex;align-items:center;color:var(--muted);transition:transform .2s;flex-shrink:0;width:10px;}
.dt-chevron.open{transform:rotate(90deg);}
.dt-icon{color:var(--muted);flex-shrink:0;display:flex;align-items:center;}
.dt-label{font-size:12px;font-weight:500;color:#374151;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.dt-portfolio-label{color:var(--accent);}
.dt-count{font-size:9px;font-weight:600;color:#6B7280;font-family:'JetBrains Mono',monospace;background:rgba(var(--accent-rgb), .06);border-radius:4px;padding:1px 6px;white-space:nowrap;flex-shrink:0;margin-left:auto;}
.dt-warn{font-size:10px;font-weight:700;color:#EF4444;display:flex;align-items:center;gap:2px;flex-shrink:0;}
.dt-empty{padding:4px 10px 4px 28px;font-size:10px;color:var(--muted);font-style:italic;}

/* Client level */
.dt-row.dt-client{font-weight:700;font-size:13px;padding:10px 12px 10px 8px;border-top:1px solid rgba(0,0,0,.06);margin-top:4px;}
.dt-group:first-child>.dt-row.dt-client{border-top:none;margin-top:0;}
.dt-client-label{font-size:13px;font-weight:700;color:#1a1a1a;}

/* AOI level */
.dt-row.dt-aoi{padding:8px 12px 8px 20px;}
.dt-aoi-label{font-size:12px;font-weight:600;color:var(--s1);}

/* Inline progress bar (next to AOI name) */

/* County level */
.dt-row.dt-county{padding-left:36px;}
.dt-county .dt-label{font-size:11px;font-weight:600;color:#6B7280;text-transform:uppercase;letter-spacing:.03em;}

/* Well level */
.dt-well{padding-left:48px;}
.dt-well .dt-label{font-size:11px;font-weight:400;color:#4B5563;}
/* .dt-well-dot removed Track G.2 — strict-dead, 0 JS/HTML refs. */

/* Children indentation */
.dt-children{padding-left:12px;border-left:1px solid rgba(var(--accent-rgb), .08);margin-left:14px;}

/* Archived */
.dt-archived{margin-top:8px;border-top:1px solid rgba(0,0,0,.06);padding-top:6px;}

/* Legacy card styles kept for backwards compat */
.dash-proj-item{background:#f9fafb;border:1px solid rgba(var(--accent-rgb), .12);border-radius:10px;padding:0;margin-bottom:6px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;position:relative;overflow:hidden;}
.dash-proj-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--pc,var(--blue));border-radius:10px 0 0 10px;}
.dash-proj-item:hover{border-color:rgba(var(--brand-og-accent-rgb),.4);background:var(--bg);box-shadow:0 2px 8px rgba(0,0,0,.06);}
.dash-proj-item.active{border-color:var(--blue);background:var(--bg);box-shadow:0 0 0 3px rgba(var(--brand-og-accent-rgb),.15);}
.dpi-top{display:flex;align-items:center;gap: 6px;margin-bottom:0;background:var(--s1);padding:8px 12px 8px 14px;margin:-0px -0px 0 -0px;}
.dpi-num{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0;}
.dpi-name-wrap{display:flex;align-items:center;gap: 2px;flex:1;min-width:0;overflow:hidden;}
.dpi-name{font-size:13px;font-weight:600;color:#FFFFFF;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dpi-view-btn{font-size:9px;padding:2px 8px;border-radius:5px;background:#0F9D6C;border:1px solid #0F9D6C;color:#FFFFFF;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s;flex-shrink:0;letter-spacing:.02em;}
.dpi-view-btn:hover{background:#0DB87D;border-color:#0DB87D;color:#FFFFFF;box-shadow:0 2px 8px rgba(15,157,108,.4);}
.dpi-meta{font-size:10px;color:rgba(255,255,255,.7);font-family:'JetBrains Mono',monospace;margin-bottom:0;padding:4px 12px 4px 14px;background:var(--s1);}
.dpi-bar-row{display:flex;align-items:center;gap: 6px;padding:4px 12px 8px 14px;background:var(--s1);}
.dpi-bar{flex:1;height:5px;background:rgba(255,255,255,.25);border-radius:3px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.2);}
.dpi-bar-fill{height:100%;border-radius:2px;}
.dpi-bar-pct{font-size:9px;color:rgba(255,255,255,.7);font-family:'JetBrains Mono',monospace;font-weight:600;}
.dpi-wells-list{display:flex;flex-direction:column;gap:1px;margin-top:0;padding-top:6px;border-top:1px solid rgba(var(--accent-rgb),.06);background:var(--s1);border-radius:0 0 10px 10px;margin:0;padding:6px 12px 6px 14px;}
.dpi-well-item{display:flex;align-items:center;gap:6px;padding:2px 6px;border-radius:5px;cursor:pointer;transition:background .12s;font-size:10px;color:var(--text);}
.dpi-well-item:hover{background:rgba(var(--accent-rgb),.08);}
.dpi-well-item.active{background:rgba(var(--accent-rgb),.14);color:var(--accent);}
/* .dpi-well-dot removed Track G.2 — strict-dead, 0 JS/HTML refs. */
.dpi-well-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dpi-well-cnt{font-size:9px;font-family:'JetBrains Mono',monospace;color:var(--dim);}
/* County folder tree */
.dpi-county-folder{margin-bottom:2px;}
.dpi-county-folder:nth-child(odd) .dpi-county-hdr{background:#f9fafb;}
.dpi-county-folder:nth-child(even) .dpi-county-hdr{background:var(--bg);}
.dpi-archived-folder{margin-top:8px;border-top:1px solid rgba(0,0,0,.08);padding-top:6px;}
.dpi-archived-folder .dpi-county-icon{color:var(--muted);background:rgba(0,0,0,.04);}
.dpi-archived-folder .dpi-county-name{color:var(--placeholder);}
.dpi-county-hdr{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;cursor:pointer;transition:background .12s;user-select:none;}
.dpi-county-hdr:hover{background:rgba(var(--brand-og-accent-rgb),.08);}
.dpi-county-chevron{display:flex;align-items:center;color:var(--muted);transition:transform .2s;flex-shrink:0;width:10px;}
.dpi-county-chevron.open{transform:rotate(90deg);}
.dpi-county-icon{width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);background:rgba(var(--accent-rgb),.1);}
.dpi-county-badge{font-size:9px;font-weight:600;color:#5a6a7a;font-family:'JetBrains Mono',monospace;background:rgba(var(--accent-rgb), .06);border-radius:4px;padding:1px 6px;white-space:nowrap;}
.dpi-county-name{font-size:11px;font-weight:700;color:var(--color-text-primary);flex:1;letter-spacing:.01em;cursor:text;border-radius:3px;padding:1px 2px;transition:background .12s;}
.dpi-county-name:hover{background:rgba(var(--brand-og-accent-rgb),.08);}
.dpi-county-name-input{background:rgba(var(--brand-og-accent-rgb),.08);border:1px solid var(--blue);border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700;color:#111111;font-family:inherit;outline:none;flex:1;min-width:0;}
.dpi-county-edit{background:none;border:none;padding:2px;cursor:pointer;color:var(--muted);border-radius:4px;display:flex;align-items:center;opacity:0;transition:opacity .12s,background .12s,color .12s;margin-left:2px;}
.dpi-county-hdr:hover .dpi-county-edit{opacity:1;}
.dpi-county-edit:hover{color:var(--s1);background:rgba(var(--brand-og-accent-rgb),.12);}
.dpi-county-del{background:none;border:none;padding:2px;cursor:pointer;color:var(--muted);border-radius:4px;display:flex;align-items:center;opacity:0;transition:opacity .12s,background .12s,color .12s;}
.dpi-county-hdr:hover .dpi-county-del{opacity:1;}
.dpi-county-del:hover{color:var(--red);background:rgba(248,113,113,.1);}
.dpi-county-items{margin-left:20px;border-left:1px solid rgba(var(--accent-rgb), .12);padding-left:8px;padding-top:2px;margin-bottom:4px;}
/* Project area floating edit popup */
/* ── Edit-mode action buttons ── */
/* ── Inline + and Edit buttons next to "Project Areas" ── */
.pa-add-plus{background:rgba(110,168,254,.12);border:1px solid rgba(110,168,254,.2);border-radius:6px;color:var(--color-blue);font-size:16px;font-weight:700;line-height:1;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,border-color .12s;padding:0;}
.pa-add-plus:hover{background:rgba(110,168,254,.2);border-color:rgba(110,168,254,.35);}
.pa-edit-toggle-inline{background:var(--glass);border:1px solid var(--glass-hover);color:var(--text);font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;padding:4px 12px;border-radius:6px;transition:background .12s,border-color .12s,color .12s;font-family:inherit;}
.pa-edit-toggle-inline:hover{background:var(--glass-hover);border-color:rgba(255,255,255,.15);}
.pa-edit-toggle-inline.active{background:rgba(110,168,254,.12);border-color:rgba(110,168,254,.25);color:var(--color-blue);}

/* ── Drop zone in Add popups ── */
.pa-drop-zone{margin-top:12px;border:2px dashed rgba(var(--brand-og-accent-rgb),.30);border-radius:8px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out);position:relative;color:var(--dim);text-align:center;}
.pa-drop-zone:hover,.pa-drop-zone.drag{border-color:rgba(var(--brand-og-accent-rgb),.60);background:rgba(var(--brand-og-accent-rgb),.04);}
.pa-drop-zone.drag{background:rgba(var(--brand-og-accent-rgb),.08);}
.pa-drop-zone svg{color:var(--brand-og-accent);}
.pa-drop-zone span{font-size:11px;font-weight:500;}
.pa-drop-zone .pa-drop-sub{font-size:9px;color:var(--muted);font-weight:400;}
.pa-drop-zone input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;}

/* ── Edit-mode context menu ── */
.dt-edit-wrap{position:relative;display:inline-flex;flex-shrink:0;}
.dt-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;border:none;cursor:pointer;background:rgba(var(--brand-og-accent-rgb),.1);color:var(--blue);transition:background .12s,color .12s;padding:0;opacity:.6;}
.dt-row:hover .dt-edit-btn{opacity:1;}
.dt-edit-btn:hover{background:rgba(var(--brand-og-accent-rgb),.25);color:var(--brand-og-accent);}
.dt-edit-menu{display:none;position:absolute;top:100%;left:0;margin-top:4px;min-width:140px;background:#fff;border:1px solid rgba(var(--accent-rgb), .12);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12),0 2px 6px rgba(0,0,0,.06);z-index:500;padding:4px;overflow:hidden;}
.dt-edit-menu.open{display:block;}
.dt-edit-opt{padding:6px 10px;font-size:11px;font-weight:500;color:#374151;border-radius:5px;cursor:pointer;transition:background .1s;white-space:nowrap;}
.dt-edit-opt:hover{background:rgba(var(--brand-og-accent-rgb),.08);}
.dt-edit-danger{color:#EF4444;}
.dt-edit-danger:hover{background:rgba(239,68,68,.08);}

/* ── Well Edit modal ── */
.ew-context{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:10px 16px;background:rgba(var(--accent-rgb), .04);border-bottom:1px solid rgba(var(--accent-rgb), .08);font-size:11px;color:#4B5563;}
.ew-ctx-item{display:inline-flex;align-items:center;gap:4px;}
.ew-ctx-lbl{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.ew-ctx-sep{color:#D1D5DB;font-size:10px;}
.ew-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;padding:12px 16px;border-bottom:1px solid rgba(var(--accent-rgb), .08);}
.ew-field-full{grid-column:1/-1;}
.ew-owners-section{padding:0;}
.ew-owners-hdr{font-size:11px;font-weight:700;color:#374151;padding:10px 16px 6px;display:flex;align-items:center;gap:6px;}
.ew-owners-badge{font-size:9px;font-weight:600;color:#6B7280;background:rgba(var(--accent-rgb), .06);border-radius:4px;padding:1px 6px;font-family:'JetBrains Mono',monospace;}
.ew-owners-list{max-height:200px;overflow-y:auto;padding:0 16px 10px;}
.ew-owner-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:5px;font-size:11px;transition:background .1s;}
.ew-owner-row:nth-child(odd){background:rgba(var(--accent-rgb), .02);}
.ew-owner-row:hover{background:rgba(var(--brand-og-accent-rgb),.06);}
.ew-owner-name{font-weight:600;color:#1a1a1a;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ew-owner-detail{font-size:10px;color:#6B7280;font-family:'JetBrains Mono',monospace;white-space:nowrap;flex-shrink:0;}
.ew-owner-status{font-size:9px;font-weight:600;padding:1px 6px;border-radius:3px;text-transform:capitalize;flex-shrink:0;}
.ew-status-new{color:var(--muted);background:rgba(156,163,175,.1);}
.ew-status-no-answer{color:var(--red);background:rgba(248,113,113,.1);}
.ew-status-answered{color:var(--color-teal);background:rgba(52,211,153,.1);}
.ew-status-callback{color:var(--color-callback);background:rgba(232,168,74,.1);}
.ew-status-under-psa{color:var(--blue);background:rgba(var(--brand-og-accent-rgb),.1);}
.ew-status-completed{color:var(--color-completed);background:rgba(61,202,130,.1);}

/* Well checks (used by Move modal) */
.dpi-well-checks,.psd-well-checks{display:flex;flex-direction:column;gap:2px;max-height:140px;overflow-y:auto;margin:6px 0;padding:4px 0;}
.dpi-well-check-item{display:flex;align-items:center;gap: 4px;font-size:10px;color:var(--text);cursor:pointer;padding:2px 0;}
.dpi-well-check-item input[type="checkbox"]{accent-color:var(--brand-og-accent);width:12px;height:12px;}
.psp-move-btn{width:100%;padding:8px;border-radius:8px;background:rgba(var(--accent-rgb),.08);color:var(--accent);font-size:11px;font-weight:600;cursor:pointer;border:1px solid rgba(var(--accent-rgb),.2);font-family:inherit,sans-serif;transition:all .15s;margin-top:4px;}
.psp-move-btn:hover{background:rgba(var(--accent-rgb),.18);border-color:rgba(var(--accent-rgb),.4);}
.dash-split-right{overflow:hidden;overflow-y:auto;margin:14px;border-radius:10px;background:#FFFFFF;box-shadow:0 4px 20px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.06);border:1px solid rgba(var(--accent-rgb), .1);}
.dpa-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:220px;color:#5a6a7a;font-size:12px;gap:8px;opacity:.6;}
.dpa-hdr{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:none;background:var(--s1);}
.dpa-hdr-title{font-size:12px;font-weight:600;color:#FFFFFF;flex:1;}
.dpa-hdr-sub{font-size:10px;color:rgba(255,255,255,.6);font-family:'JetBrains Mono',monospace;}
.dpa-body{padding:14px;}

/* ── PORTFOLIO ANALYTICS ── */
.pa-wrap{overflow:hidden;border-radius:0;background:var(--s1);}
.pa-hdr{background:var(--s1);border-bottom:1px solid rgba(255,255,255,.08);padding:16px 22px;display:flex;align-items:center;gap:14px;}
.pa-hdr-bar{width:3px;min-height:36px;border-radius:2px;flex-shrink:0;}
.pa-hdr-info{flex:1;}
.pa-hdr-title{font-size:15px;font-weight:700;color:#FFFFFF;letter-spacing:-.02em;}
.pa-hdr-sub{font-size:10px;color:rgba(255,255,255,.5);margin-top:2px;font-family:'JetBrains Mono',monospace;letter-spacing:.03em;}
.pa-hdr-badge{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 12px;font-size:9px;font-weight:700;color:#FFFFFF;font-family:'JetBrains Mono',monospace;letter-spacing:.09em;}
.pa-body{display:grid;grid-template-columns:1fr 1px 1fr;}
.pa-divider{background:rgba(255,255,255,.08);}
.pa-panel{background:transparent;padding:18px 22px;}
.pa-panel-hdr{font-size:9px;font-weight:700;color:#FFFFFF;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.pa-panel-hdr::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.15);}
.pa-donut-layout{display:flex;align-items:center;gap:20px;}
.pa-legend{display:flex;flex-direction:column;gap: 6px;flex:1;}
.pa-legend-row{display:flex;align-items:center;gap:8px;}
.pa-legend-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;}
.pa-legend-label{font-size:11px;color:rgba(255,255,255,.7);flex:1;}
.pa-legend-val{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:#FFFFFF;}
.pa-rings-row{display:flex;gap:32px;justify-content:center;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08);}
.pa-ring-item{display:flex;flex-direction:column;align-items:center;gap: 6px;}
.pa-ring-lbl{font-size:10px;color:rgba(255,255,255,.7);text-align:center;line-height:1.4;}
.pa-stats{display:flex;flex-direction:column;}
.pa-stat{display:flex;align-items:center;gap: 10px;padding:8px 0;border-bottom:1px solid var(--glass);}
.pa-stat:last-child{border-bottom:none;}
.pa-stat-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.pa-stat-label{font-size:11px;color:rgba(255,255,255,.7);flex:1;}
.pa-stat-val{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:700;}
.pa-closed-row{border-top:1px solid rgba(255,255,255,.08);padding:14px 22px;}
.pa-wrap .analytics-row-label{color:#FFFFFF;}
.pa-wrap .analytics-divider{border-top-color:rgba(255,255,255,.08);}
.pa-wrap .kpi{background:var(--glass);border:1px solid var(--glass-hover);box-shadow:none;}
.pa-wrap .kpi-label{color:rgba(255,255,255,.6);}
.pa-wrap .kpi-val{color:var(--kc,#FFFFFF);}
.pa-wrap .kpi-sub{color:rgba(255,255,255,.5);}
/* Portfolio analytics grid (3-section layout) */
.port-grid{display:grid;grid-template-columns:auto 1px auto 1px 1fr;align-items:center;gap:0;padding:18px 20px;}
.port-grid-divider{align-self:stretch;min-height:120px;background:rgba(var(--accent-rgb),.1);margin:0 22px;}
.port-section{display:flex;flex-direction:column;}
.port-section-title{font-size:9px;font-weight:700;color:rgba(var(--accent-rgb),.5);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;}
.port-donut-wrap{display:flex;align-items:center;gap:16px;}
.port-donut-legend{display:flex;flex-direction:column;gap:6px;}
.port-legend-row{display:flex;align-items:center;gap: 6px;font-size:10px;color:var(--muted);white-space:nowrap;}
.port-legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0;}
.port-legend-count{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text);font-weight:600;margin-left:auto;padding-left:12px;}
.port-ring-group{display:flex;gap:24px;align-items:center;justify-content:center;}
.port-ring-item{display:flex;flex-direction:column;align-items:center;gap:6px;}
.port-ring-lbl{font-size:10px;color:var(--muted);text-align:center;line-height:1.4;}
.port-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.port-stat-card{background:rgba(var(--accent-rgb),.04);border:1px solid rgba(var(--accent-rgb),.09);border-radius:9px;padding:10px 12px;}
.port-stat-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.port-stat-val{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700;margin-top:2px;line-height:1;}
.port-stat-sub{font-size:9px;color:var(--muted);margin-top:4px;}

/* ── Project Analytics Charts Grid ── */
.an-charts-grid{display:grid;grid-template-columns:auto 1px auto 1px 1fr;align-items:start;gap:0;padding:14px 0;margin-bottom:10px;background:var(--s1);border:1px solid rgba(255,255,255,.08);border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.08);}
.an-charts-divider{align-self:stretch;min-height:100px;background:rgba(255,255,255,.2);margin:0;}
.an-chart-panel{padding:8px 20px;}
.an-chart-panel-hdr{font-size:9px;font-weight:700;color:#FFFFFF;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.an-chart-panel-hdr::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.25);}
.an-donut-layout{display:flex;align-items:center;gap:16px;}
.an-donut-legend{display:flex;flex-direction:column;gap: 4px;flex:1;}
.an-legend-row{display:flex;align-items:center;gap: 6px;}
.an-legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0;}
.an-legend-label{font-size:10px;color:rgba(255,255,255,.85);flex:1;}
.an-legend-val{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:#FFFFFF;}
.an-rings-row{display:flex;gap:20px;justify-content:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.15);}
.an-ring-item{display:flex;flex-direction:column;align-items:center;gap: 4px;}
.an-ring-lbl{font-size:9px;color:rgba(255,255,255,.85);text-align:center;line-height:1.3;}
.an-perf-stats{display:flex;flex-direction:column;gap:0;}
.an-perf-stat{display:flex;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--border2);}
.an-perf-stat:last-child{border-bottom:none;}
.an-perf-stat-lbl{font-size:10px;color:rgba(255,255,255,.85);}
.an-perf-stat-val{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:#FFFFFF;}
.an-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.an-status-card{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:10px 12px;}
.an-status-lbl{font-size:9px;color:#FFFFFF;text-transform:uppercase;letter-spacing:.06em;}
.an-status-val{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:700;margin-top:2px;line-height:1;}
.an-status-sub{font-size:9px;color:rgba(255,255,255,.7);margin-top:4px;}

/* ── NRA Acquisition Progress Bar ── */
.an-nra-progress{margin-bottom:14px;padding:12px 16px;background:rgba(var(--accent-rgb),.03);border:1px solid rgba(var(--accent-rgb),.08);border-radius:8px;}
.an-nra-progress-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.an-nra-progress-label{font-size:9px;font-weight:700;color:rgba(var(--accent-rgb),.6);text-transform:uppercase;letter-spacing:.1em;}
.an-nra-progress-pct{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--text);}
.an-nra-bar-track{width:100%;height:8px;background:rgba(var(--accent-rgb),.08);border-radius:4px;overflow:hidden;}
.an-nra-bar-fill{height:100%;border-radius:4px;transition:width .4s ease;min-width:0;}
.an-nra-bar-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:9px;color:var(--muted);font-family:'JetBrains Mono',monospace;letter-spacing:.02em;}
.an-velocity-row{grid-column:1/-1;padding:0 20px 8px;border-top:1px solid var(--glass-hover);margin-top:8px;}
.an-velocity-row .velocity-section{margin-top:10px;padding-top:0;border-top:none;}
.an-velocity-row .velocity-title{color:rgba(255,255,255,.85);}
.an-velocity-row .velocity-total{color:#FFFFFF;}
.an-velocity-row .vc-label{color:rgba(255,255,255,.5);}
@media(max-width:1000px){.an-charts-grid{grid-template-columns:1fr;}.an-charts-divider{height:1px;min-height:0;width:100%;margin:6px 0;}}

/* Segmented bar */
.seg-bar{display:flex;height:4px;border-radius:2px;overflow:hidden;width:100%;}
.seg-bar-seg{height:100%;}
.seg-bar{display:flex;height:4px;border-radius:2px;overflow:hidden;width:100%;}
.seg-bar-seg{height:100%;}
.dpa-donut-row{display:flex;align-items:center;gap:14px;padding:12px 14px 10px;border-bottom:1px solid rgba(var(--accent-rgb),.07);}
.dpa-donut-legend{display:flex;flex-wrap:wrap;gap: 4px 12px;flex:1;}
.dpa-leg-item{display:flex;align-items:center;gap: 4px;font-size:10px;color:var(--muted);}
.dpa-leg-dot{width:7px;height:7px;border-radius:2px;flex-shrink:0;}

/* ── FOLLOW-UP QUEUE (Notifications) ── */
.nq-summary{display:grid;grid-template-columns:repeat(4,1fr);background:var(--s1);border:1px solid var(--border2);border-radius:12px;overflow:hidden;margin-bottom:18px;}
.nq-kpi{padding:18px 22px;position:relative;border-right:1px solid var(--border);}
.nq-kpi:last-child{border-right:none;}
.nq-kpi-val{font-size:36px;font-weight:700;font-family:'JetBrains Mono',monospace;line-height:1;margin-bottom:6px;}
.nq-kpi-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);}
.nq-kpi-sub{font-size:10px;color:var(--dim);margin-top:4px;}
.nq-kpi-bar{position:absolute;top:0;left:0;right:0;height:3px;}
/* ── Overview panel ── */
.nq-breakdown{background:#141B2A;border:1px solid rgba(var(--accent-rgb),.14);border-radius:14px;overflow:hidden;margin:0 auto 18px;box-shadow:0 4px 32px rgba(0,0,0,.28);width:50%;min-width:720px;}
.nq-breakdown-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:rgba(var(--accent-rgb),.6);flex:1;}
.nq-breakdown-meta{font-size:10px;color:rgba(var(--accent-rgb),.5);font-family:'JetBrains Mono',monospace;}
.nq-bd-expand-btn{display:flex;align-items:center;gap: 4px;background:rgba(var(--accent-rgb),.07);border:1px solid rgba(var(--accent-rgb),.18);border-radius:6px;padding:2px 8px;font-size:9px;font-weight:700;color:rgba(var(--accent-rgb),.7);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap;flex-shrink:0;}
.nq-bd-expand-btn:hover{background:rgba(var(--accent-rgb),.14);color:var(--accent);border-color:rgba(var(--accent-rgb),.4);}
/* header bar */
.nq-ov-hdr{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid rgba(var(--accent-rgb),.1);background:rgba(var(--accent-rgb),.03);cursor:pointer;user-select:none;transition:background .15s;}
.nq-ov-hdr:hover{background:rgba(var(--accent-rgb),.07);}
.nq-ov-chevron{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--accent-rgb),.5);transition:transform .25s ease;}
.nq-breakdown.nq-collapsed .nq-ov-chevron{transform:rotate(-90deg);}
/* two-column body */
.nq-ov-main{display:flex;align-items:stretch;max-height:600px;overflow:hidden;transition:max-height .3s ease,opacity .25s ease;opacity:1;}
.nq-breakdown.nq-collapsed .nq-ov-main{max-height:0;opacity:0;}
.nq-breakdown.nq-collapsed{border-bottom:none;}
/* left: KPI column */
.nq-ov-kpis{display:flex;flex-direction:column;width:260px;flex-shrink:0;border-right:1px solid rgba(var(--accent-rgb),.09);}
.nq-ov-kpi-grid{display:grid;grid-template-columns:1fr 1fr;flex:1;}
.nq-ov-kpi{padding:14px 18px;position:relative;border-bottom:1px solid rgba(var(--accent-rgb),.07);}
.nq-ov-kpi:nth-child(odd){border-right:1px solid rgba(var(--accent-rgb),.07);}
.nq-ov-kpi:nth-last-child(-n+2){border-bottom:none;}
.nq-ov-kpi-ov{background:rgba(192,82,78,.07);}
.nq-ov-kpi-td{background:rgba(var(--accent-rgb),.06);}
.nq-ov-kpi-accent{position:absolute;top:0;left:0;bottom:0;width:3px;}
.nq-ov-kpi-val{font-size:34px;font-weight:700;font-family:'JetBrains Mono',monospace;line-height:1;margin-bottom:4px;}
.nq-ov-kpi-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;}
/* hot leads callout */
.nq-ov-hot{display:flex;align-items:center;gap: 8px;padding:10px 18px;border-top:1px solid rgba(var(--accent-rgb),.09);background:rgba(var(--accent-deep-rgb),.07);}
.nq-ov-hot-val{font-size:18px;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--color-callback);line-height:1;}
.nq-ov-hot-text{flex:1;min-width:0;}
.nq-ov-hot-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-callback);}
.nq-ov-hot-sub{font-size:9px;color:rgba(var(--accent-rgb),.5);margin-top:1px;}
/* progress bar */
.nq-ov-prog{padding:10px 18px;border-top:1px solid rgba(var(--accent-rgb),.09);}
.nq-ov-prog-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.nq-ov-prog-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(var(--accent-rgb),.55);}
.nq-ov-prog-count{font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--dim);}
.nq-ov-prog-track{height:5px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden;}
.nq-ov-prog-fill{height:100%;border-radius:3px;transition:width .4s ease;background:var(--brand-og-accent);}
/* right: project rows */
.nq-ov-projects{flex:1;min-width:0;display:flex;flex-direction:column;}
.nq-ov-proj-hdr{display:flex;align-items:baseline;gap:8px;padding:10px 18px 8px;border-bottom:1px solid rgba(var(--accent-rgb),.08);}
.nq-ov-proj-hdr-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(var(--accent-rgb),.55);}
.nq-ov-proj-hdr-meta{font-size:9px;color:rgba(var(--accent-rgb),.4);font-family:'JetBrains Mono',monospace;}
.nq-ov-col-hdr{display:flex;align-items:center;gap: 10px;padding:4px 18px;border-bottom:1px solid rgba(var(--accent-rgb),.1);background:rgba(var(--accent-rgb),.03);}
.nq-ov-col-hdr-lbl{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;text-align:center;}
.nq-ov-proj-list{overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.15) transparent;max-height:160px;transition:max-height .25s ease;}
.nq-ov-proj-list::-webkit-scrollbar{width:3px;}
.nq-ov-proj-list::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.2);border-radius:2px;}
.nq-breakdown.nq-expanded .nq-ov-proj-list{max-height:none;}
.nq-ov-proj-row{display:flex;align-items:center;gap: 10px;padding:8px 18px;border-bottom:1px solid rgba(var(--accent-rgb),.05);transition:background .12s;}
.nq-ov-proj-row:last-child{border-bottom:none;}
.nq-ov-proj-row:hover{background:rgba(var(--accent-rgb),.04);}

.nq-ov-proj-name{font-size:11px;font-weight:600;color:var(--text);width:120px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nq-ov-bar{flex:1;height:7px;border-radius:4px;background:rgba(255,255,255,.05);overflow:hidden;display:flex;}
.nq-ov-bar-seg{height:100%;}
.nq-ov-proj-counts{display:flex;gap:12px;flex-shrink:0;}
.nq-ov-proj-count{text-align:center;width:46px;flex-shrink:0;}
.nq-ov-proj-count-val{font-size:12px;font-weight:700;font-family:'JetBrains Mono',monospace;line-height:1;}
.nq-ov-proj-count-lbl{font-size:7px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:rgba(var(--accent-rgb),.4);}
.nq-ov-proj-total{font-size:14px;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--text);flex-shrink:0;min-width:28px;text-align:right;}
/* ── Overdue urgency pulse ── */
@keyframes nqPulse{0%,100%{box-shadow:0 0 0 0 rgba(192,82,78,.55)}65%{box-shadow:0 0 0 8px rgba(192,82,78,0)}}
@keyframes nqChipPulse{0%,100%{opacity:1}50%{opacity:.7}}
.nq-ov-pulse{width:8px;height:8px;border-radius:50%;background:#C0524E;flex-shrink:0;animation:nqPulse 1.8s ease-in-out infinite;}
.nq-bd-kpi-ov{background:rgba(192,82,78,.1) !important;}
.nq-section-overdue{border-color:rgba(192,82,78,.35) !important;}
.nq-section-overdue .nq-section-hdr{background:rgba(192,82,78,.08);border-bottom-color:rgba(192,82,78,.2);}
.nq-row-overdue{}
.nq-row-overdue:hover{}
.nq-row-overdue .nq-accent{width:4px !important;}
.nq-chip-overdue{animation:nqChipPulse 2.2s ease-in-out infinite;font-size:10px !important;padding:4px 10px !important;}
/* ── Due Today motivational glow ── */
@keyframes nqAmberGlow{0%,100%{background:rgba(var(--accent-rgb),.06)}50%{background:rgba(var(--accent-rgb),.13)}}
@keyframes nqTdDot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.7}}
.nq-td-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:nqTdDot 1.6s ease-in-out infinite;box-shadow:0 0 6px rgba(var(--accent-rgb),.6);}
.nq-bd-kpi-td{background:rgba(var(--accent-rgb),.08) !important;}
.nq-section-today{border-color:rgba(var(--accent-rgb),.3) !important;}
.nq-section-today .nq-section-hdr{animation:nqAmberGlow 2.5s ease-in-out infinite;border-bottom-color:rgba(var(--accent-rgb),.22);}
.nq-row-today{background:rgba(var(--accent-rgb),.05) !important;}
.nq-row-today:hover{background:rgba(var(--accent-rgb),.1) !important;box-shadow:inset 4px 0 0 var(--accent) !important;}
.nq-row-today .nq-accent{width:4px !important;}
.nq-chip-today{font-size:10px !important;padding:4px 10px !important;}
/* unified urgent panel */
.nq-dual-panel{border-radius:14px;overflow:hidden;border:1px solid var(--border2);margin-bottom:16px;background:var(--s1);box-shadow:0 2px 20px rgba(0,0,0,.07);}
.nq-dp-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:14px 20px;background:var(--s1);border-bottom:1px solid var(--glass);}
.nq-dp-top-icon{width:34px;height:34px;border-radius:9px;background:rgba(192,82,78,.12);border:1px solid rgba(192,82,78,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.nq-dp-top-info{flex:1;min-width:0;}
.nq-dp-top-title{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text);}
.nq-dp-top-meta{font-size:10px;color:var(--muted);margin-top:2px;letter-spacing:.02em;}
.nq-dp-top-right{display:flex;gap:8px;align-items:center;flex-shrink:0;}
.nq-dp-badge-ov{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100px;height:78px;border-radius:10px;background:rgba(192,82,78,.1);border:1px solid rgba(192,82,78,.35);box-shadow:0 0 20px rgba(192,82,78,.18),inset 0 1px 0 rgba(192,82,78,.12);animation:nqOvBadgePulse 2.5s ease-in-out infinite;flex-shrink:0;}
.nq-dp-badge-td{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100px;height:78px;border-radius:10px;background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.35);box-shadow:0 0 20px rgba(var(--accent-rgb),.18),inset 0 1px 0 rgba(var(--accent-rgb),.12);flex-shrink:0;}
.nq-dp-badge-num{font-size:28px;font-weight:700;font-family:'JetBrains Mono',monospace;line-height:1;}
.nq-dp-badge-ov .nq-dp-badge-num{color:var(--color-red);}
.nq-dp-badge-td .nq-dp-badge-num{color:var(--accent);}
.nq-dp-badge-lbl{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin-top:4px;white-space:nowrap;}
.nq-dp-badge-ov .nq-dp-badge-lbl{color:rgba(192,82,78,.7);}
.nq-dp-badge-td .nq-dp-badge-lbl{color:rgba(var(--accent-rgb),.7);}
@keyframes nqOvBadgePulse{0%,100%{box-shadow:0 0 20px rgba(192,82,78,.18),inset 0 1px 0 rgba(192,82,78,.12)}50%{box-shadow:0 0 28px rgba(192,82,78,.35),inset 0 1px 0 rgba(192,82,78,.2)}}
.nq-dp-body{display:flex;align-items:stretch;padding:12px;gap:12px;}
.nq-dp-col{flex:1;min-width:0;display:flex;flex-direction:column;border-radius:10px;overflow:hidden;max-height:520px;}
.nq-dp-col-ov{background:rgba(192,82,78,.04);border:1px solid rgba(192,82,78,.22);}
.nq-dp-col-td{background:rgba(var(--accent-rgb),.04);border:1px solid rgba(var(--accent-rgb),.22);}
.nq-dp-divider{display:none;}
.nq-dp-col-hdr{display:flex;align-items:center;gap: 8px;padding:12px 18px;border-bottom:1px solid var(--glass);flex-shrink:0;}
/* .nq-dp-col-hdr-ov / .nq-dp-col-hdr-td removed 2026-05-05 (Layer 21).
   Old project-area DPI columns; replaced by current notification view. */
.nq-dp-col-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;flex:1;}
.nq-dp-col-label-ov{color:var(--color-red);}
.nq-dp-col-label-td{color:var(--accent);}
.nq-dp-col-sub{font-size:10px;color:var(--muted);margin-right:4px;}
.nq-dp-col>div[style*="overflow-x"]{overflow-y:auto;flex:1;min-height:0;}
.nq-dp-col .nq-table thead th{position:sticky;top:0;z-index:1;}
.nq-dp-empty{padding:36px 20px;text-align:center;color:var(--muted);font-size:12px;font-style:italic;}
.nq-table-ov thead tr{}
.nq-table-ov thead th{color:var(--color-red);}
.nq-table-td thead tr{background:rgba(var(--accent-rgb),.08);}
.nq-table-td thead th{color:var(--accent);}
/* Legacy .nq-section / .nq-section-hdr / .nq-section-label / .nq-section-sub
   / .nq-row / .nq-row:hover rules deleted 2026-05-23 (Follow-Ups Phase 1b).
   They added card-chrome (border, radius, drop shadow), .nq-section-hdr surface
   background, and a 3px inset box-shadow stripe on row hover — all of which
   conflicted with the redesign AND violated Wireline bans (no drop shadows,
   no >1px colored accent stripes). The canonical .nq-section / .nq-section-hdr
   / .nq-row rules now live in the "FOLLOW-UPS PAGE (2026-05-23 redesign)"
   block earlier in this file. */
.nq-accent{width:3px;align-self:stretch;border-radius:2px;flex-shrink:0;min-height:38px;}
.nq-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:.03em;}
.nq-info{flex:1;min-width:0;}
.nq-name-row{display:flex;align-items:center;gap:6px;margin-bottom:2px;flex-wrap:wrap;}
.nq-name{font-size:13px;font-weight:600;color:var(--text);}
.nq-trow .nq-name{color:var(--text);}
.nq-meta{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--muted);flex-wrap:wrap;}
.nq-sep{color:var(--muted);}
.nq-proj-tag{font-weight:600;color:var(--color-blue);}
.nq-timer{font-style:italic;color:var(--accent);}
.nq-right{display:flex;flex-direction:column;align-items:flex-end;gap: 4px;flex-shrink:0;min-width:80px;}
.nq-offer{font-size:13px;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--color-green);}
.nq-chip{display:inline-flex;align-items:center;font-size:9px;font-weight:700;padding:2px 8px;border-radius:20px;font-family:'JetBrains Mono',monospace;letter-spacing:.04em;white-space:nowrap;}
.nq-call-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:4px;font-size:10px;font-weight:700;cursor:pointer;border:none;color:#fff;background:var(--color-call-btn);font-family:inherit;transition:background-color var(--dur-fast) var(--ease-out);white-space:nowrap;flex-shrink:0;letter-spacing:.02em;}
.nq-call-btn:hover{background:var(--color-call-btn-hover);}
.nq-call-btn:active{transform:translateY(0);filter:brightness(.95);box-shadow:0 1px 4px rgba(58,125,86,.2);}
.nq-qc-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:7px;border:1px solid var(--glass-hover);background:var(--glass);color:var(--color-blue);cursor:pointer;flex-shrink:0;transition:background .12s,border-color .12s,color .12s,transform .1s;}
.nq-qc-btn:hover{background:var(--color-blue);border-color:var(--color-blue);color:#fff;}
.nq-qc-btn:active{transform:translateY(0);}
.nq-start-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:8px;font-size:11px;font-weight:700;cursor:pointer;border:none;background:var(--accent);color:#fff;font-family:inherit;transition:background .15s;white-space:nowrap;letter-spacing:.02em;}
.nq-queue-btn{display:inline-flex;align-items:center;gap: 4px;padding:4px 10px;border-radius:4px;font-size:9px;font-weight:700;cursor:pointer;border:none;color:#fff;font-family:inherit;transition:background-color var(--dur-fast) var(--ease-out);white-space:nowrap;letter-spacing:.05em;text-transform:uppercase;flex-shrink:0;}
.nq-queue-btn:hover{filter:brightness(1.06);}
.nq-queue-btn-ov{background:var(--color-red);}
.nq-queue-btn-td{background:var(--accent);}
.nq-start-btn:hover{background:var(--accent-hover);}
/* notification table */
.nq-table{width:100%;border-collapse:collapse;}
.nq-table thead tr{border-bottom:none;}
.nq-table thead th{padding:6px 12px;font-family:'JetBrains Mono',monospace;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text);background:var(--s1);text-align:left;white-space:nowrap;border-bottom:1px solid var(--glass);}
.nq-table thead th:first-child{padding-left:14px;}
.nq-table thead th:last-child{padding-right:16px;text-align:right;}
.nq-trow{cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);transition:background .1s;background:var(--s3);}
.nq-trow:nth-child(even){background:var(--s2);}
.nq-trow:last-child{border-bottom:none;}
.nq-trow:hover td{background:var(--s3);}
.nq-trow-overdue td{}
.nq-trow-overdue:hover td{}
.nq-tc-accent{width:4px;height:34px;border-radius:2px;flex-shrink:0;}
.nq-tc-status{padding:10px 4px 10px 0;white-space:nowrap;width:1%;}
.nq-tc-proj{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:10px 12px;color:var(--text);width:15%;}
.nq-tc-prop{font-size:11px;color:var(--muted);padding:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;}
.nq-tc-last{font-size:10px;color:var(--muted);padding:10px 8px;white-space:nowrap;width:12%;}
.nq-tc-assets{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--muted);padding:10px 4px;white-space:nowrap;text-align:center;width:36px;}
.nq-tc-nra{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--text);padding:10px 2px 10px 8px;white-space:nowrap;text-align:right;}
.nq-tc-due{padding:10px;white-space:nowrap;text-align:center;}
/* ── Snooze ── */
.nq-action-wrap{display:flex;align-items:center;gap:4px;justify-content:center;}
.nq-snooze-wrap{position:relative;}
.nq-snooze-btn{width:26px;height:26px;border-radius:6px;border:1px solid rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.06);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0;}
.nq-snooze-btn:hover{background:rgba(var(--accent-rgb),.15);border-color:rgba(var(--accent-rgb),.5);color:var(--accent-hover);}
.nq-snooze-menu{display:none;position:fixed;background:var(--s1);border:1px solid var(--border2);border-radius:8px;padding:4px;min-width:100px;box-shadow:0 8px 24px rgba(0,0,0,.5);z-index:9999;}
.nq-snooze-menu.open{display:block;}
.nq-snooze-opt{display:block;width:100%;padding:6px 10px;border:none;background:none;color:var(--text);font-size:10px;font-weight:500;cursor:pointer;border-radius:5px;font-family:inherit;text-align:left;transition:background .1s;}
.nq-snooze-opt:hover{background:rgba(255,255,255,.08);}
.snooze-pill{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:600;background:rgba(var(--accent-rgb),.1);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.2);margin-left:6px;}
/* S3 cross-reference badge: "list · agent" on owner rows (teal = working interaction) */
.onlist-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:600;color:var(--color-secondary,#298084);background:rgba(41,128,132,.07);border:1px solid rgba(41,128,132,.18);margin-left:6px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;cursor:help;}
.onlist-badge svg{flex:none;}
/* step-8b: "Call List" project-view column — list pill + agent sub-line. */
.acl-col-cell{font-size:11px;vertical-align:middle;}
.acl-col-pill{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 7px;border-radius:5px;font-size:10px;font-weight:600;color:var(--color-secondary,#298084);background:rgba(41,128,132,.07);border:1px solid rgba(41,128,132,.18);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.acl-col-pill svg{flex:none;}
/* Docs Hub 3c — template scope-assignment badges (Team / Project / Call List).
   Flat teal pill, same recipe as .acl-col-pill. No gradient/shadow/translateY/dot. */
.doc-scope-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.doc-scope-badge{display:inline-flex;align-items:center;gap:4px;max-width:200px;padding:2px 7px;border-radius:5px;font-size:10px;font-weight:600;color:var(--color-secondary,#298084);background:rgba(41,128,132,.07);border:1px solid rgba(41,128,132,.18);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.doc-scope-badge--rm{padding-right:2px;}
.doc-scope-badge-x{margin-left:2px;border:0;background:transparent;color:var(--color-secondary,#298084);font-size:13px;line-height:1;cursor:pointer;padding:0 4px;border-radius:3px;}
.doc-scope-badge-x:hover{background:rgba(41,128,132,.14);}
.psa-assign-none{font-size:12px;color:var(--muted,#6b7785);}
.deal-psa-readonly{padding:10px 12px;font-size:12px;color:var(--muted,#6b7785);}
.acl-col-agent{display:block;font-size:9px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.acl-col-none{color:var(--muted);opacity:.6;}
/* step-8b: call-list assignment filter (segmented control) — mirrors ip-toggle. */
.acl-filter-seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.acl-filter-btn{padding:6px 12px;font-size:11px;font-weight:600;cursor:pointer;border:none;background:var(--s1);color:var(--muted);transition:background .15s,color .15s;white-space:nowrap;letter-spacing:.02em;border-right:1px solid var(--border);}
.acl-filter-btn:last-child{border-right:none;}
.acl-filter-btn:hover{color:var(--text);}
.acl-filter-btn.is-active{background:var(--color-secondary,#298084);color:#fff;}
.dnc-pill{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:700;background:rgba(220,38,38,.08);color:var(--color-red);border:1px solid rgba(220,38,38,.22);margin-left:6px;letter-spacing:.04em;}
.om-snooze-notice{display:flex;align-items:center;gap:6px;padding:6px 10px;margin-top:4px;background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.15);border-radius:6px;font-size:10px;color:var(--accent);cursor:pointer;transition:background .12s;}
.om-snooze-notice:hover{background:rgba(var(--accent-rgb),.15);}
.nq-tc-offer{padding:10px 8px 10px 2px;text-align:right;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--color-green);white-space:nowrap;}
.nq-tc-action{padding:10px 12px;white-space:nowrap;text-align:center;width:70px;}

/* ── MODAL ── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;}
#confirm-overlay.open{z-index:1100;}
.overlay.open{opacity:1;pointer-events:all;}
.modal{background:var(--s1);border:1px solid rgba(var(--accent-rgb),.25);border-radius:22px;width:min(95vw,1240px);max-height:92vh;display:flex;flex-direction:column;transform:translateY(20px) scale(.98);transition:transform .3s cubic-bezier(0.25, 1, 0.5, 1),opacity .25s;box-shadow:0 32px 80px rgba(0,0,0,.6),0 12px 32px rgba(0,0,0,.4),0 0 0 1px rgba(var(--accent-rgb),.1) inset;opacity:0;} /* R8 L8: was cubic-bezier(.34,1.15,.64,1) — bounce/overshoot easing banned per /impeccable motion ref. Replaced with ease-out-quart for calm-clinical entrance. */
.overlay.open .modal{transform:translateY(0) scale(1);opacity:1;}

/* ══════ OWNER MODAL — 3-Zone Psychology Layout ══════ */
.om{background:linear-gradient(to bottom,var(--bg) 0%,#FFFFFF 140px);border:1px solid rgba(0,0,0,.06);color:var(--text);width:min(90vw,900px);height:92vh;margin-right:140px;box-shadow:0 0 0 1px rgba(0,0,0,.03),0 2px 4px rgba(0,0,0,.04),0 12px 24px rgba(0,0,0,.06),0 48px 80px rgba(0,0,0,.12);}

/* Header — Sticky Top Bar */
.om-hdr{padding:0;background:var(--s1);border-bottom:1px solid rgba(var(--accent-rgb),.06);border-radius:22px 22px 0 0;flex-shrink:0;position:sticky;top:0;z-index:10;}
/* Topbar — Phase 5 §6.10 (color-only retoken per D20).
   Was navy linear-gradient with noise overlay; now light surface-2
   strip with 1px hairline, dark text. Children retoken from
   white-alpha (assumed dark) → dark-alpha (light context). */
.om-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 18px;min-height:44px;background:var(--s2);border-bottom:1px solid var(--border);border-radius:18px 18px 0 0;color:var(--text);position:relative;}
.om-topbar-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0;}
.om-topbar-center{display:flex;align-items:center;gap:6px;justify-content:center;flex:1;}
.om-topbar-right{display:flex;align-items:center;gap:6px;flex:1;justify-content:flex-end;}
.om-decd-select{font-size:9px;padding:2px 6px;border-radius:4px;border:1px solid var(--border);color:var(--muted);background:var(--s1);cursor:pointer;font-weight:600;font-family:'JetBrains Mono',monospace;}
.om-decd-select.om-decd--active{color:var(--color-red);border-color:var(--color-red);background:rgba(var(--color-red-rgb),.10);}
.om-decd-select option{background:var(--s1);color:var(--text);}
.om-topbar-callback{display:flex;align-items:center;gap:8px;padding:4px 18px 8px;font-size:11px;}
.om-tag{padding:2px 8px;border-radius:4px;font-size:9px;font-weight:600;border:1px solid transparent;font-family:'JetBrains Mono',monospace;letter-spacing:.03em;}
.om-tag-mw{background:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);border-color:rgba(var(--color-accent-rgb),.3);}
.om-tag-ip{background:rgba(var(--color-accent-rgb),.85);color:#fff;border-color:rgba(var(--color-accent-rgb),.9);font-weight:700;}
.om-tag-hot{background:rgba(192,82,78,.15);color:#E06B67;border-color:rgba(192,82,78,.3);}
.om-tag-cold{background:rgba(var(--accent-rgb),.15);color:var(--muted);border-color:rgba(var(--accent-rgb),.3);}
.om-tag-unreachable{background:rgba(224,107,103,.15);color:#E06B67;border-color:rgba(224,107,103,.3);}
.om-brief-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.om-close{width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);cursor:pointer;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);font-size:14px;transition:all .15s;}
.om-close:hover{background:rgba(255,255,255,.2);color:#fff;}
.om-close:hover{color:#E06B67;background:rgba(192,82,78,.1);border-color:rgba(192,82,78,.3);}

/* ── WHO zone — identity & contact ── */
.om-who-identity{display:flex;flex-direction:column;gap:4px;}
.om-who-name-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.om-who-name{font-size:24px;font-weight:700;color:var(--text);letter-spacing:-.02em;line-height:1.2;}
.om-who-age{font-size:12px;font-weight:600;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.om-who-addr{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;word-break:break-word;}
.om-who-edit-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:1px 2px;opacity:.4;transition:opacity .15s;flex-shrink:0;}
.om-who-edit-btn:hover{opacity:1;color:var(--text);}
/* Audit §3.6 R2 #3 — Owner contact compact zone:
   Phone + email rows wrap inline (column-gap separates them when they fit
   side-by-side, row-gap stacks them on narrow widths). The "+ Add" + alt
   contact toggle below remain on their own rows. */
.om-who-contacts{display:flex;flex-wrap:wrap;column-gap:16px;row-gap:6px;margin-top:8px;align-items:center;}
.om-who-contact-row{display:inline-flex;align-items:center;gap:6px;font-size:13px;}
.om-who-contact-row.om-who-alt-toggle,.om-who-contact-row.om-who-alt-list{flex-basis:100%;}
.om-who-alt-toggle,.om-who-alt-list{flex-basis:100%;}
.om-who-contact-row svg{color:var(--muted);flex-shrink:0;opacity:.7;}
.om-who-phone-link{color:var(--text);text-decoration:none;font-weight:600;font-family:'JetBrains Mono',monospace;font-size:14px;transition:color .15s;}
.om-who-phone-link:hover{color:var(--color-teal);text-decoration:underline;}
.om-who-email-link{color:var(--blue);text-decoration:none;font-size:12px;transition:color .15s;}
.om-who-email-link:hover{text-decoration:underline;}
.om-who-star{color:#D97706;font-size:11px;flex-shrink:0;}
.om-who-alt-toggle{font-size:11px;color:var(--muted);cursor:pointer;padding:2px 0;transition:color .15s;user-select:none;}
.om-who-alt-toggle:hover{color:var(--text);}
.om-who-alt-toggle.open{color:var(--text);}
.om-who-alt-list{display:none;flex-direction:column;gap: 2px;padding:4px 0 4px 18px;}
.om-who-alt-list.open{display:flex;}
.om-who-alt-row{display:flex;align-items:center;gap:6px;font-size:11px;}
.om-who-alt-link{color:var(--muted);text-decoration:none;transition:color .15s;font-family:'JetBrains Mono',monospace;font-size:11px;}
.om-who-alt-link:hover{color:var(--text);text-decoration:underline;}
.om-who-alt-strikethrough{text-decoration:line-through;color:var(--muted);opacity:.5;font-family:'JetBrains Mono',monospace;font-size:11px;}
.om-who-alt-bad-label{font-size:9px;color:var(--muted);font-style:italic;}
.om-who-alt-action{background:none;border:none;color:var(--muted);cursor:pointer;font-size:11px;padding:1px 2px;opacity:.3;transition:all .15s;}
.om-who-alt-action:hover{opacity:1;}
.om-who-alt-action--bad{color:var(--color-danger);opacity:.6;}
.om-who-alt-invalid .om-who-alt-link{text-decoration:line-through;color:var(--color-danger);opacity:.5;}
.om-who-context-row{display:flex;align-items:center;gap:4px;margin-top:2px;}
.om-who-context-input{flex:1;background:transparent;border:none;border-bottom:1px dashed rgba(var(--accent-rgb),.12);font-size:12px;color:var(--text);font-style:italic;padding:2px 2px;outline:none;transition:border-color .15s;font-family:inherit;max-width:100%;}
.om-who-context-input:focus{border-bottom-color:var(--accent);}
.om-who-context-input::placeholder{color:var(--muted);font-style:italic;opacity:.6;}
.om-who-context-edit{font-size:12px;color:var(--muted);opacity:.3;pointer-events:none;}
.om-who-dnc-tag{display:inline-block;font-size:9px;font-weight:700;color:var(--red);background:rgba(224,88,88,.08);border:1px solid rgba(224,88,88,.15);border-radius:4px;padding:1px 6px;letter-spacing:.04em;text-transform:uppercase;}
.om-who-followup{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding-top:6px;}
.om-who-fu-line{font-size:11px;color:var(--text);font-family:'JetBrains Mono',monospace;}
.om-who-fu--warn{color:#D97706;font-weight:600;}
.om-who-fu--muted{color:var(--muted);}

/* ── WHAT zone — offer & properties ── */
/* D7 typography (audit research §D7): JetBrains Mono Variable, weight 460,
   tabular-nums for column-aligned digits. Applies to every numeric value
   in the hero so $/NRA, NRA, and offer totals share the same visual rhythm. */
.om-what-offer-row{display:flex;align-items:baseline;gap:12px;padding:4px 0 8px;}
.om-what-offer{font-family:'JetBrains Mono Variable','JetBrains Mono',monospace;font-size:32px;font-weight:460;font-variant-numeric:tabular-nums;color:var(--offer-green);line-height:normal;white-space:nowrap;flex-shrink:0;letter-spacing:-0.01em;}
.om-what-nra-inline{font-family:'JetBrains Mono Variable','JetBrains Mono',monospace;font-size:18px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text);opacity:.9;white-space:nowrap;flex-shrink:0;}
.om-what-dnra-row{display:flex;align-items:center;gap:6px;margin-top:2px;}
.om-what-dnra-label{font-family:'JetBrains Mono Variable','JetBrains Mono',monospace;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:500;}
.om-what-dnra-formatted{font-family:'JetBrains Mono Variable','JetBrains Mono',monospace;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--color-money);}
.om-what-dnra-avg-label{font-size:9px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.om-what-cap{font-size:10px;color:var(--color-red);font-weight:600;font-family:'JetBrains Mono',monospace;}
.om-what-summary{font-size:13px;color:var(--muted);font-family:'JetBrains Mono',monospace;padding:2px 0 4px;}
.om-what-summary-line{font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px;margin-top:2px;font-family:'JetBrains Mono',monospace;font-weight:600;}
.om-what-summary-line span{white-space:nowrap;}
.om-summary-label{font-size:9px;font-weight:400;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-right:2px;}
.om-summary-sep{opacity:.3;font-weight:400;}
.om-what-props{flex:1;min-height:0;overflow-y:auto;padding-top:6px;border-top:1px solid rgba(var(--accent-rgb),.06);}
.om-what-props-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.om-what-props-label{font-family:'JetBrains Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;}
.om-what-multi-aoi{font-size:10px;font-weight:700;color:#D97706;background:rgba(217,119,6,.08);border:1px solid rgba(217,119,6,.2);border-radius:4px;padding:1px 6px;}
.om-what-other-aois{padding-top:6px;}

/* ── Snooze dropdown ── */
.om-snz-wrap{position:relative;display:inline-flex;}
.om-snz-btn{display:inline-flex;align-items:center;gap:4px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:rgba(255,255,255,.8);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:2px 8px;cursor:pointer;transition:all .15s;white-space:nowrap;}
.om-snz-btn:hover{background:rgba(255,255,255,.2);color:#fff;}
.om-snz-btn:hover{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.25);color:var(--text);}
.om-snz-btn.om-snz-active{color:var(--accent);border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.1);}
.om-snz-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;background:var(--s1);border:1px solid rgba(var(--accent-rgb),.15);border-radius:8px;padding:4px;min-width:120px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:9999;}
.om-snz-wrap.open .om-snz-dropdown{display:flex;flex-direction:column;}
.om-snz-opt{display:block;width:100%;padding:4px 10px;border:none;background:none;color:var(--text);font-size:11px;font-weight:500;cursor:pointer;border-radius:5px;font-family:inherit;text-align:left;transition:background .1s;}
.om-snz-opt:hover{background:rgba(var(--accent-rgb),.08);}
.om-snz-opt--undo{color:var(--red);border-top:1px solid rgba(var(--accent-rgb),.06);margin-top:2px;padding-top:6px;}

/* ── Pinned note ── */
.om-pinned-row{display:flex;align-items:flex-start;gap:6px;padding:4px 0;flex-wrap:wrap;}
.om-pinned-icon{font-size:14px;flex-shrink:0;}
.om-pinned-input{flex:1;background:transparent;border:none;border-bottom:1px dashed rgba(var(--accent-rgb),.12);font-size:12px;color:var(--text);padding:4px 2px;outline:none;font-family:inherit;font-style:italic;transition:border-color .15s;min-width:0;word-break:break-word;}
.om-pinned-text{flex:1;font-size:12px;color:var(--text);font-style:italic;line-height:1.4;word-break:break-word;min-width:0;}
.om-pinned-input:focus{border-bottom-color:var(--accent);}
.om-pinned-input::placeholder{color:var(--muted);font-style:italic;opacity:.5;}
.om-pin-add-link{font-size:10px;color:var(--muted);cursor:pointer;font-weight:600;padding:2px 0;opacity:0;transition:opacity .15s;}
.om-notes-zone:hover .om-pin-add-link{opacity:1;}
.om-pin-add-link:hover{color:var(--accent);}
.om-pin-unpin{background:none;border:none;color:var(--muted);font-size:10px;cursor:pointer;padding:2px 4px;opacity:.3;transition:opacity .15s;}
.om-pin-unpin:hover{opacity:1;color:var(--color-red);}
.om-notes-divider{border:none;border-top:1px solid rgba(var(--accent-rgb),.06);margin:4px 0;}

/* ── Notes add button ── */
.om-notes-add-btn{margin-left:auto;background:none;border:1px solid rgba(var(--accent-rgb),.15);border-radius:5px;padding:2px 10px;font-size:10px;font-weight:600;color:var(--muted);cursor:pointer;font-family:inherit;transition:all .15s;}
.om-notes-add-btn:hover{color:var(--text);border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.06);}

/* ── Edit details link ── */
.om-edit-details-link{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--muted);background:none;border:1px solid rgba(var(--accent-rgb),.1);padding:4px 12px;border-radius:6px;cursor:pointer;font-family:inherit;transition:all .15s;align-self:flex-start;margin-top:auto;}
.om-edit-details-link:hover{color:var(--text);border-color:rgba(var(--accent-rgb),.25);background:rgba(var(--accent-rgb),.05);}

/* Two-column briefing layout (legacy compat) */
.om-brief-columns{display:flex;gap:24px;padding:16px 18px;background:var(--s1);border-radius:12px;border:1px solid var(--glass-hover);box-shadow:0 4px 16px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.03);flex:1;min-height:0;overflow:hidden;}

/* LEFT — Identity & Contact */
.om-brief-left{flex:0 0 38%;min-width:0;display:flex;flex-direction:column;gap:10px;border-right:1px solid var(--accent);padding-right:20px;align-self:stretch;}
.om-brief-name{font-size:22px;font-weight:700;color:#FFFFFF;letter-spacing:-.02em;line-height:1.2;display:flex;align-items:baseline;gap:8px;}
.om-brief-age{font-size:11px;font-weight:600;color:var(--muted);font-family:'JetBrains Mono',monospace;background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.08);border-radius:6px;padding:2px 6px;letter-spacing:0;white-space:nowrap;}
.om-brief-decd-flag{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--color-red);background:rgba(234,134,143,.1);border:1px solid rgba(234,134,143,.2);border-radius:4px;padding:2px 6px;margin-left:6px;white-space:nowrap;}
.om-brief-sold-flag{font-size:9px;font-weight:700;letter-spacing:.08em;color:#FBBF24;background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.18);border-radius:4px;padding:2px 6px;margin-left:6px;white-space:nowrap;}
.om-brief-flags{margin-bottom:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.om-edit-details-btn{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--muted);background:none;border:1px solid var(--glass-hover);padding:2px 8px;border-radius:5px;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap;}
.om-edit-details-btn:hover{color:var(--accent);border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.05);}
/* Status inline slide (Active / Deceased / Sold) */
.om-status-wrap{display:inline-flex;align-items:center;border-radius:8px;overflow:hidden;border:1px solid var(--glass-hover);background:var(--glass);}
.om-status-btn{display:inline-flex;align-items:center;gap: 4px;padding:4px 12px;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:none;background:transparent;color:var(--text);cursor:pointer;transition:all .15s;white-space:nowrap;}
.om-status-btn:hover{background:rgba(255,255,255,.06);}
.om-status-btn.om-status-active{color:#22C55E;}
.om-status-btn.om-status-decd{color:#9CA3AF;}
.om-status-btn.om-status-sold{color:#F59E0B;}
/* .om-status-dot removed Track G.2 — dead JS path (search.js queries class but no emit anywhere). */
.om-dot-active{background:#22C55E;}
.om-dot-decd{background:#9CA3AF;}
.om-dot-sold{background:#F59E0B;}
.om-status-slide{display:flex;align-items:center;gap:0;max-width:0;overflow:hidden;transition:max-width .25s ease,opacity .2s;opacity:0;}
.om-status-wrap.expanded .om-status-slide{max-width:300px;opacity:1;}
.om-status-wrap.expanded .om-status-btn{border-right:1px solid var(--glass-hover);}
.om-status-slide-opt{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:all .12s;white-space:nowrap;}
.om-status-slide-opt:not(:last-child){border-right:1px solid var(--glass-hover);}
.om-status-slide-opt:hover{background:rgba(255,255,255,.06);color:var(--text);}
.om-status-slide-opt.current{display:none;}
.om-transfer-inline-btn{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.04em;padding:4px 10px;border-radius:6px;border:1px solid rgba(var(--brand-og-accent-rgb),.2);background:rgba(var(--brand-og-accent-rgb),.06);color:var(--blue);cursor:pointer;transition:all .15s;white-space:nowrap;}
.om-transfer-inline-btn:hover{background:rgba(var(--brand-og-accent-rgb),.12);border-color:rgba(var(--brand-og-accent-rgb),.35);}
.om-transfer-inline{margin-top:8px;padding:10px;background:rgba(var(--brand-og-accent-rgb),.03);border:1px solid rgba(var(--brand-og-accent-rgb),.1);border-radius:8px;}
.om-brief-addr{font-size:11px;color:var(--muted);margin-top:-6px;}
.om-brief-contact-list{display:flex;flex-direction:column;gap:4px;background:rgba(var(--brand-og-accent-rgb),.06);border:1px solid rgba(var(--brand-og-accent-rgb),.12);border-radius:8px;padding:8px 12px;margin-top:2px;}
.om-brief-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#FFFFFF;font-weight:500;}
.om-brief-item svg{color:var(--blue);opacity:.8;flex-shrink:0;}
.om-brief-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.om-brief-phone-link{color:#FFFFFF;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s;}
.om-brief-phone-link:hover{color:var(--color-teal);text-decoration:underline;}
.om-brief-email-link{color:var(--blue);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s;}
.om-brief-email-link:hover{color:var(--brand-og-accent);text-decoration:underline;}
.om-brief-phone{color:var(--text);font-weight:600;font-size:13px;font-family:inherit;letter-spacing:.02em;}
.om-primary-badge{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:rgba(var(--accent-rgb),.1);padding:1px 4px;border-radius:3px;margin-left:6px;flex-shrink:0;}
.om-alt-contacts{margin-top:4px;padding-top:4px;border-top:1px solid rgba(var(--accent-rgb),.06);display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;max-height:50px;overflow-y:auto;}
.om-alt-contact-row{display:flex;align-items:center;gap:6px;font-size:11px;padding:2px 0;}
.om-alt-contact-link{color:var(--muted);text-decoration:none;transition:color .15s;}
.om-alt-contact-link:hover{color:var(--text);text-decoration:underline;}
.om-alt-primary-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:1px 2px;opacity:.4;transition:all .15s;}
.om-alt-primary-btn:hover{opacity:1;color:#F59E0B;transform:scale(1.2);}
.om-alt-invalid-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:10px;padding:1px 2px;opacity:.3;transition:all .15s;}
.om-alt-invalid-btn:hover{opacity:1;color:var(--color-danger);}
.om-alt-invalid-btn.active{opacity:1;color:var(--color-danger);}
.om-alt-invalid .om-alt-contact-link{text-decoration:line-through;color:var(--color-danger) !important;opacity:.5;}
.om-brief-phone svg{opacity:.7;}

/* RIGHT — Offer & Property Data */
.om-brief-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.om-brief-right-top{display:flex;align-items:baseline;gap:8px;}
.om-brief-offer-price{font-family:'JetBrains Mono',monospace;font-size:28px;font-weight:700;color:var(--color-money);letter-spacing:0;line-height:normal;}
.om-brief-offer-cap{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--color-red);font-weight:600;white-space:nowrap;}
.om-edit-offer-btn{background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.1);border-radius:6px;padding:4px 6px;cursor:pointer;transition:all .15s;color:var(--muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.om-edit-offer-btn:hover{background:rgba(var(--accent-rgb),.1);border-color:rgba(74,222,128,.3);color:var(--color-green);}
.om-brief-stats{display:grid;grid-template-columns:1fr 1fr;gap: 2px;}
.om-brief-stat{text-align:center;padding:4px 8px;background:var(--glass);border-radius:6px;border:1px solid var(--glass);}
.om-brief-stat-val{display:block;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:#FFFFFF;}
.om-brief-stat-lbl{display:block;font-family:'JetBrains Mono',monospace;font-size:7px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.7);margin-top:1px;}

/* Property & Legal sections (inside right column) */
.om-brief-legal-section{padding-top:6px;flex:1;min-height:0;overflow-y:auto;}
.om-brief-section-label{display:block;font-family:'JetBrains Mono',monospace;font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.7);font-weight:700;margin-bottom:4px;}
.om-brief-legals{display:block;min-width:0;}
.om-brief-legal{font-size:10px;color:rgba(255,255,255,.8);line-height:1.5;margin-bottom:2px;}
.om-brief-operator-box{padding:4px 10px;background:var(--glass);border:1px solid var(--glass);border-radius:6px;display:inline-block;}
.om-brief-legal-card{background:var(--glass);border:1px solid rgba(var(--brand-og-accent-rgb),.18);border-radius:8px;padding:8px 10px;box-shadow:0 2px 8px rgba(0,0,0,.2);}
.om-brief-legal-card--plain{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.08);}
.om-brief-legal-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;}
.om-brief-legal-left{display:flex;align-items:center;gap:6px;min-width:0;}
.om-brief-legal-name{font-size:11px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.om-brief-legal-name--dim{color:var(--dim);font-weight:500;font-style:italic;}
.om-brief-legal-acres{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:var(--accent);white-space:nowrap;flex-shrink:0;}
.om-brief-legal-loc{font-size:9px;color:var(--muted);white-space:nowrap;flex-shrink:0;padding-left:6px;}
.om-brief-legal-total{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:var(--color-money);white-space:nowrap;flex-shrink:0;padding-left:8px;}
.om-brief-legal-wells{display:flex;flex-direction:column;gap:4px;}
.om-brief-well{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text);font-weight:500;background:var(--glass);border:1px solid var(--glass);padding:4px 10px;border-radius:5px;}
.om-brief-well-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:200px;}
.om-brief-well-nums{display:flex;align-items:center;gap:4px;margin-left:auto;flex-shrink:0;}
.om-brief-well-nra{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text);font-weight:600;white-space:nowrap;}
.om-brief-well-sep{color:rgba(255,255,255,.2);font-size:9px;}
.om-brief-well-offer{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--color-money);font-weight:700;white-space:nowrap;}
.om-brief-well-op{font-size:9px;color:var(--muted);font-style:italic;white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:8px;border-left:1px solid var(--glass);}
/* .om-brief-well-dot removed Track G.2 — strict-dead, 0 JS/HTML refs. */
/* duplicate well-nra/offer rules removed — defined above */

/* Asset Selection */
.om-clickable{cursor:pointer;transition:opacity .15s,background .15s;}
.om-clickable:hover{background:rgba(var(--brand-og-accent-rgb),.08);}
.om-well--deselected{opacity:.3;}
.om-asset-sel-bar{display:flex;align-items:center;gap:8px;padding:4px 0 6px;}
.om-sel-all-btn{font-size:10px;color:var(--blue);cursor:pointer;font-weight:600;}
.om-sel-all-btn:hover{text-decoration:underline;}
.om-sel-count{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--blue);margin-left:auto;}
.om-offer-sel-badge{font-size:9px;color:var(--accent);font-weight:500;}

/* Status Bar — now empty, status/lead in header tags */
.om-status-bar{display:none;}

/* Header status/lead pills (Phase 5 §6.10 — light surface treatment) */
.om-hdr-pill{display:flex;align-items:center;gap:6px;background:var(--s1);border:1px solid var(--border);border-radius:4px;padding:4px 10px 4px 8px;}
.om-hdr-pill-label{font-family:'JetBrains Mono',monospace;font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);font-weight:700;flex-shrink:0;}
.om-hdr-pill-select{background:transparent;border:none;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;outline:none;cursor:pointer;padding:0 2px;}
.om-hdr-pill-select option{background:var(--s1);color:var(--text);font-size:12px;}
.om-hdr-pill-date{background:transparent;border:none;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;outline:none;cursor:pointer;padding:0;}
.om-hdr-pill-callback{border-color:rgba(var(--brand-og-accent-rgb),.30);}

/* Call log lead & status badges */
.clog-status{font-size:9px;font-family:'JetBrains Mono',monospace;text-transform:capitalize;color:var(--accent);background:rgba(var(--accent-rgb),.1);padding:1px 6px;border-radius:3px;font-weight:600;}
.clog-lead{font-size:9px;font-family:'JetBrains Mono',monospace;padding:1px 6px;border-radius:3px;font-weight:700;}
.clog-lead-hot{background:rgba(192,82,78,.15);color:#E06B67;}
.clog-lead-cold{background:rgba(var(--accent-rgb),.15);color:var(--muted);}

/* Body — scrollable zones */
.om-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:visible;padding:0 20px 12px 0;}

/* Upper zone — WHO | WHAT */
.om-upper{display:grid;grid-template-columns:40% 60%;gap:0;padding:16px 0;flex:0 0 45%;position:relative;}
/* WHO background handled by om-body linear-gradient */
.om-upper::after{content:'';position:absolute;bottom:0;left:5%;right:5%;height:1px;background:linear-gradient(to right,transparent,rgba(var(--accent-rgb), .1) 15%,rgba(var(--accent-rgb), .1) 85%,transparent);z-index:1;}
.om-who{border-right:1px solid rgba(var(--accent-rgb),.08);display:flex;flex-direction:column;gap:8px;min-width:0;overflow-y:auto;padding:16px 20px;margin:-16px 0;position:relative;background:var(--bg);}
.om-what{padding-left:20px;display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0;position:relative;}

/* Lower zone — 50/50: NOTES | RECENT + OUTREACH */
/* R2 #5 — tabbed lower section. Replaces the old 2-column .om-lower grid.
   The legacy .om-lower / .om-notes-zone / .om-lower-right rules are kept
   below as no-ops for any orphan reference; new structure uses .om-tabs. */
.om-tabs{padding:14px 20px 14px 20px;flex:0 0 55%;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.om-tabs-strip{display:flex;gap:0;border-bottom:1px solid var(--border);flex-shrink:0;}
.om-tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 16px;font-family:'JetBrains Mono Variable','JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;transition:color .15s,border-color .15s;margin-bottom:-1px;}
.om-tab:hover{color:var(--text);}
.om-tab.is-active{color:var(--accent);border-bottom-color:var(--accent);}
.om-tab-count{display:inline-block;font-size:10px;font-weight:500;margin-left:6px;color:var(--muted);font-variant-numeric:tabular-nums;}
.om-tab.is-active .om-tab-count{color:var(--accent);}
.om-tab-body{padding:14px 0 0;flex:1;min-height:0;overflow-y:auto;}
.om-tab-body[hidden]{display:none;}
.om-tab-body .outreach-panel{padding-top:0;background:none;border:none;border-radius:0;box-shadow:none;}
.om-tab-body .outreach-panel-hdr{padding:0 0 8px;border-bottom:1px solid var(--border);color:var(--accent);font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}

/* Collapsed sections (full width) */
.om-collapse-area{padding:0 0 8px;display:flex;flex-direction:column;gap:4px;}
.om-collapse-section{border:1px solid rgba(var(--accent-rgb),.06);border-radius:8px;overflow:hidden;}
.om-collapse-toggle{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:11px;font-weight:600;color:var(--text);cursor:pointer;transition:background .12s;user-select:none;}
.om-collapse-toggle:hover{background:rgba(var(--accent-rgb),.04);}
.om-collapse-toggle.open .om-collapse-caret{transform:rotate(90deg);}
.om-collapse-caret{font-size:10px;color:var(--muted);transition:transform .15s;margin-left:auto;}
.om-collapse-attn{width:8px;height:8px;border-radius:50%;background:#D97706;flex-shrink:0;}
.om-collapse-body{display:none;padding:8px 12px;}
.om-collapse-body.open{display:block;}
.om-right-card{background:linear-gradient(145deg,var(--navy),var(--navy-light));border:none;border-radius:14px;padding:18px;box-shadow:0 8px 32px rgba(0,0,0,.3),0 2px 8px rgba(0,0,0,.15);display:flex;flex-direction:column;box-sizing:border-box;min-height:100%;}
.om-right-card-hdr{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.9);margin-bottom:16px;display:flex;align-items:center;gap:6px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1);}

/* Notes Card — prominent, top of left column */
.om-notes-card{background:none;border:none;border-radius:0;margin-bottom:0;overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0;box-shadow:none;}
.om-notes-card-hdr{font-family:'JetBrains Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:700;padding:0 0 8px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px;background:none;border-radius:0;margin-bottom:8px;}
.om-notes-card-hdr svg{opacity:.7;color:var(--text);}
.om-notes-history-icon{margin-left:auto;background:var(--glass-hover);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 6px;cursor:pointer;transition:all .15s;color:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;}
.om-notes-history-icon:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.3);color:#FFFFFF;}
.om-notes-body{display:flex;flex-direction:column;flex:1;min-height:0;}
.om-notes-list{padding:10px 14px;flex:1;overflow-y:auto;min-height:0;}
.om-notes-empty{font-size:11px;color:#5a6a7a;text-align:center;padding:12px 0;}
.om-note-divider{height:1px;background:rgba(var(--accent-rgb), .1);margin:8px 0;}
.om-remove-wrap{position:relative;}
.om-remove-btn{display:flex;align-items:center;gap: 4px;padding:6px 14px;border-radius:6px;border:1px solid rgba(234,134,143,.2);background:rgba(234,134,143,.06);color:var(--color-red);font-size:10px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s;}
.om-remove-btn:hover{background:rgba(234,134,143,.12);border-color:rgba(234,134,143,.35);}
.om-remove-menu{display:none;position:absolute;bottom:calc(100% + 6px);right:0;background:var(--s1);border:1px solid var(--border2);border-radius:10px;padding:6px;min-width:240px;box-shadow:0 8px 32px rgba(0,0,0,.5);z-index:20;}
.om-remove-menu.open{display:block;}
.om-remove-opt{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:none;color:var(--text);font-size:11px;font-weight:500;cursor:pointer;border-radius:6px;font-family:inherit;transition:background .1s;text-align:left;}
.om-remove-opt:hover{background:rgba(255,255,255,.08);}
/* .om-remove-opt-icon removed Track G.2 — leading colored bullet in owner-remove dropdown menu; redundant with text labels. */
.om-remove-danger{color:var(--color-red);}
.om-remove-danger:hover{background:rgba(234,134,143,.1);}
.om-remove-divider{height:1px;background:var(--glass);margin:4px 0;}
.om-dnra-input{width:auto;min-width:60px;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--text);background:transparent;border:1px solid var(--border);border-radius:4px;padding:2px 6px;text-align:center;outline:none;transition:border-color .15s;-moz-appearance:textfield;}
.om-dnra-input::-webkit-inner-spin-button,.om-dnra-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.om-dnra-input:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px rgba(110,168,254,.12);}
.om-note-meta{font-size:9px;color:var(--muted);font-weight:600;margin-bottom:2px;font-family:'JetBrains Mono',monospace;letter-spacing:.02em;}
.om-note-text{font-size:12px;color:#111111;line-height:1.5;white-space:pre-wrap;word-break:break-word;font-weight:500;}
.om-notes-input-row{display:flex;gap:8px;padding:10px 14px;border-top:1px solid rgba(var(--accent-rgb), .1);align-items:flex-end;}
.om-notes-textarea{flex:1;background:var(--bg);border:1px solid rgba(var(--accent-rgb), .15);border-radius:8px;padding:8px 10px;color:#111111;font-family:inherit,sans-serif;font-size:11px;font-weight:500;line-height:1.4;resize:none;min-height:36px;outline:none;transition:border-color .2s;box-sizing:border-box;}
.om-notes-textarea:focus{border-color:var(--s1);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .1);}
.om-notes-textarea::placeholder{color:#8a8f9a;}
.om-notes-save-btn{padding:8px 14px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:all .15s;flex-shrink:0;}
.om-notes-save-btn:hover{background:var(--accent-hover);box-shadow:0 4px 16px rgba(var(--accent-rgb),.3);}

.om-notes-edit-toggle{margin-left:auto;width:24px;height:24px;border-radius:5px;background:rgba(var(--accent-rgb), .06);border:1px solid rgba(var(--accent-rgb), .1);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#5a6a7a;transition:all .15s;padding:0;}
.om-notes-edit-toggle:hover{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.3);color:var(--accent);}
.om-notes-edit-toggle.active{background:rgba(var(--accent-rgb),.15);border-color:rgba(var(--accent-rgb),.4);color:var(--accent);}
/* Note rows — edit/delete */
.om-note-row{position:relative;margin-bottom:12px;transition:background .15s;}
.om-note-row:hover{background:rgba(var(--accent-rgb),.02);}
.om-note-actions{display:flex;align-items:center;gap:4px;margin-top:2px;}
.om-note-author{font-family:'JetBrains Mono',monospace;font-size:9px;color:#5a6a7a;margin-right:auto;}
.om-note-action-btn{width:22px;height:22px;border-radius:5px;background:rgba(var(--accent-rgb), .06);border:1px solid rgba(var(--accent-rgb), .1);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#5a6a7a;transition:all .15s;padding:0;}
.om-note-action-btn:hover{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.3);color:var(--accent);}
.om-note-delete-btn:hover{background:rgba(224,88,88,.1);border-color:rgba(224,88,88,.2);color:var(--red);}
.om-note-pin-btn{background:none;border:none;cursor:pointer;font-size:11px;padding:0 2px;opacity:0;transition:opacity .15s;vertical-align:middle;line-height:1;}
.om-note-row:hover .om-note-pin-btn{opacity:.5;}
.om-note-pin-btn:hover{opacity:1 !important;}
/* Pinned-state badge — always visible at full opacity in teal so the pinned
   note is clearly the one driving the banner above. */
.om-note-pin-btn--active{opacity:1 !important;color:var(--accent);}
.om-note-pin-btn--active:hover{color:var(--accent-hover);}

/* ── Transfer Interest Section ── */
.om-transfer-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px;}
.om-transfer-summary{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);}
.om-transfer-label{font-weight:700;font-family:'JetBrains Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.08em;}
.om-transfer-val{font-family:'JetBrains Mono',monospace;color:var(--text);font-weight:600;}
.om-transfer-add-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px dashed rgba(var(--brand-og-accent-rgb),.25);background:rgba(var(--brand-og-accent-rgb),.04);color:var(--blue);font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;width:100%;}
.om-transfer-add-btn:hover{background:rgba(var(--brand-og-accent-rgb),.1);border-color:rgba(var(--brand-og-accent-rgb),.4);}
.om-transfer-heir-row{display:flex;flex-direction:column;gap:6px;padding:10px;background:rgba(255,255,255,.02);border:1px solid var(--glass);border-radius:8px;}
.om-transfer-heir-fields{display:flex;gap:6px;align-items:center;}
.om-transfer-name{flex:1;font-weight:600;}
.om-transfer-nra{width:80px;font-family:'JetBrains Mono',monospace;text-align:center;}
.om-transfer-rel{width:100px;font-size:11px;}
.om-transfer-notes{font-size:11px;color:var(--muted);}
.om-transfer-remove{width:24px;height:24px;border-radius:5px;border:1px solid rgba(234,134,143,.15);background:rgba(234,134,143,.05);color:var(--color-red);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;padding:0;transition:all .15s;flex-shrink:0;}
.om-transfer-remove:hover{background:rgba(234,134,143,.15);border-color:rgba(234,134,143,.3);}
.om-transfer-total{font-size:11px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.om-transfer-bar{height:4px;border-radius:2px;background:var(--glass);overflow:hidden;margin-top:4px;}
.om-transfer-bar-fill{height:100%;border-radius:2px;transition:width .3s,background .3s;}
.om-transfer-actions{display:flex;gap:8px;}
.om-transfer-confirm-btn{padding:8px 18px;border-radius:8px;border:none;background:var(--color-completed);color:#fff;font-weight:700;font-size:11px;cursor:pointer;font-family:inherit;transition:all .15s;}
.om-transfer-confirm-btn:hover{background:#34B872;}
.om-transfer-cancel-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--glass-hover);background:rgba(255,255,255,.04);color:var(--muted);font-weight:600;font-size:11px;cursor:pointer;font-family:inherit;transition:all .15s;}
.om-transfer-cancel-btn:hover{background:rgba(255,255,255,.08);}
.om-transfer-no-match{font-size:10px;color:var(--muted);padding:4px 0;font-style:italic;}
.om-transfer-matched{font-size:10px;color:var(--color-completed);padding:4px 0;font-weight:600;}
.om-transfer-match-row{padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .12s;border:1px solid rgba(255,255,255,.04);}
.om-transfer-match-row:hover{background:rgba(var(--brand-og-accent-rgb),.08);border-color:rgba(var(--brand-og-accent-rgb),.15);}
.om-transfer-match-name{font-size:11px;font-weight:600;color:var(--text);}
.om-transfer-match-detail{font-size:9px;color:var(--muted);margin-top:1px;}
.om-transfer-match-projs{font-size:9px;color:var(--blue);margin-top:1px;}
.om-transfer-history{border-top:1px solid var(--glass);padding-top:8px;margin-top:4px;}
.om-transfer-history-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;}
.om-transfer-history-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:11px;color:var(--text);}
.om-transfer-reverse-btn{margin-left:auto;padding:2px 8px;border-radius:4px;border:1px solid rgba(234,134,143,.2);background:rgba(234,134,143,.05);color:var(--color-red);font-size:9px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;}
.om-transfer-reverse-btn:hover{background:rgba(234,134,143,.15);border-color:rgba(234,134,143,.3);}
.om-note-edit-actions{display:flex;gap:6px;margin-top:6px;}
.om-note-edit-save{padding:4px 12px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;cursor:pointer;transition:all .15s;}
.om-note-edit-save:hover{background:var(--accent-hover);}
.om-note-edit-cancel{padding:4px 12px;border:1px solid rgba(var(--accent-rgb), .15);border-radius:6px;background:#eef0f3;color:#5a6a7a;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;cursor:pointer;transition:all .15s;}
.om-note-edit-cancel:hover{border-color:rgba(var(--accent-rgb), .3);color:#111111;}
.om-note-edit-area{width:100%;box-sizing:border-box;}

/* Footer */
.om-ftr{display:flex;align-items:center;gap:10px;padding:14px 24px;border-top:1px solid rgba(var(--accent-rgb),.06);background:var(--s1);border-radius:0 0 22px 22px;}
.om-ftr .btn-primary{background:var(--brand-og-accent);color:#fff;}
.om-ftr .btn-primary:hover{background:var(--brand-og-accent-hover);}
/* Danger zone — disclosed at the bottom of the modal body (audit §3.6
   Option B placement). Collapsed by default; reveals the existing remove
   dropdown (rendered into #om-ftr-remove-wrap). The summary uses a
   muted error tint so the affordance reads as destructive without
   shouting at users who aren't here for it. */
.om-danger-zone{padding:10px 24px 0;background:var(--s1);border-top:1px solid rgba(var(--accent-rgb),.06);}
.om-danger-zone[open]{padding-bottom:14px;}
.om-danger-summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-red);padding:4px 0;user-select:none;}
.om-danger-summary::-webkit-details-marker{display:none;}
.om-danger-caret{display:inline-block;font-size:9px;color:var(--color-red);transition:transform .15s var(--ease-out);}
.om-danger-zone[open] .om-danger-caret{transform:rotate(90deg);}
.om-danger-summary:hover{color:var(--color-red);opacity:.85;}
.om-danger-zone .om-remove-wrap{margin-top:8px;}
.om-ftr .btn-ghost{background:rgba(var(--accent-rgb),.04);color:var(--text);border:1px solid rgba(var(--accent-rgb),.08);}
.om-ftr .btn-ghost:hover{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.15);}
.om-ftr .btn-destructive{background:rgba(var(--color-red-rgb),.08);color:var(--color-red);border:1px solid rgba(var(--color-red-rgb),.20);}
.om-ftr .btn-destructive:hover{background:rgba(var(--color-red-rgb),.15);border-color:rgba(var(--color-red-rgb),.40);}
.om-ftr .owner-nav-btn{background:var(--s2);border:1px solid var(--border);color:var(--text);}
.om-ftr .owner-nav-btn:hover:not(:disabled){border-color:var(--brand-og-accent);color:var(--brand-og-accent);background:rgba(var(--brand-og-accent-rgb),.08);}
.om-ftr .owner-nav-btn:disabled{opacity:.4;}
#owner-overlay{flex-direction:column;}

/* Sections */
.om-section{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:14px;margin-bottom:10px;}
.om-section-hdr{font-family:'JetBrains Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--text);font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:6px;}
.om-section-hdr svg{opacity:.75;}

/* Inputs */
.om-input{font-family:inherit,sans-serif;font-size:12px;background:#eef0f3;border:1px solid rgba(var(--accent-rgb), .15);border-radius:6px;padding:6px 10px;color:#111111;outline:none;transition:border .15s;width:100%;}
.om-input:focus{border-color:var(--s1);}
.om-input::placeholder{color:#8a8f9a;}
.om-select{font-family:inherit,sans-serif;font-size:12px;background:#eef0f3;border:1px solid rgba(var(--accent-rgb), .15);border-radius:6px;padding:6px 10px;color:#111111;outline:none;width:100%;cursor:pointer;}
.om-select:focus{border-color:var(--s1);}
.om-label{font-family:'JetBrains Mono',monospace;font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:#5a6a7a;margin-bottom:4px;display:block;}
.om-input-full{width:100%;}
.om-input-sm{max-width:60px;}

/* Field layout */
.om-field-group{margin-bottom:10px;}
.om-field-row{display:flex;gap:6px;}
.om-field-row-3{display:grid;grid-template-columns:1fr 60px 70px;gap:6px;}
.om-field{flex:1;min-width:0;}

/* ── Owner Details Button ── */
.om-details-card{background:var(--s1);border:none;border-radius:10px;overflow:hidden;margin-bottom:12px;transition:all .15s;box-shadow:0 2px 8px rgba(0,0,0,.2);}
.om-details-card:hover{border-color:var(--blue);box-shadow:0 2px 12px rgba(var(--brand-og-accent-rgb),.2);}
.om-details-card-hdr{display:flex;align-items:center;gap:6px;padding:10px 14px;background:linear-gradient(135deg,var(--navy),var(--navy-light));font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.9);cursor:pointer;border-radius:0 11px 0 0;}
.om-details-card-hdr svg{opacity:.8;color:var(--accent);}
.om-details-caret{font-size:11px;font-weight:600;color:rgba(255,255,255,.5);letter-spacing:.02em;text-transform:none;font-family:inherit;}
.om-addr-display{display:flex;align-items:center;gap: 4px;font-size:10px;color:#666;margin-top:4px;}
.om-addr-display svg{opacity:.6;color:var(--s1);}

/* Summary tables in expandable details */
.om-summary-section{margin-bottom:10px;}
.om-summary-hdr{display:flex;align-items:center;gap: 4px;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--s1);margin-bottom:4px;}
.om-summary-hdr svg{opacity:.8;color:var(--accent);}
.om-summary-table{border:1px solid rgba(var(--accent-rgb), .12);border-radius:6px;overflow:hidden;}
.om-summary-row{display:flex;align-items:center;gap:6px;padding:2px 10px;font-size:10px;color:#111;background:#f9fafb;}
.om-summary-row:nth-child(even){background:var(--bg);}
.om-summary-row.primary{background:rgba(var(--accent-rgb),.1);font-weight:600;}
.om-summary-row.primary .om-summary-val{color:var(--s1);}
.om-summary-row.invalid .om-summary-val{text-decoration:line-through;color:#999;}
.om-summary-star{color:var(--accent);flex-shrink:0;}
/* .om-summary-dot removed Track G.2 — strict-dead, 0 JS/HTML refs. */
.om-summary-val{font-family:'JetBrains Mono',monospace;font-size:10px;}
.om-summary-empty{padding:6px 10px;font-size:10px;color:#999;font-style:italic;}
.om-edit-contacts-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:6px 14px;margin-top:10px;background:var(--blue);border:none;border-radius:6px;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#FFFFFF;cursor:pointer;transition:background .15s;}
.om-edit-contacts-btn:hover{background:#4B8FE5;}
.om-edit-contacts-btn svg{opacity:.8;}

/* Contacts Edit Popup */
.om-contacts-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:var(--z-modal);align-items:center;justify-content:center;}
.om-contacts-overlay.open{display:flex;}
.om-contacts-overlay.open{display:flex;}
.om-contacts-popup{background:#f9fafb;border:3px solid var(--s1);border-radius:14px;width:400px;max-width:90vw;max-height:80vh;overflow-y:auto;box-shadow:0 16px 48px rgba(0,0,0,.4),0 4px 12px rgba(0,0,0,.2);}
.om-contacts-popup-hdr{display:flex;align-items:center;gap:6px;padding:12px 18px;background:var(--s1);font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);position:sticky;top:0;z-index:1;}
.om-contacts-popup-hdr svg{opacity:.8;color:var(--accent);}
.om-contacts-popup-body{padding:14px 18px;}
.om-contacts-save-btn{width:100%;padding:10px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .15s;margin-top:12px;}
.om-contacts-save-btn:hover{background:var(--accent-hover);}

.om-detail-section{margin-bottom:10px;padding:10px 12px;background:rgba(0,0,0,.08);border-radius:8px;border:1px solid rgba(0,0,0,.06);}
.om-detail-section:last-child{margin-bottom:0;}
.om-detail-section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.om-detail-section-title{display:flex;align-items:center;gap: 4px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text);}
.om-detail-section-title svg{opacity:.8;color:var(--accent);}
.om-detail-count{font-size:9px;color:var(--accent);font-weight:700;background:rgba(var(--accent-rgb),.1);border-radius:4px;padding:0 4px;}

/* Identity row — name + edit + age */
.om-identity-row{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.om-identity-name{font-size:13px;font-weight:700;color:#111111;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.om-identity-edit-btn{width:20px;height:20px;border-radius:4px;background:none;border:1px solid rgba(var(--accent-rgb), .12);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#5a6a7a;transition:all .15s;flex-shrink:0;padding:0;}
.om-identity-edit-btn:hover{color:var(--accent);border-color:rgba(var(--accent-rgb),.3);}
.om-identity-age{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:#5a6a7a;background:#eef0f3;border:1px solid rgba(var(--accent-rgb), .1);border-radius:5px;padding:1px 6px;white-space:nowrap;flex-shrink:0;cursor:pointer;}
.om-identity-age:hover{border-color:rgba(var(--accent-rgb), .25);}
.om-identity-age-empty{color:#8a8f9a;cursor:pointer;font-style:italic;border-style:dashed;}
.om-identity-age-empty:hover{color:#5a6a7a;border-color:rgba(var(--accent-rgb), .2);}
.om-name-edit-row{margin-bottom:6px;display:flex;flex-direction:column;gap:4px;}
.om-name-age-field{display:flex;align-items:center;gap:6px;}

/* Address toggle & fields */
.om-addr-toggle{display:flex;align-items:center;gap: 4px;font-size:10px;color:#5a6a7a;cursor:pointer;padding:4px 0;transition:color .15s;}
.om-addr-toggle:hover{color:#111111;}
.om-addr-toggle svg{opacity:.5;flex-shrink:0;}
.om-addr-toggle span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.om-addr-caret{font-size:8px;margin-left:auto;flex-shrink:0;opacity:.5;}
.om-addr-fields{display:flex;flex-direction:column;gap: 2px;margin-top:4px;}
.om-addr-row{display:flex;gap: 2px;}
.om-addr-row .om-input{flex:1;}
.om-addr-row .om-input-sm{flex:0 0 48px;}

/* Contact rows — compact with scrollable area */
.om-contact-scroll{max-height:120px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.1) transparent;}
.om-contact-scroll::-webkit-scrollbar{width:4px;}
.om-contact-scroll::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.12);border-radius:4px;}
/* Contact list — table style */
.om-contact-list{display:flex;flex-direction:column;gap:0;border:1px solid rgba(var(--accent-rgb), .12);border-radius:6px;overflow:hidden;}
.om-contact-item{display:flex;align-items:center;gap:6px;padding:2px 10px;transition:background .15s;border-bottom:1px solid rgba(var(--accent-rgb), .08);background:#f9fafb;}
.om-contact-item:nth-child(even){background:var(--bg);}
.om-contact-item:last-child{border-bottom:none;}
.om-contact-item:hover{background:#e4e7ec;}
.om-contact-item:hover .om-ci-actions{opacity:1;}
.om-contact-item.invalid{opacity:.55;}
.om-contact-item.invalid .om-ci-value{text-decoration:line-through;color:var(--red);}
.om-contact-item.primary .om-ci-star{color:var(--accent);}

/* Star icon */
.om-ci-star{color:rgba(var(--accent-rgb), .15);cursor:pointer;flex-shrink:0;transition:color .15s;display:flex;align-items:center;}
.om-ci-star:hover{color:rgba(var(--accent-rgb),.6);}

/* Value — editable input disguised as text */
.om-ci-value{flex:1;min-width:0;font-family:'SF Mono','Fira Code','Consolas','Monaco',monospace;font-size:11px;color:#111111;background:transparent;border:none;outline:none;padding:0;border-bottom:1px solid transparent;transition:all .15s;font-variant-numeric:slashed-zero;}
.om-ci-value:focus{color:#111111;border-bottom-color:rgba(var(--accent-rgb), .3);}
.om-ci-value::placeholder{color:#8a8f9a;font-style:italic;}

/* Action buttons — hidden until row hover */
.om-ci-actions{display:flex;gap: 2px;opacity:0;transition:opacity .15s;flex-shrink:0;}
.om-ci-action{width:20px;height:20px;border-radius:4px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#8a8f9a;transition:all .12s;padding:0;}
.om-ci-action.act-remove:hover{color:#E06B67;}

/* Invalid toggle — always visible with label-style treatment */
.om-ci-action.act-invalid{width:auto;padding:0 6px;border-radius:4px;font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.04em;color:#5a6a7a;border:1px solid rgba(var(--accent-rgb), .12);gap: 2px;height:18px;}
.om-ci-action.act-invalid::after{content:'Invalid';}
.om-ci-action.act-invalid:hover{color:#E06B67;border-color:rgba(224,88,88,.25);background:rgba(224,88,88,.06);}
.om-ci-action.act-invalid.active{color:#E06B67;border-color:rgba(224,88,88,.3);background:rgba(224,88,88,.08);}
.om-ci-action.act-invalid.active::after{content:'Invalid';}

/* Always show actions on invalid/active items */
.om-contact-item.invalid .om-ci-actions{opacity:1;}

.om-add-btn{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:var(--accent);background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.2);border-radius:5px;padding:2px 8px;cursor:pointer;transition:all .15s;}
.om-add-btn:hover{color:var(--accent-hover);background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.35);}

/* Due/Follow-up */
.om-due-row{display:flex;flex-wrap:wrap;gap:0 16px;padding:8px 0 0;border-top:1px solid rgba(var(--accent-rgb),.06);font-size:10px;align-items:center;}
.om-due-item{display:flex;align-items:center;gap:6px;padding:2px 0;}
.om-due-closing{background:rgba(5,150,105,.08);padding:2px 8px;border-radius:6px;border:1px solid rgba(5,150,105,.15);}
.om-due-psa{background:rgba(var(--color-accent-rgb),.08);padding:2px 8px;border-radius:6px;border:1px solid rgba(var(--color-accent-rgb),.15);}
.om-due-label{font-family:'JetBrains Mono',monospace;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.om-due-val{font-weight:600;color:var(--text);}
.om-due-sep{width:100%;height:0;border:none;margin:0;}
.om-due-answered{color:var(--color-green) !important;}
.om-due-na{color:#E06B67 !important;}
.om-due-over{color:#E06B67 !important;}
.om-due-followup{color:var(--accent) !important;}
.om-meta{font-size:9px;color:var(--dim);margin-top:10px;padding-top:8px;border-top:1px solid rgba(var(--accent-rgb),.05);}

/* Offer custom badge (used in header briefing) */
.om-offer-custom{font-family:'JetBrains Mono',monospace;font-size:7px;color:var(--accent);background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.2);border-radius:6px;padding:2px 6px;display:inline-block;margin-top:4px;letter-spacing:.06em;}

/* Empty state */
.om-empty{padding:20px;text-align:center;color:var(--muted);font-size:11px;border:1px dashed rgba(var(--accent-rgb),.08);border-radius:8px;}

/* User badge in call form */
.om-user-badge{display:inline-flex;align-items:center;gap: 2px;margin-left:4px;font-size:9px;color:var(--muted);vertical-align:middle;}
.om-user-dot{width:14px;height:14px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:7px;font-weight:700;color:#fff;}
/* ── Expandable Sections (dark) ── */
.oc-expand-section{margin-bottom:4px;}
.oc-expand-toggle{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);
  border-radius:6px;cursor:pointer;transition:all .15s;user-select:none;font-size:10px;
}
.oc-expand-toggle:hover{background:rgba(var(--accent-rgb),.06);border-color:rgba(var(--accent-rgb),.08);}
.oc-expand-toggle.open{border-radius:6px 6px 0 0;border-bottom-color:transparent;}
.oc-expand-toggle-left{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text);}
.oc-expand-toggle-left svg{color:var(--muted);opacity:.7;}
.oc-expand-count{font-family:'JetBrains Mono',monospace;font-size:8px;background:rgba(var(--accent-rgb),.06);color:var(--muted);padding:1px 4px;border-radius:6px;font-weight:600;}
.oc-expand-caret{font-size:8px;color:var(--muted);transition:transform .2s;}
.oc-expand-toggle.open .oc-expand-caret{transform:rotate(180deg);}
.oc-expand-body{display:none;padding:10px;border:1px solid rgba(255,255,255,.05);border-top:none;border-radius:0 0 6px 6px;background:rgba(255,255,255,.01);}
.oc-expand-body.open{display:block;}

/* Well rows */
.oc-well-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;font-size:11px;transition:background .1s;}
.oc-well-row:hover{background:rgba(255,255,255,.03);}
/* .oc-well-dot removed Track G.2 — strict-dead, 0 JS/HTML refs. */
.oc-well-name{flex:1;font-weight:600;color:var(--text);}
.oc-well-offer{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:#7BA08A;}
.oc-well-total{display:flex;justify-content:space-between;padding:6px;margin-top:2px;border-top:1px solid rgba(var(--accent-rgb),.06);font-size:10px;font-weight:700;color:var(--text);}
.oc-well-total span:last-child{font-family:'JetBrains Mono',monospace;color:#7BA08A;}

/* Legal items */
.oc-legal-item{padding:4px 0;font-size:11px;}
.oc-legal-item+.oc-legal-item{border-top:1px solid rgba(255,255,255,.04);padding-top:6px;margin-top:2px;}
.oc-legal-prop{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;}
.oc-legal-text{color:var(--text);line-height:1.5;user-select:text;-webkit-user-select:text;}

/* Multi-section table */
.oc-mw-table{width:100%;border-collapse:collapse;font-size:10px;}
.oc-mw-table th{font-family:'JetBrains Mono',monospace;font-size:7px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:2px 6px 4px;text-align:left;border-bottom:1px solid rgba(var(--accent-rgb),.06);}
.oc-mw-table td{padding:4px 6px;color:var(--text);}
.oc-mw-offer{font-family:'JetBrains Mono',monospace;font-weight:700;color:#7BA08A;text-align:right;}
.oc-mw-table th:last-child{text-align:right;}
.oc-mw-total{border-top:1px solid rgba(var(--accent-rgb),.08);}
.oc-mw-total td{font-weight:700;color:var(--text);}

/* ── Call Activity Card (right col) ── */
/* ── Action Buttons — Hero Section ── */
.om-action-section{margin-bottom:14px;}
/* Primary call CTA — only orange element in the modal */
.om-call-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;background:var(--color-call-btn);color:#FFFFFF;border:none;border-radius:4px;font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out);text-decoration:none;margin-bottom:14px;letter-spacing:.02em;}
.om-call-cta:hover{background:var(--color-call-btn-hover);}
.om-call-cta:active{filter:brightness(.95);}
.om-outcome-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.om-outcome-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;border-radius:4px;border:1px solid var(--border);cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.03em;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);color:var(--muted);background:var(--s1);}
.om-outcome-ans{color:var(--color-green);background:rgba(var(--color-green-rgb),.08);border-color:rgba(var(--color-green-rgb),.25);}
.om-outcome-ans:hover{background:rgba(var(--color-green-rgb),.15);border-color:rgba(var(--color-green-rgb),.4);}
.om-outcome-ans.active{background:rgba(var(--color-green-rgb),.18);border-color:var(--color-green);}
.om-outcome-na{color:var(--color-red);background:rgba(var(--color-red-rgb),.06);border-color:rgba(var(--color-red-rgb),.20);}
.om-outcome-na:hover{background:rgba(var(--color-red-rgb),.12);border-color:rgba(var(--color-red-rgb),.35);}
.om-outcome-na.active{background:rgba(var(--color-red-rgb),.15);border-color:var(--color-red);}

/* B3/CO-016 Phase 3 §3.2 — secondary outcome links below the Answered/No-Answer buttons */
.om-call-fallbacks{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;}
.om-call-fallback-link{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;text-decoration:none;letter-spacing:.02em;transition:color var(--dur-fast) var(--ease-out);}
.om-call-fallback-link:hover{color:var(--accent);text-decoration:underline;}
.om-call-fallback-sep{font-size:12px;color:var(--muted);opacity:.5;user-select:none;}

/* ── Call Details Form ── */
.om-call-details{background:rgba(var(--accent-rgb), .5);border-radius:10px;padding:12px 14px;margin-bottom:16px;}
.om-call-details-row{display:flex;gap:8px;margin-bottom:6px;}
.om-call-details-row .om-input{background:var(--glass);border:1px solid rgba(255,255,255,.08);color:#fff;}
.om-call-details-row .om-input::placeholder{color:rgba(255,255,255,.35);}
.om-call-details-row .om-input:focus{border-color:rgba(var(--brand-og-accent-rgb),.4);}
.om-call-date{flex:0 0 130px;}
/* Call form grid — matches quick-call layout */
.om-call-form-grid{display:grid;grid-template-columns:1fr auto auto;gap:10px;margin-bottom:8px;}
.om-call-form-field{display:flex;flex-direction:column;gap: 2px;}
.om-call-form-notes{min-width:0;}
.om-call-form-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.8);}
.om-call-form-input{padding:8px 10px;background:var(--s2);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:12px;font-family:inherit;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);color-scheme:light;}
.om-call-form-input:focus{border-color:var(--brand-og-accent);outline:none;box-shadow:0 0 0 2px rgba(var(--brand-og-accent-rgb),.25);}
.om-call-form-input::placeholder{color:var(--dim);}
.om-call-btn{width:100%;padding:12px;border:none;border-radius:4px;background:var(--color-green);color:#fff;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out);margin-top:8px;}
.om-call-btn:hover{background:#075938;}
.om-followup-hint{background:rgba(var(--brand-og-accent-rgb),.06);border:1px solid rgba(var(--brand-og-accent-rgb),.15);border-radius:4px;padding:6px 10px;font-size:10px;color:var(--text);margin-top:6px;}
.om-call-user-tag{display:flex;align-items:center;gap: 4px;font-size:9px;color:rgba(255,255,255,.4);margin-top:8px;font-family:'JetBrains Mono',monospace;}

/* ── Call History Timeline ── */
.om-timeline-section{background:none;border:none;border-radius:0;padding:0;margin-bottom:8px;overflow:hidden;box-shadow:none;}
.om-timeline-hdr{display:flex;align-items:center;gap:6px;padding:0 0 8px;margin:0 0 8px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border-bottom:1px solid var(--border);background:none;border-radius:0;}
.om-timeline-hdr svg{opacity:.6;}
.om-timeline-count{font-size:9px;background:rgba(255,255,255,.08);padding:1px 6px;border-radius:4px;color:rgba(255,255,255,.6);}
.om-timeline-expand{margin-left:auto;background:none;border:1px solid var(--glass-hover);border-radius:5px;padding:2px 10px;font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.5);cursor:pointer;transition:all .15s;}
.om-timeline-expand:hover{border-color:rgba(255,255,255,.25);color:#fff;background:rgba(255,255,255,.04);}
.om-timeline{padding:6px 14px 10px;}
.om-timeline-empty{padding:6px 0;font-size:10px;color:rgba(255,255,255,.35);text-align:center;font-style:italic;}
.om-timeline-item{display:flex;gap:10px;padding:8px 0;position:relative;transition:background .15s;}
.om-timeline-item:hover{background:rgba(var(--accent-rgb),.03);}
.om-timeline-item+.om-timeline-item{border-top:1px solid rgba(255,255,255,.04);}
.om-timeline-icon{width:20px;height:20px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.om-timeline-icon.icon-ans{background:rgba(15,157,108,.15);color:var(--color-teal);}
.om-timeline-icon.icon-na{background:rgba(224,107,103,.12);color:#E06B67;}
.om-timeline-content{flex:1;min-width:0;}
.om-timeline-top{display:flex;align-items:center;gap:6px;}
.om-timeline-outcome{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;}
.om-timeline-outcome.out-ans{color:var(--color-teal);}
.om-timeline-outcome.out-na{color:#E06B67;}
.om-timeline-date{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);margin-left:auto;}
.om-timeline-user{flex-shrink:0;}
.om-timeline-note{font-size:10px;color:var(--dim);line-height:1.4;margin-top:2px;}

/* ── Call Sidecar Panel ── */
/* R2 #6 — eliminate dark navy chrome on the wide-screen call sidecar.
   Was a navy linear-gradient floating panel; now a flat light surface
   matching the rest of the modal. Hero-zone CTA placement (per spec) is
   reserved for the R2 wave-3 hero rebuild. */
.om-call-sidecar{position:fixed;top:4vh;width:260px;height:auto;max-height:92vh;border-radius:16px;overflow-y:auto;background:var(--s1);border:1px solid var(--border);box-shadow:0 8px 32px rgba(0,0,0,.08);padding:14px;z-index:var(--z-overlay);display:flex;flex-direction:column;gap:10px;box-sizing:border-box;}
.om-call-sidecar .om-call-form-grid{grid-template-columns:1fr;gap:6px;}
.om-call-sidecar .om-call-cta{font-size:12px;height:40px;}
.om-call-sidecar .om-outcome-btn{padding:8px;font-size:10px;}
.om-call-sidecar .om-call-details{padding:8px 10px;}
.om-call-sidecar textarea.om-call-form-input{resize:vertical;min-height:36px;font-family:inherit;}
@media(max-width:1400px){.om-call-sidecar{display:none;}.om{margin-right:0;width:min(95vw,1100px);}}

/* ── Property Row — clean aligned rows (Fix 1) ── */
.om-prop-row{display:flex;align-items:flex-start;gap:8px;padding:8px 0;cursor:default;border-bottom:1px solid var(--border);}
.om-prop-row.om-clickable{cursor:pointer;}
.om-prop-row.om-clickable:hover{background:rgba(var(--accent-rgb),.03);}
.om-prop-row:last-child{border-bottom:none;}
.om-prop-row:hover{background:rgba(var(--accent-rgb),.04);}
.om-prop-row.om-well--deselected{color:var(--muted);}
/* Tract selection circle — kept as a checkbox surrogate but hidden when
   only one tract exists (audit §3.6: decorative on single-tract owners,
   functional only when there are multiple tracts to select between). */
.om-prop-check{flex-shrink:0;width:18px;display:flex;align-items:center;justify-content:center;padding-top:2px;}
.om-what-props--single .om-prop-check{display:none;}
.om-prop-circle{width:9px;height:9px;border:1.5px solid var(--accent);border-radius:50%;position:relative;transition:all .15s;}
.om-prop-row:not(.om-well--deselected) .om-prop-circle{background:var(--accent);}
.om-prop-row.om-well--deselected .om-prop-circle{border-color:var(--muted);background:none;}
.om-prop-main{flex:1;min-width:0;}
.om-prop-primary{display:flex;align-items:baseline;gap:4px;}
.om-prop-left{display:flex;align-items:baseline;gap:4px;min-width:0;flex-shrink:1;overflow:hidden;}
/* Well-name section title — Newsreader 16px (audit §6.4 + D7 spec):
   serif display family for editorial weight on the tract identifier. */
.om-prop-name{font-family:'Newsreader',Georgia,serif;font-size:16px;font-weight:500;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;letter-spacing:-0.01em;}
.om-prop-nums{display:flex;align-items:baseline;gap:6px;margin-left:auto;flex-shrink:0;}
.om-prop-acres{font-size:10px;color:var(--muted);white-space:nowrap;}
.om-prop-nra{font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--text);white-space:nowrap;}
.om-prop-dnra-input{font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--text);border:1px solid var(--border);border-radius:4px;padding:1px 4px;background:transparent;text-align:center;transition:border-color .15s;}
.om-prop-dnra-input:focus{border-color:var(--color-money);outline:none;}
.om-bulk-label{font-size:8px;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700;background:rgba(var(--accent-rgb),.06);padding:2px 6px;border-radius:3px;margin-left:4px;}
.om-prop-offer{font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--offer-green);font-weight:600;white-space:nowrap;}
.om-prop-sep{color:var(--border);font-size:10px;}
.om-prop-dnra-col{display:inline-flex;flex-direction:column;align-items:center;}
.om-prop-top{font-size:8px;color:var(--color-red);font-family:'JetBrains Mono',monospace;font-weight:600;white-space:nowrap;line-height:1;}

/* DNRA cap rebuild Phase 4 (2026-05-15) — per-well cap chips on the owner
   modal property-row secondary line. Spec §10 Phase 4 step 2. Role-aware:
     .om-prop-caps         — wrapper (flex row, gap 6px)
     .om-prop-cap-project  — project ceiling (Owner-set). Display-only.
     .om-prop-cap-agent    — Agent's own binding cap. Display-only for the agent.
     .om-prop-cap-agent-chip — per-agent cap chip in Owner/Mgr/PM view.
                              Clickable → omEditAgentCap to set/clear. */
.om-prop-caps{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:8px;}
.om-prop-cap-project{font-size:10px;font-family:'JetBrains Mono',monospace;font-weight:500;color:var(--muted);white-space:nowrap;line-height:1.2;letter-spacing:.01em;}
.om-prop-cap-agent{font-size:10px;font-family:'JetBrains Mono',monospace;font-weight:600;color:var(--accent);white-space:nowrap;line-height:1.2;letter-spacing:.01em;background:rgba(var(--accent-rgb),.08);padding:2px 6px;border-radius:3px;}
.om-prop-cap-agent-chip{font-size:10px;font-family:'JetBrains Mono',monospace;font-weight:500;color:var(--text);white-space:nowrap;line-height:1.2;letter-spacing:.01em;background:var(--color-surface-2,rgba(0,0,0,.04));padding:2px 6px;border-radius:3px;border:1px solid var(--border);cursor:pointer;transition:background .12s,border-color .12s;user-select:none;}
.om-prop-cap-agent-chip:hover{background:rgba(var(--accent-rgb),.10);border-color:var(--accent);color:var(--accent);}
/* DNRA cap rebuild Phase 6C (2026-05-15) — project-top chip is clickable
   for Owner (calls public.set_property_top_dnra). Inherits .om-prop-cap-project
   typography; adds a hover cursor + subtle accent. */
.om-prop-cap-clickable{cursor:pointer;border-radius:3px;padding:1px 4px;transition:background .12s,color .12s;}
.om-prop-cap-clickable:hover{background:rgba(var(--accent-rgb),.08);color:var(--accent);}
.om-prop-secondary{font-size:10px;color:var(--muted);margin-top:1px;display:flex;align-items:center;gap:4px;}
.om-prop-legal{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;}
.om-prop-info-btn{cursor:pointer;font-size:12px;color:var(--muted);opacity:.5;transition:opacity .15s;padding:0 2px;user-select:none;}
.om-prop-info-btn:hover{opacity:1;color:var(--accent);}
.well-info-popup{position:fixed;z-index:9999;background:#1E293B;color:#E2E8F0;font-size:11px;padding:8px 12px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);max-width:280px;pointer-events:auto;font-family:'JetBrains Mono',monospace;}

/* ── Auto-save indicator ── */
.om-saved-ind{position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:9px;color:var(--color-green);font-weight:600;animation:fadeOut 1.5s forwards;pointer-events:none;}
.om-saved-indicator{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--accent,#00e0d0);opacity:0;animation:omSavedFade 1.8s ease-out forwards;pointer-events:none;}
@keyframes omSavedFade{0%{opacity:1}70%{opacity:1}100%{opacity:0}}
@keyframes fadeOut{0%,70%{opacity:1}100%{opacity:0}}

/* ── Callback presets ── */
.om-cb-presets{display:inline-flex;gap: 2px;margin-left:4px;}
.om-callback-presets{display:flex;gap:6px;margin-top:4px;}
.om-cb-preset{font-size:10px;padding:2px 8px;border-radius:4px;background:var(--glass,rgba(255,255,255,0.06));color:var(--text-secondary,#ccc);border:1px solid var(--border,rgba(255,255,255,0.1));cursor:pointer;font-family:'JetBrains Mono',monospace;font-weight:600;transition:all .12s;}
.om-cb-preset:hover{background:var(--glass-hover,rgba(255,255,255,0.1));border-color:rgba(var(--accent-rgb),.3);}

/* ── Empty state CTA (Fix 13) ── */
.om-who-no-phone{font-size:11px;color:var(--muted);cursor:pointer;font-weight:500;transition:color .15s;}
.om-who-no-phone:hover{color:var(--accent);text-decoration:underline;}

/* ── Call logged flash ── */
.om-timeline-item.om-just-logged{animation:callFlash .5s ease-out;}
.om-timeline-item.just-added{animation:omFlashHighlight 0.4s ease-out;}
@keyframes callFlash{0%{background:rgba(16,185,129,.12)}100%{background:transparent}}
@keyframes omFlashHighlight{from{background:rgba(46,204,113,0.15)}to{background:transparent}}

/* ── Outcome button press feedback ── */
.om-outcome-btn:active{transform:scale(0.95);transition:transform .1s;}
.om-outcome-ans:active,
.om-outcome-na:active{transform:scale(0.95);transition:transform 0.08s ease;}

/* ── $/NRA formatted display (Fix 2) ── */
.om-what-dnra-formatted{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--color-money);font-weight:600;white-space:nowrap;}

/* History Popups — Light theme for readability */
.om-popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);opacity:0;pointer-events:none;transition:opacity .2s;}
.om-popup-overlay.open{opacity:1;pointer-events:auto;}
.om-popup{background:var(--s1);border:1px solid rgba(var(--accent-rgb),.15);border-radius:16px;width:min(90vw,520px);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25),0 4px 12px rgba(0,0,0,.1);}
.om-popup-hdr{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid rgba(var(--accent-rgb),.15);font-family:'JetBrains Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text);font-weight:700;background:var(--s2);border-radius:16px 16px 0 0;}
.om-popup-hdr .om-history-count{background:var(--s3);color:var(--text);}
.om-popup-hdr .om-close{background:var(--s3);border-color:rgba(var(--accent-rgb),.15);color:var(--muted);}
.om-popup-hdr .om-close:hover{color:var(--red);background:rgba(207,34,46,.08);border-color:rgba(207,34,46,.3);}
.om-popup-body{padding:14px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;}
.om-popup-field{display:flex;flex-direction:column;gap:4px;}
.om-popup-label{font-family:'JetBrains Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--muted);}
.om-popup-input{background:var(--s2);border:1px solid rgba(var(--accent-rgb),.15);border-radius:8px;padding:8px 10px;color:var(--text);font-size:12px;font-family:inherit,sans-serif;outline:none;transition:border-color .2s;width:100%;box-sizing:border-box;}
.om-popup-input:focus{border-color:var(--color-green);box-shadow:0 0 0 3px rgba(74,222,128,.1);}
select.om-popup-input{cursor:pointer;}
select.om-popup-input option{background:var(--s2);color:var(--text);}
.om-popup--wide{width:min(90vw,600px);}

/* Edit Offer — Interest Tabs */
.eop-tabs{display:flex;gap:4px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(var(--accent-rgb),.1);flex-wrap:wrap;}
.eop-tab{display:flex;align-items:center;gap: 4px;padding:4px 10px;border-radius:6px;border:1px solid rgba(var(--accent-rgb),.1);background:transparent;color:var(--muted);font-size:11px;font-family:'JetBrains Mono',monospace;cursor:pointer;transition:all .15s;}
.eop-tab:hover{background:rgba(var(--accent-rgb),.06);color:var(--text);}
.eop-tab--active{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.25);color:var(--text);font-weight:600;}
/* .eop-tab-dot removed Track G.2 — leading colored dot before EOP tab label; redundant ornament. */
/* Offer popup dnra overrides for light bg */
.om-offer-form .dnra-display{background:var(--s2);border-color:rgba(var(--color-money-rgb),.15);color:var(--text);}
.om-offer-form .dnra-display:hover{border-color:var(--muted);}
.om-offer-form .dnra-display .dnra-val{color:var(--text);}
.om-offer-form .dnra-display.custom-set .dnra-val{color:var(--color-money);}
.om-offer-form .dnra-input{background:var(--s2);border:1px solid rgba(var(--color-money-rgb),.15);color:var(--text);border-radius:8px;padding:6px 10px;font-size:12px;outline:none;}
.om-offer-form .dnra-input:focus{border-color:var(--color-green);}
.om-offer-form .dnra-confirm{background:var(--color-money);color:#fff;}
.om-offer-form .dnra-cancel{background:var(--s2);color:var(--muted);border-color:var(--border);}
.om-offer-form .dnra-reset{color:var(--red);border-color:var(--border);}
.notes-history{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;}
.note-entry{background:var(--s2);border:1px solid rgba(var(--accent-rgb),.15);border-radius:10px;padding:10px 12px;transition:border-color .15s;}
.note-entry:hover{border-color:rgba(var(--accent-rgb),.3);}
.note-entry-meta{display:flex;align-items:center;gap: 4px;margin-bottom:4px;}
.note-entry-meta span{color:var(--text) !important;}
.note-entry-text{font-size:11px;color:var(--text);line-height:1.6;white-space:pre-wrap;word-break:break-word;}
.note-entry-deleted{opacity:.6;border-color:rgba(224,88,88,.3);}
.note-entry-deleted .note-entry-text{text-decoration:line-through;color:var(--muted);}
.note-deleted-badge{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;color:var(--red);background:rgba(207,34,46,.08);border:1px solid rgba(207,34,46,.18);border-radius:4px;padding:1px 4px;text-transform:uppercase;letter-spacing:.06em;}
.note-edited-badge{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;color:#9A6700;background:rgba(154,103,0,.08);border:1px solid rgba(154,103,0,.18);border-radius:4px;padding:1px 4px;text-transform:uppercase;letter-spacing:.06em;}
.note-entry-deleted-info,.note-entry-edited-info{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);margin-top:4px;}
.modal-col-hdr{display:flex;align-items:center;gap: 6px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(var(--accent-rgb), .4);}
.modal-col-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.modal-col-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.6);}

/* ── ADDRESS ACCORDION ── */
.addr-toggle{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 12px;background:var(--s2);border:1px solid var(--border);
  border-radius:10px;cursor:pointer;transition:all .15s;user-select:none;
  font-size:12px;
}
.addr-toggle:hover{border-color:var(--border2);background:var(--s3);}
.addr-toggle-left{display:flex;align-items:center;gap:8px;min-width:0;}
.addr-toggle-label{font-weight:600;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;}
.addr-toggle-val{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;}
.addr-toggle-caret{color:var(--muted);font-size:10px;transition:transform .2s;flex-shrink:0;}
.addr-toggle.open .addr-toggle-caret{transform:rotate(180deg);}
.addr-body{
  display:none;padding:12px;border:1px solid var(--border);border-top:none;
  border-radius:0 0 10px 10px;background:var(--s2);margin-top:-1px;
}
.addr-body.open{display:block;}
/* Legal description read-only badge */
.legal-display{user-select:text;-webkit-user-select:text;
  background:var(--s2);border:1px solid var(--border);border-radius:10px;
  padding:10px 12px;font-size:11px;color:var(--text);font-family:'JetBrains Mono',monospace;
  line-height:1.6;word-break:break-word;
}
.modal-ftr{padding:14px 28px;border-top:1px solid rgba(var(--accent-rgb), .5);display:flex;gap:8px;justify-content:flex-end;background:var(--s1);flex-shrink:0;border-radius:0 0 22px 22px;position:relative;}
.modal-ftr::before{content:'';position:absolute;top:0;left:28px;right:28px;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.2),transparent);}

/* Form controls */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap: 8px;margin-bottom:8px;}
.form-row.full{grid-template-columns:1fr;}
.f-group{display:flex;flex-direction:column;gap:4px;}
.f-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-weight:700;opacity:.6;}
.f-ctrl{background:var(--s2);border:1px solid var(--border);border-radius:9px;padding:8px 12px;color:var(--text);font-size:12px;font-family:inherit,sans-serif;outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);user-select:text;-webkit-user-select:text;}
/* Brass focus ring — OGLandman brand accent as a secondary interactive
   color alongside the primary navy. Appears across every default form
   input in the app, tying interactive moments to the marketing site
   without reworking the core palette. */
.f-ctrl:focus{border-color:var(--brand-og-accent);box-shadow:0 0 0 3px rgba(var(--brand-og-accent-rgb),.14);}
select.f-ctrl option{background:var(--s2);color:var(--text);}
textarea.f-ctrl{resize:vertical;min-height:56px;}

/* Call log */
.call-timeline{display:flex;flex-direction:column;gap:8px;}
.clog{display:flex;gap:8px;background:var(--s2);border:1px solid rgba(var(--accent-rgb),.15);border-radius:8px;padding:8px 10px;transition:all .15s;}
.clog:hover{border-color:rgba(var(--accent-rgb),.3);}
.clog-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;}
.clog-ans{background:rgba(74,222,128,.15);}
.clog-na{background:rgba(224,107,103,.12);}
.clog-body{flex:1;}
.clog-top{display:flex;align-items:center;gap:6px;margin-bottom:2px;}
.clog-outcome{font-size:10px;font-weight:700;}
.clog-phone{font-family:'SF Mono','Fira Code','Consolas','Monaco',monospace;font-size:9px;color:var(--blue);background:rgba(var(--brand-og-accent-rgb),.08);border:1px solid rgba(var(--brand-og-accent-rgb),.15);border-radius:4px;padding:1px 4px;font-variant-numeric:slashed-zero;}
.clog-date{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);}
.clog-note{font-size:10px;color:var(--text);line-height:1.4;font-weight:500;}
.clog-note-label{font-family:'JetBrains Mono',monospace;font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--muted);}
.clog-user{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:7px;font-weight:700;color:#fff;}

/* Import modal header */
.modal-hdr{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(var(--accent-rgb), .5);background:var(--s1);border-radius:22px 22px 0 0;position:relative;}
.modal-hdr::after{content:'';position:absolute;bottom:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.2),transparent);}
.modal-close{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.modal-close:hover{color:var(--red);background:rgba(248,113,113,.1);border-color:rgba(248,113,113,.3);}
.modal-body{padding:20px 24px;overflow-y:auto;flex:1;}

/* Wells table in modal */
.wells-tbl{width:100%;border-collapse:collapse;font-size:11px;border-radius:10px;overflow:hidden;}
.wells-tbl th{padding:6px 10px;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--s2);border-bottom:1px solid var(--border);}
.wells-tbl td{padding:8px 10px;border-bottom:1px solid var(--border);}
.wells-tbl tr:last-child td{border-bottom:none;}

/* Upload zone */
.upload-zone{border:2px dashed rgba(var(--accent-rgb),.1);border-radius:16px;padding:40px;text-align:center;cursor:pointer;transition:all .25s;background:rgba(255,255,255,.02);position:relative;}
.upload-zone:hover,.upload-zone.drag{border-color:rgba(212,148,58,.5);background:rgba(212,148,58,.04);}
.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.upload-icon{font-size:38px;margin-bottom:10px;}
.upload-title{font-size:16px;font-weight:600;margin-bottom:4px;}
.upload-sub{color:var(--muted);font-size:12px;}
.upload-formats{display:flex;justify-content:center;gap: 6px;margin-top:12px;}
.fmt{padding:2px 10px;border-radius:10px;font-family:'JetBrains Mono',monospace;font-size:9px;background:var(--s2);border:1px solid var(--border);color:var(--muted);}

/* Confirm modal */
.confirm-modal{background:var(--s1);border:1px solid var(--glass-hover);border-radius:16px;width:400px;padding:0;box-shadow:0 24px 64px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.3);overflow:hidden;}
.confirm-modal.wide{width:640px;max-width:95vw;}
.confirm-title{font-size:16px;font-weight:700;padding:18px 24px 12px;margin:0;color:var(--text);border-bottom:1px solid var(--glass);background:var(--s1);}
.confirm-msg{font-size:12px;color:var(--muted);padding:18px 24px;margin:0;line-height:1.6;max-height:70vh;overflow-y:auto;}
.confirm-msg .f-label{color:var(--text);opacity:1;font-size:9px;font-weight:700;letter-spacing:.08em;padding-bottom:4px;border-bottom:1px solid rgba(110,168,254,.25);margin-bottom:2px;}
.confirm-msg .f-ctrl{background:var(--s3);border:1px solid var(--glass-hover);border-radius:8px;padding:8px 12px;color:var(--text);font-size:12px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;}
.confirm-msg .f-ctrl:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px rgba(110,168,254,.12);}
.confirm-msg select.f-ctrl option{background:var(--s1);color:var(--text);}
.confirm-msg textarea.f-ctrl{resize:vertical;min-height:56px;}
/* R7.5 (audit §3.15 P2): cascading-delete preview block. */
.confirm-cascade{padding:0 24px 12px;margin-top:-6px;}
.confirm-cascade-title{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-red, #A31818);margin-bottom:8px;}
.confirm-cascade-list{margin:0;padding:0 0 0 18px;list-style:disc;font-family:'Geist Sans',system-ui,sans-serif;font-size:12px;color:var(--muted);line-height:1.6;}
.confirm-cascade-list li b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums;}

/* R7.5 (audit §3.15 P1): typed-confirm block for permanent deletes. */
.confirm-typed{padding:0 24px 14px;display:flex;flex-direction:column;gap:6px;}
.confirm-typed[hidden]{display:none;}  /* the [hidden] attr was defeated by display:flex — every destructive (no-reason) confirm showed a stray empty text box */
.confirm-typed-hint{font-family:'Geist Sans',system-ui,sans-serif;font-size:12px;color:var(--muted);}
.confirm-typed-hint b{color:var(--color-red, #A31818);font-weight:700;font-family:'JetBrains Mono',monospace;}
.confirm-typed-input{background:var(--s2,#F3F4F6);border:1px solid var(--border,#E5E7EB);border-radius:8px;padding:8px 12px;color:var(--text);font-size:13px;font-family:'JetBrains Mono',monospace;outline:none;transition:border-color .15s,box-shadow .15s;}
.confirm-typed-input:focus{border-color:var(--color-red, #A31818);box-shadow:0 0 0 3px rgba(163,24,24,.10);}

.confirm-btns .btn-primary[disabled],
.confirm-btns .btn-destructive[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none;}

.confirm-btns{display:flex;gap:8px;justify-content:flex-end;padding:14px 24px;border-top:1px solid var(--glass);background:var(--s1);}
.confirm-btns .btn-ghost{background:var(--glass);color:var(--text);border:1px solid var(--border2);border-radius:8px;}
.confirm-btns .btn-ghost:hover{background:var(--glass-hover);border-color:rgba(255,255,255,.2);}
/* .confirm-btns .btn-destructive — flat error treatment per Phase 3 §6.20.
   Was a green-gradient confirm pattern; semantically wrong for destructive
   confirm modals (delete project, delete account). Now matches base
   .btn-destructive. If a positive-confirm dialog is needed, use .btn-confirm. */

/* ── Toast system (R6.2, audit §4.6) ──
   Top-right slide-in, 4s auto-dismiss, max 3 stacked. Variants:
   .toast-success / .toast-error / .toast-info / .toast-warn.
   No border-left stripes per CLAUDE.md frontend-aesthetics ban —
   color signal carried by background tint + 1px border + icon color. */
.toast-box{
  position:fixed;
  top:18px;
  right:18px;
  z-index:var(--z-toast);
  display:flex;
  flex-direction:column;
  gap:8px;
  pointer-events:none;
}
.toast{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:10px;
  background:#FFFFFF;
  border:1px solid rgba(0,0,0,.08);
  font-family:'Geist Sans',system-ui,sans-serif;
  font-size:13px;
  font-weight:500;
  color:#111827;
  box-shadow:0 8px 24px rgba(0,0,0,.10), 0 2px 4px rgba(0,0,0,.04);
  min-width:280px;
  max-width:420px;
  pointer-events:auto;
  animation:toastSlideInRight .25s var(--ease-out-quart, ease-out);
}
.toast-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
/* Color signal via icon + subtle bg tint (audit + CLAUDE.md compliant). */
.toast-success { background:rgba(13,90,43,.04);  border-color:rgba(13,90,43,.20); }
.toast-success .toast-icon{ color:var(--color-completed, #0D5A2B); }
.toast-error   { background:rgba(163,24,24,.04); border-color:rgba(163,24,24,.20); }
.toast-error   .toast-icon{ color:var(--color-red, #A31818); }
.toast-warn    { background:rgba(186,117,23,.05); border-color:rgba(186,117,23,.22); }
.toast-warn    .toast-icon{ color:var(--color-amber-text, #7C4A0A); }
.toast-info    { background:#FFFFFF; border-color:rgba(0,0,0,.08); }
.toast-info    .toast-icon{ color:#6B7280; }

@keyframes toastSlideInRight{
  from { transform:translateX(20px); opacity:0; }
  to   { transform:translateX(0);    opacity:1; }
}
/* Leave animation — fade + slight slide-out. */
.toast--leaving{
  animation:toastSlideOutRight .2s var(--ease-out, ease-out) both;
}
@keyframes toastSlideOutRight{
  from { transform:translateX(0);    opacity:1; }
  to   { transform:translateX(20px); opacity:0; }
}
/* Reduced motion: skip the slide, just fade. */
@media (prefers-reduced-motion: reduce){
  .toast,
  .toast--leaving{
    animation-name:toastFadeOnly;
  }
  @keyframes toastFadeOnly{ from{opacity:0} to{opacity:1} }
}

/* R6.14 (audit §3.4 P1): Contact Book stat eyebrow + industry-pro
   row tint. Compresses 4 stat pills (60px tall) into a single mono-
   caps eyebrow row (24px tall), reclaiming vertical real estate. */
.cb-stat-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 500;
  color: #6B7280;
  letter-spacing: .02em;
  flex-wrap: wrap;
}
.cb-eb-item b {
  color: #111827;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.cb-eb-sep {
  color: #D1D5DB;
}

/* Industry-pro row tint removed 2026-06-13 (user-directed): it was an off-system
   lavender (hsla 255 — purple was purged in R8) and miscued a "deprioritize"
   flag with the same colored-row grammar used for attention states. The brass
   "Pro" badge on the name + the "Hide Industry Pros" toggle carry the signal. */


/* Legacy aliases — keep callers using class="toast-ok"/"toast-err"
   working until they're swept to the new naming. Will be removed
   in a follow-up cleanup. */
.toast-ok  { background:rgba(13,90,43,.04);  border-color:rgba(13,90,43,.20); }
.toast-ok  .toast-icon{ color:var(--color-completed, #0D5A2B); }
.toast-err { background:rgba(163,24,24,.04); border-color:rgba(163,24,24,.20); }
.toast-err .toast-icon{ color:var(--color-red, #A31818); }


/* ══════════════════════════════════════════════════════════════
   EMPTY-STATE PRIMITIVE (Phase R6.3, audit §4.4)

   Canonical component used by Notifications, Deal Pipeline,
   Outreach, PSA Templates, Analytics. Generated by
   renderEmptyState() helper in utils.js.
   ══════════════════════════════════════════════════════════════ */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: 80px;
  padding-bottom: 60px;
  max-width: 480px;
  margin: 0 auto;
  gap: 12px;
}
.empty-state-illustration {
  margin-bottom: 8px;
  opacity: .55;
  color: var(--brand-og-accent, #298084);
  display: flex;
  align-items: center;
  justify-content: center;
}
.empty-state-headline {
  font-family: 'Newsreader', 'Georgia', serif;
  font-style: italic;
  font-size: 36px;
  font-weight: 500;
  letter-spacing: -.01em;
  color: #111827;
  line-height: 1.15;
  margin: 0;
}
.empty-state-body {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 14px;
  color: #4B5563;
  line-height: 1.5;
  max-width: 50ch;
  margin: 0;
}
.empty-state-actions {
  display: flex;
  gap: 12px;
  margin-top: 8px;
  flex-wrap: wrap;
  justify-content: center;
}
.empty-state-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .01em;
  color: #FFFFFF;
  background: var(--brand-og-accent, #298084);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(41,128,132,.28), 0 1px 2px rgba(0,0,0,.05);
  transition: background-color .15s, box-shadow .2s, transform .12s;
}
.empty-state-cta:hover {
  background: var(--brand-og-accent-hover, #1f6669);
  box-shadow: 0 6px 18px rgba(41,128,132,.35), 0 1px 2px rgba(0,0,0,.05);
}
.empty-state-cta:active { transform: translateY(1px); }
.empty-state-cta--ghost {
  color: var(--brand-og-accent, #298084);
  background: rgba(41,128,132,.08);
  box-shadow: none;
  border: 1px solid rgba(41,128,132,.25);
}
.empty-state-cta--ghost:hover {
  background: rgba(41,128,132,.14);
  box-shadow: none;
}
@media (max-width: 768px) {
  .empty-state { padding-top: 48px; }
  .empty-state-headline { font-size: 28px; }
  .empty-state-actions { flex-direction: column; width: 100%; }
  .empty-state-cta { justify-content: center; width: 100%; }
}


/* ══════════════════════════════════════════════════════════════
   KEYBOARD SHORTCUTS HELP OVERLAY (Phase R6.4, audit §4.7)
   ══════════════════════════════════════════════════════════════ */
.kb-help-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1100;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding-top: 12vh;
  opacity: 0;
  transition: opacity .18s ease-out;
}
.kb-help-overlay.open {
  display: flex;
  opacity: 1;
}
.kb-help-card {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  width: min(92vw, 600px);
  box-shadow: 0 24px 48px rgba(0, 0, 0, .20), 0 4px 8px rgba(0, 0, 0, .08);
  overflow: hidden;
  animation: kbHelpIn .2s cubic-bezier(.16, 1, .3, 1) both;
}
@keyframes kbHelpIn {
  from { opacity: 0; transform: translateY(8px) scale(.985); }
  to   { opacity: 1; transform: translateY(0)   scale(1);    }
}
.kb-help-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  border-bottom: 1px solid #F3F4F6;
}
.kb-help-title {
  font-family: 'Newsreader', 'Georgia', serif;
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  color: #111827;
  margin: 0;
  letter-spacing: -.01em;
}
.kb-help-close {
  background: transparent;
  border: 0;
  font-size: 16px;
  color: #9CA3AF;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background-color .12s, color .12s;
}
.kb-help-close:hover { background: #F3F4F6; color: #374151; }
.kb-help-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  padding: 20px 22px 24px;
}
.kb-help-section-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #9CA3AF;
  margin-bottom: 10px;
}
.kb-help-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
}
.kb-help-keys {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
  min-width: 90px;
}
.kb-help-kbd {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  background: #F3F4F6;
  border: 1px solid #E5E7EB;
  border-radius: 4px;
  padding: 2px 6px;
  color: #374151;
  font-weight: 500;
  min-width: 24px;
  text-align: center;
}
.kb-help-desc {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px;
  color: #4B5563;
  line-height: 1.4;
}
@media (max-width: 768px) {
  .kb-help-grid { grid-template-columns: 1fr; gap: 20px; }
  .kb-help-overlay { padding-top: 6vh; }
}

/* Row keyboard-focus indicator (j/k navigation). */
.kb-focused {
  background: rgba(var(--brand-og-accent-rgb, 41, 128, 132), .08) !important;
  outline: 2px solid var(--brand-og-accent, #298084);
  outline-offset: -2px;
  border-radius: 4px;
}

/* Scrollbar */
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.18);border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:rgba(var(--accent-rgb),.35);}

/* Interactive $/NRA field */
.dnra-wrap{position:relative;}
.dnra-display{
  background:var(--s2);border:1px solid var(--border);border-radius:9px;
  padding:8px 12px;cursor:pointer;transition:all .2s;
  display:flex;align-items:center;justify-content:space-between;gap:6px;
}
.dnra-display:hover{border-color:var(--color-money);box-shadow:0 0 0 3px rgba(var(--color-money-rgb),.08);}
.dnra-display .dnra-val{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;}
.dnra-display .dnra-edit-icon{font-size:10px;color:var(--muted);opacity:0;transition:opacity .15s;}
.dnra-display:hover .dnra-edit-icon{opacity:1;}
.dnra-display.custom-set{border-color:rgba(123,160,138,.4);background:rgba(123,160,138,.06);}
.dnra-display.custom-set .dnra-val{color:#0F9D6C;}
.dnra-input-wrap{display:none;align-items:center;gap:6px;}
.dnra-input-wrap.open{display:flex;}
.dnra-input{
  flex:1;background:var(--s2);border:1px solid var(--accent);border-radius:8px;
  padding:8px 10px;color:var(--text);font-size:12px;font-family:'JetBrains Mono',monospace;
  outline:none;
}
.dnra-confirm{padding:6px 12px;border-radius:8px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;cursor:pointer;border:none;font-family:inherit,sans-serif;white-space:nowrap;transition:background .15s;}
.dnra-confirm:hover{background:var(--accent-deep);}
.dnra-cancel{padding:6px 10px;border-radius:8px;background:var(--s3);color:var(--muted);font-size:11px;cursor:pointer;border:1px solid var(--border);transition:all .15s;}
.dnra-cancel:hover{border-color:var(--border2);}
.dnra-reset{padding:4px 8px;border-radius:7px;background:transparent;color:var(--muted);font-size:10px;cursor:pointer;border:1px solid var(--border);white-space:nowrap;transition:all .15s;}
.dnra-reset:hover{color:var(--red);border-color:rgba(192,82,78,.3);}

/* Offer price live update flash */
@keyframes offerFlash{0%{background:rgba(var(--accent-rgb),.25)}100%{background:transparent}}
.offer-flash{animation:offerFlash .5s ease;}

/* Empty state */
.empty-state{text-align:center;padding:50px 20px;color:var(--muted);}
.empty-svg-wrap{display:flex;justify-content:center;margin-bottom:16px;opacity:.7;}
.empty-icon{font-size:34px;margin-bottom:10px;opacity:.4;}
.empty-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px;}
.empty-sub{font-size:12px;}

/* (Legacy PSP block removed — superseded by block at ~line 1234) */

/* ── TIMER SETTINGS (legacy, kept for compat) ── */
.timer-settings-bar{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--s1);border:1px solid var(--border);border-radius:10px;
  padding:10px 16px;margin-bottom:16px;
}
.timer-label{font-size:11px;color:var(--muted);font-weight:600;white-space:nowrap;letter-spacing:.02em;}
.timer-divider{width:1px;height:18px;background:var(--border);flex-shrink:0;}
.timer-group{display:flex;align-items:center;gap:6px;}
.timer-tag{
  display:flex;align-items:center;gap: 4px;
  padding:2px 8px;border-radius:14px;font-size:11px;font-weight:600;white-space:nowrap;
}
.timer-tag-answered{background:rgba(61,220,132,.1);color:var(--green);border:1px solid rgba(61,220,132,.2);}
.timer-tag-noanswer{background:rgba(var(--accent-rgb),.1);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.2);}
.timer-input{
  width:48px;background:var(--s2);border:1px solid var(--border2);border-radius:6px;
  padding:4px 6px;color:var(--text);font-size:12px;font-family:'JetBrains Mono',monospace;
  outline:none;text-align:center;transition:border-color .15s;
}
.timer-input:focus{border-color:var(--accent);}
.timer-unit{font-size:11px;color:var(--muted);}
.timer-save-btn{
  padding:4px 12px;border-radius:6px;background:var(--color-amber);color:#0a0c10;
  font-size:11px;font-weight:700;cursor:pointer;border:none;font-family:inherit,sans-serif;
  transition:background .15s;
}
.timer-save-btn:hover{background:var(--accent-hover);}
.timer-saved{font-size:10px;color:var(--green);font-weight:600;opacity:0;transition:opacity .4s;}
.timer-saved.show{opacity:1;}

/* ── LEAD STATUS BADGES ── */
.ls-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;white-space:nowrap;}
.ls-hot{background:rgba(224,88,88,.1);color:var(--red);border:1px solid rgba(224,88,88,.22);}
.ls-cold{background:rgba(var(--brand-og-accent-rgb),.1);color:var(--blue);border:1px solid rgba(var(--brand-og-accent-rgb),.22);}
.ls-none{background:rgba(var(--accent-rgb),.05);color:var(--muted);border:1px solid rgba(var(--accent-rgb),.12);}

/* ── OWNER NAV BUTTONS ── */
.owner-nav{display:flex;align-items:center;gap:6px;}
.owner-nav-btn{display:flex;align-items:center;gap:4px;padding:6px 14px;border-radius:9px;font-size:11px;font-weight:600;cursor:pointer;background:var(--s2);border:1px solid var(--border);color:var(--muted);transition:all .2s;white-space:nowrap;}
.owner-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--s3);}
.owner-nav-btn:disabled{opacity:.3;cursor:not-allowed;}

#global-callgoal-bar{position:sticky;top:0;z-index:var(--z-sticky);}

/* ── ANALYTICS DASHBOARD SECTION ── */
.analytics-section{background:#f0f2f5;border:1px solid rgba(var(--accent-rgb), .15);border-radius:0 0 14px 14px;margin-top:-16px;margin-left:-26px;margin-right:-26px;margin-bottom:16px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.08);border-top:none;position:relative;z-index:1;}
.analytics-toggle{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;user-select:none;transition:background .12s;background:var(--s1);border-bottom:1px solid rgba(var(--accent-rgb), .15);}
.analytics-toggle:hover{background:#111827;}
.analytics-toggle-label{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent) !important;flex:1;}
.analytics-toggle-caret{font-size:9px;color:rgba(var(--accent-rgb),.65);transition:transform .2s;}
.analytics-toggle.open .analytics-toggle-caret{transform:rotate(180deg);}
.analytics-body{display:none;padding:14px 16px 16px;}
.analytics-body.open{display:block;}
/* KPI cards inside analytics */
.analytics-section .kpi{background:#ffffff;border:1px solid rgba(var(--accent-rgb), .12);border-radius:10px;padding:12px 14px;box-shadow:0 2px 8px rgba(0,0,0,.06);}
/* .analytics-section .kpi::before display:none rule no longer needed —
   the base .kpi::before pseudo was removed entirely in Job 9. */
.analytics-section .kpi-label{font-size:8px;color:var(--s1);letter-spacing:.12em;margin-bottom:8px;}
.analytics-section .kpi-val{color:var(--kc,var(--s1));font-size:26px;}
.analytics-section .kpi-sub{color:#5a6a7a;font-size:10px;margin-top:4px;}
.analytics-section .kpi.clickable:hover{border-color:var(--blue);box-shadow:0 0 12px rgba(var(--brand-og-accent-rgb),.15);}
.analytics-row-label{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--s1);margin-bottom:8px;padding-left:2px;}
.analytics-divider{border:none;border-top:1px solid rgba(var(--accent-rgb), .12);margin:14px 0;}

/* ── Analytics Top KPI Bar ── */
.an-kpi-row{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--glass-hover);margin-bottom:4px;}
.an-kpi-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--glass-hover);}
.an-kpi-item{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0;}
.an-kpi-num{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:700;line-height:1.1;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:#FFFFFF;}
.an-kpi-num .an-kpi-of{font-size:13px;font-weight:500;color:rgba(255,255,255,.45);letter-spacing:0;}
.an-kpi-lbl{font-size:8px;font-weight:600;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.1em;}
.an-kpi-divider{width:1px;height:28px;background:var(--glass-hover);flex-shrink:0;margin:0 4px;}
.an-section-label{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--s1);margin-bottom:10px;padding-left:2px;}
@media(max-width:850px){.an-kpi-bar{flex-wrap:wrap;gap:10px;}.an-kpi-item{flex:0 0 30%;}.an-kpi-divider{display:none;}}

/* ── PROJECT SETTINGS PANEL ── */
/* (removed 2026-06-13) legacy `.pv-meta-block` / `.pv-meta-line` / `--title` —
   dead since the Phase B two-column hero rewrite, but the bare `.pv-meta-line`
   rule (white rgba(255,255,255,.6)) outranked the new hero rule by cascade order
   and rendered the project-title meta line illegible on the light hero. No JS
   references `.pv-meta-block`/`--title`; the live `.pv-meta-line` rule lives at the
   Phase B hero block above (color:var(--muted)). */
/* Tracts bar (below header, on light page bg) */
#pv-tracts-bar{margin-bottom:10px;}
/* ── AOI Pause button ── */
.pv-pause-btn{display:inline-flex;align-items:center;gap: 4px;padding:4px 12px;border-radius:7px;border:1px solid rgba(255,255,255,.15);background:var(--glass);color:var(--muted);font-size:10px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s;flex-shrink:0;white-space:nowrap;}
.pv-pause-btn:hover{background:var(--border2);border-color:rgba(255,255,255,.25);color:var(--text);}
.pv-pause-btn.pv-paused{background:rgba(255,193,7,.12);border-color:rgba(255,193,7,.35);color:#e6a817;}
.pv-pause-btn.pv-paused:hover{background:rgba(255,193,7,.2);border-color:rgba(255,193,7,.5);}
.pv-paused-banner{display:flex;align-items:center;gap:8px;padding:8px 16px;margin-top:8px;border-radius:8px;background:rgba(255,193,7,.08);border:1px solid rgba(255,193,7,.25);color:#e6a817;font-size:11px;font-weight:600;letter-spacing:.01em;}
.dt-paused-tag{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:1px 6px;border-radius:4px;background:rgba(255,193,7,.12);color:#e6a817;flex-shrink:0;}
.psp-edit-input{width:100%;box-sizing:border-box;background:var(--s3);border:1px solid var(--glass-hover);border-radius:6px;padding:6px 8px;font-size:11px;color:var(--text);font-family:inherit;outline:none;transition:border-color .15s;box-shadow:inset 0 1px 3px rgba(0,0,0,.2);}
.psp-edit-input:focus{border-color:var(--color-blue);box-shadow:inset 0 1px 3px rgba(0,0,0,.2),0 0 0 3px rgba(110,168,254,.12);}
.psp-list{display:flex;flex-direction:column;gap: 4px;margin-top:6px;}
.psp-list-item{display:flex;align-items:center;gap:6px;}
.psp-list-item input{flex:1;background:var(--s3);border:1px solid var(--glass-hover);border-radius:6px;padding:4px 8px;font-size:11px;color:var(--text);font-family:inherit;outline:none;transition:border-color .15s;box-shadow:inset 0 1px 3px rgba(0,0,0,.2);}
.psp-list-item input:focus{border-color:var(--color-blue);box-shadow:inset 0 1px 3px rgba(0,0,0,.2),0 0 0 3px rgba(110,168,254,.12);}
.psp-list-del{width:22px;height:22px;border-radius:5px;border:1px solid rgba(255,255,255,.08);background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;transition:all .12s;}
.psp-list-del:hover{border-color:rgba(248,113,113,.4);color:var(--red);background:rgba(248,113,113,.08);}
.psp-add-btn{font-size:9px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.06em;padding:4px 12px;border-radius:6px;border:1px solid rgba(110,168,254,.35);background:rgba(110,168,254,.12);color:var(--color-blue);cursor:pointer;transition:all .15s;box-shadow:0 2px 6px rgba(110,168,254,.12);}
.psp-add-btn:hover{background:rgba(110,168,254,.22);border-color:rgba(110,168,254,.6);box-shadow:0 3px 10px rgba(110,168,254,.2);}
/* ── Unified property editor (legal sections + wells) ── */
.psp-edit-btn{width:24px;height:24px;border-radius:6px;border:1px solid var(--border2);background:var(--glass);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.psp-edit-btn:hover{background:rgba(110,168,254,.12);border-color:rgba(110,168,254,.3);color:var(--color-blue);}
.psp-edit-btn.active{background:rgba(110,168,254,.15);border-color:var(--color-blue);color:var(--color-blue);}
.psd-edit-action{width:22px;height:22px;border-radius:5px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0;}
.psd-edit-action:hover{background:rgba(110,168,254,.12);border-color:rgba(110,168,254,.3);color:var(--color-blue);}
.psd-edit-danger:hover{background:rgba(234,134,143,.1);border-color:rgba(234,134,143,.3);color:var(--color-red);}
.psd-county-list{display:flex;flex-direction:column;gap:4px;margin-top:6px;}
.psd-county-item{display:flex;align-items:center;gap:8px;background:var(--s3);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:6px 10px;box-shadow:0 1px 4px rgba(0,0,0,.15);}
.psd-county-name{font-size:11px;font-weight:600;color:var(--text);flex:1;}
.psd-county-input{flex:1;background:transparent;border:none;border-bottom:1px solid transparent;padding:2px 0;font-size:11px;font-weight:600;color:var(--text);font-family:inherit;outline:none;transition:border-color .15s;}
.psd-county-input:focus{border-bottom-color:var(--color-blue);}
.psd-prop-list{display:flex;flex-direction:column;gap:4px;margin-top:6px;}
.psd-prop-card{background:var(--s3);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:6px 10px;cursor:pointer;user-select:none;box-shadow:0 2px 6px rgba(0,0,0,.25);}
.psd-prop-card--unassigned{background:#232830;border-color:var(--glass);}
.psd-prop-card-hdr{display:flex;align-items:center;gap:4px;}
.psd-prop-card-hdr:hover{opacity:.85;}
.psd-prop-legal-input,.psd-prop-well-input{cursor:text;user-select:text;}
.psd-prop-chevron{font-size:9px;color:var(--muted);flex-shrink:0;width:12px;text-align:center;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s;}
.psd-prop-chevron svg{display:block;}
.psd-prop-card--open .psd-prop-chevron{transform:rotate(90deg);}
.psd-prop-card-left{display:flex;align-items:center;gap: 4px;flex:1;min-width:0;}
.psd-prop-acres{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;color:var(--color-green);white-space:nowrap;flex-shrink:0;}
.psd-prop-legal-input{flex:1;background:transparent;border:none;border-bottom:1px solid transparent;border-radius:0;padding:2px 0;font-size:11px;font-weight:600;color:var(--text);font-family:inherit;outline:none;transition:border-color .15s;}
.psd-prop-legal-input:focus{border-bottom-color:var(--color-blue);}
.psd-prop-well-count{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:600;color:var(--muted);background:var(--glass);border-radius:3px;padding:1px 4px;flex-shrink:0;}
.psd-prop-unassigned-label{font-size:10px;font-weight:500;font-style:italic;color:var(--muted);flex:1;}
.psd-prop-body{padding:4px 0 2px 14px;}
.psd-unassigned-tools{display:flex;flex-direction:column;gap:6px;margin:2px 0 8px;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:7px;background:rgba(255,255,255,.035);}
.psd-unassigned-copy{font-size:10px;line-height:1.35;color:rgba(255,255,255,.72);}
.psd-unassigned-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.psd-unassigned-county{min-width:180px;background:var(--s3);border:1px solid rgba(255,255,255,.1);border-radius:5px;padding:5px 8px;font-size:10px;color:var(--text);font-family:inherit;outline:none;cursor:pointer;}
.psd-unassigned-county:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px rgba(110,168,254,.12);}
.psd-unassigned-county option{background:var(--s1);color:var(--text);}
.psd-unassigned-apply{border:1px solid rgba(var(--brand-og-accent-rgb),.35);background:rgba(var(--brand-og-accent-rgb),.12);color:var(--brand-og-accent);border-radius:5px;padding:5px 9px;font-size:9px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.04em;cursor:pointer;}
.psd-unassigned-apply:hover:not(:disabled){background:rgba(var(--brand-og-accent-rgb),.2);border-color:rgba(var(--brand-og-accent-rgb),.55);}
.psd-unassigned-apply:disabled{opacity:.45;cursor:not-allowed;}
.psd-unassigned-note{font-size:9px;line-height:1.35;color:rgba(255,255,255,.5);}
.psd-prop-acres-row,.psd-prop-meta-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.psd-prop-section-county{background:var(--glass);border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:2px 6px;font-size:9px;color:var(--muted);font-family:inherit;outline:none;cursor:pointer;}
.psd-prop-section-county:focus{border-color:var(--color-blue);}
.psd-prop-section-county option{background:var(--s1);color:var(--text);}
.psd-prop-acres-lbl{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.psd-prop-acres-input{width:80px;background:var(--s3);border:1px solid var(--glass-hover);border-radius:5px;padding:2px 6px;font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--text);outline:none;transition:border-color .15s;}
.psd-prop-acres-input:focus{border-color:var(--color-blue);}
.psd-prop-wells{display:flex;flex-wrap:wrap;gap: 2px;padding-left:2px;}
.psd-prop-well-row{display:inline-flex;align-items:center;gap: 2px;background:var(--glass);border:1px solid var(--glass);border-radius:4px;padding:1px 2px 1px 4px;box-shadow:0 1px 3px rgba(0,0,0,.15);}
/* .psd-prop-well-dot removed Track G.2 (2026-05-06) — leading well-color marker
   in Project Settings → Property & Wells row. The well-name input is right next
   to the dot; text alone identifies the well. Industry comparison: Linear/Stripe
   form rows don't use leading colored ornaments next to editable inputs. */
.psd-prop-well-input{background:transparent;border:none;padding:1px 2px;font-size:9.5px;color:var(--text);font-family:inherit;outline:none;width:auto;min-width:60px;max-width:120px;}
.psd-prop-well-input:focus{color:#fff;}
.psd-prop-well-county,.psd-prop-well-op{background:var(--glass);border:1px solid rgba(255,255,255,.08);border-radius:3px;padding:1px 4px;font-size:8px;color:var(--muted);font-family:inherit;outline:none;cursor:pointer;max-width:80px;}
.psd-prop-well-county:focus,.psd-prop-well-op:focus{border-color:var(--color-blue);}
.psd-prop-well-county option,.psd-prop-well-op option{background:var(--s1);color:var(--text);}
.psd-move-btn{width:14px;height:14px;font-size:10px;line-height:1;border:none;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.4;transition:opacity .12s;}
.psd-move-btn:hover{opacity:1;color:var(--text);}
.psd-well-del{width:14px;height:14px;font-size:9px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.5;transition:opacity .12s;}
.psd-well-del:hover{opacity:1;color:var(--red);}
.psd-move-menu{position:absolute;right:0;top:100%;z-index:50;min-width:160px;max-width:240px;background:var(--s1);border:1px solid var(--border2);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.4);padding:4px 0;margin-top:2px;}
.psd-move-option{padding:4px 10px;font-size:10px;color:var(--text);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;justify-content:space-between;gap:6px;border-radius:4px;margin:0 4px;}
.psd-move-option:hover{background:rgba(255,255,255,.08);}
.psd-move-current{opacity:.4;cursor:default;}
.psd-move-current:hover{background:transparent;}
.psd-move-check{font-size:9px;color:#0F9D6C;}
.psd-move-section-label{padding:4px 10px 2px;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.psd-move-divider{height:1px;background:var(--glass);margin:4px 0;}
.psd-add-well-btn{margin-top:2px;font-size:8px;font-weight:600;font-family:'JetBrains Mono',monospace;letter-spacing:.04em;padding:1px 4px;border-radius:3px;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:color .12s;align-self:flex-start;}
.psd-add-well-btn:hover{color:var(--text);}
.psp-body{flex:1;overflow-y:auto;padding:20px;background:var(--s1);}
.psp-scope-selector{margin-bottom:12px;}
.psp-scope-level{display:flex;gap:6px;}
.psp-scope-select{flex:1;background:var(--s3);border:1px solid var(--glass-hover);border-radius:6px;padding:6px 10px;font-size:11px;font-weight:600;color:var(--text);font-family:inherit;outline:none;cursor:pointer;transition:border-color .15s;box-shadow:inset 0 1px 3px rgba(0,0,0,.2);}
.psp-scope-select:focus{border-color:var(--color-blue);box-shadow:inset 0 1px 3px rgba(0,0,0,.2),0 0 0 3px rgba(110,168,254,.12);}
.psp-scope-select option{background:var(--s1);color:var(--text);}
.psp-pricing-note{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--accent);padding:6px 10px;margin-top:6px;background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.15);border-radius:6px;}
.psp-pricing-note svg{flex-shrink:0;color:var(--accent);}
.psp-pricing-ok{color:var(--color-green);background:rgba(117,183,152,.06);border-color:rgba(117,183,152,.15);}
.psp-pricing-ok svg{color:var(--color-green);}
.psp-scope-bar{background:var(--s3);border:1px solid rgba(110,168,254,.2);border-radius:8px;padding:8px 14px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;}
.psp-scope-label{font-size:11px;color:var(--text);}
.psp-scope-label strong{color:var(--color-blue);}
.psp-scope-count{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);margin-left:6px;}
.psp-scope-avg{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--color-green);font-weight:600;}
.psp-group-hdr{font-size:11px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.08em;padding:12px 0 8px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:8px;}
.psp-group-hdr:not(:first-child){margin-top:8px;padding-top:16px;border-top:1px solid var(--glass);}
.psp-section{margin-bottom:24px;}
.psp-sec-title{font-family:'JetBrains Mono',monospace;font-size:8.5px;color:var(--color-blue);text-transform:uppercase;letter-spacing:.12em;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid rgba(110,168,254,.2);font-weight:600;}
.psp-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.psp-label{font-size:11px;color:#EAEAEA;font-weight:600;flex:1;white-space:nowrap;}
.psp-tag{display:flex;align-items:center;gap: 4px;padding:4px 12px;border-radius:14px;font-size:11px;font-weight:600;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.2);}
.psp-tag-answered{background:rgba(61,220,132,.12);color:var(--green);border:1px solid rgba(61,220,132,.25);}
.psp-tag-noanswer{background:rgba(var(--accent-rgb),.12);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.25);}
.psp-input{width:76px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 6px;color:#EAEAEA;font-size:12px;font-family:'JetBrains Mono',monospace;outline:none;text-align:center;transition:border-color .15s;}
.psp-input:focus{border-color:var(--accent);}
.psp-unit{font-size:11px;color:rgba(255,255,255,.7);}
.psp-toggle{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0;}
.psp-toggle input{opacity:0;width:0;height:0;}
.psp-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border2);border-radius:18px;transition:.2s;}
.psp-toggle-slider::before{content:'';position:absolute;height:14px;width:14px;left:2px;bottom:2px;background:rgba(255,255,255,.5);border-radius:50%;transition:.2s;}
.psp-toggle input:checked+.psp-toggle-slider{background:rgba(var(--accent-rgb),.4);}
.psp-toggle input:checked+.psp-toggle-slider::before{transform:translateX(14px);background:var(--accent);}
.psp-save-btn{width:100%;padding:8px;border-radius:4px;background:var(--brand-og-accent);color:#fff;font-size:12px;font-weight:700;cursor:pointer;border:none;font-family:inherit;margin-top:4px;transition:background-color var(--dur-fast) var(--ease-out);}
.psp-save-btn:hover{background:var(--brand-og-accent-hover);}
.psp-delete-btn{width:100%;padding:8px;border-radius:8px;background:rgba(192,82,78,.08);color:var(--red);font-size:11px;font-weight:600;cursor:pointer;border:1px solid rgba(192,82,78,.2);font-family:inherit,sans-serif;margin-top:8px;transition:all .15s;}
.psp-delete-btn:hover{background:rgba(192,82,78,.18);border-color:rgba(192,82,78,.4);}

/* R7.2 (audit §3.14 P0): Project Settings danger zone disclosed by
   <details>. Move Delete out of the footer button row so a slip-
   finger doesn't permanently destroy the project. */
.psp-danger-zone {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.psp-danger-summary {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-red, #A31818);
  cursor: pointer;
  padding: 8px 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
  user-select: none;
}
.psp-danger-summary::-webkit-details-marker { display: none; }
.psp-danger-icon {
  display: inline-block;
  font-size: 11px;
  transition: transform .12s;
}
.psp-danger-zone[open] .psp-danger-icon {
  transform: rotate(90deg);
}
.psp-danger-body {
  padding: 8px 0 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.psp-danger-warning {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: var(--muted, #4B5563);
  line-height: 1.45;
  margin: 0;
}
.psp-audit-link {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: var(--brand-og-accent, #298084);
  text-decoration: none;
  cursor: pointer;
  align-self: flex-start;
}
.psp-audit-link:hover { text-decoration: underline; }
.color-swatch{width:22px;height:22px;border-radius:50%;cursor:pointer;transition:transform .15s,box-shadow .15s;border:2px solid transparent;}
.color-swatch:hover{transform:scale(1.2);}
.color-swatch.active{border-color:var(--bg);}
.psp-saved{font-size:10px;color:var(--green);font-weight:600;opacity:0;transition:opacity .4s;text-align:center;margin-top:6px;}
.psp-saved.show{opacity:1;}
.psp-groupby-toggle{display:flex;gap:0;border:1px solid rgba(255,255,255,.15);border-radius:8px;overflow:hidden;margin-top:6px;box-shadow:0 2px 6px rgba(0,0,0,.25);}
.psp-groupby-btn{flex:1;padding:6px 10px;font-size:10px;font-weight:600;font-family:'JetBrains Mono',monospace;letter-spacing:.02em;background:transparent;border:none;color:rgba(255,255,255,.7);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap: 4px;transition:all .15s;}
.psp-groupby-btn:not(:last-child){border-right:1px solid rgba(255,255,255,.15);}
.psp-groupby-btn:hover{background:rgba(255,255,255,.08);color:#FFFFFF;}
.psp-groupby-btn.active{background:rgba(110,168,254,.15);color:var(--color-blue);border-color:rgba(110,168,254,.3);box-shadow:inset 0 0 0 1px rgba(110,168,254,.2);}
.psp-groupby-hint{font-size:9px;color:rgba(255,255,255,.5);margin-top:4px;font-style:italic;}
.psp-goal-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.psp-progress-bar{flex:1;height:6px;background:var(--s3);border-radius:3px;overflow:hidden;min-width:80px;}
.psp-progress-fill{height:100%;border-radius:3px;transition:width .4s;background:var(--brand-og-accent);}


/* ── PER-PAGE SELECTOR ── */
.per-page-sel{background:var(--glass-hover);border:1px solid rgba(255,255,255,.2);border-radius:7px;padding:4px 8px;color:#FFFFFF;font-size:10px;font-family:'JetBrains Mono',monospace;outline:none;cursor:pointer;}

/* ── IMPORT REVIEW PAGE ── */
.ir-nra-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:10px;background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.25);margin-bottom:14px;}
.ir-nra-icon{font-size:18px;flex-shrink:0;color:var(--accent);}
.ir-nra-text{font-size:11px;color:rgba(255,255,255,.85);line-height:1.5;}
.ir-nra-text strong{color:var(--accent);}
.ir-nra-text code{font-family:'JetBrains Mono',monospace;font-size:10px;background:rgba(var(--accent-rgb), .4);padding:1px 4px;border-radius:4px;color:var(--blue);}
.ir-stats{display:flex;align-items:center;gap:16px;margin-bottom:12px;padding:8px 14px;background:rgba(var(--accent-rgb), .3);border:1px solid rgba(var(--accent-rgb), .5);border-radius:9px;font-size:11px;color:rgba(255,255,255,.6);flex-wrap:wrap;}
.ir-stat{display:flex;align-items:center;gap: 4px;}
.ir-stat b{color:#FFFFFF;font-family:'JetBrains Mono',monospace;font-size:12px;}
/* Bulk edit controls */
.ir-bulk{background:rgba(var(--accent-rgb), .2);border:1px solid rgba(var(--accent-rgb), .4);border-radius:10px;padding:14px 16px;margin-bottom:12px;}
.ir-bulk-section{margin-bottom:0;}
.ir-bulk-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-family:'JetBrains Mono',monospace;margin-bottom:8px;}
.ir-bulk-divider{height:1px;background:var(--border);margin:12px 0;}
.ir-bulk-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;}
.ir-bulk-field{display:flex;flex-direction:column;gap:4px;}
.ir-bulk-label{font-size:10px;font-weight:600;color:rgba(255,255,255,.6);}
.ir-bulk-input-row{display:flex;gap:6px;align-items:center;}
.ir-bulk-input{flex:1;background:rgba(11,17,33,.6);border:1px solid rgba(var(--accent-rgb), .5);border-radius:6px;padding:6px 10px;font-size:11px;color:#FFFFFF;font-family:inherit;outline:none;transition:border-color .15s;}
.ir-bulk-input:focus{border-color:var(--accent);}
.ir-bulk-mono{font-family:'JetBrains Mono',monospace;}
.ir-bulk-apply{padding:6px 12px;border-radius:4px;border:1px solid var(--brand-og-accent);background:rgba(var(--brand-og-accent-rgb),.10);color:var(--brand-og-accent);font-size:10px;font-weight:700;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);}
.ir-bulk-apply:hover{background:var(--brand-og-accent);color:#fff;}
.ir-remove-wi-btn{padding:4px 10px;border-radius:4px;border:1px solid rgba(var(--color-red-rgb),.25);background:rgba(var(--color-red-rgb),.08);color:var(--color-red);font-size:10px;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out);}
.ir-remove-wi-btn:hover{background:rgba(248,113,113,.18);border-color:rgba(248,113,113,.4);}
.ir-config{display:grid;grid-template-columns:1fr auto 1.5fr auto 1fr;gap:0;background:rgba(var(--accent-rgb), .2);border:1px solid rgba(var(--accent-rgb), .4);border-radius:10px;padding:14px 0;margin-bottom:12px;}
.ir-config-col{display:flex;flex-direction:column;gap:8px;padding:0 16px;}
.ir-config-divider{width:1px;background:rgba(var(--accent-rgb), .5);margin:0;}
.ir-config select{appearance:auto;cursor:pointer;background:rgba(11,17,33,.6);border:1px solid rgba(var(--accent-rgb), .5);color:#FFFFFF;border-radius:6px;padding:6px 10px;font-size:11px;}
.ir-prop-tabs{display:flex;gap:0;overflow-x:auto;margin-bottom:-1px;padding:0 2px;}
.ir-prop-tab{padding:6px 14px;border:1px solid rgba(var(--accent-rgb), .4);border-bottom:none;border-radius:8px 8px 0 0;background:transparent;color:rgba(255,255,255,.5);font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.04em;cursor:pointer;white-space:nowrap;transition:all .12s;position:relative;}
.ir-prop-tab:hover{color:#FFFFFF;background:rgba(var(--accent-rgb), .3);}
.ir-prop-tab.active{background:var(--s1);color:#FFFFFF;border-color:rgba(var(--accent-rgb), .6);z-index:1;}
.ir-prop-tab .ir-tab-count{font-size:9px;color:rgba(255,255,255,.4);margin-left:4px;font-weight:400;}
.ir-prop-tab .ir-tab-dupes{font-size:9px;color:var(--accent);margin-left:4px;}
.ir-prop-tab-dupe{border-color:rgba(var(--accent-rgb),.35) !important;background:rgba(var(--accent-rgb),.06);}
.ir-prop-tab-dupe.active{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.45) !important;}
.ir-tab-dupe-label{display:block;font-size:8px;font-weight:600;color:var(--accent);margin-top:1px;white-space:nowrap;}
.pv-bulk-wrap{position:relative;display:inline-block;}
.pv-bulk-btn{padding:4px 12px;border-radius:4px;border:1px solid rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.10);color:var(--color-secondary-hover);font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.06em;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);} /* R8 L7: was --accent (teal), failed 3.72:1 → --color-secondary-hover (darker teal) passes AA */
.pv-bulk-btn:hover{border-color:rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.18);}
.pv-bulk-panel{display:none;position:absolute;top:100%;left:0;margin-top:4px;padding:10px 12px;background:var(--s2);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.35);z-index:20;flex-direction:column;gap:8px;min-width:220px;}
.pv-bulk-panel.open{display:flex;}
.pv-bulk-field{display:flex;align-items:center;gap:6px;}
.pv-bulk-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:'JetBrains Mono',monospace;white-space:nowrap;min-width:38px;}
.pv-bulk-input{width:90px;background:var(--s1);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:11px;color:var(--text);font-family:'JetBrains Mono',monospace;text-align:right;outline:none;transition:border-color .15s;}
.pv-bulk-input:focus{border-color:var(--accent);}
.pv-bulk-apply{padding:4px 10px;border-radius:5px;border:1px solid var(--accent);background:rgba(var(--accent-rgb),.08);color:var(--accent);font-size:9px;font-weight:700;font-family:inherit,sans-serif;cursor:pointer;white-space:nowrap;transition:all .15s;}
.pv-bulk-apply:hover{background:var(--accent);color:#fff;}
.pv-well-detail{margin-top:6px;max-width:100%;}
.pv-wd-row{display:inline-flex;align-items:center;gap: 4px;padding:4px 10px;border-radius:6px;background:rgba(var(--accent-rgb),.05);border:1px solid rgba(var(--accent-rgb),.1);white-space:nowrap;transition:border-color .15s,background .15s;}
.pv-wd-row:hover{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.2);}
.pv-wd-label{font-size:9px;font-weight:600;font-family:'JetBrains Mono',monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;flex-shrink:0;}
.pv-wd-val{font-size:11px;color:var(--text);font-weight:500;display:flex;flex-wrap:nowrap;gap:4px;align-items:center;overflow:hidden;}
.pv-wd-tag{display:inline-block;padding:2px 6px;border-radius:4px;background:rgba(var(--accent-rgb),.08);font-size:10px;color:var(--text);white-space:nowrap;font-weight:500;}
/* .pv-wd-dot removed Track G.2 — strict-dead, 0 JS/HTML refs. */
.ir-table-wrap{overflow-x:auto;overflow-y:auto;max-height:calc(94vh - 480px);border:4px solid var(--s1);border-radius:14px;background:#f9fafb;}
.ir-table{width:100%;border-collapse:collapse;font-size:11px;min-width:1200px;}
.ir-table thead{position:sticky;top:0;z-index:2;}
.ir-table th{background:var(--blue);border-bottom:none;padding:10px 6px;text-align:left;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#FFFFFF;font-family:'JetBrains Mono',monospace;white-space:nowrap;position:sticky;top:0;}
.ir-table td{padding:4px 4px;border-bottom:1px solid rgba(0,0,0,.08);vertical-align:middle;color:#111111;background:#f9fafb;}
.ir-table tr:nth-child(even) td{background:var(--bg);}
.ir-table tr:hover td{background:#dde3ea;}
.ir-table input[type="text"],.ir-table input[type="number"]{
  width:100%;box-sizing:border-box;background:#FFFFFF;border:1px solid rgba(0,0,0,.15);
  border-radius:5px;padding:4px 6px;font-size:11px;color:#111111;font-family:inherit;
  outline:none;transition:border-color .15s;
}
.ir-table input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(var(--brand-og-accent-rgb),.2);}
.ir-table input[type="number"]{font-family:'JetBrains Mono',monospace;text-align:right;}
.ir-table .ir-col-num{width:36px;text-align:center;}
.ir-table .ir-col-name{min-width:160px;}
.ir-table .ir-col-type{width:60px;}
.ir-table .ir-col-pct{min-width:120px;}
.ir-table .ir-col-acres{min-width:120px;}
.ir-table .ir-col-nra{min-width:120px;}
.ir-table .ir-col-dnra{min-width:100px;}
.ir-table .ir-col-offer{min-width:100px;}
.ir-table .ir-col-addr{min-width:180px;}
.ir-table .ir-col-contact{min-width:110px;}
.ir-table .ir-col-del{width:32px;text-align:center;}
.ir-del-btn{width:24px;height:24px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--dim);cursor:pointer;font-size:12px;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);display:flex;align-items:center;justify-content:center;}
.ir-del-btn:hover{border-color:rgba(var(--color-red-rgb),.40);color:var(--color-red);background:rgba(var(--color-red-rgb),.06);}
.ir-row-flagged{background:rgba(234,134,143,.04) !important;}
/* Confidence-tier row signals — bg tint strengthened (.06→.10, .04→.08)
   to compensate for removed BAN-1 left stripe (R8 L4 Job 3). */
.ir-row-low-conf{background:rgba(234,134,143,.10) !important;}
.ir-row-med-conf{background:rgba(var(--accent-rgb),.08) !important;}
.ir-cell-flagged{position:relative;}
/* .ir-cell-flagged::after corner dot removed Track G.2 — row bg-tint (.ir-row-flagged) already signals flagged state; corner dot was redundant. */
.ir-calculated{background:rgba(15,157,108,.06) !important;border-color:rgba(15,157,108,.35) !important;color:#0F9D6C !important;font-weight:600;}

/* ── SPIN ANIMATION ── */
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* ── SKELETON LOADING ── */
@keyframes skeletonPulse{0%{opacity:.06}50%{opacity:.12}100%{opacity:.06}}
.skeleton{background:rgba(var(--accent-rgb),.08);border-radius:var(--r-md);animation:skeletonPulse 1.8s ease-in-out infinite;}
.skeleton-row{display:flex;gap:12px;padding:12px;border-bottom:1px solid var(--border);}
.skeleton-cell{height:14px;border-radius:4px;background:rgba(var(--accent-rgb),.06);animation:skeletonPulse 1.8s ease-in-out infinite;}
.skeleton-cell.w-sm{width:60px;}.skeleton-cell.w-md{width:120px;}.skeleton-cell.w-lg{width:200px;}.skeleton-cell.w-xl{flex:1;}
.skeleton-kpi{height:88px;border-radius:12px;background:var(--s1);border:1px solid var(--border);animation:skeletonPulse 1.8s ease-in-out infinite;}

/* ── Owner Modal Skeleton Lines ── */
.om-skeleton-line{height:14px;border-radius:4px;background:linear-gradient(90deg,var(--glass,rgba(255,255,255,0.06)) 25%,rgba(255,255,255,0.1) 50%,var(--glass,rgba(255,255,255,0.06)) 75%);background-size:200% 100%;animation:omShimmer 1.5s infinite;margin-bottom:8px;}
.om-skeleton-line:nth-child(2){width:75%;}
.om-skeleton-line:nth-child(3){width:60%;}
@keyframes omShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── STAGGERED CARD ENTRANCE ── */
@keyframes cardFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.kpi{animation:cardFadeIn .3s var(--ease-out) both;}
.kpi:nth-child(1){animation-delay:0ms;}
.kpi:nth-child(2){animation-delay:30ms;}
.kpi:nth-child(3){animation-delay:60ms;}
.kpi:nth-child(4){animation-delay:90ms;}
.kpi:nth-child(5){animation-delay:120ms;}
.kpi:nth-child(6){animation-delay:150ms;}
.kpi:nth-child(7){animation-delay:180ms;}
.kpi:nth-child(8){animation-delay:210ms;}
.proj-card{animation:cardFadeIn .25s var(--ease-out) both;}
.proj-card:nth-child(1){animation-delay:0ms;}
.proj-card:nth-child(2){animation-delay:40ms;}
.proj-card:nth-child(3){animation-delay:80ms;}
.proj-card:nth-child(4){animation-delay:120ms;}
.proj-card:nth-child(5){animation-delay:160ms;}

/* (Old toastSlideUp animation removed — replaced by toastSlideInRight
   in the R6.2 toast system above. Top-right slide-in matches audit §4.6.) */

/* ── RESPONSIVE KPI BREAKPOINTS ── */
@media(max-width:1200px){.kpi-row-5{grid-template-columns:repeat(3,1fr);}}
@media(max-width:1000px){.kpi-row-4{grid-template-columns:repeat(2,1fr);}.kpi-row-5{grid-template-columns:repeat(2,1fr);}}
/* R8 Layer 5 P0 fix: removed stale .sidebar position:relative override that
   was beating layout.css:770's .sidebar{position:fixed;...} mobile rule and
   pushing main-content 844px below the viewport on mobile (sidebar layout
   block stayed in flow even when transformed off-screen). KPI grid collapse
   preserved; the .app grid-template-columns:1fr at 850px is redundant with
   layout.css:768's max-width:768px rule but harmless. */
@media(max-width:850px){.kpi-row-4{grid-template-columns:repeat(2,1fr);}.kpi-row-5{grid-template-columns:repeat(2,1fr);}.kpi-row-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.kpi-row-4,.kpi-row-5,.kpi-row-3{grid-template-columns:1fr;}}

/* ── EMPTY STATES ── */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;min-height:200px;}
.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.3;line-height:1;}
.empty-state-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:8px;}
.empty-state-desc{font-size:12px;color:var(--muted);max-width:320px;line-height:1.6;margin-bottom:20px;}
.empty-state .btn{margin-top:4px;}

/* ── AUTH OVERLAY (Phase 2 §6.2 — flat light treatment) ──
   Card lifted on page surface, teal flat primary, ghost secondary,
   teal full-opacity link. No green gradients, no white-alpha
   placeholders, no heavy dark shadow. */
.auth-overlay{position:fixed;inset:0;z-index:var(--z-auth);background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .3s;}
body.auth-shell-hidden .app,
body.auth-shell-hidden #qc-host,
body:has(#auth-overlay:not(.hidden)) .app,
body:has(#auth-overlay:not(.hidden)) #qc-host{visibility:hidden;}
/* P1-30 (2026-05-23): sign-in button spinner during in-flight auth.
   Reuses the existing @keyframes spin defined further up in this file. */
.auth-btn-spinner{display:inline-block;vertical-align:-3px;margin-right:8px;animation:spin 1s linear infinite;}
.auth-btn:disabled{opacity:.7;cursor:wait;}
.auth-btn.is-disabled{opacity:.5;cursor:not-allowed;}
/* P1-20 (empty-state-onboarding §A-01): also drop the overlay from layout when
   hidden — previously only opacity:0 + pointer-events:none, which kept the
   overlay rendered behind the onboarding wizard. If the wizard were ever
   dismissed (localStorage race, back-button), the sign-in form would re-appear. */
.auth-overlay.hidden{opacity:0;pointer-events:none;visibility:hidden;display:none;}
.auth-card{background:var(--s1);border:1px solid var(--border);border-radius:8px;padding:40px 36px;width:380px;max-width:90vw;box-shadow:var(--shadow-md);}
.auth-logo{text-align:center;margin-bottom:28px;}
.auth-brand-title{font-family:'Newsreader','Georgia',serif;font-size:32px;font-weight:500;color:var(--text);letter-spacing:-.02em;line-height:1;margin-top:10px;}
.auth-brand-byline{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;color:var(--muted);margin-top:6px;padding-left:.35em;}
.auth-brand-byline .auth-brand-og{color:var(--brand-og-accent);font-weight:700;}
.auth-tagline{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:14px;}
.auth-title{font-size:18px;font-weight:700;color:var(--text);margin:0 0 18px;text-align:center;}
.auth-input{width:100%;padding:10px 14px;margin-bottom:10px;background:var(--s2);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box;}
.auth-input:focus{border-color:var(--brand-og-accent);box-shadow:0 0 0 2px rgba(var(--brand-og-accent-rgb),.25);}
.auth-input::placeholder{color:var(--dim);}
.auth-btn{width:100%;padding:10px;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:background-color .15s,border-color .15s,color .15s;margin-bottom:8px;}
.auth-btn-primary{background:var(--brand-og-accent);color:#fff;}
.auth-btn-primary:hover{background:var(--brand-og-accent-hover);}
.auth-btn-secondary{background:transparent;color:var(--brand-og-accent);border:1px solid var(--brand-og-accent);}
.auth-btn-secondary:hover{background:rgba(var(--brand-og-accent-rgb),.06);}
.auth-btn-link{background:none;border:none;color:var(--brand-og-accent);font-size:11px;cursor:pointer;padding:4px;width:100%;text-align:center;font-family:inherit;}
.auth-btn-link:hover{color:var(--brand-og-accent-hover);}
.auth-divider{display:flex;align-items:center;gap:12px;margin:12px 0;color:var(--muted);font-size:11px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.auth-error{margin-top:10px;padding:8px 12px;border-radius:4px;font-size:11px;background:rgba(163,24,24,.08);color:var(--color-red);border:1px solid rgba(163,24,24,.2);}
.auth-error.success{background:rgba(10,107,71,.08);color:var(--color-green);border-color:rgba(10,107,71,.25);}
.auth-team-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;margin-bottom:6px;background:var(--s2);border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:border-color .15s,background-color .15s;}
.auth-team-item:hover{border-color:var(--brand-og-accent);background:var(--s1);}
.auth-team-name{font-size:13px;font-weight:600;color:var(--text);}
.auth-team-role{font-size:9px;font-family:'JetBrains Mono',monospace;color:var(--brand-og-accent);letter-spacing:.08em;text-transform:uppercase;}
.auth-subtitle{font-size:12px;color:var(--muted);margin:0 0 16px;text-align:center;line-height:1.5;}
.auth-choice-hint{font-size:10px;color:var(--muted);text-align:center;margin:-4px 0 12px;}
.auth-waiting-msg{text-align:center;padding:24px 16px;}
.auth-waiting-icon{margin:0 0 16px;}
.auth-waiting-title{font-size:18px;font-weight:600;color:var(--text);margin:0 0 8px;}
.auth-waiting-detail{font-size:13px;color:var(--muted);margin:0 0 12px;line-height:1.5;}
.auth-waiting-email{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--brand-og-accent);background:rgba(var(--brand-og-accent-rgb),.06);border:1px solid rgba(var(--brand-og-accent-rgb),.2);border-radius:4px;padding:8px 14px;margin:0 0 20px;letter-spacing:.02em;user-select:all;}
.auth-waiting-msg .auth-btn{width:100%;margin:0 0 8px;}

/* ── Invite acceptance: branded context + password UX ── */
.auth-invite-context{
  font-size:13px;color:var(--text);text-align:center;line-height:1.5;
  margin:0 0 14px;padding:10px 14px;border-radius:8px;
  background:rgba(var(--color-secondary-rgb),.07);
  border:1px solid rgba(var(--color-secondary-rgb),.20);
}
.auth-invite-team{font-weight:600;color:var(--text);}
.auth-role-pill{
  display:inline-block;font-family:'JetBrains Mono',monospace;
  font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  padding:2px 8px;border-radius:4px;vertical-align:baseline;white-space:nowrap;
  background:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);
}
.auth-invite-context.auth-invite-invalid{
  background:rgba(248,113,113,.08);border-color:rgba(248,113,113,.28);color:var(--text);
}
.auth-pw-group{position:relative;}
.auth-pw-input{padding-right:58px;}
.auth-pw-toggle{
  position:absolute;top:0;right:0;height:100%;width:52px;
  background:none;border:none;cursor:pointer;
  font-size:11px;font-weight:600;color:var(--muted);
  letter-spacing:.02em;border-radius:0 8px 8px 0;
}
.auth-pw-toggle:hover{color:var(--color-secondary);}
.auth-pw-strength{display:flex;align-items:center;gap:8px;margin:-8px 0 12px;}
.auth-pw-bar{flex:1;height:4px;border-radius:2px;background:rgba(var(--color-secondary-rgb),.12);overflow:hidden;}
.auth-pw-fill{display:block;height:100%;width:0;border-radius:2px;transition:width .2s ease;background:var(--muted);}
.auth-pw-fill.pw-s0,.auth-pw-fill.pw-s1{background:var(--color-warning,#d9822b);}
.auth-pw-fill.pw-s2{background:var(--color-accent);}
.auth-pw-fill.pw-s3,.auth-pw-fill.pw-s4{background:var(--color-success,#4a9d6b);}
.auth-pw-label{font-size:10px;color:var(--muted);min-width:44px;text-align:right;font-family:'JetBrains Mono',monospace;}
.auth-check-email-addr-row{text-align:center;margin:0 0 14px;}
.auth-check-email-addr-row .auth-waiting-email{display:inline-block;margin:0;}


/* Team settings toggle */
.tm-settings-section{padding:0 20px 16px;}
.tm-toggle-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text);cursor:pointer;padding:8px 0;}
.tm-toggle-row input[type="checkbox"]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer;}

/* ── Invite Links ────────────────────────────────────── */
.tm-active-invites { margin-top: 8px; }
.tm-no-invites { color: var(--muted); font-size: 12px; padding: 6px 0; }
.tm-invite-row-active {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 0; border-bottom: 1px solid var(--s2);
}
.tm-invite-role-badge {
  font-size: 11px; font-weight: 600; padding: 2px 8px;
  border-radius: 4px; white-space: nowrap;
}
.tm-role-admin { background: rgba(74,144,226,.15); color: #4a90e2; }
.tm-role-member { background: rgba(123,160,138,.15); color: #7ba08a; }
.tm-invite-meta { font-size: 11px; color: var(--muted); flex: 1; }
.tm-invite-copy-btn, .tm-invite-del-btn {
  background: none; border: none; color: var(--muted); cursor: pointer;
  padding: 4px; border-radius: 4px; transition: color .15s, background .15s;
}
.tm-invite-copy-btn:hover { color: var(--accent); background: rgba(var(--accent-rgb),.1); }
.tm-invite-del-btn:hover { color: #f87171; background: rgba(248,113,113,.1); }

/* ── SIDEBAR CLIENT/COMPANY FOLDERS ── */
.sb-client-folder{margin-bottom:2px;}
.sb-client-hdr{display:flex;align-items:center;gap:6px;padding:6px 10px;cursor:pointer;border-radius:7px;transition:background .15s;user-select:none;}
.sb-client-hdr:hover{background:rgba(var(--accent-rgb),.08);}

.sb-client-name{font-size:12px;font-weight:700;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;}
.sb-client-items{padding-left:6px;}

/* ── SIDEBAR AOI FOLDER HIERARCHY ── */
.sb-aoi-folder{margin-bottom:1px;}
.sb-aoi-folder.sb-aoi-active>.sb-aoi-hdr{background:rgba(var(--accent-rgb),.12);}
.sb-aoi-hdr{display:flex;align-items:center;gap:6px;padding:6px 10px;cursor:pointer;border-radius:7px;transition:background .15s;user-select:none;}
.sb-aoi-hdr:hover{background:rgba(var(--accent-rgb),.08);}
.sb-aoi-name{font-size:11px;font-weight:600;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sb-aoi-warn{font-size:9px;color:var(--red);display:flex;align-items:center;gap:2px;flex-shrink:0;}
.sb-aoi-items{padding-left:10px;border-left:1px solid rgba(var(--accent-rgb),.1);margin-left:14px;}
.sb-aoi-county-folder{margin-bottom:1px;}
.sb-aoi-county-hdr{display:flex;align-items:center;gap: 4px;padding:4px 8px;cursor:pointer;border-radius:6px;transition:background .15s;user-select:none;}
.sb-aoi-county-hdr:hover{background:rgba(var(--accent-rgb),.06);}
.sb-aoi-county-icon{color:var(--dim);flex-shrink:0;display:flex;align-items:center;}
.sb-aoi-county-name{font-size:10px;font-weight:600;color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em;}
.sb-aoi-county-items{padding-left:8px;border-left:1px solid rgba(var(--accent-rgb),.08);margin-left:12px;}

/* ── CLIENT/COMPANY MANAGER MODAL ── */
.client-mgr-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:var(--z-modal,1000);display:none;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.client-mgr-overlay.open{display:flex;}
.client-mgr-card{background:var(--s1);border:1px solid var(--border);border-radius:14px;width:420px;max-width:92vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 12px 48px rgba(0,0,0,.5);}
.client-mgr-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border);}
.client-mgr-title{font-size:15px;font-weight:700;color:var(--text);}
.client-mgr-body{flex:1;overflow-y:auto;padding:12px 16px;min-height:80px;}
.client-mgr-footer{border-top:1px solid var(--border);padding:12px 16px;}
.client-mgr-add-row{display:flex;gap:8px;}
.client-mgr-input{flex:1;background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:6px 10px;font-size:12px;color:var(--text);font-family:inherit;}
.client-mgr-input:focus{outline:none;border-color:rgba(var(--accent-rgb),.4);}
.client-mgr-add-btn{background:rgba(var(--accent-rgb),.12);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.25);border-radius:7px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s;}
.client-mgr-add-btn:hover{background:rgba(var(--accent-rgb),.2);}
.client-mgr-row{display:flex;align-items:center;gap:8px;padding:8px 6px;border-radius:7px;transition:background .12s;}
.client-mgr-row:hover{background:rgba(var(--accent-rgb),.05);}
.client-mgr-color{width:14px;height:14px;border-radius:50%;cursor:pointer;flex-shrink:0;border:2px solid var(--border2);transition:transform .15s;}
.client-mgr-color:hover{transform:scale(1.2);}
.client-mgr-name{flex:1;font-size:13px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--s2);border:1px solid var(--border);border-radius:5px;padding:2px 6px;font-family:inherit;}
.client-mgr-name:focus{outline:none;border-color:rgba(var(--accent-rgb),.4);}
.client-mgr-count{font-size:10px;color:var(--muted);white-space:nowrap;flex-shrink:0;}
.client-mgr-del{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;font-size:16px;line-height:1;transition:color .15s,background .15s;}
.client-mgr-del:hover{color:#f87171;background:rgba(248,113,113,.1);}
.client-mgr-empty{font-size:12px;color:var(--muted);font-style:italic;text-align:center;padding:20px 0;}

/* ── EDIT MODE TOGGLE + INLINE CONTROLS ── */
.pa-edit-toggle{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:5px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:rgba(255,255,255,.8);font-size:10px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;}
.pa-edit-toggle:hover{background:var(--glass-strong);border-color:rgba(255,255,255,.3);}
.pa-edit-toggle.active{background:rgba(var(--accent-rgb),.2);border-color:rgba(var(--accent-rgb),.4);color:var(--accent);}
.pa-em-del{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;border:none;background:rgba(248,113,113,.08);color:var(--red);cursor:pointer;flex-shrink:0;transition:background .12s,color .12s;padding:0;}
.pa-em-del:hover{background:rgba(248,113,113,.18);color:#EF4444;}
.pa-em-add{display:flex;align-items:center;gap: 4px;padding:4px 10px;margin:4px 0;border-radius:6px;border:1px dashed rgba(var(--brand-og-accent-rgb),.3);background:rgba(var(--brand-og-accent-rgb),.04);color:var(--blue);font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .12s;width:fit-content;}
.pa-em-add:hover{background:rgba(var(--brand-og-accent-rgb),.1);border-color:rgba(var(--brand-og-accent-rgb),.5);}
.pa-em-add-top{margin:6px 8px;}

/* ── ADD TO PROJECT AREAS BUTTON + DROPDOWN ── */
.pa-add-wrap{position:relative;display:flex;align-items:center;}
.pa-add-btn{width:26px;height:26px;border-radius:6px;border:1px solid rgba(var(--accent-rgb),.25);background:rgba(var(--accent-rgb),.1);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.pa-add-btn:hover{background:rgba(var(--accent-rgb),.2);border-color:rgba(var(--accent-rgb),.4);}
.pa-add-dropdown{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--s1);border:1px solid var(--glass-hover);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.4);padding:6px;z-index:var(--z-dropdown,500);}
.pa-add-wrap.open .pa-add-dropdown{display:block;}
.pa-add-label{font-size:9px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:6px 10px 4px;}
.pa-add-option{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;color:var(--text);transition:background .12s;}
.pa-add-option:hover{background:var(--glass);}
.pa-add-option svg{color:var(--muted);flex-shrink:0;}
.pa-add-divider{height:1px;background:var(--glass);margin:4px 6px;}

/* ── ADD POPUPS (shared) ── */
.pa-popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:var(--z-modal,1000);display:none;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.pa-popup-overlay.open{display:flex;}
.pa-popup-card{background:var(--s1);border:1px solid var(--border);border-radius:14px;width:400px;max-width:92vw;display:flex;flex-direction:column;box-shadow:0 12px 48px rgba(0,0,0,.5);}
.pa-popup-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border);}
.pa-popup-title{font-size:15px;font-weight:700;color:var(--text);}
.pa-popup-body{padding:16px 20px;display:flex;flex-direction:column;gap:10px;}
.pa-popup-lbl{font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:-4px;}
.pa-popup-input{background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:8px 10px;font-size:13px;color:var(--text);font-family:inherit;width:100%;box-sizing:border-box;}
.pa-popup-input:focus{outline:none;border-color:rgba(var(--accent-rgb),.4);}
.pa-popup-select{background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:8px 10px;font-size:13px;color:var(--text);font-family:inherit;width:100%;box-sizing:border-box;cursor:pointer;}
.pa-popup-select:focus{outline:none;border-color:rgba(var(--accent-rgb),.4);}
.pa-popup-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border);}
.pa-color-row{display:flex;gap:6px;flex-wrap:wrap;}
.pa-color-swatch{width:24px;height:24px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .15s,border-color .15s;}
.pa-color-swatch:hover{transform:scale(1.15);}
.pa-color-swatch.selected{border-color:#fff;transform:scale(1.15);}

/* ── DASHBOARD CLIENT/COMPANY FOLDERS ── */
.dpi-client-folder{margin-bottom:4px;}
.dpi-client-hdr{display:flex;align-items:center;gap:6px;padding:8px 10px;cursor:pointer;border-radius:8px;transition:background .15s;user-select:none;}
.dpi-client-hdr:hover{background:rgba(var(--accent-rgb),.06);}

.dpi-client-name{font-size:13px;font-weight:700;color:#1a1a1a;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dpi-client-items{padding-left:4px;}

/* ── Profile Page ── */
/* .prof-banner / -name / -meta / -team strict-dead removed Track D.1 (2026-05-06).
   Live-evidence: parent + 3 of 4 children DOM count = 0 across all 7 views; only -role
   is live (kept). The polish-pass re-declaration at line ~3717 also removed. */
.prof-avatar-lg{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:#fff;flex-shrink:0;}
.prof-banner-role{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.12);border-radius:4px;padding:2px 6px;}
/* Profile — Sidebar + Content Layout (Linear/GitHub pattern) */
.prof-layout{display:grid;grid-template-columns:220px 1fr;gap:0;min-height:calc(100vh - 120px);}
.prof-sidenav{padding:24px 16px;border-right:1px solid var(--glass-hover);}
.prof-sidenav-user{text-align:center;padding-bottom:16px;margin-bottom:12px;border-bottom:1px solid var(--glass-hover);}
.prof-sidenav-logo{width:48px;height:48px;border-radius:12px;object-fit:contain;margin:0 auto 8px;}
.prof-sidenav-name{font-size:13px;font-weight:700;color:var(--text);}
.prof-sidenav-role{font-size:10px;color:var(--muted);margin-top:2px;}
.prof-sidenav-group{margin-bottom:16px;}
.prof-sidenav-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:4px 10px;margin-bottom:4px;}
/* Profile sidenav (Phase 7 §6.17 cross-cutting D24 — drop border-left
   stripe, use bg tint + bold-weight for active signal) */
.prof-sidenav-item{display:block;width:100%;padding:6px 10px;border:none;background:transparent;color:var(--text);font-size:12px;font-weight:500;text-align:left;border-radius:4px;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);font-family:inherit;opacity:.7;}
.prof-sidenav-item:hover{background:rgba(var(--accent-rgb),.04);opacity:1;}
.prof-sidenav-item.active{background:rgba(var(--brand-og-accent-rgb),.10);color:var(--brand-og-accent);opacity:1;font-weight:600;}
.prof-content{padding:24px 32px;overflow-y:auto;}
.prof-pane{display:none;}
.prof-pane.active{display:block;}
.prof-pane-title{font-size:18px;font-weight:700;color:var(--text);margin:0 0 4px;letter-spacing:-.01em;}
.prof-pane-desc{font-size:12px;color:var(--muted);margin:0 0 20px;}
/* Two-column form rows */
.prof-form{display:flex;flex-direction:column;gap:0;}
.prof-form-row{display:flex;align-items:flex-start;gap:24px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.prof-form-row:last-child{border-bottom:none;}
.prof-form-left{width:200px;flex-shrink:0;padding-top:6px;}
.prof-form-label{font-size:12px;font-weight:600;color:var(--text);display:block;}
.prof-form-hint{font-size:10px;color:var(--muted);display:block;margin-top:2px;}
.prof-form-right{flex:1;min-width:0;max-width:320px;}
.prof-form-val{font-size:13px;font-weight:600;color:var(--text);padding-top:6px;display:inline-block;}
.prof-form-input{padding:8px 12px;background:var(--glass);border:1px solid var(--glass-hover);border-radius:8px;color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s;width:100%;box-sizing:border-box;}
.prof-form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.08);}
.prof-badge-new{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:4px;background:rgba(var(--color-action-rgb),.1);color:#22C55E;border:1px solid rgba(var(--color-action-rgb),.15);margin-left:6px;vertical-align:1px;}
.prof-form-row-featured{background:rgba(var(--accent-rgb),.04);margin:0 -20px;padding:14px 20px !important;border-bottom:1px solid rgba(var(--accent-rgb),.08) !important;border-radius:0;}
.prof-form-footer{display:flex;justify-content:flex-end;padding-top:12px;}
/* Email integration UI */
.prof-email-disconnected{display:flex;gap:8px;}
.prof-email-connected{display:flex;flex-direction:column;gap:4px;}
.prof-email-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.prof-email-badge{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:5px;background:rgba(var(--color-action-rgb),.1);color:#22C55E;border:1px solid rgba(var(--color-action-rgb),.2);}
.prof-email-addr{font-size:12px;font-weight:500;color:var(--text);}
.prof-email-sync{font-size:9px;color:var(--muted);}
.prof-email-detect-card{background:rgba(var(--accent-rgb),.04);border:1px solid rgba(var(--accent-rgb),.1);border-radius:8px;padding:8px 12px;flex:0 1 auto;}
.prof-email-detect-hdr{display:flex;align-items:center;gap: 4px;margin-bottom:2px;}

.prof-pane-subtitle{font-size:14px;font-weight:700;color:var(--text);margin:28px 0 4px;padding-top:20px;border-top:1px solid var(--glass-hover);}
.prof-connect-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:1px solid var(--glass-hover);background:transparent;color:var(--text);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit;}
.prof-connect-btn:hover{background:rgba(var(--accent-rgb),.06);border-color:rgba(var(--accent-rgb),.2);color:var(--accent);}
.prof-connect-btn.connected{background:rgba(var(--color-action-rgb),.06);border-color:rgba(var(--color-action-rgb),.2);color:#22C55E;}
.prof-connect-btn.connected::before{content:'';}
.prof-card{overflow:visible;}
/* Profile card header — Phase 8.1 D24 enforcement.
   Was dark navy gradient on every profile card; per D24 destructive-only,
   non-destructive cards (CURRENT PLAN, USAGE, AI RUNS, OUTREACH CREDIT,
   OUTREACH RATES, FAILED WRITES) flatten to var(--s2). Dark navy is
   preserved via inline style override on profiles.js destructive cards
   (Danger Zone, Delete My Account, Delete Team) where ${color}-bg+border+
   text+CTA emphasis is intentional per D26. */
.prof-card-hdr-navy{display:flex;align-items:center;gap:8px;padding:12px 18px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text);background:var(--s2);border-bottom:1px solid var(--border);border-radius:8px 8px 0 0;}
.prof-card-hdr-navy svg{opacity:.7;color:var(--muted);}
/* Notification rows */
.prof-notif-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.prof-notif-row:last-child{border-bottom:none;}
.prof-notif-info{display:flex;flex-direction:column;gap:1px;}
.prof-notif-title{font-size:12px;font-weight:600;color:var(--text);}
.prof-notif-desc{font-size:9px;color:var(--muted);}
/* Subscription badge */
.prof-subscription-badge{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:var(--accent);background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.15);border-radius:6px;padding:2px 8px;}
/* Billing — Plan hero */
.prof-plan-hero{padding:4px 0 8px;}
.prof-plan-name-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.prof-plan-name{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.02em;}
.prof-plan-price{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:700;color:var(--color-money);}
.prof-plan-period{font-size:12px;font-weight:500;color:var(--muted);}
.prof-plan-status{display:flex;align-items:center;gap:8px;margin-top:6px;}
.prof-plan-badge{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 10px;border-radius:6px;}
.prof-plan-active{background:rgba(var(--color-action-rgb),.1);color:#22C55E;border:1px solid rgba(var(--color-action-rgb),.2);}
.prof-plan-renew{font-size:11px;color:var(--muted);}
.prof-plan-actions{display:flex;gap:8px;margin-top:4px;}
/* Billing — Usage meters */
.prof-usage-meter{margin-bottom:6px;}
.prof-usage-meter:last-child{margin-bottom:0;}
.prof-usage-hdr{display:flex;justify-content:space-between;margin-bottom:4px;}
.prof-usage-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.prof-usage-val{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:var(--text);}
.prof-usage-bar{height:6px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden;}
.prof-usage-fill{height:100%;border-radius:3px;transition:width .4s,background .3s;}
/* Billing — Payment */
.prof-payment-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px;text-align:center;font-size:11px;color:var(--muted);}
/* Billing — Invoices */
.prof-invoice-empty{text-align:center;padding:16px;font-size:11px;color:var(--muted);font-style:italic;}
/* Activity log */
.prof-activity-empty{text-align:center;padding:16px;font-size:11px;color:var(--muted);font-style:italic;}
.prof-activity-item{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.prof-activity-item:last-child{border-bottom:none;}
.prof-activity-icon{width:28px;height:28px;border-radius:7px;background:rgba(var(--accent-rgb),.06);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;}
.prof-activity-text{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;}
.prof-activity-desc{font-size:12px;font-weight:500;color:var(--text);}
.prof-activity-time{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);flex-shrink:0;}
/* Profile PSA template list */
/* PSA Template Cards */
.prof-psa-card{background:var(--s2);border:1px solid var(--glass-hover);border-radius:10px;padding:12px 14px;margin-bottom:8px;transition:all .15s;}
.prof-psa-card:hover{border-color:rgba(var(--accent-rgb),.2);box-shadow:0 2px 8px rgba(0,0,0,.1);}
.prof-psa-card-top{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;}
.prof-psa-card-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.prof-psa-card-icon.pdf{background:rgba(220,38,38,.08);color:var(--color-danger);}
.prof-psa-card-icon.docx{background:rgba(var(--brand-og-accent-rgb),.08);color:var(--brand-og-accent);}
.prof-psa-card-info{flex:1;min-width:0;}
.prof-psa-card-title{font-size:13px;font-weight:700;color:var(--text);outline:none;cursor:text;border-bottom:1px dashed transparent;transition:border-color .15s;}
.prof-psa-card-title:hover{border-bottom-color:rgba(var(--accent-rgb),.3);}
.prof-psa-card-title:focus{border-bottom-color:var(--accent);}
.prof-psa-card-meta{font-size:9px;color:var(--muted);margin-top:2px;}
.prof-psa-default-badge{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-green);background:rgba(var(--color-action-rgb),.08);padding:2px 6px;border-radius:4px;border:1px solid rgba(var(--color-action-rgb),.15);flex-shrink:0;align-self:flex-start;}
.prof-psa-card-actions{display:flex;gap:6px;border-top:1px solid var(--glass);padding-top:8px;}
.prof-psa-btn{font-size:10px;font-weight:600;color:var(--accent);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.15);padding:2px 10px;border-radius:5px;cursor:pointer;font-family:inherit;transition:all .12s;display:inline-flex;align-items:center;gap:4px;}
.prof-psa-btn:hover{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.3);}
.prof-psa-btn-del{color:var(--color-red);background:rgba(220,38,38,.04);border-color:rgba(220,38,38,.1);margin-left:auto;}
.prof-psa-btn-del:hover{background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.25);}
/* Email Digest Settings */
.prof-section-card{background:rgba(var(--accent-rgb),.02);border:1px solid var(--glass-hover);border-radius:10px;padding:14px 16px;}
.prof-section-hdr{font-size:12px;font-weight:700;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.prof-digest-checklist{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;}
.prof-digest-check{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text);cursor:pointer;padding:2px 0;}
.prof-digest-check input{accent-color:var(--accent);}
/* Bug Reporter Modal */
.bug-reporter-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;}
.bug-reporter-overlay.open{opacity:1;}
.bug-reporter-modal{background:var(--s1);border:1px solid var(--border2);border-radius:14px;width:420px;box-shadow:0 16px 48px rgba(0,0,0,.4);overflow:hidden;}
.bug-reporter-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--glass);font-size:14px;font-weight:700;color:var(--text);}
.bug-reporter-body{padding:16px 18px;display:flex;flex-direction:column;gap:12px;}
.bug-reporter-types{display:flex;gap:4px;}
.bug-type-btn{font-size:10px;font-weight:600;padding:4px 10px;border-radius:6px;border:1px solid var(--glass-hover);background:transparent;color:var(--muted);cursor:pointer;font-family:inherit;transition:all .12s;}
.bug-type-btn.active{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.25);color:var(--accent);}
.bug-reporter-textarea{width:100%;padding:8px 10px;border:1px solid var(--border2);border-radius:8px;background:var(--s2);color:var(--text);font-size:12px;font-family:inherit;resize:vertical;box-sizing:border-box;}
.bug-reporter-textarea:focus{outline:none;border-color:var(--accent);}
.bug-reporter-priority{display:flex;align-items:center;gap:6px;}
.bug-pri-btn{font-size:9px;font-weight:600;padding:2px 8px;border-radius:4px;border:1px solid var(--glass-hover);background:transparent;color:var(--muted);cursor:pointer;font-family:inherit;transition:all .12s;}
.bug-pri-btn.active[data-pri="low"]{background:rgba(var(--color-action-rgb),.1);border-color:rgba(var(--color-action-rgb),.25);color:#059669;}
.bug-pri-btn.active[data-pri="medium"]{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.25);color:#D97706;}
.bug-pri-btn.active[data-pri="high"]{background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.25);color:var(--color-danger);}
.bug-reporter-context{font-size:10px;}
.bug-reporter-ftr{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--glass);}
/* Preferences grid — 2x2 compact layout */
.prof-pref-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
/* Team call activity chart */
.prof-team-stats{margin-bottom:16px;}
.team-chart-card{background:var(--s1);border:1px solid var(--glass-hover);border-radius:14px;overflow:hidden;}
.team-chart-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(135deg,var(--navy),var(--navy-light));color:rgba(255,255,255,.9);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.team-chart-hdr svg{opacity:.7;}
.team-chart-period{font-size:9px;font-weight:600;color:rgba(255,255,255,.5);text-transform:none;letter-spacing:0;}
.team-chart-body{padding:10px 18px 14px;}
.team-chart-row{display:flex;align-items:center;gap:0;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.03);}
.team-chart-row:last-child{border-bottom:none;}
.team-chart-day-row{border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:8px;margin-bottom:4px;}
.team-chart-name-col{width:140px;flex-shrink:0;display:flex;align-items:center;gap:8px;min-width:0;}
.team-chart-avatar{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0;}
.team-chart-name{font-size:11px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.team-chart-cell{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;}
.team-chart-bar-wrap{height:32px;display:flex;align-items:flex-end;justify-content:center;}
.team-chart-bar{width:14px;border-radius:3px 3px 0 0;transition:height .3s;}
.team-chart-cell-val{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;color:var(--text);}
.team-chart-cell-val.zero{color:var(--muted);opacity:.4;}
.team-chart-day-label{flex:1;text-align:center;font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.team-chart-day-label.today{color:var(--accent);font-weight:800;}
.team-chart-total-col{width:50px;flex-shrink:0;text-align:center;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:var(--muted);}
.team-chart-today-col{width:50px;flex-shrink:0;text-align:center;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;}
.team-chart-week-total{font-size:12px;font-weight:800;color:var(--text);}
.team-chart-today-val{font-size:12px;font-weight:800;color:var(--muted);}
.team-chart-today-val.active{color:var(--color-green);}
.team-chart-empty{text-align:center;padding:24px;font-size:11px;color:var(--muted);font-style:italic;}
.prof-card-body{padding:16px 18px;display:flex;flex-direction:column;gap:12px;}
.prof-card-body .f-group{display:flex;flex-direction:column;gap:4px;}
.prof-card-body .f-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;}
.prof-ro-field{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.prof-ro-field:last-of-type{border-bottom:none;}
.prof-ro-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;}
.prof-ro-val{font-size:12px;font-weight:600;color:var(--text);}
.prof-ro-mono{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--dim);}

/* Profile Tabs */
.prof-tabs{display:flex;gap:4px;margin-bottom:16px;}
.prof-tab-btn{padding:6px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--muted);font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;}
.prof-tab-btn:hover{background:var(--glass);}
.prof-tab-btn.active{border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.08);color:var(--accent);}

/* Team List */
.prof-team-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.prof-team-summary{font-size:11px;color:var(--muted);}
.prof-team-group{margin-bottom:16px;}
.prof-team-group-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.04);}
.prof-team-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;transition:background .12s;}
.prof-team-row:hover{background:rgba(255,255,255,.03);}
.prof-team-self{background:rgba(var(--accent-rgb),.04);}
.prof-team-avatar{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0;}
.prof-team-info{flex:1;min-width:0;}
.prof-team-name{font-size:12px;font-weight:600;color:var(--text);}
.prof-team-email{font-size:10px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.prof-team-role-badge{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:4px;flex-shrink:0;}
.prof-role-owner{background:rgba(var(--accent-rgb),.1);color:var(--accent);}
.prof-role-manager{background:rgba(var(--brand-og-accent-rgb),.08);color:var(--blue);}
.prof-role-pm{background:rgba(52,211,153,.08);color:var(--color-teal);}
.prof-role-agent{background:rgba(156,163,175,.08);color:var(--muted);}
.prof-team-action{width:24px;height:24px;border-radius:5px;border:1px solid rgba(234,134,143,.15);background:rgba(234,134,143,.05);color:var(--color-red);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;padding:0;transition:all .15s;flex-shrink:0;}
.prof-team-action:hover{background:rgba(234,134,143,.15);border-color:rgba(234,134,143,.3);}

/* PM Permission Toggles */
.prof-pm-perms{display:flex;flex-wrap:wrap;gap:6px;padding:4px 12px 8px 50px;}
.prof-pm-toggle{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--muted);cursor:pointer;}
.prof-pm-toggle input{width:12px;height:12px;accent-color:var(--accent);cursor:pointer;}

/* Permissions Tab */
.prof-perm-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.prof-perm-tree{background:var(--s1);border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden;max-height:calc(100vh - 320px);overflow-y:auto;}
.prof-perm-detail{background:var(--s1);border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden;}
.prof-perm-node{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:11px;color:var(--text);cursor:pointer;transition:background .12s;border-bottom:1px solid rgba(255,255,255,.03);}
.prof-perm-node:hover{background:rgba(255,255,255,.04);}
.prof-perm-count{font-family:'JetBrains Mono',monospace;font-size:9px;background:rgba(var(--brand-og-accent-rgb),.1);color:var(--blue);padding:1px 4px;border-radius:3px;margin-left:auto;}
.prof-perm-section-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 14px 4px;}
.prof-perm-member{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:11px;color:var(--text);}
.prof-perm-unassigned{opacity:.6;}
.prof-perm-remove{margin-left:auto;width:20px;height:20px;border-radius:4px;border:1px solid rgba(234,134,143,.15);background:rgba(234,134,143,.05);color:var(--color-red);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;padding:0;}
.prof-perm-assign{margin-left:auto;padding:2px 8px;border-radius:4px;border:1px solid rgba(52,211,153,.2);background:rgba(52,211,153,.06);color:var(--color-teal);cursor:pointer;font-size:9px;font-weight:600;font-family:inherit;}

/* ── Profile Banner Polish ── */
/* .prof-banner override removed Track D.1 (2026-05-06) — parent class strict-dead. */
.prof-avatar-lg{width:64px;height:64px;font-size:20px;border-radius:14px;border:2px solid rgba(var(--accent-rgb),.3);box-shadow:0 0 20px rgba(var(--accent-rgb),.08);}
.prof-avatar-logo-lg{width:64px;height:64px;border-radius:14px;object-fit:contain;flex-shrink:0;}

/* ── Expandable Member Cards ── */
.prof-member-card{background:var(--s1);border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:6px;overflow:hidden;transition:border-color .15s;}
.prof-member-card:hover{border-color:var(--border2);}
.prof-member-card.expanded{border-color:rgba(var(--accent-rgb),.2);}
.prof-member-header{display:flex;align-items:center;gap:10px;padding:10px 14px;transition:background .12s;}
.prof-member-header.expandable{cursor:pointer;}
.prof-member-header.expandable:hover{background:rgba(255,255,255,.02);}
.prof-expand-chevron{color:var(--muted);font-size:11px;flex-shrink:0;width:16px;text-align:center;transition:color .12s;}
.prof-member-card.expanded .prof-expand-chevron{color:var(--accent);}
.prof-member-detail{border-top:1px solid rgba(255,255,255,.04);background:rgba(255,255,255,.015);padding:12px 16px;display:flex;flex-direction:column;gap:12px;}
.prof-detail-section{display:flex;flex-direction:column;gap:6px;}
.prof-detail-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-bottom:2px;}

/* ── Role Change Dropdown ── */
.prof-role-select{background:var(--s2);border:1px solid var(--glass-hover);border-radius:6px;padding:4px 10px;color:var(--text);font-size:11px;font-family:inherit;cursor:pointer;width:100%;max-width:200px;}
.prof-role-select:focus{border-color:rgba(var(--accent-rgb),.4);outline:none;}

/* ── Permission Toggle Switches ── */
.prof-perm-grid{display:flex;flex-direction:column;gap:4px;}
.prof-perm-row{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:5px;transition:background .12s;}
.prof-perm-row:hover{background:rgba(255,255,255,.02);}
.prof-perm-label{font-size:11px;color:var(--text);}
.perm-toggle{position:relative;width:32px;height:18px;background:var(--glass-hover);border-radius:9px;cursor:pointer;transition:background .2s;flex-shrink:0;}
.perm-toggle.on{background:rgba(var(--accent-rgb),.5);}
.perm-toggle-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.perm-toggle.on .perm-toggle-knob{transform:translateX(14px);}

/* ── Canon permission panel (CO-032 P2.3) ──
   Categorized per-member override panel powered by canon.role_default_permissions
   + canon.permission_overrides. Lives inside the expanded member card in
   Profile → Team & Plan. Replaces the legacy 4-boolean _renderPermToggles. */
.prof-canon-perms{display:flex;flex-direction:column;gap:8px;}
.prof-canon-helper{display:block;font-family:inherit;font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);margin-top:2px;line-height:1.4;}
.prof-canon-loading,.prof-canon-empty{font-size:12px;color:var(--muted);font-style:italic;padding:12px;text-align:center;}
.prof-canon-error{font-size:12px;color:var(--color-red);padding:12px;background:rgba(220,38,38,.06);border:1px solid rgba(220,38,38,.18);border-radius:6px;}

/* Category accordion (uses native <details>/<summary>).
   Backgrounds + borders use rgba(0,0,0,.X) so they work on Scout's light
   pane (the production context) — earlier rgba(255,255,255,.X) values were
   dark-theme assumptions and rendered invisible on white bg. */
.prof-canon-cat{border:1px solid rgba(0,0,0,.08);border-radius:6px;background:rgba(0,0,0,.012);overflow:hidden;}
.prof-canon-cat[open]{background:rgba(0,0,0,.02);}
.prof-canon-cat-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;cursor:pointer;list-style:none;user-select:none;font-size:12px;color:var(--text);transition:background .12s;}
.prof-canon-cat-summary::-webkit-details-marker{display:none;}
.prof-canon-cat-summary::before{content:'';width:10px;height:10px;flex-shrink:0;background-color:var(--muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .15s;display:inline-block;}
.prof-canon-cat[open] .prof-canon-cat-summary::before{transform:rotate(90deg);}
.prof-canon-cat-summary:hover{background:rgba(0,0,0,.04);}
.prof-canon-cat-label{flex:1;font-weight:600;}
.prof-canon-cat-count{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);font-weight:500;}
.prof-canon-cat-overrides{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:9px;background:rgba(var(--accent-rgb),.15);color:var(--accent);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.prof-canon-cat-body{display:flex;flex-direction:column;gap:2px;padding:4px 8px 8px;}

/* Per-perm row */
.prof-canon-perm-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:6px 8px;border-radius:5px;transition:background .12s;position:relative;}
.prof-canon-perm-row:hover{background:rgba(0,0,0,.025);}
/* Active-override accent: subtle background tint (no border-left stripe per
   .impeccable.md BAN — colored borders >1px or as accent stripes are banned). */
.prof-canon-perm-row.has-override{background:rgba(var(--accent-rgb),.07);}
.prof-canon-perm-row.locked{opacity:.55;}
.prof-canon-perm-info{display:flex;flex-direction:column;gap:2px;min-width:0;}
.prof-canon-perm-label{font-size:12px;font-weight:500;color:var(--text);line-height:1.35;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
/* State sub-line — slightly bumped contrast for production light pane.
   Was 9.5px var(--muted) which sat at oklch(0.45 0.008 200) and was hard to
   read on white. Bumped to 10.5px and to a slightly darker token. */
.prof-canon-perm-meta{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--text-secondary, var(--muted));letter-spacing:.02em;line-height:1.4;margin-top:2px;}
.prof-canon-perm-row.has-override .prof-canon-perm-meta{color:var(--accent);font-weight:600;}

/* Inline badges (MFA / Audit / Billing markers) */
.prof-canon-badge{display:inline-block;padding:1px 5px;border-radius:3px;font-family:'JetBrains Mono',monospace;font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;line-height:1.4;vertical-align:middle;}
.prof-canon-badge-aal2{background:rgba(204,156,66,.18);color:var(--brand-brass,#CC9C42);}
.prof-canon-badge-audit{background:rgba(220,38,38,.12);color:#9b1c1c;}
.prof-canon-badge-billing{background:rgba(41,128,132,.15);color:var(--accent);}

/* Toggle disabled state */
.prof-canon-perm-toggle.disabled{cursor:not-allowed;opacity:.5;}

/* Reset (clear-override) button + alignment spacer.
   Border uses rgba(0,0,0,...) for visibility on light bg. */
.prof-canon-clear{font-family:'JetBrains Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary,var(--muted));background:transparent;border:1px solid rgba(0,0,0,.12);border-radius:4px;padding:2px 6px;cursor:pointer;transition:color .12s,border-color .12s;font-weight:700;}
.prof-canon-clear:hover{color:var(--accent);border-color:rgba(var(--accent-rgb),.4);}
.prof-canon-clear:disabled{opacity:.4;cursor:default;}
.prof-canon-clear-spacer{display:inline-block;width:48px;}

/* ── PSA Permissions matrix (CO-024 P1) ──
   Tri-state per-action override grid inside the team-member expand panel.
   Inherit (default) / Allow / Deny segmented radios. */
.psa-perm-grid{display:flex;flex-direction:column;gap:6px;}
.psa-perm-row{display:flex;align-items:flex-start;justify-content:space-between;padding:6px 8px;gap:12px;border-radius:6px;background:rgba(0,0,0,.015);}
.psa-perm-row-label{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.psa-perm-row-label > span{display:block;}
.psa-perm-row-label > span:first-child{font-size:11px;font-weight:600;color:var(--text);}
.psa-perm-row-hint{font-size:10px;color:var(--muted);line-height:1.3;display:block;}
.psa-perm-row-controls{display:flex;gap:0;flex-shrink:0;border-radius:5px;overflow:hidden;border:1px solid rgba(0,0,0,.08);background:#FFFFFF;}
.psa-perm-radio{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:10px;color:var(--muted);cursor:pointer;transition:background .12s,color .12s;border-right:1px solid rgba(0,0,0,.06);}
.psa-perm-radio:last-child{border-right:none;}
.psa-perm-radio input[type="radio"]{position:absolute;opacity:0;pointer-events:none;}
.psa-perm-radio:hover{background:rgba(0,0,0,.03);color:var(--text);}
.psa-perm-radio.is-active{background:rgba(var(--accent-rgb),.10);color:var(--text);font-weight:600;}
.psa-perm-radio--allow.is-active{background:rgba(15,157,108,.12);color:#0F7A56;}
.psa-perm-radio--deny.is-active{background:rgba(220,38,38,.10);color:#9B1C1C;}
.psa-perm-row-state{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.psa-perm-override-tag{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:rgba(0,0,0,.04);border-radius:3px;padding:1px 5px;}
.psa-perm-state{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px;}
.psa-perm-state--allow{background:rgba(15,157,108,.12);color:#0F7A56;}
.psa-perm-state--deny{background:rgba(220,38,38,.10);color:#9B1C1C;}

/* ── My PSAs view (CO-024 P1) ──
   Three-bucket switcher (generated / assigned / aoi) over a card grid. */
.mypsas-frame{padding:0 28px 28px;}
.mypsas-tabs{display:flex;gap:0;margin-bottom:18px;border-bottom:1px solid rgba(0,0,0,.06);}
.mypsas-tab{background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 14px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;transition:color .12s,border-color .12s;font-family:inherit;}
.mypsas-tab:hover{color:var(--text);}
.mypsas-tab.active{color:var(--brand-og-accent);border-bottom-color:var(--brand-og-accent);}
.mypsas-loading{padding:32px 20px;text-align:center;color:var(--muted);font-size:12px;}
.mypsas-empty{padding:48px 28px;text-align:center;color:var(--muted);font-size:13px;line-height:1.6;background:rgba(0,0,0,.015);border:1px dashed rgba(0,0,0,.08);border-radius:10px;}
.mypsas-empty--error{background:rgba(220,38,38,.05);border-color:rgba(220,38,38,.22);color:var(--text);}
.mypsas-empty-title{font-weight:700;color:#9B1C1C;margin-bottom:6px;}
.mypsas-empty-detail{color:var(--muted);margin-bottom:14px;}
.mypsas-empty-action{display:inline-flex;}
.mypsas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.mypsas-card{background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .12s,box-shadow .12s;}
.mypsas-card:hover{border-color:rgba(var(--brand-og-accent-rgb),.30);box-shadow:0 2px 8px rgba(0,0,0,.04);}
.mypsas-card-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px;}
.mypsas-card-owner{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;flex:1;min-width:0;}
.mypsas-card-status{font-size:9px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:4px;flex-shrink:0;white-space:nowrap;}
.mypsas-status--draft{background:rgba(0,0,0,.05);color:var(--muted);}
.mypsas-status--ok{background:rgba(15,157,108,.12);color:#0F7A56;}
.mypsas-status--warn{background:rgba(204,156,66,.18);color:#8a6d2c;}
.mypsas-card-project{font-size:11px;color:var(--muted);margin-bottom:8px;}
.mypsas-card-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.mypsas-card-format{background:rgba(0,0,0,.04);padding:2px 6px;border-radius:3px;font-weight:600;}
/* PSA-3: orphan rows (no deal_id) — unreachable, visually distinct. */
.mypsas-card--orphan{opacity:.65;cursor:not-allowed;border-style:dashed;}
.mypsas-card-orphan-pill{background:rgba(220,38,38,.10);color:var(--color-red);padding:2px 6px;border-radius:3px;font-weight:700;font-size:9px;letter-spacing:.04em;border:1px solid rgba(220,38,38,.22);}
/* Docs Hub 3c: PM View-All widened rows whose deal isn't locally loaded — read-only
   (no openDealPanel). Kill the clickable affordance so the card reads as inert. */
.mypsas-card--unscoped{cursor:default;}
.mypsas-card--unscoped:hover{border-color:rgba(0,0,0,.06);box-shadow:none;}
.mypsas-card-unscoped-pill{background:rgba(0,0,0,.05);color:var(--muted);padding:2px 6px;border-radius:3px;font-weight:700;font-size:9px;letter-spacing:.04em;border:1px solid rgba(0,0,0,.10);}

/* Wave M Phase 1 v1 (2026-05-22): archive filter chips + per-card archive button + archived state */
.mypsas-arch-filter{display:inline-flex;background:rgba(0,0,0,.04);border-radius:8px;padding:3px;gap:0;}
.mypsas-arch-chip{background:transparent;border:0;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:5px 10px;border-radius:6px;cursor:pointer;transition:background .12s,color .12s;}
.mypsas-arch-chip:hover{color:var(--text);}
.mypsas-arch-chip.active{background:var(--brand-og-accent,#298084);color:#fff;}
/* Docs Hub 3c: PM "View all team docs" toggle (role=switch). Mirrors the arch chip;
   1px border distinguishes it as a standalone toggle; teal fill = on (active). */
.mypsas-viewall-chip{background:transparent;border:1px solid rgba(0,0,0,.10);font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:5px 10px;border-radius:6px;cursor:pointer;transition:background .12s,color .12s,border-color .12s;}
.mypsas-viewall-chip:hover{color:var(--text);border-color:rgba(0,0,0,.18);}
.mypsas-viewall-chip.active{background:var(--brand-og-accent,#298084);color:#fff;border-color:var(--brand-og-accent,#298084);}

.mypsas-card--archived{opacity:.62;background:rgba(0,0,0,.02);}
.mypsas-card-archived-pill{background:rgba(0,0,0,.08);color:var(--muted);padding:2px 6px;border-radius:3px;font-weight:700;font-size:9px;letter-spacing:.04em;border:1px solid rgba(0,0,0,.08);font-family:'JetBrains Mono',monospace;text-transform:uppercase;}

.mypsas-card-arch-btn{margin-left:auto;background:transparent;border:1px solid rgba(0,0,0,.12);color:var(--muted);font-size:10px;font-weight:600;padding:3px 9px;border-radius:5px;cursor:pointer;opacity:0;transition:opacity .12s,background .12s,color .12s,border-color .12s;font-family:inherit;}
.mypsas-card:hover .mypsas-card-arch-btn{opacity:1;}
.mypsas-card-arch-btn:hover{background:var(--brand-og-accent,#298084);color:#fff;border-color:var(--brand-og-accent,#298084);}
.mypsas-card--archived .mypsas-card-arch-btn{opacity:1;}  /* always show on archived rows so user can restore */

/* PSA gallery CTA row (Profile → PSA Templates) — entry to authoring */
.prof-psa-cta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:10px 12px;background:rgba(var(--brand-og-accent-rgb),.04);border:1px solid rgba(var(--brand-og-accent-rgb),.18);border-radius:10px;}
.prof-psa-cta-hint{font-size:11px;color:var(--muted);flex:1;min-width:0;}

/* Phase 4 inc 4-H.2d.6 — profile gallery rebuilt against canonical
   psaTemplatesCache + dbPsaTemplates RPCs. Reuses existing
   .prof-psa-card / .prof-psa-btn primitives; adds group heading + empty
   state. The simpler card shape (no icon column, no rename-in-place,
   no field-mapping link) matches the new flow where all those concerns
   live in psa-authoring.js. */
.prof-psa-empty{padding:24px 14px;text-align:center;color:var(--muted);font-size:12px;line-height:1.55;border:1px dashed var(--glass-hover);border-radius:10px;background:var(--s2);}
.prof-psa-empty p{margin:0;}
.prof-psa-group{margin-bottom:18px;}
.prof-psa-group:last-child{margin-bottom:0;}
.prof-psa-group-name{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px;padding:0 2px;}
.prof-psa-card-actions{margin-top:10px;}

/* Project Settings → PSA tab — Phase 4 inc 4-H.2d.6
   New canonical UI for managing per-project templates. Backed by
   psaTemplatesCache + dbPsaTemplates RPCs. Single-list layout (no
   nested icon column) keeps it scannable for the typical 1-3 templates
   per project. */
.psp-psa-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border,#E2E5EA);}
.psp-psa-header-count{font-size:11px;color:var(--muted);}
.psp-psa-list{display:flex;flex-direction:column;gap:6px;}
.psp-psa-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border,#E2E5EA);border-radius:8px;background:#FFFFFF;transition:border-color .12s;}
.psp-psa-row:hover{border-color:rgba(var(--accent-rgb),.3);}
.psp-psa-row-info{flex:1;min-width:0;}
.psp-psa-row-name{font-size:12px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;}
.psp-psa-row-meta{font-size:10px;color:var(--muted);margin-top:2px;}
.psp-psa-default{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:rgba(var(--accent-rgb),.1);padding:2px 6px;border-radius:4px;}
.psp-psa-row-actions{display:flex;gap:6px;flex-shrink:0;}
.psp-psa-archive{color:#92400E;}
.psp-psa-archive:hover{background:rgba(146,64,14,.08);border-color:rgba(146,64,14,.25);}
.psp-psa-empty{padding:24px 14px;text-align:center;color:var(--muted);font-size:12px;line-height:1.55;border:1px dashed var(--glass-hover);border-radius:10px;background:var(--s2);}
.psp-psa-empty p{margin:0 0 6px;}
.psp-psa-empty-hint{font-size:11px;}

/* ── PSA Authoring Assistant (CO-024 P3) ──
   Full-screen template-authoring workflow per §7.2. Five steps:
   upload → analyze → review → save → done. */
.psa-auth-frame{display:flex;flex-direction:column;height:100%;background:rgba(0,0,0,.015);}
.psa-auth-header{display:flex;align-items:center;gap:14px;padding:18px 28px 12px;border-bottom:1px solid rgba(0,0,0,.06);background:#FFFFFF;flex-wrap:wrap;}
.psa-auth-title{font-family:'Newsreader',Georgia,serif;font-style:italic;font-size:24px;font-weight:500;color:var(--text);margin:0;flex:1;min-width:0;letter-spacing:-.01em;}
.psa-auth-step-indicator{display:flex;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.psa-auth-step{padding:2px 6px;border-radius:4px;}
.psa-auth-step.is-active{background:rgba(var(--brand-og-accent-rgb),.12);color:var(--brand-og-accent);}
.psa-auth-step.is-done{color:var(--text);opacity:.5;}
.psa-auth-step-sep{opacity:.3;}
.psa-auth-body{flex:1;overflow-y:auto;padding:28px;}

/* Step 1 — upload */
.psa-auth-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:64px 28px;border:2px dashed rgba(0,0,0,.12);border-radius:12px;cursor:pointer;background:#FFFFFF;transition:border-color .15s,background .15s;color:var(--text);}
.psa-auth-upload-zone:hover{border-color:rgba(var(--brand-og-accent-rgb),.40);background:rgba(var(--brand-og-accent-rgb),.02);}
.psa-auth-upload-zone.is-dragover{border-color:var(--brand-og-accent);background:rgba(var(--brand-og-accent-rgb),.06);}
.psa-auth-upload-title{font-size:15px;font-weight:600;color:var(--text);}
.psa-auth-upload-hint{font-size:12px;color:var(--muted);text-align:center;max-width:480px;line-height:1.5;}
.psa-auth-model-row{margin-top:18px;display:flex;align-items:center;gap:10px;justify-content:center;font-size:12px;color:var(--muted);}
.psa-auth-model-row select{padding:6px 10px;border-radius:6px;border:1px solid rgba(0,0,0,.12);background:#FFFFFF;font-size:12px;font-family:inherit;}

/* Step 2 + 4 — loading */
.psa-auth-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:80px 28px;color:var(--muted);}
.psa-auth-spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(0,0,0,.08);border-top-color:var(--brand-og-accent);animation:psa-auth-spin 1s linear infinite;}
@keyframes psa-auth-spin{to{transform:rotate(360deg);}}
.psa-auth-loading-msg{font-size:14px;font-weight:600;color:var(--text);}
.psa-auth-loading-hint{font-size:12px;color:var(--muted);max-width:420px;text-align:center;line-height:1.5;}

/* Step 3 — review */
.psa-auth-review{display:flex;flex-direction:column;gap:14px;}
.psa-auth-review-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 14px;background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;font-size:12px;color:var(--text);}
.psa-auth-counts{display:flex;flex-wrap:wrap;gap:6px;}
.psa-auth-cat-pill{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:rgba(0,0,0,.03);color:var(--cat,var(--muted));border:1px solid rgba(0,0,0,.06);border-radius:4px;padding:2px 6px;}
.psa-auth-accepted-count{color:var(--brand-og-accent);}
.psa-auth-review-grid{display:grid;grid-template-columns:1fr 280px;gap:14px;}
@media (max-width:900px){.psa-auth-review-grid{grid-template-columns:1fr;}}
.psa-auth-cand-list{display:flex;flex-direction:column;gap:14px;}
.psa-auth-cat-block{background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;overflow:hidden;}
.psa-auth-cat-hdr{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:10px 14px;background:rgba(0,0,0,.02);color:var(--cat,var(--text));border-bottom:1px solid rgba(0,0,0,.04);display:flex;align-items:center;gap:8px;}
.psa-auth-cat-count{background:rgba(0,0,0,.05);color:var(--muted);padding:1px 6px;border-radius:3px;font-size:9px;}
.psa-auth-cand-row{display:grid;grid-template-columns:36px 1fr 220px;gap:10px;align-items:flex-start;padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.04);transition:background .12s;}
.psa-auth-cand-row:last-child{border-bottom:none;}
.psa-auth-cand-row.is-accepted{background:rgba(var(--brand-og-accent-rgb),.03);}
.psa-auth-cand-toggle{display:flex;align-items:flex-start;cursor:pointer;}
.psa-auth-cand-toggle input{width:16px;height:16px;accent-color:var(--brand-og-accent);cursor:pointer;}
.psa-auth-cand-main{display:flex;flex-direction:column;gap:3px;min-width:0;}
.psa-auth-cand-value{font-size:12px;font-weight:600;color:var(--text);word-break:break-word;}
.psa-auth-cand-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:10px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.psa-auth-cand-conf{font-weight:700;}
.psa-auth-cand-occ{background:rgba(0,0,0,.04);padding:1px 5px;border-radius:3px;}
.psa-auth-cand-context{opacity:.85;}
.psa-auth-cand-rationale{font-size:10px;color:var(--muted);font-style:italic;margin-top:2px;}
.psa-auth-cand-field select{width:100%;padding:5px 8px;font-size:11px;font-family:inherit;border:1px solid rgba(0,0,0,.12);border-radius:5px;background:#FFFFFF;color:var(--text);}
.psa-auth-tract-info{align-self:start;}
.psa-auth-tract-empty,.psa-auth-tract-detected{padding:14px;background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;font-size:12px;color:var(--muted);line-height:1.5;}
.psa-auth-tract-detected{border-color:rgba(var(--brand-og-accent-rgb),.20);}
.psa-auth-tract-title{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-og-accent);margin-bottom:6px;}
.psa-auth-tract-msg{color:var(--text);margin-bottom:6px;}
.psa-auth-tract-structure{font-size:11px;color:var(--muted);margin-bottom:8px;}
.psa-auth-tract-note{font-size:10px;color:var(--muted);font-style:italic;}
/* Phase 4 inc 4-A0.5 — classification banner + missed-blocks confirm.
   Both surface user-confirmation gates that must close before save.
   Tone variants (medium / warning / block) cue the user on confidence. */
.psa-auth-classify{padding:12px 14px;border-radius:10px;margin-bottom:12px;border:1px solid;}
.psa-auth-classify-medium{background:rgba(var(--brand-og-accent-rgb),.04);border-color:rgba(var(--brand-og-accent-rgb),.18);}
.psa-auth-classify-warning{background:rgba(204,156,66,.06);border-color:rgba(204,156,66,.30);}
.psa-auth-classify-block{background:rgba(234,134,143,.06);border-color:rgba(234,134,143,.30);}
.psa-auth-classify.is-confirmed{opacity:.78;}
.psa-auth-classify-hdr{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;}
.psa-auth-classify-title{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text);}
.psa-auth-classify-conf{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);}
.psa-auth-classify-conf strong{color:var(--text);}
.psa-auth-classify-rationale{font-size:11px;color:var(--muted);font-style:italic;margin-bottom:8px;line-height:1.5;}
.psa-auth-classify-evidence{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;}
.psa-auth-classify-chip{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:rgba(0,0,0,.04);color:var(--text);padding:2px 6px;border-radius:3px;}
.psa-auth-classify-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.psa-auth-classify-confirmed-msg{font-size:11px;color:var(--brand-og-accent);font-weight:600;margin-right:6px;}
/* Final check — did we miss any sig blocks? */
.psa-auth-missing-confirm{padding:12px 14px;background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;align-self:start;}
.psa-auth-missing-confirm.is-confirmed{background:rgba(var(--brand-og-accent-rgb),.04);border-color:rgba(var(--brand-og-accent-rgb),.20);}
.psa-auth-missing-confirm-hdr{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-og-accent);margin-bottom:6px;}
.psa-auth-missing-confirm-text{font-size:12px;color:var(--text);line-height:1.5;margin-bottom:10px;}
.psa-auth-missing-confirm-actions{display:flex;flex-wrap:wrap;gap:6px;}
.psa-auth-missing-confirmed-msg{font-size:11px;color:var(--brand-og-accent);font-weight:600;margin-right:6px;}

/* Phase 4 inc 4-A1.6 P3 — Manual mode two-pane editor.
   Left pane: scrollable paragraph list with color-stripe per annotation
   kind. Right pane: action buttons + inline forms for the selected
   paragraph. Color-stripes use existing brand tokens — sig=teal (og
   accent), value=brass, tract=info-blue, ignore=muted. */
.psa-auth-manual{display:flex;flex-direction:column;gap:14px;}
.psa-auth-manual-hdr{padding:12px 14px;background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;}
.psa-auth-manual-hdr-title{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.psa-auth-manual-mode-pill{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border-radius:4px;background:rgba(var(--brand-og-accent-rgb),.10);color:var(--brand-og-accent);}
.psa-auth-manual-hdr-summary{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:12px;color:var(--muted);}
.psa-auth-manual-body{display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:14px;align-items:start;}
.psa-auth-manual-list{display:flex;flex-direction:column;gap:4px;max-height:62vh;overflow-y:auto;padding:8px;background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;}
.psa-auth-manual-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:8px 10px;border-radius:8px;cursor:pointer;border-left:3px solid transparent;background:#FFFFFF;transition:background .15s;}
.psa-auth-manual-row:hover{background:rgba(0,0,0,.03);}
.psa-auth-manual-row.is-selected{background:rgba(var(--brand-og-accent-rgb),.06);outline:1px solid rgba(var(--brand-og-accent-rgb),.30);}
.psa-auth-manual-row--sig{border-left-color:var(--brand-og-accent);background:rgba(var(--brand-og-accent-rgb),.04);}
.psa-auth-manual-row--value{border-left-color:var(--brand-brass);background:rgba(204,156,66,.06);}
.psa-auth-manual-row--tract_start,.psa-auth-manual-row--tract_end{border-left-color:var(--color-info,#4b8ef5);background:rgba(75,142,245,.05);}
.psa-auth-manual-row--ignore{border-left-color:rgba(0,0,0,.20);background:rgba(0,0,0,.02);opacity:.65;}
.psa-auth-manual-row-idx{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--muted);min-width:34px;}
.psa-auth-manual-row-text{font-size:12px;color:var(--text);line-height:1.45;}
.psa-auth-manual-row-badge{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:4px;white-space:nowrap;align-self:center;}
.psa-auth-manual-row-badge--sig{background:rgba(var(--brand-og-accent-rgb),.12);color:var(--brand-og-accent);}
.psa-auth-manual-row-badge--value{background:rgba(204,156,66,.14);color:#7A5C20;}
.psa-auth-manual-row-badge--tract{background:rgba(75,142,245,.14);color:#2C5BBE;}
.psa-auth-manual-row-badge--ignore{background:rgba(0,0,0,.06);color:var(--muted);}
.psa-auth-manual-panel{padding:14px 16px;background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;min-height:420px;align-self:start;position:sticky;top:14px;}
.psa-auth-manual-panel-empty{display:flex;flex-direction:column;gap:14px;color:var(--muted);}
.psa-auth-manual-panel-hint{font-size:13px;font-style:italic;}
.psa-auth-manual-panel-help{font-size:12px;line-height:1.55;}
.psa-auth-manual-panel-help ul{margin:6px 0 0 18px;padding:0;}
.psa-auth-manual-panel-help li{margin-bottom:4px;}
.psa-auth-manual-panel-content{display:flex;flex-direction:column;gap:10px;}
.psa-auth-manual-panel-hdr{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-og-accent);}
.psa-auth-manual-panel-text{font-size:13px;line-height:1.5;color:var(--text);padding:10px 12px;background:rgba(0,0,0,.03);border-radius:8px;border-left:1px solid var(--brand-og-accent);max-height:160px;overflow-y:auto;}
.psa-auth-manual-current{font-size:11px;color:var(--muted);padding:8px 10px;background:rgba(var(--brand-og-accent-rgb),.04);border-radius:6px;}
.psa-auth-manual-panel-actions{display:flex;flex-direction:column;gap:6px;}
.psa-auth-manual-panel-actions .btn{justify-content:flex-start;text-align:left;}
.psa-auth-manual-form{display:flex;flex-direction:column;gap:8px;}
.psa-auth-manual-form-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:6px;}
@media (max-width:900px){
  .psa-auth-manual-body{grid-template-columns:1fr;}
  .psa-auth-manual-panel{position:static;}
}
/* Phase 4 inc 4-A0 — third pane: signature blocks. Lives in the right side-col
   stacked under tract-info. Styled to match the rest of the review step:
   #FFFFFF card surface, 1px tint border, brand-og-accent active state, mono
   tags for block_id / paragraph_idx / origin badges. */
.psa-auth-side-col{display:flex;flex-direction:column;gap:14px;align-self:start;}
.psa-auth-sig-info{background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;overflow:hidden;}
.psa-auth-sig-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:rgba(0,0,0,.02);border-bottom:1px solid rgba(0,0,0,.04);}
.psa-auth-sig-title{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-og-accent);}
.psa-auth-sig-empty{padding:14px;font-size:11px;color:var(--muted);line-height:1.5;font-style:italic;}
.psa-auth-sig-list{display:flex;flex-direction:column;}
.psa-auth-sig-row{display:flex;flex-direction:column;gap:8px;padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.04);transition:background .12s;}
.psa-auth-sig-row:last-child{border-bottom:none;}
.psa-auth-sig-row.is-accepted{background:rgba(var(--brand-og-accent-rgb),.03);}
.psa-auth-sig-row-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.psa-auth-sig-toggle{display:flex;align-items:center;cursor:pointer;}
.psa-auth-sig-toggle input{width:14px;height:14px;accent-color:var(--brand-og-accent);cursor:pointer;}
.psa-auth-sig-block-id{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:var(--text);background:rgba(0,0,0,.04);padding:2px 6px;border-radius:3px;}
.psa-auth-sig-origin{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 5px;border-radius:3px;border:1px solid rgba(0,0,0,.06);}
.psa-auth-sig-origin.is-detect{color:var(--muted);background:rgba(0,0,0,.02);}
.psa-auth-sig-origin.is-manual{color:var(--brand-og-accent);background:rgba(var(--brand-og-accent-rgb),.06);border-color:rgba(var(--brand-og-accent-rgb),.20);}
.psa-auth-sig-idx{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);background:rgba(0,0,0,.02);padding:1px 5px;border-radius:3px;}
.psa-auth-sig-idx.is-null{font-style:italic;}
.psa-auth-sig-role{margin-left:auto;padding:3px 6px;font-size:10px;font-family:'JetBrains Mono',monospace;font-weight:700;letter-spacing:.04em;border:1px solid rgba(0,0,0,.12);border-radius:5px;background:#FFFFFF;color:var(--text);cursor:pointer;}
.psa-auth-sig-delete{width:20px;height:20px;border-radius:4px;border:1px solid rgba(0,0,0,.06);background:rgba(0,0,0,.02);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;padding:0;transition:all .12s;}
.psa-auth-sig-delete:hover{background:rgba(234,134,143,.10);border-color:rgba(234,134,143,.20);color:var(--color-red);}
.psa-auth-sig-row-mid{display:flex;flex-direction:column;gap:6px;}
.psa-auth-sig-field-row{display:flex;flex-direction:column;gap:3px;}
.psa-auth-sig-field-label{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.psa-auth-sig-input{width:100%;padding:5px 8px;font-size:11px;font-family:inherit;border:1px solid rgba(0,0,0,.12);border-radius:5px;background:#FFFFFF;color:var(--text);}
.psa-auth-sig-input:focus{border-color:rgba(var(--brand-og-accent-rgb),.4);outline:none;}
.psa-auth-sig-snippet{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);background:rgba(0,0,0,.02);padding:5px 8px;border-radius:4px;line-height:1.4;word-break:break-word;}
.psa-auth-sig-rationale{font-size:10px;color:var(--muted);font-style:italic;line-height:1.4;}
.psa-auth-review-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:10px;border-top:1px solid rgba(0,0,0,.04);}
/* Phase 4 inc 4-A1 — marker preview modal: side-by-side PDF view */
.psa-auth-preview-overlay{position:fixed;inset:0;background:rgba(20,28,40,.55);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:9000;}
.psa-auth-preview-modal{background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;width:min(96vw,1400px);height:min(92vh,900px);display:flex;flex-direction:column;box-shadow:0 16px 48px oklch(0.20 0.010 200 / 0.18);}
.psa-auth-preview-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:rgba(0,0,0,.02);border-bottom:1px solid rgba(0,0,0,.04);border-radius:10px 10px 0 0;}
.psa-auth-preview-title{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-og-accent);}
.psa-auth-preview-body{flex:1;display:flex;gap:10px;padding:14px;overflow:hidden;background:rgba(0,0,0,.02);}
.psa-auth-preview-pane{flex:1;display:flex;flex-direction:column;background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:8px;overflow:hidden;min-width:0;}
.psa-auth-preview-pane-hdr{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 12px;background:rgba(0,0,0,.02);border-bottom:1px solid rgba(0,0,0,.04);}
.psa-auth-preview-iframe{flex:1;width:100%;border:none;background:#FFFFFF;}
.psa-auth-preview-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:32px;}
.psa-auth-preview-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;}
.psa-auth-preview-error-title{font-size:14px;font-weight:600;color:var(--color-red);}
.psa-auth-preview-error-msg{font-size:12px;color:var(--muted);max-width:480px;line-height:1.5;text-align:center;}
.psa-auth-preview-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;}
@media (max-width:900px){.psa-auth-preview-body{flex-direction:column;}}

/* Step 4 — save form */
.psa-auth-save-body{max-width:560px;margin:0 auto;}
.psa-auth-save-form{display:flex;flex-direction:column;gap:14px;margin:18px 0;background:#FFFFFF;border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:18px 20px;}
.psa-auth-save-form input,.psa-auth-save-form select,.psa-auth-save-form textarea{width:100%;padding:7px 10px;font-size:12px;border:1px solid rgba(0,0,0,.12);border-radius:6px;background:#FFFFFF;color:var(--text);font-family:inherit;}
.psa-auth-save-form textarea{resize:vertical;}

/* Step 5 — done */
.psa-auth-done{display:flex;flex-direction:column;align-items:center;gap:10px;padding:80px 28px;text-align:center;}
.psa-auth-done-title{font-size:18px;font-weight:600;color:var(--text);}
.psa-auth-done-name{font-family:'Newsreader',Georgia,serif;font-style:italic;font-size:22px;color:var(--brand-og-accent);}
.psa-auth-done-actions{margin-top:14px;}

/* Error step */
.psa-auth-error{padding:48px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;}
.psa-auth-error-title{font-size:16px;font-weight:600;color:var(--color-red);}
.psa-auth-error-msg{font-size:12px;color:var(--muted);max-width:480px;line-height:1.5;}
.psa-auth-error-actions{display:flex;gap:8px;margin-top:14px;}

/* ── Scope Assignment Checklist ── */
.prof-scope-list{display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto;padding:2px 0;}
.prof-scope-item{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;font-size:11px;color:var(--text);cursor:pointer;transition:background .12s;}
.prof-scope-item:hover{background:rgba(255,255,255,.03);}
.prof-scope-item input[type="checkbox"]{width:13px;height:13px;accent-color:var(--accent);cursor:pointer;}

/* ── Inline Invite Form ── */
.prof-invite-form{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease,margin .3s ease,opacity .3s ease;opacity:0;background:rgba(var(--accent-rgb),.03);border:1px solid rgba(var(--accent-rgb),.12);border-radius:8px;padding:0 16px;margin-bottom:0;}
.prof-invite-form.open{max-height:400px;padding:14px 16px;margin-bottom:14px;opacity:1;}
.prof-invite-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.prof-invite-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:0 2px;transition:color .12s;}
.prof-invite-close:hover{color:var(--text);}
.prof-invite-row{display:flex;gap:8px;align-items:center;}
.prof-invite-select{background:var(--s2);border:1px solid rgba(var(--accent-rgb),.15);border-radius:6px;padding:4px 10px;color:var(--text);font-size:11px;font-family:inherit;cursor:pointer;}
.prof-invite-select:focus{border-color:rgba(var(--accent-rgb),.4);outline:none;}
.prof-invite-link-box{display:flex;flex-direction:column;gap:4px;}
.prof-invite-link-input{width:100%;background:var(--s2);border:1px solid rgba(255,255,255,.08);border-radius:5px;padding:6px 8px;color:var(--text);font-size:10px;font-family:'JetBrains Mono',monospace;}
.prof-invite-item{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.03);font-size:10px;}
.prof-invite-item:last-child{border-bottom:none;}
.prof-invite-meta{color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:9px;flex:1;}
.prof-invite-copy{background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.15);border-radius:4px;color:var(--accent);font-size:9px;font-weight:600;padding:2px 8px;cursor:pointer;font-family:inherit;transition:all .12s;}
.prof-invite-copy:hover{background:rgba(var(--accent-rgb),.15);}
.prof-invite-revoke{width:18px;height:18px;border-radius:4px;border:1px solid rgba(234,134,143,.15);background:rgba(234,134,143,.05);color:var(--color-red);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;padding:0;transition:all .12s;}
.prof-invite-revoke:hover{background:rgba(234,134,143,.15);}

/* ── Profile Tab Input Polish ── */
.prof-card-body .f-ctrl:focus{border-color:rgba(var(--accent-rgb),.4);box-shadow:0 1px 0 0 var(--accent);outline:none;}

/* ── Deal Pipeline ── */
.deals-filter-pills{display:flex;gap:4px;flex-wrap:wrap;align-items:center;}
/* Deal panel PSA section */
.deal-psa-empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 16px;text-align:center;}
.deal-psa-empty-text{font-size:12px;font-weight:600;color:var(--text);opacity:.7;}
.deal-psa-empty-sub{font-size:10px;color:var(--muted);max-width:220px;line-height:1.4;}
.deal-psa-upload-btn{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:8px 16px;font-size:11px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:8px;cursor:pointer;transition:all .15s;}
.deal-psa-upload-btn:hover{filter:brightness(1.1);box-shadow:0 2px 8px rgba(var(--accent-rgb),.3);}
.deal-psa-manage{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:all .15s;}
.deal-psa-manage:hover{background:var(--glass);color:var(--accent);border-color:rgba(var(--accent-rgb),.3);}
.deal-psa-list{padding:8px 12px;display:flex;flex-direction:column;gap:6px;}
/* D1-C: consolidated "PSA & Documents" card — Generate PSA / Signed PSA /
   Documents as labeled sub-sections inside ONE .deal-panel-section. Inner
   blocks use .deal-psa-subsection (not .deal-panel-section / .deal-section-toggle)
   so they don't toggle or count for nth-child; the whole group collapses under
   the single outer chevron via the existing direct-child collapse rule. */
.deal-psa-docs-body{padding:0;}
.deal-psa-subsection{padding:12px 16px;border-top:1px solid var(--border);}
.deal-psa-subsection:first-child{border-top:none;}
.deal-psa-subsection-label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;}
.deal-psa-subsection .deal-psa-list{padding:0;}
.deal-psa-subsection .deal-docs-upload-row{padding:0;margin-bottom:8px;}
.deal-psa-subsection .deal-checklist{padding:0;}
.deal-psa-btn-row{display:flex;align-items:center;gap:4px;}
.deal-psa-btn-row .deal-psa-btn{flex:1;min-width:0;}
.deal-psa-del{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;opacity:0;transition:all .15s;flex-shrink:0;}
.deal-psa-btn-row:hover .deal-psa-del{opacity:1;}
.deal-psa-del:hover{color:var(--color-red);background:rgba(220,38,38,.08);}
.deal-psa-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:rgba(var(--accent-rgb),.04);border:1px solid rgba(var(--accent-rgb),.12);border-radius:10px;cursor:pointer;transition:all .15s;text-align:left;}
.deal-psa-btn:hover{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.25);box-shadow:0 2px 8px rgba(var(--accent-rgb),.08);}
.deal-psa-btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:rgba(var(--accent-rgb),.08);color:var(--accent);flex-shrink:0;}
.deal-psa-btn-text{flex:1;min-width:0;}
.deal-psa-btn-name{display:block;font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.deal-psa-btn-meta{display:block;font-size:9px;color:var(--muted);margin-top:1px;}
.deal-psa-btn-action{font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border-radius:6px;background:rgba(var(--accent-rgb),.08);flex-shrink:0;transition:background .15s;}
.deal-psa-btn:hover .deal-psa-btn-action{background:rgba(var(--accent-rgb),.15);}
/* P3 flash fix: deal-panel PSA buttons are injected AFTER body.perm-ready, so the
   layout.css `body:not(.perm-ready) [data-perm]` cloak no longer hides them — they
   would flash for one frame before permGate.apply(panel) runs. Default-hidden until
   perm-gate.js adds .perm-allowed (mirrors `.sb-label[data-perm]:not(.perm-allowed)`
   in layout.css). Click-time fail-closed + server denial remain authoritative. */
.deal-psa-btn[data-perm]:not(.perm-allowed){display:none;}

/* ── Signed PSA upload drawer (CO-024 Phase 4 inc 4-E) ────────────── */
.psa-signed-upload-overlay{position:fixed;inset:0;background:rgba(15,23,42,.32);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .2s ease-out;z-index:calc(var(--z-modal,900));}
.psa-signed-upload-overlay.open{opacity:1;pointer-events:auto;}
.psa-signed-upload-drawer .drawer-title{font-size:20px;}
.psa-signed-subtitle{font-size:12px;color:var(--muted);margin-top:2px;font-family:'Geist',sans-serif;}
.psa-signed-picker{padding:8px 0 0;}
.psa-signed-picker-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 24px;border:1.5px dashed var(--border);border-radius:12px;background:rgba(var(--accent-rgb),.02);color:var(--muted);text-align:center;cursor:pointer;transition:background .15s,border-color .15s,color .15s;}
.psa-signed-picker-zone:hover,.psa-signed-picker-zone.drag-over{background:rgba(var(--accent-rgb),.06);border-color:rgba(var(--accent-rgb),.45);color:var(--text);}
.psa-signed-picker-title{font-size:14px;font-weight:600;color:var(--text);}
.psa-signed-picker-hint{font-size:11px;color:var(--muted);max-width:360px;}
.psa-signed-analyzing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:48px 24px;text-align:center;}
.psa-signed-spinner{width:34px;height:34px;border:2.5px solid rgba(var(--accent-rgb),.18);border-top-color:var(--accent);border-radius:50%;animation:psaSignedSpin .9s linear infinite;}
@keyframes psaSignedSpin{to{transform:rotate(360deg);}}
.psa-signed-analyzing-title{font-size:14px;font-weight:600;color:var(--text);}
.psa-signed-analyzing-msg{font-size:12px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.psa-signed-error{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 24px;text-align:center;color:var(--color-warning,#b45309);}
.psa-signed-error-title{font-size:14px;font-weight:600;color:var(--text);}
.psa-signed-error-msg{font-size:12px;color:var(--muted);max-width:380px;line-height:1.45;}
.psa-signed-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0 14px;border-bottom:1px solid var(--border);margin-bottom:14px;}
.psa-signed-summary-pill{display:inline-flex;align-items:baseline;gap:6px;padding:6px 12px;background:rgba(var(--accent-rgb),.08);border-radius:8px;}
.psa-signed-summary-num{font-family:'JetBrains Mono',monospace;font-size:18px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;}
.psa-signed-summary-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.psa-signed-summary-pill--meta{background:transparent;color:var(--muted);font-size:11px;}
.psa-signed-status-pills{display:flex;gap:6px;margin-left:auto;}
.psa-signed-pill{font-size:10px;font-weight:600;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;}
.psa-signed-pill--signed{background:rgba(34,134,58,.14);color:#1f6132;}
.psa-signed-pill--uncertain{background:rgba(180,83,9,.14);color:#92400e;}
.psa-signed-pill--unsigned{background:rgba(100,116,139,.14);color:#475569;}
.psa-signed-section-title{font-size:11px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;}
.psa-signed-section-hint{font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0;font-size:10px;margin-left:6px;}
.psa-signed-blocks{display:flex;flex-direction:column;gap:8px;}
.psa-signed-block{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;}
.psa-signed-block-head{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);}
.psa-signed-block-id{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--text);font-size:11px;}
.psa-signed-block-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);}
.psa-signed-block-source{font-size:9px;padding:2px 7px;border-radius:6px;text-transform:lowercase;background:rgba(0,0,0,.04);color:var(--muted);}
.psa-signed-block-source--text-layer{background:rgba(34,134,58,.10);color:#1f6132;}
.psa-signed-block-source--vision-fallback{background:rgba(125,71,209,.12);color:#6b21a8;}
.psa-signed-block-source--vision-external{background:rgba(125,71,209,.12);color:#6b21a8;}
.psa-signed-block-source--ocr{background:rgba(180,83,9,.12);color:#92400e;}
.psa-signed-block-page{margin-left:auto;font-size:10px;color:var(--muted);}
.psa-signed-block-party{font-size:12px;color:var(--text);margin-top:6px;line-height:1.4;}
.psa-signed-block-ink{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:6px;margin-top:8px;}
.psa-signed-block-ink--signed{background:rgba(34,134,58,.14);color:#1f6132;}
.psa-signed-block-ink--uncertain{background:rgba(180,83,9,.14);color:#92400e;}
.psa-signed-block-ink--unsigned{background:rgba(100,116,139,.14);color:#475569;}
.psa-signed-block-ink--no-region{background:rgba(100,116,139,.10);color:#64748b;}

/* 4-E.2 — per-block evidence + actions */
.psa-signed-block-snip{display:block;width:100%;max-height:180px;object-fit:cover;object-position:center;margin-top:10px;border:1px solid var(--border);border-radius:6px;background:#fafbfc;}
.psa-signed-block-snip--missing{padding:18px 12px;text-align:center;font-size:11px;color:var(--muted);font-style:italic;}
.psa-signed-block-fuzzy{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:6px;}
.psa-signed-block-fuzzy--matched{background:rgba(34,134,58,.14);color:#1f6132;}
.psa-signed-block-fuzzy--mismatch{background:rgba(180,83,9,.14);color:#92400e;}
.psa-signed-block-ink-row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap;}
.psa-signed-block-ink-detail{font-size:10px;color:var(--muted);font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;}
.psa-signed-block-actions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;padding-top:10px;border-top:1px dashed var(--border);}
.psa-signed-radio{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:11px;font-weight:500;color:var(--muted);background:#fff;transition:background .12s,border-color .12s,color .12s;user-select:none;}
.psa-signed-radio input[type="radio"]{position:absolute;opacity:0;pointer-events:none;width:0;height:0;}
.psa-signed-radio:hover{background:rgba(0,0,0,.02);color:var(--text);}
.psa-signed-radio.is-selected{color:var(--text);font-weight:600;}
.psa-signed-radio--confirm.is-selected{background:rgba(34,134,58,.10);border-color:rgba(34,134,58,.40);color:#1f6132;}
.psa-signed-radio--override.is-selected{background:rgba(180,83,9,.10);border-color:rgba(180,83,9,.40);color:#92400e;}
.psa-signed-radio--skip.is-selected{background:rgba(100,116,139,.10);border-color:rgba(100,116,139,.40);color:#475569;}

/* 4-E.3 — wrong-doc multi-signal banner */
.psa-signed-banner{display:flex;gap:12px;padding:12px 14px;border-radius:8px;border:1px solid;margin-bottom:14px;align-items:flex-start;}
.psa-signed-banner svg{flex-shrink:0;margin-top:2px;}
.psa-signed-banner--high{background:rgba(180,83,9,.06);border-color:rgba(180,83,9,.30);color:#92400e;}
.psa-signed-banner--medium{background:rgba(180,83,9,.04);border-color:rgba(180,83,9,.20);color:#92400e;}
.psa-signed-banner--low{background:rgba(100,116,139,.04);border-color:rgba(100,116,139,.20);color:#475569;}
.psa-signed-banner-title{font-size:12px;font-weight:600;margin-bottom:6px;color:var(--text);}
.psa-signed-banner-list{margin:0;padding-left:16px;font-size:12px;line-height:1.5;}
.psa-signed-banner-item{margin-bottom:3px;}
.psa-signed-banner-item--high{font-weight:500;}

/* 4-E.3 — encrypted PDF password prompt */
.psa-signed-password{display:flex;flex-direction:column;align-items:center;gap:14px;padding:48px 24px;text-align:center;color:var(--muted);}
.psa-signed-password svg{color:var(--accent);}
.psa-signed-password-title{font-size:16px;font-weight:600;color:var(--text);}
.psa-signed-password-hint{font-size:12px;max-width:380px;line-height:1.45;}
.psa-signed-password-err{font-size:12px;font-weight:500;color:#92400e;background:rgba(180,83,9,.08);padding:8px 14px;border-radius:6px;}
.psa-signed-password-input{width:100%;max-width:320px;padding:10px 14px;font-size:14px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-family:'JetBrains Mono',monospace;letter-spacing:.05em;}
.psa-signed-password-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15);}

/* 4-E.4b — diff vs generated section */
.psa-signed-diff{margin-top:18px;padding:14px;border:1px solid var(--border);border-radius:10px;background:#fafbfc;}
.psa-signed-diff--loading,.psa-signed-diff--skipped,.psa-signed-diff--error{background:rgba(0,0,0,.02);}
.psa-signed-diff-status{font-size:12px;color:var(--muted);line-height:1.45;margin-top:6px;}
.psa-signed-diff-clean{font-size:12px;color:#1f6132;margin-top:6px;font-weight:500;}
.psa-signed-diff-overall{display:inline-block;font-size:9px;font-weight:700;padding:2px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.06em;margin-left:8px;vertical-align:middle;}
.psa-signed-diff-overall--clean{background:rgba(34,134,58,.14);color:#1f6132;}
.psa-signed-diff-overall--low{background:rgba(100,116,139,.14);color:#475569;}
.psa-signed-diff-overall--medium{background:rgba(180,83,9,.14);color:#92400e;}
.psa-signed-diff-overall--high{background:rgba(180,83,9,.20);color:#7c2d12;}
.psa-signed-diff-buckets{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.psa-signed-diff-bucket{border:1px solid var(--border);border-radius:8px;background:#fff;}
.psa-signed-diff-bucket summary{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:11px;list-style:none;}
.psa-signed-diff-bucket summary::-webkit-details-marker{display:none;}
.psa-signed-diff-bucket summary::before{content:'›';color:var(--muted);transition:transform .15s;display:inline-block;font-size:14px;}
.psa-signed-diff-bucket[open] summary::before{transform:rotate(90deg);}
.psa-signed-diff-bucket-label{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em;}
.psa-signed-diff-bucket--high .psa-signed-diff-bucket-label{color:#7c2d12;}
.psa-signed-diff-bucket--medium .psa-signed-diff-bucket-label{color:#92400e;}
.psa-signed-diff-bucket--low .psa-signed-diff-bucket-label{color:#475569;}
.psa-signed-diff-bucket--clean .psa-signed-diff-bucket-label{color:#1f6132;}
.psa-signed-diff-bucket-count{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;font-size:11px;padding:1px 7px;background:rgba(0,0,0,.04);border-radius:5px;}
.psa-signed-diff-bucket-desc{font-size:10px;color:var(--muted);}
.psa-signed-diff-list{margin:0;padding:0 14px 12px;list-style:none;display:flex;flex-direction:column;gap:8px;}
.psa-signed-diff-item{padding:10px;background:rgba(0,0,0,.02);border-radius:6px;font-size:12px;line-height:1.45;}
.psa-signed-diff-kind{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:var(--accent);text-transform:lowercase;margin-bottom:4px;}
.psa-signed-diff-rationale{color:var(--text);margin-bottom:6px;}
.psa-signed-diff-side{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:var(--muted);margin-top:4px;}
.psa-signed-diff-side-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);min-width:60px;flex-shrink:0;}
.psa-signed-diff-ack{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:10px 12px;border:1px solid rgba(180,83,9,.30);border-radius:8px;cursor:pointer;background:rgba(180,83,9,.04);transition:background .12s,border-color .12s;}
.psa-signed-diff-ack input[type="checkbox"]{margin:2px 0 0;flex-shrink:0;accent-color:var(--accent);width:16px;height:16px;cursor:pointer;}
.psa-signed-diff-ack:hover{background:rgba(180,83,9,.08);}
.psa-signed-diff-ack.is-checked{background:rgba(34,134,58,.06);border-color:rgba(34,134,58,.30);}
.psa-signed-diff-ack-title{font-size:12px;font-weight:600;color:var(--text);margin-bottom:2px;}
.psa-signed-diff-ack-hint{font-size:11px;color:var(--muted);line-height:1.45;}

/* 4-E.4c — status banner above CTA */
.psa-signed-status{margin-top:18px;padding:12px 14px;border-radius:8px;border:1px solid var(--border);}
.psa-signed-status--awaiting{background:rgba(100,116,139,.06);border-color:rgba(100,116,139,.20);}
.psa-signed-status--partial{background:rgba(180,83,9,.05);border-color:rgba(180,83,9,.25);}
.psa-signed-status--fully{background:rgba(34,134,58,.06);border-color:rgba(34,134,58,.30);}
.psa-signed-status-counter{display:flex;align-items:baseline;gap:8px;}
.psa-signed-status-num{font-family:'JetBrains Mono',monospace;font-size:24px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;line-height:1;}
.psa-signed-status--fully .psa-signed-status-num{color:#1f6132;}
.psa-signed-status-of{font-size:12px;color:var(--text);font-weight:500;}
.psa-signed-status-breakdown{font-size:11px;color:var(--muted);margin-top:4px;}
.psa-signed-status-missing{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border);}
.psa-signed-status-missing-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px;}
.psa-signed-status-missing-list{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text);}
.psa-signed-status-role{display:inline-block;font-size:9px;font-weight:700;padding:2px 7px;border-radius:5px;background:rgba(var(--accent-rgb),.10);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-right:8px;vertical-align:middle;}

/* 4-E.4c — success state */
.psa-signed-success{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 24px;text-align:center;color:var(--muted);}
.psa-signed-success svg{color:#1f6132;}
.psa-signed-success-title{font-size:16px;font-weight:600;color:var(--text);}
.psa-signed-success-sub{font-size:12px;max-width:380px;line-height:1.45;}

/* 4-E.4d — existing-signed intro state */
.psa-signed-existing{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;text-align:center;}
.psa-signed-existing--advanced svg{color:#1f6132;}
.psa-signed-existing--partial svg{color:#92400e;}
.psa-signed-existing-title{font-size:18px;font-weight:600;color:var(--text);}
.psa-signed-existing-sub{font-size:12px;color:var(--muted);max-width:420px;line-height:1.5;}
.psa-signed-existing-history{margin-top:8px;width:100%;max-width:520px;text-align:left;padding:12px 14px;background:rgba(0,0,0,.02);border:1px solid var(--border);border-radius:8px;}
.psa-signed-existing-history-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
.psa-signed-existing-history-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;}
.psa-signed-existing-history-item{display:flex;align-items:baseline;gap:10px;font-size:11px;line-height:1.45;}
.psa-signed-existing-history-num{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--accent);font-size:10px;width:20px;}
.psa-signed-existing-history-when{color:var(--text);font-weight:500;}
.psa-signed-existing-history-meta{color:var(--muted);}
.psa-signed-existing-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px;width:100%;max-width:340px;}
.psa-signed-existing-actions .btn{width:100%;justify-content:center;}
.psa-signed-existing-unmark{color:#7c2d12;}

/* 4-E.4d — unmark confirm modal — uses base .modal-frame primitive
   (fixed top/left 50% + translate centering already defined in
   components.css). z-index bump so it stacks above the upload drawer. */
.psa-signed-unmark-modal{z-index:calc(var(--z-modal,900) + 3) !important;}
.psa-signed-unmark-modal.open{transform:translate(-50%, -50%);}
.psa-signed-unmark-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(2px);z-index:calc(var(--z-modal,900) + 2);}
.psa-signed-unmark-modal .modal-frame-card{display:flex;flex-direction:column;}
.psa-signed-unmark-modal .modal-frame-body{padding:18px 22px;}
.psa-signed-unmark-modal .modal-frame-body p{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px;}
.psa-signed-unmark-label{display:block;font-size:11px;font-weight:600;color:var(--text);margin-bottom:6px;}
.psa-signed-unmark-input{width:100%;padding:10px 12px;font-size:12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-family:'Geist Sans',sans-serif;line-height:1.45;resize:vertical;}
.psa-signed-unmark-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15);}
.psa-signed-unmark-input--err{border-color:#92400e;box-shadow:0 0 0 3px rgba(180,83,9,.15);}
.psa-signed-unmark-modal .modal-frame-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--border);}
.btn-warning{background:#92400e;color:#fff;border:1px solid #7c2d12;font-weight:600;}
.btn-warning:hover{background:#7c2d12;}
.psa-signed-replace-banner{margin-bottom:14px;}

/* 4-E.5 outage banner — same primitive as wrong-doc, distinct title */
.psa-signed-outage-banner{margin-bottom:10px;}
.psa-signed-outage-banner svg{stroke:#92400e;}
.psa-signed-outage-banner.psa-signed-banner--high svg{stroke:#7c2d12;}
.psa-signed-empty{padding:28px 14px;text-align:center;color:var(--muted);font-size:12px;}
.psa-signed-empty-hint{font-size:11px;margin-top:8px;line-height:1.45;}
.psa-signed-diagnostics{margin-top:18px;padding:10px 12px;background:rgba(0,0,0,.02);border:1px solid var(--border);border-radius:8px;font-size:11px;color:var(--muted);}
.psa-signed-diagnostics summary{cursor:pointer;font-weight:600;color:var(--text);font-size:11px;}
.psa-signed-diagnostics ul{margin:8px 0 0;padding-left:18px;}
.psa-signed-diagnostics li{margin-bottom:4px;line-height:1.45;}

/* Deal panel "Signed PSA" inline section status pill */
.deal-psa-signed-pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:600;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;background:rgba(100,116,139,.10);color:#475569;}
.deal-psa-signed-pill--awaiting{background:rgba(100,116,139,.10);color:#475569;}
.deal-psa-signed-pill--signed{background:rgba(34,134,58,.14);color:#1f6132;}
/* D1-C: states the reconcile logic (deals.js) already emits but had no CSS.
   --warn  = status says Signed but NO signed_path in the audit log (evidence
             missing) → amber Wireline warning token.
   --evidence = a signed_path exists but the deal status hasn't advanced to
             Signed → teal working accent, distinct from the green --signed. */
.deal-psa-signed-pill--warn{background:rgba(var(--color-warning-rgb),.14);color:var(--color-warning);}
.deal-psa-signed-pill--evidence{background:rgba(var(--color-secondary-rgb),.12);color:var(--color-secondary);}

/* Deal panel tract breakdown */
.deal-tract-list{padding:4px 14px 8px;display:flex;flex-direction:column;gap:4px;}
.deal-tract-row{padding:6px 10px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);border-radius:8px;}
.deal-tract-name{font-size:10px;font-weight:600;color:var(--text);opacity:.8;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.deal-tract-detail{display:flex;align-items:center;gap:4px;font-size:11px;}
.deal-tract-nra{color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:10px;}
.deal-tract-sep{color:var(--muted);opacity:.4;font-size:9px;}
.deal-tract-dnra{color:var(--text);font-weight:600;font-size:11px;}
.deal-tract-dnra-input{width:80px;padding:2px 6px;font-size:10px;background:var(--s3);border:1px solid var(--border);border-radius:5px;color:var(--text);font-family:'JetBrains Mono',monospace;}
.deal-tract-dnra-input:focus{border-color:var(--color-money);outline:none;}
.deal-tract-offer{color:var(--color-money);font-weight:600;font-size:11px;margin-left:auto;}
.deal-total-row{border-top:1px solid var(--border);padding-top:6px;margin-top:2px;}
/* Collapsible deal panel sections */
.deal-section-toggle{cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between;}
.deal-section-chev{font-size:14px;color:var(--muted);transition:transform .2s;transform:rotate(90deg);line-height:1;}
.deal-panel-section.collapsed .deal-section-chev{transform:rotate(0deg);}
.deal-panel-section.collapsed>*:not(.deal-panel-section-label):not(.deal-section-toggle){display:none;}
.deal-panel-section.collapsed .deal-docs-upload-row{display:none;}
.deal-section-toggle:hover{opacity:.8;}
.deals-pipeline{display:flex;gap:14px;overflow-x:auto;padding-bottom:16px;min-height:calc(100vh - 180px);justify-content:center;}
/* Deals Pipeline (Phase 7 §6.18 — light surface, no glows, no hover
   lifts, no colored stripe at column top). */
.deal-column{flex:1;min-width:260px;max-width:340px;display:flex;flex-direction:column;background:var(--s1);border-radius:8px;border:1px solid var(--border);padding:0 0 8px;box-shadow:var(--shadow-sm);}
.deal-column-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);border-radius:8px 8px 0 0;background:var(--s2);margin-bottom:6px;}
.deal-column-label{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text);}
.deal-column-count{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--muted);background:rgba(var(--accent-rgb),.08);padding:2px 8px;border-radius:4px;min-width:20px;text-align:center;}
.deal-column-body{flex:1;display:flex;flex-direction:column;gap:0;padding:0 8px;}
/* Empty kanban column footer — small label + ghost "+ Add deal"
   button per audit §3.10 P1. (Linear/Notion empty-column pattern.) */
.deal-column-empty{padding:24px 16px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;}
.deal-column-empty-label{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#9CA3AF;}
.deal-column-add{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-family:'Geist Sans',system-ui,sans-serif;font-size:12px;font-weight:500;color:var(--brand-og-accent, #298084);background:rgba(var(--brand-og-accent-rgb, 41,128,132),.06);border:1px dashed rgba(var(--brand-og-accent-rgb, 41,128,132),.30);border-radius:6px;cursor:pointer;transition:background-color .12s, border-color .12s, color .12s;}
.deal-column-add:hover{background:rgba(var(--brand-og-accent-rgb, 41,128,132),.12);border-color:var(--brand-og-accent, #298084);color:var(--brand-og-accent-hover, #1f6669);}
.deal-card{background:var(--s1);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);position:relative;overflow:hidden;}
.deal-card:hover{border-color:rgba(var(--brand-og-accent-rgb),.35);box-shadow:var(--shadow-md);}
.deal-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.deal-card-state-pills{display:flex;flex-wrap:wrap;gap:4px;margin:-4px 0 8px;}
/* Phase QC-0 (Quick Call V2 prep): un-scoped .cc-expand-pill PRIMITIVE.
   Per plan D-QC-12 + sub-step 2a, the base chrome (font, font-size,
   letter-spacing, color variants) moves here so Dashboard cc-expand-row,
   Deals deal card, AND Quick Call V2 all share one source of truth.
   Surface-specific shape overrides (round-pill vs sharp-chip vs density)
   stay scoped to their surfaces (see #view-dashboard + .deal-card-state-pills
   blocks). Two naming conventions are supported (cc-pill-* AND cc-expand-*)
   because render.js dashboard emits cc-expand-{kind} while deals.js + future
   Quick Call emit cc-pill-{kind}. Both ship in production; not consolidating
   per plan "no drift, no presumption". */
.cc-expand-pill{
  font-family:'JetBrains Mono',monospace;
  font-size:9px;
  font-weight:700;
  letter-spacing:.04em;
  border:1px solid transparent;
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
}
/* Color variants — naming convention #1: cc-pill-{kind} (Deals + Quick Call) */
.cc-pill-hot{color:#B45309;background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.30);}
.cc-pill-dnc{color:#991B1B;background:rgba(220,38,38,.12);border-color:rgba(220,38,38,.30);}
.cc-pill-decd,.cc-pill-sold{color:#475569;background:rgba(100,116,139,.12);border-color:rgba(100,116,139,.28);}
.cc-pill-opt,.cc-pill-unr{color:#991B1B;background:rgba(220,38,38,.08);border-color:rgba(220,38,38,.22);}
.cc-pill-pro{color:#5B3A92;background:rgba(124,58,237,.10);border-color:rgba(124,58,237,.26);}
.cc-pill-snz{color:#0E5B70;background:rgba(20,184,166,.10);border-color:rgba(20,184,166,.28);}
/* Color variants — naming convention #2: cc-expand-{kind} (Dashboard cc-expand-row in render.js).
   Mirror palette via OKLCH per dashboard's original design intent. */
.cc-expand-pro{background:oklch(0.72 0.12 80 / 0.18);color:oklch(0.45 0.12 80);}
.cc-expand-dnc{background:oklch(0.55 0.20 25 / 0.14);color:oklch(0.50 0.20 25);}
.cc-expand-decd,.cc-expand-sold{background:var(--s2,oklch(0.95 0.005 200));color:var(--dim,oklch(0.45 0.008 200));}
.cc-expand-opted{background:oklch(0.62 0.18 55 / 0.14);color:oklch(0.45 0.18 55);}
.cc-expand-unr{background:oklch(0.72 0.12 80 / 0.14);color:oklch(0.45 0.12 80);}
.cc-expand-snz{background:var(--s1,oklch(0.97 0.005 200));color:var(--dim,oklch(0.45 0.008 200));}
/* Deal card surface override — sharp-chip shape (3px radius, 1px 5px padding) */
.deal-card-state-pills .cc-expand-pill{padding:1px 5px;border-radius:3px;}
.deal-card-name{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;letter-spacing:-.01em;}
.deal-card-paused{opacity:.55;background:rgba(var(--color-amber-rgb),.06);}
.deal-paused-badge{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;color:#F59E0B;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.25);padding:1px 6px;border-radius:3px;flex-shrink:0;letter-spacing:.05em;}
.deal-paused-panel-badge{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:#F59E0B;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.2);padding:6px 12px;border-radius:6px;text-align:center;letter-spacing:.08em;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;}

.deal-card-mid{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:6px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.deal-card-nra{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--brand-og-accent);font-weight:600;font-variant-numeric:tabular-nums;}
.deal-card-price{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--color-money);font-variant-numeric:tabular-nums;}
.deal-card-bot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:2px;}
.deal-card-age{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);background:rgba(var(--accent-rgb),.06);padding:2px 6px;border-radius:4px;}
.deal-card-checklist{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--color-blue);background:rgba(var(--brand-og-accent-rgb),.08);border:1px solid rgba(var(--brand-og-accent-rgb),.15);padding:2px 6px;border-radius:4px;font-weight:600;}
.deal-card-assets{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);border:1px solid var(--border,#E2E5EA);padding:2px 6px;border-radius:4px;font-weight:600;font-variant-numeric:tabular-nums;}
.deal-card-assets-review{color:var(--color-warning);border-color:rgba(251,191,36,.3);}
.deal-stale-badge{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;padding:2px 6px;border-radius:4px;}
.deal-stale-badge-red{background:rgba(234,134,143,.12);color:var(--color-red);border:1px solid rgba(234,134,143,.25);animation:deal-pulse 2s ease-in-out infinite;}
.deal-stale-badge-yellow{background:rgba(var(--accent-rgb),.1);color:var(--accent-hover);border:1px solid rgba(var(--accent-rgb),.2);}
@keyframes deal-pulse{0%,100%{opacity:1;}50%{opacity:.6;}}
/* .deal-stale-red / .deal-stale-yellow border-left:3px stripes removed
   in R8 L4 Job 3 (BAN 1). Stale state is already signaled by the
   .deal-stale-badge pill (lines 3901-3903) inside the deal card —
   stripe was redundant. No replacement classes needed. */
.deal-closing-badge{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;padding:2px 6px;border-radius:4px;background:linear-gradient(135deg,rgba(var(--accent-rgb),.12),rgba(46,204,113,.12));color:var(--accent);border:1px solid rgba(var(--accent-rgb),.25);box-shadow:0 0 8px rgba(var(--accent-rgb),.1);}
.deal-closing-urgent{background:rgba(var(--accent-rgb),.12);color:var(--accent-hover);border-color:rgba(var(--accent-rgb),.25);}
.deal-closing-overdue{background:rgba(234,134,143,.12);color:var(--color-red);border-color:rgba(234,134,143,.25);box-shadow:0 0 10px rgba(234,134,143,.15);animation:deal-pulse 2s ease-in-out infinite;}

/* ── Owner Deal Badge ── */
.om-deal-badge-wrap{display:inline-flex;align-items:center;gap:4px;}
.om-deal-back-btn{padding:2px 8px;border-radius:6px;border:1px solid rgba(var(--brand-og-accent-rgb),.25);background:rgba(var(--brand-og-accent-rgb),.1);color:var(--color-blue);font-size:9px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .12s;box-shadow:0 1px 4px rgba(0,0,0,.15);}
.om-deal-back-btn:hover{background:rgba(var(--brand-og-accent-rgb),.18);border-color:rgba(var(--brand-og-accent-rgb),.4);}
.om-deal-badge{display:inline-flex;align-items:center;gap: 4px;padding:2px 8px;border-radius:6px;background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.2);color:var(--accent);font-size:9px;font-weight:700;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:all .15s;}
.om-deal-badge:hover{background:rgba(var(--accent-rgb),.15);border-color:rgba(var(--accent-rgb),.3);}
.om-deal-actions{display:flex;gap:2px;margin-left:4px;}
.om-deal-act-btn{background:none;border:none;color:var(--muted);font-size:10px;cursor:pointer;padding:0 2px;transition:color .12s;}
.om-deal-act-btn:hover{color:var(--text);}
.om-deal-act-close:hover{color:var(--color-red);}

/* ── Add Deal Modal ── */
.deal-add-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:900;align-items:center;justify-content:center;}
.deal-add-overlay.open{display:flex;}
.deal-add-modal{background:var(--s1);border:1px solid rgba(var(--accent-rgb),.15);border-radius:14px;width:460px;max-width:92vw;max-height:85vh;overflow-y:auto;box-shadow:0 16px 64px rgba(0,0,0,.6);}
.deal-add-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);}
.deal-add-title{font-size:15px;font-weight:700;color:oklch(0.13 0.012 200);}
/* Form labels in Add Deal modal — base .f-label uses teal at .6 opacity which
   blends into the modal's light background. Override to readable secondary
   text token at full opacity. */
.deal-add-modal .f-label{color:var(--color-text-secondary);opacity:1;}
.deal-add-body{padding:16px 20px;}
.deal-add-tabs{display:flex;gap:4px;margin-bottom:14px;}
.deal-add-tab{padding:6px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--muted);font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;}
.deal-add-tab:hover{background:var(--glass);}
.deal-add-tab.active{border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.08);color:var(--accent);}
.deal-add-panel{margin-bottom:12px;}
.deal-add-fields{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid rgba(255,255,255,.04);}
.deal-search-results{max-height:200px;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:2px;}
.deal-search-item{padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .12s;}
.deal-search-item:hover{background:rgba(255,255,255,.04);}
.deal-search-item.selected{background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.2);}
.deal-search-item.has-deal{opacity:.5;}
.deal-search-name{font-size:12px;font-weight:600;color:var(--text);}
.deal-search-sub{font-size:9px;color:var(--muted);font-family:'JetBrains Mono',monospace;margin-top:2px;}
.deal-search-empty{padding:12px;text-align:center;color:var(--muted);font-size:10px;}

/* ── Deal asset picker (S4 asset-granularity) ── */
.deal-asset-picker{display:flex;flex-direction:column;gap:2px;max-height:180px;overflow-y:auto;border:1px solid var(--border,#E2E5EA);border-radius:6px;padding:4px;}
.deal-asset-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:11px;}
.deal-asset-row:hover{background:rgba(var(--accent-rgb),.05);}
.deal-asset-row.is-disabled{opacity:.45;cursor:not-allowed;}
.deal-asset-name{flex:1;font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.deal-asset-proj{display:block;font-weight:400;font-size:9px;color:var(--muted);}
.deal-asset-qty,.deal-asset-offer{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;}
.deal-asset-offer{color:var(--color-money,var(--color-success));}
.deal-asset-note{font-size:9px;color:var(--muted);white-space:nowrap;}

/* ── Deal Detail Panel ── */
.deal-panel-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:799;}
.deal-panel-overlay.open{display:block;}
.deal-panel{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:92vw;background:linear-gradient(180deg,#1e2229 0%,var(--s1) 100%);border-left:1px solid rgba(var(--accent-rgb),.1);box-shadow:-12px 0 48px rgba(0,0,0,.6),-4px 0 16px rgba(0,0,0,.3);z-index:800;overflow-y:auto;transform:translateX(100%);transition:transform .25s ease;}
.deal-panel.open{transform:translateX(0);}
.deal-panel::-webkit-scrollbar{width:5px;}.deal-panel::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.12);border-radius:4px;}

/* Panel Header — elevated with gradient */
.deal-panel-header{padding:22px 24px 16px;background:linear-gradient(180deg,rgba(var(--accent-rgb),.04) 0%,transparent 100%);border-bottom:1px solid rgba(var(--accent-rgb),.08);position:relative;}
.deal-panel-header::after{content:'';position:absolute;bottom:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,rgba(var(--accent-rgb),.3),transparent);}
.deal-panel-header-top{display:flex;justify-content:space-between;align-items:flex-start;}
.deal-panel-owner{font-size:22px;font-weight:700;color:#fff;letter-spacing:-.02em;line-height:1.2;}
.deal-panel-project{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--dim);margin-top:4px;}
.deal-panel-close{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:6px;color:var(--muted);font-size:16px;cursor:pointer;padding:4px 8px;transition:all .12s;}
.deal-panel-close:hover{color:var(--color-red);border-color:rgba(234,134,143,.2);background:rgba(234,134,143,.06);}

/* Action Buttons Row */
.deal-panel-actions-row{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;}
.deal-panel-link-btn,.deal-panel-action-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:6px;font-size:10px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s;}
.deal-panel-link-btn{border:1px solid rgba(var(--brand-og-accent-rgb),.25);background:rgba(var(--brand-og-accent-rgb),.08);color:var(--color-blue);}
.deal-panel-link-btn:hover{background:rgba(var(--brand-og-accent-rgb),.15);border-color:rgba(var(--brand-og-accent-rgb),.4);}
.deal-panel-action-btn{border:1px solid var(--glass-hover);background:rgba(255,255,255,.04);color:var(--text);}
.deal-panel-action-btn:hover{background:rgba(255,255,255,.08);}
/* Closed deal compact card */
.deal-card-closed{padding:6px 10px !important;cursor:pointer;}
.deal-card-closed-row{display:flex;align-items:center;gap:8px;font-size:11px;}
.deal-card-closed-row .deal-card-name{flex:1;font-size:11px;font-weight:600;}
.deal-card-closed-row .deal-card-nra{font-size:10px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.deal-card-closed-row .deal-card-price{font-size:10px;font-weight:700;color:var(--color-money);font-family:'JetBrains Mono',monospace;}
.deal-card-closed-detail{display:none;padding-top:8px;margin-top:6px;border-top:1px solid var(--glass);}
.deal-card-expanded .deal-card-closed-detail{display:block;}
.deal-card-open-btn{font-size:9px;font-weight:600;color:var(--accent);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.15);padding:2px 10px;border-radius:5px;cursor:pointer;font-family:inherit;transition:all .12s;}
.deal-card-open-btn:hover{background:rgba(var(--accent-rgb),.12);}
.deal-panel-close-deal{border-color:rgba(var(--color-action-rgb),.25);color:#059669;background:rgba(var(--color-action-rgb),.06);font-weight:700;}
.deal-panel-close-deal:hover{background:rgba(var(--color-action-rgb),.12);border-color:rgba(var(--color-action-rgb),.4);}
.deal-panel-pause{border-color:rgba(var(--color-accent-rgb),.25);color:var(--color-accent);background:rgba(var(--color-accent-rgb),.06);}
.deal-panel-pause:hover{background:rgba(var(--color-accent-rgb),.12);border-color:rgba(var(--color-accent-rgb),.4);}
.deal-panel-end{border-color:rgba(234,134,143,.2);color:var(--color-red);background:rgba(234,134,143,.05);}
.deal-panel-end:hover{background:rgba(234,134,143,.1);border-color:rgba(234,134,143,.35);}
.deal-panel-download{margin-left:auto;border-color:rgba(var(--accent-rgb),.2);color:var(--accent);background:rgba(var(--accent-rgb),.05);}
.deal-panel-download:hover{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.35);}

/* Status Dropdown */
.deal-panel-status-row{margin-top:12px;}
.deal-panel-status-row{display:flex;align-items:center;gap:8px;}
.deal-panel-status-select{background:var(--s2);border:1px solid var(--glass-hover);border-radius:8px;padding:6px 10px;color:var(--text);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;flex:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.03);transition:border-color .15s;}
.deal-panel-status-badge{font-size:10px;font-weight:700;white-space:nowrap;}
.deal-panel-status-select:focus{border-color:rgba(var(--accent-rgb),.4);outline:none;box-shadow:0 0 0 2px rgba(var(--accent-rgb),.08);}

/* Panel Body */
.deal-panel-body{padding:20px 24px;}

/* Sections — elevated cards with colored headers */
.deal-panel-section{margin-bottom:16px;background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,rgba(255,255,255,.01) 100%);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:0;box-shadow:0 4px 16px rgba(0,0,0,.35),0 1px 4px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.05);overflow:hidden;transition:box-shadow .15s,border-color .15s,transform .15s;}
.deal-panel-section:hover{border-color:var(--border2);box-shadow:0 8px 24px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.3),inset 0 1px 0 var(--glass);}
.deal-panel-section-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:10px 16px;margin:0;}
.deal-panel-section-label+*{padding:12px 16px;}
.deal-panel-section-label+.deal-panel-fields{padding:10px 16px 14px;}
.deal-panel-section-label+.deal-checklist{padding:8px 12px 10px;}
.deal-panel-section-label+.deal-activity-log{padding:8px 12px 10px;}
/* IA Batch C1 — contextual over-cap approval section (reuses .deal-panel-section frame).
   Host lives between .deal-panel-header and .deal-panel-body, so it inherits no
   gutter — give it the body's 24px horizontal inset + top spacing ONLY when
   populated. :empty stays zero-layout → no-pending panel is pre-C1-equivalent. */
#deal-approval-section:not(:empty){padding:16px 24px 0;}
.deal-approval-body{padding:10px 16px 14px;display:flex;flex-direction:column;gap:8px;}
.deal-approval-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--color-amber-text,var(--amber));}
.deal-approval-meta{font-size:11px;color:var(--muted);line-height:1.4;}
.deal-approval-meta b{color:var(--text);font-weight:600;font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;}
.deal-approval-reason{font-size:11px;color:var(--muted);font-style:italic;line-height:1.4;}
.deal-approval-actions{display:flex;gap:8px;margin-top:2px;flex-wrap:wrap;}
.deal-approval-readonly{font-size:11px;color:var(--muted);}
/* D1-C: the positional nth-child(1..4) header "rainbow" is removed — it was
   fragile (colors shifted whenever sections were added/reordered, e.g. the
   PSA/Signed/Documents consolidation). Calm, uniform Wireline header for EVERY
   section label; no color encodes position. The C1 contextual Approval section
   keeps its accent header explicitly (by class, not position) so it does not
   shift color or spacing. */
.deal-panel-section-label{color:var(--muted);border-bottom:1px solid var(--border);}
.deal-approval-section .deal-panel-section-label{color:var(--color-blue);background:rgba(var(--brand-og-accent-rgb),.06);}

/* Deal Fields */
.deal-panel-fields{display:flex;flex-direction:column;gap:6px;}
.deal-field{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:6px;transition:background .12s;}
.deal-field:hover{background:rgba(255,255,255,.02);}
.deal-field-label{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;color:#c9cdd2;text-transform:uppercase;letter-spacing:.06em;}
.deal-field-input{background:rgba(255,255,255,.04);border:1px solid var(--glass-hover);border-radius:6px;padding:6px 10px;color:var(--text);font-size:12px;font-family:inherit;width:150px;text-align:right;transition:border-color .15s,box-shadow .15s;}
.deal-field-input:focus{border-color:rgba(var(--accent-rgb),.4);outline:none;box-shadow:0 0 0 2px rgba(var(--accent-rgb),.08);}
.deal-field-value{font-size:14px;font-weight:700;color:#fff;font-family:'SF Mono','Fira Code','Consolas',monospace;}
.deal-field-urgent{color:var(--color-callback);font-weight:700;}
.deal-field-overdue{color:var(--color-red);font-weight:800;animation:nqOverduePulse 2s ease-in-out infinite;}

/* ── Deal Checklist ── */
.deal-checklist{display:flex;flex-direction:column;gap:4px;}
.deal-cl-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;transition:all .12s;border:1px solid rgba(255,255,255,.04);background:rgba(255,255,255,.02);box-shadow:0 1px 3px rgba(0,0,0,.12);}
.deal-cl-item:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);box-shadow:0 2px 6px rgba(0,0,0,.18);}
.deal-cl-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.08);flex-shrink:0;border:2px solid var(--border2);transition:all .2s;}
.deal-cl-dot-uploaded{background:#22C55E;border-color:#16A34A;box-shadow:0 0 6px rgba(var(--color-action-rgb),.3);}
.deal-cl-dot-signed{background:#22C55E;border-color:#16A34A;box-shadow:0 0 6px rgba(var(--color-action-rgb),.3);}
.deal-cl-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0;}
.deal-cl-label{font-size:11px;color:var(--text);font-weight:500;}
.deal-cl-file{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--dim);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.deal-field-label-row{display:flex;align-items:center;gap:8px;}
.deal-amend-btn{padding:4px 10px;border-radius:6px;border:1px solid rgba(var(--brand-og-accent-rgb),.25);background:rgba(var(--brand-og-accent-rgb),.1);color:var(--color-blue);font-size:9px;font-weight:700;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:all .15s;box-shadow:0 1px 4px rgba(0,0,0,.15);}
.deal-amend-btn:hover{background:rgba(var(--brand-og-accent-rgb),.18);border-color:rgba(var(--brand-og-accent-rgb),.4);box-shadow:0 3px 8px rgba(0,0,0,.2);}
.deal-cal-row{display:flex;gap:6px;margin-top:4px;}
.deal-cal-btn{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:600;color:var(--accent);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.15);padding:4px 8px;border-radius:5px;cursor:pointer;font-family:inherit;transition:all .12s;}
.deal-cal-btn:hover{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.3);}
.deal-amend-row{padding:8px 0;display:flex;flex-direction:column;gap:4px;}
.deal-closing-dates{display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.deal-date-original{font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:11px;color:var(--muted);text-decoration:line-through;opacity:.6;}
.deal-date-current{font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:14px;font-weight:700;color:#fff;}
.deal-date-amended{color:var(--accent);}
.deal-cl-delete-toggle{background:none;border:none;color:var(--color-red);font-size:12px;font-weight:700;cursor:pointer;padding:2px 6px;opacity:.6;transition:opacity .12s;}
.deal-cl-delete-toggle:hover{opacity:1;}
.deal-cl-file-row{display:flex;align-items:center;gap:4px;}
.deal-cl-del-icon{display:none;background:none;border:none;color:var(--color-red);font-size:10px;cursor:pointer;padding:0 2px;opacity:.5;transition:opacity .12s;}
.deal-cl-del-icon:hover{opacity:1;}
.deal-checklist.delete-mode .deal-cl-del-icon{display:inline;}
.deal-cl-check{color:var(--color-green);font-size:12px;font-weight:700;flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;}
.deal-cl-file-link{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--color-blue);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;text-decoration:none;transition:color .12s;}
.deal-cl-file-link:hover{color:var(--brand-og-accent);text-decoration:underline;}

/* ── D1-B: optimistic upload rows (uploading / failed-retry) ── */
.deal-cl-uploading{opacity:.8;}
.deal-cl-uploading .deal-cl-file{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.deal-cl-uploading-spinner{display:inline-block;width:9px;height:9px;border:1.5px solid rgba(var(--accent-rgb),.25);border-top-color:var(--accent);border-radius:50%;animation:dealClSpin .7s linear infinite;flex-shrink:0;}
@keyframes dealClSpin{to{transform:rotate(360deg);}}
.deal-cl-failed-name{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--color-warning);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.deal-cl-retry-btn{font-size:9px;font-weight:600;color:var(--accent);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.2);border-radius:4px;padding:2px 8px;cursor:pointer;font-family:inherit;flex-shrink:0;}
.deal-cl-retry-btn:hover{background:rgba(var(--accent-rgb),.12);}
.deal-cl-failed .deal-cl-del-icon{display:inline;}

/* ── Document Preview Overlay ── */
.deal-doc-preview-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;flex-direction:column;}
.deal-doc-preview-overlay.open{display:flex;}
.deal-doc-preview-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--s1);border-bottom:1px solid rgba(255,255,255,.08);}
.deal-doc-preview-title{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.deal-doc-preview-actions{display:flex;gap:8px;align-items:center;}
.deal-doc-preview-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:6px;border:1px solid rgba(var(--accent-rgb),.2);background:rgba(var(--accent-rgb),.06);color:var(--accent);font-size:10px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s;}
.deal-doc-preview-btn:hover{background:rgba(var(--accent-rgb),.12);}
.deal-doc-preview-close{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;padding:0 4px;transition:color .12s;}
.deal-doc-preview-close:hover{color:var(--color-red);}
.deal-doc-preview-body{flex:1;padding:16px;display:flex;align-items:center;justify-content:center;overflow:auto;}

.deal-docs-upload-row{display:flex;gap:6px;align-items:center;justify-content:center;padding:6px 14px 2px;}
.deal-cl-upload-select{width:130px;background:var(--glass);border:1px solid var(--glass-hover);border-radius:5px;padding:4px 6px;color:var(--text);font-size:10px;font-weight:500;font-family:inherit;cursor:pointer;}
.deal-cl-upload-select:focus{border-color:rgba(var(--accent-rgb),.4);outline:none;}
.deal-cl-upload-btn{font-size:9px !important;padding:2px 10px !important;cursor:pointer;white-space:nowrap;}
.deal-checklist-progress{display:flex;align-items:center;gap:8px;margin-top:8px;}
.deal-checklist-bar{flex:1;height:4px;background:var(--glass);border-radius:2px;overflow:hidden;}
.deal-checklist-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s;}
.deal-checklist-count{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--muted);}
/* ── Wiring Details ── */
.deal-wiring-add-btn{font-size:10px;font-weight:600;color:var(--accent);background:none;border:1px dashed rgba(var(--accent-rgb),.3);border-radius:6px;padding:4px 10px;cursor:pointer;font-family:inherit;transition:all .15s;margin-top:4px;}
.deal-wiring-add-btn:hover{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.5);}
.deal-wiring-info{margin-top:6px;display:flex;flex-direction:column;gap: 2px;}
.deal-wiring-row{display:flex;align-items:center;gap:6px;font-size:10px;}
.deal-wiring-lbl{font-family:'JetBrains Mono',monospace;font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:60px;}
.deal-wiring-val{color:var(--text);font-weight:500;}
.deal-wiring-edit-btn{font-size:9px;font-weight:600;color:var(--accent);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.2);border-radius:4px;padding:2px 8px;cursor:pointer;font-family:inherit;}
.deal-wiring-edit-btn:hover{background:rgba(var(--accent-rgb),.12);}
/* Wiring modal */
.deal-wiring-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;}
.deal-wiring-overlay.open{opacity:1;}
.deal-wiring-modal{background:var(--s1);border:1px solid var(--border2);border-radius:12px;width:360px;box-shadow:0 16px 48px rgba(0,0,0,.4);overflow:hidden;}
.deal-wiring-modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--glass);font-size:14px;font-weight:700;color:var(--text);}
.deal-wiring-modal-body{padding:16px 18px;display:flex;flex-direction:column;gap:10px;}
.deal-wiring-field{display:flex;flex-direction:column;gap: 2px;}
.deal-wiring-field span{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.deal-wiring-field input,.deal-wiring-field select{padding:6px 10px;border-radius:6px;border:1px solid var(--border2);background:var(--s2);color:var(--text);font-size:12px;font-family:inherit;}
.deal-wiring-field input:focus,.deal-wiring-field select:focus{outline:none;border-color:var(--accent);}
.deal-wiring-modal-ftr{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--glass);}

/* ── Deal Activity ── */
.deal-activity-log{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap: 2px;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.1) transparent;}
.deal-activity-log::-webkit-scrollbar{width:4px;}.deal-activity-log::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.12);border-radius:4px;}
.deal-activity-empty{padding:16px;text-align:center;color:var(--muted);font-size:10px;opacity:.6;}
.deal-act-item{padding:8px 12px;border-radius:6px;transition:all .12s;background:rgba(255,255,255,.02);box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid rgba(255,255,255,.03);}
.deal-act-item:hover{background:rgba(255,255,255,.04);box-shadow:0 2px 6px rgba(0,0,0,.15);}
.deal-act-text{font-size:11px;color:var(--text);line-height:1.4;}
.deal-act-meta{font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--muted);margin-top:2px;letter-spacing:.02em;}

/* ── Deal Note Input ── */
.deal-note-input-wrap{display:flex;flex-direction:column;gap:8px;}
.deal-note-input{background:rgba(255,255,255,.03);border:1px solid rgba(var(--accent-rgb),.1);border-radius:8px;padding:10px 12px;color:var(--text);font-size:11px;font-family:inherit;resize:vertical;min-height:44px;transition:border-color .15s,box-shadow .15s;}
.deal-note-input:focus{border-color:rgba(var(--accent-rgb),.3);outline:none;box-shadow:0 0 0 2px rgba(var(--accent-rgb),.06);}

/* ── Feedback Widget ── */
.fb-widget{position:fixed;bottom:20px;right:20px;z-index:9999;pointer-events:none;}
.fb-widget.collapsed{right:-200px;}
.fb-widget.collapsed .fb-btn{display:none;}
.fb-tab{pointer-events:auto;display:none;position:fixed;bottom:80px;right:0;writing-mode:vertical-rl;padding:10px 6px;background:var(--accent);color:var(--s1);font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.06em;border-radius:8px 0 0 8px;cursor:pointer;z-index:9999;box-shadow:-2px 2px 8px rgba(0,0,0,.3);}
.fb-widget.collapsed .fb-tab{display:block;}
.fb-btn{pointer-events:auto;display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;border:none;background:var(--accent);color:var(--s1);font-size:11px;font-weight:700;font-family:'JetBrains Mono',monospace;letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 16px rgba(var(--accent-rgb),.3);transition:all .15s;}
.fb-btn:hover{background:var(--accent-hover);box-shadow:0 6px 24px rgba(var(--accent-rgb),.4);}
.fb-btn svg{opacity:.8;}
.fb-minimize{background:none;border:none;color:var(--muted);cursor:pointer;font-size:10px;margin-left:4px;padding:0 2px;}
.fb-minimize:hover{color:var(--text);}
.fb-panel{pointer-events:auto;position:absolute;bottom:calc(100% + 10px);right:0;width:340px;background:var(--s1);border:1px solid rgba(var(--accent-rgb),.25);border-radius:12px;box-shadow:0 16px 48px rgba(0,0,0,.7),0 0 0 1px rgba(var(--accent-rgb),.08) inset;overflow:hidden;z-index:10000;}
.fb-panel-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgba(var(--accent-rgb),.1);font-size:12px;font-weight:700;color:var(--accent);}
.fb-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:0 4px;}
.fb-close:hover{color:var(--text);}
.fb-panel-body{padding:12px 14px;display:flex;flex-direction:column;gap:8px;}
.fb-type-row{display:flex;gap:6px;}
.fb-type-btn{flex:1;padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--muted);font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;text-align:center;}
.fb-type-btn:hover{background:var(--glass);}
.fb-type-btn.active{border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.08);color:var(--accent);}
.fb-textarea{background:rgba(255,255,255,.04);border:1px solid var(--glass-hover);border-radius:8px;padding:8px 10px;color:var(--text);font-family:inherit;font-size:11px;resize:vertical;min-height:60px;outline:none;transition:border-color .15s;}
.fb-textarea:focus{border-color:rgba(var(--accent-rgb),.3);}
.fb-textarea::placeholder{color:var(--muted);}
.fb-meta{font-size:9px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.fb-submit{padding:8px 16px;border-radius:8px;border:none;background:var(--accent);color:var(--s1);font-weight:700;font-size:11px;cursor:pointer;font-family:inherit;transition:all .15s;}
.fb-submit:hover{background:var(--accent-hover);}
.fb-history{border-top:1px solid var(--glass);padding:8px 14px;}
.fb-history-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;}
.fb-history-row{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:10px;color:var(--muted);}
.fb-history-icon{font-size:12px;}
.fb-history-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fb-history-time{font-size:9px;color:var(--muted);font-family:'JetBrains Mono',monospace;flex-shrink:0;}

/* ── PROJECT AREAS PAGE ── */
.pap-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px 20px;background:var(--s1);border-bottom:1px solid var(--border);}
.pap-header-left{display:flex;flex-direction:column;gap:4px;}
.pap-header-right{display:flex;align-items:center;gap:8px;}
/* Cohesion (2026-06-13): index H1 === detail title (.pv-title-news) so opening an
   AOI reads continuously — Newsreader italic 24/500, not generic Geist bold. */
.pap-title{font-family:'Newsreader','Georgia',serif;font-style:italic;font-weight:500;font-size:24px;letter-spacing:-.01em;color:var(--text);line-height:1.1;}
.pap-stats{font-size:11px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.pap-search{background:var(--glass);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:12px;color:var(--text);outline:none;width:180px;transition:border-color .15s;}
.pap-search:focus{border-color:var(--accent);}
.pap-search::placeholder{color:var(--muted);}
/* Priority strip */
.pap-priority{background:var(--s1);border:1px solid var(--border);border-radius:12px;padding:14px 18px;margin-bottom:20px;}
.pap-priority-label{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-red);margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.pap-priority-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;}
.pap-priority-chip{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--glass);border:1px solid var(--border);border-radius:10px;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0;}
.pap-priority-chip:hover{border-color:rgba(var(--accent-rgb),.2);background:var(--glass-hover);}

.pap-priority-name{font-size:12px;font-weight:600;color:var(--text);}

.pap-body{padding:24px 28px 28px;overflow-y:auto;}
.pap-empty{text-align:center;padding:80px 20px;color:var(--muted);}

/* Client section — container card */
.pap-section{margin-bottom:20px;background:var(--s1);border:1px solid var(--border);border-radius:14px;overflow:hidden;}
.pap-section-hdr{display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--glass);border-bottom:1px solid var(--border);}
.pap-section-chevron{flex-shrink:0;color:var(--muted);transition:transform .2s ease;}
.pap-section-open .pap-section-chevron{transform:rotate(90deg);}
.pap-section-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;}
.pap-section-name{font-size:14px;font-weight:700;color:var(--text);}
.pap-section-badge{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;background:var(--glass-strong);padding:2px 8px;border-radius:10px;color:var(--muted);}
.pap-section-owners{font-size:11px;color:var(--muted);margin-left:auto;font-family:'JetBrains Mono',monospace;}

.pap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;padding:16px 18px;}
.pap-grid--solo{padding:0;}/* solo Unassigned grid: body already pads, no section inset */

/* Card style mirrors the dashboard .cc-card (10px radius, subtle
   neutral shadow, neutral hover border). No border-left stripe
   (BAN: > 1px) and no decorative section dot — status conveyed
   via .pap-alert chips inside the card body. */
/* Flat Wireline card (redesign 2026-06-13): no resting shadow, no transform/lift —
   hover changes border-color only (the lift + drop-shadow were ban violations). */
.pap-card{background:var(--s1);border:1px solid var(--s3);border-radius:var(--radius-lg);padding:0;cursor:pointer;transition:border-color .15s;overflow:hidden;position:relative;}
.pap-card::before{content:'';display:block;height:1px;background:var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-shrink:0;}
.pap-card--paused{opacity:.65;}
.pap-card:hover{border-color:var(--s4);}

.pap-card-body{padding:18px 20px 16px;}
.pap-card-top{display:flex;align-items:center;gap:8px;margin-bottom:4px;}

.pap-card-name{font-family:'Newsreader',serif;font-style:italic;font-size:17px;font-weight:500;letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.pap-card-eyebrow{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pap-card-call{width:28px;height:28px;border-radius:8px;border:none;background:var(--glass);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;opacity:0;}
.pap-card:hover .pap-card-call{opacity:1;}
.pap-card-call:hover{background:var(--color-green);color:#fff;}
.pap-card-owners{font-size:12px;color:var(--muted);margin-bottom:10px;}
/* Card rail (cohesion 2026-06-13): the SAME grammar as the detail hero's `.pv-an-*`
   analytics rail, at card scale — teal 6px contact bar + "{pct}% contacted · n/N",
   one PLAIN mono numeral (NRA is acres, not money — green stays for $), and a muted
   funnel line carrying Last-activity + an amber overdue span. Mirrors components.css
   .pv-an-bar/.pv-an-plbl/.pv-an-num/.pv-an-funnel so card and detail read identically. */
.pap-card-bar{height:6px;background:#E8EDF2;border-radius:3px;overflow:hidden;}
.pap-card-bar > i{display:block;height:100%;background:var(--color-secondary);border-radius:3px;}
.pap-card-prog{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.pap-card-prog .pap-card-bar{flex:1;}
.pap-card-plbl{font-size:11px;color:var(--muted);white-space:nowrap;}
.pap-card-plbl b{font-family:'JetBrains Mono',monospace;color:var(--text);}
.pap-card-nums{margin-bottom:6px;}
.pap-card-num .v{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700;color:var(--text);line-height:1;}
.pap-card-num .v .u{font-size:9px;font-weight:600;color:var(--dim);}
.pap-card-num .l{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:4px;}
.pap-card-funnel{font-size:11px;color:var(--muted);}
.pap-card-funnel .od{color:var(--color-warning);font-weight:600;}
/* .pap-alert* retained — used by the Needs-Attention priority-strip chips. */
.pap-alert{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;font-family:'JetBrains Mono',monospace;}
.pap-alert-red{background:rgba(239,68,68,.12);color:var(--color-red);}
.pap-alert-amber{background:rgba(245,158,11,.12);color:var(--color-callback);}

/* ── AOI LIST VIEW (2026-06-13) ─────────────────────────────────────────────
   The Project Areas index defaults to a sortable TABLE that reuses the global
   owner-table chrome (table / thead th / tbody td / th.th-sort, the 8px-12px
   R7.4 density, td-r) so it blends with the project-detail owner table. The view
   becomes a flex column (header fixed, rows scroll inside #pap-body) — the same
   internal-scroll pattern as #view-project. Cards stay as a secondary view. */
#view-project-areas.active{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:0;}
#view-project-areas.active .pap-header{flex-shrink:0;}
#view-project-areas.active .pap-body{flex:1;min-height:0;overflow:auto;}
#view-project-areas.active .pap-toolbar{flex-shrink:0;}
.pap-body--list{padding:0;}
/* Table toolbar band — "operate on the list" controls: view toggle + search (left),
   Export (right). Sits between the header's create group and the table. */
.pap-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 28px;background:#FFFFFF;border-bottom:1px solid var(--border);}
.pap-toolbar-left{display:flex;align-items:center;gap:10px;}
.pap-toolbar-right{display:flex;align-items:center;gap:8px;}
.pa-table{width:100%;}
.pa-table tbody tr{cursor:pointer;}
.pa-area-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.td-sub2{font-size:11px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.pa-unit{font-size:9px;font-weight:600;color:var(--dim);}
.pa-gauge{display:flex;align-items:center;gap:8px;max-width:150px;}
.pa-gauge .pap-card-bar{flex:1;}
.pa-gauge-pct{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--text);min-width:30px;text-align:right;}
.pa-od{color:var(--color-warning);font-weight:700;font-family:'JetBrains Mono',monospace;}
.pa-dash{color:var(--dim);}
.pa-table tbody tr.pa-row-attn td{background:rgba(245,158,11,.05);}
.pa-table tbody tr.pa-row-attn:hover td{background:rgba(245,158,11,.09);}
.pa-table tbody tr.pa-row-paused{opacity:.6;}
/* List | Cards view toggle — teal-active segmented control. */
.pa-view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;flex-shrink:0;}
.pa-view-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:30px;border:none;background:var(--s1);color:var(--muted);cursor:pointer;transition:background .12s,color .12s;}
.pa-view-btn + .pa-view-btn{border-left:1px solid var(--border);}
.pa-view-btn:hover{color:var(--text);background:var(--s2);}
.pa-view-btn.is-active{background:var(--color-secondary-muted);color:var(--color-secondary);}
/* Client group header row (organization by client) — a collapsible band that reads
   as a clear tier ABOVE the records: a stronger cool-slate band with bracketing
   borders, the client name in the Wireline mono-caps client-identity treatment (so
   it never reads as a data row), and its records indented beneath it. Solo
   all-unassigned stays flat (no header). */
.pa-group-row{cursor:pointer;}
.pa-group-row td{background:#DCE3EC;padding:9px 14px;border-top:1px solid #C2CCD8;border-bottom:1px solid #C2CCD8;}
.pa-group-row:first-child td{border-top:none;}
.pa-group-row:hover td{background:#D1DAE5;}
.pa-group-chev{color:var(--color-text-secondary);margin-right:8px;vertical-align:middle;display:inline-block;transition:transform .15s;}
.pa-group-row.is-open .pa-group-chev{transform:rotate(90deg);}
.pa-group-name{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text);}
.pa-group-meta{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:var(--muted);margin-left:10px;}
/* records sit indented under their client header so the hierarchy reads. */
.pa-table--grouped tbody tr:not(.pa-group-row) td:first-child{padding-left:28px;}

/* ── DASHBOARD KPI STRIP ── */
.dk-kpi-strip{margin-bottom:12px;position:relative;z-index:50;}
.dk-kpi-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-family:inherit;}
.dk-kpi-cards{display:flex;gap:12px;}
.dk-kpi-card{flex:1;background:var(--s1);border:1px solid var(--border);border-radius:8px;padding:12px 10px;text-align:center;min-width:0;transition:transform .15s,box-shadow .15s;}
.dk-kpi-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.25);}
.dk-kpi-val{font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dk-kpi-lbl{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:2px;font-family:inherit;}
.dk-kpi-sub{font-size:10px;color:rgba(255,255,255,.5);font-family:'JetBrains Mono',monospace;margin-top:1px;}
/* KPI hover tooltip */
.dk-kpi-hover-wrap{position:relative;cursor:default;}
.dk-kpi-tooltip{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(-4px);background:var(--navy);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 14px;min-width:160px;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:900;box-shadow:0 8px 24px rgba(0,0,0,.25);}
.dk-kpi-hover-wrap:hover .dk-kpi-tooltip{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.dk-kpi-tooltip::before{content:'';position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-bottom-color:var(--navy);}
.dk-kpi-tip-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0;font-size:11px;color:rgba(255,255,255,.75);}
.dk-kpi-tip-row b{color:#FFFFFF;font-family:'JetBrains Mono',monospace;font-weight:700;}

/* ── SYNC AGE INDICATOR ── */
.sync-age{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;letter-spacing:.03em;padding:2px 8px;border-radius:4px;background:rgba(var(--accent-rgb),.06);transition:color .3s;}
.sync-age.sync-green{color:var(--green);}
.sync-age.sync-yellow{color:var(--orange);}
.sync-age.sync-red{color:var(--red);}

/* ── PROGRESS RING GROW ANIMATION ── */
@keyframes ringGrow{from{stroke-dasharray:0 999;}}

/* ── GOAL REACHED STATE ── */
.dk-goal-reached{position:relative;}
.dk-goal-reached .dk-goal-lbl{color:var(--color-completed);font-weight:700;}

/* ── BREADCRUMBS ── */
/* Header breadcrumbs deleted per §6.4 — sidebar conveys location */

/* ── OVERDUE ROW TINT (dark mode) ── */
tbody tr.row-overdue{background:rgba(248,113,113,.04) !important;}
tbody tr.row-overdue:hover{background:rgba(248,113,113,.08) !important;}

/* Upgrade Prompt */
.upgrade-prompt-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center;}
.upgrade-prompt-modal{background:var(--s1);border:1px solid var(--border2);border-radius:16px;padding:32px;text-align:center;max-width:380px;box-shadow:0 16px 48px rgba(0,0,0,.4);}
.upgrade-prompt-icon{width:48px;height:48px;border-radius:12px;background:rgba(212,168,83,.1);color:#D4A853;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.upgrade-prompt-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px;}
.upgrade-prompt-reason{font-size:12px;color:var(--muted);margin-bottom:12px;}
.upgrade-prompt-price{font-size:14px;font-weight:700;color:var(--accent);margin-bottom:20px;}
.upgrade-prompt-actions{display:flex;gap:8px;justify-content:center;}
.upgrade-prompt-modal{background:#FFFFFF;border:1px solid rgba(0,0,0,.08);}

/* deploy 1775584985 */

/* ══════════════════════════════════════════════════════════
   ONBOARDING WIZARD
   First-run 5-step guided setup. Overlay + centered card +
   progress dots. Matches Scout's navy+light theme system.
   ══════════════════════════════════════════════════════════ */

#onboarding-overlay{
  position:fixed;inset:0;z-index:var(--z-auth);
  display:none;align-items:center;justify-content:center;
  padding:24px;
  background:radial-gradient(ellipse at 50% 30%, rgba(var(--brand-og-accent-rgb),.14) 0%, rgba(13,17,23,0.78) 55%, rgba(13,17,23,0.92) 100%);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  animation:onbFadeIn .35s var(--ease-out) forwards; /* R8-V2: forwards keeps opacity:1 after animation; without it, opacity reverted to 0 making programmatic re-invocation invisible. Also de-duped the redundant -webkit-backdrop-filter line. */
}
#onboarding-overlay.show{display:flex;}
@keyframes onbFadeIn{from{opacity:0;}to{opacity:1;}}

.onb-card{
  width:100%;max-width:560px;
  background:linear-gradient(180deg, #1a1e23 0%, #14181d 100%);
  border:1px solid var(--border2);
  border-radius:20px;
  box-shadow:0 24px 64px rgba(0,0,0,.6), 0 8px 24px rgba(0,0,0,.4);
  overflow:hidden;
  position:relative;
}
.onb-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent, rgba(var(--brand-og-accent-rgb),.50), transparent);
}

/* Progress dots row */
.onb-progress{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:28px 32px 0;
}
.onb-progress-dot{
  display:flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  border:1.5px solid var(--border2);
  background:var(--s2);
  color:var(--muted);
  font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;
  transition:all .3s var(--ease-out);
  position:relative;
}
.onb-progress-dot.active{
  border-color:var(--brand-og-accent);
  background:var(--brand-og-accent);
  color:#fff;
  box-shadow:0 0 0 3px rgba(var(--brand-og-accent-rgb),.18);
}
.onb-progress-dot.done{
  border-color:var(--brand-og-accent);
  background:rgba(var(--brand-og-accent-rgb),.12);
  color:var(--brand-og-accent);
}
.onb-progress-line{
  flex:0 1 44px;height:1px;
  background:var(--border);
  transition:background .3s var(--ease-out);
}
.onb-progress-line.done{background:var(--brand-og-accent);}

/* Step body */
.onb-body{padding:36px 44px 28px;}
.onb-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);margin-bottom:14px;
}
.onb-title{
  font-family:'Newsreader','Georgia',serif;
  font-size:30px;line-height:1.15;font-weight:500;letter-spacing:-.015em;
  color:var(--text);margin-bottom:12px;
}
.onb-subtitle{
  font-size:14px;line-height:1.65;color:var(--muted);
  margin-bottom:28px;max-width:420px;
}

/* Form fields */
.onb-field{margin-bottom:18px;}
.onb-field:last-child{margin-bottom:0;}
.onb-label{
  display:block;
  font-family:'JetBrains Mono',monospace;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;
}
.onb-input{
  width:100%;
  background:var(--s2);
  border:1px solid var(--border2);
  border-radius:10px;
  padding:12px 14px;
  font-size:14px;color:var(--text);
  font-family:inherit;
  transition:border-color .2s, box-shadow .2s;
  outline:none;
}
.onb-input:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(var(--brand-og-accent-rgb),.15);
}
.onb-input::placeholder{color:var(--dim);}

.onb-toggle{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;border-radius:10px;
  background:var(--s2);border:1px solid var(--border2);
  cursor:pointer;font-size:13px;color:var(--text);
  transition:border-color .2s, background .2s;
  user-select:none;
}
.onb-toggle:hover{border-color:var(--accent);background:var(--s3);}
.onb-toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;}
.onb-toggle span.t-hint{font-size:11px;color:var(--muted);margin-left:auto;}

/* Import drop zone */
.onb-drop{
  border:1.5px dashed var(--border2);
  border-radius:14px;
  padding:36px 24px;text-align:center;
  transition:all .2s var(--ease-out);
  cursor:pointer;background:rgba(255,255,255,.015);
}
.onb-drop:hover{border-color:var(--accent);background:rgba(var(--brand-og-accent-rgb),.04);}
.onb-drop-icon{
  width:48px;height:48px;border-radius:12px;
  background:rgba(var(--brand-og-accent-rgb),.10);color:var(--accent);
  display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:14px;
}
.onb-drop-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px;}
.onb-drop-sub{font-size:12px;color:var(--muted);line-height:1.6;}
.onb-drop-formats{
  display:inline-block;margin-top:10px;padding:4px 10px;
  background:var(--s2);border:1px solid var(--border2);border-radius:999px;
  font-family:'JetBrains Mono',monospace;font-size:9px;
  letter-spacing:.12em;color:var(--muted);text-transform:uppercase;
}

/* Step 5 summary + tips */
.onb-success{
  width:56px;height:56px;border-radius:50%;
  background:linear-gradient(135deg, var(--color-green) 0%, #089874 100%);
  color:#fff;display:inline-flex;align-items:center;justify-content:center;
  margin-bottom:20px;
  box-shadow:0 8px 24px rgba(15,157,108,.35);
}
.onb-summary{
  padding:14px 16px;border-radius:10px;
  background:rgba(var(--brand-og-accent-rgb),.08);
  border:1px solid rgba(var(--brand-og-accent-rgb),.22);
  font-size:13px;color:var(--text);line-height:1.6;
  margin-bottom:22px;
}
.onb-summary b{color:var(--accent);font-weight:700;}

.onb-tips{margin-top:20px;}
.onb-tips-title{
  font-family:'JetBrains Mono',monospace;
  font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:10px;
}
.onb-tip-row{
  display:flex;align-items:flex-start;gap:10px;
  padding:8px 0;font-size:12.5px;color:var(--muted);line-height:1.55;
}
.onb-tip-row kbd{
  display:inline-block;padding:1px 6px;border-radius:4px;
  background:var(--s3);border:1px solid var(--border2);
  font-family:'JetBrains Mono',monospace;font-size:10px;
  color:var(--text);
}
.onb-tip-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:6px;flex-shrink:0;}

/* Footer actions */
.onb-actions{
  padding:22px 44px 32px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-top:1px solid var(--border);
  background:rgba(255,255,255,.01);
}
.onb-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 22px;border-radius:999px;
  font-size:13.5px;font-weight:600;
  font-family:inherit;border:none;cursor:pointer;
  transition:all .2s var(--ease-out);
}
.onb-btn-primary{
  background:var(--brand-og-accent);color:#fff;
}
.onb-btn-primary:hover{background:var(--brand-og-accent-hover);}
.onb-btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.onb-btn-ghost{
  background:transparent;color:var(--muted);
  padding:10px 16px;
}
.onb-btn-ghost:hover{color:var(--text);}
.onb-btn-skip{
  background:none;border:none;cursor:pointer;
  font-size:12px;color:var(--dim);
  font-family:inherit;padding:6px 4px;
  transition:color .2s;
}
.onb-btn-skip:hover{color:var(--muted);text-decoration:underline;}

/* Step transitions */
.onb-step{animation:onbStepIn .35s var(--ease-out);}
@keyframes onbStepIn{
  from{opacity:0;transform:translateX(14px);}
  to{opacity:1;transform:translateX(0);}
}

/* Error row */
.onb-error{
  font-size:12px;color:var(--color-red);
  margin-top:8px;padding:8px 10px;
  background:rgba(234,134,143,.08);
  border:1px solid rgba(234,134,143,.25);
  border-radius:8px;
}

/* Light theme overrides */
#onboarding-overlay{
  background:radial-gradient(ellipse at 50% 30%, rgba(var(--brand-og-accent-rgb),.16) 0%, rgba(240,238,232,0.82) 55%, rgba(240,238,232,0.95) 100%);
}
.onb-card{
  background:#FFFFFF;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 24px 64px rgba(0,0,0,.16), 0 8px 24px rgba(0,0,0,.08);
}
.onb-progress-dot{background:#F3F1EA;border-color:rgba(0,0,0,.1);color:#6B7280;}
.onb-progress-dot.done{background:rgba(var(--brand-og-accent-rgb),.08);}
.onb-progress-line{background:rgba(0,0,0,.08);}
.onb-title{color:#0F172A;}
.onb-subtitle{color:#64748B;}
.onb-label{color:#64748B;}
.onb-input{background:#F8F7F2;border-color:rgba(0,0,0,.08);color:#0F172A;}
.onb-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--brand-og-accent-rgb),.15);}
.onb-toggle{background:#F8F7F2;border-color:rgba(0,0,0,.08);color:#0F172A;}
.onb-toggle:hover{background:#F0EEE7;}
.onb-drop{border-color:rgba(0,0,0,.14);background:#F8F7F2;}
.onb-drop:hover{background:rgba(var(--brand-og-accent-rgb),.05);}
.onb-drop-title{color:#0F172A;}
.onb-drop-sub{color:#64748B;}
.onb-actions{border-top-color:rgba(0,0,0,.06);background:rgba(0,0,0,.01);}
.onb-btn-ghost{color:#64748B;}
.onb-btn-ghost:hover{color:#0F172A;}

/* Mobile */
@media (max-width:560px){
  .onb-card{max-width:100%;}
  .onb-body{padding:28px 24px 20px;}
  .onb-actions{padding:18px 24px 24px;}
  .onb-progress{padding:20px 24px 0;gap:6px;}
  .onb-progress-line{flex:0 1 24px;}
  .onb-title{font-size:24px;}
}

/* Dashboard loading skeleton */
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:.8}}

/* ── Billing banner (P1-5, retokened Phase 3 D23) ──
   8 hex/rgba literals replaced with canonical token references.
   Severity: info=teal, warn=amber, err=red. */
.billing-banner {
  display: flex; align-items: center; gap: 14px;
  padding: 10px 18px;
  font-size: 12.5px; line-height: 1.4;
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 1100;
}
.billing-banner-head { font-weight: 700; }
.billing-banner-body { color: var(--muted); flex: 1; min-width: 0; }
.billing-banner .btn { white-space: nowrap; flex-shrink: 0; }
.billing-banner--info { background: rgba(var(--brand-og-accent-rgb), .08); color: var(--text); border-bottom-color: rgba(var(--brand-og-accent-rgb), .25); }
.billing-banner--warn { background: rgba(var(--color-amber-rgb), .10); color: var(--color-amber-text); border-bottom-color: rgba(var(--color-amber-rgb), .35); }
.billing-banner--err  { background: rgba(var(--color-red-rgb), .08);  color: var(--color-red);        border-bottom-color: rgba(var(--color-red-rgb), .30); }


/* ══════════════════════════════════════════════════════════════
   MODAL FRAME PRIMITIVES (Phase R6.13, audit §4.8)

   Two canonical patterns: .modal-frame (centered) + .drawer (right-rail).
   Document rule: drawers for record-detail, modals for confirm/short
   forms. Legacy .modal / .deal-panel / .confirm-modal / .psp-panel
   migrate incrementally.
   ══════════════════════════════════════════════════════════════ */

/* Backdrop — shared by both patterns. */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: var(--z-modal, 900);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s var(--ease-out, ease-out);
}
.modal-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

/* Centered modal — confirms, short forms. */
.modal-frame {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, calc(-50% + 8px));
  width: min(92vw, 480px);
  max-height: 86vh;
  background: #FFFFFF;
  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 12px;
  box-shadow: 0 24px 48px rgba(0, 0, 0, .20), 0 4px 8px rgba(0, 0, 0, .08);
  overflow: hidden;
  z-index: calc(var(--z-modal, 900) + 1);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s var(--ease-out, ease-out), transform .25s var(--ease-out-quart, ease-out);
  display: flex;
  flex-direction: column;
}
.modal-frame.open {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, -50%);
}
.modal-frame--wide { width: min(92vw, 640px); }
.modal-frame-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 22px;
  border-bottom: 1px solid #F3F4F6;
  flex-shrink: 0;
}
.modal-frame-title {
  font-family: 'Newsreader', 'Georgia', serif;
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  color: #111827;
  margin: 0;
  letter-spacing: -.01em;
}
.modal-frame-close {
  background: transparent;
  border: 0;
  font-size: 16px;
  color: #9CA3AF;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background-color .12s, color .12s;
}
.modal-frame-close:hover { background: #F3F4F6; color: #374151; }
.modal-frame-body { padding: 20px 22px; overflow-y: auto; flex: 1; }
.modal-frame-ftr {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 22px;
  border-top: 1px solid #F3F4F6;
  flex-shrink: 0;
}

/* Right-rail drawer — record detail. */
.drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(94vw, 560px);
  background: #FFFFFF;
  border-left: 1px solid rgba(0, 0, 0, .08);
  box-shadow: -8px 0 32px rgba(0, 0, 0, .14), -2px 0 4px rgba(0, 0, 0, .04);
  z-index: calc(var(--z-modal, 900) + 1);
  transform: translateX(100%);
  transition: transform .25s var(--ease-out-quart, ease-out);
  display: flex;
  flex-direction: column;
}
.drawer.open { transform: translateX(0); }
.drawer--wide { width: min(96vw, 720px); }
.drawer-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 22px;
  border-bottom: 1px solid #F3F4F6;
  flex-shrink: 0;
}
.drawer-title {
  font-family: 'Newsreader', 'Georgia', serif;
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  color: #111827;
  margin: 0;
}
.drawer-close {
  background: transparent;
  border: 0;
  font-size: 16px;
  color: #9CA3AF;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
}
.drawer-close:hover { background: #F3F4F6; color: #374151; }
.drawer-body { padding: 20px 22px; overflow-y: auto; flex: 1; }
.drawer-ftr {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 22px;
  border-top: 1px solid #F3F4F6;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .drawer { width: 94vw; }
  .modal-frame { width: 92vw; }
}


/* ══════════════════════════════════════════════════════════════
   TOOLTIP SYSTEM (Phase R6, audit §4.5)

   Pure CSS, no JS framework. Apply by setting [data-tooltip="..."]
   on any element. Hover or keyboard-focus surfaces the tooltip
   above the element after a 200ms delay (animation-delay).

   Defaults to dark-on-light Linear-style; light-on-dark variant
   via [data-tooltip-on="dark"] when needed (e.g., sidebar icons
   on the dark sidebar surface).

   Skipped: viewport-edge auto-flip (would need JS). For elements
   near the top of the viewport, set data-tooltip-pos="below" to
   anchor the tooltip below the element instead.
   ══════════════════════════════════════════════════════════════ */
[data-tooltip] {
  position: relative;
}
/* Element label — used by AT to read the tooltip text on focus.
   Hidden via aria-label fallback when data-tooltip is present. */
[data-tooltip]:hover::after,
[data-tooltip]:focus-visible::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: #1F2937;
  color: #FFFFFF;
  padding: 6px 10px;
  border-radius: 6px;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .01em;
  line-height: 1.35;
  max-width: 200px;
  width: max-content;
  white-space: normal;
  text-align: center;
  z-index: 1000;
  pointer-events: none;
  opacity: 0;
  animation: tooltip-fade-in .15s var(--ease-out, ease-out) 200ms forwards;
  box-shadow: 0 4px 12px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.06);
}
/* Below-element variant for elements near the top of the viewport. */
[data-tooltip-pos="below"][data-tooltip]:hover::after,
[data-tooltip-pos="below"][data-tooltip]:focus-visible::after {
  bottom: auto;
  top: calc(100% + 6px);
}
/* Right-of-element variant — Linear-style sidebar icon tooltips.
   Required for elements near the left viewport edge where the
   default center-anchor would clip. */
[data-tooltip-pos="right"][data-tooltip]:hover::after,
[data-tooltip-pos="right"][data-tooltip]:focus-visible::after {
  bottom: auto;
  top: 50%;
  left: calc(100% + 8px);
  transform: translateY(-50%);
}
@keyframes tooltip-fade-in-right {
  from { opacity: 0; transform: translateY(-50%) translateX(-2px); }
  to   { opacity: 1; transform: translateY(-50%) translateX(0); }
}
[data-tooltip-pos="right"][data-tooltip]:hover::after,
[data-tooltip-pos="right"][data-tooltip]:focus-visible::after {
  animation-name: tooltip-fade-in-right;
}
/* Light tooltip variant for use on dark surfaces (sidebar icons). */
[data-tooltip-on="dark"][data-tooltip]:hover::after,
[data-tooltip-on="dark"][data-tooltip]:focus-visible::after {
  background: #F9FAFB;
  color: #111827;
  border: 1px solid rgba(0,0,0,.08);
}
@keyframes tooltip-fade-in {
  from { opacity: 0; transform: translateX(-50%) translateY(2px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
/* Reduced-motion: skip the 200ms delay since the user has signalled
   they want immediate feedback over polish. */
@media (prefers-reduced-motion: reduce) {
  [data-tooltip]:hover::after,
  [data-tooltip]:focus-visible::after {
    animation: none;
    opacity: 1;
    transform: translateX(-50%);
  }
}

/* ══════════════════════════════════════════════════════════════════════
   PSA Generate Modal — Phase 4 inc 4-H.2d.2
   Scoped under .psa-generate-modal (a .modal-frame--wide instance).
   Uses the design system tokens; no new colors introduced.
   ══════════════════════════════════════════════════════════════════════ */

/* The Generate-PSA modal opens FROM the cockpit owner drawer (z-index 1200), so it +
   its backdrop must sit ABOVE that drawer — the base modal-frame z (901) left the modal
   stranded behind the drawer where the operator could barely see it (2026-06-20). */
.psa-generate-modal { z-index: 1310; }
#psa-generate-modal-backdrop { z-index: 1300; }

/* Loading + spinner */
.psa-generate-modal-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 28px 0;
  color: var(--muted, #6B7280);
  font-size: 13px;
}
.psa-generate-modal-spinner {
  width: 28px;
  height: 28px;
  border: 2.5px solid var(--border, #E2E5EA);
  border-top-color: var(--accent, #298084);
  border-radius: 50%;
  animation: psa-gen-spin .9s linear infinite;
}
@keyframes psa-gen-spin { to { transform: rotate(360deg); } }

/* Empty state (no templates) */
.psa-generate-modal-empty p {
  font-size: 13px;
  color: var(--text, #1F2937);
  line-height: 1.55;
  margin: 0 0 10px;
}
.psa-generate-modal-empty-hint {
  font-size: 12px;
  color: var(--muted, #6B7280);
}

/* Section / fieldset */
.psa-generate-modal-section {
  border: 0;
  padding: 0;
  margin: 0 0 18px;
}
.psa-generate-modal-section:last-of-type { margin-bottom: 0; }
.psa-generate-modal-section legend {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted, #6B7280);
  margin: 0 0 8px;
  padding: 0;
}
.psa-generate-modal-help {
  font-size: 12px;
  color: var(--muted, #6B7280);
  margin: 0 0 12px;
  line-height: 1.5;
}

/* Owner/template summary at top of edit phase */
.psa-generate-modal-meta {
  background: var(--surface-2, #F8F9FB);
  border: 1px solid var(--border, #E2E5EA);
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 18px;
}
.psa-generate-modal-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-size: 12px;
  padding: 3px 0;
}
.psa-generate-modal-meta-label {
  font-weight: 600;
  color: var(--muted, #6B7280);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 10px;
}
.psa-generate-modal-meta-row > span:last-child {
  color: var(--text, #1F2937);
  text-align: right;
  font-weight: 500;
}
/* Phase 1 (2026-06-20): selected-well review block at the top of the PSA edit phase.
   When scoped to wells the operator selected, it carries a teal (working) frame so the
   scope reads at a glance; otherwise it's the neutral meta tone. */
.psa-sel-review {
  border: 1px solid var(--border, #E2E5EA);
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 18px;
  background: var(--surface-2, #F8F9FB);
}
.psa-sel-review.is-scoped {
  border-color: rgba(41, 128, 132, .35);
  background: rgba(41, 128, 132, .06);
}
.psa-sel-review-scope {
  font-size: 13px; color: var(--text, #1F2937); line-height: 1.5; margin-bottom: 10px;
}
.psa-sel-review-scope b { font-weight: 700; }
.psa-sel-review-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px;
}
.psa-sel-review-cell {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  font-size: 12px; padding: 2px 0;
}
.psa-sel-review-k {
  font-weight: 600; color: var(--muted, #6B7280);
  text-transform: uppercase; letter-spacing: .04em; font-size: 10px;
}
.psa-sel-review-cell > span:last-child { color: var(--text, #1F2937); text-align: right; font-weight: 500; }

/* Template-pick radio list */
.psa-generate-modal-tpl-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.psa-generate-modal-tpl-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border, #E2E5EA);
  border-radius: 8px;
  cursor: pointer;
  background: #FFFFFF;
  transition: border-color .12s, background-color .12s;
}
.psa-generate-modal-tpl-row:hover {
  border-color: var(--accent, #298084);
  background: var(--surface-2, #F8F9FB);
}
.psa-generate-modal-tpl-row input[type="radio"] {
  margin: 0;
  accent-color: var(--accent, #298084);
}
.psa-generate-modal-tpl-name {
  font-size: 13px;
  color: var(--text, #1F2937);
  flex: 1;
}
.psa-generate-modal-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(41, 128, 132, .1);
  color: var(--accent, #298084);
  margin-left: 6px;
  vertical-align: middle;
}

/* Format radio (DOCX / PDF) */
.psa-generate-modal-format-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border: 1px solid var(--border, #E2E5EA);
  border-radius: 8px;
  cursor: pointer;
  background: #FFFFFF;
  margin-bottom: 6px;
  transition: border-color .12s, background-color .12s;
}
.psa-generate-modal-format-row:hover {
  border-color: var(--accent, #298084);
  background: var(--surface-2, #F8F9FB);
}
.psa-generate-modal-format-row input[type="radio"] {
  margin: 0;
  accent-color: var(--accent, #298084);
}
.psa-generate-modal-format-name {
  font-size: 13px;
  color: var(--text, #1F2937);
  flex: 1;
  font-weight: 500;
}
.psa-generate-modal-format-hint {
  font-size: 11px;
  color: var(--muted, #6B7280);
  font-weight: 400;
}

/* Editable field rows */
.psa-generate-modal-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 10px;
}
.psa-generate-modal-field:last-child { margin-bottom: 0; }
/* D2-B3 Phase 4A/4B: per-field provenance hint + changed mark, on a line under
   the input (muted source, amber "Edited", teal "reset" working-interaction). */
.psa-generate-modal-field-meta { font-size: 11px; line-height: 1.3; color: var(--muted, #6B7280); }
.psa-generate-modal-field-meta:empty { display: none; }
.psa-pgm-source { color: var(--muted, #6B7280); font-style: italic; }
.psa-pgm-edited { color: var(--color-warning, #C2691A); font-weight: 600; }
.psa-pgm-reset {
  background: none; border: none; padding: 0; cursor: pointer; font: inherit;
  color: var(--color-secondary, #298084); text-decoration: underline;
}
.psa-pgm-reset:hover { color: var(--color-secondary-hover, #1F6669); }
.psa-generate-modal-field-label {
  font-size: 11px;
  font-weight: 500;
  color: var(--text, #1F2937);
}
.psa-generate-modal-input {
  width: 100%;
  padding: 8px 10px;
  font-size: 12px;
  border: 1px solid var(--border, #E2E5EA);
  border-radius: 6px;
  background: #FFFFFF;
  color: var(--text, #1F2937);
  font-family: 'Geist Sans', system-ui, sans-serif;
  line-height: 1.45;
  box-sizing: border-box;
}
textarea.psa-generate-modal-input {
  resize: vertical;
  min-height: 60px;
  font-family: 'Geist Sans', system-ui, sans-serif;
}
.psa-generate-modal-input:focus {
  outline: none;
  border-color: var(--accent, #298084);
  box-shadow: 0 0 0 3px rgba(41, 128, 132, .15);
}

/* Success state */
.psa-generate-modal-success-msg {
  font-size: 12px;
  color: var(--muted, #6B7280);
  line-height: 1.55;
  margin: 0 0 16px;
}
.psa-generate-modal-results {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.psa-generate-modal-result-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: var(--surface-2, #F8F9FB);
  border: 1px solid var(--border, #E2E5EA);
  border-radius: 8px;
}
.psa-generate-modal-format-pill {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 4px 8px;
  border-radius: 4px;
  background: rgba(41, 128, 132, .1);
  color: var(--accent, #298084);
  flex-shrink: 0;
}
.psa-generate-modal-result-row .btn-sm {
  margin-left: auto;
}

/* Error state */
.psa-generate-modal-error-msg {
  font-size: 13px;
  color: #92400E;
  line-height: 1.5;
  margin-bottom: 8px;
}
.psa-generate-modal-error-detail {
  font-size: 11px;
  color: var(--muted, #6B7280);
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  background: var(--surface-2, #F8F9FB);
  border: 1px solid var(--border, #E2E5EA);
  border-radius: 6px;
  padding: 6px 10px;
  word-break: break-word;
}

/* ══════════════════════════════════════════════════════════════
   D2-B0 — Review Exhibit A preview (read-only) in Generate PSA.
   Calm, dense, hairline-framed table — NOT a nested card (no shadow,
   no raised surface). Mono caps for labels/numerics, Geist Sans for
   the legal prose. Teal Scout badge; amber for warnings/blocks only.
   ══════════════════════════════════════════════════════════════ */
.psa-exhibit { margin: 0 0 16px; }
.psa-exhibit-hdr {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  margin-bottom: 8px;
}
.psa-exhibit-title {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  color: var(--text, #1A1A1A);
}
.psa-exhibit-scope { font-size: 11px; color: var(--muted, #6B7280); }
.psa-exhibit-summary { font-size: 12px; color: var(--text, #1A1A1A); line-height: 1.55; margin-bottom: 10px; }
.psa-exhibit-summary-row { display: flex; gap: 10px; }
.psa-exhibit-k {
  flex: 0 0 92px; color: var(--muted, #6B7280);
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 10px;
  text-transform: uppercase; letter-spacing: .05em;
}
.psa-exhibit-num { font-family: 'JetBrains Mono', ui-monospace, monospace; font-variant-numeric: tabular-nums; }
.psa-exhibit-money { color: var(--color-money, #CC9C42); }
.psa-exhibit-warn { color: var(--color-warning, #C2691A); font-size: 11px; }

.psa-exhibit-table-wrap { border: 1px solid var(--border, #E2E5EA); border-radius: 8px; overflow: auto; }
.psa-exhibit-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.psa-exhibit-table th {
  text-align: left; font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  color: var(--muted, #6B7280); padding: 7px 10px;
  border-bottom: 1px solid var(--border, #E2E5EA); background: var(--glass, #F4F6F9);
  white-space: nowrap;
}
.psa-exhibit-table td { padding: 8px 10px; border-bottom: 1px solid var(--border, #E2E5EA); vertical-align: top; color: var(--text, #1A1A1A); }
.psa-exhibit-table tbody tr:last-child td { border-bottom: none; }
.psa-exhibit-prop { font-weight: 600; white-space: nowrap; }
.psa-exhibit-legal { min-width: 180px; line-height: 1.4; }
.psa-exhibit-cty, .psa-exhibit-oper { white-space: nowrap; color: var(--muted, #6B7280); }
.psa-exhibit-table th.psa-exhibit-nra, .psa-exhibit-table td.psa-exhibit-nra {
  text-align: right; font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
/* D2-B3: per-row $/NRA column — same tabular treatment as NRA, compact input. */
.psa-exhibit-table th.psa-exhibit-dnra, .psa-exhibit-table td.psa-exhibit-dnra {
  text-align: right; font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.psa-exhibit-dnra-input { max-width: 92px; text-align: right; }
.psa-exhibit-badge {
  display: inline-block; font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  padding: 2px 6px; border-radius: 4px;
}
.psa-exhibit-badge--scout { background: rgba(var(--color-secondary-rgb, 41,128,132), .10); color: var(--color-secondary, #298084); }
.psa-exhibit-empty-cell { text-align: center; color: var(--muted, #6B7280); padding: 16px 10px; font-style: italic; }

.psa-exhibit-status { margin-top: 8px; }
.psa-exhibit-status:empty { display: none; }
.psa-exhibit-checking { font-size: 12px; color: var(--muted, #6B7280); font-style: italic; }
.psa-exhibit-block {
  font-size: 12px; line-height: 1.5; color: var(--color-warning, #C2691A);
  background: rgba(var(--color-warning-rgb, 194,105,26), .08);
  border: 1px solid rgba(var(--color-warning-rgb, 194,105,26), .25);
  border-radius: 6px; padding: 8px 10px;
}

/* Narrow modal: stack each tract into a label/value group; NRA stays visible
   without horizontal scroll (per D2-B spec §9). */
@media (max-width: 640px) {
  .psa-exhibit-table thead { display: none; }
  .psa-exhibit-table, .psa-exhibit-table tbody, .psa-exhibit-table tr, .psa-exhibit-table td { display: block; width: 100%; }
  .psa-exhibit-table tr { border-bottom: 1px solid var(--border, #E2E5EA); padding: 4px 0; }
  .psa-exhibit-table tbody tr:last-child { border-bottom: none; }
  .psa-exhibit-table td { border-bottom: none; padding: 3px 10px; white-space: normal; }
  .psa-exhibit-table td::before {
    content: attr(data-k) '  '; display: inline-block; min-width: 80px;
    font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: .04em; color: var(--muted, #6B7280);
  }
  .psa-exhibit-table td.psa-exhibit-nra { text-align: left; }
}

/* ── D2-B1: editable Exhibit A row editor ─────────────────────── */
.psa-exhibit-reset {
  font-family: inherit; font-size: 11px; font-weight: 600; cursor: pointer;
  color: var(--color-secondary, #298084); background: none; border: none; padding: 2px 4px;
}
.psa-exhibit-reset:hover { text-decoration: underline; }
.psa-exhibit-actions { margin: 8px 0 0; }
.psa-exhibit-add {
  font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
  color: var(--color-secondary, #298084); background: none;
  border: 1px dashed var(--border, #E2E5EA); border-radius: 6px;
  padding: 6px 10px; width: 100%; text-align: left;
}
.psa-exhibit-add:hover { border-color: var(--color-secondary, #298084); }

.psa-exhibit-table--edit td { padding: 6px 8px; }
.psa-exhibit-table--edit th.psa-exhibit-incl,
.psa-exhibit-table--edit td.psa-exhibit-incl { width: 36px; text-align: center; }
.psa-exhibit-table--edit .psa-exhibit-prop { white-space: normal; font-weight: 400; }
.psa-exhibit-incl input[type="checkbox"] {
  width: 15px; height: 15px; margin: 2px 0 0; cursor: pointer;
  accent-color: var(--color-secondary, #298084);
}
.psa-exhibit-input {
  width: 100%; box-sizing: border-box; font-family: inherit; font-size: 12px; font-weight: 400;
  color: var(--text, #1A1A1A); background: #fff;
  border: 1px solid var(--border, #E2E5EA); border-radius: 5px; padding: 4px 6px;
}
.psa-exhibit-input:focus { outline: none; border-color: var(--color-secondary, #298084); }
.psa-exhibit-legal-input { resize: vertical; min-height: 34px; max-height: 120px; line-height: 1.35; }
.psa-exhibit-nra-input {
  max-width: 96px; text-align: right;
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-variant-numeric: tabular-nums;
}
.psa-exhibit-nra-input--err,
.psa-exhibit-dnra-input--err {
  border-color: var(--color-warning, #C2691A);
  background: rgba(var(--color-warning-rgb, 194,105,26), .06);
}
.psa-exhibit-rowwarn { margin-top: 4px; font-size: 11px; color: var(--color-warning, #C2691A); }
.psa-exhibit-rowwarn[hidden] { display: none; }

.psa-exhibit-row--excluded td { opacity: .5; }
.psa-exhibit-row--excluded .psa-exhibit-incl { opacity: 1; }

.psa-exhibit-badge--edited   { background: rgba(var(--color-warning-rgb, 194,105,26), .12); color: var(--color-warning, #C2691A); }
.psa-exhibit-badge--custom   { background: rgba(26,26,26, .07); color: var(--text, #1A1A1A); }
.psa-exhibit-badge--excluded { background: rgba(107,114,128, .14); color: var(--muted, #6B7280); }

.psa-exhibit-rm { width: 28px; text-align: center; }
.psa-exhibit-rm-btn {
  font-family: inherit; font-size: 16px; line-height: 1; cursor: pointer;
  color: var(--muted, #6B7280); background: none; border: none; padding: 2px 4px; border-radius: 4px;
}
.psa-exhibit-rm-btn:hover { color: var(--color-warning, #C2691A); }

.psa-exhibit-acks { margin: 8px 0 0; display: flex; flex-direction: column; gap: 6px; }
.psa-exhibit-acks:empty { display: none; }
.psa-exhibit-ack {
  display: flex; align-items: flex-start; gap: 8px; cursor: pointer;
  font-size: 12px; line-height: 1.45; color: var(--text, #1A1A1A);
}
.psa-exhibit-ack input[type="checkbox"] {
  width: 15px; height: 15px; margin-top: 1px; flex: none; cursor: pointer;
  accent-color: var(--color-secondary, #298084);
}
.psa-exhibit-hide { display: none !important; }

@media (max-width: 640px) {
  .psa-exhibit-nra-input { max-width: none; text-align: left; }
  .psa-exhibit-table--edit td.psa-exhibit-incl { text-align: left; }
  .psa-exhibit-row--excluded td { opacity: .55; }
}

/* ══════════════════════════════════════════════════════════════
   CALL LIST MANAGER (Build #11, sec 19.1)
   Drawer + create modal. Reuses .drawer + .modal-frame primitives.
   ══════════════════════════════════════════════════════════════ */

.property-lists-drawer .drawer-body { padding: 16px 22px 24px; }

.pl-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}

.pl-list { display: flex; flex-direction: column; gap: 8px; }

.cl-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  transition: border-color .12s, background-color .12s;
}
.cl-row:hover { border-color: #D1D5DB; background: #FAFBFC; }
.cl-row-archived { opacity: .55; background: #F9FAFB; }

.pl-row-main { flex: 1; min-width: 0; }
.pl-row-name {
  font-family: 'Geist Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #111827;
  margin-bottom: 2px;
}
.pl-row-desc {
  font-size: 12px;
  color: #6B7280;
  margin-bottom: 6px;
  line-height: 1.4;
}
.pl-row-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.cl-chip {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 500;
  background: #F3F4F6;
  color: #4B5563;
  border: 1px solid #E5E7EB;
}
.cl-chip-mono { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; }
.pl-chip-filter { background: #ECFEFF; color: #155E75; border-color: #CFFAFE; }

.cl-archived-tag {
  display: inline-block;
  margin-left: 6px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #9CA3AF;
  font-weight: 500;
}

.pl-row-actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.cl-row-btn {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: transparent;
  border: 1px solid transparent;
  color: #6B7280;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color .12s, color .12s, border-color .12s;
}
.cl-row-btn:hover { background: #FEF2F2; color: #B91C1C; border-color: #FECACA; }

.cl-empty, .cl-loading {
  padding: 24px 12px;
  text-align: center;
  color: #6B7280;
  font-size: 13px;
}
.cl-error {
  padding: 12px 14px;
  background: #FEF2F2;
  color: #991B1B;
  border: 1px solid #FECACA;
  border-radius: 8px;
  font-size: 12px;
}

/* Create modal fields */
.property-list-create-modal .modal-frame-body { padding: 20px 22px 16px; }
.cl-field { display: block; margin-bottom: 16px; }
.cl-field-lbl {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6B7280;
  margin-bottom: 6px;
}
.cl-input {
  width: 100%;
  height: 36px;
  padding: 8px 10px;
  border: 1px solid #D1D5DB;
  border-radius: 6px;
  font-family: 'Geist Sans', sans-serif;
  font-size: 13px;
  color: #111827;
  background: #FFFFFF;
  outline: none;
  transition: border-color .12s, box-shadow .12s;
}
.cl-input:focus { border-color: #298084; box-shadow: 0 0 0 3px rgba(41, 128, 132, .15); }

.pl-field-radios { border: 0; padding: 0; margin: 0 0 16px; }
.pl-radio-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color .12s;
}
.pl-radio-row:hover { background: #F9FAFB; }
.pl-radio-row input { margin-top: 3px; flex-shrink: 0; accent-color: #298084; }
.pl-radio-lbl { font-size: 13px; line-height: 1.4; }
.pl-radio-help { color: #6B7280; font-weight: 400; margin-left: 4px; }

.pl-picker-field { margin-bottom: 16px; }
.pl-picker {
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid #E5E7EB;
  border-radius: 6px;
  padding: 6px;
  background: #FAFBFC;
}
.pl-picker-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
  color: #1F2937;
}
.pl-picker-item:hover { background: #FFFFFF; }
.pl-picker-item input { accent-color: #298084; }

.pl-preview-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: #F0F9FA;
  border: 1px solid #CFFAFE;
  border-radius: 8px;
  margin-top: 8px;
}
.pl-preview-lbl { font-size: 12px; color: #155E75; flex: 1; }
.pl-preview-val {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 18px;
  font-weight: 600;
  color: #0E7490;
  min-width: 28px;
  text-align: right;
}

/* ── Assignment management modal (Build #12, sec 19.2) ── */
.pl-row-btn-assign:hover { background: #F0F9FA; color: #0E7490; border-color: #CFFAFE; }

.pla-section { margin-bottom: 18px; }
.pla-section-lbl {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6B7280;
  margin-bottom: 8px;
}

.pla-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 6px;
  margin-bottom: 6px;
}
.pla-row-ended { opacity: .55; background: #F9FAFB; }
.pla-row-main { flex: 1; min-width: 0; }
.pla-row-name { font-size: 13px; font-weight: 600; color: #111827; margin-bottom: 4px; }
.pla-row-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.pla-chip {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 8px;
  border-radius: 9px;
  font-size: 10px;
  background: #F3F4F6;
  color: #4B5563;
  border: 1px solid #E5E7EB;
  font-weight: 500;
  letter-spacing: .02em;
}
.pla-chip-soft { background: #ECFEFF; color: #155E75; border-color: #CFFAFE; }
.pla-chip-hard {
  background: #FEF3C7;
  color: #92400E;
  border-color: #FDE68A;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 700;
}

.pla-add-form {
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 14px;
}

.pla-gating-row { display: flex; flex-direction: column; gap: 4px; }
.pla-gating-opt {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  transition: background-color .12s;
}
.pla-gating-opt:hover { background: #FFFFFF; }
.pla-gating-opt input { margin-top: 3px; flex-shrink: 0; accent-color: #298084; }

.cla-form-row { display: flex; gap: 10px; }
.cla-flex { flex: 1; }

.pl-empty-tight { padding: 12px; }

/* ── Approvals queue (Build #14, sec 19.4) ── */
.appr-page { padding: 28px 28px 24px; max-width: 960px; margin: 0 auto; }
.appr-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  /* Neutralize the global dark site-header chrome (layout.css:6
     `header{background:#13161a;height:80px;border-bottom;box-shadow;sticky}`)
     that leaks onto this semantic <header> — same reset pattern as
     quick-call-v3.css:331. Without this the title + Refresh button render
     dark-on-dark (WCAG 2.1 SC 1.4.3 fail, ~1.5:1). */
  background: transparent;
  height: auto;
  padding: 0;
  border-bottom: none;
  box-shadow: none;
  position: static;
}
.appr-title {
  font-family: 'Newsreader', 'Georgia', serif;
  font-style: italic;
  font-size: 28px;
  font-weight: 500;
  color: #111827;
  margin: 0;
  letter-spacing: -.01em;
}

.appr-empty {
  padding: 48px 24px;
  text-align: center;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
}
.appr-empty-title { font-size: 14px; font-weight: 600; color: #374151; margin-bottom: 4px; }
.appr-empty-help { font-size: 12px; color: #6B7280; }

.appr-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 16px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  margin-bottom: 8px;
}
.appr-row-main { flex: 1; min-width: 0; }
.appr-row-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; }
.appr-kind-chip {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 10px;
  border-radius: 11px;
  font-size: 11px;
  font-weight: 600;
  background: #FEF3C7;
  color: #92400E;
  border: 1px solid #FDE68A;
}
.appr-resource { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #6B7280; }
.appr-resource code { background: #F3F4F6; padding: 1px 6px; border-radius: 4px; }
.appr-time { font-size: 11px; color: #9CA3AF; margin-left: auto; }
.appr-row-orig { font-size: 13px; color: #4B5563; margin-bottom: 4px; }
.appr-row-summary { font-size: 13px; color: #1F2937; line-height: 1.4; }
.appr-row-actions { display: flex; gap: 6px; flex-shrink: 0; align-items: center; }

.appr-reject-btn:hover { background: #FEF2F2; color: #B91C1C; border-color: #FECACA; }

.btn-danger {
  background: var(--color-danger);
  color: #FFFFFF;
  border: 1px solid var(--color-danger);
}
.btn-danger:hover { background: #B91C1C; border-color: #B91C1C; }

.appr-decision-modal .modal-frame-body { padding: 18px 22px; }
.appr-reason-textarea { resize: vertical; min-height: 70px; font-family: 'Geist Sans', sans-serif; }

/* ── Pending offer indicator (Build #15, sec 19.5) ── */
.pi-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 18px;
  padding: 0 7px;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .02em;
  background: #FEF3C7;
  color: #92400E;
  border: 1px solid #FDE68A;
  cursor: pointer;
  transition: background-color .12s;
}
.pi-badge:hover { background: #FDE68A; }
.pi-badge svg { flex-shrink: 0; }

.pi-modal .modal-frame-body { padding: 18px 22px; }
.pi-info {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-radius: 6px;
  padding: 12px 14px;
  margin-bottom: 12px;
}
.pi-info-row { display: flex; gap: 10px; font-size: 12px; margin-bottom: 4px; color: #78350F; }
.pi-info-row:last-child { margin-bottom: 0; }
.pi-info-lbl { width: 110px; flex-shrink: 0; color: #92400E; font-weight: 600; }
.pi-reason { font-style: italic; font-size: 12px; color: #78350F; margin-top: 6px; }
.pi-help { font-size: 12px; color: #6B7280; line-height: 1.4; }

/* ── Team Permissions (Build #16, sec 19.6) ── */
.tp-page { padding: 28px 28px 24px; max-width: 1000px; margin: 0 auto; }
.tp-hdr { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.tp-title {
  font-family: 'Newsreader', 'Georgia', serif;
  font-style: italic;
  font-size: 28px;
  font-weight: 500;
  color: #111827;
  margin: 0;
  letter-spacing: -.01em;
}
.tp-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid #E5E7EB;
  margin-bottom: 18px;
}
.tp-tab {
  padding: 10px 16px;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  font-family: 'Geist Sans', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #6B7280;
  cursor: pointer;
  transition: color .12s, border-color .12s;
}
.tp-tab:hover { color: #111827; }
.tp-tab-active { color: #298084; border-bottom-color: #298084; font-weight: 600; }
.tp-tab-body { min-height: 100px; }
.tp-toolbar { display: flex; gap: 8px; margin-bottom: 12px; }
.tp-list { display: flex; flex-direction: column; gap: 8px; }

.tp-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
}
.tp-row-main { flex: 1; min-width: 0; }
.tp-row-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  margin-bottom: 4px;
  color: #111827;
}
.tp-row-meta { font-size: 11px; color: #6B7280; line-height: 1.4; }
.tp-perm-key { font-family: 'JetBrains Mono', monospace; font-size: 11px; background: #F3F4F6; padding: 1px 6px; border-radius: 4px; }
.tp-scope { font-family: 'JetBrains Mono', monospace; font-size: 11px; }

.tp-chip {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 8px;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  background: #F3F4F6;
  color: #4B5563;
  border: 1px solid #E5E7EB;
}
.tp-chip-allow { background: #ECFDF5; color: #065F46; border-color: #A7F3D0; }
.tp-chip-deny  { background: #FEF2F2; color: #991B1B; border-color: #FECACA; }

/* PSA Gates tab (Build #17) */
.tp-help {
  font-size: 12px;
  color: #475569;
  background: #F0F9FA;
  border: 1px solid #CFFAFE;
  border-radius: 6px;
  padding: 10px 12px;
  margin-bottom: 14px;
  line-height: 1.5;
}
.tp-link { color: #298084; text-decoration: underline; }
.tp-link:hover { color: #1F5E61; }

.tp-gate-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  margin-bottom: 8px;
}
.tp-gate-main { flex: 1; min-width: 0; }
.tp-gate-name { font-size: 14px; font-weight: 600; color: #111827; margin-bottom: 4px; }
.tp-gate-help { font-size: 12px; color: #6B7280; line-height: 1.4; }

.tp-switch {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px 4px 4px;
  border: 1px solid #D1D5DB;
  border-radius: 999px;
  background: #FFFFFF;
  cursor: pointer;
  font-family: 'Geist Sans', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: #6B7280;
  transition: background-color .12s, border-color .12s, color .12s;
}
.tp-switch-knob {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #D1D5DB;
  transition: background-color .12s, transform .15s;
}
.tp-switch-on {
  background: #298084;
  border-color: #298084;
  color: #FFFFFF;
  padding: 4px 4px 4px 12px;
  flex-direction: row-reverse;
}
.tp-switch-on .tp-switch-knob { background: #FFFFFF; }

/* Quick toggles panel (Role Customs tab) — native-checkbox switch */
.tp-qt-panel {
  background: #FFFFFF;
  border: 1px solid #E2E5EA;
  border-radius: 8px;
  padding: 16px 18px;
  margin-bottom: 14px;
}
.tp-qt-panel-title {
  font-family: 'Geist Sans', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #6B7280;
  margin-bottom: 12px;
}
.tp-qt-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-top: 1px solid #F3F4F6;
}
.tp-qt-row:first-of-type { border-top: 0; padding-top: 4px; }
.tp-qt-text { flex: 1; min-width: 0; }
.tp-qt-label {
  font-family: 'Geist Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #111827;
  line-height: 1.3;
}
.tp-qt-hint {
  font-size: 12px;
  color: #6B7280;
  margin-top: 3px;
  line-height: 1.4;
}
.tp-qt-switch {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 20px;
  flex-shrink: 0;
  cursor: pointer;
}
.tp-qt-switch input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
  z-index: 1;
}
.tp-qt-switch-track {
  position: absolute;
  inset: 0;
  background: #D1D5DB;
  border-radius: 999px;
  transition: background-color .15s ease;
}
.tp-qt-switch-track::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #FFFFFF;
  box-shadow: 0 1px 2px rgba(17,24,39,.18);
  transition: transform .15s ease;
}
.tp-qt-switch input:checked + .tp-qt-switch-track { background: #298084; }
.tp-qt-switch input:checked + .tp-qt-switch-track::after { transform: translateX(16px); }
.tp-qt-switch input:focus-visible + .tp-qt-switch-track {
  outline: 2px solid #298084;
  outline-offset: 2px;
}
.tp-qt-switch input:disabled + .tp-qt-switch-track { opacity: .5; cursor: not-allowed; }

/* ── Audit log viewer (Build #19, sec 19.9) ── */
.al-page { padding: 28px 28px 24px; max-width: 1180px; margin: 0 auto; }
.al-hdr { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.al-title {
  font-family: 'Newsreader', 'Georgia', serif;
  font-style: italic;
  font-size: 28px;
  font-weight: 500;
  color: #111827;
  margin: 0;
  letter-spacing: -.01em;
}
.al-actions { display: flex; gap: 6px; }

.al-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
  padding: 12px 14px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  margin-bottom: 14px;
}
.al-filter-group { display: flex; align-items: center; gap: 6px; }
.al-filter-lbl {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6B7280;
  margin-right: 4px;
}
.al-chip {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 500;
  background: #F3F4F6;
  color: #4B5563;
  border: 1px solid #E5E7EB;
  cursor: pointer;
  transition: background-color .12s, color .12s, border-color .12s;
}
.al-chip:hover { background: #FFFFFF; border-color: #9CA3AF; }
.al-chip-active { background: #298084; color: #FFFFFF; border-color: #298084; }
.al-input-sm { height: 28px; padding: 4px 8px; font-size: 12px; }

.al-table-wrap { overflow-x: auto; }
.al-count {
  font-size: 11px;
  color: #6B7280;
  margin-bottom: 6px;
  font-family: 'JetBrains Mono', monospace;
}
.al-table {
  width: 100%;
  border-collapse: collapse;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  overflow: hidden;
  font-size: 12px;
}
.al-table thead {
  background: #F9FAFB;
  border-bottom: 1px solid #E5E7EB;
}
.al-table th {
  text-align: left;
  padding: 10px 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #6B7280;
}
.al-table td {
  padding: 8px 12px;
  border-bottom: 1px solid #F3F4F6;
  vertical-align: top;
  color: #1F2937;
}
.al-table tbody tr:last-child td { border-bottom: 0; }
.al-table tbody tr:hover { background: #FAFBFC; }
.al-cell-time {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: #6B7280;
  white-space: nowrap;
}
.al-action {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  background: #F3F4F6;
  padding: 1px 6px;
  border-radius: 4px;
}
.al-cell-res code {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: #6B7280;
}
.al-sev {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.al-sev-info     { background: #F3F4F6; color: #4B5563; }
.al-sev-notice   { background: #ECFEFF; color: #155E75; }
.al-sev-warning  { background: #FEF3C7; color: #92400E; }
.al-sev-critical { background: #FEE2E2; color: #991B1B; }

.al-empty { padding: 32px 16px; text-align: center; color: #6B7280; font-size: 13px; }

/* ── Explain trace tab (Build #20, sec 19.10) ── */
.ex-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 16px;
}
.ex-form button { grid-column: 1 / -1; justify-self: start; }

.ex-verdict {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 8px;
  margin-bottom: 14px;
  border: 1px solid;
}
.ex-verdict-allow { background: #ECFDF5; border-color: #A7F3D0; color: #065F46; }
.ex-verdict-deny  { background: #FEF2F2; border-color: #FECACA; color: #991B1B; }
.ex-verdict-lbl {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  opacity: .7;
}
.ex-verdict-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .04em;
}
.ex-verdict-reason { font-size: 12px; opacity: .85; }

.ex-trace-list { display: flex; flex-direction: column; gap: 4px; }
.ex-step {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 6px;
  overflow: hidden;
}
.ex-step-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  cursor: pointer;
  font-size: 13px;
  list-style: none;
}
.ex-step-summary::-webkit-details-marker { display: none; }
.ex-step-summary::before {
  content: '▶';
  font-size: 9px;
  color: #9CA3AF;
  transition: transform .12s;
}
.ex-step[open] .ex-step-summary::before { transform: rotate(90deg); }
.ex-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #F3F4F6;
  color: #6B7280;
  font-size: 11px;
  font-weight: 600;
  font-family: 'JetBrains Mono', monospace;
  flex-shrink: 0;
}
.ex-step-lookup { font-weight: 600; color: #111827; flex: 1; }
.ex-step-status { font-size: 11px; color: #6B7280; }
.ex-step-body {
  margin: 0;
  padding: 10px 14px;
  background: #FAFBFC;
  border-top: 1px solid #F3F4F6;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: #1F2937;
  white-space: pre-wrap;
  overflow-x: auto;
}

/* ============================================================================
   N4 fix 2026-05-22 — WCAG 2.1 SC 2.5.5 Target Size (Level AA = 24×24 min;
   AAA = 44×44). Pre-fix the cycle-2 audit found 23 visible icon buttons
   under 32×32 on the owner dashboard. Approach: min-width/min-height (not
   padding) so we expand the click target without shifting layout. The icon
   inside stays centered via existing flex/text alignment.
   Targets covered: dashboard header buttons, notification overlay close,
   sidebar toggle, daily-playbook close, modal close buttons.
   ============================================================================ */
.sb-toggle-btn,
.dash-welcome-trigger,
.zone-picker-trigger,
.tm-close,
.modal-close,
.om-close,
.cl-close {
  min-width: 32px;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ══════════════════════════════════════════════════════════════════════════
   PROJECT WORKSPACE — Phase 1 shell (tab nav, header, placeholder body)
   Brief: docs/specs/project-workspace-design-brief-2026-05-22.md §3, §4.1, §4.2
   Wireline aesthetic: teal CTA underline for active tab, Geist Sans, hairline borders.
   ══════════════════════════════════════════════════════════════════════════ */
#view-project-workspace { padding: 0; }
.pw-shell { display: flex; flex-direction: column; min-height: calc(100vh - 0px); }
.pw-topbar {
  display: flex; align-items: center; gap: 18px;
  padding: 18px 28px 10px 28px;
  border-bottom: 1px solid var(--color-glass-border, var(--border));
  background: var(--surface, #FFFFFF);
}
.pw-back {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--muted); font-size: 12px; font-weight: 500;
  text-decoration: none; padding: 4px 8px; border-radius: 6px;
  transition: background .12s, color .12s;
}
.pw-back:hover { background: var(--s1, rgba(0,0,0,.04)); color: var(--text); }
.pw-title-block { display: flex; flex-direction: column; gap: 2px; }
.pw-title-name {
  font-family: 'Newsreader', Georgia, serif;
  font-style: italic; font-weight: 500;
  font-size: 24px; line-height: 1.2; color: var(--text);
}
.pw-title-meta {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--muted);
}
.pw-tabs {
  display: flex; align-items: stretch; gap: 0;
  padding: 0 28px;
  border-bottom: 1px solid var(--color-glass-border, var(--border));
  background: var(--surface, #FFFFFF);
}
.pw-tab {
  appearance: none; background: transparent; border: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px; font-weight: 500; color: var(--muted);
  padding: 12px 18px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color .12s, border-color .12s;
}
.pw-tab:hover { color: var(--text); }
/* Surface 3: per-tab volume count (mono, dim) — turns the tab bar into a nav dashboard. */
.pw-tab-count { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; color: var(--dim); margin-left: 6px; }
.pw-tab-active .pw-tab-count { color: var(--muted); }
.pw-tab-active {
  color: var(--color-secondary, var(--accent, #298084));
  border-bottom-color: var(--color-secondary, var(--accent, #298084));
  font-weight: 600;
}
.pw-tab:focus-visible {
  outline: 2px solid var(--color-secondary, var(--accent, #298084));
  outline-offset: -2px;
  border-radius: 4px;
}
.pw-body {
  flex: 1;
  padding: 24px 28px;
  background: var(--bg-2, #F8F9FB);
}
.pw-placeholder {
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  padding: 40px 24px;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 8px;
  max-width: 640px;
}
.pw-placeholder-title {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 16px; font-weight: 600; color: var(--text);
}
.pw-placeholder-sub {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; font-weight: 400; color: var(--muted);
}
.pw-empty {
  padding: 60px 28px; color: var(--muted); font-size: 14px;
}

/* Workspace button on project page header */
.pv-workspace-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; font-weight: 600;
  color: var(--text);
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 6px;
  cursor: pointer;
  transition: background .12s, border-color .12s, color .12s;
}
.pv-workspace-btn:hover {
  background: var(--color-secondary, var(--accent, #298084));
  border-color: var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
}
.pv-workspace-btn:hover svg { stroke: #FFFFFF; }
.pv-workspace-btn:focus-visible {
  outline: 2px solid var(--color-secondary, var(--accent, #298084));
  outline-offset: 2px;
}

/* ══════════════════════════════════════════════════════════════════════════
   WELLS TAB — Phase 2a (table + inline edit + filter chips)
   Brief: §4.2 (Wells row), §6.1 (inline edit), §7.2-7.3 (helpers + empty state)
   ══════════════════════════════════════════════════════════════════════════ */
.pwt-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.pwt-filter-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.pwt-chip {
  appearance: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px; font-weight: 600;
  letter-spacing: .02em;
  padding: 5px 12px;
  border-radius: 12px;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  color: var(--muted);
  cursor: pointer;
  transition: background .12s, border-color .12s, color .12s;
}
.pwt-chip:hover { color: var(--text); border-color: var(--border2, var(--border)); }
.pwt-chip-active {
  background: var(--color-secondary, var(--accent, #298084));
  border-color: var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
}
.pwt-chip:focus-visible {
  outline: 2px solid var(--color-secondary, var(--accent, #298084));
  outline-offset: 2px;
}
.pwt-count {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 11px;
  color: var(--muted);
}
.pwt-table-wrap {
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 8px;
  overflow: hidden;
}
.pwt-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
}
.pwt-table thead tr {
  background: var(--bg-2, #F8F9FB);
  border-bottom: 1px solid var(--color-glass-border, var(--border));
}
.pwt-th {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px; font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 10px 12px;
  text-align: left;
  white-space: nowrap;
  user-select: none;
}
.pwt-th[data-action] { cursor: pointer; }
.pwt-th[data-action]:hover { color: var(--text); }
.pwt-th-num { text-align: right; font-family: 'JetBrains Mono', monospace; }
.pwt-row { border-bottom: 1px solid var(--color-glass-border, var(--border)); }
.pwt-row:last-child { border-bottom: none; }
.pwt-row:hover { background: var(--bg-2, #F8F9FB); }
.pwt-group-row {
  background: #F0F7F7;
  border-top: 1px solid rgba(41, 128, 132, .20);
  border-bottom: 1px solid rgba(41, 128, 132, .20);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
}
.pwt-group-row-unassigned {
  background: #FBF7ED;
  border-top-color: rgba(204, 156, 66, .28);
  border-bottom-color: rgba(204, 156, 66, .28);
}
.pwt-group-cell {
  padding: 10px 12px;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: var(--text);
}
.pwt-group-select {
  width: 40px;
  padding-left: 12px;
  text-align: center;
  background: rgba(41, 128, 132, .07);
  border-right: 1px solid rgba(41, 128, 132, .14);
}
.pwt-group-row-unassigned .pwt-group-select {
  background: rgba(204, 156, 66, .08);
  border-right-color: rgba(204, 156, 66, .18);
}
.pwt-group-checkbox {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--color-secondary, var(--accent, #298084));
}
.pwt-group-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 28px;
}
.pwt-group-kicker {
  flex: 0 0 auto;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--color-secondary, var(--accent, #298084));
}
.pwt-group-row-unassigned .pwt-group-kicker {
  color: var(--color-accent, var(--brand-brass, #CC9C42));
}
.pwt-group-title {
  min-width: 0;
  font-size: 13px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pwt-group-count {
  margin-left: auto;
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 11px;
  font-weight: 700;
  color: rgba(26, 33, 40, .68);
  white-space: nowrap;
}
.pwt-group-row + .pwt-row .pwt-cell {
  border-top: 1px solid rgba(255, 255, 255, .82);
}
.pwt-cell {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px;
  color: var(--text);
  padding: 8px 12px;
  vertical-align: middle;
}
.pwt-cell-num {
  text-align: right;
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
}
.pwt-cell[data-action] { cursor: text; }
.pwt-cell[data-action]:hover { background: var(--s1, rgba(0,0,0,.03)); }
.pwt-cell-value { display: inline-block; min-height: 18px; }
.pwt-cell-empty { color: var(--muted); }
.pwt-well-name { font-weight: 600; color: var(--text); }
.pwt-well-meta { font-size: 11px; color: var(--muted); margin-top: 2px; }
.pwt-well-dispo { margin-top: 3px; }
.pwt-cell-editing { background: var(--s1, rgba(0,0,0,.03)); padding: 6px 8px; }
.pwt-edit-input {
  width: 100%; box-sizing: border-box;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px;
  padding: 4px 6px;
  border: 1px solid var(--color-secondary, var(--accent, #298084));
  border-radius: 4px;
  background: var(--surface, #FFFFFF);
  color: var(--text);
  outline: none;
}
.pwt-edit-input:focus {
  box-shadow: 0 0 0 2px rgba(41, 128, 132, .18);
}
.pwt-edit-input-multi { min-height: 40px; resize: vertical; }
.pwt-edit-actions { display: flex; gap: 6px; margin-top: 6px; }
.pwt-edit-save, .pwt-edit-cancel {
  appearance: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px; font-weight: 600;
  padding: 4px 10px;
  border-radius: 4px;
  cursor: pointer;
  border: 1px solid transparent;
}
.pwt-edit-save {
  background: var(--color-secondary, var(--accent, #298084));
  border-color: var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
}
.pwt-edit-cancel {
  background: var(--surface, #FFFFFF);
  border-color: var(--color-glass-border, var(--border));
  color: var(--muted);
}
.pwt-edit-cancel:hover { color: var(--text); }
.pwt-agent-count {
  display: inline-block;
  min-width: 24px;
  padding: 1px 8px;
  border-radius: 10px;
  background: var(--s1, rgba(0,0,0,.04));
  color: var(--muted);
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 11px; font-weight: 600;
  text-align: center;
}
.pwt-agent-count-has {
  background: rgba(41, 128, 132, .12);
  color: var(--color-secondary, var(--accent, #298084));
}
.pwt-cell-deferred { color: var(--muted); font-size: 11px; }
.pwt-empty-state {
  padding: 60px 28px;
  text-align: center;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 8px;
}
.pwt-empty-title {
  font-family: 'Newsreader', Georgia, serif;
  font-style: italic;
  font-size: 22px;
  color: var(--text);
  margin-bottom: 8px;
}
.pwt-empty-sub {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 18px;
}
.pwt-empty-cta {
  appearance: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; font-weight: 600;
  padding: 8px 16px;
  border-radius: 6px;
  background: var(--color-secondary, var(--accent, #298084));
  border: 1px solid var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
  cursor: pointer;
}
.pwt-empty-filter {
  padding: 28px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}
.pwt-link {
  appearance: none;
  background: transparent; border: none;
  font-family: inherit; font-size: inherit;
  color: var(--color-secondary, var(--accent, #298084));
  cursor: pointer; padding: 0 4px;
  text-decoration: underline;
}
/* Permission-disabled cells (perm-gate adds .perm-denied) */
.pwt-cell.perm-denied {
  cursor: not-allowed; opacity: .65;
}
.pwt-cell.perm-denied[data-action] { pointer-events: none; }

/* ──────────────────────────────────────────────────────────────────────────
   Phase 2b-1: cap clarity additions
   ────────────────────────────────────────────────────────────────────────── */

/* P2-9: cap distribution sparkline above the table */
.pwt-sparkline {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 14px;
  margin-bottom: 12px;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 8px;
}
.pwt-sparkline-empty {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; color: var(--muted);
  padding: 10px 14px;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 8px;
  margin-bottom: 12px;
}
.pwt-sparkline-label {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px;
  color: var(--muted);
  white-space: nowrap;
}
.pwt-sparkline-label strong { color: var(--text); font-weight: 600; }
.pwt-sparkline-svg { display: block; }
.pwt-sparkline-range {
  display: flex; flex-direction: column; gap: 2px;
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 10px;
  color: var(--muted);
}
.pwt-sparkline-range span:first-child { color: var(--text); }

/* P2-14: cascade tooltip on Top cap cells (CSS-only hover) */
.pwt-cell-has-tooltip { position: relative; }
.pwt-cap-tooltip {
  position: absolute;
  z-index: 30;
  bottom: calc(100% + 6px);
  right: 4px;
  min-width: 260px;
  max-width: 360px;
  padding: 8px 12px;
  background: var(--text, #1a2128);
  color: #FFFFFF;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px;
  line-height: 1.5;
  border-radius: 6px;
  box-shadow: 0 4px 16px rgba(0,0,0,.18);
  opacity: 0;
  pointer-events: none;
  transition: opacity .12s;
  white-space: normal;
  text-align: left;
}
.pwt-cap-tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  right: 12px;
  border: 5px solid transparent;
  border-top-color: var(--text, #1a2128);
}
.pwt-cap-tooltip-headline {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  margin-bottom: 4px;
  font-size: 11px;
}
/* Surface 3: frame the resolution operator (min/max) as a faint chip so the headline
   reads as a derivation, not a second number. Translucent on the dark tooltip. */
.pwt-cap-op { display: inline-block; font-family: 'JetBrains Mono', monospace; font-size: 10px; background: rgba(255,255,255,.14); color: rgba(255,255,255,.82); padding: 1px 5px; border-radius: 4px; }
.pwt-cap-tooltip-source { color: rgba(255,255,255,.78); }
.pwt-cap-tooltip-source strong { color: #FFFFFF; }
.pwt-cell-has-tooltip:hover .pwt-cap-tooltip { opacity: 1; }

/* P2-18: out-of-scope row dimming */
.pwt-row-out-of-scope { opacity: .45; background: var(--bg-2, #F8F9FB); }
.pwt-row-out-of-scope:hover { opacity: .6; }

/* P2-11: agent matrix row (expandable beneath the well row) */
.pwt-agent-count {
  appearance: none;
  cursor: pointer;
  border: none;
  background: var(--s1, rgba(0,0,0,.04));
  color: var(--muted);
}
.pwt-agent-count:hover { background: var(--s2, rgba(0,0,0,.08)); color: var(--text); }
.pwt-agent-count-expanded {
  background: var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
}
.pwt-agent-count-expanded:hover { background: var(--color-secondary, var(--accent, #298084)); }
.pwt-agent-row { background: var(--bg-2, #F8F9FB); }
.pwt-agent-row-cell { padding: 0; border-bottom: 1px solid var(--color-glass-border, var(--border)); }
.pwt-agent-matrix {
  padding: 14px 18px;
  box-shadow: inset 1px 0 0 0 var(--color-secondary, var(--accent, #298084));
  background: var(--bg-2, #F8F9FB);
}
.pwt-agent-matrix-title {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--text);
  margin-bottom: 10px;
}
.pwt-agent-matrix-table {
  width: 100%;
  max-width: 520px;
  border-collapse: collapse;
}
.pwt-agent-matrix-table th {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 10px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--muted);
  text-align: left;
  padding: 4px 12px 4px 0;
  border-bottom: 1px solid var(--color-glass-border, var(--border));
}
.pwt-agent-matrix-row td {
  padding: 6px 12px 6px 0;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: var(--text);
  border-bottom: 1px solid var(--color-glass-border, var(--border));
}
.pwt-agent-matrix-cap {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--color-accent, var(--brand-brass, #CC9C42));
}
.pwt-agent-matrix-reason { color: var(--muted); font-size: 11px; font-style: italic; }
.pwt-agent-empty {
  padding: 12px 0;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: var(--muted);
  font-style: italic;
}
.pwt-agent-loading {
  padding: 12px 18px;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: var(--muted);
  background: var(--bg-2, #F8F9FB);
  box-shadow: inset 1px 0 0 0 var(--color-secondary, var(--accent, #298084));
}

/* ──────────────────────────────────────────────────────────────────────────
   Phase 2b-2a: bulk-select column + bulk action bar + saved views
   ────────────────────────────────────────────────────────────────────────── */

/* Select column (narrow, leading) */
.pwt-th-select, .pwt-cell-select {
  width: 32px;
  padding: 8px 8px 8px 12px;
  text-align: center;
}
.pwt-select-all, .pwt-row-checkbox {
  cursor: pointer;
  width: 14px; height: 14px;
  accent-color: var(--color-secondary, var(--accent, #298084));
}
.pwt-row-selected {
  background: rgba(41, 128, 132, .06);
}
.pwt-row-selected:hover {
  background: rgba(41, 128, 132, .10);
}

/* Saved view chips */
.pwt-saved-view-chip-wrap {
  display: inline-flex;
  align-items: center;
  position: relative;
}
.pwt-saved-view-chip {
  padding-right: 24px;          /* room for delete X */
}
.pwt-saved-view-delete {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  appearance: none;
  border: none;
  background: transparent;
  color: var(--muted);
  padding: 2px;
  border-radius: 3px;
  cursor: pointer;
  opacity: 0;
  transition: opacity .12s, background .12s, color .12s;
  line-height: 0;
}
.pwt-saved-view-chip-wrap:hover .pwt-saved-view-delete,
.pwt-saved-view-delete:focus-visible {
  opacity: 1;
}
.pwt-saved-view-delete:hover {
  background: rgba(0,0,0,.08);
  color: var(--text);
}
.pwt-saved-view-chip.pwt-chip-active + .pwt-saved-view-delete {
  color: rgba(255,255,255,.85);
}
.pwt-saved-view-chip.pwt-chip-active + .pwt-saved-view-delete:hover {
  background: rgba(255,255,255,.18);
  color: #FFFFFF;
}
.pwt-save-view-btn {
  appearance: none;
  background: transparent;
  border: 1px dashed var(--color-glass-border, var(--border));
  color: var(--muted);
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
  padding: 5px 12px;
  border-radius: 12px;
  cursor: pointer;
  transition: color .12s, border-color .12s, background .12s;
}
.pwt-save-view-btn:hover {
  color: var(--color-secondary, var(--accent, #298084));
  border-color: var(--color-secondary, var(--accent, #298084));
  background: rgba(41, 128, 132, .04);
}

/* Bulk action bar (sticky bottom, only when N>0 selected) */
.pwt-bulk-action-bar {
  position: sticky;
  bottom: 16px;
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 12px 18px;
  background: var(--text, #1a2128);
  color: #FFFFFF;
  border-radius: 10px;
  box-shadow: 0 8px 32px rgba(0,0,0,.18);
  z-index: 20;
}
.pwt-bulk-count {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  font-weight: 700;
  color: #FFFFFF;
  padding-right: 14px;
  border-right: 1px solid rgba(255,255,255,.18);
}
.pwt-bulk-form {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
}
.pwt-bulk-form-move {
  flex: 0 1 auto;
}
.pwt-bulk-label {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: rgba(255,255,255,.7);
}
.pwt-bulk-select, .pwt-bulk-input {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  padding: 6px 10px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 6px;
  background: rgba(255,255,255,.08);
  color: #FFFFFF;
}
.pwt-bulk-input {
  width: 180px;
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
}
.pwt-bulk-input::placeholder { color: rgba(255,255,255,.45); }
.pwt-bulk-select { color: #FFFFFF; }
.pwt-bulk-select option { color: var(--text, #1a2128); }
.pwt-bulk-apply {
  appearance: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 6px;
  background: var(--color-secondary, var(--accent, #298084));
  border: 1px solid var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
  cursor: pointer;
}
.pwt-bulk-apply:hover {
  background: var(--accent-hover, #2a8f93);
  border-color: var(--accent-hover, #2a8f93);
}
.pwt-bulk-apply:disabled {
  opacity: .6; cursor: not-allowed;
}
.pwt-bulk-delete {
  appearance: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 6px;
  background: rgba(192, 82, 78, .12);
  border: 1px solid rgba(192, 82, 78, .35);
  color: #F5B7B4;
  cursor: pointer;
}
.pwt-bulk-delete:hover {
  background: rgba(192, 82, 78, .22);
  border-color: rgba(192, 82, 78, .55);
  color: #FFFFFF;
}
.pwt-bulk-delete:disabled {
  opacity: .6;
  cursor: not-allowed;
}
.pwt-bulk-cancel {
  appearance: none;
  background: transparent;
  border: 1px solid rgba(255,255,255,.25);
  color: rgba(255,255,255,.85);
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
}
.pwt-bulk-cancel:hover {
  background: rgba(255,255,255,.10);
  color: #FFFFFF;
}

/* ══════════════════════════════════════════════════════════════════════════
   PRICING TAB — Phase 3 (project ceiling + manager tighten + cascade + smart prompt)
   Brief: §4.2 (Pricing row), §6.2 (smart prompt), §7.4
   ══════════════════════════════════════════════════════════════════════════ */
.pwp-loading {
  padding: 40px 28px;
  text-align: center;
  color: var(--muted);
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px;
}
/* P1-16 ASSET WEIGHT (2026-05-22): pricing-tab skeleton standing in for the
   three cap-tier cards while get_project_caps is in flight. Layout mirrors
   .pwp-grid so the real cards land in the exact same slots. */
.pwp-skeleton .pwp-skel-card {
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 8px;
  padding: 18px 20px;
}
.pwp-skel-line {
  height: 12px;
  border-radius: 4px;
  margin-bottom: 10px;
  background: linear-gradient(
    90deg,
    oklch(0.94 0.005 200) 0%,
    oklch(0.97 0.003 200) 50%,
    oklch(0.94 0.005 200) 100%
  );
  background-size: 200% 100%;
  animation: pwp-skel-shimmer 1.4s linear infinite;
}
.pwp-skel-line:last-child { margin-bottom: 0; }
.pwp-skel-line--title { height: 14px; width: 45%; margin-bottom: 16px; }
.pwp-skel-line--short { width: 60%; }
@keyframes pwp-skel-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .pwp-skel-line { animation: none; }
}
.pwp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.pwp-card-wide { grid-column: 1 / -1; }
.pwp-card {
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 8px;
  padding: 18px 20px;
}
.pwp-card-hdr { margin-bottom: 14px; }
.pwp-card-title {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--text);
  margin: 0 0 4px 0;
}
.pwp-card-sub {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; color: var(--muted);
  line-height: 1.45;
}

/* Value display + edit row */
.pwp-value-row {
  display: flex; align-items: baseline; gap: 14px;
  flex-wrap: wrap;
}
.pwp-value {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 28px; font-weight: 700;
  color: var(--color-accent, var(--brand-brass, #CC9C42));
  line-height: 1;
}
.pwp-value-empty { color: var(--muted); font-size: 22px; font-weight: 500; }
.pwp-edit-btn, .pwp-clear-btn {
  appearance: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; font-weight: 600;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid var(--color-glass-border, var(--border));
  background: var(--surface, #FFFFFF);
  color: var(--text);
  transition: background .12s, border-color .12s, color .12s;
}
.pwp-edit-btn:hover {
  background: var(--color-secondary, var(--accent, #298084));
  border-color: var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
}
.pwp-clear-btn:hover { color: var(--color-red, #c0392b); border-color: var(--color-red, #c0392b); }

.pwp-edit-row {
  display: flex; align-items: center; gap: 8px;
  margin-top: 6px;
}
.pwp-input {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 18px; font-weight: 600;
  padding: 8px 12px;
  border: 1px solid var(--color-secondary, var(--accent, #298084));
  border-radius: 6px;
  background: var(--surface, #FFFFFF);
  color: var(--text);
  outline: none;
  width: 160px;
  box-shadow: 0 0 0 2px rgba(41, 128, 132, .12);
}
.pwp-save, .pwp-cancel {
  appearance: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; font-weight: 600;
  padding: 7px 14px;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid transparent;
}
.pwp-save {
  background: var(--color-secondary, var(--accent, #298084));
  border-color: var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
}
.pwp-save:hover { background: var(--accent-hover, #2a8f93); border-color: var(--accent-hover, #2a8f93); }
.pwp-save:disabled { opacity: .6; cursor: not-allowed; }
.pwp-cancel {
  background: var(--surface, #FFFFFF);
  border-color: var(--color-glass-border, var(--border));
  color: var(--muted);
}
.pwp-cancel:hover { color: var(--text); }

.pwp-reason-input {
  margin-top: 10px;
  width: 100%; box-sizing: border-box;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  padding: 7px 10px;
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 6px;
  background: var(--surface, #FFFFFF);
  color: var(--text);
}
.pwp-reason-input:focus {
  border-color: var(--color-secondary, var(--accent, #298084));
  outline: none;
}
.pwp-reason-display {
  margin-top: 8px;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  font-style: italic;
  color: var(--muted);
  box-shadow: inset 1px 0 0 0 var(--color-secondary, var(--accent, #298084));
  padding-left: 10px;
}

/* Cascade explainer */
.pwp-cascade-list {
  list-style: none;
  padding: 0; margin: 0 0 18px 0;
  display: flex; flex-direction: column; gap: 10px;
}
.pwp-cascade-step {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 10px 12px;
  background: var(--bg-2, #F8F9FB);
  border-radius: 6px;
}
.pwp-cascade-step-inactive { opacity: .55; }
.pwp-cascade-step-link { background: rgba(41, 128, 132, .05); }
.pwp-cascade-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px;
  flex-shrink: 0;
  background: var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
  border-radius: 50%;
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 11px; font-weight: 700;
  margin-top: 1px;
}
.pwp-cascade-step-inactive .pwp-cascade-num {
  background: var(--muted);
}
.pwp-cascade-step-title {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px; font-weight: 600; color: var(--text);
}
.pwp-cascade-step-val {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 14px; font-weight: 700;
  color: var(--color-accent, var(--brand-brass, #CC9C42));
  margin-top: 2px;
}
.pwp-cascade-step-sub {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px; color: var(--muted);
  margin-top: 2px;
}
.pwp-resolved {
  display: flex; align-items: baseline; gap: 14px;
  padding: 14px 16px;
  background: var(--bg-2, #F8F9FB);
  border-radius: 6px;
  box-shadow: inset 1px 0 0 0 var(--color-secondary, var(--accent, #298084));
}
.pwp-resolved-label {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted);
}
.pwp-resolved-val {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-size: 20px; font-weight: 700;
  color: var(--color-accent, var(--brand-brass, #CC9C42));
}

/* Smart prompt banner */
.pwp-smart-prompt {
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px;
  padding: 14px 18px;
  margin-bottom: 16px;
  background: rgba(41, 128, 132, .08);
  border: 1px solid var(--color-secondary, var(--accent, #298084));
  border-radius: 8px;
  border-left-width: 4px;
}
.pwp-smart-prompt-body { flex: 1; }
.pwp-smart-prompt-headline {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px; font-weight: 500;
  color: var(--text);
  margin-bottom: 4px;
}
.pwp-smart-prompt-headline strong {
  font-family: 'JetBrains Mono', monospace;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--color-accent, var(--brand-brass, #CC9C42));
}
.pwp-smart-prompt-sub {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; color: var(--muted);
}
.pwp-smart-prompt-actions { display: flex; gap: 8px; flex-shrink: 0; }
.pwp-smart-apply, .pwp-smart-skip {
  appearance: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px; font-weight: 600;
  padding: 7px 14px;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid transparent;
}
.pwp-smart-apply {
  background: var(--color-secondary, var(--accent, #298084));
  border-color: var(--color-secondary, var(--accent, #298084));
  color: #FFFFFF;
}
.pwp-smart-apply:hover { background: var(--accent-hover, #2a8f93); border-color: var(--accent-hover, #2a8f93); }
.pwp-smart-skip {
  background: var(--surface, #FFFFFF);
  border-color: var(--color-glass-border, var(--border));
  color: var(--muted);
}
.pwp-smart-skip:hover { color: var(--text); }

/* Responsive: stack the 2-column grid on narrow viewports */
@media (max-width: 880px) {
  .pwp-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   PW Phase 4a — Property Lists / Project Data / Settings tab shells
   + Wells-tab landing-row pulse + OMv2 cap-chip "Open in Workspace"
   ============================================================ */

.pw-section-hdr { padding: 4px 0 16px; border-bottom: 1px solid var(--color-glass-border, var(--border)); margin-bottom: 16px; }
.pw-section-title { font-family: 'Newsreader', Georgia, serif; font-style: italic; font-size: 22px; font-weight: 500; color: var(--text); margin: 0 0 4px; letter-spacing: -0.01em; }
.pw-section-sub { font-family: 'Geist Sans', system-ui, sans-serif; font-size: 12px; color: var(--muted); line-height: 1.5; max-width: 720px; }

.pw-property-lists-pane,
.pw-project-data-pane,
.pw-settings-pane { padding: 24px 28px; max-width: 1100px; }

/* The migrated #pl-drawer-body retains its existing shared .cl-* utility styles
   from property-lists.js. Workspace pane just gives it room. */
.pw-property-lists-pane #pl-drawer-body { background: transparent; padding: 0; }

/* psd-*/psp-* form styles target both the (removed) drawer + the workspace
   tabs. In workspace context, full-width rosters look cramped at drawer
   widths — bump the form-control widths so inputs breathe. Drawer-only
   overrides land in Phase 6 polish. */
.pw-project-data-pane .psd-county-list,
.pw-project-data-pane .psd-prop-list,
.pw-settings-pane .psp-scope-selector { width: 100%; }

/* Wells-tab landing-row pulse — fires when openProjectWorkspaceToProperty()
   scrolls a row into view. Uses the brand teal accent to remain consistent
   with the Workspace highlight vocabulary. */
@keyframes pwt-row-pulse-anim {
  0%   { background: rgba(41, 128, 132, 0.20); }
  100% { background: transparent; }
}
.pwt-row.pwt-row-pulse { animation: pwt-row-pulse-anim 1.8s ease-out; }

/* OMv2 cap chip — Phase 4a redirect: "Open in Workspace →" button replaces
   the legacy set-cap stub. Sits at the right of the cap-stack and is
   visually a quieter link, not a primary CTA. */
.omv2-eq-cap-open {
  appearance: none;
  background: transparent;
  border: none;
  padding: 0 0 0 6px;
  margin: 0;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--color-secondary, var(--accent, #298084));
  cursor: pointer;
  letter-spacing: 0.01em;
}
.omv2-eq-cap-open:hover { text-decoration: underline; color: var(--accent-hover, #2a8f93); }
.omv2-eq-cap-empty-display {
  color: var(--muted);
  font-style: italic;
}

/* ============================================================
   PW Phase 5 — Keyboard shortcuts (row cursor + Cmd+K palette
   + ? help overlay)
   ============================================================ */

/* Wells row cursor — j/k navigation highlights this row. Subtle teal
   left-edge marker (1px hairline per BAN 1 — NOT a colored stripe >1px). */
.pwt-row.pwt-row-keynav {
  background: rgba(41, 128, 132, 0.06);
  box-shadow: inset 1px 0 0 0 var(--color-secondary, var(--accent, #298084));
}
.pwt-row.pwt-row-keynav .pwt-cell-well .pwt-cell-well-name {
  color: var(--text);
  font-weight: 600;
}

/* Cmd+K command palette */
.pw-palette-backdrop {
  position: fixed; inset: 0;
  background: rgba(20, 30, 40, 0.42);
  backdrop-filter: blur(2px);
  z-index: 9000;
  display: flex; justify-content: center; align-items: flex-start;
  padding-top: 10vh;
}
.pw-palette {
  width: 100%; max-width: 580px;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 12px;
  box-shadow: var(--shadow-overlay, 0 16px 48px rgba(20, 30, 40, 0.18));
  overflow: hidden;
  display: flex; flex-direction: column;
}
.pw-palette-input {
  appearance: none;
  width: 100%; box-sizing: border-box;
  padding: 14px 18px;
  border: none; outline: none;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 15px;
  color: var(--text);
  background: transparent;
  border-bottom: 1px solid var(--color-glass-border, var(--border));
}
.pw-palette-input::placeholder { color: var(--muted); }
.pw-palette-results {
  max-height: 56vh;
  overflow-y: auto;
  padding: 6px 0;
}
.pw-palette-empty {
  padding: 24px 18px;
  text-align: center;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px;
  color: var(--muted);
}
.pw-palette-result {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 16px;
  cursor: pointer;
  border-left: 2px solid transparent;
}
.pw-palette-result:hover { background: rgba(41, 128, 132, 0.04); }
.pw-palette-result.pw-palette-result-active {
  background: rgba(41, 128, 132, 0.08);
  border-left-color: var(--color-secondary, var(--accent, #298084));
}
.pw-palette-kind {
  flex-shrink: 0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--muted);
  background: var(--bg, #F0F4F8);
  padding: 3px 6px; border-radius: 4px;
  min-width: 42px; text-align: center;
}
.pw-palette-meta { flex: 1; min-width: 0; }
.pw-palette-label {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 13px; font-weight: 500; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pw-palette-sub {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 11px; color: var(--muted);
  margin-top: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pw-palette-footer {
  display: flex; gap: 14px;
  padding: 8px 14px;
  border-top: 1px solid var(--color-glass-border, var(--border));
  background: var(--bg, #F8F9FB);
}
.pw-palette-hint {
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 10px;
  color: var(--muted);
  display: inline-flex; align-items: center; gap: 4px;
}
.pw-palette-hint kbd {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; font-weight: 600;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-bottom-width: 2px;
  border-radius: 3px;
  padding: 1px 5px;
  color: var(--text);
}

/* ? help overlay */
.pw-help-backdrop {
  position: fixed; inset: 0;
  background: rgba(20, 30, 40, 0.42);
  backdrop-filter: blur(2px);
  z-index: 9000;
  display: flex; justify-content: center; align-items: center;
}
.pw-help {
  width: 100%; max-width: 460px;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 10px;
  box-shadow: var(--shadow-overlay, 0 16px 48px rgba(20, 30, 40, 0.18));
  overflow: hidden;
}
.pw-help-hdr {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid var(--color-glass-border, var(--border));
}
.pw-help-title {
  font-family: 'Newsreader', Georgia, serif;
  font-style: italic;
  font-size: 20px; font-weight: 500;
  color: var(--text); letter-spacing: -0.01em;
}
.pw-help-close {
  appearance: none;
  width: 28px; height: 28px;
  border: 1px solid var(--color-glass-border, var(--border));
  border-radius: 6px;
  background: var(--bg, #F8F9FB);
  color: var(--muted);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
}
.pw-help-close:hover { background: var(--surface, #FFFFFF); color: var(--text); }
.pw-help-body {
  padding: 14px 18px 18px;
  display: flex; flex-direction: column; gap: 18px;
}
.pw-help-group-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}
.pw-help-row {
  display: flex; align-items: center; gap: 12px;
  padding: 6px 0;
  font-family: 'Geist Sans', system-ui, sans-serif;
  font-size: 12px;
  color: var(--text);
}
.pw-help-row kbd {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; font-weight: 600;
  background: var(--bg, #F0F4F8);
  border: 1px solid var(--color-glass-border, var(--border));
  border-bottom-width: 2px;
  border-radius: 4px;
  padding: 2px 6px;
  color: var(--text);
  min-width: 28px; text-align: center;
}
.pw-help-row span { color: var(--muted); flex: 1; }

/* ============================================================
   PW Phase 6 — Accessibility focus-ring sweep (P6-3, WCAG 2.4.7)
   Every interactive workspace element gets a visible focus indicator.
   Teal CTA accent at 25% opacity matches the Wireline focus token.
   ============================================================ */

.pw-back:focus-visible,
.pwt-empty-cta:focus-visible,
.pwt-link:focus-visible,
.pwt-edit-save:focus-visible,
.pwt-edit-cancel:focus-visible,
.pwt-saved-view-chip:focus-visible,
.pwt-save-view-btn:focus-visible,
.pwt-select-all:focus-visible,
.pwt-row-checkbox:focus-visible,
.pwt-group-checkbox:focus-visible,
.pwt-bulk-apply:focus-visible,
.pwt-bulk-delete:focus-visible,
.pwt-bulk-cancel:focus-visible,
.pwt-agent-count:focus-visible,
.pwt-cell-well-name:focus-visible,
.pwp-edit-btn:focus-visible,
.pwp-clear-btn:focus-visible,
.pwp-save:focus-visible,
.pwp-cancel:focus-visible,
.pwp-smart-apply:focus-visible,
.pwp-smart-skip:focus-visible,
.pw-palette-input:focus-visible,
.pw-palette-result:focus-visible,
.pw-help-close:focus-visible,
.omv2-eq-cap-open:focus-visible {
  outline: 2px solid var(--color-secondary, var(--accent, #298084));
  outline-offset: 2px;
  border-radius: 4px;
}

/* Inputs inside the workspace get a tighter inline ring so they don't
   compete with their existing border-color focus state. */
.pw-palette-input:focus-visible {
  outline: none;
  box-shadow: inset 0 -2px 0 0 var(--color-secondary, var(--accent, #298084));
}

/* P6-2 hygiene: native form controls (checkbox, button) inherit Arial from
   browser user-agent stylesheet. They render no text (icon-only + checkbox
   square), so the violation is synthetic — but a font-family: inherit reset
   keeps the audit clean and prevents future drift if these elements ever
   gain text content. */
.pwt-select-all, .pwt-row-checkbox, .pwt-group-checkbox,
.pwt-saved-view-delete {
  font-family: inherit;
}

/* ══════════════════════════════════════════════════════════════
   CALL LISTS page (step 5 — plan §3.4/§3.5/§12). acl- prefix.
   48px rows (R7.4), JetBrains Mono counts, money green, teal
   working CTAs, amber "Follow up" stale badge (≤1px accents only),
   funnel = §4 disjoint partition segments via --color-stage-ish
   tints; no %-complete framing anywhere.
   ══════════════════════════════════════════════════════════════ */
.acl-page{padding:20px 28px;max-width:none;}
.acl-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.acl-title{font-size:24px;margin:0;}
.acl-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border,#E2E5EA);margin-bottom:16px;}
.acl-tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 14px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;}
.acl-tab.is-active{color:var(--color-secondary,#298084);border-bottom-color:var(--color-secondary,#298084);}
.acl-rollup{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;color:var(--muted);padding:10px 12px;border:1px solid var(--border,#E2E5EA);border-radius:8px;background:#FFFFFF;margin-bottom:12px;}
.acl-rollup b{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;color:var(--text);margin-right:2px;}
.acl-rollup .acl-money b{color:var(--color-money,var(--color-success));}
.acl-money{color:var(--color-money,var(--color-success));}
.acl-mono,.acl-num{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;}
.acl-muted{color:var(--muted);}
/* agent queue */
.acl-queue{display:flex;flex-direction:column;gap:4px;}
.acl-qrow{display:flex;align-items:center;gap:14px;min-height:48px;padding:8px 12px;background:#FFFFFF;border:1px solid var(--border,#E2E5EA);border-radius:8px;cursor:pointer;}
.acl-qrow:hover{border-color:rgba(41,128,132,.35);}
.acl-qname{font-weight:600;font-size:13px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.acl-qremaining{font-size:11px;color:var(--muted);white-space:nowrap;}
.acl-qremaining b{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--text);}
.acl-open-btn{background:var(--color-secondary,#298084);color:#FFFFFF;border:none;border-radius:6px;padding:6px 14px;font-size:11px;font-weight:600;cursor:pointer;}
/* funnel bar — §4 disjoint partition; each segment titled (not color-only) */
.acl-funnel{display:flex;width:220px;min-width:120px;height:8px;border-radius:4px;overflow:hidden;background:rgba(120,130,140,.12);}
.acl-funnel-sm{width:160px;height:6px;}
.acl-fseg{display:block;height:100%;}
.acl-f-prog{background:var(--color-success,#229954);}
.acl-f-reached{background:var(--color-secondary,#298084);}
.acl-f-unr{background:rgba(120,130,140,.55);}
.acl-f-called{background:rgba(204,156,66,.65);}
.acl-f-never{background:rgba(120,130,140,.18);}
/* manager + member tables */
.acl-table{width:100%;border-collapse:collapse;background:#FFFFFF;border:1px solid var(--border,#E2E5EA);border-radius:8px;overflow:hidden;}
.acl-table th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:8px 12px;border-bottom:1px solid var(--border,#E2E5EA);cursor:pointer;white-space:nowrap;}
.acl-table th.acl-num,.acl-table td.acl-num{text-align:right;}
.acl-table th.is-sorted{color:var(--color-secondary,#298084);}
.acl-table td{font-size:12px;padding:8px 12px;border-bottom:1px solid #F3F4F6;}
/* Member table — Properties column (user req 2026-06-30): each owner's property
   + county; >1 shows the first property + a "+N" badge and a hover/focus popover
   (_aclShowPropPop) listing all. Replaces the old count + "Property names" cols.
   Auto-layout (over the global table{table-layout:fixed}) so the numeric columns
   on the right shrink and Properties claims the room. */
.acl-member-table{table-layout:auto;}
.acl-member-table th.acl-num,.acl-member-table td.acl-num{width:1%;white-space:nowrap;padding-left:8px;padding-right:8px;}
.acl-member-table .acl-mprop-th{white-space:nowrap;min-width:180px;}
.acl-member-table td.acl-mprop-cell{max-width:240px;}
.acl-member-table th:nth-child(1),.acl-member-table td:nth-child(1){min-width:96px;}/* Owner */
/* Stack the row actions (View owner / Remove) so the action column is ~one button
   wide — without it the enriched Properties column pushes the table past its
   container and clips the buttons. */
.acl-member-table td.acl-actions-cell{white-space:normal;}
.acl-member-table td.acl-actions-cell>button{margin:0 0 4px 0;white-space:nowrap;}
.acl-mprop{display:inline-flex;align-items:baseline;gap:8px;max-width:240px;vertical-align:bottom;}
.acl-mprop[data-props]{cursor:default;}
.acl-mprop-badge{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:var(--color-secondary,#298084);background:rgba(41,128,132,.08);border:1px solid rgba(41,128,132,.22);border-radius:4px;padding:1px 5px;}
.acl-mprop-pop{position:fixed;z-index:9999;background:#FFFFFF;border:1px solid var(--border,#E2E5EA);border-radius:8px;box-shadow:0 8px 28px rgba(20,30,40,.16);padding:6px;min-width:180px;max-width:340px;max-height:300px;overflow-y:auto;}
.acl-mprop-pop-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:5px 8px;border-radius:5px;}
.acl-mprop-pop-row:hover{background:var(--s2,#F0F4F8);}
.acl-mprop-pop-row .acl-lp-name{white-space:nowrap;}
.acl-trow{cursor:pointer;}
.acl-trow:hover td{background:rgba(41,128,132,.04);}
.acl-cell-list{font-weight:600;}
/* Manager list table — Properties column (user req 2026-06-30): stack each
   distinct property with its county; shrink the numeric metric columns to their
   content so List + Properties absorb the freed width. Scoped to
   .acl-manager-table so the member table's shared .acl-num cells are untouched. */
/* Override the global `table{table-layout:fixed}` (components.css ~L114) so the
   numeric metric columns shrink to content and List/Agents/Properties claim the
   freed width — same escape hatch cockpit.css/views.css use. */
.acl-manager-table{table-layout:auto;}
.acl-manager-table th.acl-num,.acl-manager-table td.acl-num{width:1%;white-space:nowrap;padding-left:6px;padding-right:6px;}
.acl-manager-table th:nth-child(1),.acl-manager-table td:nth-child(1){min-width:110px;}/* List */
.acl-manager-table th:nth-child(2),.acl-manager-table td:nth-child(2){min-width:96px;}/* Agents */
.acl-manager-table .acl-prop-col{cursor:default;}
.acl-manager-table th.acl-prop-col,.acl-manager-table td.acl-list-props-cell{min-width:180px;}
/* Row actions (Open · Edit list) sit inline, right-aligned, with an 8px gap.
   Only two buttons now — Assign folded into the Edit list drawer — so they fit
   the action column without the Properties column clipping; flex-wrap is a
   narrow-viewport fallback. */
.acl-manager-table td.acl-actions-cell{white-space:normal;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;}
.acl-manager-table td.acl-actions-cell>button{margin:0;white-space:nowrap;padding-left:10px;padding-right:10px;}
.acl-list-props{display:flex;flex-direction:column;gap:2px;max-width:340px;}
.acl-list-prop{display:flex;align-items:baseline;gap:8px;line-height:1.3;}
.acl-lp-name{flex:0 1 auto;min-width:0;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.acl-lp-county{flex:0 0 auto;font-family:'JetBrains Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;}
.acl-lp-more{font-size:10px;color:var(--muted);}
.acl-lp-empty{color:var(--muted);}
/* Next-call-due cell states (overdue = warning amber per status-color duties) */
.acl-due-overdue{color:var(--color-warning,#D97706);font-weight:600;white-space:nowrap;}
.acl-due-today{color:var(--color-secondary,#298084);font-weight:600;}
.acl-stale-badge{font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:4px;background:rgba(217,119,6,.10);color:var(--color-warning,#D97706);border:1px solid rgba(217,119,6,.25);margin-left:6px;white-space:nowrap;}
.acl-status{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:4px;border:1px solid var(--border,#E2E5EA);color:var(--muted);}
.acl-status-active{color:var(--color-success,#229954);border-color:rgba(34,153,84,.3);background:rgba(34,153,84,.07);}
.acl-status-paused{color:var(--color-warning,#D97706);border-color:rgba(217,119,6,.3);background:rgba(217,119,6,.07);}
.acl-override{font-size:8px;font-weight:700;color:var(--color-warning,#D97706);border:1px solid rgba(217,119,6,.3);border-radius:3px;padding:1px 4px;margin-left:5px;}
/* detail */
.acl-back{background:none;border:none;color:var(--color-secondary,#298084);font-size:12px;font-weight:600;cursor:pointer;padding:0;margin-bottom:10px;}
.acl-detail-hero{margin-bottom:18px;}
.acl-detail-hero-row{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.acl-start-calling{padding:8px 16px;font-size:12px;}
.acl-detail-meta{display:flex;gap:18px;align-items:center;font-size:12px;color:var(--muted);margin:8px 0;flex-wrap:wrap;}
.acl-detail-meta b{color:var(--text);}
.acl-detail-funnel{display:flex;align-items:center;gap:16px;margin-top:10px;}
.acl-detail-funnel .acl-funnel{width:340px;height:10px;}
.acl-ratios{display:flex;gap:14px;font-size:11px;color:var(--muted);}
.acl-ratios b{font-family:'JetBrains Mono',monospace;color:var(--text);}
/* row actions */
.acl-actions-cell{white-space:nowrap;text-align:right;}
.acl-call-btn{background:var(--color-call-btn,var(--color-accent,#CC9C42));color:#1d2026;border:none;border-radius:6px;padding:5px 12px;font-size:11px;font-weight:700;cursor:pointer;}
.acl-remove-btn{background:none;border:1px solid var(--border,#E2E5EA);color:var(--muted);border-radius:6px;padding:5px 10px;font-size:11px;font-weight:600;cursor:pointer;margin-left:6px;}
.acl-remove-btn:hover{color:var(--color-red,#B91C1C);border-color:rgba(220,69,69,.3);}
/* (S6 asset-scope picker CSS removed 2026-06-30 — the in-play subset picker was
   retired; adding an owner to a list puts all their assets in play.) */

/* Owner disposition roll-up chip (§15 cross-cutting) — reusable across
   dense rows (search, owner table). Closed = money green, in-play = teal,
   available $ = ink, declined = dim; numerals in mono tabular. */
.disp-roll{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;}
.disp-roll b{font-family:var(--font-mono);font-weight:600;}
.disp-roll .dr-closed{color:var(--color-success);}
.disp-roll .dr-pipe{color:var(--color-secondary);}
.disp-roll .dr-avail{color:var(--text);}
.disp-roll .dr-decl{color:var(--dim);}
/* states */
.acl-empty-contacts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px;}
.acl-contact-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 14px;border-radius:8px;text-decoration:none;background:#FFFFFF;border:1px solid var(--s2,#E2E5EA);transition:border-color .15s,background .15s;}
.acl-contact-chip:hover{border-color:var(--color-secondary);background:rgba(var(--color-secondary-rgb),.04);}
.acl-contact-name{font-size:13px;font-weight:600;color:var(--text,#111827);}
.acl-contact-role{font-family:'JetBrains Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6B7280);}
.acl-skeleton{display:flex;flex-direction:column;gap:6px;}
.acl-skel-row{height:48px;border-radius:8px;background:linear-gradient(90deg,rgba(120,130,140,.08) 25%,rgba(120,130,140,.16) 50%,rgba(120,130,140,.08) 75%);background-size:200% 100%;animation:acl-shimmer 1.2s infinite;}
@keyframes acl-shimmer{from{background-position:200% 0;}to{background-position:-200% 0;}}
.acl-create-hint{font-size:11px;color:var(--muted);margin:4px 0 0;}
@media (max-width:768px){
  .acl-page{padding:14px;}
  .acl-funnel{display:none;}
  .acl-table th:nth-child(n+6),.acl-table td:nth-child(n+6){display:none;}
  /* P2 a11y/mobile: the generic table rule above hides noisy right-side
     columns. Keep the member table's due/action cells available, but don't
     re-display every hidden metric column and recreate horizontal overflow. */
  .acl-member-table th:nth-child(9),.acl-member-table td:nth-child(9),
  .acl-member-table th:nth-child(10),.acl-member-table td:nth-child(10){display:table-cell;}
}

/* ── Call List Builder (B1) — generate-list drawer (read-only preview) ──────── */
.acl-generate-btn{background:#FFFFFF;color:var(--color-secondary,#298084);border:1px solid var(--color-secondary,#298084);}
.acl-generate-btn:hover{background:rgba(41,128,132,.06);}
.clb-backdrop{position:fixed;inset:0;background:rgba(15,23,32,.18);z-index:var(--z-modal,900);}
.clb-hdr .clb-eyebrow{font-family:var(--font-mono,monospace);font-size:10px;letter-spacing:.08em;color:#8A94A0;text-transform:uppercase;}
.clb-body{display:flex;flex-direction:column;gap:18px;}
.clb-note{font-size:12px;color:#6B7480;background:#F3F6F8;border:1px solid #E2E5EA;border-radius:8px;padding:8px 10px;}
.clb-sec{display:flex;flex-direction:column;gap:8px;}
.clb-sec-h{font-size:12px;font-weight:600;color:#3A4450;margin:0;letter-spacing:.02em;}
.clb-radio,.clb-chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#2A3340;cursor:pointer;}
.clb-radio{margin-right:14px;}
.clb-select,.clb-num{font:inherit;font-size:13px;padding:5px 8px;border:1px solid #D7DBE0;border-radius:6px;background:#fff;color:#2A3340;}
.clb-select[disabled]{opacity:.5;}
.clb-num{width:72px;}
.clb-mode-opts{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:4px;}
.clb-inline{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#4A5460;}
.clb-inline[hidden]{display:none;}  /* class display would otherwise override the [hidden] UA rule */
.clb-seed{font-family:var(--font-mono,monospace);font-size:12px;background:#F3F6F8;padding:2px 6px;border-radius:4px;}
.clb-reroll{border:1px solid #D7DBE0;background:#fff;border-radius:4px;cursor:pointer;padding:1px 7px;color:#4A5460;}
.clb-fgroup{display:flex;flex-direction:column;gap:6px;}
.clb-fgroup-h{font-size:11px;color:#8A94A0;}
.clb-chks{display:flex;flex-wrap:wrap;gap:8px 14px;}
.clb-preview{border-top:1px solid #E2E5EA;padding-top:14px;}
.clb-stats{display:flex;gap:10px;}
.clb-stat{flex:1;border:1px solid #E2E5EA;border-radius:8px;padding:10px;text-align:center;}
.clb-stat-n{display:block;font-family:var(--font-mono,monospace);font-size:22px;font-weight:600;color:#2A3340;font-variant-numeric:tabular-nums;}
.clb-stat-l{font-size:11px;color:#6B7480;}
.clb-stat-add .clb-stat-n{color:var(--color-secondary,#298084);}
.clb-stat-conf .clb-stat-n{color:var(--color-warning,#C08401);}
.clb-flags{display:flex;gap:14px;font-size:12px;color:#6B7480;margin-top:8px;}
.clb-sample-h{font-size:11px;color:#8A94A0;margin-top:10px;}
.clb-sample{display:flex;flex-direction:column;gap:2px;margin-top:4px;}
.clb-srow{display:flex;align-items:center;gap:8px;font-size:13px;padding:5px 0;border-bottom:1px solid #F0F2F4;}
.clb-sname{flex:1;color:#2A3340;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.clb-chip{font-size:10px;padding:2px 7px;border-radius:10px;white-space:nowrap;}
.clb-chip-add{background:rgba(41,128,132,.10);color:#1F6266;}
.clb-chip-warn{background:rgba(192,132,1,.12);color:#8A5D00;}
.clb-chip-mute{background:#EEF0F2;color:#6B7480;}
.clb-chip-mp{background:#EAF2F4;color:#3A6E72;}
.clb-loading,.clb-empty,.clb-error{font-size:13px;color:#6B7480;padding:14px 0;text-align:center;}
.clb-error{color:var(--color-danger,#B42318);}
/* ── Call List Builder B2 — name, conflict policy, create→generate states ─────── */
.clb-name-input{width:100%;font:inherit;font-size:13px;padding:7px 10px;border:1px solid #D7DBE0;border-radius:6px;background:#fff;color:#2A3340;}
.clb-name-input:focus{outline:none;border-color:var(--color-secondary,#298084);}
.clb-action{display:flex;flex-direction:column;gap:10px;border-top:1px solid #E2E5EA;padding-top:14px;margin-top:2px;}
.clb-affordance{font-size:12px;color:#4A5460;}
.clb-cta{width:100%;justify-content:center;}
.clb-cta:disabled{opacity:.5;cursor:not-allowed;}
.clb-status{display:flex;align-items:center;gap:10px;font-size:13px;color:#3A4450;padding:6px 0;}
.clb-spin{width:15px;height:15px;border:2px solid #D7DBE0;border-top-color:var(--color-secondary,#298084);border-radius:50%;animation:clb-spin .7s linear infinite;flex:none;}
@keyframes clb-spin{to{transform:rotate(360deg);}}
.clb-result{border:1px solid #E2E5EA;border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;}
.clb-result-ok{border-color:rgba(41,128,132,.35);background:rgba(41,128,132,.05);}
.clb-result-warn{border-color:rgba(192,132,1,.35);background:rgba(192,132,1,.06);}
.clb-result-err{border-color:rgba(180,35,24,.30);background:rgba(180,35,24,.05);}
.clb-result-h{font-size:14px;font-weight:600;color:#2A3340;}
.clb-result-b{font-size:12px;color:#4A5460;}
.clb-result-note{font-size:11px;color:#6B7480;}
.clb-result-paused{color:#8A5D00;}
.clb-result-flags{font-size:11px;color:#6B7480;}
.clb-rstats{display:flex;flex-wrap:wrap;gap:14px;}
.clb-rstat{font-size:12px;color:#4A5460;}
.clb-rstat-n{font-family:var(--font-mono,monospace);font-size:18px;font-weight:600;color:var(--color-secondary,#298084);font-variant-numeric:tabular-nums;margin-right:4px;}
.clb-result-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;}
/* ── Call List Builder B3 — lifecycle controls + assign modal ─────────────────── */
.acl-lifecycle{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.acl-lc-btn{font-size:12px;padding:5px 12px;}
.acl-lc-archive{color:var(--color-danger,#B42318);border-color:rgba(180,35,24,.30);}
.acl-lc-archive:hover{background:rgba(180,35,24,.06);}
/* Edit-owners mode (list detail): the Done toggle reads "on", + Add owners is the
   primary in-mode action. Add-owners picker = searchable multi-select modal. */
.acl-edit-owners.is-on{background:var(--color-secondary,#298084);color:#FFFFFF;border-color:var(--color-secondary,#298084);}
.acl-add-search{margin-bottom:8px;}
.acl-add-list{display:flex;flex-direction:column;gap:1px;max-height:340px;overflow-y:auto;border:1px solid var(--border,#E2E5EA);border-radius:8px;padding:4px;}
.acl-add-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px;cursor:pointer;font-size:13px;}
.acl-add-row:hover{background:var(--s2,#F0F4F8);}
.acl-add-row input{accent-color:var(--color-secondary,#298084);cursor:pointer;flex-shrink:0;}
.acl-add-name{flex:1;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.acl-add-empty{padding:16px;text-align:center;color:var(--muted);font-size:12px;}
.acl-add-more{padding:8px;text-align:center;color:var(--muted);font-size:11px;}
/* Scripts library (Phase B) — list/cards + token-palette editor + escaped preview */
.acl-scripts{display:flex;flex-direction:column;gap:14px;}
.acl-scripts-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.acl-scripts-intro{font-size:12px;color:var(--muted);margin:0;max-width:640px;line-height:1.5;}
.acl-tok{font-family:'JetBrains Mono',monospace;font-size:11px;background:rgba(41,128,132,.08);color:var(--color-secondary,#298084);padding:1px 5px;border-radius:4px;}
.acl-script-list{display:flex;flex-direction:column;gap:8px;}
.acl-script-arch-hd{font-family:'JetBrains Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:8px;}
.acl-script-card{display:flex;align-items:center;gap:16px;padding:12px 14px;background:#FFFFFF;border:1px solid var(--border,#E2E5EA);border-radius:8px;}
.acl-script-card.is-archived{background:#F8F9FB;opacity:.85;}
.acl-script-main{flex:1;min-width:0;}
.acl-script-name{font-weight:600;font-size:13px;color:var(--text);}
.acl-script-arch-badge{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border:1px solid var(--border,#E2E5EA);border-radius:4px;padding:1px 5px;margin-left:6px;}
.acl-script-snippet{font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.acl-script-meta{flex-shrink:0;}
.acl-script-assigned{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);}
.acl-script-assigned.is-assigned{color:var(--color-secondary,#298084);}
.acl-script-actions{flex-shrink:0;display:flex;gap:6px;align-items:center;}
.acl-script-arch-note{font-size:11px;color:var(--muted);font-style:italic;}
.acl-script-modal{max-width:640px;}
.acl-tok-palette{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;color:var(--muted);margin-bottom:6px;}
.acl-tok-btn{font-family:'JetBrains Mono',monospace;font-size:11px;background:rgba(41,128,132,.08);color:var(--color-secondary,#298084);border:1px solid rgba(41,128,132,.2);border-radius:4px;padding:2px 7px;cursor:pointer;}
.acl-tok-btn:hover{background:rgba(41,128,132,.16);}
.acl-script-textarea{resize:vertical;min-height:120px;font-size:13px;line-height:1.5;}
.acl-script-counter{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);text-align:right;margin-top:4px;}
.acl-script-preview{background:#F8F9FB;border:1px solid var(--border,#E2E5EA);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.6;color:var(--text);min-height:60px;}
.acl-script-preview-empty{color:var(--muted);font-style:italic;}
.acl-tok-fill{background:rgba(41,128,132,.10);border-radius:3px;padding:0 3px;font-weight:600;}
.acl-assign-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-height:320px;overflow-y:auto;}
.acl-assign-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #E2E5EA;border-radius:8px;background:#fff;cursor:pointer;text-align:left;font:inherit;}
.acl-assign-opt:hover{border-color:var(--color-secondary,#298084);background:rgba(41,128,132,.04);}
.acl-assign-opt input{width:16px;height:16px;accent-color:var(--color-secondary,#298084);flex:0 0 auto;}
.acl-assign-main{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;flex:1;}
.acl-assign-name{font-size:13px;font-weight:600;color:#2A3340;}
.acl-assign-role{font-family:var(--font-mono,monospace);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#8A94A0;}
