
  :root, :root[data-theme="light"] {
    color-scheme: light;
    --surface-1:      #fcfcfb;
    --surface-2:      #f9f9f7;
    --surface-card:   #ffffff;
    --text-primary:   #0b0b0b;
    --text-secondary: #52514e;
    --text-muted:     #898781;
    --gridline:       #e1e0d9;
    --baseline:       #c3c2b7;
    --border:         rgba(11,11,11,0.10);
    --series-blue:    #2a78d6;
    --series-orange:  #eb6834;
    --seq-100: #cde2fb; --seq-200: #9ec5f4; --seq-300: #6da7ec;
    --seq-400: #3987e5; --seq-500: #256abf; --seq-600: #184f95; --seq-700: #0d366b;
    --good: #0ca30c; --good-text:#006300; --warning:#fab219; --critical:#d03b3b;
    --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  }
  @media (prefers-color-scheme: dark) {
    :root:where(:not([data-theme="light"])) {
      color-scheme: dark;
      --surface-1: #1a1a19; --surface-2: #0d0d0d; --surface-card: #212120;
      --text-primary:#ffffff; --text-secondary:#c3c2b7; --text-muted:#898781;
      --gridline:#2c2c2a; --baseline:#383835; --border: rgba(255,255,255,0.10);
      --series-blue:#3987e5; --series-orange:#d95926;
      --seq-100:#184f95; --seq-200:#1c5cab; --seq-300:#256abf; --seq-400:#2a78d6;
      --seq-500:#3987e5; --seq-600:#5598e7; --seq-700:#86b6ef;
      --good:#0ca30c; --good-text:#0ca30c; --warning:#fab219; --critical:#e66767;
      --shadow: 0 1px 3px rgba(0,0,0,0.4);
    }
  }
  :root[data-theme="dark"] {
    color-scheme: dark;
    --surface-1: #1a1a19; --surface-2: #0d0d0d; --surface-card: #212120;
    --text-primary:#ffffff; --text-secondary:#c3c2b7; --text-muted:#898781;
    --gridline:#2c2c2a; --baseline:#383835; --border: rgba(255,255,255,0.10);
    --series-blue:#3987e5; --series-orange:#d95926;
    --seq-100:#184f95; --seq-200:#1c5cab; --seq-300:#256abf; --seq-400:#2a78d6;
    --seq-500:#3987e5; --seq-600:#5598e7; --seq-700:#86b6ef;
    --good:#0ca30c; --good-text:#0ca30c; --warning:#fab219; --critical:#e66767;
    --shadow: 0 1px 3px rgba(0,0,0,0.4);
  }
  * { box-sizing: border-box; }
  body {
    margin:0; font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    background: var(--surface-2); color: var(--text-primary); line-height:1.5;
  }
  .wrap { max-width: 1440px; margin: 0 auto; padding: 16px; }
  header.top {
    display:flex; justify-content:space-between; align-items:flex-start; gap:16px;
    background: var(--surface-card); border:1px solid var(--border); border-radius:12px;
    padding: 18px 22px; margin-bottom:14px; box-shadow: var(--shadow); flex-wrap:wrap;
  }
  header.top h1 { font-size: 21px; margin:0 0 4px 0; font-weight:700; }
  header.top .sub { font-size:13px; color: var(--text-secondary); }
  .badge { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600;
    padding:4px 10px; border-radius:20px; background: var(--seq-100); color: var(--seq-700); }
  .badge.live::before { content:""; width:7px; height:7px; border-radius:50%; background: var(--good); display:inline-block; }
  .top-actions { display:flex; gap:8px; align-items:center; }
  .app-nav {
    position:sticky; top:8px; z-index:40; display:grid; grid-template-columns:repeat(4,1fr);
    gap:7px; padding:7px; margin-bottom:12px; background:var(--surface-card);
    background:color-mix(in srgb, var(--surface-card) 94%, transparent);
    border:1px solid var(--border); border-radius:13px; box-shadow:var(--shadow);
    backdrop-filter:blur(14px);
  }
  .app-nav-btn {
    min-width:0; display:flex; align-items:center; gap:10px; padding:10px 12px;
    border:1px solid transparent; border-radius:9px; background:transparent;
    color:var(--text-muted); cursor:pointer; text-align:left; font:inherit;
    transition:background .15s ease, border-color .15s ease, color .15s ease;
  }
  .app-nav-btn:hover { background:var(--surface-1); color:var(--text-primary); }
  .app-nav-btn.active {
    background:var(--seq-100); border-color:var(--series-blue);
    border-color:color-mix(in srgb, var(--series-blue) 35%, var(--border));
    color:var(--seq-700);
  }
  .app-nav-btn > span:last-child { min-width:0; display:flex; flex-direction:column; }
  .app-nav-btn b { font-size:13px; line-height:1.25; }
  .app-nav-btn small { margin-top:2px; overflow:hidden; color:var(--text-muted); font-size:10.5px; white-space:nowrap; text-overflow:ellipsis; }
  .app-nav-icon {
    flex:0 0 25px; width:25px; height:25px; display:grid; place-items:center;
    border:1px solid currentColor; border-radius:7px; font-size:9px; font-weight:800;
  }
  .view-context {
    display:flex; align-items:end; justify-content:space-between; gap:24px;
    padding:10px 4px 14px;
  }
  .view-context h2 { margin:2px 0 0; font-size:19px; line-height:1.25; }
  .view-context p { max-width:620px; margin:0; color:var(--text-secondary); font-size:12px; line-height:1.5; }
  .view-eyebrow { color:var(--series-blue); font-size:9.5px; font-weight:800; letter-spacing:1.2px; }
  button.ghost {
    background:transparent; border:1px solid var(--border); color:var(--text-primary);
    padding:7px 12px; border-radius:8px; font-size:13px; cursor:pointer; font-weight:600;
  }
  button.ghost:hover { background: var(--surface-1); }
  .kpi-row { display:grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap:14px; margin-bottom:14px; }
  .callout { background: var(--seq-100); color: var(--seq-700); border:1px solid var(--border); border-radius:12px;
    padding:12px 18px; font-size:13px; line-height:1.5; margin-bottom:14px; }
  #trendCard svg { width:100%; height:180px; display:block; margin-top:6px; }
  #phase2Card { border-left: 3px solid var(--series-orange); }
  th .hint { font-weight:400; cursor:help; }
  .kpi-card { background: var(--surface-card); border:1px solid var(--border); border-radius:12px;
    padding:16px 18px; box-shadow: var(--shadow); }
  .kpi-label { font-size:12px; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:6px; font-weight:600;}
  .kpi-value { font-size:28px; font-weight:700; font-variant-numeric: tabular-nums; }
  .kpi-note { font-size:12px; color:var(--text-secondary); margin-top:4px; }
  .main-grid { display:grid; grid-template-columns: 1.55fr 1fr; gap:14px; margin-bottom:14px; align-items:start; }
  .card { background: var(--surface-card); border:1px solid var(--border); border-radius:12px;
    padding:16px 18px; box-shadow: var(--shadow); }
  .card h2 { font-size:14px; font-weight:700; margin:0 0 10px 0; display:flex; justify-content:space-between; align-items:center;}
  .card h2 .hint { font-size:11px; font-weight:500; color:var(--text-muted); }
  #mapSvg { width:100%; height:auto; display:block; }
  .county-path { stroke: var(--surface-card); stroke-width:0.8; cursor:pointer; transition: opacity .1s; }
  .county-path:hover { opacity:0.75; stroke-width:1.6; stroke: var(--text-primary); }
  .county-path.selected { stroke: var(--series-orange); stroke-width:2.2; }
  .well-marker { fill: var(--series-orange); stroke: var(--surface-card); stroke-width:2px; cursor:pointer; }
  .well-marker.matched { fill: var(--good); }
  .well-marker:hover { stroke: var(--text-primary); }
  .map-legend { display:flex; gap:18px; margin-top:10px; flex-wrap:wrap; font-size:12px; color:var(--text-secondary); align-items:center; }
  .legend-swatch { display:inline-flex; align-items:center; gap:6px; }
  .legend-ramp { display:flex; height:10px; width:90px; border-radius:3px; overflow:hidden; }
  .legend-ramp span { flex:1; }
  .dot { width:10px; height:10px; border-radius:50%; display:inline-block; }
  #tooltip { position:fixed; pointer-events:none; background: var(--text-primary); color: var(--surface-card);
    font-size:12px; padding:6px 9px; border-radius:6px; z-index:50; display:none; max-width:240px; }

  /* Tabs (assistant / crm) */
  .tabs { display:flex; gap:4px; margin-bottom:10px; border-bottom:1px solid var(--gridline); }
  .tab-btn { background:none; border:none; padding:8px 12px; font-size:13px; font-weight:600; color:var(--text-muted);
    cursor:pointer; border-bottom:2px solid transparent; }
  .tab-btn.active { color: var(--series-blue); border-bottom-color: var(--series-blue); }
  .tab-panel { display:none; }
  .tab-panel.active { display:block; }

  #chatLog { height:230px; overflow-y:auto; display:flex; flex-direction:column; gap:8px; padding:4px 2px; margin-bottom:8px; }
  .msg { padding:8px 11px; border-radius:10px; font-size:13px; max-width:92%; }
  .msg.user { background: var(--seq-100); color: var(--seq-700); align-self:flex-end; }
  .msg.bot { background: var(--surface-1); color: var(--text-primary); align-self:flex-start; border:1px solid var(--border); }
  .msg.bot .lead-pill { display:inline-block; background:var(--surface-card); border:1px solid var(--border);
    border-radius:6px; padding:2px 7px; margin:2px 3px 0 0; font-size:12px; cursor:pointer; font-weight:600; }
  .msg.bot .lead-pill:hover { border-color: var(--series-blue); color: var(--series-blue); }
  .chat-input-row { display:flex; gap:6px; }
  .chat-input-row input { flex:1; padding:9px 11px; border:1px solid var(--border); border-radius:8px;
    background: var(--surface-1); color:var(--text-primary); font-size:13px; }
  .chat-input-row button { padding:9px 14px; border-radius:8px; border:none; background:var(--series-blue); color:#fff; font-weight:700; cursor:pointer; }
  .suggest-row { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
  .suggest-chip { font-size:12px; padding:5px 10px; border-radius:20px; border:1px solid var(--border);
    background:var(--surface-1); cursor:pointer; color:var(--text-secondary); }
  .suggest-chip:hover { border-color:var(--series-blue); color:var(--series-blue); }
  .assistant-note { font-size:11px; color:var(--text-muted); margin-top:8px; border-top:1px dashed var(--gridline); padding-top:8px; }

  .crm-drop { border:1.5px dashed var(--border); border-radius:10px; padding:20px; text-align:center; font-size:13px; color:var(--text-secondary); margin-bottom:10px; }
  .crm-drop input[type=file] { margin-top:8px; }
  #crmSummary { font-size:13px; padding:10px 12px; border-radius:8px; background:var(--seq-100); color:var(--seq-700); display:none; margin-bottom:8px; }
  .sample-link { font-size:12px; color: var(--series-blue); cursor:pointer; text-decoration:underline; }

  .table-card { background: var(--surface-card); border:1px solid var(--border); border-radius:12px; padding:16px 18px; box-shadow: var(--shadow); }
  .app-view-panel { display:none; }
  .app-view-panel.view-active { display:block; margin-bottom:14px; animation:view-in .18s ease-out; }
  .kpi-row.app-view-panel.view-active { display:grid; }
  @keyframes view-in { from { opacity:.45; transform:translateY(3px); } to { opacity:1; transform:none; } }
  .filter-row { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; align-items:center; }
  .filter-row select, .filter-row input[type=text] {
    padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:var(--surface-1);
    color:var(--text-primary); font-size:13px;
  }
  table.data { width:100%; min-width:820px; border-collapse:collapse; font-size:13px; }
  table.data thead th { text-align:left; padding:9px 10px; border-bottom:2px solid var(--gridline); color:var(--text-muted);
    font-size:11px; text-transform:uppercase; letter-spacing:0.4px; cursor:pointer; white-space:nowrap; font-weight:700; }
  table.data thead th:hover { color: var(--text-primary); }
  table.data tbody td { padding:9px 10px; border-bottom:1px solid var(--gridline); vertical-align:top; }
  table.data tbody tr:hover { background: var(--surface-1); cursor:pointer; }
  .tag { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; padding:3px 8px; border-radius:20px; }
  .tag.new { background: #fde3d6; color:#a3401a; }
  .tag.existing { background: #d7f2d7; color: var(--good-text); }
  :root[data-theme="dark"] .tag.new, .dark-fallback .tag.new { background:#4a2a17; color:#f0a884; }
  :root[data-theme="dark"] .tag.existing, .dark-fallback .tag.existing { background:#123a12; color:#7fe07f; }
  .action-btn { font-size:12px; padding:5px 10px; border-radius:6px; border:1px solid var(--series-blue); color:var(--series-blue);
    background:transparent; cursor:pointer; font-weight:700; }
  .action-btn:hover { background: var(--series-blue); color:#fff; }

  /* Drawer */
  #drawerOverlay { position:fixed; inset:0; background:rgba(0,0,0,0.35); display:none; z-index:100; }
  #drawer { position:fixed; top:0; right:0; height:100%; width:420px; max-width:92vw; background:var(--surface-card);
    box-shadow:-4px 0 24px rgba(0,0,0,0.25); z-index:101; transform:translateX(100%); transition:transform .2s ease; overflow-y:auto; }
  #drawer.open { transform:translateX(0); }
  #drawerOverlay.open { display:block; }
  .drawer-head { padding:18px 20px; border-bottom:1px solid var(--gridline); display:flex; justify-content:space-between; align-items:flex-start; }
  .drawer-body { padding:18px 20px; }
  .drawer-body h3 { font-size:16px; margin:0 0 2px 0; }
  .field-row { display:flex; justify-content:space-between; font-size:13px; padding:6px 0; border-bottom:1px solid var(--gridline); }
  .field-row .k { color: var(--text-muted); }
  .field-row .v { font-weight:600; text-align:right; }
  textarea#outreachText { width:100%; min-height:220px; margin-top:10px; padding:12px; border-radius:8px; border:1px solid var(--border);
    background:var(--surface-1); color:var(--text-primary); font-size:13px; font-family:inherit; resize:vertical; }
  .drawer-actions { display:flex; gap:8px; margin-top:10px; }
  .close-x { background:none; border:none; font-size:20px; cursor:pointer; color:var(--text-muted); line-height:1;}

  footer.app-footer { font-size:12px; color:var(--text-muted); padding:14px 4px 30px; text-align:center; }
  footer.app-footer a { color: var(--series-blue); }

  @media (max-width: 980px) {
    .main-grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 640px) {
    .wrap { padding:10px; }
    .app-nav { top:5px; gap:3px; padding:5px; }
    .app-nav-btn { justify-content:center; padding:9px 4px; text-align:center; }
    .app-nav-btn small, .app-nav-icon { display:none; }
    .app-nav-btn b { font-size:11.5px; }
    .view-context { display:block; padding:7px 3px 12px; }
    .view-context h2 { font-size:17px; }
    .view-context p { margin-top:5px; }
    .kpi-row { grid-template-columns: repeat(2,1fr); gap:10px; }
    .kpi-value { font-size:22px; }
    header.top { padding:14px 16px; }
    header.top h1 { font-size:18px; }
    .card, .table-card, .callout { padding:14px 14px; }
    #drawer { width:100%; max-width:100%; }
    .filter-row { flex-direction:column; align-items:stretch; }
    .filter-row select, .filter-row input[type=text] { width:100%; }
  }
  @media (max-width: 400px) {
    .kpi-row { grid-template-columns: 1fr; }
  }

  @media (prefers-reduced-motion: reduce) {
    .app-view-panel.view-active { animation:none; }
  }

  /* ==========================================================================
     Multi-source additions (Earliest signals, sources/refresh panel, SQL chat).
     Uses only the existing custom properties, so both themes work unchanged.
     ========================================================================== */

  .kpi-card.highlight { border-left:3px solid var(--series-orange); }

  .early-head { display:flex; align-items:flex-start; gap:12px; flex-wrap:wrap; }
  .early-head h2 { flex:1 1 320px; }
  .early-actions { display:flex; gap:8px; flex-wrap:wrap; }
  .early-actions select, .early-actions button {
    font-size:12px; padding:5px 9px; border-radius:8px;
    border:1px solid var(--border); background:var(--surface-card); color:var(--text-primary);
  }
  .early-actions button { cursor:pointer; }
  #refreshNow { background:var(--series-blue); border-color:var(--series-blue); color:#fff; font-weight:600; }

  /* Cards rather than a table: a pre-permit lead needs the "why now" sentence
     visible, which doesn't fit a row. */
  .early-list {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr));
    gap:10px; margin-top:12px;
  }
  .early-item {
    border:1px solid var(--border); border-left-width:3px; border-radius:10px;
    padding:11px 12px; background:var(--surface-card); cursor:pointer;
    transition:transform .08s ease, box-shadow .08s ease;
  }
  .early-item:hover { transform:translateY(-1px); box-shadow:0 3px 10px rgba(0,0,0,0.09); }
  .early-item.stage-earliest { border-left-color:var(--series-orange); }
  .early-item.stage-early    { border-left-color:var(--warning); }
  .early-item.stage-mid      { border-left-color:var(--series-blue); }
  .early-item.stage-late     { border-left-color:var(--seq-400); }
  .early-item.stage-latest   { border-left-color:var(--text-muted); }

  .early-item-head { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
  .stage-chip, .lead-chip, .score-chip {
    font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:20px;
    text-transform:uppercase; letter-spacing:.4px; white-space:nowrap;
  }
  .stage-chip { background:var(--seq-100); color:var(--seq-700); }
  .lead-chip  { background:transparent; border:1px solid var(--border); color:var(--text-secondary); }
  .score-chip { margin-left:auto; background:var(--series-orange); color:#fff; }
  .early-item-op   { font-weight:700; font-size:14px; line-height:1.25; }
  .early-item-meta { font-size:11.5px; color:var(--text-muted); margin-top:2px; }
  .early-item-why  { font-size:12.5px; color:var(--text-primary); margin-top:6px; font-weight:600; }
  .early-item-note { font-size:11.5px; color:var(--text-secondary); margin-top:4px; line-height:1.45; }
  .early-item-foot {
    font-size:11.5px; color:var(--text-secondary); margin-top:8px;
    padding-top:7px; border-top:1px solid var(--border);
    display:flex; gap:6px; flex-wrap:wrap; align-items:baseline;
  }
  .early-item-foot .seen { margin-left:auto; color:var(--text-muted); font-size:10.5px; }
  .muted { color:var(--text-muted); }

  .refresh-status {
    font-size:12px; color:var(--text-secondary); line-height:1.55;
    margin:10px 0; padding:9px 11px; border-radius:9px;
    background:var(--surface-subtle, var(--surface-card)); border:1px solid var(--border);
  }
  .refresh-status.ok   { border-left:3px solid var(--good); }
  .refresh-status.warn { border-left:3px solid var(--warning); }
  .refresh-status pre { white-space:pre-wrap; font-size:11px; margin:6px 0 0; }

  #sourcesTable td { vertical-align:top; }
  .src-note { font-size:11px; color:var(--text-muted); line-height:1.45; margin-top:3px; max-width:430px; }
  .ok-pill, .err-pill {
    font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:20px; text-transform:uppercase;
  }
  .ok-pill  { background:var(--good); color:#fff; }
  .err-pill { background:var(--critical); color:#fff; }

  /* SQL chat results */
  .answer-intent { font-weight:700; font-size:13px; margin-bottom:3px; }
  .answer-note   { font-size:11.5px; color:var(--text-secondary); margin-bottom:8px; line-height:1.45; }
  .answer-note.warn { color:var(--critical); }
  .thinking { font-size:12.5px; color:var(--text-muted); font-style:italic; }
  .result-scroll { overflow-x:auto; max-height:340px; overflow-y:auto; }
  table.data.result { font-size:11.5px; }
  table.data.result th {
    position:sticky; top:0; background:var(--surface-card); z-index:1; white-space:nowrap;
  }
  table.data.result td { white-space:nowrap; max-width:210px; overflow:hidden; text-overflow:ellipsis; }
  .sql-details { margin-top:7px; font-size:11px; color:var(--text-muted); }
  .sql-details summary { cursor:pointer; }
  .sql-details pre, pre.schema {
    background:var(--surface-card); border:1px solid var(--border); border-radius:7px;
    padding:8px 10px; overflow-x:auto; font-size:11px; line-height:1.5; margin-top:6px;
    white-space:pre; color:var(--text-secondary);
  }
  .suggest-row .chip {
    display:inline-block; font-size:11.5px; padding:4px 9px; margin:2px 3px 2px 0;
    border:1px solid var(--border); border-radius:20px; cursor:pointer; color:var(--text-secondary);
  }
  .suggest-row .chip:hover { border-color:var(--series-blue); color:var(--series-blue); }
  .sample-link.ex { cursor:pointer; text-decoration:underline; }

  /* Map and momentum ------------------------------------------------------ */
  .map-head { align-items:center; margin-bottom:6px; }
  .map-head select {
    font-size:12px; padding:6px 9px; border-radius:8px; border:1px solid var(--border);
    background:var(--surface-card); color:var(--text-primary);
  }
  .signal-marker {
    fill:var(--series-blue); stroke:var(--surface-card); stroke-width:1.5px;
    cursor:pointer; opacity:.88;
  }
  .signal-marker.matched { fill:var(--good); }
  .signal-marker:hover { opacity:1; stroke:var(--text-primary); stroke-width:2.5px; }
  .prepermit-dot { background:var(--series-blue); }

  .momentum-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:10px; }
  .momentum-grid h3, .workspace-columns h3 {
    margin:0 0 7px; font-size:12px; text-transform:uppercase;
    color:var(--text-muted); letter-spacing:.45px;
  }
  .momentum-row {
    display:grid; grid-template-columns:minmax(130px,1fr) 80px 62px 104px;
    gap:8px; align-items:center; padding:7px 0; border-bottom:1px solid var(--gridline);
    font-size:12px;
  }
  .momentum-name { min-width:0; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .momentum-meta { color:var(--text-muted); font-size:10.5px; font-weight:500; }
  .momentum-value { text-align:right; font-variant-numeric:tabular-nums; }
  .momentum-delta { text-align:right; font-weight:700; color:var(--good-text); }
  .momentum-delta.flat, .momentum-delta.baseline { color:var(--text-muted); }
  .sparkline { width:100px; height:28px; display:block; }

  .early-item-actions { display:flex; gap:7px; align-items:center; margin-top:8px; }
  .early-item-actions a { font-size:11.5px; color:var(--series-blue); }
  .early-item.existing-contact { box-shadow:inset 0 0 0 1px var(--good); }

  /* Authenticated workspace ---------------------------------------------- */
  .account-status {
    font-size:11.5px; border:1px solid var(--border); border-radius:8px;
    padding:8px 10px; margin-bottom:10px; color:var(--text-secondary);
  }
  .account-status.authenticated { border-left:3px solid var(--good); }
  .account-status.local { border-left:3px solid var(--warning); }
  .contact-form {
    display:grid; grid-template-columns:1.2fr 1fr 1.2fr 1fr auto;
    gap:7px; margin:10px 0;
  }
  .contact-form input, .workflow-panel input, .workflow-panel select {
    min-width:0; padding:7px 8px; border:1px solid var(--border); border-radius:7px;
    background:var(--surface-1); color:var(--text-primary); font-size:12px;
  }
  .workspace-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:12px; }
  .workspace-list { max-height:210px; overflow:auto; border:1px solid var(--border); border-radius:8px; }
  .workspace-item { padding:7px 9px; border-bottom:1px solid var(--gridline); font-size:11.5px; }
  .workspace-item:last-child { border-bottom:0; }
  .workspace-item b { display:block; }
  .workspace-item .meta { color:var(--text-muted); font-size:10.5px; }
  .workspace-empty { padding:12px; color:var(--text-muted); font-size:11.5px; }
  .reminder-due { border-left:3px solid var(--critical); }
  .reminder-complete { float:right; }

  .workflow-panel {
    margin-top:14px; padding-top:12px; border-top:1px solid var(--gridline);
  }
  .workflow-panel h4 { margin:0 0 7px; font-size:12px; }
  .workflow-row { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:7px; }
  .workflow-row .wide { grid-column:1 / -1; }
  .lead-history { margin-top:10px; }

  @media (max-width: 640px) {
    .early-list { grid-template-columns:1fr; }
    .src-note { max-width:none; }
    .early-actions { width:100%; }
    .early-actions select { flex:1 1 auto; }
    .momentum-grid, .workspace-columns { grid-template-columns:1fr; }
    .momentum-row { grid-template-columns:minmax(110px,1fr) 58px 48px 86px; }
    .sparkline { width:82px; }
    .contact-form { grid-template-columns:1fr 1fr; }
    .contact-form button { grid-column:1 / -1; }
    .workflow-row { grid-template-columns:1fr; }
    .workflow-row .wide { grid-column:auto; }
  }
