    /* ── Tokens ─────────────────────────────────────────── */
    :root {
      --bg:          #F4F3EF;
      --surface:     #ffffff;
      --surface-2:   #FAFAF8;
      --border:      #DDDDDB;
      --border-2:    #CCCCCA;
      --accent:      #111111;
      --accent-light:#F4F3EF;
      --text:        #111111;
      --text-2:      #555555;
      --muted:       #888888;
      --meta:        #999999;
      --hint:        #AAAAAA;
      --radius:      2px;
      --shadow:      none;
      --shadow-md:   0 2px 8px rgba(0,0,0,0.06);
      --mono:        Menlo, Monaco, 'Courier New', monospace;
      /* status */
      --strong:    #22c55e; --strong-bg:    #f0fdf4;
      --stable:    #1d4ed8; --stable-bg:    #dbeafe;
      --weakening: #B05050; --weakening-bg: #FFF5F5;
      --dormant:   #888888; --dormant-bg:   #f5f5f4;
    }
    [data-theme="dark"] {
      --bg:          #0d0d14;
      --surface:     #16161f;
      --surface-2:   #1e1e2a;
      --border:      #2a2a3a;
      --accent:      #ccccca;
      --accent-light:#1a1c2a;
      --text:        #e8e8e4;
      --text-2:      #9090a8;
      --muted:       #8080a0;
      --shadow:      none;
      --shadow-md:   0 2px 8px rgba(0,0,0,0.3);
      --strong-bg:   #14291d; --stable-bg:   #12213d;
      --weakening-bg:#2d180e; --dormant-bg:  #1c1c24;
    }

    /* ── Reset + base ────────────────────────────────────── */
    * { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      font-family: -apple-system, 'Helvetica Neue', Arial, sans-serif;
      background: var(--bg);
      color: var(--text);
      height: 100vh;
      display: flex;
      flex-direction: column;
      font-size: 14px;
      line-height: 1.5;
    }

    /* ── Header ──────────────────────────────────────────── */
    header {
      height: 52px;
      padding: 0 20px;
      background: var(--surface);
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      gap: 14px;
      flex-shrink: 0;
      z-index: 10;
    }
    .header-logo {
      font-size: 15px;
      font-weight: 700;
      color: var(--text);
      letter-spacing: -0.3px;
    }
    .header-logo span { color: var(--accent); }
    #header-count {
      font-size: 12px;
      color: var(--muted);
      background: var(--surface-2);
      border: 1px solid var(--border);
      border-radius: 20px;
      padding: 2px 10px;
    }
    #header-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
    #header-email { font-size: 12px; color: var(--muted); }

    /* icon buttons */
    .icon-btn {
      width: 32px; height: 32px;
      display: flex; align-items: center; justify-content: center;
      background: none;
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 2px;
      cursor: pointer;
      color: rgba(255,255,255,0.35);
      font-size: 15px;
      transition: background 0.15s, color 0.15s;
    }
    .icon-btn:hover { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.7); }

    .action-btn {
      height: 32px;
      padding: 0 14px;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 9px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: #fff;
      background: #111111;
      border: 1px solid rgba(255,255,255,0.15);
      border-radius: 2px;
      cursor: pointer;
      display: flex; align-items: center; gap: 6px;
      transition: opacity 0.15s;
    }
    .action-btn:hover:not(:disabled) { opacity: 0.85; }
    .action-btn:disabled { opacity: 0.5; cursor: default; }
    .signout-btn {
      height: 32px; padding: 0 12px;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase;
      color: rgba(255,255,255,0.35);
      background: none; border: 1px solid rgba(255,255,255,0.1);
      border-radius: 2px; cursor: pointer;
    }
    .signout-btn:hover { color: rgba(255,255,255,0.7); border-color: rgba(255,255,255,0.25); }

    /* ── Sync overlay ─────────────────────────────────────── */
    #sync-overlay {
      position: fixed; inset: 0;
      background: rgba(13,13,20,0.72);
      backdrop-filter: blur(6px);
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      z-index: 300;
      transition: opacity 0.35s ease;
    }
    #sync-overlay.hidden { display: none; }
    #sync-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 14px;
      box-shadow: 0 8px 32px rgba(0,0,0,0.18);
      width: 340px;
      padding: 28px 28px 24px;
      transition: opacity 0.3s ease, transform 0.3s ease;
    }
    #sync-card.fading { opacity: 0; transform: scale(0.96); }
    #sync-card-header {
      display: flex; align-items: center; gap: 12px; margin-bottom: 22px;
    }
    #sync-card-title { font-size: 15px; font-weight: 700; color: var(--text); }
    #sync-card-sub   { font-size: 12px; color: var(--muted); margin-top: 2px; }
    .sync-step {
      display: flex; align-items: center; gap: 12px;
      padding: 9px 0;
      border-bottom: 1px solid var(--border);
      opacity: 0; transform: translateY(5px);
      transition: opacity 0.3s ease, transform 0.3s ease;
    }
    .sync-step:last-child { border-bottom: none; }
    .sync-step.visible  { opacity: 1; transform: translateY(0); }
    .sync-step-icon {
      width: 18px; height: 18px; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
    }
    .sync-step-spinner {
      width: 13px; height: 13px;
      border: 2px solid var(--border);
      border-top-color: var(--accent);
      border-radius: 50%;
      animation: spin 0.7s linear infinite;
    }
    .sync-step-check { font-size: 14px; color: #16a34a; }
    .sync-step-text  { font-size: 13px; color: var(--text); flex: 1; }

    /* ── Dynamic island ────────────────────────────────────── */
    #sync-island {
      position: fixed; top: 14px; left: 50%; transform: translateX(-50%) translateY(-60px);
      background: #0a0a0f;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 999px;
      padding: 8px 18px 8px 12px;
      display: flex; align-items: center; gap: 10px;
      box-shadow: 0 4px 24px rgba(0,0,0,0.5);
      z-index: 500;
      opacity: 0;
      transition: transform 0.45s cubic-bezier(0.34,1.56,0.64,1), opacity 0.35s ease;
      white-space: nowrap;
    }
    #sync-island.visible {
      transform: translateX(-50%) translateY(0);
      opacity: 1;
    }
    #sync-island.hidden { display: none; }
    #island-spinner {
      width: 12px; height: 12px; flex-shrink: 0;
      border: 2px solid rgba(255,255,255,0.15);
      border-top-color: var(--accent);
      border-radius: 50%;
      animation: spin 0.8s linear infinite;
    }
    #island-text { font-size: 12px; color: rgba(255,255,255,0.75); letter-spacing: 0.01em; }
    #island-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--accent);
      animation: pulse 1.4s ease-in-out infinite;
      flex-shrink: 0;
    }
    @keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }

    /* ── App layout ───────────────────────────────────────── */
    header { display: none; } /* replaced by sidebar */
    #app {
      flex: 1;
      min-height: 0;
      min-width: 0;
      display: flex;
      flex-direction: row;
      overflow: hidden;
    }

    /* ── Sidebar ──────────────────────────────────────────── */
    #sidebar {
      width: 234px;
      min-width: 234px;
      transition: width 0.26s cubic-bezier(0.4,0,0.2,1),
                  min-width 0.26s cubic-bezier(0.4,0,0.2,1);
      background: #111111;
      border-right: 1px solid #1d1d1d;
      display: flex;
      flex-direction: column;
      overflow-y: auto;
      overflow-x: hidden;
      flex-shrink: 0;
    }
    .sb-logo {
      display: flex; align-items: center; gap: 5px;
      padding: 16px 18px 14px;
      border-bottom: 1px solid rgba(255,255,255,0.07);
      margin-bottom: 6px;
    }
    .sb-logo-globe-btn {
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      padding: 0;
      margin: 0;
      border: none;
      border-radius: 8px;
      background: transparent;
      cursor: pointer;
      transition: background 0.15s;
    }
    .sb-logo-globe-btn:hover { background: rgba(255,255,255,0.08); }
    .sb-logo-globe-btn:focus-visible {
      outline: 2px solid rgba(255,255,255,0.45);
      outline-offset: 2px;
    }
    .sb-logo-globe-mount {
      width: 32px;
      height: 32px;
      display: block;
      pointer-events: none;
    }
    .sb-logo-globe-mount svg {
      display: block;
      width: 100%;
      height: 100%;
    }
    /* Globe ink on dark sidebar */
    #sidebar .sb-logo-globe-mount .wg-outline { stroke: rgba(255,255,255,0.38); }
    #sidebar .sb-logo-globe-mount .wg-graticule { stroke: rgba(255,255,255,0.14); }
    #sidebar .sb-logo-globe-mount .wg-land-dot { fill: rgba(255,255,255,0.88); }
    #sidebar .sb-logo-globe-mount .wg-land-edge { stroke: rgba(255,255,255,0.42); }
    .sb-logo-text {
      font-family: 'The Seasons', Georgia, serif;
      font-size: 11.5px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.13em;
      color: #ffffff;
      line-height: 1.05;
    }
    .sb-logo-text span { color: rgba(255,255,255,0.35); }
    .sb-nav {
      display: flex; flex-direction: column;
      padding: 4px 10px; gap: 1px;
    }
    .sb-item {
      display: flex; align-items: center; gap: 10px;
      padding: 8px 10px; border-radius: 2px;
      font-size: 13px; font-weight: 400; color: rgba(255,255,255,0.5);
      text-decoration: none; background: none; border: none;
      cursor: pointer; width: 100%; text-align: left;
      transition: background 0.12s, color 0.12s;
      position: relative; flex-shrink: 0;
    }
    .sb-item:hover { background: rgba(255,255,255,0.07); color: rgba(255,255,255,0.85); }
    .sb-item.active { background: rgba(255,255,255,0.11); color: #ffffff; font-weight: 600; }
    .sb-item svg { flex-shrink: 0; color: rgba(255,255,255,0.3); transition: color 0.12s; }
    .sb-item.active svg, .sb-item:hover svg { color: rgba(255,255,255,0.7); }
    .sb-badge {
      margin-left: auto; background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.65);
      border-radius: 2px; font-size: 9px; font-weight: 700;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      padding: 1px 6px; min-width: 18px; text-align: center;
    }
    .sb-badge:empty { display: none; }
    /* Follow-up badge — warm urgency tint when populated */
    #sb-fu-count:not(:empty) {
      background: rgba(239,68,68,0.18);
      color: #fca5a5;
    }
    [data-theme="light"] #sb-fu-count:not(:empty) {
      background: rgba(239,68,68,0.12);
      color: #dc2626;
    }
    .sb-section {
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 7px; font-weight: 700; text-transform: uppercase;
      letter-spacing: 0.28em; color: rgba(255,255,255,0.2);
      padding: 16px 20px 3px;
    }
    .sb-divider { height: 1px; background: rgba(255,255,255,0.07); margin: 6px 10px; }
    .sb-collapse-btn { margin-bottom: 8px; opacity: 0.5; }
    .sb-collapse-btn:hover { opacity: 1; }
    .sb-bottom {
      margin-top: auto; padding: 12px 14px;
      border-top: 1px solid rgba(255,255,255,0.07);
    }
    .sb-user-row {
      display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
    }
    .sb-avatar {
      width: 30px; height: 30px; border-radius: 2px;
      background: rgba(255,255,255,0.12); color: #fff;
      display: flex; align-items: center; justify-content: center;
      font-size: 13px; font-weight: 700; flex-shrink: 0;
    }
    #header-email {
      font-size: 10px; color: rgba(255,255,255,0.3);
      font-family: Menlo, Monaco, 'Courier New', monospace;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      flex: 1;
    }
    #sb-enrichment-indicator {
      display: flex; align-items: center; gap: 7px;
      padding: 6px 2px 8px;
      font-family: var(--mono); font-size: 10px;
      color: rgba(255,255,255,0.35);
      letter-spacing: 0.04em;
    }
    .sb-enrich-dot {
      width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
      background: rgba(255,255,255,0.25);
      animation: enrichPulse 1.6s ease-in-out infinite;
    }
    .sb-enrich-dot.done { background: #4ade80; animation: none; }
    .sb-enrich-dot.error { background: #f87171; animation: none; }
    @keyframes enrichPulse {
      0%, 100% { opacity: 0.3; transform: scale(1); }
      50% { opacity: 1; transform: scale(1.25); }
    }
    [data-theme="light"] #sb-enrichment-indicator { color: rgba(0,0,0,0.4); }
    [data-theme="light"] .sb-enrich-dot { background: rgba(0,0,0,0.2); }
    #sidebar.collapsed #sb-enrichment-indicator { display: none !important; }
    .sb-bottom-actions { display: flex; gap: 6px; }
    .sb-icon-btn {
      flex: 1; height: 28px; border-radius: 2px;
      background: none; border: 1px solid rgba(255,255,255,0.1);
      color: rgba(255,255,255,0.3); cursor: pointer; font-size: 12px;
      transition: background 0.12s, color 0.12s;
    }
    .sb-icon-btn:hover { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.6); }
    /* Sidebar collapsed (icon-only) */
    #sidebar.collapsed { width: 54px; min-width: 54px; background: #111111; }
    #sidebar.collapsed .sb-label { display: none; }
    #sidebar.collapsed .sb-section { display: none; }
    #sidebar.collapsed .sb-logo-text { display: none; }
    #sidebar.collapsed .sb-logo {
      justify-content: center;
      padding-left: 9px;
      padding-right: 9px;
    }
    #sidebar.collapsed .sb-nav { padding: 4px 6px; }
    #sidebar.collapsed .sb-item { padding: 9px; justify-content: center; gap: 0; }
    #sidebar.collapsed .sb-badge { display: none; }
    #sidebar.collapsed .sb-bottom { padding: 10px 6px; }
    #sidebar.collapsed .sb-user-row > *:not(.sb-avatar) { display: none; }
    #sidebar.collapsed .sb-user-row { justify-content: center; }
    #sidebar.collapsed .sb-bottom-actions { display: none; }
    #sidebar.collapsed .sb-divider { margin: 6px 8px; }

    /* ── Sidebar light mode overrides ────────────────────── */
    [data-theme="light"] #sidebar {
      background: #ffffff;
      border-right: 1px solid #DDDDDB;
    }
    [data-theme="light"] #sidebar.collapsed { background: #ffffff; }
    [data-theme="light"] .sb-logo { border-bottom-color: #DDDDDB; }
    [data-theme="light"] .sb-logo-globe-btn:hover { background: rgba(0,0,0,0.05); }
    [data-theme="light"] .sb-logo-globe-btn:focus-visible { outline-color: rgba(0,0,0,0.35); }
    [data-theme="light"] #sidebar .sb-logo-globe-mount .wg-outline { stroke: rgba(15,23,42,0.22); }
    [data-theme="light"] #sidebar .sb-logo-globe-mount .wg-graticule { stroke: rgba(15,23,42,0.1); }
    [data-theme="light"] #sidebar .sb-logo-globe-mount .wg-land-dot { fill: rgba(15,23,42,0.72); }
    [data-theme="light"] #sidebar .sb-logo-globe-mount .wg-land-edge { stroke: rgba(15,23,42,0.38); }
    [data-theme="light"] .sb-logo-text {
      color: #111111;
      font-family: 'The Seasons', Georgia, serif;
      font-weight: 600;
      letter-spacing: 0.13em;
    }
    [data-theme="light"] .sb-logo-text span { color: #888888; }
    [data-theme="light"] .sb-item { color: #555555; }
    [data-theme="light"] .sb-item:hover { background: rgba(0,0,0,0.04); color: #111111; }
    [data-theme="light"] .sb-item.active { background: rgba(0,0,0,0.06); color: #111111; }
    [data-theme="light"] .sb-item svg { color: #888888; }
    [data-theme="light"] .sb-item.active svg,
    [data-theme="light"] .sb-item:hover svg { color: #111111; }
    [data-theme="light"] .sb-badge { background: rgba(0,0,0,0.07); color: #555555; }
    [data-theme="light"] .sb-section { color: #bbbbbb; letter-spacing: 0.28em; }
    [data-theme="light"] .sb-divider { background: #DDDDDB; }
    [data-theme="light"] .sb-bottom { border-top-color: #DDDDDB; }
    [data-theme="light"] .sb-avatar { background: rgba(0,0,0,0.08); color: #111111; }
    [data-theme="light"] #header-email { color: #888888; }
    [data-theme="light"] .sb-icon-btn { border-color: #DDDDDB; color: #555555; }
    [data-theme="light"] .sb-icon-btn:hover { background: rgba(0,0,0,0.05); color: #111111; }
    /* Follow-up card list inside 6th dashboard card */
    .fu-card-list { display: flex; flex-direction: column; }
    .fu-card-item {
      display: flex; align-items: center; gap: 10px;
      padding: 7px 0; border-top: 1px solid var(--border);
      cursor: pointer; transition: opacity 0.12s;
    }
    .fu-card-item:first-child { border-top: none; padding-top: 0; }
    .fu-card-item:hover { opacity: 0.75; }
    .fu-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
    .fu-dot.high { background: #ef4444; }
    .fu-dot.medium { background: #f59e0b; }
    .fu-dot.low { background: var(--accent); }
    .fu-item-body { flex: 1; min-width: 0; }
    .fu-item-name { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .fu-item-meta { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .fu-item-days { font-size: 11px; color: var(--muted); white-space: nowrap; flex-shrink: 0; }
    .fu-suggestions-card { cursor: default; }
    .fu-suggestions-card:hover { transform: none !important; box-shadow: var(--shadow) !important; border-color: var(--border) !important; }

    /* People-panel back button */
    .pp-back-btn {
      display: flex; align-items: center; gap: 8px;
      padding: 10px 14px; font-size: 13px; font-weight: 500;
      color: var(--muted); background: none; border: none;
      border-bottom: 1px solid var(--border);
      cursor: pointer; width: 100%; text-align: left;
      transition: color 0.12s;
    }
    .pp-back-btn:hover { color: var(--text); }

    /* ── Left panel ───────────────────────────────────────── */
    #people-panel {
      border-right: 1px solid var(--border);
      display: flex; flex-direction: column;
      overflow: hidden;
      background: var(--surface);
      width: 0; min-width: 0;
      transition: width 0.26s cubic-bezier(0.4,0,0.2,1),
                  min-width 0.26s cubic-bezier(0.4,0,0.2,1);
    }
    #people-panel.open {
      width: 300px; min-width: 300px;
    }

    /* search + filters */
    #panel-top {
      padding: 12px;
      border-bottom: 1px solid var(--border);
      display: flex; flex-direction: column; gap: 8px;
    }
    #search-wrap { position: relative; }
    #search-input {
      width: 100%;
      padding: 7px 32px 7px 10px;
      background: var(--surface-2);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      font-size: 13px;
      color: var(--text);
      outline: none;
      transition: border-color 0.15s;
    }
    #search-input::placeholder { color: var(--muted); }
    #search-input:focus { border-color: var(--accent); background: var(--surface); }
    #search-clear {
      position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
      background: none; border: none; cursor: pointer;
      color: var(--muted); font-size: 13px; padding: 0; display: none; line-height: 1;
    }
    #search-clear:hover { color: var(--text); }

    .filter-chips {
      display: flex; gap: 5px; flex-wrap: wrap;
    }
    .chip {
      padding: 3px 8px;
      border: 1px solid var(--border);
      border-radius: 2px;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 8px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      cursor: pointer;
      background: var(--surface);
      color: #999999;
      transition: all 0.15s;
    }
    .chip:hover { border-color: #111111; color: #111111; }
    .chip.active { background: #111111; color: #fff; border-color: #111111; }
    .chip.active-green { background: #22c55e; color: #fff; border-color: #22c55e; }
    .chip.active-orange { background: #B05050; color: #fff; border-color: #B05050; }

    /* people list */
    #people-list {
      flex: 1; overflow-y: auto; padding: 6px;
      list-style: none;
    }
    .person-item {
      padding: 9px 10px;
      border-radius: var(--radius);
      cursor: pointer;
      display: flex; flex-direction: column; gap: 2px;
      border: 1px solid transparent;
      transition: background 0.1s;
    }
    .person-item:hover { background: var(--surface-2); }
    .person-item.selected {
      background: var(--accent-light);
      border-color: var(--accent);
    }
    .person-item-row {
      display: flex; align-items: center; gap: 7px;
    }
    .status-dot {
      width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
    }
    .status-dot.strong   { background: var(--strong); }
    .status-dot.stable   { background: var(--stable); }
    .status-dot.weakening{ background: var(--weakening); }
    .status-dot.dormant  { background: var(--dormant); }
    .status-dot.confirmed{ background: var(--strong); }
    .status-dot.candidate{ background: var(--muted); }
    .awaiting-badge {
      display: inline-block;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: 0.03em;
      background: #fef3c7;
      color: #92400e;
      border: 1px solid #fcd34d;
      border-radius: 10px;
      padding: 1px 6px;
      vertical-align: middle;
      margin-left: 4px;
    }
    .p-name { font-size: 13px; font-weight: 600; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .p-meta { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .p-bar-wrap { height: 2px; background: var(--border); border-radius: 1px; overflow: hidden; margin-top: 2px; }
    .p-bar { height: 100%; background: var(--accent); border-radius: 1px; }

    /* pagination */
    #pagination-controls {
      padding: 8px 10px;
      border-top: 1px solid var(--border);
      display: flex; gap: 4px; justify-content: center;
    }
    #pagination-controls.hidden { display: none; }
    .page-btn {
      padding: 3px 9px; border: 1px solid var(--border);
      border-radius: 5px; cursor: pointer;
      background: var(--surface); font-size: 12px; color: var(--text);
    }
    .page-btn:hover { background: var(--surface-2); }
    .page-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }

    /* ── Right panel ──────────────────────────────────────── */
    #detail-panel {
      display: flex;
      flex-direction: column;
      flex: 1 1 0%;
      min-height: 0;
      min-width: 0;
      overflow: hidden;
      background: var(--bg);
    }
    #detail-placeholder {
      display: flex; flex-direction: column;
      flex: 1; overflow-y: auto;
      padding: 28px 32px;
      gap: 24px;
    }
    #followup-spotlight {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 2px;
      overflow: hidden;
    }
    .spotlight-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 14px 18px;
      border-bottom: 1px solid var(--border);
    }
    .spotlight-title {
      font-size: 13px; font-weight: 600; color: var(--text);
      display: flex; align-items: center; gap: 7px;
    }
    .spotlight-title-icon { font-size: 15px; }
    .shuffle-btn {
      display: flex; align-items: center; gap: 5px;
      font-size: 12px; color: var(--muted); background: none;
      border: 1px solid var(--border); border-radius: 6px;
      padding: 4px 10px; cursor: pointer; transition: color 0.15s, border-color 0.15s;
    }
    .shuffle-btn:hover { color: var(--accent); border-color: var(--accent); }
    .shuffle-btn.spinning .shuffle-icon { display: inline-block; animation: spin 0.5s linear; }
    @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
    .spotlight-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
    }
    .spotlight-card {
      padding: 16px 18px;
      cursor: pointer;
      transition: background 0.15s;
      border-right: 1px solid var(--border);
    }
    .spotlight-card:last-child { border-right: none; }
    .spotlight-card:hover { background: var(--surface-2); }
    .sc-priority {
      font-size: 10px; font-weight: 700; letter-spacing: 0.5px;
      text-transform: uppercase; margin-bottom: 6px;
    }
    .sc-priority.high  { color: #e04c4c; }
    .sc-priority.medium { color: #d97706; }
    .sc-priority.low   { color: var(--muted); }
    .sc-name { font-size: 14px; font-weight: 600; margin-bottom: 2px; }
    .sc-org  { font-size: 12px; color: var(--muted); margin-bottom: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .sc-reason {
      font-size: 12px; color: var(--muted);
      display: -webkit-box; -webkit-line-clamp: 2;
      -webkit-box-orient: vertical; overflow: hidden;
    }
    .sc-days {
      margin-top: 10px; font-size: 11px; color: var(--muted);
      display: flex; align-items: center; gap: 4px;
    }
    .sc-days-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--muted); flex-shrink: 0;
    }
    .spotlight-empty {
      padding: 32px; text-align: center;
      color: var(--muted); font-size: 13px;
    }

    /* ── Dashboard home ────────────────────────────────────── */
    .dash-header { margin-bottom: 18px; }
    .dash-greeting { font-size: 17px; font-weight: 700; letter-spacing: -0.3px; margin-bottom: 2px; }
    .dash-sub { font-size: 12px; color: var(--muted); }
    .feature-grid {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 12px; margin-bottom: 20px;
    }
    .feature-card {
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 2px; padding: 18px 18px 16px;
      cursor: pointer; display: flex; flex-direction: column; gap: 8px;
      text-decoration: none; color: inherit;
      transition: border-color 0.15s;
    }
    .feature-card:hover {
      transform: none;
      box-shadow: none;
      border-color: #111111;
    }
    .fc-icon {
      width: 34px; height: 34px; background: #F4F3EF;
      border-radius: 2px; display: flex; align-items: center;
      justify-content: center; color: #111111; flex-shrink: 0;
    }
    .fc-title { font-size: 13px; font-weight: 700; }
    .fc-desc  { font-size: 12px; color: var(--muted); line-height: 1.5; flex: 1; }
    .fc-stat  { font-family: Menlo, Monaco, 'Courier New', monospace; font-size: 9px; font-weight: 700; color: #111111; letter-spacing: 0.1em; padding-top: 4px; }
    /* Insights mini-panel */
    #insights-panel {
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 2px; overflow: hidden; margin-bottom: 20px;
    }
    .insights-header {
      padding: 8px 16px; border-bottom: 1px solid var(--border);
      background: #F4F3EF;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em;
      color: #999999;
      display: flex; align-items: center; justify-content: space-between;
    }
    .insights-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
    }
    .insight-cell {
      padding: 14px 16px; text-align: center;
      border-right: 1px solid var(--border);
    }
    .insight-cell:last-child { border-right: none; }
    .insight-num { font-size: 22px; font-weight: 700; line-height: 1; margin-bottom: 3px; }
    .insight-label { font-size: 11px; color: var(--muted); }
    .insight-num.strong   { color: #16a34a; }
    .insight-num.stable   { color: #1d4ed8; }
    .insight-num.weakening { color: #c2410c; }
    .insight-num.dormant  { color: var(--muted); }
    #detail-content {
      display: none;
      flex-direction: column;
      flex: 1;
      overflow: hidden;
    }

    /* Person header (always visible) */
    #detail-header {
      padding: 16px 22px 12px;
      background: #F4F3EF;
      border-bottom: 1px solid #DDDDDB;
      flex-shrink: 0;
    }
    [data-theme="dark"] #detail-header {
      background: var(--surface);
      border-bottom-color: var(--border);
    }
    .dh-top {
      display: flex; align-items: flex-start;
      justify-content: space-between; gap: 12px;
    }
    .dh-name { font-size: 19px; font-weight: 700; letter-spacing: -0.3px; }
    .dh-email { font-size: 12px; color: var(--muted); margin-top: 2px; }
    .dh-stats {
      display: flex; gap: 16px; margin-top: 10px;
    }
    .dh-stat { display: flex; flex-direction: column; align-items: center; gap: 1px; }
    .dh-stat-val { font-size: 20px; font-weight: 700; line-height: 1; }
    .dh-stat-val.accent { color: #111111; }
    [data-theme="dark"] .dh-stat-val.accent { color: var(--text); }
    .dh-stat-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; }
    .dh-divider { width: 1px; background: var(--border); align-self: stretch; margin: 2px 0; }

    /* ── Tabs (hidden — using card layout instead) ──────── */
    #tab-bar { display: none; }
    .tab-btn { display: none; }

    /* Tab panels — all always visible as cards */
    .tab-panel {
      display: block !important;
      padding: 0;
    }

    /* ── Card layout for detail panel ───────────────────── */
    #profile-body {
      padding: 14px 16px 24px;
      flex: 1;
      overflow-y: auto;
      width: 100%;
      box-sizing: border-box;
    }
    #intelligence-card {
      margin-bottom: 12px;
    }

    /* ── 2×2 equal-height card grid ─────────────────────── */
    .profile-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-template-rows: auto;
      gap: 12px;
      align-items: stretch;
      margin-bottom: 12px;
    }
    .profile-grid > * {
      min-width: 0;
      display: flex;
      flex-direction: column;
    }
    /* Cards inside grid cells stretch to fill their cell */
    .profile-grid > * > .card,
    .profile-grid > * > .info-card {
      flex: 1;
      margin-bottom: 0;
      min-height: 140px;
      display: flex;
      flex-direction: column;
    }


    /* ── Compact intelligence card ───────────────────────── */
    #intelligence-card .score-bars { display: none; }
    #intelligence-card .count-row  { display: none; }
    #intelligence-card .health-row { margin-bottom: 0; }

    /* ── Compact email card ──────────────────────────────── */
    #gmail-enrichment-section .email-body-box   { display: none; }
    #gmail-enrichment-section .subjects-section { display: none; }

    /* ── Consistent card internals in profile body ────────── */
    #profile-body .card {
      padding: 13px 15px;
      margin-bottom: 0;
    }
    #profile-body .card-title {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--muted);
      margin-bottom: 10px;
    }
    #profile-body .field-row {
      padding: 3px 0;
      font-size: 13px;
    }
    #profile-body .field-label {
      font-size: 11px;
    }

    /* ── Shared card ──────────────────────────────────────── */
    .card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 2px;
      padding: 14px 16px;
      margin-bottom: 12px;
      box-shadow: none;
    }
    .card-title {
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 8px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 0.18em;
      color: #999999;
      margin-bottom: 10px;
    }
    .card-row { display: flex; justify-content: space-between; align-items: center; }

    /* ── Intelligence card — Overview tab ─────────────────── */
    /* Follow-up banner */
    .fu-banner {
      border-radius: var(--radius); padding: 12px 14px;
      margin-bottom: 12px; border-left: 3px solid;
      display: flex; gap: 10px; align-items: flex-start;
    }
    .fu-banner.high   { background:#fef2f2; border-color:#ef4444; }
    .fu-banner.medium { background:#fffbeb; border-color:#f59e0b; }
    .fu-banner.low    { background:#eff6ff; border-color:#3b82f6; }
    [data-theme="dark"] .fu-banner.high   { background:#2d1010; }
    [data-theme="dark"] .fu-banner.medium { background:#2d2000; }
    [data-theme="dark"] .fu-banner.low    { background:#0f1e38; }
    .fu-icon { font-size: 16px; flex-shrink: 0; margin-top: 1px; }
    .fu-title { font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 6px; }
    .fu-priority {
      font-size: 10px; font-weight: 700; text-transform: uppercase;
      padding: 1px 6px; border-radius: 10px;
    }
    .fu-banner.high   .fu-priority { background:#fee2e2; color:#b91c1c; }
    .fu-banner.medium .fu-priority { background:#fef3c7; color:#92400e; }
    .fu-banner.low    .fu-priority { background:#dbeafe; color:#1e40af; }
    .fu-reason { font-size: 12px; color: var(--text); margin-top: 3px; line-height: 1.5; }
    .fu-signals { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
    .fu-signal {
      font-size: 11px; background: rgba(0,0,0,0.06); border-radius: 10px;
      padding: 1px 7px; color: var(--muted);
    }
    [data-theme="dark"] .fu-signal { background: rgba(255,255,255,0.08); }
    .fu-due { font-size: 11px; color: var(--muted); margin-top: 4px; }
    .awaiting-reply-banner {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      background: #fffbeb;
      border: 1px solid #fcd34d;
      border-radius: var(--radius);
      padding: 10px 14px;
      margin: 10px 22px 0;
      font-size: 13px;
    }
    [data-theme="dark"] .awaiting-reply-banner {
      background: #2a1f00;
      border-color: #78350f;
    }
    .awaiting-banner-icon { font-size: 18px; margin-top: 1px; }
    .awaiting-banner-title { font-weight: 600; color: #92400e; }
    [data-theme="dark"] .awaiting-banner-title { color: #fcd34d; }
    .awaiting-banner-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }

    /* Health + stage row */
    .health-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 14px; }
    .health-badge {
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em;
      padding: 3px 8px; border-radius: 2px;
    }
    .health-badge.strong   { background: var(--strong-bg);   color: var(--strong); }
    .health-badge.stable   { background: var(--stable-bg);   color: var(--stable); }
    .health-badge.weakening{ background: var(--weakening-bg);color: var(--weakening); }
    .health-badge.dormant  { background: var(--dormant-bg);  color: var(--dormant); }
    .stage-tag {
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 8px; letter-spacing: 0.1em; text-transform: uppercase; color: #888888;
      background: var(--surface-2); border: 1px solid var(--border);
      border-radius: 2px; padding: 2px 8px;
    }
    .stale-tag {
      font-size: 11px; font-weight: 600;
      background:#fff7ed; color:#c2410c; border:1px solid #fed7aa;
      border-radius: 20px; padding: 2px 9px;
    }
    [data-theme="dark"] .stale-tag { background:#2d1810; border-color:#7c3a14; }
    .last-contact { font-size: 12px; color: var(--muted); margin-left: auto; }

    /* Score bars */
    .score-bars { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
    .score-row {
      display: grid; grid-template-columns: 64px 1fr 32px;
      align-items: center; gap: 8px;
    }
    .score-label { font-size: 11px; color: var(--muted); }
    .score-track {
      height: 5px; background: var(--surface-2); border-radius: 3px;
      border: 1px solid var(--border); overflow: hidden;
    }
    .score-fill { height: 100%; border-radius: 3px; transition: width 0.4s ease; }
    .score-fill.strength { background: var(--accent); }
    .score-fill.health   { background: #22c55e; }
    .score-pct { font-size: 11px; color: var(--muted); text-align: right; }

    /* Quick counts */
    .count-row {
      display: flex; gap: 0;
      border: 1px solid var(--border); border-radius: var(--radius);
      overflow: hidden;
    }
    .count-cell {
      flex: 1; padding: 8px 10px; text-align: center;
      border-right: 1px solid var(--border);
    }
    .count-cell:last-child { border-right: none; }
    .count-val { font-size: 18px; font-weight: 700; line-height: 1; }
    .count-lbl { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.4px; margin-top: 2px; }

    /* ── Activity chart ───────────────────────────────────── */
    .chart-wrap { margin-bottom: 14px; }
    .chart-header {
      display: flex; justify-content: space-between; align-items: center;
      margin-bottom: 8px;
    }
    .chart-legend { display: flex; gap: 10px; }
    .chart-legend-item { display: flex; align-items: center; gap: 4px; font-size: 10px; color: var(--muted); }
    .legend-dot { width: 8px; height: 8px; border-radius: 2px; }
    .activity-chart {
      display: flex; align-items: flex-end; gap: 3px; height: 44px;
    }
    .ac-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 2px; }
    .ac-bar {
      width: 100%; border-radius: 2px 2px 0 0;
      background: var(--accent); opacity: 0.7; min-height: 2px;
      transition: opacity 0.15s; cursor: default;
    }
    .ac-bar:hover { opacity: 1; }
    .ac-bar.has-1on1 { background: #22c55e; }
    .ac-labels {
      display: flex; gap: 3px; margin-top: 4px;
    }
    .ac-labels span {
      flex: 1; font-size: 9px; color: var(--muted);
      text-align: center; overflow: hidden;
    }

    /* ── Profile tab ──────────────────────────────────────── */
    .field-list { display: flex; flex-direction: column; gap: 0; }
    .field-row {
      display: flex; align-items: baseline; gap: 10px;
      padding: 7px 0;
      border-bottom: 1px solid var(--border);
      font-size: 13px;
    }
    .field-row:last-child { border-bottom: none; }
    .field-label { font-family: Menlo, Monaco, 'Courier New', monospace; width: 72px; flex-shrink: 0; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #999999; padding-top: 2px; }
    .field-value { color: var(--text); word-break: break-word; flex: 1; }
    .field-value a { color: var(--accent); text-decoration: none; }
    .field-value a:hover { text-decoration: underline; }

    /* Edit form */
    .edit-form { display: flex; flex-direction: column; gap: 10px; }
    .form-field { display: flex; flex-direction: column; gap: 4px; }
    .form-label { font-family: Menlo, Monaco, 'Courier New', monospace; font-size: 9px; font-weight: 700; color: #999999; text-transform: uppercase; letter-spacing: 0.14em; }
    .form-input, .form-textarea {
      padding: 7px 10px;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      font-size: 13px; font-family: inherit;
      background: var(--surface-2);
      color: var(--text); outline: none;
    }
    .form-input:focus, .form-textarea:focus { border-color: var(--accent); background: var(--surface); }
    .form-textarea { min-height: 60px; resize: vertical; }
    .form-actions { display: flex; gap: 7px; margin-top: 2px; }

    /* enrichment */
    .enrich-status-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .enrich-badge {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 20px;
      font-size: 11px; font-weight: 500; border: 1px solid;
    }
    .enrich-badge.found    { background:#dcfce7; border-color:#86efac; color:#15803d; }
    .enrich-badge.low      { background:#fef9c3; border-color:#fde047; color:#713f12; }
    .enrich-badge.notfound { background:var(--surface-2); border-color:var(--border); color:var(--muted); }
    .enrich-group { display: flex; gap: 5px; }
    .enrich-context-input {
      width: 100%; padding: 6px 10px;
      border: 1px solid var(--border); border-radius: var(--radius);
      font-size: 12px; background: var(--surface-2); color: var(--text);
      margin-top: 8px;
    }
    .enrich-context-input::placeholder { color: var(--muted); }
    .enrich-context-input:focus { outline: none; border-color: var(--accent); background: var(--surface); }
    .query-label { font-size: 11px; color: var(--muted); margin: 5px 0 2px; }
    .query-label code { background: var(--surface-2); border: 1px solid var(--border); border-radius: 3px; padding: 1px 4px; font-family: monospace; }
    .suggestion-row { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-top: 1px solid var(--surface-2); font-size: 13px; }
    .suggestion-label { color: var(--muted); width: 72px; flex-shrink: 0; font-size: 11px; }
    .suggestion-val { flex: 1; word-break: break-word; }
    .headline-text { font-size: 12px; color: var(--muted); font-style: italic; margin-top: 8px; line-height: 1.5; padding-top: 8px; border-top: 1px solid var(--surface-2); }

    /* ── Email tab ────────────────────────────────────────── */
    .email-body-box {
      background: var(--surface-2);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 10px 12px;
      margin-bottom: 10px;
    }
    .email-body-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--muted); margin-bottom: 4px; }
    .email-body-text {
      font-size: 12px; color: var(--text);
      white-space: pre-wrap; word-break: break-word;
      max-height: 160px; overflow-y: auto; line-height: 1.6;
    }
    .email-stat-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px;
    }
    .email-stat-cell {
      background: var(--surface-2); border: 1px solid var(--border);
      border-radius: var(--radius); padding: 8px 10px;
    }
    .email-stat-val { font-size: 18px; font-weight: 700; line-height: 1; }
    .email-stat-lbl { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.3px; margin-top: 2px; }
    .reciprocity-row { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-bottom: 8px; }
    .recip-label { color: var(--muted); flex-shrink: 0; }
    .recip-track { flex: 1; height: 5px; background: var(--border); border-radius: 3px; overflow: hidden; }
    .recip-fill { height: 100%; background: #22c55e; border-radius: 3px; transition: width 0.3s; }
    .subjects-section { margin-top: 8px; }
    .subjects-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--muted); margin-bottom: 5px; }
    .subject-item { font-size: 12px; padding: 3px 0; color: var(--text); display: flex; align-items: baseline; gap: 6px; }
    .subject-item::before { content: "•"; color: var(--muted); font-size: 10px; }
    .date-row { font-size: 12px; color: var(--muted); margin-bottom: 6px; }

    /* ── Timeline tab ─────────────────────────────────────── */
    /* ── LinkedIn messages ───────────────────────────────── */
    .li-msg-card { margin-top: 12px; }
    .li-msg-thread-meta {
      font-size: 11px; color: var(--muted);
      margin-bottom: 10px; display: flex; align-items: center; gap: 6px;
    }
    .li-msg-list { display: flex; flex-direction: column; gap: 8px; }
    .li-msg-row { display: flex; flex-direction: column; max-width: 85%; }
    .li-msg-row.outbound { align-self: flex-end; align-items: flex-end; }
    .li-msg-row.inbound  { align-self: flex-start; align-items: flex-start; }
    .li-msg-meta { font-size: 10px; color: var(--muted); margin-bottom: 3px; }
    .li-msg-bubble {
      padding: 8px 12px; border-radius: 12px;
      font-size: 13px; line-height: 1.45; word-break: break-word;
    }
    .li-msg-row.outbound .li-msg-bubble {
      background: var(--accent); color: #fff; border-bottom-right-radius: 3px;
    }
    .li-msg-row.inbound .li-msg-bubble {
      background: var(--surface-2); border: 1px solid var(--border); color: var(--text);
      border-bottom-left-radius: 3px;
    }
    .li-msg-more {
      font-size: 11px; color: var(--muted); text-align: center;
      padding: 4px 0 2px; cursor: default;
    }
    /* ─────────────────────────────────────────────────────── */
    .meeting-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 2px;
      padding: 11px 14px;
      margin-bottom: 8px;
      box-shadow: none;
    }
    .meeting-title { font-weight: 600; font-size: 14px; }
    .meeting-meta {
      font-size: 12px; color: var(--muted);
      margin-top: 5px; display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
    }
    .badge {
      display: inline-block; background: var(--surface-2);
      border: 1px solid var(--border); border-radius: 2px;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      padding: 1px 6px; font-size: 8px; letter-spacing: 0.1em;
      text-transform: uppercase; color: #888888;
    }
    .badge.high   { background:#dcfce7; border-color:#86efac; color:#15803d; }
    .badge.medium { background:#fef9c3; border-color:#fde047; color:#713f12; }
    .badge.low    { background:#fee2e2; border-color:#fca5a5; color:#7f1d1d; }

    /* ── Buttons ──────────────────────────────────────────── */
    .btn-primary {
      padding: 6px 14px; background: #111111; color: #fff;
      border: none; border-radius: 2px;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 9px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 0.1em;
      cursor: pointer;
    }
    .btn-primary:hover { opacity: 0.82; }
    .btn-primary:disabled { opacity: 0.4; cursor: default; }
    .btn-secondary {
      padding: 6px 12px; background: none; color: #999999;
      border: 1px solid #DDDDDD; border-radius: 2px;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase;
      cursor: pointer;
    }
    .btn-secondary:hover { color: #111111; border-color: #999999; }
    .btn-ghost {
      padding: 4px 10px; background: none; color: #999999;
      border: 1px solid #DDDDDD; border-radius: 2px;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase;
      cursor: pointer;
    }
    .btn-ghost:hover { color: #111111; border-color: #999999; }
    .btn-accept {
      padding: 3px 9px; background: none;
      border: 1px solid var(--strong); border-radius: var(--radius);
      color: var(--strong); font-size: 11px; cursor: pointer; flex-shrink: 0;
    }
    .btn-accept:hover { background: var(--strong); color: #fff; }

    /* ── Utility ──────────────────────────────────────────── */
    .spinner {
      width: 24px; height: 24px;
      border: 2px solid var(--border); border-top-color: var(--accent);
      border-radius: 50%; animation: spin 0.7s linear infinite;
    }
    @keyframes spin { to { transform: rotate(360deg); } }
    .spinner-wrap { display: flex; align-items: center; justify-content: center; padding: 24px; }
    .error-msg { color: #dc3545; font-size: 13px; padding: 10px 0; }
    .empty-msg { color: var(--muted); font-size: 13px; padding: 12px 0; text-align: center; }
    .muted { color: var(--muted); }
    .empty-state { text-align: center; padding: 32px; color: var(--muted); font-size: 13px; }

    /* ── Connect LinkedIn modal ───────────────────────────── */
    #linkedin-modal-backdrop {
      position: fixed; inset: 0;
      background: rgba(13,13,20,0.6);
      backdrop-filter: blur(4px);
      z-index: 400;
      display: flex; align-items: center; justify-content: center;
    }
    #linkedin-modal-backdrop.hidden { display: none; }
    #linkedin-modal {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 12px;
      box-shadow: var(--shadow-md);
      width: 560px; max-width: 95vw;
      max-height: 85vh; overflow-y: auto;
      padding: 24px;
    }
    .li-modal-header {
      display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
      margin-bottom: 16px;
    }
    .li-modal-icon {
      width: 36px; height: 36px; border-radius: 8px;
      background: #0077b5; color: #fff;
      display: flex; align-items: center; justify-content: center;
      font-size: 15px; font-weight: 800; flex-shrink: 0;
      letter-spacing: -2px;
    }
    .li-modal-titles { flex: 1; }
    .li-modal-title { font-size: 16px; font-weight: 700; line-height: 1.3; }
    .li-modal-sub { font-size: 12px; color: var(--muted); margin-top: 3px; line-height: 1.5; }
    .li-modal-close {
      background: none; border: none; cursor: pointer;
      color: var(--muted); font-size: 18px; line-height: 1; padding: 2px;
    }
    .li-modal-close:hover { color: var(--text); }

    /* Two-way notice */
    .li-notice {
      display: flex; gap: 8px; align-items: flex-start;
      background: var(--accent-light); border: 1px solid var(--accent);
      border-radius: var(--radius); padding: 10px 12px;
      margin-bottom: 16px; font-size: 12px; line-height: 1.5;
    }
    [data-theme="dark"] .li-notice { background: #1a1c3a; }
    .li-notice-icon { font-size: 14px; flex-shrink: 0; margin-top: 1px; }

    /* Method tabs */
    .li-tabs {
      display: flex; gap: 4px; border-bottom: 1px solid var(--border);
      margin-bottom: 16px;
    }
    .li-tab {
      padding: 7px 14px; font-size: 13px; font-weight: 500;
      background: none; border: none; cursor: pointer;
      color: var(--muted); border-bottom: 2px solid transparent;
      margin-bottom: -1px; transition: color 0.15s, border-color 0.15s;
    }
    .li-tab:hover { color: var(--text); }
    .li-tab.active { color: #0077b5; border-bottom-color: #0077b5; }

    /* Upload tab */
    .li-drop-zone {
      border: 2px dashed var(--border);
      border-radius: var(--radius);
      padding: 28px;
      text-align: center;
      cursor: pointer;
      transition: border-color 0.15s, background 0.15s;
      margin-bottom: 12px;
    }
    .li-drop-zone:hover, .li-drop-zone.drag-over {
      border-color: #0077b5;
      background: rgba(0,119,181,0.05);
    }
    .li-drop-icon { font-size: 28px; margin-bottom: 8px; }
    .li-drop-text { font-size: 13px; color: var(--muted); }
    .li-drop-text strong { color: #0077b5; cursor: pointer; }
    #li-file-input { display: none; }
    .li-upload-steps {
      font-size: 12px; color: var(--muted); line-height: 1.8;
      background: var(--surface-2); border: 1px solid var(--border);
      border-radius: var(--radius); padding: 10px 14px; margin-bottom: 12px;
    }
    .li-upload-steps ol { padding-left: 16px; margin: 0; }
    .li-upload-steps li { margin-bottom: 2px; }
    .li-upload-steps code {
      background: var(--border); border-radius: 3px;
      padding: 1px 4px; font-size: 11px;
    }

    /* Agent tab */
    .li-agent-section { margin-bottom: 14px; }
    .li-agent-section h4 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--muted); margin-bottom: 8px; }
    .li-agent-step {
      display: flex; gap: 10px; align-items: flex-start;
      padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 12px; line-height: 1.5;
    }
    .li-agent-step:last-child { border-bottom: none; }
    .li-agent-num {
      width: 20px; height: 20px; border-radius: 50%;
      background: var(--surface-2); border: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      font-size: 10px; font-weight: 700; color: var(--muted); flex-shrink: 0; margin-top: 1px;
    }
    .li-code-block {
      background: var(--surface-2); border: 1px solid var(--border);
      border-radius: var(--radius); padding: 10px 12px;
      font-family: 'SF Mono', 'Consolas', monospace; font-size: 11px;
      line-height: 1.6; overflow-x: auto; margin: 6px 0;
      color: var(--text);
    }
    .li-agent-warn {
      background: #fff7ed; border: 1px solid #fed7aa;
      border-radius: var(--radius); padding: 10px 12px;
      font-size: 11px; color: #9a3412; line-height: 1.5; margin-top: 10px;
    }
    [data-theme="dark"] .li-agent-warn { background: #2d1810; border-color: #7c2d12; color: #fdba74; }

    /* Progress + results */
    .li-progress {
      background: var(--surface-2); border: 1px solid var(--border);
      border-radius: var(--radius); padding: 14px; margin-bottom: 14px;
    }
    .li-progress-label { font-size: 12px; color: var(--muted); margin-bottom: 6px; }
    .li-progress-bar-wrap {
      height: 6px; background: var(--border); border-radius: 3px; overflow: hidden; margin-bottom: 10px;
    }
    .li-progress-bar {
      height: 100%; background: #0077b5; border-radius: 3px;
      width: 0%; transition: width 0.5s;
    }
    .li-progress-bar.indeterminate {
      width: 60%; animation: li-slide 1.2s ease-in-out infinite alternate;
    }
    @keyframes li-slide { from { margin-left: 0%; } to { margin-left: 40%; } }
    .li-result-section { margin-bottom: 14px; }
    .li-result-header {
      font-size: 11px; font-weight: 700; text-transform: uppercase;
      letter-spacing: 0.5px; color: var(--muted); margin-bottom: 8px;
    }
    .li-stat-row { display: flex; gap: 8px; margin-bottom: 10px; }
    .li-stat {
      flex: 1; background: var(--surface-2); border: 1px solid var(--border);
      border-radius: var(--radius); padding: 10px 10px 8px; text-align: center;
    }
    .li-stat-val { font-size: 22px; font-weight: 700; line-height: 1; color: #0077b5; }
    .li-stat-lbl { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.3px; margin-top: 3px; }
    .li-stat-sub { font-size: 10px; color: var(--muted); margin-top: 1px; }
    .li-unresolved-item {
      background: var(--surface-2); border: 1px solid var(--border);
      border-radius: var(--radius); padding: 10px 12px; margin-bottom: 8px;
    }
    .li-unresolved-name { font-size: 13px; font-weight: 600; margin-bottom: 4px; }
    .li-unresolved-url { font-size: 11px; color: var(--muted); margin-bottom: 8px; }
    .li-candidate-list { display: flex; flex-direction: column; gap: 5px; }
    .li-candidate {
      display: flex; align-items: center; gap: 8px; font-size: 12px;
      padding: 5px 8px; background: var(--surface); border: 1px solid var(--border);
      border-radius: 6px;
    }
    .li-candidate-name { flex: 1; font-weight: 500; }
    .li-candidate-org { color: var(--muted); font-size: 11px; }
    .li-candidate-sim { font-size: 10px; color: var(--muted); }
    .li-stub-badge {
      display: inline-flex; align-items: center; gap: 3px;
      font-size: 10px; font-weight: 600;
      background: #e0f0ff; color: #1d6fa5;
      border: 1px solid #b3d9f7; border-radius: 10px;
      padding: 1px 7px; margin-left: 5px;
    }
    [data-theme="dark"] .li-stub-badge { background: #0f2236; border-color: #1d6fa5; }
    #li-last-import { font-size: 11px; color: var(--muted); text-align: center; margin-top: 8px; }

    /* ── Left panel top tabs ──────────────────────────────── */
    #panel-tabs {
      display: flex;
      border-bottom: 1px solid var(--border);
      padding: 0 4px;
      flex-shrink: 0;
      background: var(--surface);
    }
    .panel-tab {
      flex: 1;
      padding: 10px 6px;
      font-family: Menlo, Monaco, 'Courier New', monospace;
      font-size: 8px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: #999999;
      background: none;
      border: none;
      border-bottom: 2px solid transparent;
      cursor: pointer;
      white-space: nowrap;
      transition: color 0.15s;
      margin-bottom: -1px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
    }
    .panel-tab:hover { color: #555555; }
    .panel-tab.active { color: #111111; border-bottom-color: #111111; }
    .panel-tab.active-cold { color: #d97706; border-bottom-color: #d97706; }

    /* Tab count badge */
    .tab-count {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 16px;
      height: 16px;
      padding: 0 4px;
      border-radius: 8px;
      font-size: 10px;
      font-weight: 700;
      background: var(--surface-2);
      color: var(--muted);
      border: 1px solid var(--border);
    }
    .panel-tab.active .tab-count { background: #F4F3EF; color: #111111; border-color: #DDDDDB; }
    .panel-tab.active-cold .tab-count { background: #fef3c7; color: #92400e; border-color: #fcd34d; }
    [data-theme="dark"] .panel-tab { color: var(--muted); }
    [data-theme="dark"] .panel-tab:hover { color: var(--text); }
    [data-theme="dark"] .panel-tab.active {
      color: var(--text);
      border-bottom-color: var(--accent);
    }
    [data-theme="dark"] .panel-tab.active .tab-count {
      background: var(--surface-2);
      color: var(--text);
      border-color: var(--border);
    }
    [data-theme="dark"] .panel-tab.active-cold .tab-count {
      background: #2d1f00;
      color: #fcd34d;
      border-color: #b45309;
    }

    /* Cold outreach item badge */
    .cold-badge {
      display: inline-block;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: 0.03em;
      background: #fef3c7;
      color: #92400e;
      border: 1px solid #fcd34d;
      border-radius: 10px;
      padding: 1px 6px;
      vertical-align: middle;
      margin-left: 4px;
    }
    [data-theme="dark"] .cold-badge { background: #2d1f00; border-color: #b45309; color: #fcd34d; }

    /* Cold outreach dashboard card accent */
    .feature-card.cold-card .fc-icon { background: #fef3c7; color: #d97706; }
    .feature-card.cold-card:hover { border-color: #d97706; }
    .feature-card.cold-card .fc-stat { color: #d97706; }

    /* Cold outreach person card tint in list */
    .person-item.cold-item:hover { background: #fffbeb; }
    [data-theme="dark"] .person-item.cold-item:hover { background: #1e1800; }
    .person-item.cold-item.selected { background: #fef3c7; border-color: #d97706; }
    [data-theme="dark"] .person-item.cold-item.selected { background: #2d1f00; border-color: #b45309; }
    .person-item.cold-item.selected .p-bar { background: #d97706; }

    /* Cold outreach priority pill in list subline */
    .cold-priority-high   { color: #dc2626; font-weight: 600; }
    .cold-priority-medium { color: #d97706; font-weight: 600; }
    .cold-priority-low    { color: var(--muted); }

    /* Empty state for cold outreach */
    .cold-empty-state {
      text-align: center;
      padding: 36px 20px;
      color: var(--muted);
    }
    .cold-empty-icon { font-size: 32px; margin-bottom: 10px; opacity: 0.5; }
    .cold-empty-title { font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
    .cold-empty-sub { font-size: 12px; line-height: 1.6; }

    /* ── Dashboard ──────────────────────────────────────── */
    #detail-placeholder {
      display: flex;
      flex-direction: column;
      flex: 1;
      overflow-y: auto;
      padding: 0;
      gap: 0;
    }
    #dash-layout {
      display: flex;
      flex-direction: row;
      flex: 1;
      min-height: 0;
    }
    #dash-main {
      flex: 1;
      min-width: 0;
      position: relative;
      background: var(--bg);
    }
    #dash-network-frame {
      width: 100%;
      height: 100%;
      display: block;
      border: none;
      background: transparent;
    }
    #dash-sidebar {
      width: 240px;
      flex-shrink: 0;
      background: var(--surface);
      border-left: 1px solid var(--border);
      overflow-y: auto;
      padding: 16px 14px;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .dash-greeting {
      font-size: 15px;
      font-weight: 700;
      color: var(--text);
    }
    .dash-section-title {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--muted);
      margin-bottom: 8px;
    }
    .dash-health-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 4px 0;
      font-size: 12px;
    }
    .dash-health-dot {
      width: 7px; height: 7px;
      border-radius: 50%;
      flex-shrink: 0;
      margin-right: 7px;
    }
    .dash-health-label { color: var(--text); flex: 1; }
    .dash-health-count { font-weight: 600; color: var(--text); }
    .dash-fu-item {
      padding: 10px 12px;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      cursor: pointer;
      background: var(--bg);
      transition: border-color 0.15s, background 0.15s;
    }
    .dash-fu-item:hover { border-color: var(--accent); background: var(--accent-light); }
    .dash-fu-name { font-size: 12px; font-weight: 600; color: var(--text); }
    .dash-fu-meta { font-size: 11px; color: var(--muted); margin-top: 2px; }

    /* ── In-app toast (minor feedback) ───────────────────────────────────── */
    .bn-popover {
      position: fixed; z-index: 9999;
      background: #1a0506; border: 1px solid #7f1d1d;
      border-radius: 8px; padding: 8px 12px;
      box-shadow: 0 4px 16px rgba(127,29,29,0.25);
      font-size: 11px; color: #fca5a5; line-height: 1.5;
      opacity: 0; transform: translateY(-4px);
      transition: opacity 0.15s, transform 0.15s;
      pointer-events: none; max-width: 240px;
    }
    .bn-popover.visible { opacity: 1; transform: translateY(0); }
    .bn-popover strong { color: #fecaca; font-weight: 600; }
    [data-theme="light"] .bn-popover {
      background: #fef2f2; border-color: #f87171; color: #991b1b;
      box-shadow: 0 4px 16px rgba(248,113,113,0.2);
    }
    [data-theme="light"] .bn-popover strong { color: #7f1d1d; }

    #toast {
      position: fixed; bottom: 28px; left: 50%; transform: translateX(-50%);
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 20px; padding: 7px 16px; font-size: 12px; color: var(--muted);
      z-index: 9999; opacity: 0; transition: opacity 0.18s; white-space: nowrap;
      pointer-events: none;
    }
    #toast.error { border-color: #e5534b; color: #e5534b; }
    #toast.on { opacity: 1; }

    /* ── Notification banner (bulk operation results) ─────────────────────── */
    #notify-banner {
      position: fixed; top: 68px; right: 20px;
      background: var(--surface); border: 1px solid var(--border);
      border-radius: var(--radius); box-shadow: var(--shadow-md);
      padding: 14px 16px 14px 14px; width: 280px;
      display: flex; align-items: flex-start; gap: 10px;
      z-index: 9999;
      transform: translateX(320px); opacity: 0;
      transition: transform 0.22s ease, opacity 0.22s ease;
      pointer-events: none;
    }
    #notify-banner.on { transform: translateX(0); opacity: 1; pointer-events: auto; }
    #notify-banner.error .nb-icon { color: #e5534b; }
    #notify-banner.error { border-color: #e5534b; }
    .nb-icon { font-size: 16px; flex-shrink: 0; margin-top: 1px; color: var(--strong); }
    .nb-body { flex: 1; }
    .nb-title { font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.3; }
    .nb-sub   { font-size: 12px; color: var(--muted); margin-top: 2px; }
    .nb-close {
      background: none; border: none; cursor: pointer; color: var(--muted);
      font-size: 14px; padding: 0; line-height: 1; flex-shrink: 0;
    }
    .nb-close:hover { color: var(--text); }

    /* ── Discovery panel ──────────────────────────────────── */
    #discovery-panel {
      display: none;
      flex-direction: column;
      flex: 1 1 0%;
      min-height: 0;
      min-width: 0;
      overflow: hidden;
      background: var(--bg);
    }
    #discovery-panel.open {
      display: flex;
    }

    /* ── CRON outreach panel (admin) ────────────────────── */
    #cron-outreach-panel {
      display: none;
      flex-direction: column;
      flex: 1 1 0%;
      min-height: 0;
      min-width: 0;
      overflow: hidden;
      background: var(--bg);
    }
    #cron-outreach-panel.open {
      display: flex;
    }
    .co-panel-inner {
      flex: 1;
      overflow: auto;
      padding: 16px 20px 48px;
      max-width: 960px;
      margin: 0 auto;
      width: 100%;
    }
    .co-toolbar {
      display: flex;
      align-items: flex-start;
      gap: 16px;
      margin-bottom: 20px;
    }
    .co-back {
      flex-shrink: 0;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 8px 12px;
      font-size: 13px;
      cursor: pointer;
      color: var(--text);
    }
    .co-back:hover { border-color: var(--muted); }
    .co-title {
      font-family: 'The Seasons', Georgia, serif;
      font-size: 24px;
      font-weight: 400;
      margin: 0 0 6px;
      color: var(--text);
    }
    .co-sub { margin: 0; font-size: 13px; color: var(--muted); max-width: 640px; line-height: 1.45; }
    .co-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    @media (max-width: 820px) {
      .co-grid { grid-template-columns: 1fr; }
    }
    .co-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 16px 18px;
    }
    .co-card.co-wide { margin-top: 16px; }
    .co-h2 { font-size: 14px; font-weight: 600; margin: 0 0 12px; color: var(--text); }
    .co-label { display: block; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 6px; }
    .co-textarea, .co-input {
      width: 100%;
      box-sizing: border-box;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      background: var(--bg);
      color: var(--text);
      font-family: inherit;
      font-size: 13px;
      padding: 10px 12px;
    }
    .co-textarea { resize: vertical; min-height: 120px; line-height: 1.45; }
    .co-row { display: flex; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
    .co-field { flex: 1; min-width: 140px; }
    .co-field-narrow { max-width: 120px; flex: 0 0 auto; }
    .co-primary, .co-secondary {
      margin-top: 14px;
      padding: 9px 16px;
      border-radius: var(--radius);
      font-size: 13px;
      font-weight: 600;
      cursor: pointer;
      border: 1px solid transparent;
    }
    .co-primary {
      background: var(--text);
      color: var(--bg);
    }
    .co-primary:hover { opacity: 0.92; }
    .co-secondary {
      background: var(--surface);
      color: var(--text);
      border-color: var(--border);
    }
    .co-btn-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
    .co-btn-row .co-primary, .co-btn-row .co-secondary { margin-top: 0; }
    .co-muted { font-size: 12px; color: var(--muted); margin: 0 0 12px; line-height: 1.45; }
    .co-msg { font-size: 12px; margin-top: 10px; min-height: 1.2em; color: var(--muted); }
    .co-msg.co-err { color: #c0392b; }
    .co-msg.co-ok { color: var(--strong); }
    .co-batches { display: flex; flex-direction: column; gap: 20px; }
    .co-batch {
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 16px;
      background: var(--bg);
    }
    .co-batch-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
    .co-batch-company { font-weight: 600; font-size: 16px; color: var(--text); }
    .co-batch-date { font-size: 12px; color: var(--muted); }
    .co-batch-status { font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; padding: 3px 8px; border-radius: 4px; background: var(--surface); color: var(--muted); }
    .co-batch-status.co-status-completed { background: #d1fae5; color: #065f46; }
    .co-batch-status.co-status-failed { background: #fee2e2; color: #991b1b; }
    .co-batch-status.co-status-running { background: #fef3c7; color: #92400e; }
    [data-theme="dark"] .co-batch-status.co-status-completed { background: #064e3b; color: #a7f3d0; }
    [data-theme="dark"] .co-batch-status.co-status-failed { background: #7f1d1d; color: #fecaca; }
    [data-theme="dark"] .co-batch-status.co-status-running { background: #78350f; color: #fde68a; }
    .co-batch-query { font-size: 11px; color: var(--muted); margin-bottom: 12px; font-style: italic; }
    .co-batch-items { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
    .co-person { font-size: 13px; }
    .co-person a { color: var(--link, #3b82f6); }
    .co-email-preview { font-size: 11px; color: var(--muted); margin-top: 4px; line-height: 1.35; }
    .co-email-body {
      margin-top: 8px;
      font-size: 11px;
      font-family: ui-monospace, monospace;
      white-space: pre-wrap;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 6px;
      padding: 10px;
      max-height: 220px;
      overflow: auto;
    }
    .co-cards-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 14px;
      margin-top: 12px;
    }
    .co-person-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 14px;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .co-person-card .disc-card-top { display: flex; align-items: flex-start; gap: 12px; }
    .co-person-card .disc-avatar-ring { flex-shrink: 0; }
    .co-person-card .disc-card-avatar { width: 48px; height: 48px; border-radius: 50%; overflow: hidden; background: var(--border); display: flex; align-items: center; justify-content: center; }
    .co-person-card .disc-avatar-img { width: 100%; height: 100%; object-fit: cover; }
    .co-person-card .disc-avatar-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; color: var(--muted); background: var(--bg); }
    .co-person-card .disc-card-identity { flex: 1; min-width: 0; }
    .co-person-card .disc-card-name { font-weight: 600; font-size: 14px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .co-person-card .disc-card-role { font-size: 12px; color: var(--muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .co-person-card .disc-card-footer { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
    .co-person-card .disc-card-linkedin { font-size: 11px; color: var(--link, #3b82f6); text-decoration: none; }
    .co-person-card .disc-card-linkedin:hover { text-decoration: underline; }
    .co-person-card .disc-card-bd { font-size: 12px; color: var(--text); }
    .co-person-card .disc-bd-headline { font-weight: 500; margin-bottom: 4px; }
    .co-person-card .disc-bd-meta { font-size: 11px; color: var(--muted); margin-bottom: 4px; }
    .co-person-card .disc-bd-about { font-size: 11px; color: var(--muted); line-height: 1.4; margin-bottom: 4px; }
    .co-person-card .disc-bd-exp { font-size: 11px; color: var(--muted); }
    .co-person-card .disc-card-actions { margin-top: 4px; }
    .co-person-card .disc-card-email-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
    .co-person-card .disc-email-badge { font-size: 10px; padding: 2px 5px; border-radius: 4px; font-weight: 600; }
    .co-person-card .disc-email-badge.verified { background: #d1fae5; color: #065f46; }
    .co-person-card .disc-email-badge.guessed { background: #fef3c7; color: #92400e; }
    [data-theme="dark"] .co-person-card .disc-email-badge.verified { background: #064e3b; color: #a7f3d0; }
    [data-theme="dark"] .co-person-card .disc-email-badge.guessed { background: #78350f; color: #fde68a; }
    .co-person-card .disc-email-addr { font-size: 12px; color: var(--link, #3b82f6); text-decoration: none; word-break: break-all; }
    .co-person-card .disc-email-addr:hover { text-decoration: underline; }
    .co-person-card .disc-find-email-btn {
      font-size: 11px;
      padding: 5px 10px;
      border-radius: var(--radius);
      border: 1px solid var(--border);
      background: var(--bg);
      color: var(--text);
      cursor: pointer;
    }
    .co-person-card .disc-find-email-btn:hover { border-color: var(--muted); }
    .co-no-enrich { font-size: 11px; color: var(--muted); font-style: italic; }
    .co-email-section { margin-top: 10px; border-top: 1px solid var(--border); padding-top: 10px; }
    .co-email-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
    .co-email-label { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
    .co-copy-btn {
      font-size: 11px;
      padding: 4px 10px;
      border-radius: var(--radius);
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text);
      cursor: pointer;
      font-weight: 500;
    }
    .co-copy-btn:hover { border-color: var(--muted); }
    .co-copy-btn.co-copied { background: #d1fae5; color: #065f46; border-color: #a7f3d0; }
    [data-theme="dark"] .co-copy-btn.co-copied { background: #064e3b; color: #a7f3d0; border-color: #065f46; }

    /* Search surface */
    #disc-search-surface {
      flex: 1; display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      padding: 0 20px 60px;
      min-height: 340px;
      transition: padding 0.38s cubic-bezier(0.4, 0, 0.2, 1);
    }
    #disc-search-surface.has-results {
      flex: 0 0 auto;
      flex-shrink: 0;
      min-height: auto;
      padding: 10px 20px 12px;
      justify-content: flex-start;
      align-items: center;
      position: sticky;
      top: 0;
      z-index: 12;
      background: var(--bg);
      border-bottom: 1px solid var(--border);
      box-shadow: 0 6px 16px rgba(0,0,0,0.06);
    }
    [data-theme="dark"] #disc-search-surface.has-results {
      box-shadow: 0 6px 20px rgba(0,0,0,0.35);
    }
    .disc-search-eyebrow {
      font-family: var(--mono); font-size: 9px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 0.25em;
      color: var(--meta); margin-bottom: 10px;
      transition: opacity 0.3s;
    }
    #disc-search-surface.has-results .disc-search-eyebrow { display: none; }
    .disc-search-heading {
      font-family: 'The Seasons', Georgia, serif;
      font-size: 28px; font-weight: 400; letter-spacing: 0.01em;
      color: var(--text); margin-bottom: 6px; text-align: center;
      transition: font-size 0.3s;
    }
    #disc-search-surface.has-results .disc-search-heading { display: none; }
    .disc-search-sub {
      font-size: 14px; color: var(--text-2); margin-bottom: 28px;
      text-align: center;
      transition: opacity 0.3s;
    }
    #disc-search-surface.has-results .disc-search-sub { display: none; }

    /* Search box */
    #disc-search-form {
      width: 100%; max-width: 600px; position: relative;
    }
    #disc-search-input {
      width: 100%; height: 62px; padding: 0 130px 0 24px;
      font-size: 15.5px; font-family: inherit; font-weight: 400;
      letter-spacing: -0.4px;
      color: color-mix(in srgb, var(--text) 88%, white 12%);
      background: var(--surface);
      border: 1.5px solid var(--border-2);
      border-radius: 16px;
      outline: none;
      box-shadow: 0 2px 12px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.04),
                  inset 0 1px 2px rgba(0,0,0,0.02);
      transition: border-color 0.2s cubic-bezier(0.4,0,0.2,1),
                  box-shadow 0.2s cubic-bezier(0.4,0,0.2,1);
    }
    #disc-search-input:focus {
      border-color: var(--accent);
      box-shadow: 0 2px 12px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.04),
                  inset 0 1px 2px rgba(0,0,0,0.02), 0 0 0 3.5px rgba(17,17,17,0.07);
    }
    #disc-search-input::placeholder {
      color: rgba(0,0,0,0.34);
      font-weight: 400;
      font-style: normal;
      letter-spacing: -0.1px;
    }
    [data-theme="dark"] #disc-search-input {
      color: color-mix(in srgb, var(--text) 78%, white 22%);
    }
    [data-theme="dark"] #disc-search-input::placeholder {
      color: rgba(255,255,255,0.32);
    }
    .disc-search-tip {
      max-width: 600px;
      width: 100%;
      margin: 11px auto 0;
      padding: 0 10px;
      font-size: 12px;
      line-height: 1.45;
      text-align: center;
      color: var(--muted);
    }
    .disc-search-tip-label {
      font-style: normal;
      font-weight: 600;
      color: var(--text-2);
      margin-right: 0.35em;
    }
    .disc-search-tip-body {
      font-style: italic;
    }
    [data-theme="dark"] .disc-search-tip {
      color: color-mix(in srgb, var(--muted) 70%, white 30%);
    }
    #disc-search-surface.has-results .disc-search-tip { display: none; }
    #disc-search-btn {
      position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
      height: 46px; width: 46px; padding: 0;
      background: var(--accent); color: var(--surface);
      border: none; border-radius: 10px;
      cursor: pointer; display: flex; align-items: center; justify-content: center;
      gap: 7px;
      font-family: 'The Seasons', Georgia, serif;
      font-size: 14px; font-weight: 400; letter-spacing: 0.01em;
      white-space: nowrap;
      transition: opacity 0.15s, transform 0.15s;
    }
    #disc-search-btn:hover { opacity: 0.86; }
    #disc-search-btn:active { transform: translateY(-50%) scale(0.97); }
    #disc-search-btn:disabled { opacity: 0.35; cursor: default; }
    #disc-search-btn svg { width: 14px; height: 14px; flex-shrink: 0; }

    /* Pipeline pills — vertical centered chip UI */
    #disc-pipeline-stages {
      display: none;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      padding: 24px 0 0;
      width: 100%;
      margin: 0 0 20px;
    }
    #disc-pipeline-stages.visible { display: flex; }

    .disc-stage {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      padding: 9px 22px;
      border-radius: 999px;
      font-size: 13px;
      font-weight: 500;
      font-family: inherit;
      color: var(--text-2);
      background: var(--surface-2);
      border: 1px solid var(--border);
      transition: opacity 0.25s ease, border-color 0.25s ease;
      white-space: nowrap;
      min-width: 220px;
      position: relative;
      overflow: hidden;
    }
    .disc-stage[data-status="idle"] { opacity: 0.25; }
    .disc-stage[data-status="running"] {
      opacity: 1;
      border-color: var(--accent);
      color: var(--text);
      background: linear-gradient(
        90deg,
        var(--surface-2) 0%,
        color-mix(in srgb, var(--accent) 12%, var(--surface-2)) 50%,
        var(--surface-2) 100%
      );
      background-size: 250% 100%;
      animation: disc-stage-shimmer 2.2s linear infinite;
    }
    .disc-stage[data-status="done"] {
      opacity: 0.45;
      background: var(--surface-2);
    }
    .disc-stage[data-status="done"] .disc-stage-check { display: inline; }
    .disc-stage-body { display: contents; }
    .disc-stage-detail { display: none; }
    .disc-stage-check { display: none; color: #4ade80; font-size: 12px; }
    .disc-stage-icon { display: none; }
    @keyframes disc-stage-shimmer {
      0%   { background-position: 200% 0; }
      100% { background-position: -200% 0; }
    }
    @keyframes disc-shimmer {
      0%   { background-position: 200% 0; }
      100% { background-position: -200% 0; }
    }

    /* Progress pills below pipeline stages */
    #disc-progress-pills {
      display: flex; flex-direction: column; align-items: center; gap: 5px;
      margin-top: 6px; width: 100%;
    }
    .disc-progress-pill {
      font-family: var(--mono); font-size: 11px; color: var(--muted);
      background: transparent;
      padding: 2px 0;
      animation: disc-pill-in 0.2s cubic-bezier(0.34,1.2,0.64,1) both;
      letter-spacing: 0.02em;
    }
    @keyframes disc-pill-in {
      from { opacity: 0; transform: translateY(4px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    #disc-loading-note {
      font-size: 11px; color: var(--muted);
      font-family: var(--mono); margin-top: 6px; letter-spacing: 0.04em;
      text-align: center;
    }
    /* Card actions: full-width, equal-height CTAs; pinned to bottom of card (row) via margin-top: auto */
    .disc-card-actions {
      margin-top: auto;
      width: 100%;
      padding-top: 10px;
      border-top: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 8px;
      flex-shrink: 0;
    }
    .disc-card-email-row {
      width: 100%;
      min-height: 36px;
      box-sizing: border-box;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      gap: 6px;
    }
    /* Match action strip: light creme, hairline black border, square corners */
    .disc-card-email-row:has(.disc-email-addr),
    .disc-card-email-row:has(.disc-email-none) {
      padding: 6px 10px;
      background: #faf7f0;
      border: 1px solid #0a0a0a;
      border-radius: 2px;
    }
    .disc-card-email-row:has(.disc-email-badge.guessed) {
      background: #f5f3ff;
      border-color: #7c3aed;
    }
    /* Find-email CTA only: single framed control (no outer + inner double box) */
    .disc-card-email-row:has(> .disc-find-email-btn:only-child) {
      padding: 0;
      border: none;
      background: transparent;
    }
    .disc-card-email-row:has(> .disc-find-email-btn:only-child) > .disc-find-email-btn {
      width: 100%;
      min-height: 36px;
    }
    .disc-card-email-row .disc-email-addr {
      flex: 1;
      min-width: 0;
      text-align: center;
    }
    .disc-card-email-row:has(.disc-email-addr) .disc-email-addr {
      color: #0a0a0a;
    }
    [data-theme="dark"] .disc-card-email-row:has(.disc-email-addr) .disc-email-addr {
      color: #f5f2ea;
    }
    .disc-card-actions .disc-find-email-btn,
    .disc-card-email-row > .disc-find-email-btn,
    .disc-card-actions .disc-deep-research-btn {
      width: 100%;
      min-height: 36px;
      padding: 9px 14px;
      font-size: 10px;
      font-family: var(--mono);
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      border-radius: 2px;
      cursor: pointer;
      box-sizing: border-box;
      background: #faf7f0;
      border: 1px solid #0a0a0a;
      color: #0a0a0a;
      transition: background 0.15s, border-color 0.15s, color 0.15s;
    }
    .disc-card-actions .disc-find-email-btn:hover:not(:disabled),
    .disc-card-email-row > .disc-find-email-btn:hover:not(:disabled),
    .disc-card-actions .disc-deep-research-btn:hover:not(:disabled) {
      background: #f3efe6;
    }
    .disc-card-actions .disc-find-email-btn:disabled,
    .disc-card-email-row > .disc-find-email-btn:disabled {
      opacity: 0.5;
      cursor: wait;
    }
    .disc-card-actions .disc-deep-research-btn:disabled {
      opacity: 0.55;
      cursor: wait;
    }
    [data-theme="dark"] .disc-card-email-row:has(.disc-email-addr),
    [data-theme="dark"] .disc-card-email-row:has(.disc-email-none) {
      background: #141413;
      border-color: #e8e4da;
    }
    [data-theme="dark"] .disc-card-email-row:has(.disc-email-badge.guessed) {
      background: #1e1b2e;
      border-color: #6d28d9;
    }
    [data-theme="dark"] .disc-card-email-row:has(> .disc-find-email-btn:only-child) {
      background: transparent;
      border: none;
    }
    [data-theme="dark"] .disc-card-actions .disc-find-email-btn,
    [data-theme="dark"] .disc-card-email-row > .disc-find-email-btn,
    [data-theme="dark"] .disc-card-actions .disc-deep-research-btn {
      background: #141413;
      border: 1px solid #e8e4da;
      color: #f5f2ea;
    }
    [data-theme="dark"] .disc-card-actions .disc-find-email-btn:hover:not(:disabled),
    [data-theme="dark"] .disc-card-email-row > .disc-find-email-btn:hover:not(:disabled),
    [data-theme="dark"] .disc-card-actions .disc-deep-research-btn:hover:not(:disabled) {
      background: #1c1c1a;
    }
    .disc-email-shimmer {
      height: 14px; width: 55%; border-radius: 3px;
      background: linear-gradient(90deg, var(--border) 0%, var(--surface-2) 50%, var(--border) 100%);
      background-size: 200% 100%; animation: disc-shimmer 1.6s infinite;
    }
    .disc-email-badge {
      font-family: var(--mono); font-size: 8px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 0.08em; border-radius: 20px; padding: 2px 5px;
    }
    .disc-email-badge.verified { background: #dcfce7; color: #166534; }
    .disc-email-badge.guessed  { background: #ede9fe; color: #5b21b6; }
    [data-theme="dark"] .disc-email-badge.guessed { background: #2e1064; color: #ddd6fe; }
    .disc-email-addr { font-family: var(--mono); font-size: 11px; color: var(--text-2); min-width: 0; overflow: hidden; text-overflow: ellipsis; }
    .disc-card-email-row:has(.disc-email-badge.guessed) .disc-email-addr { font-size: 13px; }
    .disc-email-link { text-decoration: none; }
    .disc-email-link:hover { text-decoration: underline; }
    .disc-email-more { font-family: var(--mono); font-size: 10px; color: var(--muted); flex-shrink: 0; }
    .disc-email-none { font-family: var(--mono); font-size: 10px; color: var(--hint); }
    .disc-find-email-btn {
      font-family: var(--mono);
      cursor: pointer;
      transition: border-color 0.15s, color 0.15s, box-shadow 0.15s;
    }
    .disc-card-linkedin { font-size: 11px; color: #0077b5; text-decoration: none; font-family: var(--mono); }
    .disc-card-linkedin:hover { text-decoration: underline; }

    /* Avatar on card */
    .disc-avatar-ring { position: relative; flex-shrink: 0; }
    .disc-card-avatar { width: 36px; height: 36px; border-radius: 7px; overflow: hidden; background: var(--surface-2); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; }
    .disc-avatar-placeholder { font-size: 10px; font-weight: 700; color: var(--muted); user-select: none; }
    .disc-avatar-img { width: 100%; height: 100%; object-fit: cover; display: block; }

    /* LinkedIn enrichment spinner ring around avatar */
    .disc-avatar-ring.disc-enriching::after {
      content: '';
      position: absolute; inset: -3px; border-radius: 9px;
      border: 2px solid transparent;
      border-top-color: #0077b5;
      border-right-color: rgba(0, 119, 181, 0.3);
      animation: disc-ring-spin 0.85s linear infinite;
      pointer-events: none;
    }
    @keyframes disc-ring-spin {
      from { transform: rotate(0deg); }
      to   { transform: rotate(360deg); }
    }

    /* Off-target sort flash */
    @keyframes disc-sort-flash {
      0%   { opacity: 1; }
      40%  { opacity: 0.1; }
      100% { opacity: 1; }
    }
    .disc-candidate-card.disc-sorting { animation: disc-sort-flash 0.45s ease both; }

    /* BD enrichment section on card */
    .disc-bd-shimmer { height: 12px; width: 65%; border-radius: 3px; margin-top: 8px; background: linear-gradient(90deg, var(--border) 0%, var(--surface-2) 50%, var(--border) 100%); background-size: 200% 100%; animation: disc-shimmer 1.6s infinite; }
    .disc-bd-loaded { border-top: 1px solid var(--border); margin-top: 8px; padding-top: 8px; display: flex; flex-direction: column; gap: 3px; }
    .disc-bd-headline { font-size: 11px; color: var(--text-2); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .disc-bd-meta { font-size: 10px; color: var(--muted); font-family: var(--mono); }
    .disc-bd-about { font-size: 11px; color: var(--text-2); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .disc-bd-exp { font-size: 10px; color: var(--muted); font-family: var(--mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

    /* Skill chips on card */
    .disc-skills-row { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
    .disc-skill-chip { font-size: 9px; font-family: var(--mono); background: var(--surface-2); border: 1px solid var(--border); border-radius: 20px; padding: 2px 7px; color: var(--text-2); white-space: nowrap; max-width: 120px; overflow: hidden; text-overflow: ellipsis; }
    .disc-skill-chip.disc-cert-chip { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 30%, transparent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
    .disc-skill-chip.disc-lang-chip { color: var(--muted); font-style: italic; }

    /* Modal sections */
    .disc-modal-skills-wrap { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
    .disc-modal-skill-tag { font-size: 10px; font-family: var(--mono); background: var(--surface-2); border: 1px solid var(--border); border-radius: 20px; padding: 3px 9px; color: var(--text-2); }
    .disc-modal-cert-row { display: flex; flex-direction: column; gap: 5px; margin-top: 6px; }
    .disc-modal-cert { display: flex; flex-direction: column; gap: 1px; padding: 6px 8px; background: var(--surface-2); border-radius: 6px; border: 1px solid var(--border); }
    .disc-modal-cert-name { font-size: 12px; font-weight: 600; color: var(--text); }
    .disc-modal-cert-meta { font-size: 10px; color: var(--muted); font-family: var(--mono); }
    .disc-modal-lang-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
    .disc-modal-lang-tag { font-size: 11px; font-family: var(--mono); color: var(--text-2); background: var(--surface-2); border: 1px solid var(--border); border-radius: 4px; padding: 3px 8px; }
    .disc-modal-lang-tag span { font-size: 9px; color: var(--muted); margin-left: 4px; }
    .disc-modal-vol-row { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; }
    .disc-modal-site-list { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
    .disc-modal-site-link { font-size: 11px; color: var(--accent); font-family: var(--mono); text-decoration: none; word-break: break-all; }
    .disc-modal-site-link:hover { text-decoration: underline; }

    /* Off-target card */
    .disc-candidate-card.disc-off-target { opacity: 0.35; transition: opacity 0.3s ease; }
    .disc-candidate-card.disc-off-target:hover { opacity: 1; }
    .disc-candidate-card.disc-verifying::before { content: ''; position: absolute; inset: 0; border-radius: 10px; backdrop-filter: blur(1.5px); -webkit-backdrop-filter: blur(1.5px); background: color-mix(in srgb, var(--bg) 50%, transparent); z-index: 2; pointer-events: none; }
    .disc-candidate-card.disc-verifying::after { content: 'Validating…'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 10px; font-family: var(--mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); z-index: 3; pointer-events: none; white-space: nowrap; }
    .disc-confidence-dot.off-target { background: #eab308 !important; }

    /* Show-more tile: one grid cell, same width as candidate cards */
    .disc-show-more-card {
      border: 1px dashed var(--border);
      border-radius: 10px;
      padding: 14px 15px;
      box-sizing: border-box;
      min-height: 200px;
      height: 100%;
      align-self: stretch;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      gap: 10px;
      cursor: pointer;
      color: var(--muted);
      font-family: var(--mono);
      background: var(--surface);
      box-shadow: 0 1px 3px rgba(0,0,0,0.04);
      transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
      animation: disc-cardIn 0.38s cubic-bezier(0.34,1.2,0.64,1) both;
      user-select: none;
    }
    .disc-show-more-card:hover {
      border-color: var(--accent);
      color: var(--text);
      background: var(--surface-2);
      box-shadow: 0 4px 14px rgba(0,0,0,0.08);
    }
    [data-theme="dark"] .disc-show-more-card {
      box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    }
    [data-theme="dark"] .disc-show-more-card:hover {
      box-shadow: 0 4px 18px rgba(0,0,0,0.35);
    }
    .disc-show-more-chevron {
      font-size: 18px;
      line-height: 1;
      opacity: 0.65;
    }
    .disc-show-more-title {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--text-2);
      line-height: 1.4;
    }
    .disc-show-more-sub {
      font-weight: 400;
      font-size: 10px;
      letter-spacing: 0.04em;
      text-transform: none;
      opacity: 0.8;
      line-height: 1.45;
      max-width: 100%;
    }

    /* Experience / education in modal */
    .disc-exp-row { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid var(--border); }
    .disc-exp-row:first-of-type { border-top: none; }
    .disc-exp-logo { width: 36px; height: 36px; border-radius: 6px; object-fit: contain; background: var(--surface-2); border: 1px solid var(--border); flex-shrink: 0; }
    .disc-exp-logo-placeholder { width: 36px; height: 36px; border-radius: 6px; background: var(--surface-2); border: 1px solid var(--border); flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; color: var(--muted); }
    .disc-exp-content { flex: 1; min-width: 0; }
    .disc-exp-title { font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.4; }
    .disc-exp-company { font-size: 11px; color: var(--muted); font-family: var(--mono); margin-top: 2px; }
    .disc-exp-meta { font-size: 10px; color: var(--hint); font-family: var(--mono); margin-top: 2px; }
    .disc-exp-desc { font-size: 11px; color: var(--text-2); margin-top: 4px; line-height: 1.5; }

    /* About in modal */
    .disc-modal-about { font-size: 12px; color: var(--text-2); line-height: 1.65; margin-top: 6px; }

    /* Relevance warning */
    .disc-relevance-warning { font-size: 11px; color: #c2410c; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 6px; padding: 8px 10px; margin-top: 8px; }

    /* Modal email section */
    #disc-modal-email-section .disc-modal-find-email-wrap { margin-top: 10px; }
    #disc-modal-email-section .disc-modal-find-email-wrap .disc-find-email-btn {
      width: auto;
      min-height: 32px;
      padding: 7px 14px;
      font-size: 10px;
      font-family: var(--mono);
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      border-radius: 2px;
      cursor: pointer;
      background: var(--surface-2);
      border: 1px solid var(--border);
      color: var(--text);
    }
    #disc-modal-email-section .disc-modal-find-email-wrap .disc-find-email-btn:hover:not(:disabled) {
      border-color: var(--text-2);
    }
    #disc-modal-email-section .disc-modal-find-email-wrap .disc-find-email-btn:disabled {
      opacity: 0.5;
      cursor: wait;
    }
    .disc-modal-guesses { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
    .disc-modal-email-row {
      display: flex; justify-content: space-between; align-items: center;
      font-family: var(--mono); font-size: 13px; color: var(--text-2);
      padding: 8px 10px; border-radius: 6px; background: var(--surface-2);
    }
    .disc-modal-guess {
      display: flex; justify-content: space-between; align-items: center;
      font-family: var(--mono); font-size: 14px; color: var(--text);
      padding: 10px 12px; border-radius: 8px;
      background: #f5f3ff; border: 1px solid #c4b5fd;
    }
    [data-theme="dark"] .disc-modal-guess {
      background: #1e1b2e;
      border-color: #5b21b6;
      color: #f5f3ff;
    }
    .disc-copy-btn {
      background: var(--surface); border: 1px solid var(--border); border-radius: 6px;
      font-size: 9px; color: var(--muted); cursor: pointer; padding: 2px 5px;
      font-family: var(--mono); flex-shrink: 0; margin-left: 8px;
    }
    .disc-copy-btn--icon {
      display: inline-flex; align-items: center; justify-content: center;
      min-width: 34px; min-height: 34px; padding: 0; margin-left: 10px;
      border-radius: 8px;
      color: var(--text-2);
    }
    .disc-copy-btn--icon .disc-copy-svg { display: block; }
    .disc-copy-btn--icon:hover { color: var(--text); border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
    .disc-copy-btn:hover { color: var(--text); border-color: var(--border-2); }

    /* Company card */
    #disc-company-cards { margin-bottom: 10px; display: flex; flex-direction: column; gap: 6px; }
    .disc-company-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 8px;
      padding: 12px 14px;
      box-shadow: 0 1px 3px rgba(0,0,0,0.04);
      animation: disc-cardIn 0.32s cubic-bezier(0.34, 1.2, 0.64, 1) both;
    }
    .disc-company-header {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 6px;
    }
    .disc-company-initial {
      width: 28px; height: 28px; border-radius: 6px;
      background: var(--surface-2); border: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      font-size: 12px; font-weight: 700; color: var(--text-2);
      flex-shrink: 0;
      overflow: hidden;
    }
    .disc-company-initial img { width: 100%; height: 100%; object-fit: contain; border-radius: 5px; }
    .disc-company-name { font-size: 13px; font-weight: 700; color: var(--text); }
    .disc-company-tagline { font-size: 11px; color: var(--text-2); margin-top: 1px; }
    .disc-company-pills { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
    .disc-company-pill {
      font-size: 10px; font-family: var(--mono); color: var(--text-2);
      background: var(--surface-2); border-radius: 4px; padding: 2px 6px;
    }
    .disc-company-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
    .disc-company-link { font-size: 10px; font-family: var(--mono); color: var(--muted); text-decoration: none; }
    .disc-company-link:hover { color: var(--text); text-decoration: underline; }
    .disc-company-news { margin-top: 8px; border-top: 1px solid var(--border); padding-top: 8px; }
    .disc-company-news-label { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); margin-bottom: 5px; font-family: var(--mono); }
    .disc-news-item { padding: 3px 0; }
    .disc-news-item + .disc-news-item { border-top: 1px solid var(--border); }
    .disc-news-title a { font-size: 11px; color: var(--text); font-weight: 500; line-height: 1.4; text-decoration: none; }
    .disc-news-title a:hover { text-decoration: underline; }
    .disc-news-meta { font-size: 10px; font-family: var(--mono); color: var(--muted); margin-top: 1px; }
    .disc-company-logo { display: none; }
    .disc-company-meta { all: unset; }

    /* Results area */
    #disc-results-area {
      width: 100%;
      padding: 10px 16px 60px;
      display: none;
      opacity: 0;
      transition: opacity 0.45s cubic-bezier(0.4,0,0.2,1);
    }
    #disc-results-area.loading { display: block; }
    #disc-results-area.visible { display: block; opacity: 1; }
    .disc-results-header {
      display: flex; align-items: baseline; justify-content: space-between;
      margin-bottom: 10px; padding: 0 2px;
    }
    .disc-results-count {
      font-family: var(--mono); font-size: 9px; font-weight: 700;
      letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted);
    }
    .disc-results-query {
      font-size: 12px; color: var(--hint);
    }

    .disc-candidates-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      width: 100%;
      align-items: stretch;
    }
    /* Responsive: 3 cols when main column narrows past ~860px */
    @media (max-width: 1100px) { .disc-candidates-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
    @media (max-width: 780px)  { .disc-candidates-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (max-width: 640px)  { .disc-candidates-grid { grid-template-columns: 1fr; } }

    /* Candidate card */
    .disc-candidate-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 14px 15px;
      height: 100%;
      box-sizing: border-box;
      display: flex; flex-direction: column; gap: 7px;
      animation: disc-cardIn 0.38s cubic-bezier(0.34, 1.2, 0.64, 1) both;
      transition: border-color 0.22s cubic-bezier(0.4,0,0.2,1),
                  box-shadow 0.22s cubic-bezier(0.4,0,0.2,1),
                  transform 0.22s cubic-bezier(0.4,0,0.2,1);
      cursor: pointer;
      box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 4px 14px rgba(0,0,0,0.07),
                  0 0 0 0.5px rgba(0,0,0,0.03);
      position: relative;
    }
    .disc-candidate-card:hover {
      border-color: rgba(17,17,17,0.15);
      box-shadow: 0 6px 20px rgba(0,0,0,0.12), 0 14px 36px rgba(0,0,0,0.08),
                  0 2px 5px rgba(0,0,0,0.05), 0 0 0 0.5px rgba(0,0,0,0.04);
      transform: translateY(-4px);
    }
    [data-theme="dark"] .disc-candidate-card:hover {
      border-color: rgba(255,255,255,0.15);
      box-shadow: 0 6px 22px rgba(0,0,0,0.42), 0 14px 36px rgba(0,0,0,0.28),
                  0 2px 5px rgba(0,0,0,0.2);
    }

    /* Candidate modal */
    #disc-modal {
      display: none; position: fixed; inset: 0; z-index: 200;
      align-items: center; justify-content: center;
    }
    #disc-modal.open { display: flex; }
    #disc-modal-backdrop {
      position: absolute; inset: 0; background: rgba(0,0,0,0.45);
      backdrop-filter: blur(2px);
    }
    #disc-modal-box {
      position: relative; z-index: 1;
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 14px; padding: 22px 24px 24px;
      width: 92%; max-width: min(1120px, calc(100vw - 32px));
      max-height: min(90vh, 920px);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      box-shadow: 0 12px 40px rgba(0,0,0,0.2), 0 4px 12px rgba(0,0,0,0.1);
    }
    #disc-modal-body-split {
      display: grid;
      grid-template-columns: 1fr min(340px, 38%);
      grid-template-rows: minmax(0, 1fr);
      gap: 18px;
      align-items: stretch;
      flex: 1;
      min-height: 0;
      overflow: hidden;
      margin-top: 4px;
    }
    @media (max-width: 780px) {
      #disc-modal-body-split {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        max-height: none;
        overflow: visible;
      }
      #disc-modal-context-col {
        max-height: 42vh !important;
        min-height: 0;
        order: 2;
      }
      #disc-modal-research-col {
        order: 1;
        min-height: 0;
        max-height: min(52vh, 480px);
      }
    }
    #disc-modal-research-col {
      min-height: 0;
      max-height: 100%;
      border: 1px solid var(--border);
      border-radius: 10px;
      background: var(--surface-2);
      overflow-x: hidden;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      display: flex;
      flex-direction: column;
    }
    #disc-modal-research-pane {
      padding: 18px 20px 20px;
      flex: 0 1 auto;
      min-height: 0;
    }
    #disc-modal-context-col {
      min-height: 0;
      max-height: 100%;
      overflow-x: hidden;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      padding-right: 4px;
    }
    .disc-research-label {
      font-family: var(--mono); font-size: 9px; font-weight: 700;
      letter-spacing: 0.15em; text-transform: uppercase;
      color: var(--muted); margin-bottom: 10px;
    }
    .disc-research-idle {
      text-align: center; padding: 28px 12px; color: var(--text-2);
      font-size: 13px; line-height: 1.55;
    }
    .disc-research-idle-btn {
      margin-top: 14px;
      font-size: 11px; font-family: var(--mono); font-weight: 600;
      padding: 8px 16px; border-radius: 6px;
      border: 1px solid var(--accent); background: var(--surface);
      color: var(--text); cursor: pointer;
    }
    .disc-research-idle-btn:hover { box-shadow: var(--shadow-md); }
    .disc-research-loading {
      display: flex; flex-direction: column; align-items: center;
      justify-content: center; text-align: center;
      padding: 32px 16px; min-height: 200px;
    }
    .disc-research-globe-wrap {
      margin-bottom: 16px;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    /* Mini orthographic globe — SVG-only; ~104px (2× prior 52px) */
    .disc-research-globe-stage {
      width: 104px;
      height: 104px;
      position: relative;
      flex-shrink: 0;
      border-radius: 50%;
      box-shadow: 0 0 0 1px rgba(15,23,42,0.08), 0 2px 10px rgba(0,0,0,0.08);
    }
    [data-theme="dark"] .disc-research-globe-stage {
      box-shadow: 0 0 0 1px rgba(255,255,255,0.1), 0 2px 14px rgba(0,0,0,0.45);
    }
    /* Deep research loader globe: default .wg-* is dark ink for light UI — brighten on dark theme */
    [data-theme="dark"] .disc-research-globe-stage .wg-outline {
      stroke: rgba(255,255,255,0.48);
    }
    [data-theme="dark"] .disc-research-globe-stage .wg-graticule {
      stroke: rgba(255,255,255,0.2);
    }
    [data-theme="dark"] .disc-research-globe-stage .wg-land-dot {
      fill: rgba(255,255,255,0.92);
    }
    [data-theme="dark"] .disc-research-globe-stage .wg-land-edge {
      stroke: rgba(255,255,255,0.5);
    }
    .disc-research-globe-stage svg {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      display: block;
      pointer-events: none;
      z-index: 2;
      overflow: visible;
      border-radius: 50%;
    }
    .disc-research-loading-title {
      font-size: 15px; font-weight: 700; color: var(--text);
      letter-spacing: -0.02em;
    }
    .disc-research-loading-dots span {
      animation: disc-dot-fade 1.1s ease-in-out infinite;
      opacity: 0.25;
    }
    .disc-research-loading-dots span:nth-child(2) { animation-delay: 0.15s; }
    .disc-research-loading-dots span:nth-child(3) { animation-delay: 0.3s; }
    @keyframes disc-dot-fade {
      0%, 80%, 100% { opacity: 0.2; }
      40% { opacity: 1; }
    }
    .disc-research-loading-sub {
      font-size: 12px; color: var(--muted); margin-top: 10px;
      max-width: 280px; line-height: 1.45;
    }
    .disc-research-markdown, .disc-research-body {
      font-size: 13.5px; line-height: 1.75; color: var(--text-2);
    }
    .disc-research-markdown h2, .disc-research-body h2 {
      font-size: 15px; font-weight: 700; color: var(--text);
      margin: 24px 0 10px;
      letter-spacing: -0.02em;
    }
    .disc-research-markdown h2:first-child, .disc-research-body h2:first-child { margin-top: 0; }
    .disc-research-markdown h3, .disc-research-body h3 {
      font-size: 13.5px; font-weight: 600; color: var(--text);
      margin: 18px 0 6px;
    }
    .disc-research-markdown p, .disc-research-body p {
      margin: 0 0 12px;
    }
    .disc-research-markdown ul, .disc-research-markdown ol,
    .disc-research-body ul, .disc-research-body ol {
      margin: 0 0 14px 0; padding: 0 0 0 1.4em;
    }
    .disc-research-markdown li, .disc-research-body li {
      margin-bottom: 6px; padding-left: 4px;
    }
    .disc-research-markdown li::marker, .disc-research-body li::marker {
      color: var(--muted);
    }
    .disc-research-markdown ul ul, .disc-research-body ul ul,
    .disc-research-markdown ol ul, .disc-research-body ol ul {
      margin: 6px 0 6px 0;
    }
    .disc-research-markdown strong, .disc-research-body strong {
      color: var(--text); font-weight: 600;
    }
    .disc-research-markdown a, .disc-research-body a {
      color: #0077b5; word-break: break-all;
    }
    .disc-research-markdown blockquote, .disc-research-body blockquote {
      margin: 12px 0; padding: 8px 14px;
      border-left: 3px solid var(--border);
      color: var(--muted); font-style: italic;
    }
    .disc-export-btn {
      position: relative; display: inline-flex; align-items: center; justify-content: center;
      width: 32px; height: 32px; border: 1px solid var(--border); border-radius: 8px;
      background: var(--surface); cursor: pointer; color: var(--muted);
      transition: color 0.15s, border-color 0.15s, background 0.15s;
    }
    .disc-export-btn:hover { color: var(--text); border-color: var(--text-2); background: var(--surface-2); }
    .disc-export-btn .disc-export-tooltip {
      display: none; position: absolute; top: calc(100% + 6px); left: 50%;
      transform: translateX(-50%); white-space: nowrap;
      font-size: 10px; font-family: var(--mono); color: var(--bg);
      background: var(--text); padding: 4px 8px; border-radius: 5px;
      pointer-events: none; z-index: 10;
    }
    .disc-export-btn:hover .disc-export-tooltip { display: block; }
    .disc-research-citations {
      margin-top: 20px; padding-top: 14px;
      border-top: 1px solid var(--border);
    }
    .disc-research-citations-title {
      font-family: var(--mono); font-size: 9px; font-weight: 700;
      letter-spacing: 0.12em; text-transform: uppercase;
      color: var(--muted); margin-bottom: 8px;
    }
    .disc-research-cite {
      font-size: 12px; margin-bottom: 6px;
      font-family: var(--mono);
    }
    .disc-research-cite a { color: var(--accent); text-decoration: none; }
    .disc-research-cite a:hover { text-decoration: underline; }
    .disc-research-failed {
      padding: 16px; border-radius: 8px;
      background: color-mix(in srgb, #ef4444 8%, var(--surface));
      border: 1px solid color-mix(in srgb, #ef4444 35%, var(--border));
      font-size: 13px; color: var(--text-2);
    }
    .disc-research-retry {
      margin-top: 12px;
      font-size: 11px; font-family: var(--mono);
      padding: 6px 12px; border-radius: 5px;
      border: 1px solid var(--border); background: var(--surface);
      cursor: pointer; color: var(--text);
    }
    .disc-research-retry:hover { border-color: var(--accent); }
    #disc-modal-header-bar {
      display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px;
      flex-shrink: 0;
    }
    #disc-modal-avatar {
      display: none; width: 52px; height: 52px;
      border-radius: 9px; object-fit: cover; flex-shrink: 0;
      border: 1px solid var(--border);
    }
    #disc-modal-avatar-placeholder {
      display: flex; width: 52px; height: 52px; border-radius: 9px;
      background: var(--surface-2); border: 1px solid var(--border);
      align-items: center; justify-content: center; flex-shrink: 0;
      font-size: 17px; font-weight: 700; color: var(--muted); user-select: none;
    }
    #disc-modal-title-block { flex: 1; min-width: 0; }
    #disc-modal-name { font-size: 18px; font-weight: 700; color: var(--text); margin-bottom: 2px; }
    #disc-modal-role { font-size: 12px; color: var(--text-2); line-height: 1.4; }
    #disc-modal-meta-pills { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
    .disc-modal-pill {
      font-size: 10px; font-family: var(--mono);
      background: var(--surface-2); border: 1px solid var(--border);
      border-radius: 4px; padding: 2px 7px; color: var(--text-2);
    }
    #disc-modal-close {
      position: absolute; top: 14px; right: 16px;
      background: none; border: none; cursor: pointer;
      font-size: 20px; color: var(--hint); line-height: 1;
    }
    #disc-modal-close:hover { color: var(--text); }
    #disc-modal-sections { display: flex; flex-direction: column; gap: 14px; }
    .disc-modal-label {
      font-family: var(--mono); font-size: 9px; font-weight: 700;
      letter-spacing: 0.15em; text-transform: uppercase;
      color: var(--muted); margin-bottom: 6px;
    }
    #disc-modal-linkedin {
      font-size: 12px; color: #0077b5; text-decoration: none;
      word-break: break-all; display: block;
    }
    #disc-modal-linkedin:hover { text-decoration: underline; }
    #disc-modal-no-linkedin { font-size: 12px; color: var(--hint); font-style: italic; }

    /* Discovery panel history column */
    #disc-panel-inner { display: flex; height: 100%; }
    #disc-history-col {
      width: 200px; flex-shrink: 0;
      border-right: 1px solid var(--border);
      display: flex; flex-direction: column;
      background: var(--surface);
    }
    #disc-history-header {
      padding: 16px 12px 8px;
      font-family: var(--mono); font-size: 9px; font-weight: 700;
      letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted);
      flex-shrink: 0;
      display: flex; align-items: center; justify-content: space-between;
    }
    .disc-new-search-btn {
      width: 20px; height: 20px; border-radius: 5px; border: 1px solid var(--border);
      background: none; color: var(--muted); cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      font-size: 14px; line-height: 1; padding: 0;
      transition: color 0.15s, border-color 0.15s, background 0.15s;
    }
    .disc-new-search-btn:hover { color: var(--text); border-color: var(--text-2); background: var(--surface-2); }
    #disc-history-list { flex: 1; overflow-y: auto; }
    .disc-history-item {
      padding: 10px 12px; cursor: pointer;
      border-bottom: 1px solid var(--border);
      transition: background 0.12s;
    }
    .disc-history-item:hover { background: var(--surface-2); }
    .disc-history-item.active { background: var(--surface-2); border-left: 2px solid var(--accent); }
    .disc-history-query {
      font-size: 12px; color: var(--text);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 3px;
    }
    .disc-history-meta {
      font-family: var(--mono); font-size: 9px; color: var(--muted);
      display: flex; gap: 6px; align-items: center;
    }
    .disc-history-count { background: var(--surface-2); border: 1px solid var(--border); border-radius: 20px; padding: 1px 6px; }
    .disc-history-pending {
      background: linear-gradient(90deg, var(--surface) 0%, var(--surface-2) 50%, var(--surface) 100%);
      background-size: 200% 100%;
      animation: disc-shimmer 2.2s linear infinite;
    }
    .disc-history-pending .disc-history-meta {
      height: 10px; width: 50%; border-radius: 3px;
      background: var(--border); opacity: 0.5;
    }
    #disc-main-col { flex: 1; overflow-y: auto; display: flex; flex-direction: column; }
    @keyframes disc-cardIn {
      from { opacity: 0; transform: translateY(18px) scale(0.97); }
      to   { opacity: 1; transform: translateY(0) scale(1); }
    }
    @keyframes disc-skelFadeOut {
      from { opacity: 1; transform: scale(1); }
      to   { opacity: 0; transform: scale(0.97); }
    }

    /* Skeleton placeholder cards — Perplexity-style translucent loading */
    .disc-skeleton-card {
      background: var(--surface);
      border: 1px solid rgba(0,0,0,0.07);
      border-radius: 10px;
      padding: 14px 15px;
      display: flex; flex-direction: column; gap: 9px;
      opacity: 0;
      transition: opacity 0.55s cubic-bezier(0.4,0,0.2,1),
                  transform 0.55s cubic-bezier(0.4,0,0.2,1),
                  filter 0.55s ease;
      animation: disc-skelIn 0.45s cubic-bezier(0.34,1.2,0.64,1) both;
      pointer-events: none;
      position: relative;
      box-shadow: 0 1px 4px rgba(0,0,0,0.04), 0 3px 10px rgba(0,0,0,0.04);
    }
    .disc-skeleton-card.disc-skel-visible { opacity: 0.42; }
    .disc-skeleton-card.disc-skel-dimming { opacity: 0.1; transform: scale(0.98); filter: blur(1px); }
    .disc-skeleton-card.disc-skel-out {
      animation: disc-skelFadeOut 0.32s cubic-bezier(0.4,0,0.2,1) forwards;
    }
    @keyframes disc-skelIn {
      from { opacity: 0; transform: translateY(14px) scale(0.97); }
      to   { opacity: 0.42; transform: translateY(0) scale(1); }
    }
    .disc-skel-line {
      border-radius: 4px;
      background: linear-gradient(90deg,
        rgba(0,0,0,0.06) 0%,
        rgba(0,0,0,0.03) 50%,
        rgba(0,0,0,0.06) 100%);
      background-size: 200% 100%;
      animation: disc-shimmer 2s ease-in-out infinite;
    }
    [data-theme="dark"] .disc-skel-line {
      background: linear-gradient(90deg,
        rgba(255,255,255,0.07) 0%,
        rgba(255,255,255,0.03) 50%,
        rgba(255,255,255,0.07) 100%);
      background-size: 200% 100%;
    }
    .disc-skel-top { display: flex; align-items: flex-start; gap: 10px; }
    .disc-skel-circle { border-radius: 50%; flex-shrink: 0; }
    .disc-skel-lines { flex: 1; display: flex; flex-direction: column; gap: 7px; padding-top: 2px; }

    .disc-card-top {
      display: flex; align-items: flex-start; gap: 10px;
    }
    .disc-confidence-dot {
      width: 7px; height: 7px; border-radius: 50%;
      flex-shrink: 0; margin-top: 5px;
    }
    .disc-confidence-dot.high   { background: #22c55e; }
    .disc-confidence-dot.medium { background: #f59e0b; }
    .disc-confidence-dot.low    { background: var(--meta); }
    .disc-card-identity { flex: 1; min-width: 0; }
    .disc-card-name {
      font-size: 15px; font-weight: 600; color: var(--text);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .disc-card-role {
      font-size: 12px; color: var(--text-2); margin-top: 2px;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .disc-card-snippet {
      font-size: 12px; color: var(--muted); line-height: 1.5;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .disc-card-footer {
      display: flex; align-items: center; justify-content: space-between;
      gap: 8px; margin-top: 2px;
    }
    .disc-source-badge {
      font-family: var(--mono); font-size: 8px; font-weight: 700;
      letter-spacing: 0.1em; text-transform: uppercase;
      color: var(--hint); background: var(--surface-2);
      border: 1px solid var(--border); border-radius: 20px;
      padding: 2px 8px;
    }
    .disc-source-badge.linkedin { color: #0077b5; border-color: #c8e6f7; background: #f0f8ff; }
    [data-theme="dark"] .disc-source-badge.linkedin { background: #0c1e2a; border-color: #1a3a50; }

    .disc-school-tag {
      font-size: 0.7rem;
      font-weight: 600;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      color: #5c4d7a;
      background: #f3effa;
      border: 1px solid #e0d6f0;
      border-radius: 999px;
      padding: 0.12rem 0.45rem;
      margin-right: 0.35rem;
      max-width: 11rem;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    [data-theme="dark"] .disc-school-tag {
      color: #c4b8e0;
      background: #1f1a2e;
      border-color: #3d3558;
    }


    /* Empty / error states */
    .disc-state-box {
      max-width: 580px; width: 100%; margin-top: 24px;
      padding: 28px 24px; text-align: center;
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 8px;
    }
    .disc-state-box-icon {
      font-size: 28px; margin-bottom: 10px;
    }
    .disc-state-box-title {
      font-family: var(--mono); font-size: 10px; font-weight: 700;
      letter-spacing: 0.2em; text-transform: uppercase;
      color: var(--muted); margin-bottom: 6px;
    }
    .disc-state-box-body { font-size: 13px; color: var(--text-2); line-height: 1.5; }
    #disc-no-results { display: none; }
    #disc-error-state { display: none; }
    #disc-error-state .disc-state-box { border-color: #f5c6c6; background: #fffafa; }
    #disc-error-state .disc-state-box-icon {
      width: 44px; height: 44px; margin: 0 auto 12px;
      display: flex; align-items: center; justify-content: center;
      border-radius: 50%;
      background: #fee2e2;
      color: #b91c1c;
      font-weight: 800;
      font-size: 20px;
      line-height: 1;
    }
    #disc-error-state .disc-state-box-title { color: #8C1515; }
    #disc-error-state .disc-state-box-body { color: #a03030; }
    #disc-error-state .disc-state-box-sub { font-size: 12px; color: var(--muted); margin-top: 10px; line-height: 1.45; }
    [data-theme="dark"] #disc-error-state .disc-state-box {
      border-color: #7f1d1d;
      background: #1c1010;
    }
    [data-theme="dark"] #disc-error-state .disc-state-box-icon {
      background: #450a0a;
      color: #f87171;
    }
    [data-theme="dark"] #disc-error-state .disc-state-box-title { color: #fecaca; }
    [data-theme="dark"] #disc-error-state .disc-state-box-body { color: #fca5a5; }
    [data-theme="dark"] #disc-error-state .disc-state-box-sub { color: #a8a29e; }

    /* ── Free quota banner ───────────────────────────────── */
    #disc-free-quota-banner {
      margin-top: 10px;
      font-size: 12px; color: var(--muted);
      display: flex; align-items: center; gap: 6px;
      justify-content: center;
    }
    #disc-free-quota-banner .disc-quota-count {
      font-family: var(--mono); font-weight: 700;
      color: var(--text-2);
    }
    #disc-free-quota-banner .disc-quota-signin {
      color: var(--accent); cursor: pointer;
      text-decoration: underline; text-underline-offset: 2px;
      background: none; border: none; font-size: 12px; padding: 0;
    }

    /* ── Sign-in modal ───────────────────────────────────── */
    #signin-modal-overlay {
      position: fixed; inset: 0;
      background: rgba(0,0,0,0.5);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      z-index: 900;
      display: none;
      align-items: center;
      justify-content: center;
    }
    #signin-modal-overlay.visible { display: flex; }
    #signin-modal {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 18px;
      box-shadow: 0 32px 80px rgba(0,0,0,0.36);
      width: 360px;
      padding: 36px 28px 26px;
      text-align: center;
    }
    #signin-modal-header {
      display: flex; align-items: center; justify-content: center; gap: 10px;
      margin-bottom: 8px;
    }
    #signin-modal-globe { display: none; }
    #signin-modal-wordmark {
      font-family: 'The Seasons', Georgia, serif; font-size: 26px; font-weight: 400;
      letter-spacing: 0.02em; color: var(--text);
    }
    #signin-modal-sub {
      font-size: 13px; color: var(--muted); line-height: 1.55;
      margin-bottom: 26px; opacity: 0.75;
    }
    #signin-modal-google-btn {
      display: flex; align-items: center; justify-content: center; gap: 10px;
      width: 100%; padding: 12px 20px; box-sizing: border-box;
      background: var(--bg);
      border: 1px solid var(--border); border-radius: 10px;
      font-size: 14px; font-weight: 500; font-family: var(--mono);
      color: var(--text);
      cursor: pointer; text-decoration: none;
      transition: border-color 0.15s, background 0.15s;
      margin-bottom: 20px;
      letter-spacing: 0.01em;
    }
    #signin-modal-google-btn:hover {
      background: rgba(255,255,255,0.04);
      border-color: rgba(255,255,255,0.2);
    }
    [data-theme="light"] #signin-modal-google-btn { background: #fff; }
    [data-theme="light"] #signin-modal-google-btn:hover { background: #f7f7f7; border-color: rgba(0,0,0,0.18); }
    #signin-modal-divider {
      display: flex; align-items: center; gap: 12px;
      margin-bottom: 18px; color: var(--muted);
    }
    #signin-modal-divider::before,
    #signin-modal-divider::after {
      content: ''; flex: 1; height: 1px; background: var(--border);
    }
    #signin-modal-divider span { font-size: 11px; font-family: var(--mono); letter-spacing: 0.08em; opacity: 0.4; }
    #signin-modal-tabs {
      display: flex; border-bottom: 1px solid var(--border);
      margin-bottom: 16px; gap: 0;
    }
    .smt-tab {
      flex: 1; background: none; border: none; cursor: pointer;
      font-family: var(--mono); font-size: 11px; font-weight: 600;
      letter-spacing: 0.08em; text-transform: uppercase;
      color: var(--muted); padding: 8px 0 9px;
      border-bottom: 2px solid transparent; margin-bottom: -1px;
      transition: color 0.15s, border-color 0.15s;
    }
    .smt-tab:hover { color: var(--text); }
    .smt-tab.active { color: var(--text); border-bottom-color: var(--text); }
    #signin-modal-form { display: flex; flex-direction: column; gap: 9px; margin-bottom: 0; }
    .sm-input {
      width: 100%; box-sizing: border-box;
      background: var(--bg); border: 1px solid var(--border);
      border-radius: 8px; padding: 10px 13px;
      font-family: var(--mono); font-size: 13px; color: var(--text);
      outline: none; transition: border-color 0.15s;
    }
    .sm-input::placeholder { color: var(--muted); opacity: 0.5; }
    .sm-input:focus { border-color: rgba(255,255,255,0.22); }
    [data-theme="light"] .sm-input:focus { border-color: rgba(0,0,0,0.22); }
    #sm-error {
      font-size: 12px; color: #c97070; min-height: 0;
      text-align: left; padding: 0 2px; display: none;
    }
    #sm-error.visible { display: block; }
    #sm-submit-btn {
      width: 100%; padding: 11px 20px; margin-top: 2px;
      background: var(--text); color: var(--surface);
      border: none; border-radius: 8px;
      font-size: 13px; font-weight: 500; font-family: var(--mono);
      letter-spacing: 0.04em; cursor: pointer;
      transition: opacity 0.15s;
    }
    #sm-submit-btn:hover { opacity: 0.82; }
    #sm-submit-btn:disabled { opacity: 0.35; cursor: default; }

    /* ── Network beta / waitlist modal ─────────────────── */
    #network-beta-modal-overlay {
      position: fixed; inset: 0;
      background: rgba(0,0,0,0.45);
      backdrop-filter: blur(6px);
      z-index: 910;
      display: none;
      align-items: center;
      justify-content: center;
    }
    #network-beta-modal-overlay.visible { display: flex; }
    #network-beta-modal {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 14px;
      box-shadow: 0 16px 48px rgba(0,0,0,0.22);
      width: 360px;
      padding: 32px 28px 28px;
      text-align: center;
    }
    #network-beta-modal-title {
      font-size: 17px; font-weight: 700;
      color: var(--text); margin-bottom: 8px;
    }
    #network-beta-modal-sub {
      font-size: 13px; color: var(--muted); line-height: 1.55; margin-bottom: 22px;
    }
    #network-beta-modal-join {
      display: inline-flex; align-items: center; justify-content: center;
      width: 100%; padding: 11px 20px;
      background: var(--text); color: var(--surface);
      border: none; border-radius: 8px;
      font-size: 14px; font-weight: 600;
      cursor: pointer;
    }
    #network-beta-modal-join:hover { opacity: 0.88; }
    #network-beta-modal-dismiss {
      display: block; margin-top: 14px;
      font-size: 12px; color: var(--muted);
      background: none; border: none; cursor: pointer;
    }

    /* ── Welcome Overlay ────────────────────────────────── */
    #welcome-overlay {
      position: fixed;
      inset: 0;
      z-index: 9999;
      background: #F5F4F0;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.9s cubic-bezier(0.7, 0, 0.3, 1), opacity 0.9s cubic-bezier(0.7, 0, 0.3, 1);
      cursor: pointer;
      user-select: none;
    }
    #welcome-overlay.fade-out { transform: translateY(-100%); opacity: 0; pointer-events: none; }
    #welcome-overlay.gone { display: none; }

    #welcome-label {
      position: absolute;
      top: 64px;
      left: 72px;
      font-family: 'The Seasons', Georgia, serif;
      font-size: 80px;
      font-weight: 400;
      letter-spacing: -0.02em;
      color: rgba(17,17,17,0.88);
      opacity: 0;
      transform: translateY(10px);
      transition: opacity 0.8s ease 0.05s, transform 0.8s ease 0.05s;
    }
    #welcome-wordmark {
      position: absolute;
      bottom: 60px;
      right: 72px;
      font-family: 'The Seasons', Georgia, serif;
      font-size: 100px;
      font-weight: 400;
      letter-spacing: -0.02em;
      color: rgba(17,17,17,0.88);
      line-height: 1;
      opacity: 0;
      transform: translateY(14px);
      transition: opacity 0.85s ease 0.15s, transform 0.85s ease 0.15s;
    }
    #welcome-hint {
      position: absolute;
      bottom: 40px;
      left: 50%;
      transform: translateX(-50%);
      font-size: 10px;
      letter-spacing: 0.2em;
      color: rgba(17,17,17,0.35);
      text-transform: uppercase;
      white-space: nowrap;
      opacity: 0;
      transition: opacity 0.4s ease 0.1s;
    }
    #welcome-overlay.revealed #welcome-label,
    #welcome-overlay.revealed #welcome-wordmark { opacity: 1; transform: translateY(0); }
    #welcome-overlay.revealed #welcome-hint { opacity: 1; }

    #welcome-globe-stage {
      position: relative;
      width: min(660px, 88vw);
      aspect-ratio: 820 / 620;
      cursor: crosshair;
      isolation: isolate;
      opacity: 0;
      transform: scale(0.94) translateY(12px);
      transition: opacity 1.2s ease 0.2s, transform 1.2s cubic-bezier(0.2,0.8,0.2,1) 0.2s;
    }
    #welcome-overlay.revealed #welcome-globe-stage { opacity: 1; transform: scale(1) translateY(0); }

    #welcome-globe-canvas {
      display: none; /* removed heavy earth texture — SVG globe only */
    }
    #welcome-globe-svg {
      position: absolute; inset: 0; width: 100%; height: 100%;
      display: block; pointer-events: none; z-index: 2;
      overflow: visible;
    }

    /* Globe element styles – light palette */
    .wg-outline {
      fill: none; stroke: rgba(15,23,42,0.22); stroke-width: 1;
      vector-effect: non-scaling-stroke;
    }
    .wg-graticule {
      fill: none; stroke: rgba(15,23,42,0.1); stroke-width: 0.7;
      stroke-dasharray: 1.5 5.2; stroke-linecap: round;
      vector-effect: non-scaling-stroke;
    }
    .wg-land-dot { fill: rgba(15,23,42,0.72); }
    .wg-land-edge {
      fill: none; stroke: rgba(15,23,42,0.38); stroke-width: 0.8;
      stroke-linejoin: round; vector-effect: non-scaling-stroke;
    }
    .wg-arc-base {
      fill: none; stroke-width: 1.0; stroke-linecap: round;
      stroke-dasharray: 3 4; vector-effect: non-scaling-stroke;
    }
    .wg-arc-base-front { opacity: 0.75; }
    .wg-arc-base-back  { opacity: 0.28; stroke-dasharray: 2 5; }
    .wg-arc-signal {
      fill: none; stroke-width: 2.0; stroke-linecap: round;
      stroke-dasharray: 14 110; vector-effect: non-scaling-stroke;
      animation: wg-signal 4.8s linear infinite;
    }
    .wg-arc-signal-front { opacity: 0.85; }
    .wg-arc-signal-back  { opacity: 0.22; stroke-dasharray: 10 116; }
    .wg-node-core { fill: rgba(15,23,42,0.88); }
    .wg-nodes-back .wg-node-core { opacity: 0.12; }
    .wg-node-ripple {
      fill: none; stroke: rgba(86,138,208,0.42); stroke-width: 2;
      vector-effect: non-scaling-stroke;
      animation: wg-ripple 4.6s ease-out infinite;
      animation-delay: var(--nd, 0s);
    }
    .wg-nodes-back .wg-node-ripple { stroke: rgba(86,138,208,0.14); }

    @keyframes wg-signal {
      from { stroke-dashoffset: 124; } to { stroke-dashoffset: 0; }
    }
    @keyframes wg-ripple {
      0%   { r: 2.2; opacity: 0.85; }
      65%  { r: 11;  opacity: 0; }
      100% { r: 11;  opacity: 0; }
    }

    /* ── Research Person panel ─────────────────────────────── */
    #research-person-panel {
      display: none; flex-direction: column;
      flex: 1 1 0%; min-height: 0; min-width: 0;
      overflow: hidden; background: var(--bg);
    }
    #research-person-panel.open { display: flex; }
    #rp-panel-inner { display: flex; height: 100%; }
    #rp-history-col {
      width: 200px; flex-shrink: 0;
      border-right: 1px solid var(--border);
      display: flex; flex-direction: column;
      background: var(--surface);
    }
    #rp-history-header {
      padding: 16px 12px 8px;
      font-family: var(--mono); font-size: 9px; font-weight: 700;
      letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted);
      flex-shrink: 0;
    }
    #rp-saved-list { flex: 1; overflow-y: auto; }
    #rp-main-col { flex: 1; overflow-y: auto; display: flex; flex-direction: column; }
    #rp-search-surface {
      flex: 1; display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      padding: 0 20px 60px; min-height: 340px;
      transition: all 0.38s cubic-bezier(0.4, 0, 0.2, 1);
    }
    #research-person-panel.has-results #rp-search-surface {
      flex: 0 0 auto; min-height: auto; padding: 10px 20px 12px;
      justify-content: flex-start;
      position: sticky; top: 0; z-index: 12;
      background: var(--bg); border-bottom: 1px solid var(--border);
      box-shadow: 0 6px 16px rgba(0,0,0,0.06);
    }
    #research-person-panel.has-results .disc-search-eyebrow,
    #research-person-panel.has-results .disc-search-heading,
    #research-person-panel.has-results .disc-search-sub { display: none; }

    /* Split search bar */
    .rp-split-bar {
      width: 100%; max-width: 1200px; display: flex; align-items: center;
      background: var(--surface);
      border: 1.5px solid var(--border-2); border-radius: 16px;
      box-shadow: 0 2px 12px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.04),
                  inset 0 1px 2px rgba(0,0,0,0.02);
      overflow: hidden; transition: border-color 0.2s;
      padding: 5px;
    }
    .rp-split-bar:focus-within { border-color: var(--accent); }
    .rp-bar-input {
      flex: 1; height: 52px; border: none; outline: none;
      background: transparent; color: var(--text);
      font-size: 15px; font-family: inherit; font-weight: 400;
      letter-spacing: -0.3px;
    }
    .rp-bar-url { padding: 0 20px; }
    .rp-bar-input::placeholder { color: rgba(0,0,0,0.34); font-weight: 400; }
    [data-theme="dark"] .rp-bar-input::placeholder { color: rgba(255,255,255,0.32); }
    .rp-bar-divider { width: 1px; height: 28px; background: var(--border); flex-shrink: 0; }
    .rp-bar-btn {
      flex-shrink: 0; width: 52px; height: 52px; border: none;
      background: var(--text); color: var(--bg); cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      border-radius: 14px;
      transition: opacity 0.15s;
    }
    .rp-bar-btn:hover { opacity: 0.85; }
    .rp-bar-btn:disabled { opacity: 0.4; cursor: not-allowed; }
    .rp-input-error {
      color: #f87171; font-size: 12px; font-family: var(--mono);
      margin-top: 8px; text-align: center;
      opacity: 0; transition: opacity 0.2s;
    }
    .rp-input-error.visible { opacity: 1; }

    /* Saved searches sidebar items (mirrors disc-history styles) */
    .rp-saved-item {
      padding: 10px 12px; cursor: pointer;
      border-bottom: 1px solid var(--border); transition: background 0.12s;
    }
    .rp-saved-item:hover { background: var(--surface-2); }
    .rp-saved-item.active { background: var(--surface-2); border-left: 2px solid var(--accent); }
    .rp-saved-name {
      font-size: 12px; color: var(--text);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 3px;
    }
    .rp-saved-meta {
      font-family: var(--mono); font-size: 9px; color: var(--muted);
      display: flex; gap: 6px; align-items: center;
    }

    /* Results area */
    #rp-results-wrap { padding: 24px; max-width: 800px; margin: 0 auto; width: 100%; box-sizing: border-box; }
    .rp-profile-card {
      background: var(--surface); border: 1px solid var(--border); border-radius: 12px;
      padding: 16px; display: flex; gap: 14px; align-items: flex-start; margin-bottom: 16px;
    }
    .rp-profile-avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--surface-2); flex-shrink: 0; }
    .rp-profile-avatar-placeholder {
      width: 56px; height: 56px; border-radius: 50%; flex-shrink: 0;
      background: var(--surface-2); display: flex; align-items: center; justify-content: center;
      font-size: 20px; font-weight: 700; color: var(--muted);
    }
    .rp-profile-info { flex: 1; min-width: 0; }
    .rp-profile-name { font-size: 16px; font-weight: 600; color: var(--text); }
    .rp-profile-headline { font-size: 12px; color: var(--muted); margin-top: 2px; }
    .rp-profile-meta { font-size: 11px; color: var(--hint); font-family: var(--mono); margin-top: 4px; }
    .rp-profile-exp { margin-top: 8px; }
    .rp-profile-exp-item { font-size: 11px; color: var(--text-2); padding: 2px 0; }
    .rp-error-msg { color: #f87171; font-size: 13px; padding: 16px; }

    /* ── Mobile bottom nav (hidden on desktop) ──────────── */
    #mobile-bottom-nav {
      display: none;
      position: fixed; bottom: 0; left: 0; right: 0;
      height: 56px; z-index: 200;
      background: #111111;
      border-top: 1px solid #1d1d1d;
      align-items: center; justify-content: space-around;
      padding: 0 4px;
    }
    .mobile-nav-btn {
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 3px; padding: 6px 10px; border: none; background: none;
      color: rgba(255,255,255,0.5); cursor: pointer; border-radius: 8px;
      min-width: 44px; min-height: 44px; flex: 1;
      transition: color 0.15s;
    }
    .mobile-nav-btn.active { color: #fff; }
    .mobile-nav-btn svg { flex-shrink: 0; }
    .mobile-nav-label { font-size: 9px; letter-spacing: 0.04em; font-family: var(--mono); text-transform: uppercase; }
    #mobile-sidebar-backdrop {
      display: none; position: fixed; inset: 0; z-index: 299;
      background: rgba(0,0,0,0.45);
    }
    #mobile-sidebar-backdrop.visible { display: block; }

    /* ── Mobile responsive ≤640px ────────────────────────── */
    @media (max-width: 640px) {
      /* Sidebar becomes a fixed slide-in drawer */
      #sidebar {
        position: fixed; left: -234px; top: 0; height: 100%;
        z-index: 300;
        width: 234px !important; min-width: 234px !important;
        transition: left 0.26s cubic-bezier(0.4,0,0.2,1) !important;
      }
      #sidebar.mobile-open { left: 0; }
      /* Content panels: fill full width + clear bottom nav */
      #discovery-panel, #cron-outreach-panel, #detail-panel, #people-panel { padding-bottom: 64px; }
      /* Show bottom nav */
      #mobile-bottom-nav { display: flex; }
      /* Discovery search panel — tighter on mobile */
      #disc-search-surface { padding: 0 16px 24px; min-height: 200px; }
      .disc-search-heading { font-size: 22px; }
      .disc-search-sub { margin-bottom: 16px; }
      /* Full-screen modal — portrait and landscape */
      #disc-modal { align-items: flex-start; }
      #disc-modal-box {
        width: 100%; max-width: 100%;
        height: 100%; max-height: 100%;
        border-radius: 0; border: none;
        padding: 16px 16px 24px;
      }
      /* Touch targets ≥44px */
      #disc-search-btn { min-height: 44px; min-width: 44px; }
      .sb-item { min-height: 44px; }
      .disc-deep-research-btn { min-height: 44px; }

      /* Welcome animation — stack vertically, centered */
      #welcome-overlay { flex-direction: column; padding: 0 20px; }
      #welcome-label {
        font-size: 36px; top: auto; left: auto;
        position: relative; text-align: center; width: 100%;
        margin-bottom: 8px;
      }
      #welcome-wordmark {
        font-size: 48px; bottom: auto; right: auto;
        position: relative; text-align: center; width: 100%;
        margin-top: 8px;
      }
      #welcome-globe-stage { width: 90vw; }
      #welcome-hint { bottom: 24px; }

      /* Sign-in modal — full screen on mobile */
      #signin-modal {
        width: 100%; max-width: 100%; height: 100%;
        border-radius: 0; box-sizing: border-box;
        display: flex; flex-direction: column; justify-content: center;
      }

      /* Hide history sidebar on mobile */
      #disc-history-col { display: none; }

      /* Research person panel */
      #research-person-panel { padding-bottom: 64px; }
      #rp-history-col { display: none; }
      .rp-split-bar { flex-wrap: wrap; border-radius: 12px; }
      .rp-bar-divider { display: none; }
      .rp-bar-name { border-bottom: 1px solid var(--border); }
      .rp-bar-input { height: 48px; font-size: 13px; }
      .rp-bar-btn { height: 48px; width: 48px; }
      #rp-results-wrap { padding: 16px; }
    }
