/* ─────────────────────────────────────────────────────────────
   Concentus Dashboard
   File:    styles--components-prospecting-additions.css
   Version: 2026-07-17 v68
   Batch:   HE (relink) · HD (Leads filters) · HC (IPN tab) · GZ5 (email attachments) · GZ4 · GZ3 · GZ2 · GW-2 · GW · GV · GT — extends v40

   v68 HC-fix: the list-view Last Interaction cell reverts to its 2-line clamp;
   the .ipn-clamp5 / .ipn-more 5-line clamp + toggle now applies to the drawer
   Interactions and the list-view hover popover instead.

   v67 HC: .ipn-clamp5 / .ipn-more — 5-line interaction-note clamp + More/Less
   toggle (list-view Last Interaction cell now clamps 5 lines, not 2).

   v66 HE: .pr-sf-mtag (email/name/current match tags) + the .pr-relink-* modal
   styles (currently-linked banner, search input, selectable result cards, note).

   v65 HD: the .pr-ipn-pill now sits inline in the .pr-name-badges row (which
   gains align-items:center + flex-wrap) and is clickable (cursor + hover) — it
   opens the contact's IPN record.

   v64 HD: .pr-ipn-pill — small "IPN" pill on the ledger Name cell (grey/yellow/
   green, mirrors the IPN tab's name-badge palette). The Leads-tab multi-select
   filter dropdowns reuse the existing global .ipn-dd-* styles (no new rules).

   v63 HC: IPN table scroll container fills the card height (max-height
   calc(100vh - 210px), min 280px) instead of a fixed 62vh.

   v62 HC (table): .ipn-th-resize (column resize handle) + .ipn-licell (Lead-
   history-style Last Interaction cell).

   v61 HC (drawer polish): .ipn-fgrid4 / .ipn-fgrid3 (4- and 3-across rows),
   .ipn-dsep separators, .ipn-note-acts (edit/delete on the .pr-note interaction
   items). Interactions + SF Activity reuse the existing .pr-note component.

   v60 HC: IPN search reuses .pr-search (with ✕), scope toggle .ipn-dd-btn.on,
   Columns as the Leads .pr-util-btn.

   v59 HC: interaction Edit/Delete affordances (.ipn-int-actions) + drawer bottom
   tabs (.ipn-dtabs) for Interactions / SF Activity.

   v58 HC-fix: IPN scroll container (.ipn-tablewrap + sticky thead), centered
   empty state, sortable/draggable header affordances (.sortable/.sorted/
   [draggable]/.ipn-draghover/.ipn-sort-arrow/.ipn-th-grip).

   v57 HC: IPN tab styles — all namespaced .ipn-* (badge/tier/chip/tiles/
   multiselect dropdown .ipn-dd/bulk bar .ipn-bulkbar/drawer .ipn-dw/modals),
   reusing existing .pr-table/.pr-or-btn/.pr-stat where they fit. Appended at EOF.

   v56 GZ5: email-attachment UI (.pr-att-head/.pr-att-add/.pr-att-meter[.over]/
   .pr-att-list/.pr-att-chip/.pr-att-ico/.pr-att-nm/.pr-att-tpl/.pr-att-sz/
   .pr-att-x/.pr-att-warn, .pr-et-attachwrap) for both composers + the editor.

   v55 GZ4 (Cockpit): .pr-drawer-cols left rail narrowed to 260px; Do Not Call
   pill (.pr-spill.dnc) joins the red status pills; address second line
   (.pr-addr-l2) drops city/state/zip below the street.

   v54 GZ3-fix: status pills now sit on one line (flex-nowrap) and share one
   neutral style; red (.unsub/.tzout) reserved for a problem — unsubscribed or a
   timezone outside the signed-in user's. (Was per-pill green/gold/gray.)

   v53 GZ3: Notes textarea min-height 130px (~6 lines); LW4IP tab "Coming soon"
   placeholder (.pr-coming-soon/.pr-coming-soon-badge).

   v52 GZ2 (drawer redesign + default-email): drawer widened to 760px; two-column
   body (.pr-drawer-cols/.pr-dc-col); full-width AI band (.pr-ai-band, .pr-ai-sum
   .clamp/.pr-ai-toggle/.pr-ai-src); compact Experience (.pr-xp-body/.pr-xp-top/
   .pr-xp-dt inline, .pr-xp-toggle); bottom tab band (.pr-d-tabs/.pr-d-tabbar/
   .pr-d-tab[.on]); .pr-or-btn min-width:0 so the dial number can't overflow the
   narrower column. Default-email: .pr-em-star/.pr-em-deftag/.pr-em.is-default +
   the single-send To chooser (.pr-et-tosel).

   v51 GZ: drawer-header Finny control + ⋯ overflow menu styles (.pr-dh-finny
   [.enrich/.busy], .pr-dh-kebab(-wrap), .pr-dh-menu[.open]/.pr-dh-menu-item
   overrides for .pr-dh-sf/.pr-dh-danger, .pr-dh-finny-when). Replaces the
   removed body-footer styles.

   v50 GZ-fix: Enrich modal overlay z-index bumped above the drawer (was behind
   it, so its buttons weren't clickable).

   v49 GZ: drawer Finny refresh/enrich footer (.pr-finny-foot/.pr-finny-btn
   [.enrich/.busy spin]/.pr-finny-when) + the Enrich-with-Finny modal
   (.pr-enrich-overlay/-modal/-head/-body/-note/-input/-err/-foot, .pr-mono).

   v48 GZ: lead-drawer Finny status + enrichment styles — status pills
   (.pr-spills/.pr-spill .sub/.unsub/.rep/.fs/.tz), website-visit intent
   (.pr-intent-line), verified emails (.pr-em-stack/.pr-em/.pr-emtype),
   LinkedIn connected badge (.pr-li-conn), net-worth confidence (.pr-nwconf),
   experience timeline (.pr-xp*), AI summary (.pr-ai-sum).

   v47 GX-fix3: the Campaigns view now fills the card and scrolls internally
   (#prViewCampaigns.show flex chain → .pr-camp-body overflow:auto), mirroring the
   ledger. Previously a height-constrained card clipped the bottom of the
   "Campaigns Launched" table, hiding its horizontal scrollbar with no way to
   reach it; now every table (and its h-scrollbar) is reachable at any card height.

   v46 GX-fix2: scroll containers explicit overflow-x:auto; table width is now
   JS-set (CSS width:auto + min-width:100%); Set-Next-Action modal date input
   full-width to match the text field.

   v45 GX-fix: campaigns tables (.pr-camp-table) scroll horizontally when their
   columns exceed the card width (width:max-content + min-width:100%) instead of
   squishing/truncating headers; pinned Campaign/Actions columns already support
   the horizontal scroll.

   v44 GW-2: bulk-email When/Schedule control (.pr-bk-when/.pr-bk-schedat),
   the post-send follow-up panel (.pr-bk-followup/.fu-*), and the standalone
   Set-Next-Action modal (.pr-na-modal/.pr-na-body/.pr-na-quick).

   v43 GW: bulk-email modal (.pr-bk-modal/.pr-bk-body/.pr-bk-tplpick/-tpllist),
   the recipients table (.pr-bk-table* with pinned select+name + zebra), status
   badges (.pr-bk-badge.*), and the send progress bar (.pr-bk-prog/-bar).

   v42 GV: email send UI in the picker — .pr-et-sendmeta (To + Send-as rows),
   the dynamic .pr-et-foot/.pr-et-footrow state machine, .pr-et-banner (ok/err),
   .pr-et-spin, .pr-et-fallback/.pr-et-link.

   v41 GT: email template library — the body-portaled picker + editor
   (.pr-et-scrim/.pr-et-modal and children), the reusable rich-text toolbar
   (.pr-et-rtoolbar), template rows/cards/badges, and the Settings ▸ Templates
   list. Appended at end of file.

   v40 GS-fix: .pr-bulk-selall + .pr-bulk-revlist (scroll cap).

   v39 GS: drawer campaign controls (.pr-camp-star/-rm/-lock/-add*), bulk
   badges (.pr-imp-tag.db/.incamp), .pr-bulk-excl, .pr-imp-notice.db.

   v38 GR §3a-fix: .pr-bulk-add1 (per-row one-click Add) + .pr-bulk-inlist.

   v37 GR §3a: results list scroll-cap (.pr-imp-res max-height); Add Lead
   chooser (.pr-al-choice/-cic/-ctx/-carr, .pr-al-back) + bulk styles (.pr-bulk-*).

   v36 GR §3a: .pr-al-tabs/.pr-al-tab (Add Lead modal tab toggle) + .pr-imp-intro.

   v35 GR §3/§3a: divergence-chooser styles (.pr-ch-*) + Import-from-Salesforce
   styles (.pr-imp-*) + the import-review "Already in Salesforce" note.

   v34 GR §9: Activity-feed styles — .pr-act-src/-tail/-more/-sf/-foot/-all,
   .pr-sync-mark(.fail), .pr-resync, .pr-clamp, and the .mt (Meeting) pill.

   v33 GP-4: .pr-search is now position:relative with right padding on its input;
   new .pr-search-clear (absolute-right X button) for clearing the leads search.
   Pairs with cards--prospecting.html v28 + js--card-prospecting.js v43.

   v32 GP: drawer-header "Send to Salesforce" button (.pr-dh-sf + .linked) and
   the body-portaled modal (.pr-sf-scrim / .pr-sf-modal and children) — match
   panel, review screen (read-only grid + editable pick-grid + owner picker),
   fixed-note + history-note. Ported from mockup--send-to-salesforce v8.
   Pairs with js--card-prospecting.js v39 + cards--prospecting.html v26.

   v31 GO-8: .pr-helptip (+ -title/-body/-section/-h/-mgr, arrow tail, flip-up)
   for the #prHelpIcon "About this card" popover. Mirrors the Tasks /
   Important Dates explainer styling. Pairs with js--card-prospecting.js v38.

   v30 GO-7: .pr-ln-l1 (content, 2-line clamp) + .pr-ln-l2 (name & date, grey,
   single-line) for the stacked Last Activity / History ledger cells. Pairs
   with js--card-prospecting.js v37.

   v29 GO-6: the leads ledger now has a min-height floor (420px) and grows to
   fill the card when it's taller (flex chain #prViewLedger -> .pr-card-body ->
   .pr-ledger-scroll). Replaces the fixed max-height:432px on .pr-ledger-scroll.
   Scoped to #prViewLedger so Campaigns / import views are unaffected.

   v28 GO-4: .pr-imp-comp-skip (checkbox row) + .pr-imp-comp-skip-note for the
   import "Don’t import flagged leads" toggle. Pairs with js v36.

   v27 GO-2: .pr-imp-comp-h (clickable collapsible header) + .pr-imp-comp-chev
   (rotates 90deg on .open) for the import Review compliance list, now collapsed
   by default. Pairs with js--card-prospecting.js v34.

   v26 GN-10: in-drawer "Finny Link" section — .pr-cdfl-card (linked/unlinked
   variants), .pr-cdfl-badge / .pr-cdfl-state / .pr-cdfl-desc / .pr-cdfl-id,
   .pr-cdfl-btn (navy/ghost/danger), and the inline picker (.pr-cdfl-picker /
   .pr-cdfl-pickhead / .pr-cdfl-pickfoot) plus .pr-fnpick-suggest "likely
   match" pill and .pr-manual paste-an-id row.

   v25 GN-8: compliance vocabulary — .pr-compliance strip, .pr-dnc-badge
   (outline red pill), .pr-lit-block (louder solid TCPA-litigator block with
   always-visible explanation), .pr-phone-dnc (per-number tag in Lead
   Detail), and the import-review .pr-imp-compliance / .pr-imp-warn rows
   (gold for DNC, red for litigator).

   v24 GN-fix5 (fam/wave scroll containers: add overflow-y:auto so tables cap at max-height)

   v22 GN-7: pinned-column rules (.pr-camp-pinl / .pr-camp-pinr) for the
   Campaigns Launched table; .pr-hidetracked toggle; .pr-fnpick-tracked badge +
   .pr-fnpick-hiddennote; review .pr-imp-cnew-grid / .pr-imp-famnew /
   .pr-imp-prefill; .pr-fam-mergehint. Derived green shading neutralized and
   legend swatch rules removed (.pr-camp-note kept).

   v21: GN-5 Lead Stage control moved into the drawer header as a colored
   pill .pr-dh-stage (header-actions is now a column: .pr-dh-btnrow +
   .pr-dh-stagerow); the soft-link nudge becomes a thin body band
   (.pr-stage-nudge-wrap). Item-2: .pr-fam-scroll / .pr-wave-scroll get
   min-heights (120 / 200px) so sparse tables hold shape. (Old
   .pr-stage-hero* rules are now unused but left in place, harmless.)

   v20 GN-3e-fix1: replaced the diverged .pr-cmp-* card styles with the
   mockup v4 vocabulary (.cstat/.cstatus/.prio/.prog/.eng/.e/.freshness/
   .seqtog/.seq/.step/.ix/.mode/.when/.tagx/.clink-sm), ALL scoped under
   .pr-camp-row so the short generic class names can't leak globally.
   v19 GN-fix2: the Settings - Finny paste-token field (.pr-ftoken*).

   v18 GN-3e: the §4 enriched drawer Campaigns card (.pr-cmp* — header with
     in-card script button, status pill, status line, progress bar,
     engagement strip + Connected pill, collapsible per-step sequence with
     inline links, freshness caption).

   v17 GN-3c: the Campaigns Launched "Last Refreshed" cell style
     (.pr-camp-stamp — muted, compact, no-wrap). The per-row "Refresh
     from Finny" action reuses the existing .pr-crm-item row-menu style.
   Build:   BUILD_TIMESTAMP

   v16 GN-3b: import Step-1 Finny campaign picker (.pr-fnpick* — tabs,
     search, list rows, status pills, messages/reconnect), the file-
     fallback toggle link (.pr-link-btn / .pr-imp-file-fallback), and the
     Done-screen Contact Week scheduler (.pr-imp-sched*, .pr-imp-done-status).

   v15 GN-3a: Finny connection styles — Settings ▸ Finny status card
     (.pr-fcard / .pr-fchip / .pr-fstats), the reconnect pairing flow
     (.pr-frecon / .pr-bm-drag / .pr-fcode / .pr-spin), the rail dot
     (.pr-rail-dot), and the Campaigns-header chip (.pr-finny-chip).

   v14 GN-2 (slice 2): + New Campaign button + chooser
   (.pr-camp-new / .pr-camp-chooser), the campaign edit/new drawer
   (.pr-camp-drawer reuses the .pr-drawer slide-in base; .pr-cd-*
   content — navy header, lifecycle rail, form grids, status-aware
   Contact Week control, Live Counts, footer), the body-anchored
   row action menu (.pr-camp-rowmenu / .pr-crm-*), and the wave-table
   Actions cell (.pr-camp-act / .pr-camp-kebab / .pr-camp-fixed).

   v13 GN-2 (slice 1): card-header tabs (.pr-card-tabs/.pr-tab, B1
   underline, right-aligned); the Campaigns view (#prViewCampaigns)
   — family tiles (.pr-fam-tile + funnel), the two campaign tables
   (.pr-camp-table with sortable/resizable/draggable headers), the
   column-picker popover (.pr-cpop), lifecycle badges (.pr-lc-badge),
   the legend, and the manager-only "Show pre-release leads" toggle
   (.pr-prerelease-toggle). Appended at the end of this file.

   v12 GN-1: Lead Stage palette vars (--pr-ls-*); the drawer Stage
   hero row (badge + dropdown + soft-link nudge) and the ledger
   .pr-stage-badge pill. Appended at the end of this file.

   v9 GL:
     - .pr-drawer-head is now display:flex (title-block left,
       actions right); .pr-drawer-head-actions is an in-flow flex
       child instead of position:absolute, which removes the
       paint-vs-hit-test offset that left part of each header
       button unclickable. New .pr-drawer-title-block. Matches the
       Move Money drawer header.

   v8 GK:
     - New .pr-mh-actions (modal-head action group) and
       .pr-script-pop ("Pop out" button) for the script viewer.

   v7 GJ:
     - .pr-script-open: UA-chrome reset (the enabled "Call script"
       link is now a <button>); hover limited to :not(.disabled).
     - New .pr-script-view-modal / .pr-script-view-body /
       .pr-script-view-frame — the read-only call-script viewer
       modal (wide, tall, iframe body).

   v6 GH (QA round 3):
     - Deleted Leads panel: .pr-mt-check checkbox column,
       .pr-row-sel selected-row tint, and .pr-del-bulkbar bulk bar
       (Restore selected / Delete selected forever / Clear).

   v5 GH (QA round 2, follow-on):
     - .pr-bulk-btn-danger — destructive tint for the manager-only
       bulk Delete button on the navy bulk-action bar.

   v4 GH (QA round 2):
     - The drawer close button (.pr-drawer-close) centres its glyph
       so the whole 26px box is the hit target, not just the lower
       half.
     - The ledger Advisor cell drops its initials-circle glyph; the
       now-unused .pr-adv-cell / .pr-adv-avatar rules are removed.
     - Settings section heads gain a right-aligned control group
       (.pr-sp-head-right) holding the Active/Archived/All status
       filter (.pr-status-filter); archived table rows dim via
       .pr-row-archived.

   v3 GH adds the v6 QA-round surface styles at the foot of the
   file (the "v6 GH ADDITIONS" block): thin-scrollbar + scroll
   regions, draggable / resizable column headers, clickable
   Name-cell record badges, the Finny field-suggestion flag, the
   Lead Detail inline-edit form, deletable History entries, the
   manager unassigned-count chip, the Last Note / Notes ledger
   columns + body-anchored Notes History popover, the standing
   Notes field, and the Log a Contact channel selector. All earlier
   rules are unchanged.

   v2 GC adds the slice-3 surface styles (import review, settings
   tables, status badges, modal errors, drawer delete) at the foot
   of the file. Slice-2 rules above are unchanged.

   Component styles for the Prospecting card. All selectors are
   `pr-` prefixed and structural rules are scoped under `.pr-card`
   so nothing collides with other cards. Brand chrome classes
   (.card, .card-header, .card-title, .card-meta, .drag-handle)
   are shared dashboard classes — used, not redefined.

   Built from mockup--prospecting_2026-05-20_v5.html (design locked).
   The Import overlay, Settings overlay, Add Lead modal and New
   Script modal markup are styled here but inert in slice 2 — their
   JS wiring lands in slice 3.
   ───────────────────────────────────────────────────────────── */

:root {
  /* Prospecting-specific tokens. Brand tokens are re-declared pr-
     prefixed so the body-level drawer + modals — which render
     outside .pr-card — resolve them without depending on base
     token names. */
  --pr-navy:#00247f; --pr-navy-mid:#1a3a8f; --pr-blue:#3185fc;
  --pr-gold:#db9523; --pr-gray-blue:#c8cddb;
  --pr-red:#b34040; --pr-amber:#c97b2a; --pr-green:#2e7d4f;
  --pr-ink:#1a1a2e; --pr-mid:#4a4a6a; --pr-light:#8a8aaa;
  --pr-border:rgba(0,36,127,0.10);
  --pr-bg-tint:#eef1f6;
  /* call-status dot palette */
  --pr-cs-notcalled:#8a8aaa; --pr-cs-attempted:#3185fc;
  --pr-cs-reached:#db9523;  --pr-cs-followup:#c97b2a;
  --pr-cs-converted:#2e7d4f; --pr-cs-notinterested:#9a6b6b;
  --pr-cs-notqualified:#7a7f8c;
  --pr-cs-badnumber:#b06a2a; --pr-cs-donotcall:#b34040;
  /* lead-stage palette (GN-1) */
  --pr-ls-lead:#3185fc; --pr-ls-prospect:#c8922a;
  --pr-ls-client:#2e7d4f; --pr-ls-closed:#6b7280;
}

/* ── Card shell ─────────────────────────────────────────────── */
.pr-card { overflow:hidden; }
.pr-crumb { display:flex; align-items:center; gap:8px; }
.pr-crumb-back { background:rgba(0,36,127,.07); border:none; border-radius:7px;
  width:28px; height:28px; cursor:pointer; color:var(--pr-navy);
  display:flex; align-items:center; justify-content:center; }
.pr-crumb-back:hover { background:rgba(0,36,127,.13); }
.pr-help-icon { width:17px; height:17px; border-radius:50%;
  background:rgba(0,36,127,0.08); color:var(--pr-navy); border:none;
  font-size:11px; font-weight:700; cursor:pointer; line-height:1; }

/* ── Sub-toolbar ────────────────────────────────────────────── */
.pr-sub-toolbar { display:flex; align-items:center; padding:10px 18px; gap:10px;
  background:#f6f7fb; border-bottom:1px solid var(--pr-border); }
.pr-view-toggle { display:flex; background:#e4e8f1; border-radius:7px; padding:2px; }
.pr-view-toggle button { border:none; background:none; padding:5px 13px;
  border-radius:5px; font-family:inherit; font-size:12px; font-weight:600;
  color:var(--pr-mid); cursor:pointer; }
.pr-view-toggle button.active { background:var(--pr-navy); color:#fff; }
.pr-toolbar-right { margin-left:auto; display:flex; align-items:center; gap:7px; }
.pr-util-btn { width:30px; height:30px; border:1px solid var(--pr-border);
  background:#fff; border-radius:7px; display:flex; align-items:center;
  justify-content:center; cursor:pointer; color:var(--pr-mid); }
.pr-util-btn:hover { background:var(--pr-bg-tint); }

/* ── Kebab menu ─────────────────────────────────────────────── */
.pr-kebab-wrap { position:relative; }
.pr-kebab-menu { position:absolute; right:0; top:36px; background:#fff;
  border:1px solid var(--pr-border); border-radius:9px;
  box-shadow:0 8px 28px rgba(0,36,127,.16); padding:5px; min-width:210px;
  display:none; z-index:20; }
.pr-kebab-menu.open { display:block; }
.pr-kebab-item { display:flex; align-items:center; gap:8px; padding:8px 10px;
  border-radius:6px; font-size:12px; font-weight:600; color:var(--pr-mid);
  cursor:pointer; }
.pr-kebab-item:hover { background:var(--pr-bg-tint); }
.pr-kebab-div { height:1px; background:var(--pr-border); margin:4px 6px; }
.pr-kebab-mgr.pr-hidden-role { display:none; }

/* ── Body, stats ────────────────────────────────────────────── */
.pr-card-body { padding:14px 18px 18px; }
.pr-stats-row { display:flex; gap:12px; margin-bottom:13px; }
.pr-stat { flex:1; background:var(--pr-bg-tint); border:1px solid var(--pr-border);
  border-radius:9px; padding:11px 14px; }
.pr-stat-label { font-size:10.5px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--pr-light); }
.pr-stat-value { font-family:'Noto Serif',serif; font-size:23px; font-weight:700;
  color:var(--pr-navy); margin-top:3px; }
.pr-stat-value.green { color:var(--pr-green); }
.pr-stat-value.amber { color:var(--pr-amber); }
.pr-stat-caption { font-size:11px; color:var(--pr-mid); margin-top:1px; }

/* ── Filter pills ───────────────────────────────────────────── */
.pr-pills { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:11px; }
.pr-pill { padding:5px 11px; border-radius:14px; border:1px solid var(--pr-border);
  background:#fff; font-size:11.5px; font-weight:600; color:var(--pr-mid);
  cursor:pointer; display:flex; align-items:center; gap:6px; }
.pr-pill.active { background:var(--pr-navy); color:#fff; border-color:var(--pr-navy); }
.pr-pill .pr-dot { width:6px; height:6px; border-radius:50%; }
.pr-pill-count { background:rgba(0,0,0,.10); border-radius:8px; padding:0 6px;
  font-size:10.5px; }
.pr-pill.active .pr-pill-count { background:rgba(255,255,255,.22); }

/* ── Controls row ───────────────────────────────────────────── */
.pr-controls { display:flex; gap:9px; margin-bottom:11px; align-items:center;
  flex-wrap:wrap; }
.pr-search { flex:1; min-width:200px; max-width:260px; position:relative; }
.pr-search input { width:100%; padding:7px 26px 7px 11px; border:1px solid var(--pr-border);
  border-radius:7px; font-family:inherit; font-size:12px; }
/* GP-4 — clear-search (X) button, shown only when the box has text */
.pr-search-clear { position:absolute; right:6px; top:50%; transform:translateY(-50%);
  border:0; background:transparent; cursor:pointer; padding:2px 4px; line-height:1;
  font-size:12px; color:var(--pr-light); border-radius:4px; }
.pr-search-clear:hover { color:var(--pr-ink); background:rgba(0,36,127,0.07); }
.pr-sel { padding:7px 10px; border:1px solid var(--pr-border); border-radius:7px;
  font-family:inherit; font-size:12px; background:#fff; color:var(--pr-mid); }
.pr-na-custom { display:none; align-items:center; gap:6px; }
.pr-na-custom.show { display:inline-flex; }
.pr-na-custom input { padding:6px 8px; }

/* ── Bulk action bar ────────────────────────────────────────── */
.pr-bulk-bar { display:none; align-items:center; gap:10px; background:var(--pr-navy);
  color:#fff; border-radius:9px; padding:9px 14px; margin-bottom:11px; }
.pr-bulk-bar.show { display:flex; }
.pr-bulk-count { font-weight:700; }
.pr-bulk-btn { position:relative; background:rgba(255,255,255,.16); color:#fff;
  border:none; border-radius:6px; padding:6px 12px; font-size:11.5px;
  font-weight:600; cursor:pointer; }
.pr-bulk-btn:hover { background:rgba(255,255,255,.26); }
/* Manager-only bulk Delete — destructive tint, legible on the navy bar. */
.pr-bulk-btn-danger { background:rgba(219,87,87,.30); }
.pr-bulk-btn-danger:hover { background:rgba(219,87,87,.46); }
.pr-bulk-clear { margin-left:auto; background:none; border:none; color:#cdd8f0;
  font-size:11.5px; font-weight:600; cursor:pointer; }

/* shared floating menu — bulk dropdowns + column picker */
.pr-menu { position:absolute; background:#fff; border:1px solid var(--pr-border);
  border-radius:9px; box-shadow:0 8px 28px rgba(0,36,127,.18); padding:5px;
  min-width:190px; max-height:280px; overflow-y:auto; z-index:1250; }
.pr-menu[hidden] { display:none; }
.pr-menu-head { font-size:10px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--pr-light); padding:6px 10px 3px; }
.pr-menu-item { display:flex; align-items:center; gap:8px; padding:7px 10px;
  border-radius:6px; font-size:12px; font-weight:600; color:var(--pr-mid);
  cursor:pointer; }
.pr-menu-item:hover { background:var(--pr-bg-tint); }
.pr-menu-item .pr-dot { width:7px; height:7px; border-radius:50%; }
.pr-menu label { display:flex; align-items:center; gap:8px; padding:6px 10px;
  font-size:12px; font-weight:600; color:var(--pr-mid); cursor:pointer; }

/* ── Ledger table ───────────────────────────────────────────── */
.pr-table { width:100%; border-collapse:collapse; }
.pr-table thead th { text-align:left; font-size:10px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; color:var(--pr-light);
  padding:8px 9px; border-bottom:2px solid var(--pr-border); white-space:nowrap;
  position:relative; }
.pr-table thead th.sortable { cursor:pointer; }
.pr-table thead th.sorted { color:var(--pr-navy); }
.pr-table thead th .pr-sort-arrow { font-size:8px; margin-left:3px; }
.pr-table tbody td { padding:9px; border-bottom:1px solid #f0f2f7; font-size:12px;
  vertical-align:middle; }
.pr-table tbody tr.pr-lead-row { cursor:pointer; }
.pr-table tbody tr.pr-lead-row:hover { background:#f7f9fc; }
.pr-table tbody tr.sel-row { background:#eef4ff; }
.pr-table th.pr-cell-hidden, .pr-table td.pr-cell-hidden { display:none; }
.pr-empty-row td { text-align:center; color:var(--pr-light); padding:26px 9px;
  font-size:12.5px; }
.pr-cb { cursor:pointer; }

.pr-name { font-weight:600; color:var(--pr-navy); display:flex;
  align-items:center; gap:5px; }
.pr-muted { color:var(--pr-light); }
.pr-sf-glyph { width:13px; height:13px; flex-shrink:0; }

.pr-camp-chips { display:flex; gap:4px; flex-wrap:wrap; }
.pr-chip { font-size:10px; font-weight:600; padding:2px 7px; border-radius:10px;
  background:rgba(0,36,127,.07); color:var(--pr-navy); white-space:nowrap; }
.pr-chip.src-finny { background:rgba(49,133,252,.12); color:#1c5fb8; }
.pr-chip.src-website { background:rgba(46,125,79,.12); color:#1f5a38; }
.pr-chip.src-event { background:rgba(219,149,35,.14); color:#8a5c12; }
.pr-chip.src-referral { background:rgba(120,80,160,.12); color:#5a3a7a; }

.pr-cs { display:inline-flex; align-items:center; gap:5px; font-weight:600;
  font-size:11.5px; }
.pr-cs .pr-dot { width:7px; height:7px; border-radius:50%; }
/* The Advisor cell now renders the plain advisor name (no glyph). */
.pr-next-due { color:var(--pr-amber); font-weight:600; }
.pr-next-od  { color:var(--pr-red); font-weight:600; }

/* ── Overlay views (Import / Settings) ──────────────────────── */
.pr-view { display:none; }
.pr-view.show { display:block; }
.pr-overlay-note { font-size:11.5px; color:#8a5c12; background:#fff8ec;
  border:1px solid #e8c97a; border-radius:7px; padding:8px 12px;
  margin:0 18px 14px; }

/* Import stepper */
.pr-stepper { display:flex; margin-bottom:18px; }
.pr-step { flex:1; text-align:center; padding-bottom:10px;
  border-bottom:3px solid var(--pr-border); font-size:11.5px; font-weight:600;
  color:var(--pr-light); }
.pr-step.active { border-color:var(--pr-gold); color:var(--pr-navy); }
.pr-step.done { border-color:var(--pr-green); color:var(--pr-green); }
.pr-drop-zone { border:2px dashed var(--pr-gray-blue); border-radius:11px;
  padding:22px 16px; text-align:center; background:#fafbfd; }
.pr-drop-zone .pr-dz-title { font-weight:600; color:var(--pr-navy);
  font-size:12.5px; margin-top:6px; }
.pr-drop-zone .pr-dz-sub { font-size:11px; color:var(--pr-light); margin-top:2px; }

/* Settings overlay */
.pr-settings-wrap { display:flex; min-height:440px; }
.pr-settings-rail { width:184px; border-right:1px solid var(--pr-border);
  padding:14px 10px; background:#f6f7fb; flex-shrink:0; }
.pr-rail-item { display:flex; align-items:center; gap:9px; padding:9px 11px;
  border-radius:8px; font-size:12.5px; font-weight:600; color:var(--pr-mid);
  cursor:pointer; margin-bottom:3px; }
.pr-rail-item:hover { background:#e8ecf5; }
.pr-rail-item.active { background:var(--pr-navy); color:#fff; }
.pr-rail-item.disabled { opacity:.4; cursor:default; }
.pr-rail-future { font-size:10px; color:var(--pr-light); padding:14px 11px 4px;
  font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.pr-settings-panel { flex:1; padding:18px 22px; }
.pr-sp-head { display:flex; align-items:center; margin-bottom:14px; }
.pr-sp-title { font-family:'Noto Serif',serif; font-weight:700; font-size:17px;
  color:var(--pr-navy); }
.pr-sp-sub { font-size:11.5px; color:var(--pr-light); margin-top:1px; }
.pr-sp-add { margin-left:auto; }
/* QA r2 — Settings section-head right group: status filter + Add button. */
.pr-sp-head-right { margin-left:auto; display:flex; align-items:center; gap:10px; }
.pr-sp-head-right .pr-sp-add { margin-left:0; }
.pr-status-filter { font-size:11.5px; font-weight:600; color:var(--pr-mid);
  border:1px solid var(--pr-border); border-radius:7px; padding:6px 9px;
  background:#fff; cursor:pointer; }
.pr-status-filter:focus { outline:none; border-color:var(--pr-blue); }
/* Archived rows in the Settings tables read as retired but legible. */
.pr-row-archived td { color:var(--pr-light); }
.pr-row-archived td a { color:var(--pr-light); }
.pr-sp-foot-note { font-size:11px; color:var(--pr-light); margin-top:12px;
  background:var(--pr-bg-tint); border-radius:7px; padding:9px 11px;
  line-height:1.5; }
.pr-mtable { width:100%; border-collapse:collapse; }
.pr-mtable th { text-align:left; font-size:10px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; color:var(--pr-light);
  padding:8px 9px; border-bottom:2px solid var(--pr-border); }
.pr-mtable td { padding:9px; border-bottom:1px solid #f0f2f7; font-size:12px;
  vertical-align:middle; }
.pr-settings-empty { font-size:12px; color:var(--pr-light); padding:22px 9px;
  text-align:center; }

/* ── Shared buttons ─────────────────────────────────────────── */
.pr-btn-gold { background:var(--pr-gold); color:#fff; border:none; border-radius:7px;
  padding:7px 14px; font-family:inherit; font-weight:600; font-size:12px;
  cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.pr-btn-gold:hover { background:#c9851a; }
.pr-btn-gold:disabled { opacity:.5; cursor:not-allowed; }
.pr-btn-ghost { background:#fff; border:1px solid var(--pr-border); border-radius:8px;
  padding:9px 16px; font-weight:600; font-size:12.5px; color:var(--pr-mid);
  cursor:pointer; }
.pr-btn-navy { background:var(--pr-navy); color:#fff; border:none; border-radius:8px;
  padding:9px 18px; font-weight:600; font-size:13px; cursor:pointer; }
.pr-btn-navy:disabled { opacity:.5; cursor:not-allowed; }

/* ── Drawer ─────────────────────────────────────────────────── */
.pr-drawer-overlay { position:fixed; inset:0; background:rgba(20,30,60,.32);
  display:none; z-index:1200; }
.pr-drawer-overlay.open { display:block; }
.pr-drawer { position:fixed; top:0; right:0; height:100%; width:760px;
  max-width:96vw; background:#fff; box-shadow:-8px 0 32px rgba(20,30,60,.18);
  z-index:1201; transform:translateX(100%); transition:transform .22s ease;
  display:flex; flex-direction:column; }
.pr-drawer.open { transform:translateX(0); }
.pr-drawer-head { padding:16px 20px; border-bottom:1px solid var(--pr-border);
  background:var(--pr-navy); color:#fff; position:relative;
  /* GL: flex header — title-block left, actions right. The actions
     group used to be position:absolute, which inside the transformed
     sliding drawer offset its hit region from its paint box, so only
     part of each header button registered clicks. In-flow flex fixes
     it. Matches the Move Money drawer header. */
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:12px; }
.pr-drawer-title-block { flex:1; min-width:0; }
.pr-drawer-eyebrow { font-size:10px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; opacity:.7; }
.pr-drawer-title { font-family:'Noto Serif',serif; font-size:20px; font-weight:700;
  margin-top:3px; display:flex; align-items:center; gap:8px; }
.pr-drawer-sub { font-size:12px; opacity:.85; margin-top:2px; }
.pr-drawer-sub a { color:#9ec5ff; }
.pr-drawer-head-actions { display:flex; flex-direction:column; align-items:flex-end; gap:11px; flex-shrink:0; }
.pr-dh-btnrow { display:flex; gap:8px; }
.pr-dh-btn { background:rgba(255,255,255,.14); color:#fff; border:none;
  border-radius:6px; padding:5px 9px; font-size:11px; font-weight:600;
  cursor:pointer; }
.pr-dh-btn:hover { background:rgba(255,255,255,.26); }
.pr-drawer-close { background:rgba(255,255,255,.14); color:#fff; border:none;
  width:26px; height:26px; border-radius:6px; cursor:pointer; font-size:13px;
  display:flex; align-items:center; justify-content:center; line-height:1;
  padding:0; }
.pr-drawer-close:hover { background:rgba(255,255,255,.26); }
.pr-sf-banner { background:rgba(255,255,255,.12); border-radius:7px;
  padding:6px 10px; margin-top:9px; font-size:11.5px; display:flex;
  align-items:center; gap:7px; }
.pr-sf-banner a { color:#9ec5ff; font-weight:600; }
.pr-drawer-body { flex:1; overflow-y:auto; padding:18px 20px; }
.pr-d-section { margin-bottom:20px; }
.pr-d-section-h { font-size:11px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--pr-navy); margin-bottom:9px;
  display:flex; align-items:center; justify-content:space-between; }
.pr-d-section-h .pr-muted { font-weight:500; text-transform:none; letter-spacing:0; }

.pr-outreach-row { display:flex; gap:8px; margin-bottom:8px; }
.pr-or-btn { flex:1; min-width:0; border:1px solid var(--pr-border); border-radius:9px;
  padding:10px; background:#fff; cursor:pointer; display:flex;
  align-items:center; justify-content:center; gap:7px; font-weight:600;
  font-size:12.5px; color:var(--pr-navy); }
.pr-or-num { overflow-wrap:anywhere; }
.pr-or-btn:hover { background:var(--pr-bg-tint); }
.pr-or-btn.dial { background:var(--pr-green); color:#fff; border-color:var(--pr-green); }
.pr-or-btn.dial.disabled { background:#e4e8f1; color:var(--pr-light);
  border-color:var(--pr-border); cursor:not-allowed; }
.pr-or-btn:disabled { opacity:.5; cursor:not-allowed; }
/* The live Dial button carries the disabled attribute on purpose (dialing
   runs through the CoreNexa browser extension, not a JS handler), so the
   generic :disabled fade above made it look inactive. Keep it full-green
   and clickable-looking. The genuine "No phone" variant (.dial.disabled)
   stays greyed via the rule above it. */
.pr-or-btn.dial:not(.disabled):disabled { opacity:1; cursor:pointer; }
.pr-or-num { font-weight:700; }
.pr-outreach-hint { font-size:10.5px; color:var(--pr-light); }

.pr-facts-grid { display:grid; grid-template-columns:88px 1fr 88px 1fr;
  gap:7px 14px; font-size:12.5px; }
.pr-facts-grid .pr-lbl { color:var(--pr-light); font-weight:600; font-size:11px; }
.pr-facts-grid .pr-val { font-weight:600; }
.pr-est-flag { font-size:9.5px; color:var(--pr-amber); font-weight:700; }

.pr-camp-row { border:1px solid var(--pr-border); border-radius:9px;
  padding:11px 13px; margin-bottom:9px; }
.pr-camp-row.primary { border-color:var(--pr-gold); background:rgba(219,149,35,.05); }
.pr-camp-row-top { display:flex; align-items:center; gap:8px; }
.pr-camp-row-name { font-weight:700; color:var(--pr-navy); font-size:13px; }
.pr-camp-row-meta { font-size:10.5px; color:var(--pr-light); margin-left:auto; }
.pr-primary-tag { font-size:9px; font-weight:700; background:var(--pr-gold);
  color:#fff; padding:2px 6px; border-radius:8px; letter-spacing:.04em; }
.pr-script-open { font-size:11.5px; color:var(--pr-blue); font-weight:600;
  cursor:pointer; margin-top:8px; display:inline-flex; align-items:center;
  gap:6px; text-decoration:none; border:1px solid rgba(49,133,252,.3);
  border-radius:7px; padding:6px 11px;
  /* GJ: the enabled link now renders as a <button> — reset UA chrome. */
  background:none; font-family:inherit; line-height:1.2; }
.pr-script-open:not(.disabled):hover { background:rgba(49,133,252,.08); }
.pr-script-open.disabled { color:var(--pr-light); border-color:var(--pr-border);
  cursor:default; background:none; }

.pr-wf-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.pr-wf-field label { display:block; font-size:10.5px; font-weight:700;
  color:var(--pr-light); text-transform:uppercase; letter-spacing:.04em;
  margin-bottom:4px; }
.pr-wf-field select, .pr-wf-field input { width:100%; padding:7px 9px;
  border:1px solid var(--pr-border); border-radius:7px; font-family:inherit;
  font-size:12.5px; }
.pr-wf-hint { font-size:10.5px; color:var(--pr-light); margin-top:7px; }

.pr-calllog-form { background:var(--pr-bg-tint); border-radius:9px;
  padding:12px 13px; margin-bottom:12px; }
.pr-outcome-row { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.pr-outcome-chip { padding:5px 11px; border-radius:14px;
  border:1px solid var(--pr-border); background:#fff; font-size:11.5px;
  font-weight:600; color:var(--pr-mid); cursor:pointer; }
.pr-outcome-chip.sel { background:var(--pr-navy); color:#fff;
  border-color:var(--pr-navy); }
.pr-outcome-chip.dnc.sel { background:var(--pr-cs-donotcall);
  border-color:var(--pr-cs-donotcall); }
.pr-calllog-form textarea { width:100%; min-height:54px;
  border:1px solid var(--pr-border); border-radius:7px; padding:8px;
  font-family:inherit; font-size:12px; resize:vertical; }
.pr-log-btn { margin-top:8px; background:var(--pr-navy); color:#fff; border:none;
  border-radius:7px; padding:7px 15px; font-weight:600; font-size:12px;
  cursor:pointer; }
.pr-log-btn:disabled { opacity:.5; cursor:not-allowed; }

.pr-note { display:flex; gap:9px; padding:9px 0; border-bottom:1px solid #f0f2f7; }
.pr-note-avatar { width:26px; height:26px; border-radius:50%;
  background:var(--pr-navy-mid); color:#fff; font-size:9px; font-weight:700;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pr-note-avatar.sys { background:var(--pr-gold); }
.pr-note-body { flex:1; }
.pr-note-head { font-size:11.5px; }
.pr-note-head b { color:var(--pr-navy); }
.pr-note-head .pr-time { color:var(--pr-light); font-weight:500; }
.pr-note-pill { font-size:9.5px; font-weight:700; padding:1px 6px;
  border-radius:8px; background:rgba(219,149,35,.16); color:#8a5c12;
  margin-left:5px; text-transform:uppercase; }
.pr-note-pill.li { background:rgba(49,133,252,.14); color:#1c5fb8; }
.pr-note-pill.em { background:rgba(46,125,79,.14); color:#1f5a38; }
.pr-note-pill.st { background:rgba(0,36,127,.10); color:var(--pr-navy); }
.pr-note-text { font-size:12px; color:var(--pr-mid); margin-top:3px;
  line-height:1.5; }
.pr-note-sys { background:rgba(0,36,127,.04); border-radius:7px; padding:7px 10px;
  font-size:11px; color:var(--pr-light); font-style:italic; }
.pr-history-empty { font-size:12px; color:var(--pr-light); padding:8px 0; }

/* ── Modals (Add Lead / New Script — inert in slice 2) ──────── */
.pr-modal-overlay { position:fixed; inset:0; background:rgba(20,30,60,.4);
  display:none; z-index:1300; align-items:center; justify-content:center; }
.pr-modal-overlay.open { display:flex; }
.pr-modal { background:#fff; border-radius:12px; width:520px; max-width:94vw;
  box-shadow:0 16px 50px rgba(20,30,60,.3); }
.pr-modal-head { padding:15px 20px; border-bottom:1px solid var(--pr-border);
  display:flex; align-items:center; justify-content:space-between; }
.pr-mh-title { font-family:'Noto Serif',serif; font-weight:700; font-size:16px;
  color:var(--pr-navy); }
.pr-modal-close { background:#eef1f6; color:var(--pr-mid); border:none;
  width:26px; height:26px; border-radius:6px; cursor:pointer; font-size:13px; }
.pr-modal-body { padding:18px 20px; }
.pr-modal-foot { padding:13px 20px; border-top:1px solid var(--pr-border);
  display:flex; justify-content:flex-end; gap:8px; }
.pr-mf-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.pr-mf-field label { display:block; font-size:10.5px; font-weight:700;
  color:var(--pr-light); text-transform:uppercase; letter-spacing:.04em;
  margin-bottom:4px; }
.pr-mf-field.full { grid-column:1/-1; }
.pr-mf-field input, .pr-mf-field select { width:100%; padding:7px 9px;
  border:1px solid var(--pr-border); border-radius:7px; font-family:inherit;
  font-size:12.5px; }
.pr-modal-note { font-size:11px; color:var(--pr-light); margin-top:11px; }
.pr-upload-zone { border:2px dashed var(--pr-gray-blue); border-radius:9px;
  padding:20px; text-align:center; background:#fafbfd; }
.pr-uz-title { font-weight:600; color:var(--pr-navy); font-size:12.5px;
  margin-top:6px; }
.pr-uz-sub { font-size:11px; color:var(--pr-light); margin-top:2px; }

/* ── Toast ──────────────────────────────────────────────────── */
.pr-toast { position:fixed; bottom:22px; left:50%; transform:translateX(-50%);
  background:var(--pr-navy); color:#fff; padding:10px 18px; border-radius:9px;
  font-size:12.5px; font-weight:600; box-shadow:0 8px 28px rgba(0,36,127,.28);
  z-index:1400; opacity:0; pointer-events:none; transition:opacity .2s ease; }
.pr-toast.show { opacity:1; }
.pr-toast.err { background:var(--pr-red); }

/* ═══ SLICE 3 — IMPORT / SETTINGS / DRAWER ADDITIONS ═══════════ */

/* Drop zone — dragover state */
.pr-dz-over { border-color:var(--pr-blue) !important; background:#eef4ff !important; }

/* Import — chosen file + errors */
.pr-imp-filename { margin-top:10px; font-size:12px; font-weight:600;
  color:var(--pr-navy); }
.pr-imp-error, .pr-modal-error { margin-top:10px; font-size:11.5px;
  font-weight:600; color:var(--pr-red); background:#fbeded;
  border-radius:7px; padding:8px 11px; line-height:1.45; }
.pr-settings-err { color:var(--pr-red); }

/* Import — review step */
.pr-imp-summary { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.pr-imp-stat { background:var(--pr-bg-tint); border-radius:7px;
  padding:6px 11px; font-size:11.5px; color:var(--pr-mid); }
.pr-imp-stat b { color:var(--pr-navy); font-size:13px; margin-right:3px; }
.pr-imp-block { border:1px solid var(--pr-border); border-radius:10px;
  padding:14px 16px; margin-bottom:14px; }
.pr-imp-block-h { font-size:12px; font-weight:700; color:var(--pr-navy);
  margin-bottom:10px; }
.pr-imp-radio { display:flex; align-items:center; gap:7px; font-size:12.5px;
  color:var(--pr-ink); margin:4px 0; cursor:pointer; }
.pr-imp-camp-new, .pr-imp-camp-exist { display:flex; gap:12px;
  margin:6px 0 10px 22px; flex-wrap:wrap; }
.pr-imp-camp-new .pr-mf-field { min-width:170px; flex:1; }
.pr-imp-camp-exist select { min-width:240px; }
.pr-imp-dups { display:flex; flex-direction:column; gap:8px; }
.pr-imp-dup { background:#fafbfd; border:1px solid var(--pr-border);
  border-radius:8px; padding:10px 12px; }
.pr-imp-dup-name { font-size:12.5px; font-weight:600; color:var(--pr-navy); }
.pr-imp-dup-match { font-size:11.5px; color:var(--pr-mid); margin:3px 0 7px; }
.pr-imp-dup-choice { display:flex; gap:16px; flex-wrap:wrap; }
.pr-imp-dup-choice label { display:flex; align-items:center; gap:6px;
  font-size:11.5px; color:var(--pr-ink); cursor:pointer; }
.pr-imp-assign { margin-top:4px; }
.pr-imp-note { font-size:11px; color:var(--pr-light); margin-top:9px;
  background:var(--pr-bg-tint); border-radius:7px; padding:8px 11px;
  line-height:1.5; }
.pr-imp-foot { display:flex; justify-content:flex-end; gap:9px;
  margin-top:16px; }
.pr-imp-foot .pr-btn-navy:disabled { opacity:.5; cursor:not-allowed; }

/* Import — committed step */
.pr-imp-done { text-align:center; padding:30px 16px; }
.pr-imp-done-icon { width:46px; height:46px; line-height:46px; margin:0 auto;
  border-radius:50%; background:var(--pr-green); color:#fff; font-size:24px;
  font-weight:700; }
.pr-imp-done-title { font-size:15px; font-weight:700; color:var(--pr-navy);
  margin-top:12px; }
.pr-imp-done-sub { font-size:12px; color:var(--pr-mid); margin-top:6px;
  line-height:1.5; }

/* Settings — table action cell + row buttons */
.pr-mt-act { text-align:right; white-space:nowrap; }
.pr-row-act { background:var(--pr-bg-tint); color:var(--pr-navy); border:none;
  border-radius:6px; padding:4px 10px; font-size:11px; font-weight:600;
  cursor:pointer; margin-left:6px; }
.pr-row-act:hover { background:#e1e6f0; }
.pr-row-act-danger { background:#fbeded; color:var(--pr-red); }
.pr-row-act-danger:hover { background:#f5dede; }

/* GH — Deleted Leads panel: checkbox column + bulk bar */
.pr-mt-check { width:34px; text-align:center; padding-left:9px; padding-right:0; }
.pr-mt-check input { cursor:pointer; margin:0; vertical-align:middle; }
.pr-mtable tr.pr-row-sel td { background:var(--pr-bg-tint); }
.pr-del-bulkbar { display:flex; align-items:center; gap:14px;
  background:var(--pr-bg-tint); border:1px solid var(--pr-border);
  border-radius:8px; padding:8px 12px; margin-bottom:12px; }
.pr-del-bulk-count { font-size:11px; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; color:var(--pr-navy); }
.pr-del-bulk-actions { display:flex; align-items:center; gap:8px;
  margin-left:auto; }
.pr-del-bulk-actions .pr-row-act { margin-left:0; }
.pr-del-bulk-clear { background:none; border:none; color:var(--pr-light);
  font-size:11px; font-weight:600; cursor:pointer; padding:4px 6px; }
.pr-del-bulk-clear:hover { color:var(--pr-navy); text-decoration:underline; }

/* Settings — status badge */
.pr-st-badge { display:inline-block; font-size:10.5px; font-weight:700;
  border-radius:5px; padding:2px 8px; letter-spacing:.02em; }
.pr-st-active { background:#e3f1ea; color:var(--pr-green); }
.pr-st-archived { background:#eceef3; color:var(--pr-light); }

/* Settings — caller target inline input */
.pr-target-input { width:62px; border:1px solid var(--pr-gray-blue);
  border-radius:6px; padding:4px 7px; font-size:12px; color:var(--pr-ink);
  font-family:inherit; }
.pr-target-input:focus { outline:none; border-color:var(--pr-blue); }

/* Drawer — manager soft-delete button */
.pr-dh-danger { background:rgba(255,170,170,.22); }
.pr-dh-danger:hover { background:rgba(255,150,150,.38); }


/* ═══ v6 GH ADDITIONS — Session 87 QA round ════════════════════ */

/* ── 1 — thin scrollbar (Move Money treatment) + scroll regions ── */
.pr-thin-scroll { scrollbar-width:thin; scrollbar-color:#c2cad9 transparent; }
.pr-thin-scroll::-webkit-scrollbar { width:10px; height:10px; }
.pr-thin-scroll::-webkit-scrollbar-track { background:transparent; }
.pr-thin-scroll::-webkit-scrollbar-thumb {
  background:#c2cad9; border-radius:6px; border:2px solid #fff; }
.pr-thin-scroll::-webkit-scrollbar-thumb:hover { background:#a6b0c6; }

/* Ledger body scrolls; the thead sticks. */
/* GO-6: the leads ledger fills the card height — a min-height floor so sparse
   results still hold shape, growing to fill when the card is taller (the card
   stretches to its grid cell via .card{height:100%} + grid align-items:stretch).
   Flex chain: .pr-card -> #prViewLedger -> .pr-card-body -> .pr-ledger-scroll.
   Scoped to #prViewLedger so the Campaigns / import views are unaffected. */
#prViewLedger.show          { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; }
#prViewLedger > .pr-card-body { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; }
.pr-ledger-scroll { flex:1 1 auto; min-height:420px; overflow:auto; }
.pr-ledger-scroll thead th { position:sticky; top:0; z-index:3;
  background:#fff; box-shadow:inset 0 -2px 0 var(--pr-border); }
/* Settings tables scroll inside their own region. */
.pr-settings-scroll { max-height:344px; overflow:auto; }
.pr-settings-scroll thead th { position:sticky; top:0; z-index:2;
  background:#f6f7fb; box-shadow:inset 0 -2px 0 var(--pr-border); }
/* Import review pane scrolls at the card-body level. */
.pr-card-body.pr-scroll-pane { max-height:560px; overflow:auto; }

/* GX-fix3: the Campaigns view fills the card and scrolls INTERNALLY (mirrors the
   ledger flex chain above). Without this it was a plain block, so a height-
   constrained card (.pr-card overflow:hidden) clipped the bottom of the
   "Campaigns Launched" table — taking its horizontal scrollbar with it, with no
   way to scroll down to reach it. Now the body is the scroll region, so each
   table (and its h-scrollbar) is always reachable regardless of card height. */
#prViewCampaigns.show           { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; }
#prViewCampaigns .pr-camp-body  { flex:1 1 auto; min-height:0; overflow:auto; }

/* ── 4 — column reorder + resize + sort ───────────────────────── */
.pr-table thead th.pr-draggable { cursor:grab; }
.pr-table thead th.pr-draggable:active { cursor:grabbing; }
.pr-table thead th.pr-drag-over   { box-shadow:inset 3px 0 0 var(--pr-gold); }
.pr-table thead th.pr-dragging    { opacity:.45; }
.pr-table thead th .pr-col-grip {
  display:inline-block; width:9px; color:var(--pr-gray-blue);
  margin-right:3px; vertical-align:middle; }
.pr-table thead th .pr-th-resize {
  position:absolute; top:0; right:-3px; width:7px; height:100%;
  cursor:col-resize; user-select:none; z-index:5; }
.pr-table thead th .pr-th-resize:hover,
.pr-table thead th .pr-th-resize.active { background:rgba(49,133,252,.35); }
.pr-table.pr-is-resizing { user-select:none; }
.pr-table.pr-is-resizing thead th { cursor:col-resize !important; }

/* ── 7 — clickable SF + Finny + LinkedIn ledger badges ────────── */
.pr-name-badges { display:flex; align-items:center; gap:3px; margin-top:4px; flex-wrap:wrap; }
.pr-rec-badge { display:inline-flex; align-items:center; justify-content:center;
  width:17px; height:17px; border-radius:5px; flex-shrink:0; cursor:pointer;
  text-decoration:none; transition:transform .1s; font-size:10px;
  font-weight:800; line-height:1; }
.pr-rec-badge:hover { transform:scale(1.12); }
.pr-rec-badge.sf  { background:rgba(49,133,252,.13); }
.pr-rec-badge.li  { background:rgba(10,102,194,.13); color:#0a66c2; }
.pr-rec-badge.fin { background:rgba(219,149,35,.16); color:#8a5c12; }

/* HD — small "IPN" pill in the ledger Name-cell badge row (candidate = grey,
   attended a lunch = yellow, member = green — mirrors the IPN tab's name badge
   palette). Clickable → opens the contact's IPN record in the IPN drawer. */
.pr-ipn-pill { display:inline-flex; align-items:center; cursor:pointer;
  font-size:9px; font-weight:800; letter-spacing:.04em; line-height:1;
  border-radius:9px; padding:3px 6px; border:1px solid transparent; transition:filter .1s; }
.pr-ipn-pill:hover { filter:brightness(.95); }
.pr-ipn-pill.green  { background:rgba(46,125,79,.13); color:#20603b; border-color:rgba(46,125,79,.35); }
.pr-ipn-pill.yellow { background:rgba(219,149,35,.16); color:#8a5a10; border-color:rgba(219,149,35,.4); }
.pr-ipn-pill.grey   { background:#eef0f5; color:var(--pr-mid); border-color:var(--pr-border); }

/* ── 8 — pending Finny suggestion: ledger indicator + drawer flag */
.pr-sugg-dot { display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; border-radius:5px; background:rgba(219,149,35,.16);
  color:var(--pr-gold); font-size:10px; font-weight:800; cursor:pointer;
  flex-shrink:0; }
.pr-sugg-flag { margin-top:5px; background:#fff8ec; border:1px solid #e8c97a;
  border-radius:7px; padding:6px 9px; font-size:11px; color:#7a5a18;
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pr-sugg-flag .pr-sf-new { font-weight:700; color:#5a4310; }
.pr-sugg-flag .pr-sf-act { margin-left:auto; display:flex; gap:6px; }
.pr-sugg-mini { border:none; border-radius:6px; padding:3px 9px; font-size:10.5px;
  font-weight:700; cursor:pointer; font-family:inherit; }
.pr-sugg-mini.accept  { background:var(--pr-green); color:#fff; }
.pr-sugg-mini.dismiss { background:#eef1f6; color:var(--pr-mid); }
.pr-sugg-mini:disabled { opacity:.5; cursor:not-allowed; }

/* ── 8 — Lead Detail edit affordance + inline form ────────────── */
.pr-ld-edit-btn { background:rgba(0,36,127,.07); border:none; border-radius:6px;
  padding:3px 10px; font-size:10.5px; font-weight:700; color:var(--pr-navy);
  cursor:pointer; text-transform:none; letter-spacing:0; }
.pr-ld-edit-btn:hover { background:rgba(0,36,127,.13); }
.pr-ld-cols { display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }
.pr-ld-line { display:grid; grid-template-columns:78px 1fr; gap:3px 12px;
  align-items:baseline; padding:5px 0; border-bottom:1px solid #f4f5f9; }
.pr-ld-line:last-child { border-bottom:0; }
.pr-ld-line .pr-lbl { color:var(--pr-light); font-weight:600; font-size:11px; }
.pr-ld-line .pr-val { font-weight:600; font-size:12.5px; min-width:0; }
.pr-ld-line .pr-sugg-flag { grid-column:1/-1; }
.pr-ld-line .pr-val a { color:var(--pr-blue); text-decoration:none; }
.pr-val.trunc, .pr-val.trunc a { display:block; max-width:100%; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.pr-enrich-divider { font-size:10px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--pr-light); margin:14px 0 8px; }
.pr-ld-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pr-ld-form-grid .full { grid-column:1/-1; }
.pr-ld-fld label { display:block; font-size:10px; font-weight:700;
  color:var(--pr-light); text-transform:uppercase; letter-spacing:.04em;
  margin-bottom:3px; }
.pr-ld-fld input { width:100%; padding:6px 9px; border:1px solid var(--pr-border);
  border-radius:7px; font-family:inherit; font-size:12.5px; }
.pr-ld-readonly-note { font-size:10.5px; color:var(--pr-light); margin-top:11px;
  background:var(--pr-bg-tint); border-radius:7px; padding:7px 10px;
  line-height:1.5; }
.pr-ld-form-foot { display:flex; gap:8px; margin-top:12px; }
.pr-ld-save { background:var(--pr-navy); color:#fff; border:none; border-radius:7px;
  padding:7px 16px; font-weight:600; font-size:12px; cursor:pointer; }
.pr-ld-save:disabled { opacity:.5; cursor:not-allowed; }
.pr-ld-cancel { background:#fff; border:1px solid var(--pr-border); border-radius:7px;
  padding:7px 14px; font-weight:600; font-size:12px; color:var(--pr-mid);
  cursor:pointer; }
.pr-drawer-sub a.trunc { display:inline-block; max-width:170px; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom; }

/* ── 6 — deletable History entries ────────────────────────────── */
.pr-note { position:relative; }
.pr-note-del { position:absolute; top:8px; right:0; width:22px; height:22px;
  border:1px solid var(--pr-border); background:#fff; border-radius:6px;
  color:var(--pr-light); cursor:pointer; display:none;
  align-items:center; justify-content:center; padding:0; }
.pr-note:hover .pr-note-del { display:flex; }
.pr-note-del:hover { background:#fbeaea; color:var(--pr-red); border-color:#e7c4c4; }

/* ── 10 — manager unassigned-count chip ───────────────────────── */
.pr-unassigned-chip { display:inline-flex; align-items:center; gap:6px;
  background:rgba(219,149,35,.13); color:#8a5c12; border:1px solid #e8c97a;
  border-radius:13px; padding:5px 11px; font-size:11px; font-weight:700;
  cursor:pointer; margin-left:auto; }
.pr-unassigned-chip:hover { background:rgba(219,149,35,.22); }

/* ── 13 / 14 — Last Note / Notes ledger columns ───────────────── */
.pr-table td.pr-cell-trunc { max-width:240px; }
.pr-table td.pr-cell-trunc > span { display:block; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.pr-table td.pr-note-cell { cursor:pointer; }
.pr-table td.pr-note-cell .pr-ln-author { font-weight:700; color:var(--pr-navy); }
.pr-table td.pr-note-cell .pr-ln-empty  { color:var(--pr-light); }

/* GO-7: stacked Last Activity / History cells — content on line 1, name & date
   in grey on line 2. Line 1 clamps to 2 lines (History cell is max-width:240px
   via .pr-cell-trunc); line 2 stays single-line. The .pr-cell-trunc > span
   nowrap rule doesn't apply here (the stack is a <div>, not a direct <span>). */
.pr-table td .pr-ln-l1 { color:var(--pr-ink); line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pr-table td .pr-ln-l2 { color:var(--pr-light); font-size:11px; line-height:1.3; margin-top:2px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* GO-8: help popover (#prHelpIcon) — body-anchored, hover-open. Mirrors the
   Tasks / Important Dates explainer (dark navy, arrow tail, flip-up). */
.pr-helptip { display:none; position:fixed; background:#1a2244; color:#f0f2f7;
  font-size:11.5px; line-height:1.55; border-radius:8px; box-shadow:0 8px 28px rgba(0,0,0,.22);
  width:340px; max-width:calc(100vw - 24px); z-index:1300; text-align:left; overflow:hidden; }
.pr-helptip.on { display:block; }
.pr-helptip::before { content:''; position:absolute; top:-6px; left:var(--arrow-x,24px);
  transform:translateX(-50%); width:0; height:0; border-left:6px solid transparent;
  border-right:6px solid transparent; border-bottom:6px solid #1a2244; }
.pr-helptip.pr-helptip-flip-up::before { top:auto; bottom:-6px; border-bottom:none; border-top:6px solid #1a2244; }
.pr-helptip-title { background:rgba(255,255,255,.05); padding:10px 14px; font-size:12.5px; font-weight:600; color:#fff; }
.pr-helptip-body { padding:12px 14px; }
.pr-helptip-section { margin-bottom:11px; }
.pr-helptip-section:last-of-type { margin-bottom:0; }
.pr-helptip-h { font-size:9.5px; font-weight:600; text-transform:uppercase; letter-spacing:.06em;
  color:rgba(255,255,255,.55); margin-bottom:4px; }
.pr-helptip-section p { font-size:11.5px; line-height:1.5; margin:0 0 5px; }
.pr-helptip-section p:last-child { margin-bottom:0; }
.pr-helptip-section strong { color:#fff; font-weight:600; }
.pr-helptip-section em { color:#ffd47a; font-style:normal; font-weight:500; }
.pr-helptip-mgr { border-top:1px solid rgba(255,255,255,.10); padding-top:10px; }

/* body-anchored Notes History popover (shared by both columns) */
.pr-note-pop { position:fixed; z-index:1450; width:360px; max-width:92vw;
  background:#fff; border:1px solid var(--pr-border); border-radius:9px;
  box-shadow:0 10px 32px rgba(0,36,127,.18); display:none; }
.pr-note-pop.open { display:block; }
.pr-note-pop-head { font-size:10px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--pr-navy); padding:9px 12px;
  border-bottom:1px solid var(--pr-border); background:#f6f7fb;
  border-radius:9px 9px 0 0; }
.pr-note-pop-body { padding:6px 12px; max-height:262px; overflow:auto; }
.pr-note-pop-entry { padding:8px 0; border-bottom:1px solid #f0f2f7; }
.pr-note-pop-entry:last-child { border-bottom:0; }
.pr-note-pop-meta { display:flex; align-items:center; gap:6px; margin-bottom:3px; }
.pr-note-pop-author { font-weight:700; color:var(--pr-navy); font-size:11.5px; }
.pr-note-pop-pill { font-size:9px; font-weight:700; padding:1px 6px;
  border-radius:8px; background:rgba(219,149,35,.16); color:#8a5c12;
  text-transform:uppercase; letter-spacing:.03em; }
.pr-note-pop-pill.li { background:rgba(10,102,194,.13); color:#0a66c2; }
.pr-note-pop-pill.em { background:rgba(46,125,79,.14); color:#1f5a38; }
.pr-note-pop-when { color:var(--pr-light); margin-left:auto; font-size:10.5px;
  white-space:nowrap; }
.pr-note-pop-text { font-size:12px; color:var(--pr-mid); line-height:1.5; }
.pr-note-pop-empty { font-size:12px; color:var(--pr-light); font-style:italic;
  padding:4px 0; }

/* ── 13 — standing Notes field (separate from History) ────────── */
.pr-lead-notes { width:100%; min-height:130px; border:1px solid var(--pr-border);
  border-radius:8px; padding:9px 11px; font-family:inherit; font-size:12.5px;
  resize:vertical; line-height:1.5; color:var(--pr-ink); }
.pr-lead-notes:focus { outline:none; border-color:var(--pr-blue); }
.pr-lead-notes-foot { font-size:10.5px; color:var(--pr-light); margin-top:5px; }

/* ── 12 — Log a Contact channel selector ──────────────────────── */
.pr-cl-label { font-size:10px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--pr-light); margin:2px 0 6px; }
.pr-cl-label.spaced { margin-top:10px; }
.pr-chan-chip { padding:5px 13px; border-radius:14px; border:1px solid var(--pr-border);
  background:#fff; font-size:11.5px; font-weight:600; color:var(--pr-mid);
  cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.pr-chan-chip.sel { background:var(--pr-navy); color:#fff; border-color:var(--pr-navy); }
.pr-chan-chip svg { width:13px; height:13px; }

.pr-hide { display:none !important; }
.pr-hidden-role { display:none !important; }

/* ── SCRIPT VIEWER MODAL (GJ) ──────────────────────────────────────────────
   Read-only call-script viewer opened from the lead drawer. Wider and
   taller than the standard .pr-modal (which is 520px) so a full HTML call
   script is comfortably readable; the body is a flush iframe. */
.pr-script-view-modal { width:860px; max-width:94vw; display:flex;
  flex-direction:column; max-height:88vh; }
.pr-script-view-body { padding:0; flex:1 1 auto; display:flex;
  min-height:0; }
.pr-script-view-frame { width:100%; height:70vh; border:0; display:block;
  border-radius:0 0 12px 12px; background:#fff; }

/* ── SCRIPT VIEWER "POP OUT" (GK) ──────────────────────────────────────────
   .pr-mh-actions groups the Pop out + close buttons at the right of the
   script-viewer modal head. .pr-script-pop is a small ghost button that
   opens the script in a standalone window for a second monitor. */
.pr-mh-actions { display:flex; align-items:center; gap:8px; }
.pr-script-pop { display:inline-flex; align-items:center; gap:6px;
  font-family:inherit; font-size:11.5px; font-weight:600; color:var(--pr-blue);
  background:none; border:1px solid rgba(49,133,252,.3); border-radius:6px;
  padding:5px 10px; cursor:pointer; line-height:1.2; }
.pr-script-pop:hover { background:rgba(49,133,252,.08); }
.pr-script-pop svg { width:13px; height:13px; }

/* ── LW4IP waitlist (Lunch with 4 Interesting People) ──────────────────────
   An inline one-click toggle rendered as a labeled row under LinkedIn in the
   Lead Detail grid, a ledger column showing a check when set, and a filter. */
.pr-lw4ip-toggle { display:inline-flex; align-items:center; gap:7px;
  cursor:pointer; user-select:none; font-weight:600; font-size:12.5px;
  color:var(--pr-green); }
.pr-lw4ip-toggle input[type="checkbox"] { width:15px; height:15px; margin:0;
  cursor:pointer; accent-color:var(--pr-green); }
.pr-lw4ip-toggle.off { color:var(--pr-light); }
.pr-lw4ip-yes { color:var(--pr-green); font-weight:700; }

/* ── Lead Stage (GN-1) ──────────────────────────────────────── */
/* Ledger pill + drawer-hero badge. Tinted background + solid text,
   matching the .pr-chip treatment used elsewhere in the card. */
.pr-stage-badge { display:inline-block; font-size:10.5px; font-weight:700;
  padding:2px 9px; border-radius:11px; line-height:1.5; white-space:nowrap;
  border:1px solid transparent; }
.pr-stage-badge.s-lead {
  background:rgba(107,114,128,.12); color:#4b5563; border-color:rgba(107,114,128,.22); }
.pr-stage-badge.s-prospect {
  background:rgba(49,133,252,.12); color:#1c5fb8; border-color:rgba(49,133,252,.22); }
.pr-stage-badge.s-client {
  background:rgba(46,125,79,.13); color:#1f5a38; border-color:rgba(46,125,79,.24); }
.pr-stage-badge.s-closed {
  background:rgba(154,107,107,.13); color:#7a4a4a; border-color:rgba(154,107,107,.24); }

/* The prominent hero row at the top of the lead drawer. */
.pr-stage-hero { padding:13px 16px; margin:0 0 4px; border-bottom:1px solid var(--pr-border);
  background:var(--pr-bg-tint); }
.pr-stage-hero-main { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pr-stage-hero-lbl { font-size:11px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--pr-mid); }
.pr-stage-hero .pr-stage-badge { font-size:11px; padding:3px 11px; }
.pr-stage-select { margin-left:auto; padding:6px 10px; border:1px solid var(--pr-border);
  border-radius:8px; background:#fff; font-size:12.5px; font-weight:600; color:var(--pr-ink);
  cursor:pointer; min-width:170px; }
.pr-stage-select:focus { outline:none; border-color:var(--pr-blue);
  box-shadow:0 0 0 3px rgba(49,133,252,.15); }

/* The prompt-only soft-link nudge. Never auto-applies. */
.pr-stage-nudge { display:flex; align-items:center; justify-content:space-between;
  gap:10px; flex-wrap:wrap; margin-top:9px; padding:7px 11px; border-radius:8px;
  background:rgba(219,149,35,.10); border:1px solid rgba(219,149,35,.28);
  font-size:11.5px; color:#7a5410; }
.pr-stage-nudge-txt b { font-weight:700; }
.pr-stage-nudge-act { display:flex; gap:6px; flex-shrink:0; }
.pr-stage-nudge-apply, .pr-stage-nudge-dismiss { font-size:11px; font-weight:700;
  padding:4px 11px; border-radius:7px; cursor:pointer; border:1px solid transparent; }
.pr-stage-nudge-apply { background:var(--pr-gold); color:#fff; }
.pr-stage-nudge-apply:hover { filter:brightness(1.05); }
.pr-stage-nudge-dismiss { background:#fff; color:var(--pr-mid); border-color:var(--pr-border); }
.pr-stage-nudge-dismiss:hover { background:var(--pr-bg-tint); }

/* ══════════════════════════════════════════════════════════════
   GN-2 (slice 1) — Campaigns view, tabs, lead-visibility gate
   ══════════════════════════════════════════════════════════════ */

/* ── Card-header view tabs (B1 — underline, right-aligned) ──── */
.pr-card-tabs {
  display:flex; justify-content:flex-end; gap:0;
  padding:0 18px; border-bottom:1px solid var(--pr-border);
}
.pr-card-tabs.pr-hidden-role { display:none; }
.pr-tab {
  position:relative; background:none; border:none; cursor:pointer;
  font-family:inherit; font-size:13.5px; font-weight:600;
  color:var(--pr-mid); padding:12px 6px 11px; margin-left:22px;
}
.pr-tab:hover { color:var(--pr-navy); }
.pr-tab.active { color:var(--pr-navy); }
.pr-tab.active::after {
  content:""; position:absolute; left:0; right:0; bottom:-1px;
  height:2.5px; background:var(--pr-navy); border-radius:2px;
}

/* ── Lead-visibility gate toggle (manager-only) ─────────────── */
.pr-prerelease-toggle {
  display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  font-size:12px; font-weight:600; color:var(--pr-mid);
  border:1px solid var(--pr-border); border-radius:8px;
  padding:6px 11px; background:#fff; white-space:nowrap;
}
.pr-prerelease-toggle:hover { background:var(--pr-bg-tint); }
.pr-prerelease-toggle input { accent-color:var(--pr-navy); margin:0; }
.pr-prerelease-toggle.pr-hidden-role { display:none; }

/* ── Campaigns view shell ───────────────────────────────────── */
#prViewCampaigns .pr-camp-body { padding:16px 18px 20px; }
.pr-camp-top { display:flex; align-items:baseline; gap:12px; margin-bottom:6px; }
.pr-camp-title { font-family:'Noto Serif',Georgia,serif; font-size:15px; font-weight:700; color:var(--pr-navy); }
.pr-camp-top-hint { font-size:11.5px; color:var(--pr-light); }

.pr-sec-head { display:flex; align-items:center; gap:10px; margin:0 0 10px; }
.pr-sec-head.pr-sec-mt { margin-top:20px; }
.pr-sec-label { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--pr-navy); }
.pr-sec-hint { font-size:11px; font-weight:500; color:var(--pr-light); }
.pr-sec-right { margin-left:auto; display:flex; align-items:center; gap:7px; }

/* ── Family tiles ───────────────────────────────────────────── */
.pr-fam-tiles { display:grid; grid-template-columns:repeat(5,1fr); gap:11px; margin-bottom:4px; }
.pr-fam-tile {
  border:1px solid var(--pr-border); border-radius:11px; padding:12px 13px;
  background:#fff; cursor:pointer; transition:border-color .12s, box-shadow .12s; position:relative;
}
.pr-fam-tile:hover { border-color:var(--pr-blue); box-shadow:0 4px 14px rgba(49,133,252,.13); }
.pr-fam-tile.active { border-color:var(--pr-navy); background:var(--pr-bg-tint); box-shadow:0 4px 14px rgba(0,36,127,.14); }
.pr-fam-tile h3 { margin:0 0 1px; font-size:12.5px; font-weight:700; color:var(--pr-navy); line-height:1.2; }
.pr-fam-tile .pr-fam-sub { font-size:10px; color:var(--pr-light); margin-bottom:9px; }
.pr-fam-funnel { display:flex; align-items:flex-end; gap:3px; height:26px; margin-bottom:7px; }
.pr-fam-bar { flex:1; border-radius:3px 3px 0 0; min-height:3px; }
.pr-fam-mrow { display:flex; justify-content:space-between; font-size:10.5px; padding:1.5px 0; border-top:1px solid #f1f2f7; }
.pr-fam-mrow .k { color:var(--pr-mid); }
.pr-fam-mrow .v { font-weight:700; color:var(--pr-ink); }
.pr-fam-empty { grid-column:1/-1; color:var(--pr-light); font-size:12px; padding:8px 2px; }

/* ── Campaign tables (shared) ───────────────────────────────── */
.pr-camp-scroll { overflow:auto; border:1px solid var(--pr-border); border-radius:11px; position:relative; }
.pr-fam-scroll { max-height:210px; overflow-y:auto; overflow-x:auto; }
.pr-wave-scroll { max-height:380px; overflow-y:auto; overflow-x:auto; }
/* width:max-content (= sum of the columns' set widths) + min-width:100% lets the
   table keep each column's width and SCROLL horizontally when the total exceeds
   the card, instead of squishing columns to fit (which truncated headers). When
   it's narrower than the card, min-width:100% stretches it to fill. */
.pr-camp-table { border-collapse:separate; border-spacing:0; width:auto; min-width:100%; font-size:12px; table-layout:fixed; }
.pr-camp-table thead th {
  background:#f6f7fb; color:var(--pr-navy); font-weight:700; font-size:10.5px;
  letter-spacing:.03em; text-transform:uppercase; text-align:left;
  padding:9px 22px 9px 8px; border-bottom:1px solid var(--pr-border);
  white-space:nowrap; position:sticky; top:0; z-index:2; cursor:pointer;
  user-select:none; overflow:hidden; text-overflow:ellipsis;
}
.pr-camp-table thead th.num { text-align:right; padding:9px 8px 9px 22px; }
.pr-camp-table thead th.derived { /* GN-7 3.1 — no derived highlight */ }
.pr-camp-table thead th .pr-camp-arr { display:inline-block; margin-left:4px; color:var(--pr-light); font-size:9px; opacity:0; }
.pr-camp-table thead th.sorted .pr-camp-arr { opacity:1; color:var(--pr-navy); }
.pr-camp-table thead th .pr-camp-grip { position:absolute; top:0; right:0; width:8px; height:100%; cursor:col-resize; }
.pr-camp-table thead th .pr-camp-grip:hover { background:var(--pr-blue); opacity:.25; }
.pr-camp-table thead th .pr-col-grip { display:inline-block; color:var(--pr-light); font-weight:bold; margin-right:5px; cursor:grab; letter-spacing:-1px; }
.pr-camp-table thead th:hover .pr-col-grip { color:var(--pr-navy); }
.pr-camp-table thead th.dragging { opacity:.4; }
.pr-camp-table thead th.drag-over { background:var(--pr-bg-tint); box-shadow:inset 3px 0 0 var(--pr-navy); }
.pr-camp-table tbody td { padding:8px; border-bottom:1px solid #f4f5f9; white-space:nowrap; color:var(--pr-ink); overflow:hidden; text-overflow:ellipsis; }
.pr-camp-table tbody td.num { text-align:right; }
.pr-camp-table tbody tr:last-child td { border-bottom:none; }
.pr-camp-table tbody td.nm { font-weight:600; color:var(--pr-navy); }
.pr-camp-table tbody td.derived { /* GN-7 3.1 — counts render plain, no green shading */ }
.pr-camp-table tbody td.muted { color:var(--pr-mid); }
.pr-camp-table tbody td.empty { color:#c2c6d4; font-style:italic; }
.pr-camp-empty-row td { text-align:center; color:var(--pr-light); font-style:italic; padding:18px 8px; }
#prFamTable tbody tr { cursor:pointer; }
#prFamTable tbody tr:hover { background:#fafbfe; }
#prFamTable tbody tr.active { background:var(--pr-bg-tint); }

/* ── Lifecycle status badges ────────────────────────────────── */
.pr-lc-badge { display:inline-block; font-size:10.5px; font-weight:700; padding:2px 9px; border-radius:20px; white-space:nowrap; }
.pr-lc-badge.imported   { background:#eceef3; color:var(--pr-mid); }
.pr-lc-badge.scheduled  { background:rgba(49,133,252,.12); color:var(--pr-blue); }
.pr-lc-badge.released   { background:rgba(46,125,79,.12); color:var(--pr-green); }
.pr-lc-badge.inprogress { background:rgba(201,123,42,.14); color:var(--pr-amber); }
.pr-lc-badge.done       { background:rgba(46,125,79,.20); color:#1f5e3a; }
.pr-lc-badge.archived   { background:#eceef3; color:var(--pr-light); }

/* ── Column-picker popover (shared by both tables) ──────────── */
.pr-cpop-wrap { position:relative; display:inline-flex; }
.pr-cpop {
  position:absolute; right:0; top:38px; z-index:50; display:none;
  background:#fff; border:1px solid var(--pr-border); border-radius:10px;
  box-shadow:0 12px 32px rgba(0,36,127,.18); padding:11px 13px 8px;
  min-width:190px; max-height:280px; overflow:auto;
}
.pr-cpop.open { display:block; }
.pr-cpop h5 { margin:0 0 8px; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--pr-navy); font-weight:700; }
.pr-cpop label { display:flex; align-items:center; gap:7px; padding:4px 2px; font-size:12px; cursor:pointer; color:var(--pr-ink); }
.pr-cpop input { accent-color:var(--pr-navy); }

/* ── Legend ─────────────────────────────────────────────────── */
.pr-camp-legend { display:flex; gap:18px; flex-wrap:wrap; align-items:center; margin-top:13px; font-size:11px; color:var(--pr-mid); }
.pr-camp-legend > span { display:inline-flex; align-items:center; gap:6px; }
/* GN-7 3.1 — legend swatches removed; .pr-camp-note kept below. */
.pr-camp-note { color:var(--pr-mid); line-height:1.5; }
.pr-camp-note b { color:var(--pr-navy); }

/* ════════════════════════════════════════════════════════════════════════
   GN-2 SLICE 2 — + New Campaign chooser, campaign edit/new drawer,
   per-row action menu, wave-table Actions cell.
   ════════════════════════════════════════════════════════════════════════ */

/* + New Campaign button + chooser (Campaigns-tab header) */
.pr-camp-top-right { margin-left:auto; display:flex; align-items:center; gap:8px; }
.pr-camp-new-wrap { position:relative; }
.pr-camp-new { font-size:12.5px; padding:7px 14px; }
.pr-camp-chooser { position:absolute; top:38px; right:0; width:290px; background:#fff;
  border:1px solid var(--pr-border); border-radius:12px;
  box-shadow:0 14px 36px rgba(0,36,127,.18); padding:7px; display:none; z-index:60; }
.pr-camp-chooser.open { display:block; }
.pr-cc-opt { display:flex; align-items:flex-start; gap:10px; width:100%; text-align:left;
  background:none; border:none; font-family:inherit; padding:10px 11px; border-radius:9px;
  cursor:pointer; color:var(--pr-ink); }
.pr-cc-opt:hover { background:var(--pr-bg-tint); }
.pr-cc-opt.disabled { opacity:.55; cursor:not-allowed; }
.pr-cc-opt.disabled:hover { background:none; }
.pr-cc-ic { flex-shrink:0; width:30px; height:30px; border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(0,36,127,.08); color:var(--pr-navy); }
.pr-cc-tx { display:flex; flex-direction:column; gap:2px; min-width:0; }
.pr-cc-tx .t { font-size:13px; font-weight:700; color:var(--pr-navy); }
.pr-cc-tx .d { font-size:11px; color:var(--pr-mid); line-height:1.4; }
.pr-cc-tx .d b { color:var(--pr-navy); }

/* Wave-table Actions cell + kebab + fixed header cell */
.pr-camp-fixed { text-align:center; }
.pr-camp-act { text-align:center; overflow:visible; }
.pr-camp-kebab { background:none; border:1px solid transparent; border-radius:7px;
  width:28px; height:26px; cursor:pointer; color:var(--pr-mid);
  display:inline-flex; align-items:center; justify-content:center; }
.pr-camp-kebab:hover { background:var(--pr-bg-tint); border-color:var(--pr-border); color:var(--pr-navy); }

/* Body-anchored per-row action menu */
.pr-camp-rowmenu { position:fixed; display:none; min-width:168px; background:#fff;
  border:1px solid var(--pr-border); border-radius:10px;
  box-shadow:0 12px 32px rgba(0,36,127,.18); padding:5px; z-index:1300; }
.pr-camp-rowmenu.open { display:block; }
.pr-crm-item { display:flex; align-items:center; padding:8px 11px; border-radius:7px;
  font-size:12.5px; color:var(--pr-ink); cursor:pointer; }
.pr-crm-item:hover { background:var(--pr-bg-tint); }
.pr-crm-item.green { color:var(--pr-green); font-weight:600; }
.pr-crm-item.del { color:var(--pr-red); }
.pr-crm-item.disabled { color:var(--pr-light); cursor:not-allowed; }
.pr-crm-item.disabled:hover { background:none; }
.pr-crm-div { height:1px; background:var(--pr-border); margin:5px 2px; }

/* ── Campaign drawer — reuses .pr-drawer slide-in base; .pr-cd-* content ── */
.pr-camp-drawer { width:640px; }
.pr-cd-head { background:var(--pr-navy); color:#fff; padding:14px 20px;
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-shrink:0; }
.pr-cd-titleblock { flex:1; min-width:0; }
.pr-cd-eyebrow { font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  opacity:.7; font-weight:700; }
.pr-cd-title { font-family:'Noto Serif',serif; font-size:19px; font-weight:700;
  line-height:1.2; margin:3px 0 0; }
.pr-cd-sub { font-size:11.5px; color:rgba(255,255,255,.8); margin-top:6px; line-height:1.4; }
.pr-cd-sub b { color:#fff; }
.pr-cd-nameedit { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
  border-radius:7px; color:#fff; font-family:inherit; font-size:16px; font-weight:700;
  padding:5px 9px; width:100%; margin-top:4px; }
.pr-cd-nameedit::placeholder { color:rgba(255,255,255,.5); }
.pr-cd-nameedit:focus { outline:none; border-color:rgba(255,255,255,.5); }
.pr-cd-headacts { display:flex; gap:7px; flex-shrink:0; }
.pr-cd-hbtn { background:rgba(255,255,255,.14); border:none; color:#fff; font-family:inherit;
  font-size:11.5px; font-weight:600; padding:6px 11px; border-radius:7px; cursor:pointer; }
.pr-cd-hbtn:hover { background:rgba(255,255,255,.26); }
.pr-cd-hbtn.del { background:rgba(179,64,64,.34); }
.pr-cd-hbtn.del:hover { background:rgba(179,64,64,.5); }
.pr-cd-hbtn.x { padding:6px 10px; font-size:15px; line-height:1; }

.pr-cd-body { flex:1; overflow-y:auto; }
.pr-cd-sect { padding:16px 20px; border-bottom:1px solid var(--pr-border); }
.pr-cd-sect:last-child { border-bottom:none; }
.pr-cd-secth { font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:var(--pr-navy); margin:0 0 12px; }
.pr-cd-secthsub { font-weight:500; color:var(--pr-light); text-transform:none; letter-spacing:0; margin-left:6px; }

/* lifecycle */
.pr-cd-lcrow { margin-bottom:10px; }
.pr-cd-lcrow .pr-lc-badge { font-size:12px; padding:4px 13px; }
.pr-cd-rail { display:flex; align-items:center; margin-top:12px; }
.pr-cd-step { flex:1; height:5px; background:#eceef3; border-radius:99px; margin:0 2px; }
.pr-cd-step.done { background:var(--pr-green); }
.pr-cd-step.current { background:var(--pr-blue); }
.pr-cd-raillabels { display:flex; margin-top:5px; font-size:9.5px; color:var(--pr-light);
  font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.pr-cd-raillabels span { flex:1; text-align:center; }
.pr-cd-raillabels span.current { color:var(--pr-blue); }
.pr-cd-raillabels span.done { color:var(--pr-green); }
.pr-cd-lcacts { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.pr-cd-lcbtn { font-family:inherit; font-size:12.5px; font-weight:600; border-radius:8px;
  padding:7px 13px; cursor:pointer; border:1px solid var(--pr-border); background:#fff; color:var(--pr-navy); }
.pr-cd-lcbtn:hover { background:var(--pr-bg-tint); }
.pr-cd-lcbtn.release { background:var(--pr-green); color:#fff; border-color:var(--pr-green); }
.pr-cd-lcbtn.release:hover { background:#256543; }

/* form grids + fields */
.pr-cd-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; }
.pr-cd-grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:12px 16px; }
.pr-cd-grid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:12px 16px; }
.pr-cd-field { display:flex; flex-direction:column; min-width:0; }
.pr-cd-field.full { grid-column:1 / -1; }
.pr-cd-field label { font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--pr-light); margin-bottom:4px; }
.pr-cd-field input[type="text"], .pr-cd-field input[type="date"],
.pr-cd-field input[type="number"], .pr-cd-field select {
  font-family:inherit; font-size:13px; color:var(--pr-ink); background:#fff;
  border:1px solid var(--pr-border); border-radius:8px; padding:8px 10px; width:100%; }
.pr-cd-field input:focus, .pr-cd-field select:focus {
  outline:none; border-color:var(--pr-blue); box-shadow:0 0 0 3px rgba(49,133,252,.13); }
.pr-cd-famnew { margin-top:7px; }
.pr-cd-ro { font-size:13px; font-weight:600; color:var(--pr-ink); padding:8px 0; }
.pr-cd-field.derived label { color:var(--pr-green); }
.pr-cd-field.derived .pr-cd-ro { color:var(--pr-green); font-weight:700; }
.pr-cd-hint { font-size:11px; color:var(--pr-light); margin-top:4px; line-height:1.4; }
.pr-cd-hint b { color:var(--pr-navy); }

/* status-aware Contact Week control */
.pr-cd-pill { font-size:9px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:2px 8px; border-radius:20px; margin-left:6px; vertical-align:middle; }
.pr-cd-pill.sched { background:rgba(49,133,252,.13); color:var(--pr-blue); }
.pr-cd-nudge { display:none; font-size:11.5px; color:var(--pr-amber);
  background:rgba(201,123,42,.08); border:1px solid rgba(201,123,42,.3);
  border-radius:8px; padding:9px 11px; margin-top:8px; line-height:1.5; }
.pr-cd-nudge.show { display:block; }
.pr-cd-link { background:none; border:none; color:var(--pr-navy); font-family:inherit;
  font-size:11.5px; font-weight:700; text-decoration:underline; cursor:pointer; padding:0; }
.pr-cd-cwact { display:flex; gap:8px; margin-top:10px; }
.pr-cd-go { background:var(--pr-navy); color:#fff; border:none; border-radius:8px;
  font-family:inherit; font-size:12px; font-weight:700; padding:7px 14px; cursor:pointer; }
.pr-cd-go:hover { background:var(--pr-navy-mid); }
.pr-cd-go:disabled { opacity:.4; cursor:not-allowed; }
.pr-cd-go.green { background:var(--pr-green); }
.pr-cd-go.green:hover { background:#256543; }
.pr-cd-ghost { background:#fff; color:var(--pr-navy); border:1px solid var(--pr-border);
  border-radius:8px; font-family:inherit; font-size:12px; font-weight:700; padding:7px 14px; cursor:pointer; }
.pr-cd-ghost:hover { background:var(--pr-bg-tint); }

/* Live Counts leads link */
.pr-cd-leadslink { display:flex; align-items:center; justify-content:space-between; width:100%;
  text-align:left; background:var(--pr-bg-tint); border:none; border-radius:9px;
  padding:10px 13px; margin-top:12px; cursor:pointer; font-family:inherit; }
.pr-cd-leadslink:hover { background:#e1e6ef; }
.pr-cd-leadslink .lc { display:block; font-size:13.5px; font-weight:700; color:var(--pr-navy); }
.pr-cd-leadslink .lm { display:block; font-size:11px; color:var(--pr-mid); margin-top:1px; }
.pr-cd-leadslink .arr { color:var(--pr-blue); font-size:18px; }

/* footer */
.pr-cd-foot { padding:13px 20px; background:#f6f7fb; border-top:1px solid var(--pr-border);
  display:flex; align-items:center; gap:9px; flex-shrink:0; }
.pr-cd-footleft { margin-right:auto; font-size:11px; color:var(--pr-light); }
.pr-cd-btn { font-family:inherit; font-size:13px; font-weight:700; border-radius:9px;
  padding:8px 16px; cursor:pointer; }
.pr-cd-btn.primary { background:var(--pr-navy); color:#fff; border:none; }
.pr-cd-btn.primary:hover { background:var(--pr-navy-mid); }
.pr-cd-btn.primary:disabled { opacity:.5; cursor:not-allowed; }
.pr-cd-btn.ghost { background:#fff; color:var(--pr-navy); border:1px solid var(--pr-border); }
.pr-cd-btn.ghost:hover { background:var(--pr-bg-tint); }

@media (max-width:560px) {
  .pr-cd-grid2, .pr-cd-grid3, .pr-cd-grid4 { grid-template-columns:1fr 1fr; }
}

/* ── GN-10 — in-drawer "Finny Link" section ─────────────────────── */
.pr-cdfl-card { border:1px solid var(--pr-border); border-radius:11px; padding:14px 15px;
  display:flex; align-items:center; gap:13px; }
.pr-cdfl-card.unlinked { background:rgba(201,123,42,.06); border-color:rgba(201,123,42,.32); }
.pr-cdfl-card.linked   { background:rgba(46,125,79,.06); border-color:rgba(46,125,79,.32); }
.pr-cdfl-badge { width:40px; height:40px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; }
.pr-cdfl-card.unlinked .pr-cdfl-badge { background:rgba(201,123,42,.16); color:#8a5c12; }
.pr-cdfl-card.linked   .pr-cdfl-badge { background:rgba(46,125,79,.16); color:var(--pr-green); }
.pr-cdfl-badge svg { width:21px; height:21px; }
.pr-cdfl-main { flex:1; min-width:0; }
.pr-cdfl-state { font-size:13px; font-weight:700; display:flex; align-items:center; gap:8px; }
.pr-cdfl-card.unlinked .pr-cdfl-state { color:var(--pr-amber); }
.pr-cdfl-card.linked   .pr-cdfl-state { color:var(--pr-green); }
.pr-cdfl-desc { font-size:11.5px; color:var(--pr-mid); margin-top:3px; line-height:1.45; }
.pr-cdfl-id { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:11px; color:var(--pr-mid);
  background:#fff; border:1px solid var(--pr-border); border-radius:6px; padding:1px 6px; }
.pr-cdfl-acts { display:flex; gap:7px; flex-shrink:0; }
.pr-cdfl-btn { font-family:inherit; font-size:12px; font-weight:700; border-radius:8px;
  padding:7px 13px; cursor:pointer; white-space:nowrap; }
.pr-cdfl-btn.navy   { background:var(--pr-navy); color:#fff; border:none; }
.pr-cdfl-btn.navy:hover { background:var(--pr-navy-mid); }
.pr-cdfl-btn.ghost  { background:#fff; color:var(--pr-navy); border:1px solid var(--pr-border); }
.pr-cdfl-btn.ghost:hover { background:var(--pr-bg-tint); }
.pr-cdfl-btn.danger { background:#fff; color:var(--pr-red); border:1px solid rgba(179,64,64,.4); }
.pr-cdfl-btn.danger:hover { background:rgba(179,64,64,.07); }

.pr-cdfl-picker { margin-top:13px; border:1px solid var(--pr-border); border-radius:11px;
  background:var(--pr-bg-tint); padding:13px; }
.pr-cdfl-pickhead { display:flex; align-items:center; gap:10px; margin-bottom:11px; flex-wrap:wrap; }
.pr-cdfl-pickhead .pr-fnpick-search { flex:1; min-width:160px; }
.pr-cdfl-pickfoot { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:11px; }
.pr-cdfl-pickfoot .hint { font-size:11px; color:var(--pr-light); }
.pr-fnpick-suggest { font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  color:var(--pr-green); background:rgba(46,125,79,.12); border-radius:999px; padding:2px 7px; white-space:nowrap; }
.pr-manual { display:flex; gap:7px; align-items:center; margin-top:9px; }
.pr-manual input { flex:1; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12px;
  border:1px solid var(--pr-border); border-radius:7px; padding:7px 9px; background:#fff; color:var(--pr-ink); }
.pr-manual input:focus { outline:none; border-color:var(--pr-blue); box-shadow:0 0 0 3px rgba(49,133,252,.13); }

/* ════════════════════════════════════════════════════════════════
   GN-3a — Finny connection (Settings › Finny panel + Campaigns chip)
   ════════════════════════════════════════════════════════════════ */

/* Settings rail status dot (amber/red when token expiring/expired) */
.pr-rail-dot { margin-left:auto; width:7px; height:7px; border-radius:50%; background:var(--pr-amber); }

/* ── Finny connection card ──────────────────────────────────── */
.pr-fcard { border:1px solid var(--pr-border); border-radius:12px; padding:0; overflow:hidden; background:#fff; }
.pr-fcard-top { display:flex; align-items:center; gap:14px; padding:16px 18px; }
.pr-fbadge { width:44px; height:44px; border-radius:11px; background:rgba(219,149,35,.14); color:#8a5c12;
  display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pr-fbadge svg { width:22px; height:22px; }
.pr-fstat-main { flex:1; min-width:0; }
.pr-fstat-row { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.pr-fchip { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700;
  padding:4px 11px; border-radius:20px; background:var(--pr-bg-tint); color:var(--pr-mid); }
.pr-fchip .pr-fdot { width:7px; height:7px; border-radius:50%; background:var(--pr-light); }
.pr-fchip.ok   { background:rgba(46,125,79,.13);  color:var(--pr-green); } .pr-fchip.ok   .pr-fdot { background:var(--pr-green); }
.pr-fchip.warn { background:rgba(201,123,42,.16); color:var(--pr-amber); } .pr-fchip.warn .pr-fdot { background:var(--pr-amber); }
.pr-fchip.bad  { background:rgba(179,64,64,.14);  color:var(--pr-red);   } .pr-fchip.bad  .pr-fdot { background:var(--pr-red); }
.pr-fexp { font-size:12px; color:var(--pr-mid); }
.pr-fexp b { color:var(--pr-navy); }
.pr-fmeta { font-size:11px; color:var(--pr-light); margin-top:4px; }
.pr-fcard-actions { display:flex; gap:8px; flex-shrink:0; }
.pr-fcard-actions .pr-btn-navy svg, .pr-fcard-actions .pr-btn-ghost svg { width:13px; height:13px; vertical-align:-2px; margin-right:5px; }

.pr-ftest-result { font-size:11.5px; font-weight:600; padding:0 18px 14px; display:none; }
.pr-ftest-result.show { display:block; }
.pr-ftest-result.pass { color:var(--pr-green); }
.pr-ftest-result.fail { color:var(--pr-red); }

.pr-fstats { display:flex; gap:0; border-top:1px solid var(--pr-border); }
.pr-fstats .pr-fs { flex:1; padding:11px 18px; border-right:1px solid #f0f2f7; }
.pr-fstats .pr-fs:last-child { border-right:none; }
.pr-fstats .pr-fs .v { font-size:14px; font-weight:700; color:var(--pr-navy); }
.pr-fstats .pr-fs .k { font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--pr-light); margin-top:2px; }

/* ── Reconnect / pairing-code flow ──────────────────────────── */
.pr-frecon { border-top:1px solid var(--pr-border); background:#fafbfe; padding:18px; display:none; }
.pr-frecon.show { display:block; }
.pr-frecon-h { font-size:13px; font-weight:700; color:var(--pr-navy); margin-bottom:3px; }
.pr-frecon-sub { font-size:11.5px; color:var(--pr-mid); margin-bottom:14px; line-height:1.5; }
.pr-fsteps { counter-reset:prfs; margin:0 0 14px; }
.pr-fstep { display:flex; gap:11px; align-items:flex-start; margin-bottom:11px; }
.pr-fstep .num { counter-increment:prfs; width:22px; height:22px; border-radius:50%; background:var(--pr-navy);
  color:#fff; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pr-fstep .num::before { content:counter(prfs); }
.pr-fstep .txt { font-size:12.5px; color:var(--pr-ink); padding-top:2px; line-height:1.5; }
.pr-fstep .txt b { color:var(--pr-navy); }
.pr-bm-pill { display:inline-flex; align-items:center; gap:5px; background:#fff; border:1px solid var(--pr-border);
  border-radius:6px; padding:2px 8px; font-weight:600; color:var(--pr-navy); font-size:11.5px; }
.pr-fcode-wrap { margin:6px 0 0; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pr-fcode { font-family:'SFMono-Regular',Consolas,monospace; font-size:24px; font-weight:700; letter-spacing:.12em;
  color:var(--pr-navy); background:#fff; border:2px dashed rgba(0,36,127,.25); border-radius:10px; padding:9px 18px; }
.pr-fcopy { display:inline-flex; align-items:center; gap:6px; background:#fff; color:var(--pr-navy);
  border:1px solid var(--pr-border); border-radius:8px; font-family:inherit; font-size:11.5px; font-weight:700;
  padding:7px 12px; cursor:pointer; }
.pr-fcopy:hover { background:var(--pr-bg-tint); }
.pr-fcopy svg { width:13px; height:13px; }
.pr-fcopy.copied { background:rgba(46,125,79,.12); color:var(--pr-green); border-color:rgba(46,125,79,.3); }
.pr-fcode-exp { font-size:11px; color:var(--pr-light); }
.pr-fcode-exp b { color:var(--pr-amber); }
.pr-fwaiting { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--pr-mid); margin-top:6px; }
.pr-fwaiting .pr-spin { width:16px; height:16px; border:2px solid rgba(0,36,127,.15); border-top-color:var(--pr-navy);
  border-radius:50%; animation:pr-fspin .7s linear infinite; }
@keyframes pr-fspin { to { transform:rotate(360deg); } }
.pr-frecon-foot { display:flex; gap:8px; margin-top:6px; }

/* one-time install affordance */
.pr-fsetup { background:#fff; border:1px solid var(--pr-border); border-radius:10px; padding:13px 14px; margin-bottom:14px; }
.pr-fsetup-h { font-size:11.5px; font-weight:700; color:var(--pr-navy); display:flex; align-items:center; gap:7px; margin-bottom:4px; }
.pr-fsetup-h .once { font-size:9.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#8a5c12;
  background:rgba(219,149,35,.16); border-radius:5px; padding:2px 7px; }
.pr-fsetup-sub { font-size:11px; color:var(--pr-mid); line-height:1.5; margin-bottom:10px; }
.pr-fsetup-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pr-bm-drag { display:inline-flex; align-items:center; gap:7px; background:linear-gradient(180deg,#fff,#f3f5fa);
  border:1.5px solid var(--pr-navy); border-radius:8px; padding:8px 13px; font-weight:700; color:var(--pr-navy);
  font-size:12px; cursor:grab; user-select:none; text-decoration:none; }
.pr-bm-drag svg { width:14px; height:14px; }
.pr-bm-hint { font-size:11px; color:var(--pr-light); }
.pr-open-finny { display:inline-flex; align-items:center; gap:6px; background:#fff; color:var(--pr-navy);
  border:1px solid var(--pr-border); border-radius:8px; font-family:inherit; font-size:11.5px; font-weight:700;
  padding:7px 12px; cursor:pointer; text-decoration:none; }
.pr-open-finny:hover { background:var(--pr-bg-tint); }
.pr-open-finny svg { width:13px; height:13px; }
.pr-step-inline-btn { margin-top:7px; }

.pr-fnote { font-size:11px; color:var(--pr-mid); background:#f6f7fb; border-left:3px solid var(--pr-gold);
  border-radius:0 8px 8px 0; padding:10px 13px; margin-top:14px; line-height:1.55; }
.pr-fnote b { color:var(--pr-navy); }

/* ── Campaigns-tab passive status chip ──────────────────────── */
.pr-finny-chip { display:inline-flex; align-items:center; gap:6px; font-family:inherit; font-size:11px; font-weight:700;
  padding:5px 11px; border-radius:20px; border:1px solid transparent; cursor:pointer; background:var(--pr-bg-tint);
  color:var(--pr-mid); margin-right:10px; }
.pr-finny-chip .pr-finny-cdot { width:7px; height:7px; border-radius:50%; background:var(--pr-light); }
.pr-finny-chip.ok   { background:rgba(46,125,79,.12);  color:var(--pr-green); border-color:rgba(46,125,79,.22); }
.pr-finny-chip.ok   .pr-finny-cdot { background:var(--pr-green); }
.pr-finny-chip.warn { background:rgba(201,123,42,.14); color:var(--pr-amber); border-color:rgba(201,123,42,.28); }
.pr-finny-chip.warn .pr-finny-cdot { background:var(--pr-amber); }
.pr-finny-chip.bad  { background:rgba(179,64,64,.12);  color:var(--pr-red);   border-color:rgba(179,64,64,.28); }
.pr-finny-chip.bad  .pr-finny-cdot { background:var(--pr-red); }
.pr-finny-chip:hover { filter:brightness(.97); }

/* ═══ GN-3b — Import Step 1: Finny campaign picker ═══════════════════════ */
.pr-fnpick { display:flex; flex-direction:column; gap:10px; }
.pr-fnpick-bar { display:flex; align-items:center; justify-content:space-between;
  gap:12px; flex-wrap:wrap; }
.pr-fnpick-tabs { display:inline-flex; gap:2px; background:var(--pr-bg-tint);
  border:1px solid var(--pr-border); border-radius:8px; padding:3px; }
.pr-fnpick-tab { border:none; background:none; padding:5px 12px; border-radius:6px;
  font-size:12px; font-weight:600; color:var(--pr-mid); cursor:pointer; }
.pr-fnpick-tab:hover { color:var(--pr-navy); }
.pr-fnpick-tab.active { background:var(--pr-navy); color:#fff; }
.pr-fnpick-search { display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--pr-border); border-radius:8px; padding:5px 10px;
  background:#fff; min-width:220px; flex:1; max-width:320px; }
.pr-fnpick-search input { border:none; outline:none; font-size:13px; width:100%;
  background:transparent; color:var(--pr-ink); }
.pr-fnpick-list { display:flex; flex-direction:column; gap:7px; max-height:330px;
  min-height:120px; overflow-y:auto; padding-right:4px; }
.pr-fnpick-row { display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:10px 12px; border:1px solid var(--pr-border);
  border-radius:9px; background:#fff; }
.pr-fnpick-row:hover { border-color:rgba(0,36,127,0.22); background:#fbfcfe; }
.pr-fnpick-main { min-width:0; }
.pr-fnpick-name { font-size:13px; font-weight:700; color:var(--pr-navy);
  display:flex; align-items:center; gap:7px; }
.pr-fnpick-meta { font-size:11.5px; color:var(--pr-light); margin-top:2px; }
.pr-fnpick-import { flex:none; padding:6px 16px; font-size:12px; }
.pr-fnpick-pill { display:inline-block; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:.03em; padding:2px 7px;
  border-radius:999px; color:#fff; }
.pr-fnps-live     { background:var(--pr-blue); }
.pr-fnps-done     { background:var(--pr-green); }
.pr-fnps-term     { background:var(--pr-red); }
.pr-fnps-paused   { background:var(--pr-gold); }
.pr-fnps-imported { background:var(--pr-light); }
.pr-fnpick-msg { padding:26px 16px; text-align:center; color:var(--pr-mid);
  font-size:13px; }
.pr-fnpick-sub { font-size:11.5px; color:var(--pr-light); margin-top:5px; }
.pr-fnpick-err { color:var(--pr-red); }
.pr-fnpick-reconnect { display:flex; flex-direction:column; align-items:center;
  gap:12px; }
.pr-fnpick-foot { display:flex; justify-content:center; padding-top:2px; }
.pr-link-btn { border:none; background:none; color:var(--pr-blue); cursor:pointer;
  font-size:12px; font-weight:600; padding:4px 6px; }
.pr-link-btn:hover { text-decoration:underline; }
.pr-imp-file-fallback .pr-fnpick-foot { margin-top:10px; }

/* ═══ GN-3b — Import Step 3: Done-screen Contact Week scheduler ══════════ */
.pr-imp-done-status { text-align:center; font-size:12.5px; color:var(--pr-mid);
  margin:4px 0 14px; }
.pr-imp-sched { border:1px solid var(--pr-border); border-radius:11px;
  background:var(--pr-bg-tint); padding:16px; margin:0 auto 14px; max-width:560px; }
.pr-imp-sched-row { display:flex; align-items:flex-start; gap:16px; }
.pr-imp-sched-primary { flex:1; }
.pr-imp-sched-secondary { flex:none; display:flex; flex-direction:column; gap:4px;
  align-items:flex-start; }
.pr-imp-sched-or { align-self:center; font-size:11px; font-weight:700;
  color:var(--pr-light); text-transform:uppercase; padding-top:4px; }
.pr-imp-sched-lbl { display:block; font-size:12px; font-weight:700;
  color:var(--pr-navy); margin-bottom:6px; }
.pr-imp-sched-ctl { display:flex; gap:8px; align-items:center; }
.pr-imp-sched-ctl input[type=date] { border:1px solid var(--pr-border);
  border-radius:8px; padding:6px 10px; font-size:13px; color:var(--pr-ink);
  background:#fff; }
.pr-imp-sched-hint { font-size:11px; color:var(--pr-light); margin-top:5px; }
.pr-imp-sched-done { text-align:center; font-size:13px; font-weight:600;
  color:var(--pr-green); padding:8px 4px; }
@media (max-width:560px) {
  .pr-imp-sched-row { flex-direction:column; gap:10px; }
  .pr-imp-sched-or { align-self:flex-start; }
}


/* ═══ GN-3c — Last Refreshed column cell ════════════════════════════════ */
.pr-camp-stamp { color:var(--pr-mid); font-size:11.5px; white-space:nowrap; }


/* ═══ GN-fix2 — Finny paste-token field (reconnect panel) ═══════════════ */
.pr-ftoken-wrap { margin-top:8px; }
.pr-ftoken { width:100%; box-sizing:border-box; resize:vertical; min-height:58px;
  border:1px solid var(--pr-border); border-radius:8px; padding:8px 10px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:11.5px;
  color:var(--pr-ink); background:#fff; line-height:1.4; word-break:break-all; }
.pr-ftoken:focus { outline:none; border-color:rgba(0,36,127,0.4); box-shadow:0 0 0 2px rgba(0,36,127,0.10); }
.pr-ftoken-row { display:flex; align-items:center; gap:10px; margin-top:8px; }
.pr-ftoken-msg { font-size:11.5px; font-weight:600; }
.pr-ftoken-msg.ok  { color:var(--pr-green); }
.pr-ftoken-msg.err { color:var(--pr-red); }

/* ═══ GN-3e-fix1 — enriched drawer Campaigns card (mockup v4) ════════════
   All scoped under .pr-camp-row so the short class names (.e, .body, .step,
   .u, .d, .st, .mode, .when …) cannot collide with anything else globally.
   .pr-camp-row / -top / -name / .pr-primary-tag / .pr-chip are styled in the
   base components stylesheet and are intentionally NOT redefined here. */

/* Call script — compact, pushed to the right of the header row */
.pr-camp-row .pr-script-open.hdr { margin-left:auto; padding:4px 9px; font-size:11px;
  color:var(--pr-blue); font-weight:600; cursor:pointer; display:inline-flex; align-items:center;
  gap:6px; text-decoration:none; border:1px solid rgba(49,133,252,.3); border-radius:7px;
  background:none; font-family:inherit; line-height:1.2; }
.pr-camp-row .pr-script-open.hdr:hover { background:rgba(49,133,252,.08); }
.pr-camp-row .pr-script-open.hdr.disabled { color:var(--pr-light); border-color:var(--pr-border);
  cursor:default; }
.pr-camp-row .pr-script-open.hdr svg { width:12px; height:12px; }

/* Status line: status pill · step · priority · added */
.pr-camp-row .cstat { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-top:10px; }
.pr-camp-row .cstat .dot { width:3px; height:3px; border-radius:50%; background:var(--pr-light); }
.pr-camp-row .cstat .step { font-size:12px; color:var(--pr-mid); }
.pr-camp-row .cstat .addmeta { font-size:10.5px; color:var(--pr-light); }
.pr-camp-row .cstatus { font-size:10px; font-weight:700; padding:2px 9px; border-radius:20px; letter-spacing:.02em; }
.pr-camp-row .cstatus.not_started { background:#eceef3; color:#6b7280; }
.pr-camp-row .cstatus.in_progress { background:rgba(49,133,252,.12); color:#1c5fb8; }
.pr-camp-row .cstatus.terminated  { background:rgba(179,64,64,.10); color:var(--pr-red); }
.pr-camp-row .cstatus.completed   { background:rgba(46,125,79,.12); color:var(--pr-green); }
.pr-camp-row .prio { font-size:10px; font-weight:700; padding:2px 8px; border-radius:20px; letter-spacing:.02em; }
.pr-camp-row .prio.very_hot { background:rgba(179,64,64,.12); color:var(--pr-red); }
.pr-camp-row .prio.hot      { background:rgba(201,123,42,.16); color:#c97b2a; }
.pr-camp-row .prio.warm     { background:rgba(219,149,35,.16); color:#8a5c12; }
.pr-camp-row .prio.cold     { background:#eceef3; color:#6b7280; }

/* Progress bar + X / Y label */
.pr-camp-row .prog { display:flex; align-items:center; gap:9px; margin-top:10px; }
.pr-camp-row .prog .bar { flex:1; display:flex; gap:3px; }
.pr-camp-row .prog .seg { flex:1; height:6px; border-radius:3px; background:#e6e8f0; }
.pr-camp-row .prog .seg.on { background:var(--pr-gold); }
.pr-camp-row .prog .seg.next { background:repeating-linear-gradient(45deg,#e6e8f0,#e6e8f0 3px,#d7dae6 3px,#d7dae6 6px); }
.pr-camp-row .prog .lbl { font-size:10.5px; font-weight:700; color:var(--pr-mid); white-space:nowrap; }

/* Engagement strip */
.pr-camp-row .eng { display:flex; gap:6px; flex-wrap:wrap; margin-top:11px; }
.pr-camp-row .e { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600;
  border:1px solid var(--pr-border); border-radius:7px; padding:4px 9px; color:var(--pr-mid); background:#fff; }
.pr-camp-row .e svg { width:12px; height:12px; }
.pr-camp-row .e.hot { color:var(--pr-navy); border-color:rgba(0,36,127,.18); }
.pr-camp-row .e b { color:var(--pr-navy); }
.pr-camp-row .e.li-yes { background:rgba(46,125,79,.10); border-color:rgba(46,125,79,.3); color:var(--pr-green); }
.pr-camp-row .e.li-yes b { color:var(--pr-green); }
.pr-camp-row .e.li-no { color:var(--pr-light); }
.pr-camp-row .e .sub { font-weight:600; opacity:.8; font-size:9.5px; text-transform:uppercase; letter-spacing:.03em; margin-left:1px; }

/* Freshness caption */
.pr-camp-row .freshness { display:flex; align-items:center; gap:5px; font-size:10px; font-weight:600; color:var(--pr-light); margin-top:10px; }
.pr-camp-row .freshness svg { width:11px; height:11px; }

/* Sequence toggle + list */
.pr-camp-row .seqtog { margin-top:11px; font-size:11px; font-weight:700; color:var(--pr-mid);
  background:none; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:6px;
  padding:2px 0; font-family:inherit; }
.pr-camp-row .seqtog .cv { transition:transform .15s; display:inline-block; }
.pr-camp-row .seqtog.open .cv { transform:rotate(90deg); }
.pr-camp-row .seq { margin-top:9px; padding-top:9px; border-top:1px dashed var(--pr-border); display:none; }
.pr-camp-row .seq.show { display:block; }
.pr-camp-row .step { display:flex; align-items:flex-start; gap:9px; padding:5px 0; }
.pr-camp-row .step .ix { width:18px; height:18px; border-radius:50%; flex-shrink:0; display:flex;
  align-items:center; justify-content:center; font-size:9.5px; font-weight:700; background:#eceef3;
  color:var(--pr-mid); margin-top:1px; }
.pr-camp-row .step.done .ix { background:rgba(46,125,79,.15); color:var(--pr-green); }
.pr-camp-row .step.sched .ix { background:rgba(49,133,252,.12); color:var(--pr-blue); }
.pr-camp-row .step .mode { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--pr-ink); }
.pr-camp-row .step .mode svg { width:13px; height:13px; }
.pr-camp-row .step .mode .li { color:#1c5fb8; display:inline-flex; }
.pr-camp-row .step .mode .em { color:var(--pr-mid); display:inline-flex; }
.pr-camp-row .step .body { flex:1; min-width:0; }
.pr-camp-row .step .when { font-size:10.5px; color:var(--pr-light); margin-top:1px; display:flex;
  align-items:center; gap:7px; flex-wrap:wrap; }
.pr-camp-row .step .when .st { font-weight:700; }
.pr-camp-row .step.done .when .st { color:var(--pr-green); }
.pr-camp-row .step.sched .when .st { color:var(--pr-blue); }
.pr-camp-row .tagx { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:1px 6px; border-radius:9px; }
.pr-camp-row .tagx.op { background:rgba(0,36,127,.08); color:var(--pr-navy); }
.pr-camp-row .tagx.cl { background:rgba(49,133,252,.14); color:#1c5fb8; }
.pr-camp-row .tagx.rp { background:rgba(46,125,79,.14); color:var(--pr-green); }

/* Clicked link inside the step */
.pr-camp-row .clink-sm { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--pr-blue);
  text-decoration:none; margin-top:4px; padding:3px 8px; border:1px solid rgba(49,133,252,.22);
  border-radius:6px; background:rgba(49,133,252,.04); }
.pr-camp-row .clink-sm:hover { background:rgba(49,133,252,.09); }
.pr-camp-row .clink-sm svg { width:11px; height:11px; flex-shrink:0; }
.pr-camp-row .clink-sm .u { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pr-camp-row .clink-sm .d { margin-left:auto; font-size:9.5px; color:var(--pr-light); font-weight:600; white-space:nowrap; flex-shrink:0; }
.pr-camp-row .clink-sm.mail { color:var(--pr-mid); border-color:var(--pr-border); background:#fafbfe; }

/* ═══ GN-5 — Lead Stage control in the drawer header (mockup v3) ═════════
   The Stage <select> sits in the navy header's right column, under the
   Delete/Reassign/X buttons, rendered AS the colored pill (no separate
   badge). Colors reuse the lead-stage palette vars. */
.pr-dh-stagerow { display:flex; align-items:center; gap:8px; }
.pr-dh-stage-lbl { font-size:9.5px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:rgba(255,255,255,.7); }
.pr-dh-stage { font-family:inherit; font-size:12.5px; font-weight:700; color:#fff;
  border:none; border-radius:20px; padding:6px 30px 6px 14px; cursor:pointer;
  -webkit-appearance:none; appearance:none; background-color:var(--pr-ls-lead);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 11px center; }
.pr-dh-stage:focus { outline:2px solid rgba(255,255,255,.5); outline-offset:1px; }
.pr-dh-stage.s-lead     { background-color:var(--pr-ls-lead); }
.pr-dh-stage.s-prospect { background-color:var(--pr-ls-prospect); }
.pr-dh-stage.s-client   { background-color:var(--pr-ls-client); }
.pr-dh-stage.s-closed   { background-color:var(--pr-ls-closed); }
/* the soft-link nudge, now a thin body-level band just under the header */
.pr-stage-nudge-wrap { margin:0 0 4px; }
.pr-stage-nudge-wrap .pr-stage-nudge { margin:10px 16px 0; }

/* ═══ GN-4/item-2 — Campaigns-tab table min-heights ═════════════════════
   The two scroll containers had max-height only, so a sparse table
   collapsed. Add a min so they hold shape (mockup specifies max only;
   these mins are a UX add: ~120px families / ~200px launched). */
.pr-fam-scroll  { min-height:120px; }
.pr-wave-scroll { min-height:200px; }

/* ═══ GN-6 — import Assignment "Edit" affordance ════════════════════════ */
.pr-imp-assign-edit { margin-left:10px; font-size:11px; font-weight:700; color:var(--pr-blue);
  background:none; border:1px solid rgba(49,133,252,.3); border-radius:7px; padding:3px 10px;
  cursor:pointer; font-family:inherit; }
.pr-imp-assign-edit:hover { background:rgba(49,133,252,.08); }
.pr-imp-asg-in { width:64px; font-family:inherit; font-size:12px; padding:3px 6px;
  border:1px solid var(--pr-border); border-radius:6px; text-align:right; }
.pr-imp-asg-in:focus { outline:none; border-color:var(--pr-blue); box-shadow:0 0 0 2px rgba(49,133,252,.12); }
.pr-imp-asg-unrow td { color:var(--pr-mid); font-style:italic; }
.pr-imp-asg-unrow.pr-imp-asg-over .pr-imp-asg-un strong { color:var(--pr-red); }
.pr-imp-asg-overmsg { color:var(--pr-red); font-weight:700; }

/* ═══ GN-7 — Campaigns / import changes ═════════════════════════════════════ */

/* 3.3 — pinned Campaign/Wave (left) + Actions (right) through horizontal scroll */
.pr-camp-table td.pr-camp-pinl, .pr-camp-table th.pr-camp-pinl { position:sticky; left:0; z-index:3; }
.pr-camp-table td.pr-camp-pinr, .pr-camp-table th.pr-camp-pinr { position:sticky; right:0; z-index:3; }
.pr-camp-table tbody td.pr-camp-pinl, .pr-camp-table tbody td.pr-camp-pinr { background:#fff; }
.pr-camp-table thead th.pr-camp-pinl, .pr-camp-table thead th.pr-camp-pinr { z-index:5; background:#f6f7fb; }
.pr-camp-table td.pr-camp-pinl { box-shadow:6px 0 8px -6px rgba(0,36,127,.16); }
.pr-camp-table th.pr-camp-pinl { box-shadow:6px 0 8px -6px rgba(0,36,127,.22); }
.pr-camp-table td.pr-camp-pinr { box-shadow:-6px 0 8px -6px rgba(0,36,127,.16); }
.pr-camp-table th.pr-camp-pinr { box-shadow:-6px 0 8px -6px rgba(0,36,127,.22); }
/* keep the selected-row tint visible on the pinned columns */
.pr-camp-table tbody tr.active td.pr-camp-pinl,
.pr-camp-table tbody tr.active td.pr-camp-pinr { background:var(--pr-bg-tint); }

/* 1 — Hide-already-tracked toggle + Tracked badge + hidden-count note */
.pr-hidetracked { display:inline-flex; align-items:center; gap:7px; font-size:12px;
  font-weight:600; color:var(--pr-navy); cursor:pointer; white-space:nowrap; user-select:none; }
.pr-hidetracked input { accent-color:var(--pr-navy); cursor:pointer; margin:0; }
.pr-fnpick-tracked { display:inline-flex; align-items:center; gap:4px; font-size:9.5px;
  font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:2px 7px;
  border-radius:999px; background:rgba(46,125,79,.13); color:var(--pr-green);
  border:1px solid rgba(46,125,79,.3); white-space:nowrap; }
.pr-fnpick-hiddennote { font-size:11px; color:var(--pr-light); padding:6px 2px 2px; }

/* 2 — Review new-campaign detail grid */
.pr-imp-cnew-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; width:100%; }
.pr-imp-cnew-grid .pr-mf-field.full { grid-column:1 / -1; }
.pr-imp-famnew { margin-top:7px; }
.pr-imp-prefill { font-size:10px; color:var(--pr-green); font-weight:600;
  text-transform:none; letter-spacing:0; }

/* 3.2 — family rename merge hint */
.pr-fam-mergehint { margin-top:8px; font-size:11px; font-weight:600;
  color:var(--pr-amber); line-height:1.45; }

/* ── GN-8 — Finny compliance: DNC + TCPA-litigator ──────────────────────────
   Standing compliance badges (NOT the cream Accept/Dismiss suggestion flag).
   DNC = quiet red outline pill; litigator = louder solid block with an
   always-visible explanation. Drawer Lead Detail + import-review warnings. */
.pr-compliance { display:flex; flex-direction:column; gap:8px; margin-bottom:13px; }

.pr-dnc-badge { display:inline-flex; align-items:center; gap:6px; align-self:flex-start;
  background:rgba(179,64,64,.08); border:1px solid var(--pr-red); color:var(--pr-red);
  font-size:11.5px; font-weight:700; padding:4px 10px 4px 8px; border-radius:8px; }
.pr-dnc-badge svg { display:block; flex-shrink:0; }

.pr-lit-block { background:linear-gradient(180deg,#fbecec,#f7e0e0);
  border:1.5px solid var(--pr-red); border-left:5px solid var(--pr-red);
  border-radius:9px; padding:10px 12px; box-shadow:0 2px 8px rgba(179,64,64,.14); }
.pr-lit-head { display:flex; align-items:center; gap:8px; }
.pr-lit-icon { width:19px; height:19px; flex-shrink:0; color:var(--pr-red); display:block; }
.pr-lit-label { font-size:12px; font-weight:800; letter-spacing:.05em;
  text-transform:uppercase; color:#7a1f1f; }
.pr-lit-explain { font-size:11.5px; line-height:1.5; color:#5e2222; margin-top:5px; }
.pr-lit-explain b { color:#7a1f1f; }

/* per-number tag rendered inline on the Phone value in Lead Detail */
.pr-phone-dnc { display:inline-flex; align-items:center; margin-left:7px;
  font-size:10px; font-weight:700; letter-spacing:.02em; color:var(--pr-red);
  background:rgba(179,64,64,.08); border:1px solid rgba(179,64,64,.45);
  padding:1px 6px; border-radius:11px; vertical-align:middle; }

/* import-review compliance block — collapsible header (default collapsed) */
.pr-imp-comp-h { display:flex; align-items:center; gap:6px; cursor:pointer;
  user-select:none; margin-bottom:0; }
.pr-imp-comp-chev { flex-shrink:0; transition:transform .15s ease; }
.pr-imp-comp-h.open .pr-imp-comp-chev { transform:rotate(90deg); }

/* import-review compliance block — skip-DNC toggle (GO-4) */
.pr-imp-comp-skip { display:flex; align-items:center; gap:8px; margin-top:10px;
  font-size:12.5px; font-weight:700; color:var(--pr-red); cursor:pointer; user-select:none; }
.pr-imp-comp-skip input { accent-color:var(--pr-red); cursor:pointer; margin:0; }
.pr-imp-comp-skip-note { font-size:11px; color:var(--pr-light); line-height:1.45;
  margin-top:4px; padding-left:24px; }

/* import-review compliance block — warning rows, nothing blocks */
.pr-imp-compliance .pr-imp-warn { display:flex; align-items:flex-start; gap:8px;
  margin-top:8px; padding:8px 11px; border-radius:8px; font-size:12px; line-height:1.45; }
.pr-imp-warn svg { flex-shrink:0; margin-top:1px; }
.pr-imp-warn b { font-weight:700; }
.pr-imp-warn.dnc { background:rgba(201,123,42,.09); border:1px solid rgba(201,123,42,.5);
  border-left:4px solid var(--pr-amber); color:#8a541b; }
.pr-imp-warn.lit { background:#fbecec; border:1px solid var(--pr-red);
  border-left:4px solid var(--pr-red); color:#5e2222; }

/* ══════════════════════════════════════════════════════════════════════════
   GP — Send to Salesforce
   Drawer-header button + body-portaled modal (match panel + review screen).
   Ported from mockup--send-to-salesforce v8; namespaced .pr-sf-*.
   ══════════════════════════════════════════════════════════════════════════ */

/* Header action button (sits in .pr-dh-btnrow next to Delete / Reassign). */
.pr-dh-sf { background:var(--pr-blue); color:#fff; border:0; border-radius:7px;
  padding:6px 12px; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.pr-dh-sf:hover { background:#1f73f0; }
.pr-dh-sf:disabled { cursor:default; }
.pr-dh-sf.linked { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25);
  color:#cfe0ff; }

/* Scrim + modal shell. Portaled to <body>, fixed above the lead drawer. */
.pr-sf-scrim { position:fixed; inset:0; background:rgba(8,16,42,.5); z-index:99999;
  display:none; align-items:center; justify-content:center; padding:22px; }
.pr-sf-scrim.show { display:flex; }
.pr-sf-modal { background:#fff; border-radius:14px; width:100%; max-width:560px;
  max-height:92vh; overflow:auto; box-shadow:0 20px 60px rgba(8,16,42,.4);
  color:var(--pr-ink); font-size:14px; }
.pr-sf-mhead { padding:18px 22px 14px; border-bottom:1px solid var(--pr-border); }
.pr-sf-mhead h2 { margin:0; font-size:18px; color:var(--pr-navy); }
.pr-sf-mhead p { margin:6px 0 0; color:var(--pr-mid); font-size:13px; }
.pr-sf-mbody { padding:18px 22px; }
.pr-sf-mfoot { padding:14px 22px 18px; border-top:1px solid var(--pr-border);
  display:flex; gap:10px; align-items:center; }
.pr-sf-spacer { margin-left:auto; }

/* Buttons. */
.pr-sf-btn { border:0; border-radius:9px; padding:10px 16px; font:inherit;
  font-size:14px; font-weight:600; cursor:pointer; }
.pr-sf-btn:disabled { opacity:.6; cursor:default; }
.pr-sf-btn-primary { background:var(--pr-blue); color:#fff; }
.pr-sf-btn-primary:hover { background:#1f73f0; }
.pr-sf-btn-secondary { background:#fff; color:var(--pr-navy); border:1px solid var(--pr-gray-blue); }
.pr-sf-btn-secondary:hover { background:#f3f6fc; }
.pr-sf-btn-ghost { background:transparent; color:var(--pr-mid); border:1px solid transparent; }
.pr-sf-btn-ghost:hover { color:var(--pr-ink); }

/* Possible-match card. */
.pr-sf-match-card { border:1px solid var(--pr-border); border-left:4px solid var(--pr-gold);
  border-radius:10px; padding:14px 16px; background:#fcfbf6; margin-bottom:12px; }
.pr-sf-mc-name { font-weight:700; font-size:15px; color:var(--pr-ink); }
.pr-sf-mc-meta { color:var(--pr-mid); font-size:13px; margin-top:4px; }
.pr-sf-mc-meta b { color:var(--pr-ink); font-weight:600; }
.pr-sf-mc-actions { display:flex; align-items:center; justify-content:space-between;
  gap:12px; margin-top:12px; }
.pr-sf-mc-actions a { color:var(--pr-blue); text-decoration:none; font-size:13px; font-weight:600; }
.pr-sf-matchnote { font-size:13px; color:var(--pr-mid); margin:6px 2px 0; }

/* HE — match-type tag on a possible-match / relink card. */
.pr-sf-mtag { display:inline-block; font-size:10px; font-weight:700; letter-spacing:.03em;
  border-radius:20px; padding:2px 8px; margin-left:6px; vertical-align:middle; border:1px solid transparent; }
.pr-sf-mtag.email { background:rgba(49,133,252,.13); color:var(--pr-blue); border-color:rgba(49,133,252,.30); }
.pr-sf-mtag.name  { background:rgba(46,125,79,.13); color:#20603b; border-color:rgba(46,125,79,.35); }
.pr-sf-mtag.cur   { background:#eef0f5; color:var(--pr-mid); border-color:var(--pr-border); }

/* HE — Relink-to-a-different-contact modal. */
.pr-relink-cur { display:flex; gap:10px; align-items:flex-start; background:var(--pr-bg-tint);
  border-radius:10px; padding:11px 13px; margin-bottom:14px; }
.pr-relink-cur a { margin-left:auto; color:var(--pr-blue); text-decoration:none; font-size:12px; font-weight:600; white-space:nowrap; }
.pr-relink-lbl { font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--pr-light); margin-bottom:3px; }
.pr-relink-who { font-size:14px; font-weight:700; color:var(--pr-ink); }
.pr-relink-input { width:100%; padding:10px 12px; border:1px solid var(--pr-border); border-radius:9px;
  font-family:inherit; font-size:13.5px; color:var(--pr-ink); }
.pr-relink-input:focus { outline:none; border-color:var(--pr-blue); }
.pr-relink-results { display:flex; flex-direction:column; gap:8px; margin-top:10px; max-height:300px; overflow:auto; }
.pr-relink-empty { color:var(--pr-light); font-size:13px; padding:18px 4px; text-align:center; }
.pr-relink-card { display:flex; gap:11px; align-items:flex-start; border:1px solid var(--pr-border);
  border-radius:10px; padding:11px 12px; cursor:pointer; transition:border-color .1s, background .1s; }
.pr-relink-card:hover { background:#f6f8fd; }
.pr-relink-card.sel { border-color:var(--pr-blue); background:#eef4ff; box-shadow:inset 0 0 0 1px var(--pr-blue); }
.pr-relink-radio { width:16px; height:16px; border-radius:50%; border:2px solid var(--pr-gray-blue);
  margin-top:2px; flex:0 0 auto; }
.pr-relink-card.sel .pr-relink-radio { border-color:var(--pr-blue);
  background:radial-gradient(circle at center, var(--pr-blue) 0 5px, #fff 5px); }
.pr-relink-body { flex:1; min-width:0; }
.pr-relink-body .pr-sf-mc-name { font-size:13.5px; }
.pr-relink-sf { color:var(--pr-blue); text-decoration:none; font-size:11.5px; font-weight:600; flex:0 0 auto; }
.pr-relink-note { display:flex; gap:8px; font-size:11.5px; color:var(--pr-mid); background:#fbf7ee;
  border:1px solid rgba(219,149,35,.35); border-radius:9px; padding:9px 11px; margin-top:14px; }

/* Review screen. */
.pr-sf-section-label { font-size:11px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--pr-light); margin:18px 0 8px; }
.pr-sf-ro-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--pr-border); border:1px solid var(--pr-border); border-radius:10px; overflow:hidden; }
.pr-sf-ro-cell { background:#fafbfe; padding:9px 12px; }
.pr-sf-ro-cell.full { grid-column:1 / -1; }
.pr-sf-ro-cell .k { font-size:11px; color:var(--pr-light); margin-bottom:2px; }
.pr-sf-ro-cell .v { font-size:13.5px; color:var(--pr-ink); word-break:break-word; }
.pr-sf-ro-cell .v.empty { color:#aab2c6; font-style:italic; }

.pr-sf-field { margin-bottom:12px; }
.pr-sf-field label { display:block; font-size:12.5px; font-weight:600; color:var(--pr-ink); margin-bottom:5px; }
.pr-sf-field select, .pr-sf-field textarea, .pr-sf-txt { width:100%; font:inherit;
  font-size:13.5px; color:var(--pr-ink); border:1px solid var(--pr-gray-blue);
  border-radius:9px; padding:9px 11px; background:#fff; }
.pr-sf-field select:focus, .pr-sf-field textarea:focus, .pr-sf-txt:focus {
  outline:2px solid rgba(49,133,252,.35); border-color:var(--pr-blue); }
.pr-sf-field textarea { resize:vertical; min-height:74px; }
.pr-sf-pick-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pr-sf-helper { font-size:11.5px; color:var(--pr-mid); margin-top:4px; }
.pr-sf-fixed-note { margin-top:14px; font-size:12px; color:var(--pr-mid);
  background:#f6f8fc; border:1px solid var(--pr-border); border-radius:9px; padding:10px 12px; }
.pr-sf-fixed-note b { color:var(--pr-ink); }
.pr-sf-histnote { margin-top:12px; font-size:12.5px; color:var(--pr-navy);
  background:#eaf2ff; border:1px solid #d3e3ff; border-radius:9px; padding:10px 12px; }

@media (max-width:560px) {
  .pr-sf-pick-grid, .pr-sf-ro-grid { grid-template-columns:1fr; }
}

/* ── GR §9 — linked-lead Activity feed (from Salesforce) ──────────────────── */
.pr-note-pill.mt { background:rgba(31,122,77,.14); color:#1f7a4d; }
.pr-act-src { font-size:11px; color:var(--pr-light); margin:2px 0 8px; }
.pr-note-text.pr-clamp { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pr-act-tail { display:flex; align-items:center; gap:14px; margin-top:5px; flex-wrap:wrap; }
.pr-act-more, .pr-resync {
  font:inherit; font-size:11.5px; font-weight:600; background:none; border:0; padding:0; cursor:pointer;
}
.pr-act-more { color:var(--pr-navy); }
.pr-act-more:hover { text-decoration:underline; }
.pr-act-sf, .pr-act-all { font-size:11.5px; font-weight:600; color:#1c5fb8; text-decoration:none; cursor:pointer; }
.pr-act-sf:hover, .pr-act-all:hover { text-decoration:underline; }
.pr-act-foot { font-size:11px; color:var(--pr-light); margin-top:12px; padding-top:8px; border-top:1px solid rgba(0,36,127,.08); }
.pr-sync-mark { font-size:10px; font-weight:700; border-radius:5px; padding:1px 7px;
  background:rgba(0,36,127,.06); color:var(--pr-light); }
.pr-sync-mark.fail { background:#fdeced; color:#a23b3b; }
.pr-resync { color:#a23b3b; }
.pr-resync:hover { text-decoration:underline; }

/* ── GR §3 — divergence chooser (link an existing SF contact) ─────────────── */
.pr-ch-summary { background:rgba(0,36,127,.05); border:1px solid rgba(0,36,127,.1); border-radius:9px;
  padding:9px 12px; font-size:12px; color:var(--pr-mid); margin-bottom:14px; }
.pr-ch-summary b { color:var(--pr-navy); }
.pr-ch-head { display:grid; grid-template-columns:104px 1fr 1fr; align-items:end; gap:0;
  font-size:10px; font-weight:700; letter-spacing:.04em; color:var(--pr-light);
  padding-bottom:6px; border-bottom:1px solid var(--pr-line); margin-bottom:6px; }
.pr-ch-col { display:flex; align-items:center; gap:6px; padding-left:12px; }
.pr-ch-badge { font-size:9px; padding:1px 6px; border-radius:4px; }
.pr-ch-badge.db { background:#fdf3e0; color:#9a6a12; }
.pr-ch-badge.sf { background:#eaf2ff; color:#2061c4; }
.pr-ch-useall { margin-left:auto; border:1px solid var(--pr-line); background:#fff; border-radius:999px;
  padding:2px 9px; font:inherit; font-size:10.5px; font-weight:600; color:var(--pr-navy); cursor:pointer; }
.pr-ch-useall:hover { background:#f3f6fc; }
.pr-ch-row { display:grid; grid-template-columns:104px 1fr 1fr; align-items:stretch; margin-bottom:6px; }
.pr-ch-fname { display:flex; align-items:center; font-size:12px; font-weight:600; color:var(--pr-navy); padding-right:8px; }
.pr-ch-opt { position:relative; border:1px solid var(--pr-line); padding:8px 10px 8px 30px;
  cursor:pointer; background:#fafbfe; min-width:0; }
.pr-ch-opt:first-of-type { border-radius:8px 0 0 8px; border-right:0; }
.pr-ch-opt:last-of-type { border-radius:0 8px 8px 0; }
.pr-ch-val { font-size:12.5px; color:var(--pr-navy); word-break:break-word; }
.pr-ch-val.empty { color:var(--pr-light); font-style:italic; }
.pr-ch-radio { position:absolute; left:10px; top:9px; width:14px; height:14px; border-radius:50%;
  border:2px solid var(--pr-line); background:#fff; }
.pr-ch-opt.sel { background:#fff; border-color:#3185fc; box-shadow:inset 0 0 0 1px #3185fc; z-index:1; }
.pr-ch-opt.sel .pr-ch-radio { border-color:#3185fc; }
.pr-ch-opt.sel .pr-ch-radio::after { content:""; position:absolute; inset:3px; border-radius:50%; background:#3185fc; }
.pr-ch-note { border:1px solid var(--pr-line); border-radius:9px; background:#fafbfe; padding:10px 12px;
  font-size:12.5px; color:var(--pr-navy); white-space:pre-wrap; }
@media (max-width:560px) {
  .pr-ch-head, .pr-ch-row { grid-template-columns:1fr; }
  .pr-ch-fname { padding:0 0 4px; }
  .pr-ch-opt:first-of-type { border-radius:8px 8px 0 0; border-right:1px solid var(--pr-line); border-bottom:0; }
  .pr-ch-opt:last-of-type { border-radius:0 0 8px 8px; }
}

/* ── GR §3a — Import from Salesforce ─────────────────────────────────────── */
.pr-imp-search { width:100%; margin-bottom:10px; }
.pr-imp-hint { font-size:12px; color:var(--pr-light); padding:10px 2px; }
.pr-imp-res { border:1px solid var(--pr-line); border-radius:10px; overflow-y:auto; overflow-x:hidden;
  max-height:360px; -webkit-overflow-scrolling:touch; }
.pr-imp-row { display:flex; align-items:center; gap:10px; padding:10px 12px; cursor:pointer;
  border-bottom:1px solid var(--pr-line); }
.pr-imp-row:last-child { border-bottom:0; }
.pr-imp-row:hover { background:#f6f8fc; }
.pr-imp-main { flex:1; min-width:0; }
.pr-imp-name { font-weight:700; font-size:13.5px; color:var(--pr-navy); }
.pr-imp-meta { font-size:12px; color:var(--pr-light); margin-top:2px; }
.pr-imp-tags { display:flex; gap:6px; flex-wrap:wrap; margin-top:4px; }
.pr-imp-tag { font-size:10px; font-weight:700; border-radius:5px; padding:1px 7px;
  background:rgba(0,36,127,.08); color:var(--pr-navy); }
.pr-imp-tag.warn { background:#fdf1e6; color:#9a6a12; }
.pr-imp-tag.stop { background:#fdeced; color:#a23b3b; }
.pr-imp-tag.db { background:#e9f7fd; color:#0d7fa8; }
.pr-imp-tag.incamp { background:#eafaf0; color:#1f7a4d; }
.pr-bulk-excl { display:flex; align-items:center; gap:8px; margin:0 0 10px; font-size:12.5px; color:var(--pr-navy); }
.pr-bulk-excl input { width:auto; }
.pr-bulk-selall { display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:12.5px; font-weight:600; color:var(--pr-navy); }
.pr-bulk-selall input { width:auto; }
/* Cap the review / reconcile lists so the modal doesn't run past the window. */
.pr-bulk-revlist { max-height:340px; overflow-y:auto; }
.pr-imp-pick { font-size:12px; font-weight:600; color:#1c5fb8; white-space:nowrap; }
.pr-imp-notice { border-radius:10px; padding:11px 13px; font-size:12.5px; margin-bottom:14px; }
.pr-imp-notice.info { background:#eaf2ff; border:1px solid #d3e3ff; color:#1f4f9c; }
.pr-imp-notice.warn { background:#fff7ea; border:1px solid #f3e2c2; color:#8a5a12; }
.pr-imp-notice.stop { background:#fdeced; border:1px solid #f3cfd2; color:#a23b3b; }
.pr-imp-notice.db { background:#e9f7fd; border:1px solid #bce6f5; color:#0d7fa8; }
.pr-imp-sfnote { font-size:11.5px; color:#1f4f9c; background:#eaf2ff; border:1px solid #d3e3ff;
  border-radius:9px; padding:9px 12px; margin:0 0 12px; line-height:1.5; }
.pr-imp-sfnote .pr-imp-tag { background:#fff; border:1px solid #cfe0ff; color:#1c5fb8; margin-right:5px; }
.pr-imp-intro { font-size:12px; color:var(--pr-light); margin-bottom:10px; }

/* Add Lead modal tabs (Enter manually | Link from Salesforce) */
.pr-al-tabs { display:flex; gap:0; border-bottom:1px solid var(--pr-border); padding:0 12px; }
.pr-al-tab { flex:1; border:0; background:transparent; font:inherit; font-size:12.5px; font-weight:600;
  color:var(--pr-light); padding:10px 8px; cursor:pointer; border-bottom:2px solid transparent; }
.pr-al-tab:hover { color:var(--pr-mid); }
.pr-al-tab.on { color:var(--pr-navy); border-bottom-color:var(--pr-gold); }

/* GR §3a — Add Lead chooser ("what do you want to do?") + Back */
.pr-al-back { border:0; background:none; color:var(--pr-light); font-size:18px; line-height:1; cursor:pointer; padding:0 8px 0 0; vertical-align:middle; }
.pr-al-back:hover { color:var(--pr-navy); }
.pr-al-choice { display:flex; align-items:center; gap:13px; border:1px solid var(--pr-line); border-radius:12px; padding:14px 15px; margin-bottom:10px; cursor:pointer; }
.pr-al-choice:hover { border-color:#3185fc; background:#f7faff; }
.pr-al-cic { flex:none; width:38px; height:38px; border-radius:10px; background:#eef2ff; color:var(--pr-navy); display:grid; place-items:center; }
.pr-al-cic.sf { background:#e9f7fd; color:#0d9dda; }
.pr-al-ctx { flex:1; display:flex; flex-direction:column; min-width:0; }
.pr-al-ctx b { font-size:14px; color:var(--pr-navy); }
.pr-al-ctx span { font-size:12.5px; color:var(--pr-mid); margin-top:2px; }
.pr-al-carr { margin-left:auto; color:#3185fc; font-weight:700; }

/* GR §3a — bulk Link from Salesforce */
.pr-bulk-defaults { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pr-bulk-help { font-size:11.5px; color:var(--pr-light); margin:6px 0 12px; }
.pr-bulk-row { align-items:flex-start; }
.pr-bulk-row input[type=checkbox] { width:15px; height:15px; margin-top:3px; flex:none; }
.pr-bulk-dis { opacity:.55; }
.pr-bulk-add1 { flex:none; align-self:center; border:1px solid var(--pr-gray-blue,#c8cddb); background:#fff; color:var(--pr-navy); border-radius:8px; padding:5px 11px; font:inherit; font-size:12px; font-weight:600; cursor:pointer; }
.pr-bulk-add1:hover { background:#eef4ff; border-color:#3185fc; }
.pr-bulk-inlist { flex:none; align-self:center; font-size:11.5px; font-weight:600; color:#1f9d57; }
.pr-bulk-listn { font-size:12.5px; color:var(--pr-mid); }
.pr-bulk-listn b { color:var(--pr-navy); }
.pr-bulk-revhead { font-size:12.5px; color:var(--pr-mid); background:#f6f8fc; border:1px solid var(--pr-line); border-radius:9px; padding:10px 12px; margin-bottom:12px; }
.pr-bulk-revhead b { color:var(--pr-navy); }
.pr-bulk-rev { display:flex; align-items:center; gap:11px; border:1px solid var(--pr-line); border-radius:9px; padding:9px 12px; margin-bottom:8px; }
.pr-bulk-rev .pr-imp-main { flex:1; min-width:0; }
.pr-bulk-rx { border:0; background:#f1f4fa; color:var(--pr-light); width:26px; height:26px; border-radius:7px; cursor:pointer; flex:none; }
.pr-bulk-rx:hover { background:#fdeced; color:#a23b3b; }

/* GS — drawer multi-campaign controls */
.pr-camp-star { border:0; background:none; cursor:pointer; font-size:16px; line-height:1; color:#c8cddb; padding:0; flex:none; }
.pr-camp-star.on { color:var(--pr-gold); }
.pr-camp-rm { border:0; background:#f1f4fa; color:var(--pr-light); width:22px; height:22px; border-radius:6px; cursor:pointer; margin-left:auto; flex:none; font-size:11px; line-height:1; }
.pr-camp-rm:hover { background:#fdeced; color:#a23b3b; }
.pr-camp-lock { margin-left:auto; color:#b9c0d6; flex:none; font-size:12px; }
.pr-camp-add { margin-top:10px; }
.pr-camp-add-btn { width:100%; border:1px dashed var(--pr-gray-blue,#c8cddb); background:#fff; border-radius:9px; padding:9px 12px; font:inherit; font-size:12.5px; font-weight:600; color:var(--pr-navy); cursor:pointer; text-align:left; }
.pr-camp-add-btn:hover { background:#f6f8fc; }
.pr-camp-add-pick { border:1px solid #3185fc; border-radius:9px; padding:10px; margin-top:8px; }
.pr-camp-add-pick select { width:100%; font:inherit; font-size:13px; border:1px solid var(--pr-gray-blue,#c8cddb); border-radius:8px; padding:7px 9px; margin-bottom:8px; }
.pr-camp-add-row { display:flex; gap:8px; justify-content:flex-end; }

/* ═══════════════════════════════════════════════════════════════════════════
   GT — EMAIL TEMPLATE LIBRARY (v41)
   Body-portaled picker + editor modals, the reusable rich-text toolbar,
   template rows/cards/badges, and the Settings ▸ Templates list.
   ═══════════════════════════════════════════════════════════════════════════ */
.pr-et-scrim { position:fixed; inset:0; background:rgba(16,26,64,.42); z-index:10050;
  display:none; align-items:flex-start; justify-content:center; padding:5vh 16px; overflow:auto; }
.pr-et-scrim.show { display:flex; }
.pr-et-modal { background:#fff; border-radius:14px; width:100%; max-width:880px;
  box-shadow:0 18px 60px rgba(16,26,64,.28); overflow:hidden; }
.pr-te-modal { max-width:620px; }
.pr-et-head { display:flex; align-items:flex-start; gap:10px;
  background:linear-gradient(180deg,var(--pr-navy) 0%,#001a5e 100%); color:#fff; padding:13px 18px; }
.pr-et-who { font-size:11.5px; color:#c3d0ee; }
.pr-et-ttl { font-family:'Noto Serif',Georgia,serif; font-size:17px; margin-top:1px; }
.pr-et-x { margin-left:auto; background:rgba(255,255,255,.15); border:none; color:#fff;
  width:26px; height:26px; border-radius:7px; cursor:pointer; font-size:14px; line-height:1; flex:none; }
.pr-et-x:hover { background:rgba(255,255,255,.28); }

.pr-et-cols { display:grid; grid-template-columns:1fr 1.05fr; gap:16px; padding:16px 18px 18px; align-items:start; }
@media (max-width:760px) { .pr-et-cols { grid-template-columns:1fr; } }
.pr-et-seclabel { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:var(--pr-mid); margin-bottom:9px; }
.pr-et-muted { font-size:12px; color:var(--pr-mid); padding:6px 2px; display:block; }

.pr-et-tabs { display:flex; gap:16px; border-bottom:1px solid var(--pr-border); margin:13px 0 11px; }
.pr-et-tabs span { padding:8px 0; font-size:13px; color:var(--pr-mid); border-bottom:2px solid transparent; cursor:pointer; }
.pr-et-tabs span.active { color:var(--pr-navy); border-color:var(--pr-gold); font-weight:600; }
.pr-et-tabs-settings { margin-top:4px; }
.pr-et-search { width:100%; font:inherit; font-size:13px; border:1px solid var(--pr-gray-blue);
  border-radius:8px; padding:8px 10px; margin-bottom:10px; }

.pr-et-tpl { display:flex; gap:10px; border:1px solid var(--pr-border); border-radius:11px;
  padding:10px 12px; margin-bottom:8px; cursor:pointer; transition:border-color .12s, background .12s; }
.pr-et-tpl:hover { border-color:#cbd9f7; background:#f7faff; }
.pr-et-tpl.sel { border-color:var(--pr-blue); background:#f7faff; box-shadow:inset 0 0 0 1px var(--pr-blue); }
.pr-et-tpl-main { flex:1; min-width:0; }
.pr-et-tpl-name { font-weight:700; font-size:13.5px; color:var(--pr-navy); }
.pr-et-tpl-desc { font-size:12px; color:var(--pr-ink); margin-top:2px; }
.pr-et-tpl-sub { font-size:11.5px; color:var(--pr-mid); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pr-et-tpl-tags { margin-top:5px; display:flex; gap:5px; flex-wrap:wrap; }
.pr-et-badge { font-size:9.5px; font-weight:700; border-radius:5px; padding:2px 7px;
  text-transform:uppercase; letter-spacing:.03em; display:inline-block; }
.pr-et-badge.firm { background:#e7eefc; color:var(--pr-navy); }
.pr-et-badge.mine { background:#e9f7ee; color:#1f7a47; }
.pr-et-badge.shared { background:#fdeede; color:#9a6314; }
.pr-et-badge.why { background:#f3e9ff; color:#6b3fb5; text-transform:none; letter-spacing:0; font-weight:600; }
.pr-et-badge.script { background:#eef6ff; color:#1d5fa8; text-transform:none; letter-spacing:0; font-weight:600; }

.pr-et-empty { border:1px dashed var(--pr-border); border-radius:12px; padding:46px 18px;
  text-align:center; color:var(--pr-mid); font-size:12.5px; }
.pr-et-preview { border:1px solid var(--pr-border); border-radius:12px; overflow:hidden; }
.pr-et-bar { display:flex; align-items:center; gap:8px; background:#f4f6fb;
  border-bottom:1px solid var(--pr-border); padding:8px 13px; font-size:12px; color:var(--pr-mid); }
.pr-et-seg { margin-left:auto; display:inline-flex; border:1px solid var(--pr-gray-blue); border-radius:7px; overflow:hidden; }
.pr-et-seg button { border:0; background:#fff; font:inherit; font-size:11.5px; font-weight:600;
  color:var(--pr-mid); padding:4px 11px; cursor:pointer; }
.pr-et-seg button.on { background:var(--pr-navy); color:#fff; }
.pr-et-sub { padding:10px 14px; border-bottom:1px solid var(--pr-border); font-size:13.5px;
  display:flex; align-items:center; gap:8px; }
.pr-et-sub b { color:var(--pr-navy); }
.pr-et-subin { flex:1; font:inherit; font-size:13.5px; border:1px solid var(--pr-gray-blue); border-radius:7px; padding:6px 9px; }
.pr-et-body { padding:14px; font-size:13.5px; line-height:1.55; max-height:240px; overflow:auto; }
.pr-et-body a { color:var(--pr-blue); }
.pr-et-mf { background:#fff3da; border-radius:4px; padding:0 3px; color:#8a5a12; font-weight:600; }
.pr-et-foot { display:flex; gap:8px; flex-wrap:wrap; padding:12px 14px; border-top:1px solid var(--pr-border);
  background:#fafbfe; align-items:center; }
.pr-et-grow { flex:1; }
.pr-et-copied { font-size:11.5px; color:var(--pr-green); font-weight:600; display:none; }
.pr-et-copied.show { display:inline; }

/* rich-text toolbar (shared by picker editor + Settings editor) */
.pr-et-rtoolbar { display:flex; gap:1px; align-items:center; flex-wrap:wrap;
  border:1px solid var(--pr-gray-blue); border-bottom:0; border-radius:8px 8px 0 0; padding:5px 6px; background:#f7f8fc; }
.pr-et-rtoolbar button { border:1px solid transparent; background:transparent; border-radius:6px;
  font:inherit; font-size:13px; font-weight:600; color:#2a2f45; min-width:28px; height:28px; padding:0 6px;
  cursor:pointer; display:inline-flex; align-items:center; justify-content:center; line-height:1; }
.pr-et-rtoolbar button:hover { background:#fff; border-color:var(--pr-gray-blue); }
.pr-et-rtoolbar button sub, .pr-et-rtoolbar button sup { font-size:9px; }
.pr-et-rtoolbar button svg { display:block; }
.pr-et-sep { width:1px; height:18px; background:var(--pr-gray-blue); margin:0 4px; flex:none; }
.pr-et-mfsel { margin-left:auto; }
.pr-et-rtoolbar select { font:inherit; font-size:12px; border:1px solid var(--pr-gray-blue); border-radius:6px; padding:4px 6px; background:#fff; }
.pr-et-editor { border:1px solid var(--pr-gray-blue); border-radius:0 0 8px 8px; min-height:150px;
  padding:11px 13px; font-size:13.5px; line-height:1.55; outline:none; }
.pr-et-editor:focus { border-color:var(--pr-blue); }

/* template editor modal body */
.pr-te-body { padding:14px 18px; max-height:62vh; overflow:auto; }
.pr-te-field { margin-bottom:12px; }
.pr-te-field > label { display:block; font-size:11px; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; color:var(--pr-mid); margin-bottom:5px; }
.pr-te-field input[type=text] { width:100%; font:inherit; font-size:13.5px; border:1px solid var(--pr-gray-blue); border-radius:8px; padding:8px 10px; }
.pr-et-chk { display:flex; align-items:center; gap:9px; font-size:13px; text-transform:none; letter-spacing:0;
  font-weight:400; color:var(--pr-ink); background:#fafbfe; border:1px solid var(--pr-border); border-radius:9px; padding:10px 12px; }
.pr-et-chk input { width:16px; height:16px; }
.pr-et-links { display:flex; gap:6px; flex-wrap:wrap; border:1px solid var(--pr-gray-blue);
  border-radius:8px; padding:8px; min-height:42px; margin-bottom:8px; }
.pr-et-pill { font-size:12px; background:#eef2ff; color:var(--pr-navy); border-radius:20px;
  padding:3px 10px; display:inline-flex; align-items:center; gap:7px; }
.pr-et-pill .x { cursor:pointer; color:var(--pr-mid); }
.pr-et-pill .x:hover { color:var(--pr-red); }
.pr-et-linkadd { display:flex; gap:8px; }
.pr-et-linkadd select { font:inherit; font-size:13px; border:1px solid var(--pr-gray-blue); border-radius:8px; padding:7px 9px; background:#fff; }

/* GZ5 — email attachments (single + bulk composers + template editor) */
.pr-et-attachwrap { margin-top:4px; }
.pr-att-head { display:flex; align-items:center; gap:10px; }
.pr-att-add { display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:12.5px; font-weight:600;
  color:var(--pr-navy); background:#eef2ff; border:1px solid var(--pr-border); border-radius:8px; padding:6px 11px; cursor:pointer; }
.pr-att-add svg { width:14px; height:14px; }
.pr-att-add:hover { background:#e2e9ff; }
.pr-att-meter { font-size:11px; font-weight:600; color:var(--pr-mid); }
.pr-att-meter.over { color:var(--pr-red); }
.pr-att-list { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.pr-att-chip { display:flex; align-items:center; gap:9px; border:1px solid var(--pr-border); border-radius:8px; padding:7px 10px; background:#fafbfe; }
.pr-att-ico { min-width:30px; height:24px; padding:0 4px; border-radius:6px; background:#fdece9; color:var(--pr-red);
  display:flex; align-items:center; justify-content:center; flex:none; font-size:8.5px; font-weight:700; letter-spacing:.03em; }
.pr-att-nm { font-size:12.5px; font-weight:600; color:var(--pr-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.pr-att-tpl { font-size:8.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#8a5c12;
  background:rgba(219,149,35,.16); border:1px solid #e8c97a; border-radius:9px; padding:1px 6px; flex:none; }
.pr-att-sz { font-size:10.5px; color:var(--pr-light); margin-left:auto; flex:none; }
.pr-att-x { border:none; background:none; color:var(--pr-light); cursor:pointer; font-size:13px; line-height:1; flex:none; padding:0 2px; }
.pr-att-x:hover { color:var(--pr-red); }
.pr-att-warn { margin-top:8px; font-size:11.5px; color:var(--pr-red); background:#fdecec; border:1px solid #e7c4c4; border-radius:8px; padding:7px 10px; }
.pr-et-linkadd select:last-of-type { flex:1; }
.pr-te-foot { justify-content:flex-end; }

/* Settings ▸ Templates list cards */
.pr-et-card { display:flex; gap:12px; align-items:flex-start; border:1px solid var(--pr-border);
  border-radius:11px; padding:11px 13px; margin-bottom:8px; background:#fff; }
.pr-et-card-main { flex:1; min-width:0; }
.pr-et-card-act { flex:none; display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }

/* GV — in-app email send (picker send-meta + dynamic footer states) */
.pr-et-sendmeta { border-top:1px solid var(--pr-border); padding:8px 14px; background:#fbfcfe; }
.pr-et-torow { display:flex; align-items:center; gap:8px; font-size:12.5px; padding:3px 0; }
.pr-et-torow .lbl { color:var(--pr-mid); font-weight:600; width:58px; flex:none; }
.pr-et-tochip { background:#eef2ff; color:var(--pr-navy); border-radius:20px; padding:2px 11px; font-size:12px; font-weight:600; }
/* GZ (default-email): To chooser when a lead has more than one verified address. */
.pr-et-tosel { font:inherit; font-size:12px; font-weight:600; color:var(--pr-navy); border:1px solid var(--pr-gray-blue); border-radius:7px; padding:4px 8px; background:#fff; max-width:330px; }
.pr-et-sendas { flex:1; min-width:0; font:inherit; font-size:12.5px; border:1px solid var(--pr-gray-blue); border-radius:7px; padding:5px 8px; background:#fff; }
.pr-et-foot { display:block; }
.pr-et-footrow { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.pr-et-fallback { font-size:11.5px; color:var(--pr-mid); display:inline-flex; align-items:center; gap:6px; }
.pr-et-fallback a { color:var(--pr-navy); font-weight:600; cursor:pointer; }
.pr-et-fallback a:hover { text-decoration:underline; }
.pr-et-fallback .sep, .pr-et-footrow .sep { color:var(--pr-gray-blue); }
.pr-et-link { color:var(--pr-navy); font-weight:600; font-size:12px; cursor:pointer; }
.pr-et-link:hover { text-decoration:underline; }
.pr-et-spin { display:inline-block; width:13px; height:13px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff;
  border-radius:50%; vertical-align:-2px; margin-right:7px; animation:pretspin .7s linear infinite; }
@keyframes pretspin { to { transform:rotate(360deg); } }
.pr-et-banner { display:flex; align-items:flex-start; gap:10px; border-radius:10px; padding:10px 12px; font-size:13px; margin-bottom:10px; }
.pr-et-banner .ic { flex:none; width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#fff; }
.pr-et-banner .sm { display:block; color:var(--pr-mid); font-size:11.5px; margin-top:2px; }
.pr-et-banner.ok { background:#eaf7ef; border:1px solid #bfe6cd; }
.pr-et-banner.ok .ic { background:var(--pr-green); }
.pr-et-banner.ok b { color:#15703f; }
.pr-et-banner.err { background:#fdeced; border:1px solid #f1c4c4; }
.pr-et-banner.err .ic { background:var(--pr-red); }
.pr-et-banner.err b { color:#9a2b2b; }

/* GW — bulk email modal */
.pr-bk-modal { max-width:760px; }
.pr-bk-body { padding:14px 18px; max-height:64vh; overflow:auto; }
.pr-bk-tplpick { margin-bottom:12px; }
.pr-bk-tpllist { max-height:170px; overflow:auto; border:1px solid var(--pr-border); border-radius:11px; padding:6px; }
.pr-bk-tpllist .pr-et-tpl { margin-bottom:6px; }
.pr-bk-tpllist .pr-et-tpl:last-child { margin-bottom:0; }
.pr-bk-will { margin-left:auto; color:var(--pr-green); font-weight:700; text-transform:none; letter-spacing:0; font-size:12px; }
.pr-bk-table-wrap { border:1px solid var(--pr-border); border-radius:11px; max-height:260px; overflow-x:auto; overflow-y:auto; }
.pr-bk-table { width:100%; border-collapse:collapse; font-size:12.5px; white-space:nowrap; }
.pr-bk-table th { text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--pr-mid); font-weight:700; padding:8px 12px; border-bottom:1px solid var(--pr-border); position:sticky; top:0; background:var(--pr-bg-tint); z-index:1; }
.pr-bk-table td { padding:9px 12px; vertical-align:middle; }
.pr-bk-table tbody tr:nth-child(odd) td { background:#fff; }
.pr-bk-table tbody tr:nth-child(even) td { background:#f5f7fc; }
.pr-bk-table tbody tr.skip td { background:#fafbfd; }
.pr-bk-table tr.skip { opacity:.6; }
.pr-bk-table .cx { width:38px; text-align:center; }
.pr-bk-table .nm { font-weight:600; color:var(--pr-navy); }
.pr-bk-table .em { color:var(--pr-mid); }
.pr-bk-table .miss { color:#8a5a12; background:#fbecd6; border-radius:4px; padding:1px 6px; font-size:11px; font-weight:600; }
.pr-bk-table th.cx, .pr-bk-table td.cx { position:sticky; left:0; z-index:2; }
.pr-bk-table th.cx { z-index:3; }
.pr-bk-table th.nm, .pr-bk-table td.nm { position:sticky; left:38px; z-index:2; box-shadow:1px 0 0 var(--pr-border); }
.pr-bk-table th.nm { z-index:3; }
.pr-bk-badge { font-size:9.5px; font-weight:700; border-radius:5px; padding:2px 7px; text-transform:uppercase; letter-spacing:.03em; display:inline-block; }
.pr-bk-badge.ready { background:#e9f7ee; color:#1f7a47; }
.pr-bk-badge.no { background:#eef1f6; color:var(--pr-mid); }
.pr-bk-badge.lit { background:#fdeced; color:#9a2b2b; }
.pr-bk-badge.sent { background:#eaf7ef; color:#15703f; }
.pr-bk-badge.fail { background:#fdeced; color:#9a2b2b; }
.pr-bk-badge.sending { background:#e7eefc; color:var(--pr-navy); }
.pr-bk-badge.gap { background:#fbecd6; color:#8a5a12; margin-left:6px; }
.pr-bk-prog { flex:1; min-width:180px; }
.pr-bk-bar { height:8px; border-radius:5px; background:#e7ebf3; overflow:hidden; }
.pr-bk-bar i { display:block; height:100%; background:var(--pr-navy); width:0; transition:width .25s; }
.pr-bk-progtxt { font-size:12px; color:var(--pr-mid); margin-top:5px; }

/* GW-2 — schedule control + post-send follow-up + bulk next-action modal */
.pr-bk-when { font-size:13px; color:var(--pr-ink); display:inline-flex; align-items:center; gap:5px; margin-right:14px; }
.pr-bk-schedat { font:inherit; font-size:12.5px; border:1px solid var(--pr-gray-blue); border-radius:7px; padding:5px 8px; }
.pr-bk-schedat:disabled { opacity:.5; }
.pr-bk-followup { border:1px solid #bfe6cd; background:#f3fbf6; border-radius:11px; padding:13px 15px; margin:0 0 12px; }
.pr-bk-followup .fu-h { font-weight:700; color:#15703f; font-size:13.5px; margin-bottom:9px; }
.pr-bk-followup .fu-row { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.pr-bk-followup .fu-row .lbl { color:var(--pr-mid); font-weight:600; width:74px; flex:none; font-size:12.5px; }
.pr-bk-followup .fu-row input[type=text] { flex:1; font:inherit; font-size:13px; border:1px solid var(--pr-gray-blue); border-radius:7px; padding:6px 9px; }
.pr-bk-followup .fu-row input[type=date] { font:inherit; font-size:13px; border:1px solid var(--pr-gray-blue); border-radius:7px; padding:6px 9px; }
.pr-bk-followup .fu-quick { font-size:11.5px; color:var(--pr-navy); font-weight:600; background:#eef2ff; border:0; border-radius:20px; padding:4px 11px; cursor:pointer; }
.pr-bk-followup .fu-foot { display:flex; gap:8px; margin-top:4px; }

.pr-na-modal { max-width:440px; }
.pr-na-body { padding:16px 18px; }
.pr-na-body input[type=date] { width:100%; font:inherit; font-size:13.5px; border:1px solid var(--pr-gray-blue); border-radius:8px; padding:8px 10px; color:var(--pr-ink); background:#fff; }
.pr-na-quick { display:flex; gap:8px; margin-top:8px; }
.pr-na-quick button { font-size:11.5px; color:var(--pr-navy); font-weight:600; background:#eef2ff; border:0; border-radius:20px; padding:4px 11px; cursor:pointer; }

/* ═══ GZ (2026-06-25) — Finny status + enrichment in the lead drawer ═══ */
/* Status pills (subscribed / unsubscribed / replied / F-score / timezone) */
/* GZ3-fix: pills sit on one line and share a single neutral style; red is
   reserved for a problem — an unsubscribed lead, or a timezone outside the
   signed-in user's own. */
.pr-spills { display:flex; flex-wrap:nowrap; gap:6px; margin-bottom:11px; }
.pr-spill { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700;
  padding:3px 9px; border-radius:20px; border:1px solid var(--pr-border); background:#fff;
  color:var(--pr-mid); white-space:nowrap; }
.pr-spill svg { width:11px; height:11px; }
.pr-spill.unsub, .pr-spill.tzout, .pr-spill.dnc { background:#fdecec; color:var(--pr-red); border-color:#e7c4c4; }

/* Website-visit intent line */
.pr-intent-line { display:flex; align-items:center; gap:8px; background:#f1ebfa; border:1px solid #e0d3f2;
  border-radius:8px; padding:8px 11px; font-size:12px; color:#4a2c73; margin-bottom:12px; }
.pr-intent-line svg { width:15px; height:15px; flex:none; color:#6b3fa0; }
.pr-intent-line b { color:#3a2259; }

/* Verified emails (work/personal) */
.pr-em-stack { display:flex; flex-direction:column; gap:3px; }
.pr-em { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.pr-em.is-default .pr-em-addr { color:var(--pr-navy); font-weight:700; }
/* GZ (default-email): ★ to tag the default send address. */
.pr-em-star { margin-left:auto; background:none; border:none; padding:0 2px; cursor:pointer;
  font-size:14px; line-height:1; color:#c7ccda; }
.pr-em-star:hover { color:var(--pr-gold); }
.pr-em-star.on { color:var(--pr-gold); }
.pr-em-deftag { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:#8a5c12; background:rgba(219,149,35,.16); border:1px solid #e8c97a; border-radius:10px; padding:0 6px; }
.pr-emtype { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; border-radius:4px; padding:0 5px; }
.pr-emtype.work { background:#e8edf8; color:#33518f; }
.pr-emtype.personal { background:#eef0f6; color:#6b6b86; }

/* LinkedIn connected badge */
.pr-li-conn { display:inline-flex; align-items:center; gap:3px; font-size:9.5px; font-weight:700; border-radius:11px; padding:1px 7px; white-space:nowrap; }
.pr-li-conn.yes { background:#e7f5ee; color:#0f5c38; border:1px solid #bfe3cd; }
.pr-li-conn.no { background:var(--pr-bg-tint); color:var(--pr-light); border:1px solid var(--pr-border); }

/* Net-worth confidence badge */
.pr-nwconf { font-size:9.5px; font-weight:700; color:#8a5c12; background:rgba(219,149,35,.14);
  border:1px solid #e8c97a; border-radius:10px; padding:0 6px; margin-left:5px; cursor:help; }

/* Experience timeline */
.pr-xp { display:flex; flex-direction:column; gap:8px; }
.pr-xp-role { display:flex; gap:9px; }
.pr-xp-bar { width:3px; border-radius:2px; background:var(--pr-gold); flex:none; }
.pr-xp-role.past .pr-xp-bar { background:#d6dbe6; }
.pr-xp-body { flex:1; min-width:0; }
.pr-xp-top { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.pr-xp-co { font-size:12.5px; font-weight:700; color:var(--pr-ink); }
.pr-xp-ti { font-size:11.5px; color:var(--pr-mid); }
.pr-xp-dt { font-size:10.5px; color:var(--pr-light); white-space:nowrap; flex:none; }
.pr-xp-toggle { margin-top:8px; font-size:11.5px; font-weight:700; color:var(--pr-blue);
  background:none; border:none; padding:0; cursor:pointer; }

/* AI summary */
.pr-ai-sum { font-size:12px; line-height:1.5; color:var(--pr-mid); background:var(--pr-bg-tint);
  border-radius:9px; padding:10px 12px; }
/* GZ-drawer: AI summary now a full-width band below the pills (clamp + expand). */
.pr-ai-band { margin-bottom:18px; }
.pr-ai-sum.clamp { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pr-ai-toggle { margin-top:6px; font-size:11.5px; font-weight:700; color:var(--pr-blue);
  background:none; border:none; padding:0; cursor:pointer; }
.pr-ai-src { font-size:10px; color:var(--pr-light); margin-top:6px; }

/* GZ-drawer: two-column body + tabbed Campaigns/History bottom band. */
/* GZ4 — Cockpit: narrow left rail (facts) + wide work column (right). */
.pr-drawer-cols { display:grid; grid-template-columns:260px 1fr; gap:0 24px; align-items:start; }
.pr-addr-l2 { display:block; }
.pr-dc-col { min-width:0; }
.pr-d-tabs { margin-top:6px; border-top:1px solid var(--pr-border); padding-top:14px; }
.pr-d-tabbar { display:flex; gap:4px; border-bottom:1px solid var(--pr-border); margin-bottom:13px; }
.pr-d-tab { background:none; border:none; border-bottom:2px solid transparent; padding:7px 14px;
  font:inherit; font-size:13px; font-weight:700; color:var(--pr-light); cursor:pointer; margin-bottom:-1px; }
.pr-d-tab.on { color:var(--pr-navy); border-bottom-color:var(--pr-gold); }
.pr-d-tab .pr-muted { font-weight:500; }
/* GZ3 — LW4IP tab placeholder content. */
.pr-coming-soon { text-align:center; color:var(--pr-light); padding:26px 16px; }
.pr-coming-soon-badge { display:inline-block; font-size:10px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:#8a5c12; background:rgba(219,149,35,.16); border:1px solid #e8c97a;
  border-radius:11px; padding:3px 11px; margin-bottom:9px; }
.pr-coming-soon p { font-size:12.5px; margin:0; }

/* Finny refresh / enrich footer */
/* GZ — drawer HEADER Finny control + ⋯ overflow menu (A2-d) */
.pr-dh-finny { background:rgba(255,255,255,.14); color:#fff; border:none; width:30px; height:30px;
  border-radius:6px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; }
.pr-dh-finny:hover { background:rgba(255,255,255,.26); }
.pr-dh-finny svg { width:15px; height:15px; }
.pr-dh-finny.enrich { background:rgba(219,149,35,.32); }
.pr-dh-finny.enrich:hover { background:rgba(219,149,35,.46); }
.pr-dh-finny.busy { opacity:.6; pointer-events:none; }
.pr-dh-finny.busy svg { animation:pr-spin 0.8s linear infinite; }
@keyframes pr-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .pr-dh-finny.busy svg { animation:none; } }

.pr-dh-kebab-wrap { position:relative; display:inline-flex; }
.pr-dh-kebab { background:rgba(255,255,255,.14); color:#fff; border:none; width:30px; height:30px;
  border-radius:6px; cursor:pointer; font-size:16px; line-height:1; display:inline-flex; align-items:center; justify-content:center; }
.pr-dh-kebab:hover { background:rgba(255,255,255,.26); }
.pr-dh-menu { position:absolute; right:0; top:calc(100% + 6px); min-width:194px; background:#fff;
  border:1px solid rgba(0,36,127,.12); border-radius:9px; box-shadow:0 12px 30px rgba(0,36,127,.28);
  padding:5px; display:none; z-index:30; }
.pr-dh-menu.open { display:block; }
/* menu items keep their original ids (handlers) + pr-dh-sf/pr-dh-danger classes —
   override those pill backgrounds so they read as plain menu rows. */
.pr-dh-menu .pr-dh-menu-item { display:block; width:100%; text-align:left; background:#fff; border:none;
  border-radius:6px; padding:8px 11px; font-size:12.5px; font-weight:600; color:var(--pr-ink); cursor:pointer; }
.pr-dh-menu .pr-dh-menu-item:hover { background:#eef2fb; }
.pr-dh-menu .pr-dh-menu-item.pr-dh-sf { background:#fff; color:var(--pr-navy); }
.pr-dh-menu .pr-dh-menu-item.pr-dh-sf:hover { background:#eef2fb; }
.pr-dh-menu .pr-dh-menu-item.pr-dh-danger { background:#fff; color:var(--pr-red); }
.pr-dh-menu .pr-dh-menu-item.pr-dh-danger:hover { background:#fbeaea; }

/* "Finny data refreshed: <when>" — right-aligned under the buttons, above Stage */
.pr-dh-finny-when { font-size:11px; color:#aab8da; text-align:right; }
.pr-dh-finny-when b { color:#dde6f8; font-weight:600; }
.pr-dh-finny-when .muted { font-style:italic; color:#9fb0d6; }

/* Enrich-with-Finny modal */
.pr-enrich-overlay { position:fixed; inset:0; background:rgba(20,30,60,.45); display:none;
  align-items:center; justify-content:center; z-index:10060; }   /* above the drawer (1201) */
.pr-enrich-overlay.open { display:flex; }
.pr-enrich-modal { width:440px; max-width:92vw; background:#fff; border-radius:13px; overflow:hidden;
  box-shadow:0 18px 50px rgba(20,30,60,.3); }
.pr-enrich-head { background:var(--pr-navy); color:#fff; padding:14px 18px; font-family:'Noto Serif',serif; font-size:16px; font-weight:700; }
.pr-enrich-body { padding:16px 18px; }
.pr-enrich-note { font-size:12.5px; line-height:1.5; color:var(--pr-mid); margin:0 0 12px; }
.pr-mono { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:11.5px; background:var(--pr-bg-tint); padding:1px 5px; border-radius:4px; }
.pr-enrich-input { width:100%; padding:9px 11px; border:1px solid var(--pr-gray-blue); border-radius:8px;
  font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12.5px; color:var(--pr-ink); }
.pr-enrich-input:focus { outline:none; border-color:var(--pr-navy); }
.pr-enrich-err { font-size:12px; color:var(--pr-red); margin-top:8px; display:none; }
.pr-enrich-err.show { display:block; }
.pr-enrich-foot { display:flex; justify-content:flex-end; gap:8px; padding:12px 18px 16px; }

/* ═══════════════════════════════════════════════════════════════
   HC — IPN tab. All new components namespaced .ipn-* to avoid clashing
   with the Leads .pr-bulk-bar / .pr-cols-menu / drawers already in this file.
   Reuses existing .pr-table, .pr-or-btn/.pr-outreach-row, .pr-stat, .pr-search.
   ═══════════════════════════════════════════════════════════════ */
#prViewIpn .pr-filters { display:flex; align-items:center; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
#prViewIpn .pr-search { position:relative; flex:0 0 auto; width:230px; }
.ipn-dd-btn.on { background:var(--pr-navy); color:#fff; border-color:var(--pr-navy); }

/* Multi-select / columns dropdown */
.ipn-dd { position:relative; }
.ipn-dd-btn { display:inline-flex; align-items:center; gap:7px; cursor:pointer; font-size:12px; font-weight:600; color:var(--pr-mid); border:1px solid var(--pr-border); border-radius:8px; padding:7px 11px; background:#fff; font-family:inherit; }
.ipn-dd-btn:hover { background:var(--pr-bg-tint); } .ipn-dd-btn b { color:var(--pr-navy); } .ipn-dd-btn .caret { font-size:9px; color:var(--pr-light); } .ipn-dd-btn svg { width:14px; height:14px; }
.ipn-dd-menu { display:none; position:absolute; left:0; top:calc(100% + 6px); z-index:30; background:#fff; border:1px solid var(--pr-border); border-radius:10px; padding:8px; box-shadow:0 6px 20px rgba(0,36,127,.14); min-width:196px; }
.ipn-dd-menu.menuright { left:auto; right:0; } .ipn-dd-menu.open { display:block; }
.ipn-dd-menu .hd { display:flex; justify-content:space-between; align-items:center; padding:2px 8px 6px; }
.ipn-dd-menu .hd span { font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--pr-light); }
.ipn-dd-menu .hd a { font-size:11px; font-weight:600; color:var(--pr-blue); cursor:pointer; }
.ipn-dd-menu label { display:flex; align-items:center; gap:9px; padding:6px 8px; border-radius:6px; font-size:12.5px; font-weight:600; color:var(--pr-mid); cursor:pointer; }
.ipn-dd-menu label:hover { background:var(--pr-bg-tint); } .ipn-dd-menu label.locked { opacity:.5; cursor:default; }
.ipn-dd-hint { font-size:10.5px; color:var(--pr-light); padding:6px 8px 2px; border-top:1px solid var(--pr-border); margin-top:4px; }
.ipn-dd-range { padding:2px 8px 6px; border-top:1px solid var(--pr-border); margin-top:6px; }
.ipn-dd-range .rk { font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--pr-light); margin:6px 0 4px; }
.ipn-dd-range .rk2 { font-size:10px; font-weight:600; color:var(--pr-light); margin:6px 0 2px; }
.ipn-dd-range input { width:100%; padding:5px 7px; border:1px solid var(--pr-border); border-radius:6px; font-family:inherit; font-size:11.5px; color:var(--pr-ink); }

/* Bulk bar */
.ipn-bulkbar { display:none; align-items:center; gap:9px; background:var(--pr-navy); color:#fff; border-radius:10px; padding:9px 13px; margin-bottom:11px; flex-wrap:wrap; }
.ipn-bulkbar.on { display:flex; }
.ipn-bulkbar .cnt { font-size:12.5px; font-weight:700; }
.ipn-bwrap { position:relative; display:inline-flex; }
.ipn-bbtn { position:relative; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); color:#fff; border-radius:7px; padding:6px 11px; font-family:inherit; font-size:12px; font-weight:600; cursor:pointer; }
.ipn-bbtn:hover { background:rgba(255,255,255,.22); } .ipn-bbtn.gold { background:var(--pr-gold); border-color:var(--pr-gold); color:#231; } .ipn-bbtn:disabled { opacity:.45; cursor:not-allowed; }
.ipn-bclear { margin-left:auto; background:none; border:none; color:#cdd7f2; font-size:12px; font-weight:600; cursor:pointer; }
.ipn-bpop { display:none; position:absolute; left:0; top:calc(100% + 6px); z-index:40; background:#fff; color:var(--pr-ink); border:1px solid var(--pr-border); border-radius:9px; box-shadow:0 8px 22px rgba(0,36,127,.2); padding:8px; min-width:180px; }
.ipn-bpop.open { display:block; }
.ipn-bpop .opt { display:block; width:100%; text-align:left; background:none; border:none; border-radius:6px; padding:7px 9px; font-family:inherit; font-size:12.5px; font-weight:600; color:var(--pr-mid); cursor:pointer; }
.ipn-bpop .opt:hover { background:var(--pr-bg-tint); }
.ipn-bpop input[type=date] { width:100%; padding:6px 8px; border:1px solid var(--pr-border); border-radius:6px; font-family:inherit; font-size:12px; margin-bottom:7px; }
.ipn-bpop .apply { width:100%; background:var(--pr-navy); color:#fff; border:none; border-radius:6px; padding:7px; font-weight:700; font-size:12px; cursor:pointer; }

/* Row cells */
#prViewIpn .pr-table thead th.ck, #prViewIpn .pr-table tbody td.ck { width:34px; padding-left:12px; }
#prViewIpn .pr-table tbody tr.sel { background:#eef3fe; }
.ipn-count { font-size:11px; color:var(--pr-light); margin:2px 2px 10px; }
.ipn-tier { display:inline-block; min-width:22px; text-align:center; font-size:11px; font-weight:700; border-radius:6px; padding:2px 8px; border:1px solid transparent; }
.ipn-tier.a { background:rgba(219,149,35,.15); color:#8a5a10; border-color:rgba(219,149,35,.4); }
.ipn-tier.b { background:rgba(49,133,252,.12); color:#1e5fbf; border-color:rgba(49,133,252,.3); }
.ipn-tier.c { background:rgba(74,74,106,.10); color:var(--pr-mid); border-color:var(--pr-border); }
.ipn-tier.tbd { background:#f2f3f7; color:var(--pr-light); border-color:var(--pr-border); }
.ipn-chip { display:inline-block; font-size:10.5px; font-weight:600; color:var(--pr-mid); background:#f2f4f9; border:1px solid var(--pr-border); border-radius:12px; padding:2px 9px; }
.ipn-na { color:var(--pr-ink); font-weight:600; }
.ipn-date { font-weight:600; } .ipn-date .rel { display:block; font-size:11px; margin-top:2px; font-weight:600; }
.ipn-date.overdue .rel { color:var(--pr-red); font-weight:700; } .ipn-date.soon .rel { color:var(--pr-amber); font-weight:700; }
.ipn-none { color:var(--pr-light); font-style:italic; font-weight:400; }
.ipn-li { cursor:help; } .ipn-li .li-primary { font-weight:600; color:var(--pr-ink); } .ipn-li .li-when { font-size:11px; color:var(--pr-mid); margin-top:2px; }
.ipn-funnel { display:flex; gap:12px; font-size:11.5px; color:var(--pr-mid); white-space:nowrap; }
.ipn-funnel .fk { color:var(--pr-light); font-weight:700; } .ipn-funnel b { color:var(--pr-navy); } .ipn-funnel .att { color:var(--pr-green); }
.ipn-name-badges { display:flex; gap:5px; margin-top:5px; }
.ipn-badge { display:inline-flex; align-items:center; gap:5px; font-size:10px; font-weight:700; border-radius:11px; padding:2px 8px; border:1px solid transparent; }
.ipn-badge .dot { width:7px; height:7px; border-radius:50%; }
.ipn-badge.green { background:rgba(46,125,79,.13); color:#20603b; border-color:rgba(46,125,79,.35); } .ipn-badge.green .dot { background:var(--pr-green); }
.ipn-badge.yellow { background:rgba(219,149,35,.16); color:#8a5a10; border-color:rgba(219,149,35,.4); } .ipn-badge.yellow .dot { background:var(--pr-gold); }
.ipn-badge.grey { background:#eef0f5; color:var(--pr-mid); border-color:var(--pr-border); } .ipn-badge.grey .dot { background:var(--pr-light); }

/* Last-interaction hover popover */
.ipn-pop { position:absolute; display:none; z-index:9000; width:290px; background:#fff; border:1px solid var(--pr-border); border-radius:10px; box-shadow:0 8px 26px rgba(0,36,127,.18); padding:10px 11px; }
.ipn-pop .hd { font-size:9.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--pr-light); margin-bottom:7px; }
.ipn-pop .row { padding:6px 0; border-top:1px solid #f0f2f7; } .ipn-pop .row:first-of-type { border-top:none; }
.ipn-pop .meta { display:flex; align-items:center; gap:7px; margin-bottom:2px; }
.ipn-pop .when { font-size:11px; color:var(--pr-light); } .ipn-pop .txt { font-size:11.5px; color:var(--pr-mid); line-height:1.4; }
.ipn-pop .evpill { font-size:9.5px; font-weight:700; border-radius:5px; padding:1px 6px; }
.ipn-pop .evpill.lunch { background:rgba(219,149,35,.15); color:#8a5a10; } .ipn-pop .evpill.event { background:rgba(49,133,252,.12); color:#1e5fbf; } .ipn-pop .evpill.note { background:#f2f3f7; color:var(--pr-mid); }
.ipn-pop .typ { font-size:11px; font-weight:700; color:var(--pr-ink); }

/* Drawer */
.ipn-scrim { display:none; position:fixed; inset:0; background:rgba(20,26,50,.35); z-index:9100; }
.ipn-scrim.on { display:block; }
.ipn-dw { position:fixed; top:0; right:-760px; width:720px; max-width:96vw; height:100%; background:#fff; z-index:9110; box-shadow:-8px 0 30px rgba(0,36,127,.22); transition:right .18s ease; display:flex; flex-direction:column; }
.ipn-dw.on { right:0; }
.ipn-dh { background:linear-gradient(180deg,#00247f,#0b2f8a); color:#fff; padding:16px 18px; }
.ipn-dh-top { display:flex; align-items:flex-start; gap:10px; }
.ipn-dh-name { font-family:'Noto Serif',serif; font-size:19px; font-weight:700; }
.ipn-dh-sub { font-size:12px; color:#cdd7f2; margin-top:2px; }
.ipn-dh-links { margin-top:6px; font-size:12px; } .ipn-dh-links a { color:#cdd7f2; text-decoration:underline; } .ipn-dh-links .sep { color:#8ba0d8; margin:0 6px; }
.ipn-dh-x { margin-left:auto; background:rgba(255,255,255,.14); border:none; color:#fff; width:30px; height:30px; border-radius:8px; font-size:16px; cursor:pointer; }
.ipn-db { padding:16px 18px; overflow-y:auto; }
.ipn-db h4 { font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--pr-light); margin:18px 0 9px; } .ipn-db h4:first-child { margin-top:0; }
.ipn-fgrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ipn-fgrid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.ipn-fgrid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:10px; }
.ipn-dsep { border-top:1px solid var(--pr-border); margin:16px 0; }
.ipn-note-acts { position:absolute; top:6px; right:0; display:none; gap:4px; }
.ipn-int-list .pr-note { position:relative; }
.ipn-int-list .pr-note:hover .ipn-note-acts { display:flex; }
.ipn-note-acts button { background:#fff; border:1px solid var(--pr-border); border-radius:6px; width:24px; height:24px; padding:0; cursor:pointer; color:var(--pr-mid); font-size:11px; line-height:1; }
.ipn-note-acts button:hover { background:var(--pr-bg-tint); color:var(--pr-navy); }
.ipn-fld label { display:block; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--pr-light); margin-bottom:3px; }
.ipn-fld select, .ipn-fld input { width:100%; padding:7px 9px; border:1px solid var(--pr-border); border-radius:7px; font-family:inherit; font-size:12.5px; color:var(--pr-ink); background:#fff; }
.ipn-tiles { display:flex; gap:10px; margin-bottom:16px; }
.ipn-tile { flex:1; background:#f6f7fb; border:1px solid var(--pr-border); border-radius:10px; padding:10px 12px; }
.ipn-tile.dim { opacity:.5; }
.ipn-tile-hd { display:flex; align-items:center; gap:6px; font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--pr-blue); margin-bottom:9px; }
.ipn-tile.dim .ipn-tile-hd { color:var(--pr-light); } .ipn-tile-hd svg { width:14px; height:14px; }
.ipn-tile-cols { display:flex; gap:18px; }
.ipn-tile-cols .k { font-size:10px; color:var(--pr-light); font-weight:600; }
.ipn-tile-cols .v { font-family:'Noto Serif',serif; font-size:17px; font-weight:700; color:var(--pr-ink); margin-top:3px; }
.ipn-tile-cols .v.ok { color:var(--pr-green); font-family:'Noto Sans',sans-serif; font-size:14px; }
.ipn-tile-cols .v.no { color:var(--pr-light); font-family:'Noto Sans',sans-serif; font-size:14px; }
.ipn-tile-cols .v .dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--pr-light); margin-right:5px; vertical-align:middle; }
.ipn-cd-cols { display:grid; grid-template-columns:1fr 1fr; gap:0 26px; }
.ipn-cd-line { display:flex; gap:10px; padding:6px 0; border-bottom:1px solid #f4f5f9; }
.ipn-cd-lbl { width:80px; flex:0 0 80px; font-size:11px; font-weight:700; color:var(--pr-light); text-transform:uppercase; letter-spacing:.03em; padding-top:1px; }
.ipn-cd-val { flex:1; font-size:12.5px; color:var(--pr-ink); word-break:break-word; } .ipn-cd-val a { color:var(--pr-blue); text-decoration:none; }
.ipn-cd-dnc { font-size:9.5px; font-weight:700; color:var(--pr-red); border:1px solid rgba(179,64,64,.4); background:rgba(179,64,64,.08); border-radius:5px; padding:1px 5px; margin-left:5px; }
.ipn-int-list .it { padding:8px 0; border-top:1px solid #f0f2f7; position:relative; padding-right:58px; } .ipn-int-list .it:first-child { border-top:none; }
.ipn-int-actions { position:absolute; top:7px; right:0; display:flex; gap:4px; }
.ipn-int-actions button { background:none; border:1px solid var(--pr-border); border-radius:6px; width:24px; height:24px; padding:0; cursor:pointer; color:var(--pr-mid); font-size:11px; line-height:1; }
.ipn-int-actions button:hover { background:var(--pr-bg-tint); color:var(--pr-navy); }
.ipn-int-actions button.del:hover { color:var(--pr-red); border-color:rgba(179,64,64,.4); }
/* Drawer bottom tabs (Interactions / SF Activity) */
.ipn-dtabs { display:flex; border-bottom:1px solid var(--pr-border); margin:18px 0 12px; }
.ipn-dtabs button { background:none; border:none; cursor:pointer; font-family:inherit; font-size:13px; font-weight:600; color:var(--pr-mid); padding:8px 4px 9px; margin-right:22px; position:relative; }
.ipn-dtabs button:hover { color:var(--pr-navy); }
.ipn-dtabs button.active { color:var(--pr-navy); }
.ipn-dtabs button.active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2.5px; background:var(--pr-navy); border-radius:2px; }
.ipn-int-list .m { display:flex; align-items:center; gap:7px; } .ipn-int-list .w { font-size:11px; color:var(--pr-light); } .ipn-int-list .t { font-size:11.5px; color:var(--pr-mid); margin-top:2px; }
.ipn-notes { width:100%; min-height:74px; padding:8px 9px; border:1px solid var(--pr-border); border-radius:7px; font-family:inherit; font-size:12.5px; color:var(--pr-ink); resize:vertical; }
.ipn-btn-primary { background:var(--pr-navy); color:#fff; border:none; border-radius:8px; padding:9px 15px; font-family:inherit; font-size:12.5px; font-weight:700; cursor:pointer; }
.ipn-btn-primary:hover { background:var(--pr-navy-mid); }

/* Log / email modals */
.ipn-modal { display:none; position:fixed; inset:0; z-index:9200; align-items:center; justify-content:center; background:rgba(20,26,50,.4); }
.ipn-modal.on { display:flex; }
.ipn-modal-panel { background:#fff; width:560px; max-width:94vw; max-height:90vh; overflow:auto; border-radius:14px; box-shadow:0 12px 40px rgba(0,36,127,.3); }
.ipn-modal-head { background:var(--pr-navy); color:#fff; padding:14px 18px; font-family:'Noto Serif',serif; font-size:16px; font-weight:700; display:flex; align-items:center; }
.ipn-modal-head .x { margin-left:auto; background:rgba(255,255,255,.14); border:none; color:#fff; width:28px; height:28px; border-radius:7px; font-size:15px; cursor:pointer; }
.ipn-modal-body { padding:16px 18px; } .ipn-modal-body .ipn-fld { margin-bottom:12px; }
.ipn-modal-body textarea { width:100%; min-height:72px; padding:8px 9px; border:1px solid var(--pr-border); border-radius:7px; font-family:inherit; font-size:12.5px; resize:vertical; }
.ipn-modal-foot { display:flex; gap:9px; justify-content:flex-end; padding:12px 18px 16px; }
.ipn-btn-ghost { background:#fff; border:1px solid var(--pr-border); color:var(--pr-mid); border-radius:8px; padding:9px 15px; font-family:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.ipn-loading { text-align:center; color:var(--pr-light); font-size:13px; padding:34px 0; }
#prViewIpn .pr-empty { text-align:center; color:var(--pr-light); font-size:13px; padding:34px 0; }
/* Scroll container — horizontal for wide column sets, vertical with a sticky header. */
.ipn-tablewrap { overflow:auto; max-height:calc(100vh - 210px); min-height:280px; border:1px solid var(--pr-border); border-radius:10px; }
.ipn-tablewrap .pr-table { margin:0; }
#prViewIpn .pr-table thead th { position:sticky; top:0; background:#fff; z-index:2; }
#prViewIpn .pr-table thead th.sortable { cursor:pointer; user-select:none; }
#prViewIpn .pr-table thead th.sorted { color:var(--pr-navy); }
#prViewIpn .pr-table thead th[draggable=true] { cursor:grab; }
#prViewIpn .pr-table thead th.ipn-draghover { box-shadow:inset 2px 0 0 var(--pr-navy); }
.ipn-sort-arrow { font-size:8px; margin-left:4px; color:var(--pr-navy); }
.ipn-th-grip { color:var(--pr-gray-blue); font-size:10px; margin-right:4px; cursor:grab; }
.ipn-th-resize { position:absolute; top:0; right:0; width:6px; height:100%; cursor:col-resize; user-select:none; }
/* Last Interaction cell — Lead-history style (pill · type · date, note below) */
.ipn-licell .l1 { font-size:12px; color:var(--pr-mid); }
.ipn-licell .l1 b { color:var(--pr-ink); }
.ipn-licell .l1 .when { color:var(--pr-light); font-size:11px; }
.ipn-licell .l2 { font-size:11.5px; color:var(--pr-mid); margin-top:2px; line-height:1.4;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* HC/HD — interaction note preview: clamp to 5 lines with a More/Less toggle
   (drawer Interactions + the list-view hover popover). Used via clampNote(). */
.ipn-clamp5 { display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.ipn-clamp5.expanded { display:block; -webkit-line-clamp:unset; overflow:visible; }
.ipn-more { background:none; border:0; color:var(--pr-blue); font-size:11px; font-weight:700;
  cursor:pointer; padding:2px 0 0; font-family:inherit; }
.ipn-more:hover { text-decoration:underline; }
