/* ============================================================
   RELAI Expert — Design System & Global Styles
   ============================================================ */

:root {
  --relai-blue: #3350A2;
  --relai-blue-600: #2B4489;
  --relai-blue-100: #E8EDF7;
  --relai-blue-50: #F4F6FB;
  --relai-yellow: #FFFF00;
  --relai-yellow-soft: #FFF9B0;
  --ink-900: #0F1420;
  --ink-800: #1D2230;   /* was undefined — 14 call-sites relied on inherited-color fallback (invisible on dark bg); true midpoint of 900/700 */
  --ink-700: #2A3040;
  --ink-500: #5A6078;
  --ink-400: #8189A0;
  --ink-300: #B0B6C8;
  --ink-200: #D6DAE5;
  --ink-100: #EAEDF3;
  --ink-50: #F7F8FB;
  --paper: #FEFEFE;
  --success: #1F7A4D;
  --success-soft: #E6F3EC;
  --warning: #B0680A;
  --warning-soft: #FDF3E0;
  --danger: #B02432;
  --danger-soft: #FBE8EA;
  --map-land: #F0EDE5;
  --map-water: #C7DEEB;
  --shadow-sm: 0 1px 2px rgba(15,20,32,0.04), 0 1px 1px rgba(15,20,32,0.03);
  --shadow-md: 0 4px 12px rgba(15,20,32,0.06), 0 2px 4px rgba(15,20,32,0.04);
  --shadow-lg: 0 12px 32px rgba(15,20,32,0.08), 0 4px 8px rgba(15,20,32,0.04);
  --radius: 4px;
  --radius-md: 6px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  font-family: 'Work Sans', sans-serif;
  color: var(--ink-900);
  background: var(--ink-50);
  font-size: 14px;
  line-height: 1.5;
  font-feature-settings: 'tnum' 1;
  min-width: 1440px;
}

h1, h2, h3, h4 {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.mono { font-family: 'JetBrains Mono', monospace; font-feature-settings: 'tnum' 1; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input, select, textarea { font-family: inherit; }


/* ── TOP BAR ─────────────────────────────────────────────── */
.topbar {
  height: 56px;
  background: var(--paper);
  border-bottom: 1px solid var(--ink-200);
  display: flex;
  align-items: center;
  padding: 0 24px;
  gap: 24px;
  position: sticky;
  top: 0;
  z-index: 50;
}

.brand { display: flex; align-items: center; gap: 10px; min-width: 200px; }

.brand-logo {
  width: 28px; height: 28px;
  background: var(--relai-blue);
  display: flex; align-items: center; justify-content: center;
  color: white;
  font-family: 'Poppins';
  font-weight: 800;
  font-size: 14px;
  border-radius: 2px;
}

.brand-name { font-family: 'Poppins'; font-weight: 700; font-size: 16px; letter-spacing: -0.02em; }

.brand-tool {
  font-family: 'Work Sans';
  font-weight: 500;
  font-size: 11px;
  color: var(--ink-500);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-left: 8px;
  padding-left: 8px;
  border-left: 1px solid var(--ink-200);
}

.version-pill {
  font-family: 'JetBrains Mono';
  font-size: 10px;
  color: var(--ink-400);
  background: var(--ink-100);
  padding: 2px 6px;
  border-radius: 3px;
  margin-left: 6px;
  font-weight: 500;
}

.session-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 6px 14px;
  background: var(--ink-100);
  border-radius: 18px;
  margin-left: auto;
  margin-right: auto;
}

.session-bar.in-session { background: var(--success); color: white; }

.session-status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ink-300); }

.session-bar.in-session .session-status-dot {
  background: var(--relai-yellow);
  box-shadow: 0 0 0 3px rgba(255,255,0,0.3);
  animation: pulse-dot 1.5s ease-in-out infinite;
}

@keyframes pulse-dot { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.2); } }

.session-status-text { font-size: 12px; font-weight: 600; }
.session-divider { width: 1px; height: 14px; background: rgba(0,0,0,0.15); }
.session-bar.in-session .session-divider { background: rgba(255,255,255,0.3); }
.session-timer { font-family: 'JetBrains Mono'; font-size: 13px; font-weight: 700; min-width: 50px; }

.topbar-right { display: flex; align-items: center; gap: 14px; }

.user-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px 4px 4px;
  border-radius: 18px;
  background: var(--ink-100);
}

.user-avatar {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--relai-blue);
  color: white;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Poppins';
  font-weight: 600;
  font-size: 11px;
}

.user-name { font-size: 13px; font-weight: 500; line-height: 1.1; }
.user-role { font-size: 11px; color: var(--ink-500); }


/* ── LAYOUT ──────────────────────────────────────────────── */
.app-shell { display: flex; min-height: calc(100vh - 56px); }

.sidebar {
  width: 224px;
  background: var(--paper);
  border-right: 1px solid var(--ink-200);
  padding: 20px 12px;
  flex-shrink: 0;
}

.nav-group { margin-bottom: 24px; }

.nav-group-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-400);
  font-weight: 600;
  padding: 0 12px;
  margin-bottom: 6px;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: var(--radius);
  cursor: pointer;
  font-size: 13px;
  color: var(--ink-700);
  font-weight: 500;
  width: 100%;
  text-align: left;
  position: relative;
}

.nav-item:hover { background: var(--ink-100); }

.nav-item.active {
  background: var(--relai-blue-50);
  color: var(--relai-blue);
  font-weight: 600;
}

.nav-item.active::before {
  content: '';
  position: absolute;
  left: 0; top: 6px; bottom: 6px;
  width: 2px;
  background: var(--relai-blue);
  border-radius: 0 2px 2px 0;
}

.nav-item-icon { width: 16px; height: 16px; flex-shrink: 0; opacity: 0.85; }

.nav-item-count {
  margin-left: auto;
  font-family: 'JetBrains Mono';
  font-size: 11px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 8px;
  background: var(--ink-100);
  color: var(--ink-500);
}

.nav-item.active .nav-item-count { background: var(--relai-blue); color: white; }
.nav-item.attention .nav-item-count { background: var(--relai-yellow); color: var(--ink-900); }

/* 2026-05-25: "More" toggle row + indented child items inside the
   nav-group-more group. Keeps secondary nav out of the primary 7
   but discoverable. */
.nav-item.nav-more-toggle { color: var(--ink-500); font-weight: 500; }
.nav-item.nav-more-toggle .nav-item-icon { opacity: 0.6; }
.nav-item.nav-more-toggle:hover { color: var(--ink-700); }
.nav-group-more #nav-more-items .nav-item { padding-left: 14px; }

.main { flex: 1; min-width: 0; padding: 24px 32px 48px; }


/* ── PAGE HEADER ─────────────────────────────────────────── */
.page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ink-200);
}

.page-title { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.page-subtitle { font-size: 13px; color: var(--ink-500); margin-top: 2px; }
.page-actions { display: flex; gap: 10px; align-items: center; }


/* ── BUTTONS ─────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: var(--radius);
  font-size: 13px;
  font-weight: 500;
  transition: all 0.15s;
  white-space: nowrap;
}

.btn-primary { background: var(--relai-blue); color: white; }
.btn-primary:hover { background: var(--relai-blue-600); }
.btn-secondary { background: var(--paper); border: 1px solid var(--ink-200); color: var(--ink-700); }
.btn-secondary:hover { border-color: var(--ink-400); background: var(--ink-50); }
.btn-ghost { color: var(--ink-500); padding: 8px 10px; }
.btn-ghost:hover { background: var(--ink-100); color: var(--ink-900); }
.btn-success { background: var(--success); color: white; }
.btn-success:hover { background: #155c39; }
.btn-danger { background: var(--danger); color: white; }
.btn-danger:hover { background: #8c1b26; }
.btn-yellow { background: var(--relai-yellow); color: var(--ink-900); font-weight: 600; }
.btn-yellow:hover { background: #E6E600; }
.btn-sm { padding: 4px 10px; font-size: 12px; }
.btn-lg { padding: 12px 20px; font-size: 14px; }
/* Disabled buttons: greyed + not-allowed cursor. We keep pointer-events
   on (instead of `none`) so the native title="…" tooltip still appears
   on hover — useful for "Coming soon" affordances. The disabled HTML
   attribute on the <button> itself blocks click events natively, so
   re-enabling pointer-events doesn't make them clickable again. */
.btn-disabled, .btn:disabled { opacity: 0.4; cursor: not-allowed; }
button[disabled], .next-action-btn[disabled] { opacity: 0.4; cursor: not-allowed; }
.btn-kbd { margin-left: 6px; padding: 1px 5px; border: 1px solid rgba(255,255,255,0.3); border-radius: 3px; font-family: 'JetBrains Mono'; font-size: 10px; }
.btn-secondary .btn-kbd, .btn-ghost .btn-kbd { border-color: var(--ink-200); color: var(--ink-500); }


/* ── TODAY BANNER ────────────────────────────────────────── */
.today-banner {
  background: linear-gradient(90deg, var(--relai-blue) 0%, var(--relai-blue-600) 100%);
  color: white;
  padding: 22px 24px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  gap: 32px;
  margin-bottom: 24px;
}

.today-banner-title { font-family: 'Poppins'; font-weight: 600; font-size: 18px; margin-bottom: 4px; }
.today-banner-sub { font-size: 13px; opacity: 0.85; max-width: 480px; }
.today-banner-metrics { display: flex; gap: 28px; margin-left: auto; }
.tbm-item { text-align: right; }
.tbm-value { font-family: 'Poppins'; font-size: 26px; font-weight: 700; line-height: 1; }
.tbm-value.yellow { color: var(--relai-yellow); }
.tbm-value.green  { color: #4ade80; }
.tbm-value.red    { color: #fca5a5; }
.tbm-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.85; margin-top: 4px; font-weight: 500; }

.today-day-toggle { display: flex; gap: 6px; margin-bottom: 12px; }
.day-chip { padding: 5px 16px; border-radius: 20px; border: 1px solid var(--ink-300); background: transparent; font-size: 13px; font-weight: 500; color: var(--ink-600); cursor: pointer; transition: all .15s; }
.day-chip:hover { border-color: var(--relai-blue); color: var(--relai-blue); }
.day-chip.active { background: var(--relai-blue); border-color: var(--relai-blue); color: #fff; font-weight: 600; }

/* ── SESSION QUEUE ───────────────────────────────────────── */
.queue-section { margin-bottom: 28px; }

/* Today — collapsible sections (headers toggle via a delegated handler in app.js) */
#page-today .queue-header, #page-today .commitments-header { cursor:pointer; user-select:none; position:relative; padding-right:44px; }
#page-today .queue-header::after, #page-today .commitments-header::after {
  content:'\25BE  Hide';            /* ▾ Hide */
  position:absolute; right:0; top:0;
  display:inline-flex; align-items:center; gap:4px;
  padding:4px 9px; border-radius:8px;
  background:var(--relai-blue-100,#E8EDF7); color:var(--relai-blue,#3350A2);
  font-size:11px; font-weight:700; letter-spacing:.02em;
  border:1px solid var(--relai-blue-100,#E8EDF7);
}
#page-today .queue-header:hover::after, #page-today .commitments-header:hover::after { background:var(--relai-blue,#3350A2); color:#fff; border-color:var(--relai-blue,#3350A2); }
#page-today .queue-section.tsec-collapsed > :not(.queue-header),
#page-today .commitments-zone.tsec-collapsed > :not(.commitments-header) { display:none !important; }
#page-today .queue-section.tsec-collapsed > .queue-header::after,
#page-today .commitments-zone.tsec-collapsed > .commitments-header::after { content:'\25B8  Show'; }   /* ▸ Show */

.queue-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.queue-title { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; }
.queue-count { font-family: 'JetBrains Mono'; font-size: 12px; color: var(--ink-500); font-weight: 600; }
.queue-divider { flex: 1; height: 1px; background: var(--ink-200); }

.session-card {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  padding: 16px 20px;
  margin-bottom: 8px;
  display: grid;
  grid-template-columns: auto 1fr auto auto auto;
  gap: 18px;
  align-items: center;
  cursor: pointer;
  border-left: 3px solid var(--ink-300);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.session-card:hover { border-color: var(--relai-blue); border-left-color: var(--relai-blue); box-shadow: var(--shadow-sm); }
.session-card.upcoming-soon { border-left: 3px solid var(--relai-blue); background: linear-gradient(90deg, var(--relai-blue-50) 0%, transparent 30%); }
.session-card.in-progress { border-left: 3px solid var(--success); }
.session-card.completed { border-left: 3px solid var(--ink-300); opacity: 0.85; }
.session-card.missed { border-left: 3px solid #f97316; background: linear-gradient(90deg, #fff7ed 0%, transparent 30%); opacity: 0.9; }

.session-time-block {
  text-align: center;
  padding-right: 16px;
  border-right: 1px solid var(--ink-100);
  min-width: 80px;
}

.session-time { font-family: 'JetBrains Mono'; font-size: 18px; font-weight: 700; color: var(--ink-900); line-height: 1; }
.session-time-meridian { font-family: 'JetBrains Mono'; font-size: 11px; color: var(--ink-500); font-weight: 600; }
.session-duration { font-size: 10px; color: var(--ink-400); text-transform: uppercase; letter-spacing: 0.08em; margin-top: 4px; font-weight: 600; }

.session-main { min-width: 0; }
.session-name {
  font-family: 'Poppins'; font-weight: 600; font-size: 16px; margin-bottom: 3px;
  /* 2026-05-19 B3: 1-line clamp + ellipsize for long lead names
     ("Mahira Ventures Private Limited (Formerly Known As Mahira Power
     Systems Private Limited)") which used to wrap to 3 lines and break the
     visual rhythm of the today list. Title attribute carries the full name. */
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  min-width: 0; max-width: 100%;
}
.session-meta { display: flex; gap: 10px; font-size: 12px; color: var(--ink-500); align-items: center; flex-wrap: wrap; }
.session-meta-sep::before { content: '·'; margin-right: 10px; color: var(--ink-300); }
/* FIX #3 — second row of meta chips: hotness / phone / AI outcome / last-touched */
.session-meta-extras { margin-top: 4px; gap: 6px; font-size: 11px; flex-wrap: wrap; }

/* 2026-05-19 B3: today-tile additions */
.session-more-chip {
  font-size: 10px; color: var(--ink-500, #5a5a5a);
  background: var(--ink-50, #f6f7f8);
  border: 1px dashed var(--ink-200, #e6e8eb);
  border-radius: 999px;
  padding: 2px 8px; cursor: help;
}
.session-more-chip:hover { background: var(--ink-100, #ececef); color: var(--ink-700, #3a3a3a); }
.session-conflict {
  margin-top: 4px; font-size: 11px; font-weight: 600;
  color: #dc2626; background: #fef2f2; border: 1px solid #fecaca;
  border-radius: 4px; padding: 2px 8px; display: inline-block;
}
.session-actions {
  display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end;
}
.session-hotness-chip {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 1px 6px; border-radius: 999px; font-weight: 600; font-size: 10px;
  background: #f3f4f6; color: #374151; border: 1px solid #d1d5db;
}
.session-hotness-chip.session-hotness-hot  { background:#fee2e2; color:#991b1b; border-color:#fca5a5; }
.session-hotness-chip.session-hotness-warm { background:#fef3c7; color:#92400e; border-color:#fcd34d; }
.session-hotness-chip.session-hotness-cold { background:#dbeafe; color:#1e3a8a; border-color:#93c5fd; }
.session-phone-chip {
  font-size: 11px; color: var(--ink-700); text-decoration: none; font-weight: 500;
  padding: 1px 6px; border-radius: 4px; background: #f9fafb; border: 1px solid var(--ink-100);
}
.session-phone-chip:hover { background: #f3f4f6; color: var(--relai-blue); }
.session-ai-chip {
  font-size: 10px; color: #4f46e5; font-weight: 600;
  padding: 1px 6px; border-radius: 4px; background: #eef2ff; border: 1px solid #c7d2fe;
}
.session-touched-chip {
  font-size: 10px; color: var(--ink-500); font-style: italic;
}
/* Added 2026-05-18 — match count chip on Today tiles */
.session-match-chip {
  font-size: 10px; font-weight: 700; color: var(--relai-blue);
  padding: 1px 6px; border-radius: 999px;
  background: #eff6ff; border: 1px solid #bfdbfe;
}

/* Price-per-sqft pill on project cards (Client Phase) and prep tiles */
.project-pill.ppsft {
  background: #f3f4f6; color: var(--ink-700);
  font-weight: 600;
}

/* Inline info (ⓘ) button inside prep card footer — neutral chrome
   so it doesn't fight the brochure + freshness chips visually. */
.pmc-info-btn {
  font-size: 12px !important; line-height: 1;
  padding: 2px 7px !important;
  background: var(--paper); color: var(--ink-700);
  border: 1px solid var(--ink-200) !important;
  border-radius: 4px; cursor: pointer;
}
.pmc-info-btn:hover { color: var(--relai-blue); border-color: var(--relai-blue) !important; }

/* FIX #6 — genie chat thread inline expansion inside the prep capture timeline */
.pcap-genie-thread { display: flex; flex-direction: column; gap: 6px; padding: 6px 0; }
.pcap-genie-thread .genie-msg {
  padding: 6px 10px; border-radius: 8px; font-size: 12px; line-height: 1.4;
  max-width: 90%;
}
.pcap-genie-thread .genie-msg.human { background: #eef2ff; align-self: flex-end; border: 1px solid #c7d2fe; }
.pcap-genie-thread .genie-msg.ai    { background: #f9fafb; align-self: flex-start; border: 1px solid var(--ink-100); }
.pcap-genie-thread .genie-msg-role  { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-500); margin-bottom: 2px; }
.pcap-genie-thread .genie-msg-body  { color: var(--ink-900); }

.lead-source-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.lead-source-tag.meta { background: #E7F0FE; color: #1877F2; }
.lead-source-tag.google { background: #FCE8E6; color: #EA4335; }
.lead-source-tag.organic { background: var(--success-soft); color: var(--success); }
.lead-source-tag.referral { background: var(--relai-yellow-soft); color: var(--ink-900); }

.session-bant-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 12px;
  background: var(--success-soft);
  color: var(--success);
  font-size: 11px;
  font-weight: 700;
  font-family: 'JetBrains Mono';
}

.session-bant-pill.med { background: var(--warning-soft); color: var(--warning); }

.session-meet-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 3px;
  background: var(--ink-100);
  color: var(--ink-700);
  font-size: 11px;
  font-weight: 500;
}

.session-meet-pill.imminent { background: var(--relai-yellow); color: var(--ink-900); font-weight: 700; }
.session-cta { display: flex; gap: 6px; }


/* ── PRE-SESSION PREP ────────────────────────────────────── */
/* Two-column layout: requirements / demographics / capture timeline on
   the left, matched-properties (with filter chips + manual add) on the
   right. Matched-properties used to be in the main column and the right
   rail was a HOTKEYS reminder; on 2026-05-17 the user moved matched into
   the rail so the shortlist build is always visible alongside the
   context they're scanning on the left. The right column is wider than
   the old 380px because matched cards need room for name + builder +
   area + price + freshness + brochure pill. */
.prep-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(420px, 1.3fr);
  gap: 24px;
  align-items: flex-start;
}
.prep-matched-rail {
  position: sticky;
  top: 12px;
  /* No height cap — let it grow with the matched list. Sticky means
     it stays in view as the expert scrolls the left column. */
}
.prep-matched-rail .prep-section {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: 8px;
  padding: 16px;
}

/* Below 1100px (laptop screens, side-by-side windows): collapse to a
   single column so neither side gets squeezed. Matched moves below. */
@media (max-width: 1100px) {
  .prep-grid { grid-template-columns: 1fr; }
  .prep-matched-rail { position: static; }
}

.prep-main {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.prep-header {
  padding: 22px 26px;
  border-bottom: 1px solid var(--ink-200);
  background: linear-gradient(180deg, var(--ink-50) 0%, var(--paper) 100%);
}

.prep-title { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 4px; }
.prep-sub { font-size: 13px; color: var(--ink-500); }

.zoho-id-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'JetBrains Mono';
  font-size: 11px;
  padding: 3px 8px;
  background: var(--ink-100);
  border-radius: 3px;
  color: var(--ink-700);
  font-weight: 500;
}

.zoho-id-pill::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #FF6F00; }

.prep-body { padding: 24px 26px; }
.prep-section { margin-bottom: 28px; }

.prep-section-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-500);
  font-weight: 600;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.prep-section-label.ai::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--relai-blue); }


/* ── AI PLAYBOOK ─────────────────────────────────────────── */
.playbook {
  background: var(--relai-blue-50);
  border: 1px solid var(--relai-blue-100);
  border-radius: var(--radius-md);
  padding: 18px 20px;
}

.playbook-list { list-style: none; }

.playbook-list li {
  padding: 10px 0;
  border-top: 1px solid var(--relai-blue-100);
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  line-height: 1.6;
}

.playbook-list li:first-child { border-top: none; padding-top: 0; }

.playbook-num {
  flex-shrink: 0;
  width: 22px; height: 22px;
  background: var(--relai-blue);
  color: white;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Poppins';
}

.playbook-num.refine { background: var(--warning); }
.playbook-num.discuss { background: var(--success); }
.playbook-num.close { background: #6B4DA0; }


/* ── LEAD PROFILE CARD ───────────────────────────────────── */
.lead-profile-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 24px;
  margin-top: 8px;
}

.profile-row {
  display: flex;
  flex-direction: column;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ink-100);
}

.profile-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); font-weight: 600; margin-bottom: 4px; }
.profile-value { font-size: 13px; color: var(--ink-900); font-weight: 500; }
.profile-value.firm { color: var(--warning); }
.profile-value.firm::after { content: ' · firm'; font-size: 10px; }


/* ── BANT-AD MINI ────────────────────────────────────────── */
.bant-mini-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }

.bant-mini-card {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius);
  padding: 10px 12px;
}

.bant-mini-letter {
  width: 22px; height: 22px;
  background: var(--relai-blue);
  color: white;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Poppins';
  font-weight: 700;
  font-size: 11px;
  margin-bottom: 6px;
}

.bant-mini-label { font-size: 10px; color: var(--ink-500); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.bant-mini-score { font-family: 'JetBrains Mono'; font-size: 18px; font-weight: 700; }
.bant-mini-score.high { color: var(--success); }
.bant-mini-score.med { color: var(--warning); }


/* ── PRE-LOADED PROJECTS ─────────────────────────────────── */
.pre-projects { background: var(--ink-50); border-radius: var(--radius-md); padding: 14px 16px; font-size: 12px; }

.pre-projects-summary {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ink-200);
}

.pre-summary-stat { font-family: 'JetBrains Mono'; font-weight: 700; font-size: 18px; color: var(--ink-900); }
.pre-summary-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); font-weight: 600; }

.pre-area-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 12px; }
.pre-area-name { color: var(--ink-700); font-weight: 500; }
.pre-area-count { color: var(--ink-500); font-family: 'JetBrains Mono'; font-weight: 500; }


/* ── SIDE RAIL ───────────────────────────────────────────── */
.side-rail {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  padding: 18px;
  position: sticky;
  top: 80px;
}

.rail-section { margin-bottom: 22px; }
.rail-section:last-child { margin-bottom: 0; }

.rail-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-500);
  font-weight: 600;
  margin-bottom: 10px;
}

.start-session-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 14px;
  background: var(--success);
  color: white;
  border-radius: var(--radius-md);
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 8px;
  transition: background 0.15s;
}

.start-session-btn:hover { background: #155c39; }

.meet-link-row {
  padding: 10px 12px;
  background: var(--ink-50);
  border-radius: var(--radius);
  margin-bottom: 8px;
  font-size: 11px;
  color: var(--ink-500);
  display: flex;
  align-items: center;
  gap: 8px;
}

.meet-link-row .mono { color: var(--ink-700); }


/* ── LIVE SESSION CANVAS ─────────────────────────────────── */
.session-shell {
  display: grid;
  /* 2-column layout after the Client Phase cleanup 2026-05-18: the right
     SHORTLIST · SET 1 pane was removed because the canvas-tab strip
     (Discovery | Shortlist (X) | Compare) already gives shortlist access
     + live count + compare modal. The center pane now expands into the
     freed 340px so project cards have room to breathe. Left lead-profile
     pane stays 240px (it's compact). */
  grid-template-columns: 240px 1fr;
  gap: 12px;
  /* Size to content rather than forcing viewport height — the old
     `flex:1; height:0` made the shell stretch full screen, which left a
     big empty zone under the (now-shorter) lead-profile pane after the
     right shortlist pane was removed. Letting the shell size naturally
     means panes are exactly as tall as their content. */
  align-items: start;
}
/* When the lead-profile pane is collapsed, shrink the column to a 24px
   strip and center the expand button vertically. Was 40px with the button
   anchored at the top leaving a tall empty column below — user flagged
   the dead space 2026-05-24. */
.session-shell.lp-collapsed {
  grid-template-columns: 24px 1fr;
}
.session-shell.lp-collapsed #session-lead-pane .session-pane-body  { display: none; }
.session-shell.lp-collapsed #session-lead-pane .session-pane-title { display: none; }
.session-shell.lp-collapsed #session-lead-pane [disabled]          { display: none; }
.session-shell.lp-collapsed #session-lead-pane {
  border-radius: 0;
  background: transparent;
  border: none;
  border-right: 1px solid var(--ink-200);
}
.session-shell.lp-collapsed #session-lead-pane .session-pane-header {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;   /* expand button now sits at vertical center, no dead space */
  padding: 0;
}
.lp-collapse-btn {
  border: 1px solid var(--ink-200); background: var(--paper);
  color: var(--ink-600); font-size: 14px; font-weight: 700;
  width: 24px; height: 24px; border-radius: 4px;
  cursor: pointer; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
}
.lp-collapse-btn:hover { background: var(--ink-50); border-color: var(--relai-blue); color: var(--relai-blue); }

.session-pane {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.session-pane-header {
  padding: 11px 14px;
  border-bottom: 1px solid var(--ink-200);
  background: var(--ink-50);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}

.session-pane-title {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 600;
  color: var(--ink-500);
}

.session-pane-body { padding: 14px; flex: 1; overflow-y: auto; }
.session-pane-body.no-pad { padding: 0; }


/* ── PHASE BAR ───────────────────────────────────────────── */
.phase-bar {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  padding: 8px;
  margin-bottom: 12px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
}

.phase-step {
  padding: 8px 10px;
  border-radius: var(--radius);
  font-size: 12px;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  color: var(--ink-500);
  transition: all 0.15s;
  position: relative;
}

.phase-step:hover { background: var(--ink-50); color: var(--ink-700); }
.phase-step.active { background: var(--relai-blue); color: white; font-weight: 600; }
.phase-step.completed { color: var(--success); }
.phase-step.completed::before { content: '✓'; margin-right: 4px; }
.phase-step-label { font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.7; display: block; margin-bottom: 1px; }
.phase-step-name { font-size: 12px; }


/* ── LEAD PROFILE PANE ───────────────────────────────────── */
.lp-name { font-family: 'Poppins'; font-weight: 700; font-size: 17px; margin-bottom: 2px; }
.lp-meta { font-size: 11px; color: var(--ink-500); margin-bottom: 14px; }
.lp-section { margin-bottom: 16px; }

.lp-section-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-500);
  font-weight: 600;
  margin-bottom: 6px;
}

.lp-row {
  display: flex;
  justify-content: space-between;
  padding: 4px 0;
  font-size: 12px;
  border-bottom: 1px solid var(--ink-100);
}

.lp-row:last-child { border-bottom: none; }
.lp-row dt { color: var(--ink-500); }
.lp-row dd { color: var(--ink-900); font-weight: 500; text-align: right; }
.lp-row dd.firm { color: var(--warning); }

/* ── Lead-profile Requirement section: collapsible <details> ──────────
   When collapsed, only the summary row is visible (label + 1-line preview).
   Click to expand → reveals the full dl + match count. Saves a lot of
   vertical space when the expert isn't actively reading requirements. */
.lp-req-details { margin-bottom: 16px; }
.lp-req-details > summary {
  list-style: none;                /* hide default triangle */
  cursor: pointer;
  padding: 4px 0;
  user-select: none;
}
.lp-req-details > summary::-webkit-details-marker { display: none; }
.lp-req-summary-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 4px;
}
.lp-req-toggle-hint {
  font-size: 11px; color: var(--ink-400);
  transition: transform 0.15s ease;
}
.lp-req-details[open] .lp-req-toggle-hint { transform: rotate(180deg); }
.lp-req-preview {
  font-size: 11px; color: var(--ink-700);
  line-height: 1.45; word-break: break-word;
}
.lp-req-details[open] .lp-req-preview {
  /* Once expanded the dl below shows the data — hide the duplicate preview */
  display: none;
}
.lp-req-details > dl { margin-top: 6px; }
.lp-req-matchcount {
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--ink-100);
  display: flex; align-items: baseline; gap: 6px;
}
.lp-req-matchcount > span:first-child {
  font-size: 22px; font-weight: 800; color: var(--relai-blue); line-height: 1;
}
.lp-req-matchcount-label {
  font-size: 10px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--ink-500);
}

.lp-bant-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 0;
  font-size: 12px;
}

.lp-bant-name { color: var(--ink-700); font-size: 11px; }
.lp-bant-bar { flex: 1; height: 4px; background: var(--ink-100); border-radius: 2px; margin: 0 8px; overflow: hidden; }
.lp-bant-bar-fill { height: 100%; background: var(--success); border-radius: 2px; }
.lp-bant-bar-fill.med { background: var(--warning); }
.lp-bant-score { font-family: 'JetBrains Mono'; font-weight: 700; font-size: 11px; min-width: 24px; text-align: right; }
.lp-summary { font-size: 12px; line-height: 1.6; background: var(--ink-50); border-radius: var(--radius); padding: 10px 12px; color: var(--ink-700); }


/* ── PHASE CONTENT DISCUSS ───────────────────────────────── */
#phase-content-discuss {
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow: hidden;
  min-height: 0;
}

#session-projects-grid {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  padding: 14px;
  align-content: start;
  background: var(--ink-50);
}

/* ── CANVAS TOOLBAR ──────────────────────────────────────── */
.canvas-toolbar {
  padding: 10px 14px;
  background: var(--paper);
  border-bottom: 1px solid var(--ink-200);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  flex-shrink: 0;
}

.canvas-tabs { display: flex; background: var(--ink-100); padding: 2px; border-radius: var(--radius); }

.canvas-tab {
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-500);
  border-radius: 3px;
  transition: all 0.1s;
}

.canvas-tab.active { background: var(--paper); color: var(--ink-900); font-weight: 600; box-shadow: var(--shadow-sm); }
.canvas-tab:hover:not(.active) { color: var(--ink-700); }

.canvas-filter-pill {
  padding: 4px 10px;
  background: var(--ink-50);
  border: 1px solid var(--ink-200);
  border-radius: 12px;
  font-size: 11px;
  color: var(--ink-700);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}

.canvas-filter-pill.active { background: var(--relai-blue-50); border-color: var(--relai-blue-100); color: var(--relai-blue); }
.canvas-filter-pill .x {
  background:none;
  border:none;
  color: var(--ink-400);
  cursor: pointer;
  font-size:13px;
  line-height:1;
  padding:0 2px;
  margin-left:2px;
  border-radius:999px;
  transition:background 100ms ease, color 100ms ease;
}
.canvas-filter-pill .x:hover { background: rgba(239, 68, 68, 0.12); color: #ef4444; }
.canvas-filter-pill.is-fixed { cursor: help; opacity: 0.85; }

/* Reset link — shown when ≥1 filter has been relaxed (2026-05-19) */
.canvas-filter-reset {
  background:none;
  border:1px dashed var(--ink-300, #d0d4da);
  border-radius:999px;
  padding:3px 10px;
  font-size:11px;
  font-weight:600;
  color: var(--ink-700, #3a3a3a);
  cursor:pointer;
  margin-left:4px;
}
.canvas-filter-reset:hover { background: var(--ink-50, #f6f7f8); border-color: var(--ink-500); }

.canvas-match-counter {
  margin-left: auto;
  display: flex;
  align-items: baseline;
  gap: 4px;
  background: var(--relai-blue);
  color: white;
  padding: 5px 10px;
  border-radius: var(--radius);
}

.canvas-match-num { font-family: 'JetBrains Mono'; font-size: 16px; font-weight: 700; }
.canvas-match-num.yellow { color: var(--relai-yellow); }

/* 2026-05-25: combined indicator (N projects · Fresh · ↻). One clickable
   container replaces the 3 separate elements (counter, status pill,
   refresh button) that were jammed together in the toolbar. */
.canvas-match-combined {
  cursor: pointer;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: background 120ms, border-color 120ms;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.canvas-match-combined:hover {
  background: var(--ink-50);
  border-color: var(--ink-200);
}
.canvas-match-combined .canvas-match-refresh {
  font-size: 12px;
  color: var(--ink-500);
  margin-left: 2px;
}
.canvas-match-combined:hover .canvas-match-refresh { color: var(--relai-blue); }
.canvas-match-label { font-size: 10px; opacity: 0.85; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }

.open-analytics-btn {
  padding: 6px 12px;
  background: var(--ink-900);
  color: white;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background 0.15s;
}

.open-analytics-btn:hover { background: #1a1f2e; }


/* ── PROJECT CARDS ───────────────────────────────────────── */
.project-card {
  padding: 12px 14px;
  border-bottom: 1px solid var(--ink-100);
  cursor: pointer;
  transition: background 0.1s;
}

.project-card:hover { background: var(--ink-50); }

.project-card.in-shortlist {
  border-left: 3px solid var(--relai-yellow);
  background: linear-gradient(90deg, var(--relai-yellow-soft) 0%, transparent 30%);
}

.project-card.selected {
  border-left: 3px solid var(--relai-blue);
  background: var(--relai-blue-50);
}

.project-name { font-family: 'Poppins'; font-weight: 600; font-size: 13px; margin-bottom: 2px; }
.project-builder { font-size: 11px; color: var(--ink-500); }
.project-meta-row { display: flex; gap: 8px; margin-top: 6px; flex-wrap: wrap; }

.project-pill {
  padding: 1px 6px;
  background: var(--ink-100);
  border-radius: 3px;
  font-size: 10px;
  font-weight: 500;
  color: var(--ink-700);
}

.project-pill.config { background: var(--relai-blue-50); color: var(--relai-blue); }
.project-pill.price { font-family: 'JetBrains Mono'; }
.project-pill.poss-ready { background: var(--success-soft); color: var(--success); }
.project-pill.poss-uc { background: var(--warning-soft); color: var(--warning); }
.project-pill.rera { background: var(--paper); border: 1px solid var(--ink-200); color: var(--ink-500); font-family: 'JetBrains Mono'; font-size: 9px; }

.project-fit-row { display: flex; gap: 6px; margin-top: 8px; align-items: center; font-size: 10px; }

.fit-bar { flex: 1; height: 3px; background: var(--ink-100); border-radius: 2px; overflow: hidden; }
.fit-bar-fill { height: 100%; background: var(--success); border-radius: 2px; }
.fit-bar-fill.med { background: var(--warning); }
.fit-score { font-family: 'JetBrains Mono'; font-weight: 700; color: var(--success); }
.fit-score.med { color: var(--warning); }

.project-add-shortlist {
  margin-top: 6px;
  padding: 3px 8px;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: 3px;
  font-size: 10px;
  font-weight: 600;
  color: var(--ink-700);
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all 0.1s;
}

.project-add-shortlist:hover { border-color: var(--relai-blue); color: var(--relai-blue); }
.project-add-shortlist.added { background: var(--relai-yellow-soft); border-color: #E8C200; color: var(--ink-900); }


/* ── REQUIREMENT SETS ────────────────────────────────────── */
.req-tabs-row {
  display: flex;
  gap: 4px;
  padding: 8px;
  background: var(--ink-50);
  border-bottom: 1px solid var(--ink-200);
  overflow-x: auto;
  flex-shrink: 0;
}

.req-tab {
  padding: 8px 14px;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius);
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-700);
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: all 0.1s;
}

.req-tab.active { background: var(--relai-blue); color: white; border-color: var(--relai-blue); font-weight: 600; }

.req-tab-num {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--ink-100);
  color: var(--ink-700);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'JetBrains Mono';
  font-size: 10px;
  font-weight: 700;
}

.req-tab.active .req-tab-num { background: var(--relai-yellow); color: var(--ink-900); }

.req-tab-add {
  padding: 8px 12px;
  background: transparent;
  border: 1px dashed var(--ink-300);
  border-radius: var(--radius);
  font-size: 12px;
  color: var(--ink-500);
  font-weight: 500;
  cursor: pointer;
  transition: all 0.1s;
}

.req-tab-add:hover { border-color: var(--relai-blue); color: var(--relai-blue); }

.req-set-summary { padding: 14px; border-bottom: 1px solid var(--ink-100); }
.req-set-meta { font-size: 11px; color: var(--ink-500); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; margin-bottom: 8px; }

.req-summary-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 12px;
  font-size: 11px;
}

.req-summary-item strong { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-500); margin-bottom: 1px; }
.req-summary-item span { color: var(--ink-900); font-weight: 500; }
.req-summary-item span.firm { color: var(--warning); }

.req-set-match-line {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--ink-100);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.req-match-num { font-family: 'Poppins'; font-weight: 700; font-size: 22px; color: var(--relai-blue); }
.req-match-label { font-size: 10px; color: var(--ink-500); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }


/* ── SHORTLIST ───────────────────────────────────────────── */
.shortlist-section {
  padding: 14px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.shortlist-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.shortlist-title { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; color: var(--ink-700); }

.shortlist-count {
  font-family: 'JetBrains Mono';
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  background: var(--relai-yellow);
  color: var(--ink-900);
}

.shortlist-empty {
  padding: 24px 14px;
  text-align: center;
  background: var(--ink-50);
  border-radius: var(--radius);
  color: var(--ink-500);
  font-size: 12px;
  font-style: italic;
  margin-bottom: 10px;
}

.shortlist-item {
  padding: 10px 12px;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-left: 3px solid var(--relai-yellow);
  border-radius: var(--radius);
  margin-bottom: 6px;
  cursor: pointer;
  transition: border-color 0.1s;
}

.shortlist-item:hover { border-color: var(--relai-blue); }

.shortlist-item-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px; height: 18px;
  border-radius: 4px;
  background: var(--ink-900);
  color: white;
  font-family: 'JetBrains Mono';
  font-size: 10px;
  font-weight: 700;
  margin-right: 6px;
}

.shortlist-item-name { font-family: 'Poppins'; font-weight: 600; font-size: 12px; display: inline; }
.shortlist-item-meta { font-size: 10px; color: var(--ink-500); margin-top: 2px; }

.shortlist-item-reason {
  margin-top: 4px;
  padding: 6px 8px;
  background: var(--ink-50);
  border-radius: 3px;
  font-size: 11px;
  line-height: 1.4;
  color: var(--ink-700);
  font-style: italic;
}

.shortlist-item-actions { display: flex; gap: 4px; margin-top: 6px; }

.shortlist-action-btn {
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 500;
  background: transparent;
  color: var(--ink-500);
  border: 1px solid var(--ink-200);
  border-radius: 3px;
  transition: all 0.1s;
}

.shortlist-action-btn:hover { background: var(--ink-100); color: var(--ink-700); }
.shortlist-action-btn.danger:hover { color: var(--danger); border-color: var(--danger); }


/* ── AI COPILOT ──────────────────────────────────────────── */
.ai-copilot {
  margin-top: auto;
  padding: 12px;
  background: var(--relai-blue);
  color: white;
  border-radius: var(--radius);
}

.ai-copilot-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  margin-bottom: 6px;
}

.ai-copilot-header::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--relai-yellow);
  box-shadow: 0 0 0 2px rgba(255,255,0,0.3);
  animation: pulse-dot 1.5s ease-in-out infinite;
}

.ai-copilot-text { font-size: 12px; line-height: 1.5; }
.ai-copilot-text em { color: var(--relai-yellow); font-style: normal; font-weight: 600; }

.ai-copilot-action {
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  font-size: 10px;
  font-weight: 600;
  background: rgba(255,255,255,0.15);
  border-radius: 3px;
  color: white;
  cursor: pointer;
  transition: background 0.1s;
}

.ai-copilot-action:hover { background: rgba(255,255,255,0.25); }


/* ── SESSION CLOSE ───────────────────────────────────────── */
.close-grid { display: grid; grid-template-columns: 1fr 380px; gap: 24px; align-items: flex-start; }

.close-summary-card {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.close-header {
  background: linear-gradient(90deg, var(--relai-blue) 0%, var(--relai-blue-600) 100%);
  color: white;
  padding: 22px 26px;
}

.close-title { font-family: 'Poppins'; font-size: 22px; font-weight: 700; }
.close-sub { font-size: 13px; opacity: 0.85; margin-top: 4px; }
.close-body { padding: 24px 26px; }
.close-section { margin-bottom: 26px; }

.close-section-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-500);
  font-weight: 600;
  margin-bottom: 12px;
}

.canonical-set-radio { display: flex; gap: 10px; margin-bottom: 12px; }

.canonical-set-card {
  flex: 1;
  padding: 14px;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all 0.15s;
  background: var(--paper);
}

.canonical-set-card.selected { border-color: var(--relai-blue); background: var(--relai-blue-50); box-shadow: var(--shadow-sm); }

.canonical-set-radio-circle {
  width: 16px; height: 16px;
  border-radius: 50%;
  border: 2px solid var(--ink-300);
  margin-bottom: 8px;
  position: relative;
  transition: border-color 0.1s;
}

.canonical-set-card.selected .canonical-set-radio-circle { border-color: var(--relai-blue); }

.canonical-set-card.selected .canonical-set-radio-circle::after {
  content: '';
  position: absolute;
  inset: 3px;
  background: var(--relai-blue);
  border-radius: 50%;
}

.canonical-set-name { font-family: 'Poppins'; font-weight: 600; font-size: 13px; margin-bottom: 4px; }
.canonical-set-summary { font-size: 11px; color: var(--ink-500); line-height: 1.5; }
.canonical-set-counts { display: flex; gap: 12px; margin-top: 8px; font-size: 11px; }
.canonical-set-counts span { color: var(--ink-700); }
.canonical-set-counts strong { color: var(--ink-900); font-family: 'JetBrains Mono'; font-weight: 700; }

.include-alts-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: var(--ink-50);
  border-radius: var(--radius);
  font-size: 12px;
}

.toggle {
  width: 32px; height: 18px;
  background: var(--ink-300);
  border-radius: 9px;
  position: relative;
  cursor: pointer;
  transition: background 0.15s;
  flex-shrink: 0;
}

.toggle::after {
  content: '';
  position: absolute;
  top: 2px; left: 2px;
  width: 14px; height: 14px;
  background: white;
  border-radius: 50%;
  transition: left 0.15s;
}

.toggle.on { background: var(--relai-blue); }
.toggle.on::after { left: 16px; }

.final-note {
  width: 100%;
  min-height: 80px;
  padding: 10px 12px;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.5;
  resize: vertical;
  transition: border-color 0.1s, box-shadow 0.1s;
}

.final-note:focus { outline: none; border-color: var(--relai-blue); box-shadow: 0 0 0 2px var(--relai-blue-50); }


/* ── GENERATE / NOTIFY BUTTON ────────────────────────────── */
.generate-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 16px;
  background: var(--success);
  color: white;
  border-radius: var(--radius-md);
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 8px;
  transition: background 0.15s;
}

.generate-btn:hover { background: #155c39; }


/* ── REPORT CONFIRMATION ─────────────────────────────────── */
.report-success-hero {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-left: 4px solid var(--success);
  border-radius: var(--radius-md);
  padding: 28px 32px;
  margin-bottom: 20px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
}

.report-success-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--success-soft);
  color: var(--success);
  display: flex;
  align-items: center;
  justify-content: center;
}

.report-success-title { font-family: 'Poppins'; font-size: 22px; font-weight: 700; margin-bottom: 4px; }
.report-success-sub { font-size: 13px; color: var(--ink-500); line-height: 1.5; }

.report-link-card {
  background: var(--ink-50);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.report-link-icon {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--relai-blue);
  flex-shrink: 0;
}

.report-link-info { flex: 1; min-width: 0; }
.report-link-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); font-weight: 600; margin-bottom: 4px; }
.report-link-url { font-family: 'JetBrains Mono'; font-size: 12px; color: var(--ink-900); word-break: break-all; font-weight: 500; }


/* ── POST-SESSION RECORD ─────────────────────────────────── */
.record-grid { display: grid; grid-template-columns: 1fr 360px; gap: 24px; align-items: flex-start; }

.record-section {
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  margin-bottom: 16px;
  overflow: hidden;
}

.record-section-header {
  padding: 14px 18px;
  border-bottom: 1px solid var(--ink-200);
  background: var(--ink-50);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.record-section-title {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--ink-700);
  display: flex;
  align-items: center;
  gap: 8px;
}

.record-section-status {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 3px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.record-section-status.success { background: var(--success-soft); color: var(--success); }
.record-section-status.processing { background: var(--warning-soft); color: var(--warning); }
.record-section-status.attention { background: var(--relai-yellow); color: var(--ink-900); }
.record-section-body { padding: 16px 18px; font-size: 13px; line-height: 1.6; color: var(--ink-700); }

.view-tracking-row { display: flex; gap: 16px; padding: 12px 14px; background: var(--ink-50); border-radius: var(--radius); margin-bottom: 10px; }
.vt-stat-block { flex: 1; }
.vt-stat-num { font-family: 'JetBrains Mono'; font-size: 20px; font-weight: 700; line-height: 1; }
.vt-stat-num.zero { color: var(--ink-400); }
.vt-stat-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); font-weight: 600; margin-top: 4px; }

.next-action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

.next-action-btn {
  padding: 12px;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius);
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-700);
  text-align: left;
  transition: all 0.1s;
}

.next-action-btn:hover { border-color: var(--relai-blue); background: var(--relai-blue-50); color: var(--relai-blue); }
.next-action-btn strong { display: block; font-family: 'Poppins'; font-size: 13px; margin-bottom: 2px; color: var(--ink-900); }


/* ── AI COACH ────────────────────────────────────────────── */
.coach-card {
  background: linear-gradient(135deg, #F4F6FB 0%, #FFFFFF 50%, #FFFAEB 100%);
  border: 1px solid var(--relai-blue-100);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: 16px;
}

.coach-header {
  padding: 18px 22px;
  border-bottom: 1px solid var(--relai-blue-100);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.coach-title { font-family: 'Poppins'; font-weight: 700; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.coach-title::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--relai-blue); }
.coach-rating-num { font-family: 'Poppins'; font-size: 28px; font-weight: 700; color: var(--success); line-height: 1; }
.coach-rating-num.med { color: var(--warning); }
.coach-rating-out { font-family: 'JetBrains Mono'; font-size: 12px; color: var(--ink-500); font-weight: 500; }
.coach-rating-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); font-weight: 600; }
.coach-body { padding: 22px; }
.coach-section { margin-bottom: 22px; }
.coach-section:last-child { margin-bottom: 0; }

.coach-section-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-500);
  font-weight: 700;
  margin-bottom: 10px;
}

.coach-breakdown { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }

.coach-bd-item { background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--radius); padding: 8px 10px; }
.coach-bd-name { font-size: 9px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-500); font-weight: 700; margin-bottom: 4px; }
.coach-bd-bar { height: 4px; background: var(--ink-100); border-radius: 2px; overflow: hidden; margin-bottom: 5px; }
.coach-bd-bar-fill { height: 100%; background: var(--success); border-radius: 2px; }
.coach-bd-bar-fill.med { background: var(--warning); }
.coach-bd-score { font-family: 'JetBrains Mono'; font-size: 13px; font-weight: 700; }
.coach-bd-score.med { color: var(--warning); }

.coach-list { list-style: none; padding: 0; }

.coach-list li {
  padding: 12px 14px;
  border-radius: var(--radius);
  margin-bottom: 6px;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  font-size: 13px;
  line-height: 1.6;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.coach-list.went-well li { border-left: 3px solid var(--success); }
.coach-list.improve li { border-left: 3px solid var(--warning); }

.coach-list-icon {
  width: 18px; height: 18px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
}

.coach-list.went-well .coach-list-icon { background: var(--success-soft); color: var(--success); }
.coach-list.improve .coach-list-icon { background: var(--warning-soft); color: var(--warning); }
.coach-list-text strong { color: var(--ink-900); display: block; margin-bottom: 2px; font-weight: 600; }
.coach-list-text { color: var(--ink-700); }

.coach-list-text em {
  font-style: normal;
  font-family: 'JetBrains Mono';
  font-size: 11px;
  background: var(--ink-100);
  padding: 1px 4px;
  border-radius: 2px;
  margin-left: 4px;
  color: var(--ink-700);
}

.coach-list-text .quote {
  display: block;
  margin-top: 6px;
  padding: 6px 10px;
  background: var(--ink-50);
  border-left: 2px solid var(--ink-300);
  font-style: italic;
  color: var(--ink-700);
  font-size: 12px;
}

.coach-suggestion {
  background: var(--relai-yellow);
  border-radius: var(--radius);
  padding: 14px 16px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-900);
}

.coach-suggestion strong { display: block; margin-bottom: 4px; font-family: 'Poppins'; font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; }

.coach-meta-row {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  padding: 10px 14px;
  background: var(--ink-50);
  border-radius: var(--radius);
  font-size: 11px;
  color: var(--ink-500);
  margin-top: 14px;
}

.coach-meta-row strong { color: var(--ink-700); }


/* ── PERFORMANCE DASHBOARD ───────────────────────────────── */
.perf-grid-top { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }

.perf-stat-card { background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--radius-md); padding: 14px 16px; }
.perf-stat-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); font-weight: 600; margin-bottom: 6px; }
.perf-stat-num { font-family: 'Poppins'; font-size: 28px; font-weight: 700; line-height: 1; margin-bottom: 4px; }
.perf-stat-trend { font-size: 11px; color: var(--success); font-weight: 600; }
.perf-stat-trend.down { color: var(--danger); }
.perf-stat-comparison { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--ink-100); font-size: 11px; color: var(--ink-500); display: flex; justify-content: space-between; }
.perf-stat-comparison strong { color: var(--ink-700); font-weight: 600; }

.perf-section { background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--radius-md); padding: 20px 22px; margin-bottom: 16px; }
.perf-section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.perf-section-title { font-family: 'Poppins'; font-weight: 700; font-size: 16px; }
.perf-section-sub { font-size: 11px; color: var(--ink-500); margin-top: 2px; }

.perf-funnel { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-bottom: 12px; }
.perf-funnel-step { padding: 18px 20px; background: var(--ink-50); border-right: 1px solid var(--ink-200); text-align: center; }
.perf-funnel-step:last-child { border-right: none; }
.perf-funnel-num { font-family: 'Poppins'; font-size: 28px; font-weight: 700; line-height: 1; }
.perf-funnel-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-500); font-weight: 600; margin-top: 4px; }
.perf-funnel-conv { font-family: 'JetBrains Mono'; font-size: 11px; color: var(--success); font-weight: 700; margin-top: 4px; }

.chart-stub { height: 240px; background: var(--ink-50); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; color: var(--ink-400); font-size: 12px; border: 1px dashed var(--ink-300); }

.perf-table { width: 100%; border-collapse: collapse; }
.perf-table th { text-align: left; padding: 10px 14px; font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); font-weight: 700; border-bottom: 1px solid var(--ink-200); }
.perf-table td { padding: 12px 14px; border-bottom: 1px solid var(--ink-100); font-size: 13px; }
.perf-table tr:hover td { background: var(--ink-50); cursor: pointer; }

.rating-pill { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 10px; font-family: 'JetBrains Mono'; font-size: 11px; font-weight: 700; background: var(--success-soft); color: var(--success); }
.rating-pill.med { background: var(--warning-soft); color: var(--warning); }


/* ── REQ SET FORM OVERLAY ────────────────────────────────── */
/* Req-set form — fixed modal backdrop */
.req-set-form-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.48);
  z-index: 9000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.req-set-form-overlay.open { display: flex; }

/* The actual popup card */
.req-form-card {
  background: var(--paper);
  border-radius: 12px;
  width: 500px;
  max-width: 100%;
  max-height: calc(100vh - 40px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.28), 0 4px 16px rgba(0,0,0,0.12);
}

.req-form-header {
  padding: 12px 14px;
  background: var(--relai-blue);
  color: white;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.req-form-title { font-family: 'Poppins'; font-weight: 700; font-size: 13px; }
.req-form-sub { font-size: 10px; opacity: 0.85; margin-top: 1px; }

.req-form-close {
  margin-left: auto;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 600;
  transition: background 0.1s;
}

.req-form-close:hover { background: rgba(255,255,255,0.3); }
.req-form-body { padding: 12px 14px; flex: 1; overflow-y: auto; }

.req-form-why {
  background: var(--relai-yellow-soft);
  border-left: 2px solid #E8C200;
  border-radius: 3px;
  padding: 8px 10px;
  margin-bottom: 14px;
}

.req-form-why-label { font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-700); font-weight: 700; margin-bottom: 4px; }

.req-form-why-input {
  width: 100%;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 12px;
  color: var(--ink-900);
  resize: none;
  outline: none;
  line-height: 1.4;
}

.req-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.req-form-field { display: flex; flex-direction: column; }
.req-form-field.full { grid-column: 1 / -1; }

.req-form-field-label {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-500);
  font-weight: 700;
  margin-bottom: 3px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.req-form-field-label .changed-tag {
  background: var(--relai-yellow);
  color: var(--ink-900);
  font-size: 8px;
  padding: 1px 4px;
  border-radius: 2px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

.req-form-input, .req-form-select {
  border: 1px solid var(--ink-200);
  border-radius: 3px;
  padding: 5px 8px;
  font-size: 12px;
  background: var(--paper);
  font-family: inherit;
  color: var(--ink-900);
  transition: border-color 0.1s, box-shadow 0.1s;
}

.req-form-input:focus, .req-form-select:focus { outline: none; border-color: var(--relai-blue); box-shadow: 0 0 0 2px var(--relai-blue-50); }
.req-form-input.likely-change { background: #FFFCE0; border-color: #E8C200; }

.req-poss-pills { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 2px; }
.req-poss-pill { display: flex; align-items: center; cursor: pointer; }
.req-poss-pill input { display: none; }
.req-poss-pill span { padding: 4px 11px; border: 1px solid var(--ink-200); border-radius: 20px; font-size: 11px; font-weight: 500; color: var(--ink-600); background: var(--paper); transition: background 0.1s, border-color 0.1s, color 0.1s; user-select: none; }
.req-poss-pill input:checked + span { background: var(--relai-blue); border-color: var(--relai-blue); color: #fff; font-weight: 600; }
.req-poss-pill:hover span { border-color: var(--relai-blue); }

.req-cluster-btn { font-size: 11px; padding: 3px 9px; border-radius: 12px; background: var(--ink-100); color: var(--ink-600); border: 1px solid var(--ink-200); cursor: pointer; font-weight: 500; transition: background 0.1s, color 0.1s, border-color 0.1s; }
.req-cluster-btn:hover { background: var(--relai-blue); color: #fff; border-color: var(--relai-blue); }

.req-form-footer { padding: 10px 14px; border-top: 1px solid var(--ink-200); background: var(--ink-50); flex-shrink: 0; display: flex; flex-direction: column; gap: 8px; }

.req-form-match-preview {
  padding: 8px 10px;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: 3px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
}

.req-form-match-num { font-family: 'Poppins'; font-weight: 700; font-size: 22px; color: var(--relai-blue); line-height: 1; }
.req-form-match-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-500); font-weight: 600; }
.req-form-actions { display: flex; gap: 6px; }
.req-form-actions .btn { flex: 1; justify-content: center; }

.req-tab-menu-trigger {
  background: rgba(255,255,255,0.15);
  color: inherit;
  width: 16px; height: 16px;
  border-radius: 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  line-height: 0;
  cursor: pointer;
  margin-left: 2px;
  transition: background 0.1s;
}

.req-tab-menu-trigger:hover { background: rgba(255,255,255,0.3); }
.req-tab.active .req-tab-menu-trigger { background: rgba(255,255,255,0.2); }


/* ── SCRIPTED CONTENT CARDS ──────────────────────────────── */
.content-script { padding: 22px 28px; height: 100%; overflow-y: auto; }
.script-intro { margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--ink-100); }
.script-intro-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--relai-blue); font-weight: 700; margin-bottom: 4px; }
.script-intro-title { font-family: 'Poppins'; font-weight: 700; font-size: 22px; letter-spacing: -0.02em; margin-bottom: 4px; }
.script-intro-sub { font-size: 12px; color: var(--ink-500); line-height: 1.5; }
.script-talking-points { display: flex; flex-direction: column; gap: 12px; }

.script-card {
  background: var(--ink-50);
  border-left: 3px solid var(--relai-blue);
  border-radius: var(--radius-md);
  padding: 16px 20px;
  transition: all 0.15s;
}

.script-card.current {
  background: var(--paper);
  border: 1px solid var(--relai-blue-100);
  border-left: 3px solid var(--relai-blue);
  box-shadow: var(--shadow-md);
}

.script-card-num {
  display: inline-block;
  background: var(--relai-blue);
  color: white;
  font-family: 'JetBrains Mono';
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 3px;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.script-card.done .script-card-num { background: var(--success); }
.script-card.done .script-card-num::before { content: '✓ '; }
.script-card-title { font-family: 'Poppins'; font-weight: 700; font-size: 15px; margin-bottom: 6px; }
.script-card-body { font-size: 14px; line-height: 1.7; color: var(--ink-700); }
.script-card-body strong { color: var(--ink-900); font-weight: 600; }
.script-card-body em { font-style: normal; font-weight: 600; background: var(--relai-yellow-soft); padding: 0 3px; border-radius: 2px; color: var(--ink-900); }
.script-card-action { margin-top: 12px; display: flex; gap: 8px; align-items: center; }

.script-card-cta {
  padding: 6px 12px;
  background: var(--relai-blue);
  color: white;
  border-radius: 3px;
  font-size: 12px;
  font-weight: 600;
  transition: background 0.1s;
}

.script-card-cta:hover { background: var(--relai-blue-600); }

.script-progress {
  margin-top: 24px;
  padding: 14px 18px;
  background: var(--ink-50);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  gap: 14px;
}

.script-progress-text { font-size: 12px; color: var(--ink-700); }


/* ── LEAD STATUS DROPDOWN ────────────────────────────────── */
.lead-status-dd { position: relative; display: inline-block; }

.lead-status-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  background: var(--success-soft);
  color: var(--success);
  border: 1px solid transparent;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: border-color 0.1s;
}

.lead-status-trigger:hover { border-color: var(--ink-300); }
.lead-status-trigger::after { content: '▾'; font-size: 9px; opacity: 0.6; margin-left: 2px; }
.lead-status-trigger .zoho-tag { font-family: 'JetBrains Mono'; font-size: 9px; opacity: 0.7; margin-left: 4px; padding-left: 4px; border-left: 1px solid currentColor; }
.lead-status-trigger .sdot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

.lead-status-menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-md);
  padding: 6px;
  min-width: 240px;
  z-index: 100;
  box-shadow: var(--shadow-lg);
  display: none;
  max-height: 360px;
  overflow-y: auto;
}

.lead-status-menu.open { display: block; }

.status-menu-group-label {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-400);
  font-weight: 700;
  padding: 6px 8px 4px;
}

.status-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 3px;
  font-size: 12px;
  cursor: pointer;
  width: 100%;
  text-align: left;
  color: var(--ink-700);
  transition: background 0.1s;
}

.status-menu-item:hover { background: var(--ink-100); }
.status-menu-item.active { background: var(--relai-blue-50); color: var(--relai-blue); font-weight: 600; }
.status-menu-item .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ink-300); flex-shrink: 0; }
.status-menu-item .dot.green { background: var(--success); }
.status-menu-item .dot.yellow { background: #E5C800; }
.status-menu-item .dot.blue { background: var(--relai-blue); }
.status-menu-item .dot.red { background: var(--danger); }
.status-menu-item .dot.grey { background: var(--ink-400); }


/* ── ANALYTICS MODAL ─────────────────────────────────────── */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 20, 32, 0.55);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
}

.modal-backdrop.open { opacity: 1; pointer-events: auto; }

.analytics-modal {
  position: fixed;
  inset: 0;
  background: var(--paper);
  z-index: 201;
  display: none;
  flex-direction: column;
  overflow: hidden;
}

.analytics-modal.open { display: flex; }

.am-header {
  padding: 14px 20px;
  border-bottom: 1px solid var(--ink-200);
  background: var(--ink-50);
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

.am-header-title { font-family: 'Poppins'; font-weight: 700; font-size: 15px; }
.am-header-sub { font-size: 11px; color: var(--ink-500); }

.am-header-stub {
  font-size: 10px;
  color: white;
  background: var(--ink-900);
  padding: 3px 8px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}

.am-close {
  margin-left: auto;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--ink-100);
  color: var(--ink-700);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 600;
  transition: background 0.1s;
}

.am-close:hover { background: var(--ink-200); }

.am-body { flex: 1; display: grid; grid-template-columns: 1fr 320px; overflow: hidden; background: var(--ink-50); }
.am-map { position: relative; background: #F0EDE5; overflow: hidden; }

.am-map-toolbar {
  position: absolute;
  top: 12px; left: 12px;
  display: flex;
  gap: 6px;
  z-index: 5;
}

.am-toolbar-pill {
  padding: 6px 12px;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: 16px;
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-700);
  cursor: pointer;
  transition: all 0.1s;
}

.am-toolbar-pill.active { background: var(--relai-blue); color: white; border-color: var(--relai-blue); }

.am-side { background: var(--paper); border-left: 1px solid var(--ink-200); overflow-y: auto; }

.am-side-header {
  padding: 12px 16px;
  background: var(--ink-50);
  border-bottom: 1px solid var(--ink-200);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-500);
  font-weight: 600;
  position: sticky;
  top: 0;
  z-index: 2;
}


/* ── FOCUS MODE ──────────────────────────────────────────── */
body.focus-mode .topbar { height: 44px; padding: 0 18px; }
body.focus-mode .brand-logo { width: 22px; height: 22px; font-size: 11px; }
body.focus-mode .brand-name { font-size: 13px; }
body.focus-mode .brand-tool, body.focus-mode .version-pill { display: none; }
body.focus-mode .user-avatar { width: 24px; height: 24px; font-size: 10px; }
body.focus-mode .user-name, body.focus-mode .user-role { display: none; }
body.focus-mode .sidebar { width: 56px; padding: 16px 6px; overflow: visible; }
body.focus-mode .nav-group-label { display: none; }
body.focus-mode .nav-item { justify-content: center; padding: 10px; font-size: 0; gap: 0; }
body.focus-mode .nav-item .nav-item-icon { font-size: 14px; flex-shrink: 0; }
body.focus-mode .nav-item-count { display: none; }
body.focus-mode .nav-item.attention::after { content: ''; position: absolute; top: 6px; right: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--relai-yellow); }
body.focus-mode .main { padding: 12px 18px 16px; }
body.focus-mode #page-session .page-header { display: none; }


/* ── DEMO TOOLBAR ────────────────────────────────────────── */
.demo-toolbar {
  position: fixed;
  bottom: 16px; right: 16px;
  background: var(--ink-900);
  color: white;
  padding: 10px 14px;
  border-radius: var(--radius-md);
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  box-shadow: var(--shadow-lg);
  z-index: 200;
}

.demo-toolbar-label {
  font-family: 'Poppins';
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--relai-yellow);
  margin-right: 4px;
}

.demo-btn {
  padding: 4px 10px;
  background: rgba(255,255,255,0.1);
  border-radius: 3px;
  color: white;
  font-size: 11px;
  font-weight: 500;
  transition: background 0.1s;
}

.demo-btn:hover { background: rgba(255,255,255,0.2); }
.demo-btn.primary { background: var(--relai-yellow); color: var(--ink-900); font-weight: 600; }
.demo-btn.primary:hover { background: #E6E600; }

.demo-dropdown { position: relative; }

.demo-dropdown-menu {
  position: absolute;
  bottom: calc(100% + 6px); right: 0;
  background: var(--ink-900);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: var(--radius-md);
  min-width: 300px;
  padding: 6px;
  display: none;
  box-shadow: var(--shadow-lg);
}

.demo-dropdown-menu.open { display: block; }

.demo-dropdown-item {
  display: block;
  width: 100%;
  text-align: left;
  padding: 8px 10px;
  border-radius: 3px;
  color: white;
  font-size: 12px;
  transition: background 0.1s;
}

.demo-dropdown-item:hover { background: rgba(255,255,255,0.1); }
.demo-dropdown-item-meta { display: block; font-size: 10px; opacity: 0.6; margin-top: 2px; }


/* ── HELPERS ─────────────────────────────────────────────── */
.flex { display: flex; }
.items-center { align-items: center; }
.gap-md { gap: 12px; }

.session-status-on {
  font-size: 11px;
  color: var(--success);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: flex;
  align-items: center;
  gap: 6px;
}

.session-status-on::before {
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--success);
  animation: pulse-dot 1.5s ease-in-out infinite;
}

@keyframes pulse-rec { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

@keyframes spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }

.spinner {
  width: 14px; height: 14px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  display: inline-block;
}

/* PAGE VISIBILITY */
.page { display: none; }
.page.active { display: block; }

/* Session page: flex column so session-shell fills all remaining height */
#page-session.active {
  display: flex;
  flex-direction: column;
  padding-bottom: 0 !important;
  overflow: hidden;
}

/* Remove .main bottom padding when session is active */
.main:has(#page-session.active) {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding-bottom: 0 !important;
}

/* ── Builder filter bar ──────────────────────────────────────── */
.builder-filter-btn {
  padding: 4px 10px;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: 12px;
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-700);
  cursor: pointer;
  transition: all 0.12s;
  white-space: nowrap;
}

.builder-filter-btn:hover {
  border-color: var(--ink-400);
  background: var(--ink-50);
}

.builder-filter-btn.active {
  background: var(--relai-blue-50);
  border-color: var(--relai-blue-100);
  color: var(--relai-blue);
  font-weight: 600;
}

/* ── Area search suggestions ─────────────────────────────────── */
.area-suggestion-item.highlighted {
  background: var(--relai-blue-50);
}
.area-suggestion-item:last-child {
  border-bottom: none;
}

/* ── Call notes hotness buttons ──────────────────────────────── */
.hotness-btn[data-hotness="hot"].selected  { border-color:#ef4444;background:#fef2f2;color:#dc2626; }
.hotness-btn[data-hotness="warm"].selected { border-color:#f59e0b;background:#fffbeb;color:#d97706; }
.hotness-btn[data-hotness="cold"].selected { border-color:#3b82f6;background:#eff6ff;color:#2563eb; }

/* ── Admin segment pills ─────────────────────────────────────── */
.admin-seg-pill { padding:6px 14px;border:1.5px solid var(--ink-200);border-radius:20px;font-size:12px;font-weight:500;color:var(--ink-600);background:var(--paper);cursor:pointer;transition:all .15s; }
.admin-seg-pill:hover { border-color:var(--relai-blue);color:var(--relai-blue); }
.admin-seg-pill.active { background:var(--relai-blue);border-color:var(--relai-blue);color:#fff;font-weight:600; }

/* ── Prep view: engage briefing, chat mismatch, genie replay, activity timeline ── */

.prep-briefing-body { display:flex;flex-direction:column;gap:10px; }
.briefing-block { padding:10px 12px;border:1px solid var(--ink-200);border-radius:6px;background:var(--paper); }
.briefing-block.next     { border-color:#bfdbfe;background:#eff6ff; }
.briefing-block.reexpert { border-color:#fde68a;background:#fffbeb; }
.briefing-block-label    { font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-500);margin-bottom:4px; }
.briefing-block-body     { font-size:13px;color:var(--ink-800);line-height:1.55;white-space:pre-wrap;word-break:break-word; }

.prep-mismatch-body { display:flex;flex-direction:column;gap:8px; }
.mismatch-row { display:grid;grid-template-columns:160px 1fr;gap:12px;padding:8px 10px;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;font-size:12px; }
.mismatch-field { font-weight:600;color:#92400e; }
.mismatch-cmp { display:flex;flex-direction:column;gap:2px;color:var(--ink-800); }
.mismatch-tag { display:inline-block;padding:1px 6px;font-size:10px;font-weight:600;border-radius:3px;margin-right:6px;text-transform:uppercase;letter-spacing:0.05em; }
.mismatch-tag.crm  { background:#fee2e2;color:#b91c1c; }
.mismatch-tag.chat { background:#dbeafe;color:#1e40af; }

.prep-genie-body { display:flex;flex-direction:column;gap:6px; }
.genie-meta   { font-size:11px;color:var(--ink-500);margin-bottom:4px; }
.genie-thread { display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto;padding:8px;background:#f9fafb;border:1px solid var(--ink-200);border-radius:6px; }
.genie-msg    { padding:8px 10px;border-radius:8px;font-size:12.5px;line-height:1.5;max-width:88%; }
.genie-msg.human { align-self:flex-end;background:#dbeafe;color:#0f172a; }
.genie-msg.ai    { align-self:flex-start;background:#fff;border:1px solid var(--ink-200);color:var(--ink-800); }
.genie-msg.system, .genie-msg.tool { align-self:center;background:transparent;color:var(--ink-400);font-size:11px;font-style:italic; }
.genie-msg-role { font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;opacity:0.65;margin-bottom:2px; }
.genie-msg-body { white-space:pre-wrap;word-break:break-word; }

.prep-timeline-body { display:flex;flex-direction:column;gap:4px;max-height:520px;overflow-y:auto; }
.timeline-row   { display:grid;grid-template-columns:28px 1fr;gap:8px;padding:8px 10px;border-bottom:1px solid var(--ink-100);font-size:12px; }
.timeline-row:last-child { border-bottom:none; }
.timeline-icon  { font-size:14px;line-height:1.4;color:var(--ink-500); }
.timeline-title { font-weight:600;color:var(--ink-800); }
.timeline-when  { display:inline-block;background:var(--ink-100);color:var(--ink-600);padding:1px 6px;border-radius:3px;font-weight:500;margin-right:6px;font-size:11px; }
.timeline-sub   { font-size:11px;color:var(--ink-500);margin-top:2px; }
.timeline-text  { font-size:12px;color:var(--ink-700);margin-top:4px;white-space:pre-wrap;word-break:break-word;line-height:1.5;background:#fafafa;border-left:2px solid var(--ink-200);padding:4px 8px;border-radius:0 4px 4px 0; }

/* ── Multi-requirement tab: date + latest indicator ── */
.req-tab .req-tab-date { font-size:10px;color:var(--ink-400);margin-left:6px;font-weight:500; }
.req-tab.active .req-tab-date { color:var(--ink-500); }
.req-tab .req-tab-flag { font-size:9px;background:#dcfce7;color:#15803d;padding:1px 5px;border-radius:8px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;margin-left:6px; }

/* ── Prep view: add-note form ── */
.prep-note-form { display:flex;flex-direction:column;gap:8px; }
#prep-note-input { width:100%;resize:vertical;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.45;border:1px solid var(--ink-200);border-radius:6px;background:var(--paper);color:var(--ink-800); }
#prep-note-input:focus { outline:none;border-color:var(--relai-blue);box-shadow:0 0 0 2px rgba(51,80,162,0.1); }
.prep-note-actions { display:flex;align-items:center;gap:8px;justify-content:flex-end; }
.prep-note-status { font-size:11px;color:var(--ink-500);flex:1; }
.prep-note-status.saving { color:var(--ink-600); }
.prep-note-status.saved  { color:#16a34a;font-weight:600; }
.prep-note-status.error  { color:#dc2626; }
.prep-note-shortcut { font-family:var(--font-mono);font-size:10px;color:var(--ink-400); }

/* ── Topbar universal search ── */
.topbar-search { position:relative;flex:1;max-width:480px;margin:0 16px;display:flex;align-items:center; }
.topbar-search-icon { position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-400);pointer-events:none; }
#topbar-search { width:100%;padding:6px 10px 6px 30px;border:1px solid var(--ink-200);border-radius:6px;font-size:13px;font-family:inherit;background:var(--paper);color:var(--ink-800); }
#topbar-search:focus { outline:none;border-color:var(--relai-blue);box-shadow:0 0 0 2px rgba(51,80,162,0.12); }

/* Client Phase cleanup 2026-05-18: hide the global topbar search while
   the expert is in a live session. They're locked into one lead during
   the call, searching is just visual noise that also tempts mis-clicks
   away from the active session. body.in-session is toggled in goTo(). */
body.in-session #topbar-search-wrap { display: none !important; }
/* Also hide the topbar #session-bar status pill — it shows "No active
   session" by default and isn't always updated to "Session active · X:XX"
   reliably; the page-header in-session pill already conveys this. Avoids
   the contradiction the user spotted (top says No active, page header
   says IN SESSION). */
body.in-session #session-bar { display: none !important; }
/* Hide Present toggle on /session — not needed mid-call.
   Keep .user-chip visible so Away status and sign-out remain accessible. */
body.in-session #present-toggle-btn { display: none !important; }

/* Floating "End call → Post-call" FAB on /session. Bottom-right, always
   visible regardless of scroll, single source for the wrap-up action. */
.session-end-call-fab {
  position: fixed; bottom: 20px; right: 20px;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px;
  font-size: 14px; font-weight: 700;
  background: var(--relai-yellow); color: var(--ink-900);
  border: 1px solid #d97706;
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(15,20,32,0.18), 0 0 0 4px rgba(245,158,11,0.12);
  cursor: pointer; z-index: 150;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.session-end-call-fab:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(15,20,32,0.22), 0 0 0 5px rgba(245,158,11,0.18);
}
.session-end-call-fab .fab-arrow { font-size: 16px; line-height: 1; }
.session-end-call-fab .fab-label { letter-spacing: 0.02em; }
/* Only show the FAB while actually on /session — without this it'd
   render in the DOM on every page since the page-session wrapper is
   just hidden, not removed. */
body:not(.in-session) .session-end-call-fab { display: none; }

/* Floating shortlist count chip — sits left of the End-call FAB.
   Replaces the always-visible count badge that lived in the right-side
   pane (removed in Client Phase cleanup 2026-05-18). Clicking it jumps
   to the Shortlist canvas tab so the expert can review what's been
   starred without leaving /session. */
.session-shortlist-fab {
  position: fixed; bottom: 24px; right: 200px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  font-size: 12px; font-weight: 700;
  background: var(--paper); color: var(--ink-900);
  border: 1px solid var(--ink-200);
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(15,20,32,0.10);
  cursor: pointer; z-index: 149;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.session-shortlist-fab:hover {
  transform: translateY(-1px);
  border-color: var(--relai-blue);
  box-shadow: 0 6px 18px rgba(15,20,32,0.14);
}
.session-shortlist-fab .fab-star  { font-size: 14px; line-height: 1; }
.session-shortlist-fab .fab-count { font-size: 14px; color: var(--relai-blue); }
.session-shortlist-fab .fab-label { font-size: 10px; font-weight: 600; color: var(--ink-500); text-transform: uppercase; letter-spacing: 0.05em; }
/* Hide outside /session, same as the End-call FAB. */
body:not(.in-session) .session-shortlist-fab { display: none; }

/* Requirement-set <select> dropdown inside the Lead Profile pane —
   replaces the old req-tab buttons (Client Phase cleanup 2026-05-18). */
.session-req-select {
  width: 100%;
  padding: 6px 10px;
  font-size: 12px; font-weight: 600;
  color: var(--ink-900); background: var(--paper);
  border: 1px solid var(--ink-200); border-radius: 6px;
  cursor: pointer;
  font-family: inherit;
}
.session-req-select:focus { outline: none; border-color: var(--relai-blue); box-shadow: 0 0 0 2px rgba(51,80,162,0.12); }
.session-req-single {
  font-size: 12px; font-weight: 600; color: var(--ink-700);
  padding: 4px 0;
}
.topbar-search-results { position:absolute;top:38px;left:0;right:0;background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;box-shadow:var(--shadow-lg);max-height:400px;overflow-y:auto;z-index:200; }
.search-row { padding:10px 12px;font-size:12px;color:var(--ink-500); }
.search-loading { color:var(--ink-500); }
.search-empty   { color:var(--ink-500); }
.search-result  { width:100%;display:block;text-align:left;padding:8px 12px;font-family:inherit;background:none;border:none;border-bottom:1px solid var(--ink-100);cursor:pointer;color:var(--ink-800); }
.search-result:last-child { border-bottom:none; }
.search-result:hover { background:var(--ink-50); }
.search-result-name   { font-weight:600;font-size:13px;color:var(--ink-900); }
.search-result-meta   { font-size:11px;color:var(--ink-500);margin-top:1px; }
.search-result-status { font-size:11px;color:var(--relai-blue);margin-top:2px;font-weight:500; }

/* ── Project detail modal ── */
.project-modal { position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px; }
.project-modal-card { background:var(--paper);border-radius:12px;width:min(900px,100%);max-height:calc(100vh - 48px);overflow:auto;position:relative;padding:24px 28px;box-shadow:var(--shadow-lg); }
.project-modal-close { position:absolute;top:12px;right:14px;background:none;border:none;font-size:28px;line-height:1;cursor:pointer;color:var(--ink-500);padding:4px 10px; }
.project-modal-close:hover { color:var(--ink-900); }
.project-modal-body { font-size:13px;color:var(--ink-800); }

.pd-header { display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px; }
.pd-title  { font-size:22px;font-weight:700;color:var(--ink-900);line-height:1.2; }
.pd-sub    { font-size:13px;color:var(--ink-600);margin-top:4px; }
.pd-grid   { text-align:center;border:1px solid var(--ink-200);border-radius:8px;padding:8px 14px;flex-shrink:0; }
.pd-grid-num   { font-size:24px;font-weight:700;color:var(--relai-blue);line-height:1; }
.pd-grid-label { font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-500);margin-top:2px; }
.pd-desc { padding:10px 12px;background:var(--ink-50);border-radius:6px;font-size:13px;line-height:1.55;color:var(--ink-700);margin-bottom:16px; }
.pd-section-label { font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-500);margin:18px 0 8px; }
.pd-facts { display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px 12px;margin-bottom:8px; }
.pd-fact-label { font-size:10px;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-500); }
.pd-fact-value { font-size:13px;color:var(--ink-800);font-weight:500;margin-top:1px;line-height:1.4; }
.pd-builder { padding:10px 12px;background:var(--ink-50);border-radius:6px;font-size:13px;line-height:1.5; }
.pd-table-wrap { overflow-x:auto;border:1px solid var(--ink-200);border-radius:6px; }
.pd-table { width:100%;border-collapse:collapse;font-size:12.5px; }
.pd-table th { background:var(--ink-50);text-align:left;padding:8px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-500);border-bottom:1px solid var(--ink-200); }
.pd-table td { padding:8px 10px;border-bottom:1px solid var(--ink-100);vertical-align:top; }
.pd-table tr:last-child td { border-bottom:none; }
.pd-chips { display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px; }
.pd-chip  { display:inline-block;padding:3px 9px;background:var(--ink-100);color:var(--ink-700);border-radius:12px;font-size:11px; }

.project-name-btn { background:none;border:none;padding:0;text-align:left;font-family:inherit;font-size:15px;font-weight:600;color:var(--ink-900);cursor:pointer;line-height:1.3; }
.project-name-btn:hover { color:var(--relai-blue);text-decoration:underline; }
.project-view-link { background:none;border:none;padding:2px 6px;font-size:11px;color:var(--relai-blue);cursor:pointer;font-weight:600;flex-shrink:0; }
.project-view-link:hover { background:var(--ink-50);border-radius:3px; }

/* ── User availability (online / away + weekly off) ── */
.user-status-dot { position:absolute;bottom:-2px;right:-2px;width:10px;height:10px;border:2px solid var(--paper);border-radius:50%; }
.user-status-dot.online { background:#16a34a; }
.user-status-dot.away   { background:#f59e0b; }

.avail-section { padding:8px 12px;border-bottom:1px solid var(--ink-100); }
.avail-label   { font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-500);margin-bottom:6px; }
.avail-current { font-size:13px;color:var(--ink-800);margin-bottom:8px; }
.avail-pill { display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.04em; }
.avail-pill.online { background:#dcfce7;color:#15803d; }
.avail-pill.away   { background:#fef3c7;color:#92400e; }
.avail-quick-row { display:flex;gap:6px;margin-bottom:2px; }
.avail-btn { padding:6px 10px;font-family:inherit;font-size:12px;background:var(--ink-50);border:1px solid var(--ink-200);border-radius:5px;cursor:pointer;text-align:center;color:var(--ink-700);flex:1; }
.avail-btn:hover { background:var(--ink-100); }
.avail-btn-break  { background:#fef3c7;color:#92400e;border-color:#fde68a;font-weight:600; }
.avail-btn-break:hover { background:#fde68a; }
.avail-btn-custom { background:var(--relai-yellow, #FFE135);color:var(--ink-900);border-color:transparent;font-weight:600; }
.avail-btn-custom:hover { filter:brightness(0.95); }
.avail-btn-clear  { background:#dcfce7;color:#15803d;border-color:#bbf7d0; }
.avail-btn-clear:hover { background:#bbf7d0; }

/* Go Away modal */
.go-away-backdrop { display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:9500; }
.go-away-backdrop.open { display:block; }
.go-away-modal {
  display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
  background:var(--paper);border-radius:16px;width:440px;max-width:calc(100vw - 32px);
  box-shadow:0 24px 64px rgba(0,0,0,0.22);z-index:9600;flex-direction:column;overflow:hidden;
}
.go-away-modal.open { display:flex; }
.go-away-header { display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--ink-100); }
.go-away-title  { font-size:17px;font-weight:700;color:var(--ink-900); }
.go-away-close  { width:28px;height:28px;border-radius:50%;background:var(--ink-100);border:none;cursor:pointer;font-size:16px;color:var(--ink-600);display:flex;align-items:center;justify-content:center; }
.go-away-close:hover { background:var(--ink-200); }
.go-away-body   { padding:18px 20px; }
.go-away-section-label { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--ink-500);margin-bottom:8px; }
.go-away-chips  { display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px; }
.ga-chip { padding:7px 14px;border:1.5px solid var(--ink-200);border-radius:20px;font-size:13px;font-weight:500;background:var(--paper);color:var(--ink-700);cursor:pointer;font-family:inherit;transition:all 0.1s; }
.ga-chip:hover { border-color:var(--relai-blue);color:var(--relai-blue); }
.ga-chip.selected { background:var(--relai-blue);border-color:var(--relai-blue);color:#fff;font-weight:600; }
.ga-reason-input { width:100%;padding:9px 12px;border:1.5px solid var(--ink-200);border-radius:8px;font-size:13px;font-family:inherit;color:var(--ink-900);background:var(--paper);box-sizing:border-box; }
.ga-reason-input:focus { outline:none;border-color:var(--relai-blue);box-shadow:0 0 0 2px var(--relai-blue-50); }
.ga-note { font-size:12px;color:var(--ink-500);margin:10px 0 0;line-height:1.5; }
.go-away-footer { display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--ink-100);background:var(--ink-50); }
.avail-weekoff { display:flex;gap:4px; }
.avail-wk-btn  { flex:1;padding:6px 0;font-size:11px;font-weight:500;background:var(--paper);border:1px solid var(--ink-200);border-radius:4px;cursor:pointer;color:var(--ink-700);font-family:inherit; }
.avail-wk-btn.selected { background:var(--relai-blue);color:#fff;border-color:var(--relai-blue);font-weight:600; }
.avail-wk-btn:hover:not(.selected) { background:var(--ink-50); }

/* ── Calendar view (month / week / quarter) ── */
.cal-mode-btn { padding:6px 14px;font-size:12px;font-weight:500;color:var(--ink-600);background:var(--paper);border:1px solid var(--ink-200);border-radius:6px;cursor:pointer;font-family:inherit; }
.cal-mode-btn:hover { border-color:var(--relai-blue);color:var(--relai-blue); }
.cal-mode-btn.active { background:var(--relai-blue);color:#fff;border-color:var(--relai-blue);font-weight:600; }
.cal-nav { display:flex;align-items:center;gap:10px;padding:10px 0 14px;border-bottom:1px solid var(--ink-100);margin-bottom:14px; }
.cal-nav-btn { padding:6px 12px;font-size:12px;background:var(--paper);border:1px solid var(--ink-200);border-radius:6px;cursor:pointer;color:var(--ink-700);font-family:inherit; }
.cal-nav-btn:hover { background:var(--ink-50); }
.cal-range { font-size:15px;font-weight:600;color:var(--ink-800);margin:0 8px; }

.cal-month-grid { background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;overflow:hidden; }
.cal-month-header { display:grid;grid-template-columns:repeat(7,1fr);background:var(--ink-50);border-bottom:1px solid var(--ink-200); }
.cal-head { padding:8px;text-align:center;font-size:11px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.04em; }
.cal-month-cells { display:grid;grid-template-columns:repeat(7,1fr); }
.cal-cell { min-height:90px;padding:6px 8px;border-right:1px solid var(--ink-100);border-bottom:1px solid var(--ink-100);cursor:pointer;background:var(--paper);transition:background 0.1s; }
.cal-cell:hover:not(.blank) { background:var(--ink-50); }
.cal-cell.blank { background:var(--ink-50);cursor:default; }
.cal-cell.today { background:#eff6ff; }
.cal-cell.today .cal-cell-day { color:var(--relai-blue);font-weight:700; }
.cal-cell-day { font-size:13px;font-weight:500;color:var(--ink-800);display:flex;align-items:center;justify-content:space-between; }
.cal-cell-count { font-size:10px;background:var(--relai-blue);color:#fff;padding:0 5px;border-radius:8px;font-weight:600; }
.cal-cell-dots { display:flex;flex-wrap:wrap;gap:3px;margin-top:4px;align-items:center; }
.cal-dot { width:8px;height:8px;border-radius:50%;background:var(--relai-blue); }
.cal-dot.done   { background:#16a34a; }
.cal-dot.cancel { background:#94a3b8; }
.cal-dot.site-visit { background:#ea580c; }   /* site visit = orange, distinct from blue sessions */
.cal-more { font-size:9px;color:var(--ink-500);font-weight:600; }

.cal-month-grid.compact .cal-cell { min-height:56px;padding:4px 5px; }
.cal-month-grid.compact .cal-cell-day { font-size:11px; }
.cal-month-grid.compact .cal-cell-count { font-size:9px;padding:0 3px; }
.cal-month-grid.compact .cal-dot { width:5px;height:5px; }
.cal-month-grid.compact .cal-head { padding:5px;font-size:10px; }

.cal-quarter { display:grid;grid-template-columns:repeat(3,1fr);gap:14px; }
.cal-quarter-month-title { font-size:13px;font-weight:600;color:var(--ink-700);margin-bottom:6px; }

.cal-week { background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;overflow:hidden; }
.cal-week-head, .cal-week-row { display:grid;grid-template-columns:60px repeat(7,1fr); }
.cal-week-head { background:var(--ink-50);border-bottom:1px solid var(--ink-200); }
.cal-week-day-head { padding:8px;text-align:center;border-left:1px solid var(--ink-100); }
.cal-week-day-head.today { background:#eff6ff; }
.cal-week-day-name { font-size:10px;text-transform:uppercase;color:var(--ink-500);letter-spacing:0.05em; }
.cal-week-day-num { font-size:16px;font-weight:600;color:var(--ink-800); }
.cal-week-day-head.today .cal-week-day-num { color:var(--relai-blue); }
.cal-week-hour-spacer { }
.cal-week-body { max-height:560px;overflow-y:auto; }
.cal-week-row { min-height:48px;border-bottom:1px solid var(--ink-100); }
.cal-week-row:last-child { border-bottom:none; }
.cal-week-hour { padding:4px 8px;font-size:10px;color:var(--ink-500);text-align:right;font-weight:500; }
.cal-week-cell { border-left:1px solid var(--ink-100);padding:2px;display:flex;flex-direction:column;gap:2px; }
.cal-week-event { padding:3px 6px;background:var(--relai-blue);color:#fff;font-size:11px;border-radius:3px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.cal-week-event:hover { opacity:0.9; }
.cal-week-event.completed { background:#16a34a; }
.cal-week-event.cancelled { background:#94a3b8;text-decoration:line-through; }
/* Site visits = orange, distinct from blue sessions (rules after so they win on equal specificity) */
.cal-week-event.site-visit { background:#ea580c; }
.cal-week-event.site-visit.completed { background:#15803d; }
.cal-week-event.site-visit.cancelled { background:#94a3b8;text-decoration:line-through; }

.cal-day-list { display:flex;flex-direction:column;gap:4px;margin-top:12px; }
.cal-day-row { display:flex;align-items:flex-start;gap:14px;padding:10px 12px;background:var(--paper);border:1px solid var(--ink-200);border-radius:6px;cursor:pointer;text-align:left;font-family:inherit; }
.cal-day-row:hover { background:var(--ink-50);border-color:var(--relai-blue); }
.cal-day-time { min-width:70px;font-weight:600;font-size:13px;color:var(--ink-800); }
.cal-day-dur  { font-size:11px;color:var(--ink-500);font-weight:400; }
.cal-day-name { font-size:13px;font-weight:600;color:var(--ink-900); }
.cal-day-meta { font-size:11px;color:var(--ink-500);margin-top:2px; }

/* ── Upcoming page: future vs past divider bands ── */
.upcoming-band { padding:10px 14px;margin:18px 0 10px;border-radius:8px;font-size:13px;font-weight:600;letter-spacing:0.02em;display:flex;align-items:center;gap:8px; }
.upcoming-band.band-future { background:var(--relai-blue-50,#eff6ff);color:var(--relai-blue,#3350a2); }
.upcoming-band.band-past   { background:var(--ink-100,#f3f4f6);color:var(--ink-600,#52525b);margin-top:32px;border-top:1px solid var(--ink-200);padding-top:12px;border-radius:0; }
.upcoming-band.band-empty  { background:var(--ink-50,#fafafa);color:var(--ink-500,#737373);font-weight:500; }

/* ── Reports page tabs (Sent / Yet-to-be-sent) ── */
.reports-tabs { display:flex;gap:4px;margin:14px 0 18px;border-bottom:1px solid var(--ink-200); }
.reports-tab { background:none;border:none;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-600);cursor:pointer;border-bottom:2px solid transparent;display:flex;align-items:center;gap:8px;margin-bottom:-1px; }
.reports-tab:hover { color:var(--ink-900); }
.reports-tab.active { color:var(--relai-blue);border-bottom-color:var(--relai-blue);font-weight:600; }
.reports-tab-count { font-size:11px;background:var(--ink-100);color:var(--ink-600);padding:1px 7px;border-radius:10px;font-weight:600; }
.reports-tab.active .reports-tab-count { background:var(--relai-blue);color:#fff; }
.reports-tab-count.attention { background:var(--relai-yellow);color:var(--ink-900); }

/* ── Placeholder card (Post-call review / Activity log etc) ── */
.placeholder-card { max-width:680px;margin:32px auto;background:var(--paper);border:1px solid var(--ink-200);border-radius:10px;padding:32px;text-align:center; }
.placeholder-icon { font-size:42px;margin-bottom:12px; }
.placeholder-title { font-size:18px;font-weight:700;color:var(--ink-900);margin-bottom:10px; }
.placeholder-body { font-size:13px;line-height:1.7;color:var(--ink-600);text-align:left; }
.placeholder-body code { background:var(--ink-100);color:var(--ink-800);padding:1px 6px;border-radius:3px;font-family:var(--font-mono,monospace);font-size:12px; }
.placeholder-meta { margin-top:14px;padding-top:14px;border-top:1px solid var(--ink-100);font-size:12px;color:var(--ink-500);font-style:italic; }

/* ── All leads page (filterable table) ── */
.all-leads-controls { display:flex;gap:10px;margin-bottom:14px; }
#all-leads-q { flex:1;padding:8px 12px;font-family:inherit;font-size:13px;border:1px solid var(--ink-200);border-radius:6px;background:var(--paper); }
#all-leads-q:focus { outline:none;border-color:var(--relai-blue);box-shadow:0 0 0 2px rgba(51,80,162,0.1); }
#all-leads-stage, #all-leads-owner { padding:8px 12px;font-family:inherit;font-size:13px;border:1px solid var(--ink-200);border-radius:6px;background:var(--paper);min-width:200px; }
.all-leads-table { width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;overflow:hidden;font-size:13px; }
.all-leads-table thead { background:var(--ink-50); }
.all-leads-table th { text-align:left;padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink-500);border-bottom:1px solid var(--ink-200); }
.all-leads-table td { padding:10px 12px;border-bottom:1px solid var(--ink-100);vertical-align:top; }
.all-leads-table tbody tr { cursor:pointer; }
.all-leads-table tbody tr:hover { background:var(--ink-50); }
.all-leads-table tbody tr:last-child td { border-bottom:none; }
.all-leads-stage-pill { display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:var(--relai-blue-50);color:var(--relai-blue);font-weight:600; }

/* ── Feature guide grid ── */
.help-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:8px; }
.help-card { background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;padding:16px 18px; }
.help-card h3 { font-size:14px;margin:0 0 6px;color:var(--relai-blue);font-weight:700; }
.help-card p { font-size:12.5px;line-height:1.55;color:var(--ink-700);margin:0; }

/* ── Today: Commitments tiles ── */
.commitments-zone { margin:18px 0 24px; }
.commitments-header { display:flex;align-items:baseline;gap:10px;margin-bottom:10px; }
.commitments-title { font-size:14px;font-weight:600;color:var(--ink-800); }
.commitments-sub   { font-size:12px;color:var(--ink-500); }
.commitments-grid  { display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px; }
.commitment-tile   { background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;padding:14px 16px;text-align:left;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;gap:2px;transition:all .12s; }
.commitment-tile:hover { border-color:var(--relai-blue);box-shadow:0 1px 4px rgba(51,80,162,0.08);transform:translateY(-1px); }
.commitment-tile.attention { background:#fffbeb;border-color:#fde68a; }
.commitment-value  { font-family:'Poppins',inherit;font-size:24px;font-weight:700;color:var(--ink-900);line-height:1; }
.commitment-tile.attention .commitment-value { color:#92400e; }
.commitment-label  { font-size:12px;font-weight:600;color:var(--ink-700);text-transform:uppercase;letter-spacing:0.05em;margin-top:8px; }
.commitment-sub    { font-size:11px;color:var(--ink-500);margin-top:2px; }

/* ── Leads registered analytics page ── */
.leads-reg-stats { display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px; }
.leads-reg-stat { background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;padding:14px 16px; }
.leads-reg-stat-value { font-family:'Poppins',inherit;font-size:26px;font-weight:700;color:var(--ink-900);line-height:1; }
.leads-reg-stat-label { font-size:11px;font-weight:600;color:var(--ink-700);text-transform:uppercase;letter-spacing:0.05em;margin-top:8px; }
.leads-reg-stat-sub { font-size:11px;color:var(--ink-500);margin-top:2px; }

.leads-reg-section-label { font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-500);margin:18px 0 10px; }
.leads-reg-trend { background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;padding:14px 16px;margin-bottom:18px; }
.leads-reg-bars { display:flex;align-items:flex-end;justify-content:space-between;gap:2px;height:120px;padding:6px 0;border-bottom:1px solid var(--ink-100); }
.leads-reg-bar { flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;cursor:default;position:relative;height:100%; }
.leads-reg-bar-fill { width:100%;background:linear-gradient(to top,var(--relai-blue),#6c8bd8);border-radius:2px 2px 0 0;min-height:1px; }
.leads-reg-bar-count { font-size:9px;color:var(--ink-500);margin-top:2px; }
.leads-reg-bars-axis { display:flex;justify-content:space-between;font-size:11px;color:var(--ink-500);margin-top:6px; }

.leads-reg-two-col { display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px; }
.leads-reg-list { background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;padding:8px 12px; }
.leads-reg-row { display:grid;grid-template-columns:160px 1fr 50px;align-items:center;gap:10px;padding:5px 0;font-size:12px; }
.leads-reg-row-name { color:var(--ink-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.leads-reg-row-bar { background:var(--ink-100);height:8px;border-radius:4px;overflow:hidden; }
.leads-reg-row-bar-fill { height:100%;background:var(--relai-blue);border-radius:4px; }
.leads-reg-row-bar-fill.src { background:#a78bfa; }
.leads-reg-row-count { text-align:right;font-weight:600;color:var(--ink-800); }

.leads-reg-recent { margin-top:6px; }

/* ── Lead-registration page: bucket cards, chips, table ── */
.reg-empty { font-size:12px;color:var(--ink-500);font-style:italic; }
.reg-status-chip {
  display:inline-flex;align-items:center;font-size:11px;font-weight:600;
  padding:3px 8px;border-radius:999px;border:1px solid var(--ink-200);
  background:var(--ink-50);color:var(--ink-700);
}
.reg-status-chip.reg-status-in_progress,
.reg-status-chip.reg-status-yet_to_be_done { background:#fef3c7;border-color:#fcd34d;color:#92400e; }
.reg-status-chip.reg-status-pending        { background:var(--ink-100);border-color:var(--ink-200);color:var(--ink-700); }
.reg-status-chip[class*="reg-status-done"] { background:#dcfce7;border-color:#86efac;color:#166534; }

/* Clickable stat cards as filters */
.reg-stat { cursor:pointer;transition:transform .08s ease, box-shadow .08s ease; position:relative; }
.reg-stat:hover { transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,0.06); }
.reg-stat.active { box-shadow:inset 0 0 0 2px var(--relai-blue);border-color:var(--relai-blue); }
.reg-tone-pos  .leads-reg-stat-value { color:#166534; }
.reg-tone-neg  .leads-reg-stat-value { color:#b91c1c; }
.reg-tone-warn .leads-reg-stat-value { color:#92400e; }
.reg-tone-info .leads-reg-stat-value { color:#1e40af; }
.reg-tone-base .leads-reg-stat-value { color:var(--ink-900); }

.reg-bucket-chip {
  display:inline-flex;align-items:center;font-size:11px;font-weight:600;
  padding:3px 8px;border-radius:6px;border:1px solid var(--ink-200);
  background:var(--ink-50);color:var(--ink-700);
}
.reg-bucket-chip.reg-tone-pos  { background:#dcfce7;border-color:#86efac;color:#166534; }
.reg-bucket-chip.reg-tone-neg  { background:#fee2e2;border-color:#fca5a5;color:#991b1b; }
.reg-bucket-chip.reg-tone-warn { background:#fef3c7;border-color:#fcd34d;color:#92400e; }
.reg-bucket-chip.reg-tone-info { background:#dbeafe;border-color:#93c5fd;color:#1e40af; }

/* Prep view: registration panel + quick actions */
.prep-reg-table { width:100%;border-collapse:collapse;font-size:12px; }
.prep-reg-table thead th { text-align:left;padding:6px 8px;font-size:10px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.05em;border-bottom:1px solid var(--ink-200); }
.prep-reg-table tbody td { padding:8px;vertical-align:top;border-bottom:1px solid var(--ink-100); }
.prep-quick-actions { display:flex;align-items:center;gap:10px;margin-right:10px; }
.pqa-group { display:inline-flex;gap:0;border:1px solid var(--ink-200);border-radius:6px;overflow:hidden; }
.pqa-btn {
  font-size:11px;font-weight:600;padding:5px 10px;background:var(--paper);color:var(--ink-700);
  border:none;border-right:1px solid var(--ink-200);cursor:pointer;
}
.pqa-btn:last-child { border-right:none; }
.pqa-btn:hover     { background:var(--ink-50); }
.pqa-hot.active    { background:#fee2e2;color:#991b1b; }
.pqa-warm.active   { background:#fef3c7;color:#92400e; }
.pqa-cold.active   { background:#dbeafe;color:#1e40af; }
.pqa-label {
  font-size:10px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.05em;
  padding:5px 8px;background:var(--ink-50);border-right:1px solid var(--ink-200);
}

/* Prep page: collapsible sidebar toggle */
body.prep-sidebar-collapsed .sidebar { width:56px;padding:16px 6px;overflow:visible; }
body.prep-sidebar-collapsed .nav-group-label { display:none; }
body.prep-sidebar-collapsed .nav-item { justify-content:center;padding:10px;font-size:0;gap:0; }
body.prep-sidebar-collapsed .nav-item .nav-item-icon { font-size:14px;flex-shrink:0; }
body.prep-sidebar-collapsed .nav-item-count { display:none; }
body.prep-sidebar-collapsed #prep-sidebar-toggle::before { content:'⇥ '; }

/* Prep side rail: collapsible Engage recordings + transcripts */
.rail-collapsible summary {
  cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;
  list-style:none;
}
.rail-collapsible summary::-webkit-details-marker { display:none; }
.rail-collapsible summary::after { content:'▾';font-size:10px;color:var(--ink-400); }
.rail-collapsible[open] summary::after { content:'▴'; }
.rail-pill {
  font-size:10px;font-weight:600;background:var(--ink-100);color:var(--ink-700);
  padding:2px 6px;border-radius:10px;
}
.prep-recording-item, .prep-transcript-item {
  padding:8px;border-radius:6px;background:var(--ink-50);margin-bottom:6px;font-size:11px;
  border:1px solid var(--ink-100);
}
.prep-recording-item a { color:var(--relai-blue);text-decoration:none;font-weight:600; }
.prep-recording-item a:hover { text-decoration:underline; }
.prep-transcript-item .pt-snippet {
  max-height:80px;overflow:hidden;color:var(--ink-700);line-height:1.45;margin-top:4px;
  text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;
}

/* Session: floating Exit button so user can always leave focus-mode */
.session-floating-exit {
  position:fixed;top:60px;left:72px;z-index:50;
  font-size:12px;font-weight:600;padding:6px 12px;border-radius:6px;
  background:var(--paper);color:var(--ink-700);border:1px solid var(--ink-200);
  cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,0.08);
  display:none;
}
.session-floating-exit:hover { background:var(--ink-50);color:var(--ink-900); }
body.focus-mode #page-session .session-floating-exit { display:inline-flex; }

/* Session private banner — visible whenever the canvas is live */
.session-private-banner {
  position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:#fef2f2;border:1px solid #fecaca;border-radius:8px;
  padding:10px 14px;margin-bottom:12px;
  color:#7f1d1d;font-size:12px;
}
.session-private-banner .spb-lock { font-size:14px; }
.session-private-banner strong { font-weight:700; }
.session-private-banner .spb-sub { color:#991b1b;flex:1; }
.session-private-banner .spb-open-cv { margin-left:auto; }

/* Prep coach section — distinct from briefing */
#prep-coach-section {
  background:#fffbeb;border-left:3px solid #f59e0b;
  padding:10px 14px;border-radius:6px;
}
.prep-coach-line { font-size:13px;line-height:1.5;color:#7c2d12;font-weight:500;margin-bottom:8px; }
.prep-coach-points { margin:0;padding-left:18px;font-size:12px;line-height:1.6;color:var(--ink-700); }
.prep-coach-points li { margin-bottom:2px; }
.prep-coach-points strong { color:var(--ink-900); }
.prep-coach-footer { margin-top:8px;font-size:11px;color:var(--ink-600);font-style:italic; }

/* Phase 2 · Validate & refine — check-off probes + editable rail */
.phase2-private-note {
  font-size:10px;font-weight:600;color:#92400e;background:#fef3c7;
  padding:2px 6px;border-radius:4px;margin-left:6px;text-transform:none;letter-spacing:0;
}
.phase2-probe {
  text-align:left;cursor:pointer;
  background:var(--ink-50);border:1px solid var(--ink-200);border-left:3px solid var(--relai-blue);
  border-radius:var(--radius);padding:12px 14px;
  font-size:12px;line-height:1.5;color:var(--ink-800);
  transition:background .12s ease, border-color .12s ease, transform .08s ease;
}
.phase2-probe:hover { transform:translateY(-1px); background:var(--paper); }
.phase2-probe .probe-head { display:flex;align-items:center;gap:8px;margin-bottom:4px; }
.phase2-probe .probe-mark {
  width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;border:1.5px solid var(--ink-300);font-size:12px;font-weight:700;color:var(--ink-500);
  background:var(--paper);
}
.phase2-probe .probe-eyebrow {
  font-size:10px;font-weight:600;color:var(--relai-blue);text-transform:uppercase;letter-spacing:0.06em;
}
.phase2-probe .probe-body em { font-style:normal;font-weight:600;background:var(--relai-yellow-soft);padding:0 3px; }
.phase2-probe.probe-asked   { background:#dcfce7;border-color:#86efac;border-left-color:#15803d; }
.phase2-probe.probe-asked .probe-mark   { background:#15803d;border-color:#15803d;color:#fff; }
.phase2-probe.probe-asked .probe-eyebrow { color:#166534; }
.phase2-probe.probe-skipped { background:var(--ink-100);border-color:var(--ink-200);border-left-color:var(--ink-400);opacity:0.78; }
.phase2-probe.probe-skipped .probe-mark { background:var(--ink-300);border-color:var(--ink-300);color:#fff; }
.phase2-probe.probe-skipped .probe-eyebrow { color:var(--ink-600); }

.phase2-progress-badge {
  font-size:11px;font-weight:600;color:var(--ink-700);background:var(--ink-100);
  padding:4px 10px;border-radius:999px;border:1px solid var(--ink-200);
  margin-left:8px;
}
.phase2-progress-badge.done { background:#dcfce7;border-color:#86efac;color:#15803d; }

/* Editable lead-profile rows during Phase 2 */
.lp-row-editable { cursor:pointer;border-radius:4px;transition:background .12s; }
.lp-row-editable:hover { background:rgba(37,99,235,0.06); }
.lp-row-editable .lp-edit-mark {
  display:inline-block;margin-left:6px;font-size:10px;color:var(--ink-400);
  opacity:0;transition:opacity .12s;
}
.lp-row-editable:hover .lp-edit-mark { opacity:1; }
.lp-row-editable.editing { background:rgba(37,99,235,0.08);cursor:text; }
.lp-inline-input {
  width:100%;font-size:12px;padding:3px 6px;border:1px solid var(--relai-blue);
  border-radius:4px;background:var(--paper);outline:none;font-family:inherit;color:var(--ink-900);
}

/* Phase 1 · Engage Prep Dossier (inside session canvas) */
.phase1-dossier { display:flex;flex-direction:column;gap:12px;margin-top:14px;margin-bottom:12px; }
.phase1-section { background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;padding:12px 14px; }
.phase1-section-label { font-size:11px;font-weight:700;color:var(--ink-600);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:8px; }
#phase1-coach-section { background:#fffbeb;border-left:3px solid #f59e0b; }
#phase1-mismatch-section { background:#fef3c7;border-left:3px solid #f59e0b; }

/* Phase 2 · Property Preview grid */
.phase2-summary {
  background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;
  padding:12px 14px;margin-bottom:14px;
}
.phase2-summary-row { display:flex;align-items:center;gap:20px;flex-wrap:wrap; }
.phase2-summary-stat { text-align:center; }
.phase2-summary-stat .ps-num { font-family:'Poppins';font-size:22px;font-weight:800;color:var(--ink-900);line-height:1; }
.phase2-summary-stat .ps-lbl { font-size:10px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.06em;margin-top:4px; }
.phase2-summary-meta { font-size:13px;color:var(--ink-700);flex:1;padding-left:6px;border-left:1px solid var(--ink-200); }
.phase2-preview-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px; }
.phase2-prop-card {
  background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;padding:12px 14px;
  display:flex;flex-direction:column;gap:6px;
}
.phase2-prop-card.in-shortlist { border-color:#86efac;background:#f0fdf4; }
.phase2-prop-card .p2pc-head { display:flex;justify-content:space-between;align-items:flex-start;gap:8px; }
.phase2-prop-card .p2pc-name { font-family:'Poppins';font-size:14px;font-weight:700;color:var(--ink-900);line-height:1.25;flex:1; }
.phase2-prop-card .p2pc-toggle {
  font-size:11px;font-weight:600;padding:4px 8px;border-radius:6px;cursor:pointer;
  border:1px solid var(--ink-200);background:var(--paper);color:var(--ink-700);
}
.phase2-prop-card .p2pc-toggle.added { background:#15803d;border-color:#15803d;color:white; }
.phase2-prop-card .p2pc-builder { font-size:12px;color:var(--ink-600); }
.phase2-prop-card .p2pc-grid { display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px; }
.phase2-prop-card .p2pc-grid > div { display:flex;flex-direction:column;gap:1px; }
.phase2-prop-card .p2pc-grid .pcg-label { font-size:9px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.06em; }
.phase2-prop-card .p2pc-grid .pcg-value { font-size:12px;font-weight:600;color:var(--ink-900); }
.phase2-prop-card .p2pc-rera { font-size:10px;color:var(--ink-500);font-family:'Consolas',monospace;margin-top:4px; }

/* Phase 3 · Probes bar (mini version) */
.phase3-probes-bar {
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;
  padding:8px 12px;margin-bottom:10px;
}
.phase3-probes-label { font-size:10px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.05em;margin-right:6px; }
.phase2-probe-mini {
  font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:pointer;
  border:1px solid var(--ink-200);background:var(--ink-50);color:var(--ink-700);
}
.phase2-probe-mini:hover { background:var(--paper); }
.phase2-probe-mini .probe-mark {
  display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;
  border-radius:50%;background:var(--paper);border:1px solid var(--ink-300);font-size:10px;margin-right:3px;
}
.phase2-probe-mini.probe-asked   { background:#dcfce7;border-color:#86efac;color:#166534; }
.phase2-probe-mini.probe-asked .probe-mark { background:#15803d;border-color:#15803d;color:#fff; }
.phase2-probe-mini.probe-skipped { background:var(--ink-100);color:var(--ink-600);opacity:0.78; }
.phase2-probe-mini.probe-skipped .probe-mark { background:var(--ink-300);border-color:var(--ink-300);color:#fff; }

/* ── Sidebar: collapse icon + back-to-today shortcut ── */
.sidebar-collapse-btn {
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:6px;border:1px solid var(--ink-200);
  background:var(--paper);color:var(--ink-700);cursor:pointer;font-size:14px;
  margin:0 0 10px;
}
.sidebar-collapse-btn:hover { background:var(--ink-50);color:var(--ink-900); }
.sidebar-back-to-today {
  display:flex;align-items:center;justify-content:flex-start;width:100%;
  padding:6px 10px;margin-bottom:14px;
  background:transparent;border:1px solid transparent;border-radius:6px;
  color:var(--ink-600);font-size:12px;font-weight:600;cursor:pointer;
}
.sidebar-back-to-today:hover { background:var(--ink-50);color:var(--ink-900);border-color:var(--ink-200); }
body.prep-sidebar-collapsed .sidebar-back-to-today { display:none; }
body.prep-sidebar-collapsed .sidebar-collapse-btn { width:44px; }

/* ── Prep · Captured timeline (genie · ai · engage · briefing) ── */
.prep-capture-body { display:flex;flex-direction:column;gap:10px; }
.pcap-row { display:flex;gap:12px;align-items:flex-start; }
.pcap-marker { flex-shrink:0;width:32px;display:flex;justify-content:center; }
.pcap-icon {
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;background:var(--ink-100);
  border:1px solid var(--ink-200);font-size:14px;
}
.pcap-content { flex:1;min-width:0; }
.pcap-head { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.pcap-source { font-size:11px;font-weight:700;color:var(--ink-700);text-transform:uppercase;letter-spacing:0.05em; }
.pcap-when { font-size:11px;color:var(--ink-500); }
.pcap-summary { font-size:13px;color:var(--ink-800);margin-top:2px;line-height:1.5; }
.pcap-meta { font-size:11px;color:var(--ink-500);margin-top:3px; }
.pcap-note { font-size:12px;color:var(--ink-700);margin-top:6px;padding:6px 10px;background:var(--ink-50);border-left:2px solid var(--ink-300);border-radius:4px; }
.pcap-note strong { color:var(--ink-900); }

/* ── Prep · Customer demographics (filled fields only) ── */
.prep-demographics-grid {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 14px;
}
.pdemo-row { display:flex;flex-direction:column;gap:2px; }
.pdemo-label { font-size:10px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.05em; }
.pdemo-value { font-size:13px;color:var(--ink-900);font-weight:500; }

/* ── Prep · Matched properties grid with freshness + GRID ── */
.prep-matched-grid {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;
  margin-top:6px;
}
.prep-matched-card {
  background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;
  /* Left padding reserves space for the absolutely-positioned multi-select
     checkbox (.pmc-select at left:8px width:18px). Without this, the
     checkbox overlays the first ~12px of the project name (saw "OHINOOR"
     instead of "KOHINOOR", "UNRISE" instead of "SUNRISE", etc). */
  padding:12px 14px 12px 32px;display:flex;flex-direction:column;gap:6px;
}
.prep-matched-card.in-shortlist { border-color:#86efac;background:#f0fdf4; }
.pmc-head { display:flex;align-items:flex-start;justify-content:space-between;gap:8px; }
.pmc-name { font-family:'Poppins';font-size:14px;font-weight:700;color:var(--ink-900);line-height:1.25;flex:1; }
.pmc-toggle {
  font-size:11px;font-weight:600;padding:4px 8px;border-radius:6px;cursor:pointer;
  border:1px solid var(--ink-200);background:var(--paper);color:var(--ink-700);
}
.pmc-toggle.added { background:#15803d;border-color:#15803d;color:white; }
.pmc-builder { font-size:12px;color:var(--ink-600); }
.pmc-grid { display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px; }
.pmc-grid > div { display:flex;flex-direction:column;gap:1px; }
.pmc-grid .pcg-label { font-size:9px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.06em; }
.pmc-grid .pcg-value { font-size:12px;font-weight:600;color:var(--ink-900); }
.pmc-foot {
  display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
  font-size:10px;color:var(--ink-500);margin-top:6px;padding-top:6px;border-top:1px solid var(--ink-100);
}
/* Long RERA numbers (e.g. Karnataka's PRM/KA/RERA/1251/310/PR/220817/005160)
   shouldn't squeeze the freshness pill into a 2-line wrap. Allow wrap, but
   let the RERA shrink while the pill stays whole. */
.pmc-rera { font-family:'Consolas',monospace;min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis; }
.pmc-fresh {
  font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;
  white-space:nowrap;flex:0 0 auto;
}
.pmp-fresh { background:#dcfce7;color:#166534; }
.pmp-aging { background:#fef3c7;color:#92400e; }
.pmp-stale { background:#fee2e2;color:#991b1b; }

/* Brochure link on matched/shortlist cards — only renders when the projects
   row has a usable http(s) URL on `projectbrochure`. Opens in a new tab so
   the expert never leaves the prep view. */
.pmc-brochure {
  font-size:10px;font-weight:600;color:var(--relai-blue);text-decoration:none;
  padding:2px 6px;border-radius:4px;background:#eff6ff;border:1px solid #bfdbfe;
}
.pmc-brochure:hover { background:#dbeafe;text-decoration:underline; }
/* Drive-hosted brochures get a dashed border as a visual cue that the link
   may require Drive sign-in — expert is reminded to test before screen-share. */
.pmc-brochure-drive { border-style:dashed; }

/* ── Prep · Manual property add (search & inject) ── */
.prep-manual-add { position:relative;margin-top:16px; }
.prep-manual-add input {
  width:100%;height:38px;padding:0 14px;font-size:13px;
  border:1px solid var(--ink-200);border-radius:8px;background:var(--paper);
  color:var(--ink-900);outline:none;transition:border-color .12s;
}
.prep-manual-add input:focus { border-color:var(--relai-blue);box-shadow:0 0 0 3px rgba(37,99,235,0.12); }
.prep-manual-add-results {
  position:absolute;top:42px;left:0;right:0;max-height:260px;overflow-y:auto;
  background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;
  box-shadow:0 4px 14px rgba(15,23,42,0.08);z-index:20;
}
.prep-manual-add-row {
  display:block;width:100%;text-align:left;padding:10px 14px;cursor:pointer;
  background:transparent;border:none;border-bottom:1px solid var(--ink-100);
}
.prep-manual-add-row:last-child { border-bottom:none; }
.prep-manual-add-row:hover { background:var(--ink-50); }
.pmar-name { font-size:13px;font-weight:600;color:var(--ink-900); }
.pmar-meta { font-size:11px;color:var(--ink-600);margin-top:2px; }
.prep-manual-add-empty { padding:14px;color:var(--ink-500);font-size:12px;font-style:italic; }

/* Recent-search chips (last 5) — appear above the results dropdown */
.prep-recent-search-chips {
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  margin-top:6px;font-size:11px;
}
.prep-recent-search-chips .prsc-label {
  color:var(--ink-500);font-weight:600;font-size:10px;
  text-transform:uppercase;letter-spacing:0.06em;
}
.prep-recent-search-chips .prsc-chip {
  background:var(--ink-50);border:1px solid var(--ink-200);color:var(--ink-700);
  padding:3px 8px;border-radius:999px;cursor:pointer;font-size:11px;
  transition:background 0.12s;
}
.prep-recent-search-chips .prsc-chip:hover { background:var(--ink-100); }
.prep-recent-search-chips .prsc-clear {
  margin-left:auto;color:var(--ink-500);padding:3px 7px;
  font-weight:700;font-size:13px;line-height:1;
}

/* Prep empty state — shown when /prep is opened without a lead */
.prep-empty-state {
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:64px 24px;background:var(--paper);
  border:2px dashed var(--ink-200);border-radius:12px;margin-top:14px;
}
.prep-empty-icon { font-size:48px;margin-bottom:14px;opacity:0.6; }
.prep-empty-title { font-family:'Poppins';font-size:22px;font-weight:700;color:var(--ink-900);margin-bottom:6px; }
.prep-empty-sub   { font-size:14px;color:var(--ink-600);max-width:520px;line-height:1.5;margin-bottom:20px; }
.prep-empty-actions { display:flex;gap:10px;flex-wrap:wrap;justify-content:center; }

.reg-search-wrap {
  position:relative;display:flex;align-items:center;margin:8px 0 14px;
}
.reg-search-input {
  flex:1;height:38px;padding:0 36px 0 14px;font-size:13px;
  border:1px solid var(--ink-200);border-radius:8px;background:var(--paper);
  color:var(--ink-900);outline:none;transition:border-color .12s,box-shadow .12s;
}
.reg-search-input:focus { border-color:var(--relai-blue);box-shadow:0 0 0 3px rgba(37,99,235,0.12); }
.reg-search-input::placeholder { color:var(--ink-400); }
.reg-search-clear {
  position:absolute;right:10px;width:22px;height:22px;border-radius:50%;
  border:none;background:var(--ink-100);color:var(--ink-600);
  font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.reg-search-clear:hover { background:var(--ink-200);color:var(--ink-800); }

/* ── All leads pagination footer ── */
.all-leads-pager { display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 0;font-size:12px;color:var(--ink-600); }
.all-leads-pager .cal-nav-btn:disabled { opacity:0.4;cursor:not-allowed; }
.all-leads-pager-info { min-width:240px;text-align:center; }

/* ── Post-call Phase screen (page-post-call) ────────────────────────────── */
.pcp-grid { display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start; }
@media (max-width: 1100px) { .pcp-grid { grid-template-columns:1fr; } }
.pcp-main { display:flex;flex-direction:column;gap:14px; }
/* 2026-05-19 B4: sticky side panel — was set position:sticky in the
   element style but the parent grid lacked align-items:start so the
   sticky cell stretched to full height. Adding align-items:start fixes
   stickiness. Top offset matches the topbar height + small breathing room. */
.pcp-side { position: sticky; top: 16px; align-self: start; }

/* 2026-05-19 B5 PF-01: performance page period buttons — .active state */
.perf-period.active {
  background: var(--relai-blue-50, #eff6ff);
  border-color: var(--relai-blue, #3b82f6);
  color: var(--relai-blue, #3b82f6);
  font-weight: 600;
}
.pcp-section { background:var(--paper);border:1px solid var(--ink-200);border-radius:10px;padding:14px 16px; }
.pcp-section-label { font-size:12px;font-weight:700;color:var(--ink-700);text-transform:uppercase;letter-spacing:0.06em; }
.pcp-section-sub { font-size:11px;color:var(--ink-500);margin-top:2px;line-height:1.5; }
.pcp-section code { background:var(--ink-100);padding:1px 5px;border-radius:3px;font-size:11px; }

/* 1. Recap */
.pcp-recap-row { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px; }
.pcp-recap-stat { background:var(--ink-50);border:1px solid var(--ink-100);border-radius:8px;padding:10px;text-align:center; }
.pcp-stat-num { font-family:'Poppins',inherit;font-size:22px;font-weight:800;color:var(--ink-900);line-height:1; }
.pcp-stat-lbl { font-size:10px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.06em;margin-top:4px; }
.pcp-recap-ol { margin:10px 0 0;padding-left:20px;font-size:13px;line-height:1.7;color:var(--ink-800); }

/* 3. Demographics grid (per-field click-to-edit) */
.pcp-demographics-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 14px;margin-top:10px; }
.pcp-demo-row { display:flex;flex-direction:column;gap:3px;position:relative; }
.pcp-demo-row label { font-size:10px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.06em; }
.pcp-demo-row input, .pcp-demo-row select {
  height:32px;padding:0 8px;font-size:13px;font-family:inherit;color:var(--ink-900);
  border:1px solid var(--ink-200);border-radius:6px;background:var(--paper);outline:none;
}
.pcp-demo-row input:focus, .pcp-demo-row select:focus { border-color:var(--relai-blue);box-shadow:0 0 0 3px rgba(37,99,235,0.12); }
.pcp-demo-status { font-size:10px;color:var(--ink-500);position:absolute;right:8px;top:24px; }
.pcp-ai-chip { display:inline-flex;align-items:center;gap:4px;margin-top:2px;padding:3px 8px;background:rgba(99,102,241,0.08);color:#4f46e5;border:1px solid rgba(99,102,241,0.25);border-radius:6px;font-size:11px;font-weight:500;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.pcp-ai-chip:hover { background:rgba(99,102,241,0.16);border-color:rgba(99,102,241,0.45); }
.pcp-demo-meta { grid-column:1/-1;font-size:11px;color:var(--ink-500);font-style:italic;margin-top:8px;padding-top:8px;border-top:1px solid var(--ink-100); }

.pcp-demographics-freetext textarea {
  width:100%;min-height:70px;padding:10px;font-size:13px;font-family:inherit;color:var(--ink-900);
  border:1px solid var(--ink-200);border-radius:6px;background:var(--paper);outline:none;line-height:1.5;
}
.pcp-demographics-freetext textarea:focus { border-color:var(--relai-blue);box-shadow:0 0 0 3px rgba(37,99,235,0.12); }

/* 4. Final note */
#pcp-final-note {
  width:100%;min-height:70px;padding:10px;font-size:13px;font-family:inherit;color:var(--ink-900);
  border:1px solid var(--ink-200);border-radius:6px;background:var(--paper);outline:none;line-height:1.5;margin-top:8px;
}
#pcp-final-note:focus { border-color:var(--relai-blue);box-shadow:0 0 0 3px rgba(37,99,235,0.12); }

/* 5. Status quick-actions + fallback */
.pcp-quick-actions { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-top:10px; }
.pcp-qa-btn {
  text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;background:var(--paper);
  border:1px solid var(--ink-200);transition:transform .08s ease, border-color .12s ease, background .12s ease;
}
.pcp-qa-btn:hover { transform:translateY(-1px); }
.pcp-qa-btn.active { border-color:var(--relai-blue);box-shadow:inset 0 0 0 2px var(--relai-blue);background:#eef4ff; }
.pcp-qa-btn .pcp-qa-icon { font-size:18px;line-height:1;margin-bottom:4px; }
.pcp-qa-btn .pcp-qa-title { font-size:13px;font-weight:600;color:var(--ink-900); }
.pcp-qa-btn .pcp-qa-sub { font-size:11px;color:var(--ink-500);margin-top:2px; }
.pcp-qa-btn.pcp-qa-good { border-left:3px solid #15803d; }
.pcp-qa-btn.pcp-qa-warn { border-left:3px solid #f59e0b; }
.pcp-qa-btn.pcp-qa-bad  { border-left:3px solid #b91c1c; }

.pcp-status-fallback { margin-top:12px;font-size:12px;color:var(--ink-600); }
.pcp-status-fallback summary { cursor:pointer;padding:6px 0;list-style:none; }
.pcp-status-fallback summary::-webkit-details-marker { display:none; }
.pcp-status-fallback select {
  width:100%;height:34px;padding:0 10px;font-size:13px;font-family:inherit;
  border:1px solid var(--ink-200);border-radius:6px;background:var(--paper);color:var(--ink-900);outline:none;margin-top:6px;
}
.pcp-status-result { font-size:12px;color:var(--ink-700);margin-top:10px;font-style:italic; }

/* 6. Site visit */
.pcp-sv-grid { display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-top:10px; }
.pcp-sv-grid label { display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600;color:var(--ink-600); }
.pcp-sv-grid input { height:34px;padding:0 10px;font-size:13px;border:1px solid var(--ink-200);border-radius:6px;background:var(--paper);color:var(--ink-900);outline:none; }
.pcp-sv-result { font-size:12px;margin-top:8px; }

/* ── Phase 3 · Prep polish ─────────────────────────────────────────────── */

/* Hotness chip in prep header — Engage seeds it, Expert edits on Post-call.
   Read-only here on purpose (no click handler); colour tracks the value. */
.prep-hotness-chip {
  display:inline-flex;align-items:center;gap:4px;
  font-size:11px;font-weight:600;
  padding:3px 8px;border-radius:999px;
  background:#f3f4f6;color:#374151;border:1px solid #d1d5db;
  cursor:default;
}
.prep-hotness-chip.prep-hotness-hot  { background:#fee2e2;color:#991b1b;border-color:#fca5a5; }
.prep-hotness-chip.prep-hotness-warm { background:#fef3c7;color:#92400e;border-color:#fcd34d; }
.prep-hotness-chip.prep-hotness-cold { background:#dbeafe;color:#1e3a8a;border-color:#93c5fd; }
.prep-hotness-chip.prep-hotness-unset { background:#f9fafb;color:#6b7280;border-color:#e5e7eb;font-style:italic; }

/* Shortlist count chip — appears next to hotness on prep header.
   Mirrors the "cart count" pattern; clickable to scroll into the section. */
.prep-shortlist-chip {
  display:inline-flex;align-items:center;gap:4px;
  font-size:11px;font-weight:700;
  padding:3px 8px;border-radius:999px;
  background:#fef9c3;color:#854d0e;border:1px solid #fde047;
  cursor:pointer;transition:background 0.12s;
}
.prep-shortlist-chip:hover { background:#fef08a; }
.prep-shortlist-chip.prep-shortlist-chip-on { background:#fde68a;color:#78350f;border-color:#fbbf24; }

/* ── Specs drawer (Client Phase) ─────────────────────────────────────── */
.specs-drawer-backdrop {
  position:fixed;inset:0;background:rgba(15,20,32,0.35);
  z-index:300;opacity:0;pointer-events:none;transition:opacity 0.18s;
}
.specs-drawer-backdrop.open { opacity:1;pointer-events:auto; }
.specs-drawer {
  position:fixed;top:0;right:0;bottom:0;width:min(420px,90vw);
  background:var(--paper);z-index:301;
  border-left:1px solid var(--ink-200);box-shadow:-12px 0 32px rgba(15,20,32,0.12);
  transform:translateX(100%);transition:transform 0.22s ease-out;
  display:flex;flex-direction:column;overflow:hidden;
}
.specs-drawer.open { transform:translateX(0); }
.specs-drawer-head {
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid var(--ink-200);background:var(--ink-50);
}
.specs-drawer-title { font-weight:600;font-size:14px;color:var(--ink-900);max-width:280px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.specs-drawer-body { padding:18px;overflow-y:auto;flex:1; }
.specs-grid { display:flex;flex-direction:column;gap:0;border:1px solid var(--ink-100);border-radius:8px;overflow:hidden; }
.specs-row {
  display:grid;grid-template-columns:140px 1fr;gap:10px;
  padding:8px 12px;border-bottom:1px solid var(--ink-100);background:var(--paper);
}
.specs-row:last-child { border-bottom:none; }
.specs-row:nth-child(even) { background:var(--ink-50); }
.specs-key { font-size:11px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.05em; }
.specs-val { font-size:13px;color:var(--ink-900);font-weight:500; }

/* ── In-app brochure viewer (view-only PDF modal) ───────────────────── */
.brochure-viewer-backdrop {
  position:fixed; inset:0; z-index:10050;
  background:rgba(15,20,32,0.72);
  display:none; align-items:center; justify-content:center;
}
.brochure-viewer-backdrop.open { display:flex; }
.brochure-viewer-panel {
  width:min(940px,94vw); height:90vh;
  background:var(--paper); border-radius:12px; overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow:0 24px 70px rgba(0,0,0,0.45);
}
.brochure-viewer-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 16px; border-bottom:1px solid var(--ink-100); flex-shrink:0;
}
.brochure-viewer-title { font-weight:600; font-size:14px; color:var(--ink-900); }
.brochure-viewer-close {
  font-size:13px; font-weight:600; color:var(--ink-600);
  background:var(--ink-100); border:none; border-radius:8px;
  padding:6px 12px; cursor:pointer;
}
.brochure-viewer-close:hover { background:var(--ink-200); color:var(--ink-900); }
.brochure-viewer-frame { flex:1; width:100%; border:none; background:var(--ink-50); }

/* ── Specs drawer — per-configuration table ─────────────────────────── */
.specs-config-table { width:100%;border-collapse:collapse;font-size:12px; }
.specs-config-table th {
  text-align:left;padding:5px 8px;background:var(--ink-50);
  font-size:10px;font-weight:700;color:var(--ink-500);
  text-transform:uppercase;letter-spacing:.04em;
  border-bottom:1px solid var(--ink-200);white-space:nowrap;
}
.specs-config-table td {
  padding:6px 8px;border-bottom:1px solid var(--ink-100);
  color:var(--ink-800);vertical-align:middle;white-space:nowrap;
}
.specs-config-table tbody tr:last-child td { border-bottom:none; }
.specs-config-table tbody tr:nth-child(even) td { background:var(--ink-50); }

/* ── Compare shortlist table (Client Phase modal) ────────────────────── */
.cmp-table {
  width:100%;border-collapse:collapse;font-size:12px;
  background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;overflow:hidden;
}
.cmp-table thead th { background:var(--ink-50);padding:10px 12px;border-bottom:2px solid var(--ink-200);text-align:left;vertical-align:bottom; }
.cmp-head-name { font-weight:600;font-size:13px;color:var(--ink-900);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.cmp-head-rera { font-family:'Consolas',monospace;font-size:10px;color:var(--ink-500);margin-top:2px; }
.cmp-key {
  background:var(--ink-50);font-weight:600;color:var(--ink-500);
  text-transform:uppercase;letter-spacing:0.05em;font-size:10px;
  text-align:left;padding:10px 12px;
  position:sticky;left:0;z-index:1;
  border-right:1px solid var(--ink-200);
}
.cmp-val { padding:10px 12px;border-bottom:1px solid var(--ink-100);color:var(--ink-900);font-weight:500;vertical-align:top; }
.cmp-empty { color:var(--ink-300); }
.cmp-table tbody tr:nth-child(even) td { background:var(--ink-50); }
.cmp-table tbody tr:nth-child(even) .cmp-key { background:var(--ink-100); }

/* ── Prep matched filter bar ───────────────────────────────────────────── */
.prep-filter-bar {
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  padding:6px 0 10px;
  border-bottom:1px dashed var(--ink-100);margin-bottom:10px;
}
.pfb-label {
  font-size:10px;font-weight:600;color:var(--ink-500);
  text-transform:uppercase;letter-spacing:0.06em;margin-right:4px;
}
.pfb-group { display:flex;gap:4px;flex-wrap:wrap;align-items:center; }
.pfb-group-label {
  font-size:10px;font-weight:700;color:var(--ink-400);
  text-transform:uppercase;letter-spacing:0.05em;margin-right:2px;
}
.pfb-chip {
  border:1px solid var(--ink-200);background:var(--paper);
  color:var(--ink-700);font-size:11px;font-weight:600;
  padding:3px 10px;border-radius:999px;cursor:pointer;
  transition:background 0.1s,border-color 0.1s,color 0.1s;
}
.pfb-chip:hover { border-color:var(--relai-blue);color:var(--relai-blue); }
.pfb-chip.active {
  background:var(--relai-blue);border-color:var(--relai-blue);color:#fff;
}
.pfb-reset { color:var(--ink-500);border-style:dashed; }
.pfb-reset:hover { color:#b91c1c;border-color:#fca5a5; }
.pfb-count { margin-left:auto;font-size:11px;color:var(--ink-500);font-weight:500; }

/* Requirement-set tab strip (shown only when 2+ sets exist) */
.prep-reqset-tabs {
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:8px 0 12px;border-bottom:1px solid var(--ink-100);margin-bottom:12px;
}
.prep-reqset-tabs .prst-label {
  font-size:10px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:0.05em;margin-right:6px;
}
.prep-reqset-tab {
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;
  padding:6px 12px;border-radius:999px;cursor:pointer;
  border:1px solid var(--ink-200);background:var(--paper);color:var(--ink-700);
  transition:background .12s ease, border-color .12s ease;
}
.prep-reqset-tab:hover { background:var(--ink-50); }
.prep-reqset-tab.active {
  background:var(--relai-blue);color:#fff;border-color:var(--relai-blue);
}
.prep-reqset-tab .prst-count {
  font-size:10px;font-weight:700;padding:1px 6px;border-radius:8px;
  background:rgba(255,255,255,0.25);color:inherit;
}
.prep-reqset-tab:not(.active) .prst-count { background:var(--ink-100);color:var(--ink-700); }
.prep-reqset-tab.empty   { opacity:0.6; }

/* × Remove button on a matched-property tile */
.prep-matched-card { position:relative; }
.pmc-remove {
  position:absolute;top:8px;right:8px;
  width:20px;height:20px;border-radius:50%;
  display:none;align-items:center;justify-content:center;
  background:var(--paper);border:1px solid var(--ink-200);color:var(--ink-500);
  font-size:13px;font-weight:600;cursor:pointer;line-height:1;
}
.prep-matched-card:hover .pmc-remove { display:inline-flex; }
.pmc-remove:hover { background:#fee2e2;border-color:#fca5a5;color:#991b1b; }

/* Multi-select checkbox on a matched-property card — top-left */
.pmc-select {
  position:absolute;top:8px;left:8px;
  width:18px;height:18px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;
}
.pmc-select input[type=checkbox] {
  width:14px;height:14px;cursor:pointer;accent-color:var(--relai-blue);
}
.prep-matched-card.selected {
  border-color:var(--relai-blue);
  box-shadow:0 0 0 2px rgba(59,130,246,0.18);
}

/* Floating action bar — visible when 1+ cards selected */
.prep-action-bar {
  position:sticky;bottom:8px;z-index:50;
  margin:12px 0 0;padding:8px 12px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;
  box-shadow:0 4px 12px rgba(15,20,32,0.06);
}
.prep-action-bar .pab-count {
  font-size:12px;font-weight:700;color:#854d0e;
  padding:4px 10px;border-radius:999px;background:#fef3c7;border:1px solid #fde68a;
}
.prep-action-bar .pab-count.over { color:#991b1b;background:#fee2e2;border-color:#fca5a5; }

/* Source pill shown next to "Matched properties" after a live refresh */
.prep-matches-source {
  display:inline-block;padding:2px 6px;border-radius:4px;
  background:#ecfccb;color:#365314;border:1px solid #bef264;
  font-weight:600;font-size:10px;
}

/* 2026-05-18: live-match status pill.
   Renders on /session (in the canvas toolbar) and /prep (under the
   Matched-properties heading). Shows loading/N matches/0/error explicitly so
   the expert never wonders whether the matcher actually ran. */
.live-status-pill {
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;border-radius:999px;
  font-size:11px;font-weight:600;line-height:1.4;
  white-space:nowrap;
}
.live-status-pill .spinner {
  width:10px;height:10px;border-width:2px;
}
.live-status-pill .lsp-icon { font-size:13px;line-height:1; }
.live-status-pill .lsp-diff {
  margin-left:6px;padding:1px 5px;border-radius:999px;
  background:rgba(0,0,0,0.06);font-weight:500;font-size:10px;opacity:0.85;
}
.live-status-pill .lsp-btn {
  margin-left:6px;padding:1px 8px;border-radius:999px;
  border:1px solid currentColor;background:transparent;color:inherit;
  font-size:10px;font-weight:600;cursor:pointer;
}
.live-status-pill .lsp-btn:hover { background:rgba(0,0,0,0.06); }
.live-status-pill .lsp-btn:disabled { opacity:0.4;cursor:not-allowed; }
.live-status-pill .lsp-page {
  margin-left:6px;padding:1px 6px;border-radius:999px;
  background:rgba(0,0,0,0.06);font-weight:500;font-size:10px;
}
.live-status-pill .lsp-reason {
  margin-top:4px;font-size:11px;font-weight:400;line-height:1.4;
  flex-basis:100%;color:inherit;opacity:0.85;
}
.live-status-loading { background:#e0f2fe;color:#075985;border:1px solid #7dd3fc; }
.live-status-ok      { background:#ecfccb;color:#365314;border:1px solid #bef264; }
.live-status-zero    { background:#fef3c7;color:#854d0e;border:1px solid #fcd34d; }
.live-status-error   { background:#fee2e2;color:#991b1b;border:1px solid #fca5a5; }

/* Session-side selected card + action bar */
.project-card.selected {
  outline:2px solid var(--relai-blue);outline-offset:-2px;
  box-shadow:0 0 0 3px rgba(59,130,246,0.18);
}
.session-action-bar {
  margin:12px 0;padding:8px 12px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;
  box-shadow:0 4px 12px rgba(15,20,32,0.06);
}
.session-action-bar .sab-count {
  font-size:12px;font-weight:700;color:#854d0e;
  padding:4px 10px;border-radius:999px;background:#fef3c7;border:1px solid #fde68a;
}
.session-action-bar .sab-count.over { color:#991b1b;background:#fee2e2;border-color:#fca5a5; }

/* ── Shortlist tabular view (Client Phase · Shortlist tab) ─────────────── */
/* 2026-05-25: dense session table view (opt-in via ?table=1). Mirrors
   the .shortlist-table styling but adds ★ + ☐ columns and is used as the
   single rendering surface for matches (no Discovery/Shortlist tab split). */
.session-table {
  width: 100%; border-collapse: collapse; font-size: 12px;
  background: var(--paper); border: 1px solid var(--ink-200); border-radius: 8px;
  overflow: hidden;
}
.session-table thead th {
  text-align: left; padding: 8px 10px; font-size: 10px;
  font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--ink-500); background: var(--ink-50); border-bottom: 1px solid var(--ink-200);
  white-space: nowrap;
}
.session-table tbody td {
  padding: 8px 10px; border-bottom: 1px solid var(--ink-100); vertical-align: middle;
}
.session-table tbody tr:hover td { background: #fffbeb; }
.session-table tbody tr.is-shortlisted td { background: #fef9e7; }
.session-table tbody tr.is-shortlisted:hover td { background: #fdf2c4; }
.session-table .sess-c-star { width: 32px; text-align: center; }
.session-table .sess-c-cmp  { width: 32px; text-align: center; }
.session-table .sess-c-grid { font-weight: 600; color: #7a4c00; white-space: nowrap; }
.session-table .sess-c-lshare { width: 54px; text-align: center; white-space: nowrap; }
.session-table .sess-c-info { width: 36px; text-align: center; }

/* LShare badges in table and specs drawer */
.lshare-yes { background: #dcfce7; color: #166534; font-size: 10px; font-weight: 700;
  padding: 2px 6px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.04em; }
.lshare-no  { background: var(--ink-100); color: var(--ink-500); font-size: 10px; font-weight: 600;
  padding: 2px 6px; border-radius: 10px; }
.session-table .sess-c-info button {
  background: transparent; border: 1px solid var(--ink-200);
  width: 26px; height: 26px; border-radius: 4px; cursor: pointer;
  color: var(--ink-500); font-size: 14px;
}
.session-table .sess-c-info button:hover { color: var(--relai-blue); border-color: var(--relai-blue); }
.session-table .sess-c-name { cursor: pointer; }
.session-table .sess-c-name:hover .sess-name-text { color: var(--relai-blue); }
.session-table .sess-name-text { font-weight: 600; color: var(--ink-900); }
.session-table .sess-rera { font-size: 10px; color: var(--ink-400); margin-top: 2px; }
.session-table .tile-star {
  position: static; /* override absolute from base .tile-star; flows inside <td> */
  background: transparent; border: none; cursor: pointer;
  font-size: 16px; color: var(--ink-300); padding: 0; line-height: 1;
}
.session-table .tile-star.is-on { color: var(--relai-yellow, #f5a623); }
.session-table .tile-star:hover { color: var(--relai-yellow, #f5a623); }
.sess-table-empty { padding: 32px 24px; color: var(--ink-500); font-size: 13px; text-align: center; }
.sess-table-empty a { color: var(--relai-blue); text-decoration: underline; }
.sess-table-footer {
  padding: 8px 12px; font-size: 11px; color: var(--ink-500);
  background: var(--ink-50); border: 1px solid var(--ink-200); border-top: none;
  border-radius: 0 0 8px 8px;
}

/* Hide the Discovery/Shortlist tab strip when table mode is on — the
   table replaces both views. Present mode (is-presenting) overrides
   so the customer always sees tiles. */
body.is-table-mode #page-session .canvas-tabs { display: none; }
body.is-table-mode.is-presenting #page-session .canvas-tabs { display: flex; }

.shortlist-table {
  width:100%;border-collapse:collapse;font-size:12px;
  background:var(--paper);border:1px solid var(--ink-200);border-radius:8px;
  overflow:hidden;
}
.shortlist-table thead th {
  text-align:left;padding:8px 10px;font-size:10px;
  font-weight:700;text-transform:uppercase;letter-spacing:0.05em;
  color:var(--ink-500);background:var(--ink-50);border-bottom:1px solid var(--ink-200);
}
.shortlist-table tbody td {
  padding:8px 10px;border-bottom:1px solid var(--ink-100);vertical-align:top;
}
.shortlist-table .slt-project-row:hover td { background:#fffbeb; }
.shortlist-table .slt-expand-btn {
  background:transparent;border:none;cursor:pointer;color:var(--ink-500);
  font-size:13px;line-height:1;padding:2px 4px;
}
.shortlist-table .slt-expand-btn.open { color:var(--relai-blue);font-weight:700; }
.shortlist-table .slt-name { font-weight:600;color:var(--ink-900); }
.shortlist-table .slt-rera { font-size:10px;color:var(--ink-400);font-weight:400;margin-top:2px; }
.shortlist-table .slt-actions { display:flex;gap:6px;flex-wrap:nowrap; }
.shortlist-table .slt-action-btn {
  font-size:11px;padding:3px 8px;border-radius:4px;cursor:pointer;
  background:var(--paper);border:1px solid var(--ink-200);color:var(--ink-700);
}
.shortlist-table .slt-action-btn:hover { background:var(--ink-50);border-color:var(--relai-blue);color:var(--relai-blue); }
.shortlist-table .slt-action-btn.danger { color:#991b1b;border-color:#fca5a5; }
.shortlist-table .slt-action-btn.danger:hover { background:#fee2e2; }
.shortlist-table .slt-configs-cell {
  padding:10px 14px;background:var(--ink-50);
  border-top:1px solid var(--ink-100);border-bottom:1px solid var(--ink-200);
}
.shortlist-table .slt-configs-loading,
.shortlist-table .slt-configs-empty {
  font-size:11px;color:var(--ink-500);font-style:italic;padding:6px 0;
}
.shortlist-table .slt-configs-inner {
  width:100%;border-collapse:collapse;font-size:11px;background:var(--paper);
  border:1px solid var(--ink-200);border-radius:4px;
}
.shortlist-table .slt-configs-inner th {
  padding:6px 8px;font-size:9px;text-transform:uppercase;letter-spacing:0.04em;
  color:var(--ink-500);font-weight:700;background:var(--ink-50);
  border-bottom:1px solid var(--ink-200);text-align:left;
}
.shortlist-table .slt-configs-inner td {
  padding:6px 8px;border-bottom:1px solid var(--ink-100);
}
.shortlist-table .slt-configs-inner tr:last-child td { border-bottom:none; }

/* Inline transcript block under an engage-call entry in the capture timeline */
.pcap-transcript {
  margin-top:6px;background:var(--ink-50);border:1px solid var(--ink-100);
  border-radius:6px;font-size:12px;
}
.pcap-transcript summary {
  cursor:pointer;list-style:none;padding:6px 10px;font-weight:600;color:var(--ink-700);
  display:flex;align-items:center;gap:6px;
}
.pcap-transcript summary::-webkit-details-marker { display:none; }
.pcap-transcript summary::after { content:'▾';font-size:10px;color:var(--ink-400);margin-left:auto; }
.pcap-transcript[open] summary::after { content:'▴'; }
.pcap-transcript-body {
  padding:8px 10px 10px;border-top:1px solid var(--ink-100);
  white-space:pre-wrap;line-height:1.55;color:var(--ink-800);font-size:12px;
  max-height:280px;overflow-y:auto;
}

/* Inline recording link (shows alongside a call entry that has voice_recording_url) */
.pcap-recording {
  display:inline-flex;align-items:center;gap:4px;
  margin-top:4px;font-size:11px;color:var(--relai-blue);text-decoration:none;font-weight:600;
}
.pcap-recording:hover { text-decoration:underline; }
.pcap-recording::before { content:'▶ '; }

/* Fix the Genie chat block: ensure replay isn't capped */
#phase1-genie-section .genie-thread,
#prep-genie-section .genie-thread { max-height:none !important; }

/* ── Phase 4 · Client Phase toolbar (replaces the 4-phase tab bar) ─────── */
.client-phase-toolbar {
  display:flex;align-items:center;gap:16px;
  background:var(--paper);border:1px solid var(--ink-200);border-radius:10px;
  padding:10px 16px;margin-bottom:12px;
}
.client-phase-toolbar .cpt-title {
  font-family:'Poppins',inherit;font-size:14px;font-weight:700;color:var(--ink-900);
}
.client-phase-toolbar .cpt-sub {
  font-size:11px;color:var(--ink-600);line-height:1.5;flex:1;
}
.client-phase-toolbar .cpt-sub strong { color:var(--ink-900); }

/* Hide the old .phase-bar safely (no longer rendered, but defensive in case
   any cached version of the HTML serves the old markup briefly) */
.phase-bar { display:none !important; }

/* ═══════════════════════════════════════════════════════════════════════
   APPLE-MODE TILE SYSTEM (2026-05-18)

   One tile design for /today, /prep, /session. One specs drawer.
   One empty state. One status dot. Single accent for shortlist.

   Components below replace these scattered legacy patterns:
   - .prep-matched-card  (prep tile)
   - .project-card        (session Discovery tile)
   - .session-card        (today tile project-card portion)
   - .live-status-pill    (the verbose status pill — now stripped to a dot)
   ═══════════════════════════════════════════════════════════════════════ */

/* Tile — the atomic unit */
.tile-card {
  position:relative;
  background:var(--paper, #fff);
  border:1px solid var(--ink-200, #e6e8eb);
  border-radius:10px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:8px;
  cursor:pointer;
  transition:transform 120ms ease-out, box-shadow 120ms ease-out, border-color 120ms ease-out;
  min-width:0;
}
.tile-card:hover {
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(15,20,32,0.08);
  border-color:var(--ink-300, #d0d4da);
}
.tile-card.is-shortlisted {
  border-color:var(--relai-yellow, #f5a623);
  background:linear-gradient(180deg, rgba(245,166,35,0.04) 0%, transparent 100%);
}
.tile-card.is-compare-selected {
  outline:2px solid var(--relai-blue, #3b82f6);
  outline-offset:-2px;
}

/* Name — 2 line clamp, fade truncation */
.tile-name {
  font-family:'Poppins', system-ui, sans-serif;
  font-weight:700;
  font-size:14px;
  line-height:1.3;
  color:var(--ink-900, #0f1420);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-width:0;
  word-break:break-word;
  padding-right:32px; /* clear the star button */
}

/* Builder · Area — muted single line, ellipsize */
.tile-sub {
  font-size:12px;
  color:var(--ink-500, #5a5a5a);
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-width:0;
}

/* One pill row */
.tile-pills {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.tile-pill {
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:12px;
  font-weight:600;
  color:var(--ink-700, #3a3a3a);
  background:var(--ink-50, #f6f7f8);
  border:1px solid var(--ink-100, #ececef);
  border-radius:999px;
  padding:3px 9px;
  white-space:nowrap;
}
.tile-pill-price {
  color:var(--ink-900, #0f1420);
  background:rgba(245, 166, 35, 0.08);
  border-color:rgba(245, 166, 35, 0.25);
}
.tile-pill-ready { color:#0d6537; background:#e7f6ec; border-color:#bce3c8; }
.tile-pill-ready.is-future { color:#7a4c00; background:#fff5e0; border-color:#f1d5a6; }
.tile-pill-ppsf {
  color:var(--ink-700, #3a3a3a);
  background:var(--ink-50, #f6f7f8);
  border-color:var(--ink-100, #ececef);
  font-weight:500;
}
/* Sqft pill — added 2026-05-22 so the Min sqft filter on /session is
   discoverable (expert can see why a tile dropped out). Distinct color
   from price/ppsf so the row stays scannable. */
.tile-pill-sqft {
  color:var(--relai-blue, #3b5bdb);
  background:var(--relai-blue-50, #eef2ff);
  border-color:rgba(59, 91, 219, 0.18);
  font-weight:500;
}
/* GRID-score pill — added 2026-05-25. Yellow ★ rating that was previously
   buried inside the legacy project-card. Now surfaced on every tile so
   experts can scan match quality without opening the drawer. */
.tile-pill-grid {
  color: #7a4c00;
  background: #fff8d8;
  border-color: #f1d5a6;
  font-weight: 600;
}

/* ── Relai Take (2026-06-24) ────────────────────────────────────────────
   Per-project curated verdict, set in Onboard, read-only here. The tile
   chip is an EXPERT-ONLY aid — hidden in Present mode so the customer never
   sees a "not recommended" verdict on screen mid-call. */
.tile-relai-take {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  line-height:1;
  border-radius:999px;
  padding:3px 8px;
  border:1px solid transparent;
  cursor:pointer;
  user-select:none;
}
.tile-relai-take.rt-good    { background:#e7f6ec; border-color:#bce3c8; }
.tile-relai-take.rt-caution { background:#fff5e0; border-color:#f1d5a6; }
.tile-relai-take.rt-bad     { background:#fdecec; border-color:#f3c2c2; }
body.is-presenting .tile-relai-take { display:none !important; }

/* Relai Take popover (icon tap/hover detail) */
.relai-take-popover {
  position:absolute;
  z-index:9999;
  width:280px;
  max-width:calc(100vw - 24px);
  background:var(--paper, #fff);
  border:1px solid var(--ink-200, #e6e8eb);
  border-radius:10px;
  box-shadow:0 8px 28px rgba(15,20,32,0.18);
  padding:12px 14px;
  display:none;
}
.relai-take-popover.open { display:block; }
.relai-take-popover .rtp-head {
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--relai-blue, #3b5bdb);
  margin-bottom:6px;
}
.relai-take-popover .rtp-body {
  font-size:13px;
  line-height:1.45;
  color:var(--ink-800, #1f2430);
  white-space:pre-wrap;
}
.relai-take-popover .rtp-empty { color:var(--ink-500, #8a909b); font-style:italic; }
body.is-presenting .relai-take-popover { display:none !important; }

/* Relai Take block in the specs drawer / project detail */
.specs-relai-take {
  border:1px solid var(--ink-100, #ececef);
  border-radius:10px;
  padding:10px 12px;
  margin-bottom:12px;
  background:var(--ink-50, #f6f7f8);
}
.specs-relai-take.rt-good    { background:#e7f6ec; border-color:#bce3c8; }
.specs-relai-take.rt-caution { background:#fff5e0; border-color:#f1d5a6; }
.specs-relai-take.rt-bad     { background:#fdecec; border-color:#f3c2c2; }
.specs-relai-take .srt-head {
  font-size:12px;
  font-weight:700;
  color:var(--ink-900, #0f1420);
  display:flex;
  align-items:center;
  gap:6px;
}
.specs-relai-take .srt-icon { font-size:15px; line-height:1; }
.specs-relai-take .srt-obs {
  margin-top:6px;
  font-size:13px;
  line-height:1.45;
  color:var(--ink-700, #3a3a3a);
  white-space:pre-wrap;
}

/* Tile footer — Compare checkbox row (added 2026-05-19) */
.tile-foot {
  margin-top:auto;
  padding-top:8px;
  border-top:1px solid var(--ink-100, #ececef);
  display:flex;
  justify-content:flex-end;
}
.tile-compare-cb {
  background:transparent;
  border:1px solid var(--ink-200, #e6e8eb);
  border-radius:6px;
  padding:4px 10px;
  font-size:11px;
  font-weight:600;
  color:var(--ink-700, #3a3a3a);
  cursor:pointer;
  transition:background 120ms ease, color 120ms ease, border-color 120ms ease;
}
.tile-compare-cb:hover { background:var(--ink-50, #f6f7f8); }
.tile-compare-cb.is-on {
  color:var(--relai-blue, #3b82f6);
  background:rgba(59, 130, 246, 0.08);
  border-color:rgba(59, 130, 246, 0.4);
}

/* Star toggle — single shortlist mechanism */
.tile-star {
  position:absolute;
  top:12px;
  right:12px;
  width:28px;
  height:28px;
  border:none;
  background:transparent;
  cursor:pointer;
  font-size:18px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:var(--ink-300, #c5c7cc);
  transition:transform 150ms ease-out, color 150ms ease-out, background 120ms ease-out;
}
.tile-star:hover { background:var(--ink-50, #f6f7f8); color:var(--relai-yellow, #f5a623); }
.tile-star.is-on { color:var(--relai-yellow, #f5a623); }
.tile-star.is-on:active { transform:scale(1.2); }

/* Skeleton state — gray placeholder while live matcher runs */
.tile-skeleton {
  background:var(--paper, #fff);
  border:1px solid var(--ink-200, #e6e8eb);
  border-radius:10px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:8px;
  pointer-events:none;
}
.tile-skel-bar {
  background:linear-gradient(90deg, var(--ink-100, #ececef) 0%, var(--ink-50, #f6f7f8) 50%, var(--ink-100, #ececef) 100%);
  background-size:200% 100%;
  animation:tileShimmer 1.4s ease-in-out infinite;
  border-radius:6px;
}
.tile-skel-bar.h-name { height:18px; width:65%; }
.tile-skel-bar.h-sub  { height:12px; width:80%; }
.tile-skel-bar.h-pill { height:22px; width:32%; border-radius:999px; }
@keyframes tileShimmer {
  0%   { background-position:200% 0; }
  100% { background-position:-200% 0; }
}

/* Grid layout — used by both /prep matched panel + /session canvas */
.tile-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:12px;
  align-items:start;
}

/* Empty + zero-match state */
.tile-empty {
  grid-column:1 / -1;
  padding:32px 16px;
  text-align:center;
  color:var(--ink-500, #5a5a5a);
  font-size:13px;
  line-height:1.6;
}
.tile-empty-title {
  font-family:'Poppins', system-ui, sans-serif;
  font-weight:700;
  font-size:15px;
  color:var(--ink-900, #0f1420);
  margin-bottom:6px;
}
.tile-empty-cta {
  margin-top:10px;
  display:inline-block;
  padding:6px 14px;
  border:1px solid var(--ink-300, #d0d4da);
  border-radius:8px;
  background:var(--paper, #fff);
  cursor:pointer;
  font-size:12px;
  font-weight:600;
  color:var(--ink-700, #3a3a3a);
}
.tile-empty-cta:hover { background:var(--ink-50, #f6f7f8); }

/* "View N more" — bottom of a truncated tile grid */
.tile-view-more {
  grid-column:1 / -1;
  text-align:center;
  padding:12px;
  margin-top:4px;
  border-top:1px dashed var(--ink-200, #e6e8eb);
  font-size:12px;
  font-weight:600;
  color:var(--ink-700, #3a3a3a);
  cursor:pointer;
  background:transparent;
  border-left:none;border-right:none;border-bottom:none;
}
.tile-view-more:hover { color:var(--relai-blue, #3b82f6); }

/* Status dot — replaces the verbose live-status-pill */
.live-status-dot {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  color:var(--ink-500, #5a5a5a);
  user-select:none;
}
.live-status-dot::before {
  content:'';
  width:8px;height:8px;
  border-radius:50%;
  background:var(--ink-300, #c5c7cc);
  transition:background 120ms ease;
}
.live-status-dot.is-loading::before {
  background:var(--relai-blue, #3b82f6);
  animation:dotPulse 1.2s ease-in-out infinite;
}
.live-status-dot.is-fresh::before { background:#22c55e; }
.live-status-dot.is-zero::before { background:#f59e0b; }
.live-status-dot.is-error::before { background:#ef4444; }
/* 2026-05-23: drift = showing engage's stored snapshot because live returned 0.
   Amber-orange — distinct from zero so the expert can spot it at a glance. */
.live-status-dot.is-drift::before { background:#d97706; }
.live-status-dot.is-drift { color:#92400e; font-weight:600; }
.live-status-dot .lsd-label { font-weight:500; }
@keyframes dotPulse {
  0%, 100% { opacity:1; transform:scale(1); }
  50%      { opacity:0.45; transform:scale(0.75); }
}

/* Compare floating pill — appears bottom-center when 2+ tiles selected via
   shift+star. Replaces the legacy "session action bar" + "prep action bar". */
.compare-pill {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%) translateY(20px);
  opacity:0;
  pointer-events:none;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--ink-900, #0f1420);
  color:#fff;
  padding:10px 18px;
  border-radius:999px;
  box-shadow:0 8px 24px rgba(15,20,32,0.24);
  font-size:13px;
  font-weight:600;
  z-index:50;
  transition:transform 180ms ease-out, opacity 180ms ease-out;
}
.compare-pill.is-visible {
  transform:translateX(-50%) translateY(0);
  opacity:1;
  pointer-events:auto;
}
.compare-pill .cp-btn {
  background:rgba(255,255,255,0.16);
  color:#fff;
  border:none;
  padding:5px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
}
.compare-pill .cp-btn-primary { background:var(--relai-yellow, #f5a623); color:var(--ink-900, #0f1420); }
.compare-pill .cp-btn:hover { filter:brightness(1.1); }
.compare-pill .cp-hint {
  font-weight:500;
  opacity:0.7;
  font-size:11px;
  padding:2px 8px;
  background:rgba(255,255,255,0.1);
  border-radius:999px;
}

/* Specs drawer styles removed from Apple-mode block — the legacy
   .specs-drawer / .specs-drawer-backdrop / .specs-drawer-head etc. rules
   at lines ~3151+ are the canonical implementation. The tile click in
   buildTile now routes to the legacy openSpecsDrawer() (which renders
   35+ project-detail fields via /api/project-detail). */

/* Present mode — hides expert-only chrome on the customer screen-share */
body.is-presenting .canvas-tabs,
body.is-presenting .canvas-filter-pill,
body.is-presenting #canvas-filter-pills,
body.is-presenting #session-refresh-matches-btn,
body.is-presenting #prep-refresh-matches-btn,
body.is-presenting #session-filter-bar,
body.is-presenting .prep-filter-bar,
body.is-presenting .prep-action-bar,
body.is-presenting .session-action-bar,
body.is-presenting .canvas-match-counter,
body.is-presenting #prep-area-summary-bar,
body.is-presenting #session-area-summary-bar { display:none !important; }

/* Slim status dot in Present mode — corner of canvas */
body.is-presenting #session-live-status,
body.is-presenting #prep-live-status {
  position:absolute;top:8px;right:12px;
}

/* Present mode toggle button in topbar */
.present-toggle {
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;
  border:1px solid var(--ink-200, #e6e8eb);
  border-radius:8px;
  background:var(--paper, #fff);
  cursor:pointer;
  font-size:12px;
  font-weight:600;
  color:var(--ink-700, #3a3a3a);
}
.present-toggle:hover { background:var(--ink-50, #f6f7f8); }
body.is-presenting .present-toggle {
  background:var(--ink-900, #0f1420);
  color:#fff;
  border-color:var(--ink-900);
}

/* ════════════════════════════════════════════════════════════════════════
   EXPLORE MATCHES  (2026-05-20)
   Scratchpad matcher styles. Reuses .req-form-* base for form fields.
   ════════════════════════════════════════════════════════════════════════ */
.explore-form {
  background: var(--paper, #fff);
  border: 1px solid var(--ink-200, #e5e7eb);
  border-radius: 10px;
  padding: 16px 18px;
  margin-bottom: 18px;
}
.explore-form .req-form-grid { margin-bottom: 14px; }
.explore-form-actions { display: flex; gap: 10px; align-items: center; }

.explore-results-header { display: flex; justify-content: space-between; align-items: baseline; margin: 18px 0 10px; }
.explore-results-title { font-size: 14px; font-weight: 600; color: var(--ink-900); }
.explore-results-sub   { font-size: 12px; color: var(--ink-500); }

.explore-results-tablewrap {
  background: var(--paper, #fff);
  border: 1px solid var(--ink-200, #e5e7eb);
  border-radius: 10px;
  max-height: 60vh;
  overflow: auto;
}
.explore-results-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.explore-results-table thead {
  background: var(--ink-50, #f9fafb);
  position: sticky;
  top: 0;
  z-index: 2;
}
.explore-results-table th {
  text-align: left; padding: 9px 10px;
  font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--ink-500); border-bottom: 1px solid var(--ink-200);
  white-space: nowrap;
}
.explore-results-table td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--ink-100);
  vertical-align: top;
}
.explore-results-table tbody tr:last-child td { border-bottom: none; }
.explore-results-table tbody tr:hover { background: var(--ink-50); }
.explore-reason-cell { max-width: 220px; font-size: 11px; color: var(--ink-500); line-height: 1.4; }
.explore-score-pill {
  display: inline-block; padding: 2px 7px;
  font-size: 11px; font-weight: 600; border-radius: 4px;
  background: var(--relai-blue-50, #eef2ff); color: var(--relai-blue, #3b5bdb);
}

.explore-bottom-actions {
  display: flex; gap: 10px; justify-content: flex-end;
  padding: 14px 0 4px;
}

/* Picker modal — uses .modal-backdrop / .analytics-modal pattern from compare modal. */
#explore-picker-modal,
#explore-picker-backdrop { display: none; }
#explore-picker-modal.open,
#explore-picker-backdrop.open { display: block; }

.explore-picker-row {
  padding: 10px 12px;
  border: 1px solid var(--ink-200);
  border-radius: 8px;
  margin-bottom: 6px;
  cursor: pointer;
  transition: background 0.12s ease;
}
.explore-picker-row:hover {
  background: var(--ink-50);
  border-color: var(--ink-300, #d1d5db);
}

/* Budget row — Min input + unit  to  Max input + unit */
.explore-budget-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.explore-budget-num  { flex: 0 0 110px; }
.explore-budget-unit { flex: 0 0 90px; }
.explore-budget-dash { font-size: 12px; color: var(--ink-500); padding: 0 4px; }

/* Location multi-select picker */
.explore-loc-wrap { position: relative; }
.explore-loc-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 6px;
  min-height: 0;
}
.explore-loc-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 4px 3px 9px;
  font-size: 12px;
  font-weight: 500;
  color: var(--relai-blue, #3b5bdb);
  background: var(--relai-blue-50, #eef2ff);
  border: 1px solid var(--relai-blue-100, #c7d2fe);
  border-radius: 14px;
}
.explore-loc-chip-x {
  border: none;
  background: transparent;
  color: var(--relai-blue, #3b5bdb);
  font-size: 14px;
  line-height: 1;
  padding: 0 4px;
  cursor: pointer;
  opacity: 0.65;
}
.explore-loc-chip-x:hover { opacity: 1; }

.explore-loc-input { width: 100%; }

.explore-loc-suggestions {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 10;
  background: var(--paper, #fff);
  border: 1px solid var(--ink-200, #e5e7eb);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  max-height: 260px;
  overflow: auto;
  margin-top: 4px;
}
.explore-loc-suggestion {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  cursor: pointer;
  border-bottom: 1px solid var(--ink-100, #f3f4f6);
  transition: background 0.1s;
}
.explore-loc-suggestion:last-child { border-bottom: none; }
.explore-loc-suggestion:hover { background: var(--ink-50, #f9fafb); }
.explore-loc-suggestion-name { font-size: 13px; font-weight: 500; color: var(--ink-900); }
.explore-loc-suggestion-meta { font-size: 11px; color: var(--ink-500); }

/* Results row hover effect (signal it's clickable) */
.explore-results-table tbody tr.explore-row { cursor: pointer; }
.explore-results-table tbody tr.explore-row:hover { background: var(--ink-50); }

/* Nearby-cluster suggestion strip (Engage-style) */
.explore-loc-nearby {
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px dashed var(--ink-200);
  background: rgba(239, 246, 255, 0.4);
  border-radius: 6px;
}
.explore-loc-nearby-head {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-500);
  margin-bottom: 6px;
}
.explore-loc-nearby-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.explore-loc-nearby-chip {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-700, #374151);
  background: var(--paper, #fff);
  border: 1px solid var(--ink-200);
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.explore-loc-nearby-chip:hover {
  background: var(--relai-blue-50, #eef2ff);
  border-color: var(--relai-blue, #3b5bdb);
  color: var(--relai-blue, #3b5bdb);
}
.explore-loc-nearby-all {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 600;
  color: var(--relai-blue, #3b5bdb);
  background: var(--relai-blue-50, #eef2ff);
  border: 1px solid var(--relai-blue, #3b5bdb);
  border-radius: 12px;
  cursor: pointer;
}
.explore-loc-nearby-all:hover {
  background: var(--relai-blue, #3b5bdb);
  color: #fff;
}

/* Session filter bar: Min sqft number input (2026-05-20) */
.pfb-num-input {
  width: 80px;
  padding: 3px 6px;
  font-size: 11px;
  font-family: inherit;
  border: 1px solid var(--ink-200, #e5e7eb);
  border-radius: 6px;
  background: var(--paper, #fff);
}
.pfb-num-input:focus {
  outline: none;
  border-color: var(--relai-blue, #3b5bdb);
}

/* /session "+ New set" button next to req-tabs (2026-05-20) */
.session-req-add {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  margin-left: 8px;
  font-size: 11px;
  font-weight: 600;
  color: var(--relai-blue, #3b5bdb);
  background: var(--relai-blue-50, #eef2ff);
  border: 1px dashed var(--relai-blue, #3b5bdb);
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}
.session-req-add:hover {
  background: var(--relai-blue, #3b5bdb);
  color: #fff;
  border-style: solid;
}

/* Edit (✏) button next to the req dropdown */
.session-req-edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px; height: 24px;
  margin-left: 6px;
  font-size: 12px;
  color: var(--ink-500);
  background: transparent;
  border: 1px solid var(--ink-200);
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.1s, color 0.1s, border-color 0.1s;
  flex-shrink: 0;
}
.session-req-edit:hover {
  background: var(--ink-100);
  color: var(--ink-900);
  border-color: var(--ink-400);
}

/* ── Lead reassignment (Admin only) ──────────────────────────── */
.reassign-btn {
  margin-left: 6px;
  background: transparent;
  border: 1px solid var(--ink-200);
  border-radius: 4px;
  color: var(--ink-400);
  font-size: 11px;
  padding: 1px 5px;
  cursor: pointer;
  vertical-align: middle;
  line-height: 1.4;
}
.reassign-btn:hover { color: var(--relai-blue); border-color: var(--relai-blue); }

.reassign-popover {
  position: absolute;
  z-index: 9500;
  background: var(--paper);
  border: 1px solid var(--ink-200);
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(15,20,32,0.12);
  padding: 10px 12px;
  min-width: 200px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.reassign-pop-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--ink-500);
  text-transform: uppercase;
}
.reassign-pop-select {
  font-size: 12px;
  padding: 4px 6px;
  border: 1px solid var(--ink-200);
  border-radius: 5px;
  background: var(--paper);
  color: var(--ink-900);
  cursor: pointer;
}
.reassign-pop-cancel {
  align-self: flex-end;
  background: none;
  border: none;
  color: var(--ink-400);
  cursor: pointer;
  font-size: 13px;
  padding: 0;
  line-height: 1;
  position: absolute;
  top: 8px;
  right: 10px;
}

/* ── Demand Insights page ─────────────────────────────────────────────────── */
.di-range-bar { display:flex;gap:6px;margin-bottom:16px; }
.di-range-chip { padding:5px 14px;border-radius:20px;border:1px solid var(--ink-200);background:transparent;font-size:12px;font-weight:500;color:var(--ink-500);cursor:pointer;transition:all .15s; }
.di-range-chip:hover { border-color:var(--relai-blue);color:var(--relai-blue); }
.di-range-chip.active { background:var(--relai-blue);border-color:var(--relai-blue);color:#fff; }
.di-totals { display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px; }
.di-total-chip { display:flex;flex-direction:column;gap:2px;padding:12px 18px;background:var(--surface);border:1px solid var(--ink-100);border-radius:10px;min-width:140px; }
.di-total-chip strong { font-size:22px;font-weight:700;color:var(--relai-blue); }
.di-total-chip span { font-size:11px;color:var(--ink-500); }
.di-section-label { font-size:11px;font-weight:600;color:var(--ink-400);text-transform:uppercase;letter-spacing:.06em;margin:24px 0 10px; }
.di-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px; }
.di-grid-wide { grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); }
.di-card { background:var(--surface);border:1px solid var(--ink-100);border-radius:10px;padding:14px 16px; }
.di-card-title { font-size:12px;font-weight:600;color:var(--ink-600);margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em; }
.di-card-body { display:flex;flex-direction:column;gap:6px; }
.di-bar-row { display:grid;grid-template-columns:110px 1fr 36px;align-items:center;gap:6px; }
.di-bar-label { font-size:12px;color:var(--ink-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.di-bar-track { height:8px;background:var(--ink-100);border-radius:4px;overflow:hidden; }
.di-bar-fill { height:100%;border-radius:4px;transition:width .3s ease; }
.di-bar-count { font-size:12px;font-weight:600;color:var(--ink-600);text-align:right; }
.di-spark-labels { display:flex;justify-content:space-between;font-size:10px;color:var(--ink-400);margin-top:4px; }
.di-spark-peak { font-size:11px;color:var(--ink-500);margin-top:4px; }
