/* setter-portal.css — 260920-cf18
   Every rule from the SETTER portal's 12 inline <style> blocks, mechanically
   scoped under .sp so the five ported views (FAQ, objections, sample calls,
   resources, EOD) keep their original look WITHOUT colliding with the CEO
   stylesheet this portal is built on. 95 of the 102 classes they use do not
   exist here, and .panel/.ph would otherwise fight the SOP tab.
   :root/html/body were rewritten to .sp so the setter design tokens apply
   inside the wrapper only. .view rules were DROPPED — they would fight
   .cf-view.is-active. #view-* selectors were left unscoped (unique ids).
   ⛔Generated. Re-run scripts/port-setter-views.py rather than hand-editing. */

.sp /* 260530-drz: data-card primitive (locked design) */
    /* DATA CARD PRIMITIVE */
    .card-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 14px;
      padding: 4px;
    }
.sp .data-card {
      position: relative;
      background: var(--card, #1a1a1a);
      border: 1px solid var(--border, #2a2a2a);
      border-radius: 12px;
      padding: 14px 16px 14px 18px;
      cursor: pointer;
      transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
.sp .data-card::before {
      content: '';
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 4px;
      background: var(--muted, #6b7280);
      transition: background 160ms ease;
    }
.sp .data-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 22px rgba(0,0,0,0.32);
      border-color: rgba(255,255,255,0.10);
    }
.sp .data-card:focus { outline: none; }
.sp .data-card:focus-visible {
      box-shadow: 0 0 0 2px var(--accent, #155eef);
    }
.sp /* State rails (4px left border via ::before) + glow on attention */
    .data-card[data-state="needs-outcome"]::before { background: linear-gradient(180deg, #f5c542 0%, #c9a961 100%); }
.sp .data-card[data-state="needs-outcome"] {
      box-shadow: 0 0 0 1px rgba(245,197,66,0.45), 0 0 24px -6px rgba(245,197,66,0.55);
    }
.sp .data-card[data-state="needs-outcome"]:hover {
      box-shadow: 0 0 0 1px rgba(245,197,66,0.65), 0 0 30px -4px rgba(245,197,66,0.7);
    }
.sp .data-card[data-state="closed"]::before { background: #22c55e; }
.sp .data-card[data-state="showed"]::before { background: #3b82f6; }
.sp .data-card[data-state="no-showed"]::before { background: #ef4444; }
.sp .data-card[data-state="cancelled"]::before { background: #f5c542; }
.sp .data-card[data-state="rescheduled"]::before { background: #9ca3af; }
.sp .data-card[data-state="dq"]::before { background: #6b7280; }
.sp .data-card[data-state="scheduled"]::before { background: #6b7280; }
.sp .data-card[data-state="refunded"]::before { background: #ef4444; }
.sp .data-card[data-state="overdue"]::before { background: #ef4444; }
.sp .data-card[data-state="due-today"]::before { background: linear-gradient(180deg, #f5c542 0%, #c9a961 100%); }
.sp /* 260530-gyf: dashboard unification — new data-state rails */
    .data-card[data-state="activity"]::before { background: #155EEF; }
.sp .data-card[data-state="leaderboard-1"]::before { background: linear-gradient(180deg, #f5c542 0%, #c9a961 100%); }
.sp .data-card[data-state="leaderboard-2"]::before { background: #c0c0c0; }
.sp .data-card[data-state="leaderboard-3"]::before { background: #cd7f32; }
.sp .data-card[data-state="leaderboard-other"]::before { background: #6b7280; }
.sp .data-card.is-current-user { border-color: rgba(21,94,239,0.55); box-shadow: 0 0 0 1px rgba(21,94,239,0.35) inset; }
.sp /* 260530-gyf: hero card */
    .dashboard-hero.data-card { padding: 18px 22px; }
.sp /* 260530-eyf-strip2: bulletproof strip layout + tighter dashboard rhythm */
    #view-dashboard.active { display:flex; flex-direction:column; gap:14px; }
.sp .dashboard-hero.data-card {
      padding:0 !important;
      border-radius:12px;
      overflow:hidden;
      border:1px solid var(--card-border);
      box-shadow:0 1px 3px rgba(0,0,0,0.04);
    }
.sp .dh-strip {
      display:flex;
      align-items:stretch;
      min-height:74px;
    }
.sp .dh-strip .dh-identity {
      flex:0 0 240px;
      display:flex; align-items:center; gap:12px;
      padding:12px 18px;
      border-right:1px solid var(--border);
      background:linear-gradient(180deg, rgba(21,94,239,0.04) 0%, transparent 100%);
    }
.sp .dh-strip .dh-avatar-sm { width:38px; height:38px; border-radius:50%; background:var(--accent,#155EEF); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex-shrink:0; box-shadow:0 2px 6px rgba(21,94,239,0.25); }
.sp .dh-strip .dh-name-block { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.sp .dh-strip .dh-name-text { font-size:13px; font-weight:700; color:var(--foreground); line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sp .dh-strip .dh-sub-text { font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-foreground); font-weight:600; }
.sp .dh-strip .dh-period-chip-sm { font-size:9px; letter-spacing:.1em; text-transform:uppercase; padding:2px 7px; border-radius:999px; background:var(--accent-glow,rgba(21,94,239,0.10)); color:var(--accent,#155EEF); font-weight:700; flex-shrink:0; }
.sp .dh-strip .dh-divider { display:none; }
.sp .dh-strip .dh-kpis {
      flex:1;
      display:grid;
      grid-template-columns:repeat(4, 1fr);
      align-items:stretch;
    }
.sp .dh-strip .dh-kpi {
      display:flex; flex-direction:column; justify-content:center; align-items:center;
      gap:3px;
      padding:10px 8px;
      border-right:1px solid var(--border);
      min-width:0;
    }
.sp .dh-strip .dh-kpi:last-child { border-right:none; }
.sp .dh-strip .dh-kpi-val { font-size:20px; font-weight:800; color:var(--foreground); line-height:1; font-variant-numeric:tabular-nums; }
.sp .dh-strip .dh-kpi-val.dh-kpi-cash { color:var(--green); }
.sp .dh-strip .dh-kpi-val.dh-kpi-paid { color:var(--green); }
.sp .dh-strip .dh-kpi-val.dh-kpi-pending { color:var(--red); }
.sp .dh-strip .dh-kpi-val.dh-kpi-none { color:var(--muted-foreground); }
.sp .dh-strip .dh-kpi-lbl { font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-foreground); font-weight:700; }
.sp /* Section spacing — kill the duplicate margins, .sp let parent gap handle it */
    .attention-row { margin-top:0 !important; gap:10px; }
.sp .attention-row:empty { display:none; }
.sp .dashboard-footer { margin-top:0 !important; gap:14px; }
.sp .dashboard-footer .section-header { margin-bottom:10px; font-size:11px; }
    @media (max-width:760px) {
.sp .dh-strip { flex-direction:column; }
.sp .dh-strip .dh-identity { flex:none; border-right:none; border-bottom:1px solid var(--border); }
.sp .dh-strip .dh-kpis { grid-template-columns:repeat(2, 1fr); }
.sp .dh-strip .dh-kpi:nth-child(2) { border-right:none; }
.sp .dh-strip .dh-kpi:nth-child(1), .sp .dh-strip .dh-kpi:nth-child(2) { border-bottom:1px solid var(--border); }}
    @media (max-width:420px) {
.sp .dh-strip .dh-kpis { grid-template-columns:1fr; }
.sp .dh-strip .dh-kpi { border-right:none !important; border-bottom:1px solid var(--border); }
.sp .dh-strip .dh-kpi:last-child { border-bottom:none; }}
.sp /* 260530-gyf: attention row */
    .attention-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin-top: 14px; }
.sp .attention-row:empty { display: none; }
.sp /* 260530-gyf: bento KPI grid */
    .bento-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 14px; }
    @media (max-width: 900px) {
.sp .bento-grid { grid-template-columns: repeat(2, 1fr); }}
    @media (max-width: 520px) {
.sp .bento-grid { grid-template-columns: 1fr; }}
.sp .bento-tile { background: var(--bg-card, #fff); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; min-height: 90px; display: flex; flex-direction: column; justify-content: space-between; }
.sp .bento-tile .bt-lbl { font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted-foreground); font-weight: 600; }
.sp .bento-tile .bt-val { font-size: 22px; font-weight: 700; line-height: 1.1; margin-top: 6px; }
.sp .bento-tile.bt-cash .bt-val { color: #22c55e; }
.sp .bento-tile.bt-action .bt-val { color: #f5c542; }
.sp .bento-tile.bt-activity .bt-val { color: #155EEF; }
.sp /* 260530-gyf: dashboard footer (leaderboard + recent closes) */
    .dashboard-footer { display: grid; grid-template-columns: 1fr; gap: 18px; margin-top: 18px; }
.sp /* 260530-eyf-podium: leaderboard redesign */
    #leaderboardGrid { display:block !important; }
.sp .lb-podium {
      display:grid;
      grid-template-columns: 1fr 1.15fr 1fr;
      gap:14px;
      align-items:end;
      margin-bottom:14px;
    }
    @media (max-width:760px) {
.sp .lb-podium { grid-template-columns: 1fr; }}
.sp .lb-card {
      position:relative;
      background:var(--card);
      border:1px solid var(--card-border);
      border-radius:12px;
      padding:18px 16px 16px;
      box-shadow:0 2px 8px rgba(0,0,0,0.06);
      text-align:center;
      display:flex; flex-direction:column; align-items:center; gap:6px;
    }
.sp .lb-card-1 { border-top:4px solid #f5c542; background:linear-gradient(180deg, rgba(245,197,66,0.10) 0%, var(--card) 70%); }
.sp .lb-card-2 { border-top:4px solid #c0c0c0; background:linear-gradient(180deg, rgba(192,192,192,0.10) 0%, var(--card) 70%); transform:translateY(12px); }
.sp .lb-card-3 { border-top:4px solid #cd7f32; background:linear-gradient(180deg, rgba(205,127,50,0.10) 0%, var(--card) 70%); transform:translateY(12px); }
.sp .lb-medal { font-size:32px; line-height:1; }
.sp .lb-card-1 .lb-medal { font-size:38px; }
.sp .lb-name { font-weight:700; font-size:14px; color:var(--foreground); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sp .lb-card-1 .lb-name { font-size:15px; }
.sp .lb-cash { font-variant-numeric:tabular-nums; font-weight:800; font-size:22px; color:var(--green); margin-top:2px; }
.sp .lb-card-1 .lb-cash { font-size:28px; }
.sp .lb-deals { font-size:11px; color:var(--muted-foreground); letter-spacing:.04em; text-transform:uppercase; font-weight:600; }
.sp .lb-you-pill { font-size:9px; font-weight:700; letter-spacing:.08em; padding:2px 8px; border-radius:999px; background:var(--accent-glow); color:var(--accent); }
.sp .lb-card.is-me { outline:2px solid var(--accent); outline-offset:2px; }
.sp .lb-rest { display:flex; flex-direction:column; gap:6px; }
.sp .lb-row {
      display:grid;
      grid-template-columns: 34px 1fr auto auto;
      align-items:center;
      gap:14px;
      padding:10px 14px;
      background:var(--card);
      border:1px solid var(--card-border);
      border-radius:8px;
      font-size:13px;
    }
.sp .lb-row.is-me { border-color:var(--accent); background:var(--accent-glow); }
.sp .lb-rank { font-weight:700; font-size:12px; color:var(--muted-foreground); text-align:center; }
.sp .lb-row-name { font-weight:600; color:var(--foreground); display:flex; align-items:center; gap:8px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sp .lb-row-cash { font-weight:700; color:var(--green); font-variant-numeric:tabular-nums; min-width:90px; text-align:right; }
.sp .lb-row-deals { font-size:11px; color:var(--muted-foreground); min-width:70px; text-align:right; }
.sp .lb-empty { padding:30px 20px; text-align:center; color:var(--muted-foreground); font-size:13px; }
.sp .dashboard-footer .section-header { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted-foreground); font-weight: 700; margin-bottom: 10px; }
.sp /* Expand from grid on aria-expanded */
    .data-card[aria-expanded="true"] {
      grid-column: 1 / -1;
      cursor: default;
    }
.sp .dc-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      min-height: 22px;
    }
.sp .dc-status {
      display: inline-block;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.6px;
      text-transform: uppercase;
      padding: 2px 8px;
      border-radius: 999px;
      background: rgba(255,255,255,0.05);
      color: var(--muted-foreground, #9ca3af);
      border: 1px solid rgba(255,255,255,0.06);
    }
.sp .dc-status--needs-outcome { background: rgba(245,197,66,0.14); color: #f5c542; border-color: rgba(245,197,66,0.35); }
.sp .dc-status--closed { background: rgba(34,197,94,0.14);  color: #22c55e; border-color: rgba(34,197,94,0.3); }
.sp .dc-status--showed { background: rgba(59,130,246,0.14); color: #3b82f6; border-color: rgba(59,130,246,0.3); }
.sp .dc-status--no-showed { background: rgba(239,68,68,0.14);  color: #ef4444; border-color: rgba(239,68,68,0.3); }
.sp .dc-status--cancelled { background: rgba(245,197,66,0.14); color: #f5c542; border-color: rgba(245,197,66,0.3); }
.sp .dc-status--rescheduled { background: rgba(156,163,175,0.14); color: #9ca3af; border-color: rgba(156,163,175,0.3); }
.sp .dc-status--dq { background: rgba(107,114,128,0.18); color: #9ca3af; border-color: rgba(107,114,128,0.3); }
.sp .dc-status--scheduled { background: rgba(107,114,128,0.14); color: #9ca3af; border-color: rgba(107,114,128,0.3); }
.sp .dc-status--refunded { background: rgba(239,68,68,0.14);  color: #ef4444; border-color: rgba(239,68,68,0.3); }
.sp .dc-status--overdue { background: rgba(239,68,68,0.14);  color: #ef4444; border-color: rgba(239,68,68,0.3); }
.sp .dc-status--due-today { background: rgba(245,197,66,0.14); color: #f5c542; border-color: rgba(245,197,66,0.35); }
.sp .dc-title {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }
.sp .dc-title-text {
      font-size: 14px;
      font-weight: 600;
      color: var(--foreground, #fff);
      line-height: 1.3;
    }
.sp .dc-chip {
      display: inline-block;
      font-size: 10px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 999px;
      letter-spacing: 0.4px;
      background: rgba(255,255,255,0.05);
      color: var(--muted-foreground, #9ca3af);
    }
.sp .dc-chip--hot { background: rgba(34,197,94,0.15);  color: #22c55e; }
.sp .dc-chip--warm { background: rgba(245,197,66,0.15); color: #f5c542; }
.sp .dc-chip--cold { background: rgba(239,68,68,0.15);  color: #ef4444; }
.sp .dc-chip--score { background: rgba(59,130,246,0.15); color: #3b82f6; }
.sp .dc-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 14px;
      font-size: 11px;
      color: var(--muted-foreground, #9ca3af);
    }
.sp .dc-meta > span { white-space: nowrap; }
.sp .dc-metric {
      display: flex;
      align-items: baseline;
      gap: 10px;
      margin-top: 2px;
    }
.sp .dc-metric-primary {
      font-size: 18px;
      font-weight: 700;
      color: var(--green, #22c55e);
    }
.sp .dc-metric-secondary {
      font-size: 11px;
      color: var(--muted-foreground, #9ca3af);
    }
.sp .dc-expand {
      margin-top: 10px;
      padding-top: 12px;
      border-top: 1px solid var(--border, #2a2a2a);
      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
      gap: 10px 18px;
      font-size: 12px;
      color: var(--foreground, #fff);
    }
.sp .data-card[aria-expanded="false"] .dc-expand { display: none; }
.sp .data-card[aria-expanded="true"]  .dc-expand { display: grid; }
.sp .dc-expand-label {
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.5px;
      text-transform: uppercase;
      color: var(--muted-foreground, #9ca3af);
      margin-bottom: 3px;
    }
.sp .dc-actions {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-top: 8px;
    }
.sp .dc-action {
      background: rgba(255,255,255,0.05);
      border: 1px solid var(--border, #2a2a2a);
      color: var(--foreground, #fff);
      padding: 6px 12px;
      border-radius: 6px;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.4px;
      cursor: pointer;
      transition: background 120ms ease, border-color 120ms ease;
    }
.sp .dc-action:hover { background: rgba(255,255,255,0.10); border-color: rgba(255,255,255,0.18); }
.sp .dc-action--attention {
      background: linear-gradient(135deg, #f5c542 0%, #c9a961 100%);
      border-color: transparent;
      color: #1a1a1a;
    }
.sp .dc-action--attention:hover {
      filter: brightness(1.06);
      background: linear-gradient(135deg, #f5c542 0%, #c9a961 100%);
    }
.sp .dc-action--disabled {
      opacity: 0.5;
      cursor: not-allowed;
    }
.sp .dc-kebab {
      background: none;
      border: none;
      color: var(--muted-foreground, #9ca3af);
      cursor: pointer;
      font-size: 14px;
      padding: 2px 6px;
      border-radius: 4px;
    }
.sp .dc-kebab:hover { background: rgba(255,255,255,0.06); color: var(--foreground, #fff); }

    @media (max-width: 560px) {
.sp .card-grid { grid-template-columns: 1fr; }
.sp .data-card { padding: 12px 14px 12px 16px; }
.sp .dc-title-text { font-size: 13px; }
.sp .dc-meta { font-size: 10px; gap: 6px 10px; }
.sp .dc-metric-primary { font-size: 16px; }}
.sp /* 260530-drz-p2: chip-count + Needs Outcome dot accent */
    .fu-filter-btn .chip-count {
      display: inline-block;
      margin-left: 6px;
      padding: 0 6px;
      font-size: 10px;
      font-weight: 700;
      background: rgba(255,255,255,0.08);
      border-radius: 999px;
      color: var(--muted-foreground);
      min-width: 18px;
      text-align: center;
    }
.sp .fu-filter-btn.active .chip-count {
      background: rgba(255,255,255,0.15);
      color: var(--foreground);
    }
.sp .fu-filter-btn.chip-needs-outcome::before {
      content: '';
      display: inline-block;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--gold);
      margin-right: 6px;
      vertical-align: middle;
    }
.sp /* 260530-drz-p2: MY CALLS filter+sort toolbar layout */
    .calls-toolbar {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
      margin-bottom: 12px;
    }
.sp .calls-toolbar .fu-filter-bar {
      flex: 1 1 auto;
      margin-bottom: 0;
    }
.sp .calls-toolbar .form-select {
      flex: 0 0 auto;
      background: var(--muted, rgba(255,255,255,0.04));
      border: 1px solid var(--border);
      border-radius: 8px;
      padding: 8px 12px;
      font-size: 12px;
      color: var(--foreground);
      font-family: 'Inter', sans-serif;
      cursor: pointer;
      outline: none;
    }
.sp .calls-toolbar .form-select:focus {
      border-color: var(--gold);
    }
.sp /* 260530-drz-p2: Sticky pay-period banner */
    /* 260530-eyf-banner: match dashboard strip aesthetic (solid white card + horizontal cells with dividers) */
    .closes-banner {
      background: var(--card);
      border: 1px solid var(--card-border);
      border-radius: 12px;
      margin-bottom: 14px;
      box-shadow: 0 1px 3px rgba(0,0,0,0.04);
      overflow: hidden;
      display: flex;
      align-items: stretch;
      min-height: 74px;
    }
.sp .cb-row { display: contents; }
.sp .closes-banner .cb-row:first-child {
      display: flex; flex: 0 0 220px;
      align-items: center; gap: 10px;
      padding: 12px 18px;
      border-right: 1px solid var(--border);
      background: linear-gradient(180deg, rgba(21,94,239,0.04) 0%, transparent 100%);
    }
.sp .closes-banner .cb-row.cb-stats {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      flex: 1;
      margin-top: 0;
      gap: 0;
    }
.sp .closes-banner .cb-row.cb-delta {
      display: flex;
      align-items: center;
      padding: 8px 16px;
      border-top: 1px solid var(--border);
      margin-top: 0;
    }
.sp .cb-period-label {
      font-size: 10px; font-weight: 700; letter-spacing: .12em;
      color: var(--muted-foreground); text-transform: uppercase;
    }
.sp .cb-period-dates {
      font-size: 13px; color: var(--foreground); font-weight: 700;
    }
.sp .cb-stat {
      display: flex; flex-direction: column-reverse; justify-content: center; align-items: center;
      gap: 3px;
      padding: 10px 8px;
      border-right: 1px solid var(--border);
      font-variant-numeric: tabular-nums;
      min-width: 0;
    }
.sp .cb-stat:last-child { border-right: none; }
.sp .cb-stat-value {
      font-size: 20px; font-weight: 800; color: var(--foreground); line-height: 1;
    }
.sp .cb-stat-label {
      font-size: 9px; font-weight: 700; letter-spacing: .1em;
      color: var(--muted-foreground); text-transform: uppercase;
    }
.sp .cb-delta { font-size: 11px; color: var(--muted-foreground); }

    @media (max-width: 760px) {
.sp .closes-banner { flex-direction: column; }
.sp .closes-banner .cb-row:first-child {
        flex: none; border-right: none; border-bottom: 1px solid var(--border);
      }
.sp .closes-banner .cb-row.cb-stats { grid-template-columns: repeat(2, 1fr); }
.sp .cb-stat:nth-child(2) { border-right: none; }
.sp .cb-stat:nth-child(1), .sp .cb-stat:nth-child(2) { border-bottom: 1px solid var(--border); }}
.sp /* 260530-drz-p2: Commission card state rails (paid=green, .sp pending=gold) */
    .data-card[data-state="commission-paid"]::before { background: #22c55e; }
.sp .data-card[data-state="commission-pending"]::before { background: var(--gold); }
.sp .dc-status--commission-paid { background: rgba(34,197,94,0.15);  color: #22c55e; }
.sp .dc-status--commission-pending { background: rgba(217,170,52,0.15); color: #f5c451; }
.sp /* 260530-drz-p3: equalize card heights + visible filter buttons */
    .data-card {
      min-height: 200px;
    }
.sp /* Push the last visible meta/footer row to the bottom so cards equalize */
    .data-card > .dc-meta:last-child, .sp .data-card > .dc-actions:last-child {
      margin-top: auto;
    }
.sp /* 260530-eyf-deminht: opt dashboard hero + attention cards OUT of the 200px equalizer.
       The equalizer is for the MY CALLS card grid only; dashboard/attention cards should hug content. */
    .dashboard-hero.data-card, .sp #attentionRow .data-card, .sp #leaderboardGrid .data-card {
      min-height: 0 !important;
    }
.sp .dashboard-hero.data-card > .dc-meta:last-child, .sp .dashboard-hero.data-card > .dc-actions:last-child, .sp #attentionRow .data-card > .dc-meta:last-child, .sp #attentionRow .data-card > .dc-actions:last-child, .sp #leaderboardGrid .data-card > .dc-meta:last-child, .sp #leaderboardGrid .data-card > .dc-actions:last-child {
      margin-top: 0 !important;
    }
.sp /* Filter button bar layout */
    .fu-filter-bar {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 12px;
    }
.sp /* Visible filter buttons (was: inactive chips read as plain text) */
    .fu-filter-btn {
      display: inline-flex !important;
      align-items: center;
      gap: 7px;
      padding: 8px 14px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.4px;
      text-transform: uppercase;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.14);
      border-radius: 8px;
      color: var(--muted-foreground, #9ca3af);
      cursor: pointer;
      transition: background 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
      white-space: nowrap;
      font-family: 'Inter', sans-serif;
      line-height: 1;
    }
.sp .fu-filter-btn:hover {
      background: rgba(255,255,255,0.09);
      color: var(--foreground, #ffffff);
      border-color: rgba(255,255,255,0.24);
    }
.sp .fu-filter-btn.active {
      background: var(--accent, #155eef);
      color: #ffffff;
      border-color: var(--accent, #155eef);
      box-shadow: 0 2px 10px -3px rgba(21,94,239,0.55);
    }
.sp .fu-filter-btn.active:hover {
      background: var(--accent, #155eef);
      color: #ffffff;
    }
.sp /* Count badge inside filter buttons */
    .fu-filter-btn .chip-count {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 20px;
      height: 16px;
      padding: 0 6px;
      margin-left: 0;
      font-size: 10px;
      font-weight: 800;
      background: rgba(0,0,0,0.32);
      border-radius: 999px;
      color: rgba(255,255,255,0.85);
      line-height: 1;
    }
.sp .fu-filter-btn.active .chip-count {
      background: rgba(255,255,255,0.28);
      color: #ffffff;
    }
.sp /* Needs Outcome gold dot accent stays — bump size for visibility */
    .fu-filter-btn.chip-needs-outcome::before {
      width: 8px;
      height: 8px;
      margin-right: 0;
    }
.sp /* 260530-ff8: expand-card enrichment blocks */

    /* Quick-actions row */
    .dc-quick-actions {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      padding-bottom: 12px;
      margin-bottom: 12px;
      border-bottom: 1px dashed var(--border);
    }
.sp .dc-qa-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      border: 1px solid var(--border);
      border-radius: 7px;
      background: rgba(255,255,255,0.03);
      color: var(--foreground);
      font-size: 11.5px;
      font-weight: 600;
      text-decoration: none;
      cursor: pointer;
      transition: background 120ms ease, border-color 120ms ease;
    }
.sp .dc-qa-btn:hover {
      background: rgba(255,255,255,0.08);
      border-color: rgba(255,255,255,0.22);
    }
.sp .dc-qa-btn--phone { color: #22c55e; }
.sp .dc-qa-btn--email { color: #93b1f5; }
.sp .dc-qa-btn--sms { color: #f5c451; }
.sp .dc-qa-btn--ghl { color: #c084fc; }
.sp /* Lead context strip */
    .dc-context {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
      gap: 6px 16px;
      margin-bottom: 14px;
      font-size: 11.5px;
    }
.sp .dc-context-row { display: flex; flex-direction: column; gap: 2px; }
.sp .dc-context-label {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.4px;
      text-transform: uppercase;
      color: var(--muted-foreground);
    }
.sp .dc-context-value {
      color: var(--foreground);
      font-weight: 500;
      word-break: break-word;
    }
.sp /* Pre-call brief block — gold accent */
    .dc-precall-brief {
      margin: 12px 0;
      padding: 12px 14px;
      background: linear-gradient(180deg, rgba(245,197,66,0.07), rgba(245,197,66,0.02));
      border: 1px solid rgba(245,197,66,0.32);
      border-left: 3px solid var(--gold, #f5c542);
      border-radius: 8px;
    }
.sp .dc-precall-header {
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.6px;
      text-transform: uppercase;
      color: #f5c451;
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 6px;
    }
.sp .dc-precall-row { font-size: 12px; line-height: 1.5; color: var(--foreground); margin: 3px 0; }
.sp .dc-precall-key { color: var(--muted-foreground); font-weight: 600; margin-right: 4px; }
.sp .dc-precall-custom {
      margin-top: 6px;
      padding: 6px 10px;
      background: rgba(0,0,0,0.18);
      border-left: 2px solid rgba(245,197,66,0.5);
      font-style: italic;
      border-radius: 4px;
      color: rgba(255,255,255,0.85);
      font-size: 11.5px;
    }
.sp .dc-precall-footer {
      margin-top: 8px;
      font-size: 10px;
      color: var(--muted-foreground);
      letter-spacing: 0.3px;
    }
.sp /* Payment links block */
    .dc-payment-links {
      margin: 12px 0;
      padding: 10px 12px;
      background: rgba(255,255,255,0.025);
      border: 1px solid var(--border);
      border-radius: 8px;
    }
.sp .dc-pl-header {
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.6px;
      text-transform: uppercase;
      color: var(--muted-foreground);
      margin-bottom: 6px;
    }
.sp .dc-pl-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 4px 0;
      font-size: 11.5px;
      font-variant-numeric: tabular-nums;
    }
.sp .dc-pl-amount { font-weight: 700; color: var(--foreground); min-width: 70px; }
.sp .dc-pl-meta { color: var(--muted-foreground); flex: 1; }
.sp .dc-pl-status {
      font-size: 10px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 999px;
      text-transform: uppercase;
      letter-spacing: 0.4px;
    }
.sp .dc-pl-status--paid { background: rgba(34,197,94,0.18); color: #22c55e; }
.sp .dc-pl-status--clicked { background: rgba(245,197,66,0.18); color: #f5c451; }
.sp .dc-pl-status--pending { background: rgba(148,163,184,0.18); color: #94a3b8; }
.sp .dc-pl-status--expired { background: rgba(239,68,68,0.18); color: #f87171; }
.sp /* Setter notes callout */
    .dc-setter-notes {
      margin: 12px 0;
      padding: 10px 12px;
      background: rgba(21,94,239,0.06);
      border-left: 3px solid var(--accent, #155eef);
      border-radius: 6px;
      font-size: 11.5px;
      line-height: 1.5;
    }
.sp .dc-setter-notes-label {
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.5px;
      text-transform: uppercase;
      color: #93b1f5;
      margin-bottom: 4px;
    }
.sp /* Skeleton shimmer for loading state */
    .dc-skeleton {
      margin: 12px 0;
      padding: 12px;
      border: 1px solid var(--border);
      border-radius: 8px;
    }
.sp .dc-skeleton-row {
      height: 12px;
      background: linear-gradient(90deg, rgba(255,255,255,0.04), rgba(255,255,255,0.10), rgba(255,255,255,0.04));
      background-size: 200% 100%;
      border-radius: 4px;
      margin: 6px 0;
      animation: skel-shimmer 1.2s linear infinite;
    }
.sp .dc-skeleton-row:nth-child(1) { width: 30%; }
.sp .dc-skeleton-row:nth-child(2) { width: 80%; }
.sp .dc-skeleton-row:nth-child(3) { width: 60%; }
    @keyframes skel-shimmer {
      0%   { background-position: 200% 0; }
      100% { background-position: -200% 0; }
    }
.sp /* 260531-tml + 260601-bnk-layout: My Information panel styles (2-col grid, .sp breathing room) */
      /* 260601-bnk2-center: panel centered with sensible max-width — balances empty space */
      #view-my-info .panel { padding: 20px 28px 28px; max-width: 880px; margin: 0 auto; }
#view-my-info .ph { font-size:20px; font-weight:700; margin-bottom:4px; }
#view-my-info .mi-tabs { display:flex; gap:8px; margin: 18px 0 24px; flex-wrap:wrap; }
#view-my-info .mi-tab { background:#fff; color:#333; border:1px solid #ddd; border-radius:8px; padding:10px 20px; cursor:pointer; font-size:13px; font-weight:600; }
#view-my-info .mi-tab.active { background:#155eef; color:#fff; border-color:#155eef; }
#view-my-info .mi-tab:hover:not(.active) { border-color:#155eef; color:#155eef; }
.sp /* 2-column grid for natural form pairing */
      #view-my-info .mi-form { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:24px; row-gap:20px; max-width:760px; }
#view-my-info .mi-form > .mi-badge, #view-my-info .mi-form > .mi-status, #view-my-info .mi-form > .submit-btn, #view-my-info .mi-form > .mi-radio-row, #view-my-info .mi-form > fieldset, #view-my-info .mi-form > small, #view-my-info .mi-form > label[data-full], #view-my-info .mi-form > .mi-full { grid-column:1 / -1; }
.sp /* Labels: text + asterisk inline on top, .sp input on its own row below */
      #view-my-info .mi-form label { display:block; font-size:13px; color:#374151; font-weight:600; letter-spacing:0.1px; }
#view-my-info .mi-form label input, #view-my-info .mi-form label select, #view-my-info .mi-form label textarea { display:block; width:100%; margin-top:8px; padding:11px 14px; font-size:14px; border:1px solid #d1d5db; border-radius:8px; background:#fff; box-sizing:border-box; font-family:inherit; transition:border-color .15s, box-shadow .15s; }
#view-my-info .mi-form label input:focus, #view-my-info .mi-form label select:focus, #view-my-info .mi-form label textarea:focus { outline:none; border-color:#155eef; box-shadow:0 0 0 3px rgba(21,94,239,0.12); }
#view-my-info .mi-form label textarea { min-height:64px; resize:vertical; }
#view-my-info .mi-form label .req, #view-my-info .mi-form label .muted { display:inline; }
#view-my-info .req { color:#155eef; margin-left:2px; font-weight:600; }
#view-my-info .muted { color:#9ca3af; font-size:11px; font-weight:400; margin-left:4px; }
.sp /* Inline on-file badges (small text inside the label header) */
      #view-my-info .mi-form label small.muted { display:inline; margin-left:6px; font-size:11px; color:#6b7280; }
.sp /* Status + badges + buttons (full-width) */
      #view-my-info .mi-status { font-size:13px; min-height:18px; margin-top:2px; }
#view-my-info .mi-status.ok { color:#16a34a; }
#view-my-info .mi-status.err { color:#dc2626; }
#view-my-info .mi-badge { background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; padding:8px 14px; border-radius:8px; font-size:12px; }
#view-my-info .submit-btn.gold { justify-self:start; margin-top:4px; padding:11px 28px; font-size:13px; }
#view-my-info .submit-btn.gold:hover { opacity:0.92; }
.sp /* 260601-b4c: Banking tab additions */
      #view-my-info .mi-radio-row { display:flex; gap:1.5rem; align-items:center; padding:12px 16px; background:#f9fafb; border:1px solid #e5e7eb; border-radius:8px; margin-bottom:4px; }
#view-my-info .mi-radio-row label { display:flex; flex-direction:row; align-items:center; gap:0.5rem; cursor:pointer; font-weight:500; color:#374151; margin:0; }
#view-my-info .mi-radio-row input[type=radio] { width:auto; margin:0; padding:0; accent-color:#155eef; }
.sp /* Bank fieldset becomes its own 2-col grid; Wise fieldset stays single-col */
      #view-my-info fieldset { border:none; padding:0; margin:0; }
#view-my-info #mi-bank-bank { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:24px; row-gap:20px; }
#view-my-info #mi-bank-bank > small { grid-column:1 / -1; margin-top:-4px; }
#view-my-info #mi-bank-bank > label[data-full], #view-my-info #mi-bank-bank > label:has(textarea) { grid-column:1 / -1; }
#view-my-info #mi-bank-wise { display:block; }
      @media (max-width: 640px) {
#view-my-info .mi-form { grid-template-columns:1fr; }
#view-my-info #mi-bank-bank { grid-template-columns:1fr; }}
.sp /* 260903-scalls: SAMPLE CALLS styles. Mirrors the SOP LIBRARY treatment. */
      #view-sample-calls .panel { padding: 20px 28px 28px; }
#view-sample-calls .ph {
        display:block; padding:0; border:none; font-size:20px; font-weight:700;
        color:#1f2937; margin-bottom:4px; text-transform:none; letter-spacing:normal;
      }
.sp #scall-search {
        width:100%; padding:12px 16px; font-size:14px; border:1px solid #ddd;
        border-radius:8px; margin-bottom:14px; box-sizing:border-box;
      }
.sp #scall-search:focus { outline:none; border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.sp #scall-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.sp .scall-chip {
        padding:6px 14px; font-size:13px; font-weight:600; border:1px solid #ddd;
        background:#fff; color:#555; border-radius:999px; cursor:pointer; transition:all .12s;
      }
.sp .scall-chip:hover { border-color:#2563eb; color:#2563eb; }
.sp .scall-chip.active { background:#2563eb; border-color:#2563eb; color:#fff; }
.sp #scall-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:16px; }
.sp .scall-card {
        border:1px solid #e5e7eb; border-radius:10px; padding:16px 18px; background:#fff;
        display:flex; flex-direction:column; gap:10px;
      }
.sp .scall-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.sp .scall-title { font-size:15px; font-weight:700; color:#1f2937; line-height:1.35; }
.sp .scall-badge {
        flex:0 0 auto; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
        padding:3px 9px; border-radius:999px; background:#eef2ff; color:#4338ca; white-space:nowrap;
      }
.sp .scall-meta { font-size:12px; color:#6b7280; }
.sp .scall-notes {
        font-size:13px; color:#374151; line-height:1.5; background:#f9fafb;
        padding:10px 12px; border-radius:6px;
      }
.sp .scall-notes b { color:#1f2937; }
.sp .scall-card audio { width:100%; }
.sp .scall-link { font-size:13px; font-weight:600; color:#2563eb; text-decoration:none; }
.sp .scall-link:hover { text-decoration:underline; }
      @media (max-width:720px) {
.sp #scall-grid { grid-template-columns:1fr; }}
.sp /* 260904-sres: SETTER RESOURCES styles. Mirrors SAMPLE CALLS / SOP LIBRARY treatment. */
      #view-setter-resources .panel { padding: 20px 28px 28px; }
#view-setter-resources .ph {
        display:block; padding:0; border:none; font-size:20px; font-weight:700;
        color:#1f2937; margin-bottom:4px; text-transform:none; letter-spacing:normal;
      }
.sp .sr-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; margin-bottom:18px; }
.sp .sr-card { border:1px solid #e5e7eb; border-radius:10px; padding:16px 18px; background:#fafafa; }
.sp .sr-card-title { font-weight:700; font-size:15px; color:#1f2937; margin-bottom:4px; }
.sp .sr-card-sub { color:#666; font-size:13px; margin-bottom:12px; }
.sp .sr-btn { display:inline-block; padding:8px 14px; border-radius:8px; background:#2563eb; color:#fff !important;
        font-size:13px; font-weight:600; text-decoration:none; margin-right:8px; border:1px solid #2563eb; cursor:pointer; font-family:inherit; }
.sp .sr-btn-ghost { background:#fff; color:#2563eb !important; }
.sp .sr-cal { border:1px solid #e5e7eb; border-radius:10px; padding:10px 14px; margin-bottom:22px; background:#fff; }
.sp .sr-cal summary { cursor:pointer; font-weight:600; color:#374151; font-size:14px; }
.sp .sr-cal iframe { margin-top:10px; }
.sp .sr-toc { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
.sp .sr-toc a { font-size:12px; padding:4px 10px; border:1px solid #ddd; border-radius:999px; color:#374151; text-decoration:none; background:#fff; }
.sp .sr-toc a:hover { border-color:#2563eb; color:#2563eb; }
.sp .sr-script { font-size:14.5px; line-height:1.6; color:#1f2937; max-width:860px; }
.sp .sr-h2 { font-size:18px; font-weight:700; margin:28px 0 8px; padding-top:14px; border-top:2px solid #e5e7eb; color:#111827; }
.sp .sr-h3 { font-size:14px; font-weight:700; margin:18px 0 6px; color:#2563eb; text-transform:uppercase; letter-spacing:.04em; }
.sp .sr-line { margin:6px 0; }
.sp .sr-script ul { margin:6px 0 10px 22px; padding:0; }
.sp .sr-script li { margin:3px 0; }
.sp .sr-you { color:#059669; }
.sp .sr-note { color:#b45309; }
.sp .sr-pro { color:#7c3aed; }
.sp .sr-ph { background:#fef3c7; border-radius:4px; padding:0 3px; }
.sp /* 260601-spx + 260601-sopl-polish: SOP LIBRARY catalog styles */
      /* Panel + header treatment — mirror My Information pattern so header reads as heading not input */
      #view-sop-library .panel { padding: 20px 28px 28px; }
#view-sop-library .ph { display:block; padding:0; border:none; font-size:20px; font-weight:700; color:#1f2937; margin-bottom:4px; text-transform:none; letter-spacing:normal; }
.sp #sopl-search {
        width: 100%;
        padding: 12px 16px;
        font-size: 14px;
        border: 1px solid #ddd;
        border-radius: 8px;
        margin-bottom: 12px;
        box-sizing: border-box;
        background: #fff;
      }
.sp #sopl-search:focus { outline: none; border-color: #155eef; box-shadow: 0 0 0 3px rgba(21,94,239,0.12); }
.sp #sopl-filters {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        margin-bottom: 20px;
      }
.sp .sopl-chip {
        padding: 6px 14px;
        border: 1px solid #ddd;
        background: #fff;
        border-radius: 999px;
        cursor: pointer;
        font-size: 13px;
        font-weight: 500;
        color: #4b5563;
        transition: all 0.15s;
      }
.sp .sopl-chip:hover { border-color: #9ca3af; }
.sp .sopl-chip.active { background: var(--gold-gradient); color: #fff; border-color: transparent; }
.sp #sopl-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: 14px;
      }
.sp .sopl-card {
        background: #fff;
        border: 1px solid #e5e5e5;
        border-radius: 8px;
        padding: 16px;
        cursor: pointer;
        transition: box-shadow 0.15s, border-color 0.15s, transform 0.1s;
      }
.sp .sopl-card:hover {
        box-shadow: 0 4px 14px rgba(0,0,0,0.08);
        border-color: #155eef;
        transform: translateY(-1px);
      }
.sp .sopl-card-badges {
        display: flex;
        gap: 6px;
        margin-bottom: 10px;
        flex-wrap: wrap;
      }
.sp .sopl-badge {
        font-size: 10px;
        font-weight: 600;
        padding: 3px 8px;
        border-radius: 4px;
        text-transform: uppercase;
        letter-spacing: 0.3px;
      }
.sp /* 260601-sopl-polish: brand-aligned badges (neutral / blue / gold) */
      .sopl-badge.sopl-id { background: #f3f4f6; color: #374151; }
.sp .sopl-badge.sopl-cat { background: #eff6ff; color: #1d4ed8; }
.sp .sopl-badge.sopl-aud-closers { background: #eff6ff; color: #155eef; border:1px solid #bfdbfe; }
.sp .sopl-badge.sopl-aud-setters { background: #fef7e0; color: #92660a; border:1px solid #f5d57a; }
.sp .sopl-badge.sopl-aud-both { background: linear-gradient(135deg,#eff6ff,#fef7e0); color: #1f2937; border:1px solid #d1d5db; }
.sp .sopl-badge.sopl-aud-admin { background: #f5f3ff; color: #6d28d9; border:1px solid #ddd6fe; }
.sp /* 260909-sopmobpend: dashed = not here yet, .sp so it reads as pending rather
         than as another audience tag. */
      .sopl-badge.sopl-mobile-pending { background: #f1f5f9; color: #475569; border: 1px dashed #94a3b8; }
.sp .sopl-mobile-pending-note {
        margin-top: 14px;
        padding: 10px 14px;
        background: #f8fafc;
        border: 1px dashed #94a3b8;
        border-radius: 8px;
        color: #475569;
        font-size: 13px;
        line-height: 1.45;
      }
.sp .sopl-card-title {
        font-weight: 600;
        font-size: 15px;
        color: #1f2937;
        line-height: 1.35;
        margin-bottom: 6px;
      }
.sp .sopl-card-meta {
        color: #6b7280;
        font-size: 12px;
        margin-bottom: 14px;
      }
.sp .sopl-card-actions {
        display: flex;
        gap: 8px;
      }
.sp /* 260601-sopl-polish: gradient watch button matches detail page, .sp secondary gets hover */
      .sopl-card-btn {
        font-size: 12px;
        padding: 6px 12px;
        border-radius: 6px;
        background: var(--gold-gradient);
        color: #fff;
        font-weight: 600;
        transition: opacity .15s;
      }
.sp .sopl-card-btn:hover { opacity: 0.9; }
.sp .sopl-card-btn-secondary {
        background: #f3f4f6;
        color: #374151;
        transition: background .15s;
      }
.sp .sopl-card-btn-secondary:hover { background: #e5e7eb; }
.sp .sopl-back-btn {
        background: none;
        border: 1px solid #e5e5e5;
        color: #374151;
        padding: 7px 14px;
        border-radius: 6px;
        cursor: pointer;
        font-size: 13px;
        font-weight: 500;
        margin-bottom: 20px;
      }
.sp .sopl-back-btn:hover { background: #f9fafb; border-color: #d1d5db; }
.sp /* 260601-sopd-center: SOP detail view centered with sensible max-width */
      #sopl-detail-view { max-width: 880px; margin: 0 auto; }
.sp .sopl-detail-title {
        font-size: 22px;
        font-weight: 700;
        color: #1f2937;
        margin: 0 0 4px 0;
      }
.sp .sopl-detail-meta {
        color: #6b7280;
        font-size: 13px;
        margin-bottom: 20px;
      }
.sp /* 260601-sopd-blue: video button uses portal blue gradient to match Save buttons */
      .sopl-detail-video-btn {
        display: inline-block;
        text-decoration: none;
        background: var(--gold-gradient);
        color: #fff;
        padding: 12px 22px;
        border-radius: 8px;
        font-weight: 600;
        font-size: 15px;
        transition: opacity .15s;
      }
.sp .sopl-detail-video-btn:hover { opacity: 0.9; }
.sp /* 260909-sopmob: space the desktop/mobile pair, .sp stack them on narrow screens */
      .sopl-detail-video-btn + .sopl-detail-video-btn { margin-left: 10px; }
      @media (max-width: 500px) {
.sp .sopl-detail-video-btn { display: block; text-align: center; }
.sp .sopl-detail-video-btn + .sopl-detail-video-btn { margin-left: 0; margin-top: 10px; }}
.sp .sopl-detail-pdf-link {
        color: #1d8ad9;
        font-size: 13px;
        text-decoration: none;
      }
.sp .sopl-detail-pdf-link:hover { text-decoration: underline; }
      @media (max-width: 500px) {
.sp #sopl-grid { grid-template-columns: 1fr; }}
.sp /* Stage filter chips with color dots */
        .fu-filter-btn .pl-dot { display:inline-block; width:8px; height:8px; border-radius:999px; margin-right:6px; vertical-align:middle; background:var(--muted-foreground); }
.sp .fu-filter-btn .chip-count { font-size:9px; padding:1px 6px; margin-left:6px; border-radius:999px; background:var(--muted); color:var(--muted-foreground); font-weight:700; }
.sp .fu-filter-btn.active .chip-count { background:rgba(255,255,255,0.22); color:#fff; }
.sp .fu-filter-btn.active .pl-dot { box-shadow:0 0 0 2px rgba(255,255,255,0.55); }
.sp /* Opportunity card */
        .pl-opp-card-260526h90 {
          border-left:4px solid var(--muted);
          transition: box-shadow .15s, transform .15s;
        }
.sp .pl-opp-card-260526h90:hover { box-shadow:0 4px 12px rgba(0,0,0,0.08); }
.sp .pl-opp-card-260526h90 .pl-head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.sp .pl-opp-card-260526h90 .pl-name-btn {
          display:inline-flex; align-items:center; gap:8px;
          background:none; border:none; padding:0; margin:0; text-align:left; cursor:pointer;
          font-weight:600; font-size:15px; color:var(--foreground);
          font-family:inherit;
        }
.sp .pl-opp-card-260526h90 .pl-name-btn:hover { color:var(--accent); }
.sp .pl-opp-card-260526h90 .pl-chevron { font-size:10px; color:var(--muted-foreground); transition:transform .15s; }
.sp .pl-opp-card-260526h90.expanded .pl-chevron { transform:rotate(90deg); }
.sp .pl-opp-card-260526h90 .pl-meta { font-size:11px; color:var(--muted-foreground); margin-top:4px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sp .pl-opp-card-260526h90 .pl-stage-pill {
          display:inline-flex; align-items:center; gap:6px;
          padding:3px 10px; border-radius:999px;
          background:var(--muted); color:var(--foreground);
          font-size:11px; font-weight:600;
        }
.sp .pl-opp-card-260526h90 .pl-stage-pill .pl-dot { width:8px; height:8px; border-radius:999px; background:var(--muted-foreground); }
.sp .pl-opp-card-260526h90 .pl-footer { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; }
.sp .pl-opp-card-260526h90 .pl-value { font-variant-numeric:tabular-nums; color:var(--green); font-weight:600; font-size:13px; }
.sp .pl-opp-card-260526h90 .pl-status { font-size:11px; padding:2px 10px; border-radius:999px; background:var(--accent-glow); color:var(--accent); font-weight:600; text-transform:capitalize; }
.sp .pl-opp-card-260526h90 .pl-updated { font-size:11px; color:var(--muted-foreground); margin-left:auto; }
.sp /* Expanded detail panel */
        .pl-detail-260526h90 {
          display:none;
          margin-top:14px; padding-top:14px;
          border-top:1px solid var(--border);
        }
.sp .pl-opp-card-260526h90.expanded .pl-detail-260526h90 { display:block; }
.sp .pl-detail-260526h90 .pl-field { margin-bottom:14px; }
.sp .pl-detail-260526h90 .pl-field-label {
          display:block; font-size:10px; font-weight:700;
          text-transform:uppercase; letter-spacing:.08em;
          color:var(--muted-foreground); margin-bottom:6px;
        }
.sp .pl-detail-260526h90 .pl-stage-select {
          background:var(--card); color:var(--foreground);
          border:1px solid var(--border); border-radius:6px;
          padding:8px 12px; font-size:13px; cursor:pointer; width:100%; max-width:300px;
        }
.sp .pl-detail-260526h90 .pl-stage-select:hover { border-color:var(--accent); }
.sp .pl-detail-260526h90 .pl-stage-select:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow); }
.sp .pl-detail-260526h90 .pl-stage-select.dirty { border-color:var(--amber); }
.sp .pl-detail-260526h90 .pl-stage-select:disabled { opacity:0.6; cursor:wait; }
.sp .pl-detail-260526h90 .pl-notes-area {
          width:100%; min-height:80px; max-height:280px; resize:vertical;
          background:var(--card); color:var(--foreground);
          border:1px solid var(--border); border-radius:6px;
          padding:10px 12px; font-size:13px; font-family:inherit; line-height:1.45;
        }
.sp .pl-detail-260526h90 .pl-notes-area:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow); }
.sp .pl-detail-260526h90 .pl-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:10px; }
.sp .pl-detail-260526h90 .pl-save-btn {
          padding:7px 16px; font-size:12px; font-weight:600;
          border:none; border-radius:6px; cursor:pointer;
          background:var(--gold-gradient, linear-gradient(135deg, #f5c542 0%, #c9a961 100%));
          color:#1a1a1a;
        }
.sp .pl-detail-260526h90 .pl-save-btn:disabled { opacity:0.5; cursor:wait; }
.sp .pl-detail-260526h90 .pl-ghl-link {
          display:inline-flex; align-items:center; gap:6px;
          padding:7px 14px; font-size:12px; font-weight:600;
          border:1px solid var(--border); border-radius:6px;
          background:var(--card); color:var(--foreground);
          text-decoration:none; cursor:pointer;
        }
.sp .pl-detail-260526h90 .pl-ghl-link:hover { border-color:var(--accent); color:var(--accent); }
.sp .pl-detail-260526h90 .pl-save-status { font-size:11px; color:var(--muted-foreground); }
.sp .pl-detail-260526h90 .pl-save-status.ok { color:var(--green); }
.sp .pl-detail-260526h90 .pl-save-status.err { color:var(--red); }
.sp /* PROSPECT FAQ 260909-faq — every selector scoped to #view-faq so nothing bleeds */
#view-faq .panel { padding: 20px 28px 28px; }
#view-faq .ph {
  display:block; padding:0; border:none; font-size:20px; font-weight:700;
  color:#1f2937; margin-bottom:4px; text-transform:none; letter-spacing:normal;
}
#view-faq .faq-sub { color:#666; margin-bottom:18px; font-size:14px; }
.sp #faq-search {
  width:100%; padding:12px 16px; font-size:14px; border:1px solid #ddd;
  border-radius:8px; margin-bottom:12px; box-sizing:border-box; background:#fff;
}
.sp #faq-search:focus { outline:none; border-color:#155eef; box-shadow:0 0 0 3px rgba(21,94,239,0.12); }
.sp #faq-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.sp .faq-chip {
  padding:6px 14px; font-size:12px; font-weight:600; border-radius:999px;
  border:1px solid #d9dde3; background:#fff; color:#4b5563; cursor:pointer;
  transition:all .12s ease; white-space:nowrap;
}
.sp .faq-chip:hover { border-color:#155eef; color:#155eef; }
.sp .faq-chip.active { background:#155eef; border-color:#155eef; color:#fff; }
.sp #faq-count { font-size:12px; color:#8b93a1; margin-bottom:12px; }
.sp .faq-item { border:1px solid #e7e9ee; border-radius:10px; margin-bottom:10px; background:#fff; overflow:hidden; }
.sp .faq-item.open { border-color:#c9d6f5; box-shadow:0 1px 3px rgba(16,24,40,.06); }
.sp .faq-q {
  display:flex; align-items:flex-start; gap:12px; width:100%; text-align:left;
  padding:14px 18px; background:none; border:none; cursor:pointer; font-family:inherit;
}
.sp .faq-q:hover { background:#fafbfc; }
.sp .faq-q-text { flex:1; font-size:14.5px; font-weight:600; color:#1f2937; line-height:1.45; }
.sp .faq-q-short { display:block; font-size:12.5px; font-weight:400; color:#7c8494; margin-top:4px; line-height:1.45; }
.sp .faq-cat-tag {
  flex:none; font-size:10px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:#155eef; background:#eef3fe; padding:3px 8px; border-radius:5px; margin-top:2px;
}
.sp .faq-caret { flex:none; color:#b0b7c3; font-size:12px; margin-top:4px; transition:transform .15s ease; }
.sp .faq-item.open .faq-caret { transform:rotate(90deg); }
.sp .faq-a { display:none; padding:2px 18px 18px 18px; font-size:14px; color:#374151; line-height:1.62; }
.sp .faq-item.open .faq-a { display:block; }
.sp .faq-a p { margin:0 0 10px; }
.sp .faq-a ul, .sp .faq-a ol { margin:0 0 10px; padding-left:22px; }
.sp .faq-a li { margin-bottom:5px; }
.sp /* Left-accent callout = existing house style in this portal (matches the SOP-library
   and dashboard callouts); uses the portal's own --accent token so it follows the theme. */
.faq-a .faq-key {
  background:#f6f9ff; border-left:3px solid var(--accent, #155eef); padding:10px 14px;
  border-radius:0 6px 6px 0; margin:12px 0; font-weight:500; color:#1f3a8a;
}
.sp .faq-table-wrap { overflow-x:auto; margin:0 0 12px; }
.sp .faq-a .faq-table { border-collapse:collapse; width:100%; font-size:13px; min-width:420px; }
.sp .faq-a .faq-table th {
  text-align:left; padding:8px 10px; background:#f7f8fa; color:#4b5563;
  font-weight:600; border-bottom:1px solid #e7e9ee; white-space:nowrap;
}
.sp /* The portal's global stylesheet sets `tbody td {white-space:nowrap}
.sp ` for its data grids.
   That is right for those, .sp but it makes the FAQ's prose cells refuse to wrap and blows the
   tier table out to ~1390px inside a ~948px panel. Override it for FAQ tables only. */
.faq-a .faq-table td {
  padding:8px 10px; border-bottom:1px solid #f0f1f4; color:#374151;
  /* break-word, NOT anywhere: `anywhere` also counts break opportunities when computing
     min-content width, which let the browser split "$25,000" across lines mid-number even
     with room to spare. `break-word` only breaks a token that cannot fit on its own line. */
  white-space:normal; overflow-wrap:break-word;
}
.sp .faq-hl { background:#fff3ba; border-radius:2px; padding:0 1px; }
.sp #faq-empty { display:none; color:#999; text-align:center; padding:40px 20px; font-size:14px; }
.sp #faq-error { display:none; color:#b42318; background:#fef3f2; border:1px solid #fecdc9;
             border-radius:8px; padding:12px 16px; font-size:13px; margin-bottom:14px; }
.sp #faq-foot { margin-top:18px; padding-top:14px; border-top:1px solid #eef0f3; font-size:11.5px; color:#9aa1ae; }
.sp #mfs-gate-banner {margin:0 0 16px;border-radius:8px;padding:13px 16px;font-size:13.5px;line-height:1.55;display:flex;gap:12px;align-items:flex-start}
.sp #mfs-gate-banner.warn {background:#fff7e6;border:1px solid #f5d9a8;color:#7a4b06}
.sp #mfs-gate-banner.lock {background:#fdecec;border:1px solid #f5c2c0;color:#8c1d18}
.sp #mfs-gate-banner b {font-weight:700}
.sp #mfs-gate-banner .ico {flex:0 0 auto;font-size:15px;line-height:1.35}
.sp #mfs-gate-banner a, .sp #mfs-gate-banner button.link {color:inherit;font-weight:700;text-decoration:underline;background:none;border:0;padding:0;font-family:inherit;font-size:inherit;cursor:pointer}
#view-certification .cert-card {background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:22px 24px}
#view-certification h1 {font-size:24px;letter-spacing:-.02em;margin:0;color:#1f2937}
#view-certification .cert-sub {color:#6b7280;margin:7px 0 0;max-width:62ch;font-size:14.5px}
#view-certification .cert-facts {display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:12px;margin:20px 0}
#view-certification .cert-fact {background:#f7f8fa;border:1px solid #e5e5e5;border-radius:8px;padding:12px 14px}
#view-certification .cert-fact .n {font-size:20px;font-weight:700;color:#1f2937;line-height:1}
#view-certification .cert-fact .l {font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;margin-top:5px}
#view-certification .cert-tag {font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:4px;white-space:nowrap;display:inline-block}
#view-certification .cert-tag.canonical {background:#e9f9ef;color:#0b6b3a}
#view-certification .cert-tag.compliance {background:#fdecec;color:#a5231c}
#view-certification .cert-tag.industry {background:#eef2ff;color:#3730a3}
#view-certification .cert-tag.judgment {background:#fff7e6;color:#92400e}
#view-certification .cert-btn {appearance:none;border:0;border-radius:7px;background:#155eef;color:#fff;font-size:14.5px;font-weight:600;padding:11px 22px;cursor:pointer;font-family:inherit}
#view-certification .cert-btn:hover {background:#0f47b8}
#view-certification .cert-btn.ghost {background:#fff;color:#374151;border:1px solid #e5e5e5}
#view-certification .cert-btn:disabled {background:#e5e5e5;color:#9ca3af;cursor:not-allowed}
#view-certification .cert-qhead {display:flex;align-items:center;gap:14px}
#view-certification .cert-count {font-size:12px;font-weight:600;color:#9ca3af}
#view-certification .cert-bar {flex:1;height:5px;background:#e5e5e5;border-radius:3px;overflow:hidden}
#view-certification .cert-bar i {display:block;height:100%;width:100%;background:#155eef;transform-origin:left;transition:transform .3s}
#view-certification .cert-q {font-size:18.5px;font-weight:600;color:#1f2937;line-height:1.4;margin:14px 0 20px}
#view-certification .cert-opts {display:grid;gap:9px}
#view-certification .cert-opt {display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:14px 16px;font-size:14.5px;color:#374151;line-height:1.5;font-family:inherit;transition:border-color .12s,background .12s}
#view-certification .cert-opt:hover:not(:disabled) {border-color:#155eef;background:#eaf0fe}
#view-certification .cert-opt:disabled {cursor:default}
#view-certification .cert-opt .k {flex:0 0 22px;height:22px;border-radius:50%;border:1.5px solid #e5e5e5;display:grid;place-items:center;font-size:11px;font-weight:700;color:#9ca3af}
#view-certification .cert-opt.right {border-color:#22c55e;background:#e9f9ef}
#view-certification .cert-opt.right .k {border-color:#22c55e;background:#22c55e;color:#fff}
#view-certification .cert-opt.wrong {border-color:#ef4444;background:#fdecec}
#view-certification .cert-opt.wrong .k {border-color:#ef4444;background:#ef4444;color:#fff}
#view-certification .cert-fb {margin-top:16px;border-radius:8px;padding:15px 17px;background:#f7f8fa;border:1px solid #e5e5e5}
#view-certification .cert-fb .v {font-size:12.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;margin-bottom:6px}
#view-certification .cert-fb.ok .v {color:#0b6b3a}
#view-certification .cert-fb.no .v {color:#a5231c}
#view-certification .cert-fb p {margin:8px 0 0;font-size:14px;color:#374151;max-width:72ch}
#view-certification .cert-foot {display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
#view-certification .cert-score {display:flex;align-items:center;gap:22px;flex-wrap:wrap}
#view-certification .cert-ring {width:100px;height:100px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
#view-certification .cert-miss {border-left:2px solid #ef4444;padding:2px 0 2px 13px;margin-bottom:15px}
#view-certification .cert-miss .q {font-weight:600;color:#1f2937;font-size:14.5px}
#view-certification .cert-miss .a {font-size:13.5px;color:#6b7280;margin-top:4px}
#view-certification .cert-miss .a b {color:#0b6b3a}
#view-certification .cert-pick {display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:20px}
#view-certification .cert-quiz {background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:17px 18px;cursor:pointer;text-align:left;font-family:inherit;transition:border-color .12s,box-shadow .12s}
#view-certification .cert-quiz:hover {border-color:#155eef;box-shadow:0 2px 10px -4px rgba(21,94,239,.35)}
#view-certification .cert-quiz h3 {margin:0;font-size:15.5px;color:#1f2937;font-weight:600}
#view-certification .cert-quiz p {margin:5px 0 0;font-size:13.5px;color:#6b7280;line-height:1.45}
#view-certification .cert-quiz .meta {margin-top:11px;display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:12px;color:#9ca3af}
#view-certification .cert-pill {font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;background:#f7f8fa;color:#6b7280}
#view-certification .cert-pill.pass {background:#e9f9ef;color:#0b6b3a}
#view-certification .cert-back {appearance:none;border:0;background:none;padding:0;cursor:pointer;font-family:inherit;font-size:13px;color:#155eef;font-weight:600;margin-bottom:12px}
#view-certification .cert-hist {margin-top:18px;border-top:1px solid #e5e5e5;padding-top:14px;font-size:13px;color:#6b7280}
.sp /* 260909-cert2: per-question source references. Every question carries 2-4. */
#view-certification .cert-refs {margin-top:14px;border-top:1px dashed #e5e5e5;padding-top:12px}
#view-certification .cert-refs-h {font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#9ca3af;margin-bottom:8px}
#view-certification .cert-ref {display:flex;gap:9px;align-items:baseline;text-decoration:none;color:#374151;font-size:13.5px;line-height:1.45;padding:5px 7px;margin:0 -7px;border-radius:6px;border:0;background:none;font-family:inherit;text-align:left;width:calc(100% + 14px);cursor:pointer}
#view-certification .cert-ref:hover {background:#eaf0fe;color:#0f47b8}
#view-certification .cert-ref .rt {flex:0 0 auto;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:#f0f1f4;color:#6b7280}
#view-certification .cert-ref.skool .rt {background:#eef2ff;color:#3730a3}
#view-certification .cert-ref.pdf   .rt {background:#fdecec;color:#a5231c}
#view-certification .cert-ref.video .rt {background:#f3e8ff;color:#6b21a8}
#view-certification .cert-ref.faq   .rt {background:#e9f9ef;color:#0b6b3a}
#view-certification .cert-ref.ai    .rt {background:#fff7e6;color:#92400e}
#view-certification .cert-ref.lesson .rt {background:#eaf0fe;color:#155eef}
#view-certification .cert-miss .cert-refs {border-top:0;padding-top:6px;margin-top:6px}
.sp /* 260911-certprog: saved progress — in-progress pill, .sp resume notice, .sp save-and-exit link */
#view-certification .cert-pill.prog {background:#eaf0fe;color:#155eef}
#view-certification .cert-resume {margin-top:16px;background:#eaf0fe;border:1px solid #c7d7fd;border-radius:8px;padding:12px 15px;font-size:13.5px;color:#1f2937;line-height:1.5}
#view-certification .cert-exit {appearance:none;border:0;background:none;padding:0;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;color:#155eef;white-space:nowrap}
#view-certification .cert-exit:hover {text-decoration:underline}
.sp /* ── 260912-onb2: onboarding track ─────────────────────────────────────────── */
#view-certification .cert-tracks {margin-top:22px}
#view-certification .cert-trackh {font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9ca3af;margin:26px 0 0}
#view-certification .cert-trackh:first-child {margin-top:0}
#view-certification .cert-tracksub {font-size:13.5px;color:#6b7280;margin:6px 0 0;max-width:62ch}
#view-certification .cert-step {display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:16px 18px;width:100%;text-align:left;font-family:inherit;cursor:pointer;transition:border-color .12s,box-shadow .12s}
#view-certification .cert-step:hover {border-color:#155eef;box-shadow:0 2px 10px -4px rgba(21,94,239,.35)}
#view-certification .cert-step + .cert-step {margin-top:10px}
#view-certification .cert-step .num {flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;background:#f0f1f4;color:#6b7280}
#view-certification .cert-step.done .num {background:#22c55e;color:#fff}
#view-certification .cert-step h3 {margin:0;font-size:15.5px;color:#1f2937;font-weight:600}
#view-certification .cert-step p {margin:4px 0 0;font-size:13.5px;color:#6b7280;line-height:1.45}
#view-certification .cert-step .meta {margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:12px;color:#9ca3af}
#view-certification .cert-step.locked {opacity:.62;cursor:not-allowed}
#view-certification .cert-step.locked:hover {border-color:#e5e5e5;box-shadow:none}
#view-certification .cert-step.locked .num {background:#f0f1f4;color:#c4c7ce}
#view-certification .cert-pill.locked {background:#f0f1f4;color:#9ca3af}
#view-certification .cert-lrow {display:flex;gap:13px;align-items:flex-start;background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:14px 16px;width:100%;text-align:left;font-family:inherit;cursor:pointer;transition:border-color .12s,background .12s}
#view-certification .cert-lrow:hover {border-color:#155eef;background:#fafbff}
#view-certification .cert-lrow + .cert-lrow {margin-top:9px}
#view-certification .cert-lrow .tick {flex:0 0 20px;height:20px;border-radius:50%;border:1.5px solid #e5e5e5;display:grid;place-items:center;font-size:11px;color:#fff;background:#fff}
#view-certification .cert-lrow.seen .tick {background:#22c55e;border-color:#22c55e}
#view-certification .cert-lrow b {display:block;font-size:14.5px;color:#1f2937;font-weight:600}
#view-certification .cert-lrow span.s {display:block;font-size:13px;color:#6b7280;margin-top:3px;line-height:1.45}
#view-certification .cert-lrow .t {flex:0 0 auto;font-size:11.5px;color:#9ca3af;white-space:nowrap}
#view-certification .cert-gate {margin-top:18px;background:#f7f8fa;border:1px solid #e5e5e5;border-radius:8px;padding:14px 16px;font-size:13.5px;color:#6b7280;line-height:1.5}
.sp /* Height-capped, .sp not width-capped: the testimonials are phone-shot portrait video, .sp and
   a 760px-wide portrait clip is about 1300px tall and swallows the whole lesson. */
#view-certification .cert-vid {max-width:100%;width:auto;max-height:440px;border-radius:8px;background:#000;display:block;margin:0 0 8px}
#view-certification .cert-vidwrap {margin:18px 0}
#view-certification .cert-vidt {font-size:13px;font-weight:600;color:#374151;margin-bottom:7px}
.sp /* Lesson body — rendered from markdown by certMd(). Scoped tight so it cannot leak. */
#view-certification .cert-body {font-size:15px;line-height:1.62;color:#374151;max-width:74ch}
#view-certification .cert-body h2 {font-size:18px;color:#1f2937;margin:26px 0 10px;letter-spacing:-.01em}
#view-certification .cert-body h3 {font-size:15.5px;color:#1f2937;margin:20px 0 8px}
#view-certification .cert-body h4 {font-size:14px;color:#1f2937;margin:16px 0 6px}
#view-certification .cert-body p {margin:0 0 13px}
#view-certification .cert-body ul, #view-certification .cert-body ol {margin:0 0 13px;padding-left:22px}
#view-certification .cert-body li {margin:0 0 6px}
#view-certification .cert-body strong {color:#1f2937}
#view-certification .cert-body code {background:#f0f1f4;border-radius:4px;padding:1px 5px;font-size:13px}
#view-certification .cert-body blockquote {margin:0 0 14px;padding:11px 15px;border-left:3px solid #155eef;background:#f7f9ff;color:#374151}
#view-certification .cert-body blockquote p:last-child {margin:0}
#view-certification .cert-body hr {border:0;border-top:1px solid #e5e5e5;margin:22px 0}
#view-certification .cert-body a {color:#155eef}
#view-certification .cert-tablewrap {overflow-x:auto;margin:0 0 15px}
#view-certification .cert-body table {border-collapse:collapse;font-size:13.5px;min-width:100%}
#view-certification .cert-body th, #view-certification .cert-body td {border:1px solid #e5e5e5;padding:8px 11px;text-align:left;vertical-align:top}
#view-certification .cert-body th {background:#f7f8fa;font-weight:600;color:#1f2937;white-space:nowrap}
#view-certification .cert-lnav {display:flex;justify-content:space-between;gap:9px;margin-top:24px;border-top:1px solid #e5e5e5;padding-top:16px}
#view-certification .cert-links {margin:16px 0}
#view-certification .cert-err {background:#fdecec;border:1px solid #f5c2c0;border-radius:8px;padding:12px 15px;font-size:13.5px;color:#a5231c;margin-top:14px}
.sp /* 260913-cmv: paperwork (step 0) — an embedded Google Form plus the rep's own confirmation. */
#view-certification .cert-step.form .num {background:#eef2ff;color:#3730a3}
#view-certification .cert-step.form.done .num {background:#22c55e;color:#fff}
#view-certification .cert-formwrap {margin:18px 0 0;border:1px solid #e5e5e5;border-radius:8px;overflow:hidden;background:#f7f8fa}
#view-certification .cert-formwrap iframe {display:block;width:100%;height:min(78vh,1100px);border:0;background:#fff}
#view-certification .cert-formfoot {display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:16px}
#view-certification .cert-formfoot a {font-size:13.5px;color:#155eef;font-weight:600}
#view-certification .cert-gate.cert-watch-ok {background:#e9f9ef;border-color:#bfe8cd;color:#0b6b3a}
.sp /* 260913-cmv3: the in-portal onboarding form */
#view-certification .cert-onb h2 {font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b7280;margin:26px 0 10px;padding-top:18px;border-top:1px solid #e5e5e5}
#view-certification .cert-onb h2:first-child {border-top:0;padding-top:0;margin-top:18px}
#view-certification .cert-onb-row {display:flex;gap:12px;flex-wrap:wrap}
#view-certification .cert-onb-field {margin:0 0 12px;flex:1 1 100%}
#view-certification .cert-onb-field.half {flex:1 1 calc(50% - 6px);min-width:200px}
#view-certification .cert-onb-field label {display:block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6b7280;margin-bottom:5px}
#view-certification .cert-onb-field label b {color:#a5231c}
#view-certification .cert-onb-field input {width:100%;background:#f7f8fa;border:1px solid #e5e5e5;border-radius:6px;padding:10px 12px;font-size:14px;color:#1f2937;font-family:inherit;outline:none;transition:border-color .12s}
#view-certification .cert-onb-field input:focus {border-color:#155eef;background:#fff}
#view-certification .cert-onb-field .hint {font-size:12px;color:#6b7280;margin-top:5px;line-height:1.45}
.sp /* 260913-mql: the Fathom API key section (closers) */
#view-certification .cert-onb-help {font-size:13px;color:#4b5563;line-height:1.55;margin:0 0 12px}
#view-certification .cert-onb-help ol {margin:8px 0 0;padding-left:20px}
#view-certification .cert-onb-help li {margin:2px 0}
#view-certification .cert-onb-help a {color:#155eef}
#view-certification .cert-onb-field input.cert-onb-mono {font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.02em}
#view-certification .cert-onb-radios {display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 12px}
#view-certification .cert-onb-radio {display:inline-flex;align-items:center;gap:7px;font-size:14px;color:#1f2937;cursor:pointer}
#view-certification .cert-onb-radio input {accent-color:#155eef}
.sp /* OBJECTION PLAYBOOK 260912-it7 -- every selector scoped to #view-obj so nothing bleeds */
#view-obj .panel { padding: 20px 28px 28px; }
#view-obj .obj-ph {
  display:block; padding:0; border:none; font-size:20px; font-weight:700;
  color:#1f2937; margin-bottom:4px; text-transform:none; letter-spacing:normal;
}
#view-obj .obj-sub { color:#666; margin-bottom:18px; font-size:14px; }
.sp #obj-draft {
  display:none; color:#7a4a00; background:#fff6e0; border:1px solid #f3d98b;
  border-radius:8px; padding:10px 16px; font-size:13px; font-weight:600; margin-bottom:14px;
}
.sp #obj-search {
  width:100%; padding:12px 16px; font-size:14px; border:1px solid #ddd;
  border-radius:8px; margin-bottom:12px; box-sizing:border-box; background:#fff;
}
.sp #obj-search:focus { outline:none; border-color:#155eef; box-shadow:0 0 0 3px rgba(21,94,239,0.12); }
.sp #obj-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.sp .obj-chip {
  padding:6px 14px; font-size:12px; font-weight:600; border-radius:999px;
  border:1px solid #d9dde3; background:#fff; color:#4b5563; cursor:pointer;
  transition:all .12s ease; white-space:nowrap;
}
.sp .obj-chip:hover { border-color:#155eef; color:#155eef; }
.sp .obj-chip.active { background:#155eef; border-color:#155eef; color:#fff; }
.sp #obj-count { font-size:12px; color:#8b93a1; margin-bottom:12px; }
.sp .obj-item { border:1px solid #e7e9ee; border-radius:10px; margin-bottom:10px; background:#fff; overflow:hidden; }
.sp .obj-item.open { border-color:#c9d6f5; box-shadow:0 1px 3px rgba(16,24,40,.06); }
.sp .obj-q {
  display:flex; align-items:flex-start; gap:12px; width:100%; text-align:left;
  padding:14px 18px; background:none; border:none; cursor:pointer; font-family:inherit;
}
.sp .obj-q:hover { background:#fafbfc; }
.sp .obj-q-text { flex:1; font-size:14.5px; font-weight:600; color:#1f2937; line-height:1.45; }
.sp .obj-q-short { display:block; font-size:12.5px; font-weight:400; color:#7c8494; margin-top:4px; line-height:1.45; }
.sp .obj-tags { flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:4px; margin-top:2px; }
.sp .obj-cat-tag {
  font-size:10px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:#155eef; background:#eef3fe; padding:3px 8px; border-radius:5px; white-space:nowrap;
}
.sp .obj-freq {
  font-size:10px; font-weight:600; color:#8b93a1; background:#f3f4f6; padding:2px 7px;
  border-radius:5px; white-space:nowrap;
}
.sp /* 260913-mh4: granular cards. A FAMILY card is the broad objection (the old card, .sp now an
   overview + "isolate which one it is"); its sub-cards each carry the family name so a rep
   sees "Price too high > that's the last money I have" at a glance. Sub-cards are indented a
   touch and lose the theme tag (the family tag already says where they live). */
.obj-fam-tag {
  font-size:10px; font-weight:600; color:#5b6b8a; background:#f1f4fa; padding:2px 7px;
  border-radius:5px; white-space:nowrap; max-width:220px; overflow:hidden; text-overflow:ellipsis;
}
.sp .obj-item.obj-sub { margin-left:18px; background:#fcfdff; }
.sp .obj-item.obj-fam > .obj-q .obj-q-text { font-size:15.5px; }
.sp .obj-kind { font-size:10px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:#8b93a1; }
@media (max-width:560px) {
.sp .obj-item.obj-sub { margin-left:8px; }
.sp .obj-fam-tag { max-width:100%; }}
.sp .obj-caret { flex:none; color:#b0b7c3; font-size:12px; margin-top:4px; transition:transform .15s ease; }
@media (max-width:560px) {
.sp .obj-q { flex-wrap:wrap; padding:13px 14px; gap:10px; }
.sp /* basis 0, .sp not auto: with auto the title's own content width exceeds the row and wraps, .sp orphaning the caret on a line of its own above every card. */
  .obj-q-text { flex:1 1 0; min-width:0; }
.sp .obj-tags { flex:1 1 100%; flex-direction:row; align-items:center; justify-content:flex-start;
              flex-wrap:wrap; margin-top:0; }
.sp .obj-freq { white-space:normal; }
#view-obj .obj-a { padding-left:14px; padding-right:14px; }}
.sp .obj-item.open .obj-caret { transform:rotate(90deg); }
.sp .obj-a { display:none; padding:2px 18px 18px 18px; font-size:14px; color:#374151; line-height:1.62; }
.sp .obj-item.open .obj-a { display:block; }
.sp .obj-a p { margin:0 0 10px; }
.sp .obj-a ul, .sp .obj-a ol { margin:0 0 10px; padding-left:22px; }
.sp .obj-a li { margin-bottom:5px; }
.sp /* Authored content classes -- these come straight from the frozen objections JSON, .sp 90/62/38/1
   occurrences respectively across the two files. Scripts get the visually dominant treatment:
   reps read these mid-call, .sp word for word. */
.obj-a p.obj-h {
  font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:#8b93a1; margin:16px 0 6px;
}
.sp .obj-a p.obj-h:first-child { margin-top:0; }
.sp .obj-a blockquote.obj-script {
  margin:10px 0; padding:12px 16px; background:#f6f9ff;
  border-left:3px solid var(--accent, #155eef); border-radius:0 6px 6px 0;
  font-style:normal; font-weight:500; color:#1f3a8a; line-height:1.6;
}
.sp .obj-a p.obj-trap {
  margin:10px 0; padding:10px 14px; background:#fef3f2; border:1px solid #fecdc9;
  border-radius:6px; color:#7a271a; font-size:13.5px; line-height:1.55;
}
.sp .obj-a p.obj-note {
  margin:10px 0; padding:10px 14px; background:#eef3fe; border:1px solid #cddcfb;
  border-radius:6px; color:#1f3a8a; font-size:13.5px; line-height:1.55;
}
.sp /* The portal's global stylesheet sets `tbody td {white-space:nowrap}
.sp ` for its data grids.
   Carry over the same override the earlier tab needed for wide prose -- break-word, .sp NOT
   anywhere, .sp so a token like "$25, .sp 000" is never split mid-number when there is room to spare. */
.obj-a, .sp .obj-a td { white-space:normal; overflow-wrap:break-word; }
.sp .obj-hl { background:#fff3ba; border-radius:2px; padding:0 1px; }
.sp /* 260913-mh4b: "From real calls" -- moments from Fathom recordings where this objection was
   handled and the prospect either paid within 30 days or the analyzer marked it resolved.
   Rendered from an optional `examples` array on the card; cards without it show nothing. */
.obj-ex { margin:14px 0 4px; padding:12px 14px; background:#f7faf7; border:1px solid #d8e8d8; border-radius:8px; }
.sp .obj-ex-h { font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#2f6b3a; margin:0 0 8px; }
.sp .obj-ex-item { padding:8px 0; border-top:1px solid #e3eee3; font-size:13.5px; line-height:1.55; }
.sp .obj-ex-item:first-of-type { border-top:none; padding-top:0; }
.sp .obj-ex-meta { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; margin-bottom:4px; font-size:12px; color:#4b5563; }
.sp .obj-ex-badge { font-size:10px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:2px 7px; border-radius:5px; background:#e6f4ea; color:#1e6b34; }
.sp .obj-ex-badge.res { background:#eef3fe; color:#1f3a8a; }
.sp .obj-ex-q { color:#374151; font-style:italic; }
.sp .obj-ex-note { color:#1f2937; margin-top:3px; }
.sp .obj-ex-watch { display:inline-block; margin-top:5px; font-weight:600; color:#155eef; text-decoration:none; }
.sp .obj-ex-watch:hover { text-decoration:underline; }
.sp #obj-empty { display:none; color:#999; text-align:center; padding:40px 20px; font-size:14px; }
.sp #obj-error { display:none; color:#b42318; background:#fef3f2; border:1px solid #fecdc9;
             border-radius:8px; padding:12px 16px; font-size:13px; margin-bottom:14px; }
.sp #obj-foot { margin-top:18px; padding-top:14px; border-top:1px solid #eef0f3; font-size:11.5px; color:#9aa1ae; }
.sp .pcs-survey-modal { position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,0.72); display:flex; align-items:center; justify-content:center; padding:24px; }
.sp .pcs-survey-modal-inner { background:var(--background); border:1px solid var(--border); border-radius:12px; width:min(960px, 95vw); height:min(860px, 92vh); display:flex; flex-direction:column; overflow:hidden; box-shadow:0 24px 64px rgba(0,0,0,0.5); }
.sp .pcs-survey-modal-header { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--border); flex-shrink:0; }
.sp .pcs-survey-modal-title { display:flex; flex-direction:column; gap:2px; min-width:0; }
.sp .pcs-survey-modal-name { font-size:15px; font-weight:700; color:var(--foreground); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sp .pcs-survey-modal-sub { font-size:12px; color:var(--muted-foreground); }
.sp .pcs-survey-modal-close { background:transparent; border:none; color:var(--muted-foreground); font-size:26px; line-height:1; cursor:pointer; padding:4px 10px; border-radius:6px; }
.sp .pcs-survey-modal-close:hover { color:var(--foreground); background:rgba(255,255,255,0.06); }
.sp .pcs-survey-modal-body { flex:1; min-height:0; }
.sp .pcs-survey-modal-body iframe { width:100%; height:100%; border:none; display:block; background:#fff; }
.sp .brief-modal { position:fixed; inset:0; background:rgba(0,0,0,0.6); display:flex; align-items:center; justify-content:center; z-index:1100; padding:24px; }
.sp .brief-modal-inner { background:var(--card,#fff); color:var(--foreground,#111); border-radius:12px; max-width:760px; width:100%; max-height:85vh; display:flex; flex-direction:column; box-shadow:0 20px 60px rgba(0,0,0,0.5); }
.sp .brief-modal-header { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--border,rgba(255,255,255,0.08)); }
.sp .brief-modal-title { font-weight:700; font-size:14px; letter-spacing:0.3px; color:var(--foreground); }
.sp .brief-modal-sub { font-size:12px; color:var(--muted-foreground); margin-top:2px; }
.sp .brief-modal-close { background:none; border:none; font-size:24px; line-height:1; cursor:pointer; color:var(--muted-foreground); padding:0 6px; }
.sp .brief-modal-close:hover { color:var(--foreground); }
.sp .brief-modal-body { overflow-y:auto; padding:18px 22px; font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; font-size:13px; line-height:1.55; white-space:pre-wrap; color:var(--foreground); }
.sp .brief-modal-actions { padding:10px 18px; border-top:1px solid var(--border,rgba(255,255,255,0.08)); display:flex; gap:8px; justify-content:flex-end; }
.sp .brief-modal-actions button { padding:6px 14px; font-size:12px; border-radius:6px; border:1px solid var(--border,rgba(255,255,255,0.15)); background:transparent; color:var(--foreground); cursor:pointer; }
.sp .brief-modal-actions button:hover { background:rgba(255,255,255,0.05); }
.sp .dc-chip--brief { background:rgba(99,102,241,0.15); color:#a5b4fc; cursor:pointer; }
.sp .dc-chip--brief:hover { background:rgba(99,102,241,0.25); }