  :root {
    color-scheme: dark;
    --on-accent: #08110c; /* text on an accent-coloured button */
    --meter-track: #1d3352;
    --bg: #0a0c0f;
    --card: #14181e;
    --card2: #1a1f26;
    --border: #232830;
    --border-light: #2e343e;
    --field: #1f252e;
    --field-focus: #232a34;
    --text: #e9edf2;
    --muted: #9aa4b2;
    --text-faint: #5c6472;
    --accent: #2bcb9d;
    --accent-dim: #186b52;
    --accent-light: #10261f;
    --green: #22c55e;
    --green-bg: #10291f;
    --green-border: #1c4a37;
    --yellow: #eab308;
    --yellow-bg: #2a2010;
    --yellow-border: #4a3a18;
    --red: #ef4444;
    --red-bg: #2a1616;
    --red-border: #4a2424;
    --blue: #60a5fa;
    --blue-bg: #16202e;
    --blue-border: #24344a;
    --radius: 12px;
    --mono: "SF Mono", ui-monospace, "Roboto Mono", Menlo, Consolas, monospace;
  }
  /* 2026-10-21 (Alvaro: "can we add a day and night mode switch?"): day
     mode. A first visit follows the device setting; the switch beside the
     logo sets data-theme on <html> and is remembered (localStorage
     "entgentech-theme"). Same tokens, light values; the chart colours
     (DASH_C) read on both. */
  :root[data-theme="light"] {
    color-scheme: light;
    --bg: #f5f6f8; --card: #ffffff; --card2: #f8f9fb;
    --border: #dde1e7; --border-light: #c3c9d2; --field: #ffffff; --field-focus: #ffffff;
    --text: #14181e; --muted: #4b5563; --text-faint: #6b7280;
    --accent: #0c8a66; --accent-dim: #7cc8b0; --accent-light: #e7f5ef; --on-accent: #ffffff;
    --green: #15803d; --green-bg: #ecfdf3; --green-border: #a6dfbd;
    --yellow: #8a5a00; --yellow-bg: #fff7e0; --yellow-border: #ecd08a;
    --red: #b42318; --red-bg: #fef3f2; --red-border: #f2b8b1;
    --blue: #1d4ed8; --blue-bg: #eef4ff; --blue-border: #b8cdf5;
    --meter-track: #dbe7f7;
  }
  @media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) {
      color-scheme: light;
      --bg: #f5f6f8; --card: #ffffff; --card2: #f8f9fb;
    --border: #dde1e7; --border-light: #c3c9d2; --field: #ffffff; --field-focus: #ffffff;
    --text: #14181e; --muted: #4b5563; --text-faint: #6b7280;
    --accent: #0c8a66; --accent-dim: #7cc8b0; --accent-light: #e7f5ef; --on-accent: #ffffff;
    --green: #15803d; --green-bg: #ecfdf3; --green-border: #a6dfbd;
    --yellow: #8a5a00; --yellow-bg: #fff7e0; --yellow-border: #ecd08a;
    --red: #b42318; --red-bg: #fef3f2; --red-border: #f2b8b1;
    --blue: #1d4ed8; --blue-bg: #eef4ff; --blue-border: #b8cdf5;
    --meter-track: #dbe7f7;
    }
  }
  /* The yellow badge keeps a yellow fill in day mode (--yellow is a text colour there). */
  :root[data-theme="light"] .score-yellow, :root[data-theme="light"] .dmt-sev-pill.sev-medium { background: #eab308; color: #1c1300; }
  @media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) .score-yellow, :root:not([data-theme="dark"]) .dmt-sev-pill.sev-medium { background: #eab308; color: #1c1300; } }
  .brand-bar { position: relative; }
  /* !important: the phone rule that makes primary buttons full width would stretch it */
  .theme-toggle { margin: 0; width: 38px !important; height: 38px; padding: 0 !important; border-radius: 999px; background: transparent; color: var(--muted); border: 1px solid var(--border-light); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
  .theme-toggle:hover { color: var(--text); border-color: var(--accent-dim); }
  .theme-toggle svg { width: 18px; height: 18px; display: block; }
  .brand-bar .theme-toggle { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }

  /* Brand re-theme 2026-08-31: dark "mission control" direction to match
     entgentech_site/ and the rest of the EntgenTech suite. Same semantic
     var names as before, new values -- see claude/decisions-log.md. */
  body { background-image: radial-gradient(circle at 12% 0%, rgba(43,203,157,0.06), transparent 40%); background-repeat: no-repeat; }
  * { box-sizing: border-box; }
  body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    padding: 24px;
  }
  .app { max-width: 900px; margin: 0 auto; }
  h1 { font-size: 22px; margin: 0 0 4px; }
  .subtitle { color: var(--muted); margin: 0 0 18px; }
  .chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 24px; }
  .chip {
    background: var(--accent-light);
    color: var(--accent);
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
  }
  .card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px;
    margin-bottom: 18px;
  }
  .card h2 { font-size: 15px; margin: 0 0 4px; }
  .card .hint { color: var(--muted); font-size: 12.5px; margin: 0 0 14px; }
  .profile-funding-details { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
  .profile-funding-title { font-size: 13px; font-weight: 600; color: var(--text); }
  label { display: block; font-size: 12.5px; font-weight: 600; color: var(--muted); margin: 12px 0 4px; }
  label:first-of-type { margin-top: 0; }
  /* Per-field hint, between a label and its input. Distinct from .card .hint,
     which introduces a whole card and carries a much larger bottom margin. */
  .field-hint { color: var(--muted); font-size: 12.5px; line-height: 1.45; margin: 0 0 8px; max-width: 62ch; }
  input[type=text], input[type=password], textarea, select {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 9px 10px;
    font-size: 13.5px;
    font-family: inherit;
    color: var(--text);
    /* 2026-10-08: a shade lighter than the card (was var(--card), the same
       colour, so fields disappeared into it). Applies to every field in the
       app, the DMT intake included. */
    background: var(--field);
    border-color: var(--border-light);
  }
  input[type=text]:focus, input[type=password]:focus, textarea:focus, select:focus {
    outline: none; border-color: var(--accent-dim); background: var(--field-focus);
  }
  input::placeholder, textarea::placeholder { color: var(--text-faint); }
  textarea { resize: vertical; min-height: 60px; }
  .row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  button {
    background: var(--accent);
    color: var(--on-accent);
    border: none;
    border-radius: 8px;
    padding: 10px 16px;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 16px;
  }
  button:disabled { opacity: 0.55; cursor: default; }
  button.secondary, a.secondary { background: transparent; color: var(--accent); border: 1px solid var(--accent); }

  /* 2026-09-10, audit finding #3: shown when this tab's bundle predates the
     running deploy (see checkServerVersion in app.js). Bottom-centre rather
     than a top banner on purpose -- it must not push the page down or cover
     anything while a founder is mid-run, because the whole point is that it
     interrupts nothing and can be ignored. */
  .version-notice {
    position: fixed;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: calc(100vw - 32px);
    padding: 10px 14px;
    background: var(--card2);
    border: 1px solid var(--accent-dim);
    border-radius: 10px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.45);
    color: var(--text);
    font-size: 13px;
  }
  .version-notice button { margin-top: 0; }
  button.small-btn, a.small-btn { padding: 7px 12px; font-size: 12.5px; margin-top: 10px; }
  /* 2026-09-09: anchors styled as buttons -- the deliverables downloads have
     to be real <a download> links (a synthesised click on a blob URL is a
     silent no-op in Safari), so they need the base `button` look that the
     element-qualified rules above don't give them. */
  a.secondary, a.small-btn {
    display: inline-block;
    text-decoration: none;
    border-radius: 8px;
    font-family: inherit;
    font-weight: 600;
    text-align: center;
    cursor: pointer;
  }
  .error-box {
    background: var(--red-bg); color: var(--red); border: 1px solid var(--red-border);
    padding: 10px 12px; border-radius: 8px; font-size: 13px; margin-top: 12px;
  }
  /* 2026-10-15: "needs more detail" / "several ideas" -- a request, not an error */
  .detail-box {
    background: var(--card2); color: var(--text); border: 1px solid var(--border);
    padding: 10px 12px; border-radius: 8px; font-size: 13px; margin-top: 12px;
  }
  .detail-box p { margin: 6px 0 4px; }
  .suggestion-note { font-size: 12.5px; color: var(--muted); font-style: italic; margin: 6px 0 0; }
  .detail-box ul, .claims-list { margin: 4px 0 0; padding-left: 18px; }
  .result {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px;
    margin-top: 14px;
    background: var(--card2);
  }
  .result-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
  /* 2026-10-21: the card of an idea just scored folds to its title and score. */
  .result-toggle-row { display: flex; justify-content: flex-end; margin: -4px 0 6px; }
  .result-toggle { min-height: 36px; }
  .result-toggle-bottom { margin: 14px 0 0; }
  .result-collapsed .result-body, .result-collapsed .result-summary, .result-collapsed .suggestion-note { display: none; }
  .result-collapsed .result-head { align-items: center; }
  .result-title { font-size: 16px; font-weight: 700; margin: 0 0 4px; }
  .result-summary { color: var(--muted); margin: 0 0 12px; font-size: 13px; }
  .score-badge {
    min-width: 56px; text-align: center; border-radius: 10px; padding: 6px 10px;
    font-size: 20px; font-weight: 800; color: #fff; flex-shrink: 0;
  }
  .score-sub { font-size: 10px; font-weight: 600; opacity: 0.85; display: block; margin-top: -2px;}
  .score-green { background: var(--green); }
  .score-yellow { background: var(--yellow); color: #1c1300; }
  .score-red { background: var(--red); }
  .score-group { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0; }
  .subscore-row { display: flex; gap: 6px; }
  .subscore-pill {
    font-size: 10.5px; font-weight: 700; padding: 3px 8px; border-radius: 999px;
    background: var(--card2); color: var(--text); border: 1px solid var(--border); white-space: nowrap;
  }
  .subscore-pill.pill-opportunity { color: var(--green); border-color: var(--green-border); background: var(--green-bg); }
  .subscore-pill.pill-fit { color: var(--blue); border-color: var(--blue-border); background: var(--blue-bg); }
  .criteria-list { margin-top: 10px; }
  .criteria-item { margin-bottom: 9px; }
  .criteria-item-top { display: flex; justify-content: space-between; align-items: center; font-size: 12.5px; margin-bottom: 3px; gap: 6px; }
  .criteria-item-top .cname-group { display: flex; align-items: center; gap: 6px; min-width: 0; }
  .criteria-item-top .cname { font-weight: 600; }
  .criteria-item-top .cscore { color: var(--muted); flex-shrink: 0; }
  .cat-tag {
    font-size: 9.5px; font-weight: 700; padding: 1px 6px; border-radius: 999px; text-transform: uppercase;
    letter-spacing: 0.02em; flex-shrink: 0;
  }
  .cat-tag.cat-opportunity { color: var(--green); background: var(--green-bg); }
  .cat-tag.cat-fit { color: var(--blue); background: var(--blue-bg); }
  .cat-tag.cat-extra { color: var(--muted); background: transparent; border: 1px solid var(--border); }
  .bar-track { background: var(--border); border-radius: 4px; height: 6px; overflow: hidden; }
  .bar-fill { background: var(--accent); height: 100%; border-radius: 4px; }
  .criteria-note { color: var(--muted); font-size: 12px; margin-top: 2px; }
  .verdict { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); font-size: 13px; }
  .verdict strong { display: block; margin-bottom: 4px; font-size: 12.5px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); }
  .verdict-extras { display: grid; grid-template-columns: 1fr 2fr; gap: 12px; }
  @media (max-width: 600px) { .verdict-extras { grid-template-columns: 1fr; } }
  .spinner {
    display: inline-block; width: 14px; height: 14px; border: 2px solid rgba(255,255,255,0.5);
    border-top-color: #fff; border-radius: 50%; animation: spin 0.7s linear infinite; margin-right: 6px; vertical-align: -2px;
  }
  @keyframes spin { to { transform: rotate(360deg); } }
  .history-head { display: flex; justify-content: space-between; align-items: center; margin: 26px 0 10px; }
  .history-head h2 { font-size: 15px; margin: 0; }
  .clear-btn { background: none; color: var(--muted); border: 1px solid var(--border); padding: 6px 10px; font-size: 12px; margin: 0; }
  /* Account deletion (2026-10-05). Red is used nowhere else for a button. */
  .account-card { margin-top: 26px; }
  .danger-box { background: var(--red-bg); color: var(--text); border: 1px solid var(--red-border); padding: 12px 14px; border-radius: 8px; font-size: 13px; line-height: 1.5; margin: 14px 0 4px; }
  .danger-box strong { color: var(--red); }
  .account-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
  .account-actions button { margin-top: 0; width: auto; }
  button.danger-btn { background: var(--red); color: #fff; border: 1px solid var(--red); }
  button.danger-btn:disabled { opacity: 0.6; }
  details.hist-entry {
    background: var(--card); border: 1px solid var(--border); border-radius: 10px;
    padding: 12px 14px; margin-bottom: 8px;
  }
  details.hist-entry summary {
    cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px;
  }
  details.hist-entry summary::-webkit-details-marker { display: none; }
  .hist-score {
    width: 34px; height: 34px; border-radius: 8px; color: #fff; font-weight: 800;
    display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0;
  }
  .hist-summary-text { flex: 1; }
  .hist-title { font-weight: 600; font-size: 13.5px; }
  .hist-meta { color: var(--muted); font-size: 11.5px; }
  .hist-type-tag {
    font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 999px;
    background: var(--accent-light); color: var(--accent); flex-shrink: 0;
  }
  .hist-body { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--border); }
  .hist-actions { display: flex; gap: 8px; }
  .del-btn {
    background: none; border: none; color: var(--muted); font-size: 16px; cursor: pointer;
    padding: 0 2px; margin: 0; line-height: 1;
  }
  .del-btn:hover { color: var(--text); }
  /* 2026-10-08: minimize (-) sits next to the delete (x); only useful while
     the card is open. */
  .min-btn { display: none; margin-right: 6px; }
  details.hist-entry[open] .min-btn { display: inline-block; }
  /* In-app "can't be undone" confirmation that replaces the x (and Clear all) */
  .del-confirm { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
  .del-confirm-text { font-size: 12.5px; color: var(--muted); }
  .del-confirm button { margin-top: 0; }
  .empty-state { color: var(--muted); font-size: 13px; text-align: center; padding: 20px 0; }

  /* Investor materials (Phase 2) */
  .im-block { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); }
  .im-btn { margin-top: 0; }
  /* 2026-10-22: the free-credit prompt above "Build investor materials" */
  .credit-prompt { margin: 0 0 8px; padding: 9px 12px; border-radius: 8px; background: var(--accent-light); border: 1px solid var(--accent-dim); color: var(--text); font-size: 13px; line-height: 1.45; }
  .im-target:empty { margin: 0; }
  .investor-materials { margin-top: 4px; }
  .im-exec-summary {
    background: var(--accent-light); border-radius: 10px; padding: 12px 14px; margin-bottom: 14px;
  }
  .im-exec-summary strong {
    display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em;
    color: var(--accent); margin-bottom: 4px;
  }
  .im-exec-summary p { margin: 0 0 6px; font-size: 13px; }
  .im-exec-summary p:last-child { margin-bottom: 0; }
  .im-section { margin-bottom: 14px; }
  .im-section-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
  .im-section-head h3 { font-size: 13.5px; margin: 0; }
  .im-section p { margin: 0 0 6px; font-size: 13px; }
  .im-section p:last-child { margin-bottom: 0; }
  .conf-badge {
    font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 999px; flex-shrink: 0;
  }
  .flag-estimated { background: var(--card2); color: var(--muted); }
  .flag-needs { background: var(--yellow-bg); color: var(--yellow); }
  .im-points { margin: 6px 0 0; padding-left: 18px; font-size: 12.5px; }
  .im-points li { margin-bottom: 4px; }
  .im-disclaimer { display: block; color: var(--muted); font-size: 11.5px; margin-top: 8px; font-style: italic; }
  /* Investor materials v2 (playbook 02): guard rails and key figures */
  .im-flags { background: var(--yellow-bg); border-radius: 8px; padding: 8px 12px; margin: 6px 0 10px; font-size: 12.5px; }
  .im-flags strong { color: var(--yellow); display: block; margin-bottom: 4px; }
  .im-flags ul { margin: 0; padding-left: 18px; }
  .im-flags li { margin-bottom: 4px; }
  .im-flags-none { background: var(--card2); }
  .im-flags-none strong { color: var(--muted); }
  .im-flags p { margin: 0; }
  .im-flag-guide { color: var(--muted); font-size: 11.5px; }
  .im-figures { width: 100%; border-collapse: collapse; font-size: 12.5px; margin: 8px 0 4px; }
  .im-figures th, .im-figures td { padding: 4px 6px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; }
  .im-figures th:first-child { text-align: left; font-weight: 600; }
  .im-figures thead th { color: var(--muted); font-weight: 600; }
  @media (max-width: 600px) { .im-figures { font-size: 11.5px; } .im-figures th, .im-figures td { padding: 3px 4px; } }

  /* Market simulation (Phase 3, Tier A) */
  .sim-block { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); }
  .sim-btn { margin-top: 0; }
  .sim-hint { color: var(--muted); font-size: 12px; font-style: italic; margin-top: 4px; }
  .deliverables-btn { margin-top: 0; }
  .deliverables-status { color: var(--muted); font-size: 12.5px; margin-top: 8px; display: flex; align-items: center; gap: 8px; }
  .deliverables-done { font-size: 13px; margin-top: 8px; line-height: 1.5; }
  .sim-banner {
    background: var(--red-bg); color: var(--red); border: 1px solid var(--red-border);
    padding: 8px 12px; border-radius: 8px; font-size: 11.5px; font-weight: 700;
    text-align: center; margin-bottom: 12px; letter-spacing: 0.02em;
  }
  .sim-signal { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; margin-bottom: 10px; }
  .sim-signal-strong { background: var(--green-bg); color: var(--green); }
  .sim-signal-mixed { background: var(--yellow-bg); color: var(--yellow); }
  .sim-signal-weak { background: var(--red-bg); color: var(--red); }
  .sim-section-head { font-size: 13px; font-weight: 700; margin: 14px 0 6px; color: var(--text); }
  .persona-card { background: var(--card2); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; }
  .persona-name { font-weight: 700; font-size: 12.5px; margin-bottom: 3px; }
  .persona-row { font-size: 12px; color: var(--muted); margin-top: 2px; }
  .persona-row strong { color: var(--text); font-weight: 600; }
  .sim-risks { font-size: 13px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border); }

  /* Phase 8 -- Credit Finder */
  .checkbox-group { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 4px; }
  .checkbox-group label {
    display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 400;
    color: var(--text); margin: 0; text-transform: none; letter-spacing: normal;
  }
  .checkbox-group input[type=checkbox] { width: auto; margin: 0; }
  .consent-note { color: var(--muted); font-size: 12px; margin: 6px 0 8px; line-height: 1.4; }
  .cf-block { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); }
  .cf-btn { margin-top: 0; }
  .cf-run-note { font-size: 13px; opacity: 0.75; margin: 8px 0 0; }
  .cf-results { margin-top: 10px; }
  .cf-coverage-note { color: var(--muted); font-size: 12.5px; font-style: italic; margin: 0 0 12px; }
  .cf-match { background: var(--card2); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; }
  .cf-match-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
  .cf-match-name { font-weight: 700; font-size: 13.5px; margin: 0 0 2px; }
  .cf-match-meta { color: var(--muted); font-size: 11.5px; margin: 0; }
  .cf-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 10.5px; font-weight: 700; white-space: nowrap; letter-spacing: 0.02em; }
  .cf-conf-verified { background: var(--green-bg); color: var(--green); }
  .cf-conf-needs-verification { background: var(--yellow-bg); color: var(--yellow); }
  .cf-cat-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 10px; font-weight: 700; white-space: nowrap; letter-spacing: 0.02em; margin-left: 6px; }
  .cf-cat-debt { background: var(--blue-bg); color: var(--blue); }
  .cf-cat-equity { background: var(--accent-light); color: var(--accent); }
  .cf-cat-alternative { background: var(--card2); color: var(--muted); }
  .cf-cat-coverage { background: var(--card2); border-radius: 8px; padding: 10px 12px; margin-bottom: 12px; }
  .cf-cat-coverage-row { font-size: 12px; color: var(--muted); margin: 4px 0; display: flex; align-items: center; gap: 4px; }
  .cf-cat-coverage-row .cf-cat-badge { margin-left: 0; }
  .cf-sponsored-section { margin-bottom: 16px; padding-bottom: 4px; border-bottom: 1px solid var(--border); }
  .cf-sponsored-heading { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin: 0 0 8px; }
  .cf-sponsor-card { background: var(--yellow-bg); border: 1px solid var(--yellow-border); border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; }
  .cf-sponsor-badge { background: var(--yellow-bg); color: var(--yellow); }
  .cf-match-reasoning { font-size: 12.5px; margin: 8px 0; line-height: 1.45; }
  .cf-match-facts { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--muted); margin-bottom: 4px; }
  .cf-match-facts strong { color: var(--text); font-weight: 600; }
  .cf-confidence-note { color: var(--muted); font-size: 11.5px; font-style: italic; margin: 4px 0; }
  .cf-source-link { font-size: 12px; color: var(--accent); text-decoration: none; font-weight: 600; }
  .cf-source-link:hover { text-decoration: underline; }

  /* Credit Finder report redesign (2026-08-27) */
  .cf-bottom-line { background: var(--accent-light); border-radius: 10px; padding: 14px 16px; margin-bottom: 14px; }
  .cf-bottom-line-text { font-size: 13.5px; line-height: 1.5; margin: 0 0 8px; color: var(--text); }
  .cf-capital-range { font-size: 13px; margin: 0; color: var(--text); }
  .cf-warnings { background: var(--yellow-bg); border-radius: 10px; padding: 10px 14px; margin-bottom: 14px; }
  .cf-warning-item { font-size: 12.5px; color: var(--yellow); margin: 4px 0; line-height: 1.4; }
  .cf-warning-item:before { content: "\26A0 "; }
  .cf-triage { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 16px; }
  .cf-triage-col { min-width: 0; }
  .cf-triage-heading { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; margin: 0 0 8px; padding-bottom: 6px; border-bottom: 2px solid var(--border); }
  .cf-triage-now .cf-triage-heading { color: var(--green); border-bottom-color: var(--green); }
  .cf-triage-later .cf-triage-heading { color: var(--yellow); border-bottom-color: var(--yellow-border); }
  .cf-triage-ignore .cf-triage-heading { color: var(--red); border-bottom-color: var(--red-border); }
  .cf-triage-empty { font-size: 12px; color: var(--muted); font-style: italic; }
  .cf-match-later { background: var(--yellow-bg); }
  .cf-match-ignore { background: var(--red-bg); border-color: var(--red-border); padding: 10px 12px; }
  .cf-match-ignore .cf-match-name { font-size: 12.5px; }
  .cf-match-ignore .cf-match-reasoning { font-size: 12px; margin: 4px 0 0; color: var(--red); }
  .cf-catch-note { font-size: 12px; color: var(--yellow); margin: 4px 0; }
  .cf-section { margin-bottom: 18px; }
  .cf-section-heading { font-size: 13px; font-weight: 700; margin: 0 0 10px; color: var(--text); }
  .cf-do-heading { color: var(--green); }
  .cf-dont-heading { color: var(--red); }
  .cf-stack-list { margin: 0; padding-left: 20px; font-size: 12.5px; line-height: 1.6; }
  .cf-stack-list li { margin-bottom: 6px; }
  .cf-stack-rationale { color: var(--muted); }
  .cf-table-wrap { overflow-x: auto; }
  .cf-table { width: 100%; border-collapse: collapse; font-size: 12px; }
  .cf-table th, .cf-table td { text-align: left; padding: 7px 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
  .cf-table th { background: var(--card2); font-weight: 700; color: var(--text); white-space: nowrap; }
  .cf-plain-list { margin: 0; padding-left: 20px; font-size: 12.5px; line-height: 1.6; }
  .cf-plain-list li { margin-bottom: 6px; }
  .cf-handoff-contact { color: var(--muted); }
  .cf-dodont { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .cf-report-footer { font-size: 11px; color: var(--muted); font-style: italic; margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--border); }
  .cf-methodology { font-size: 12px; color: var(--muted); margin: 10px 0; }
  .cf-methodology summary { cursor: pointer; font-weight: 600; color: var(--text); }
  .cf-methodology p { margin: 6px 0 0; line-height: 1.5; }
  @media (max-width: 640px) {
    .cf-triage { grid-template-columns: 1fr; }
    .cf-dodont { grid-template-columns: 1fr; }
  }

  /* Mobile / responsive (phone screens) */
  @media (max-width: 640px) {
    body { padding: 14px; }
    h1 { font-size: 19px; }
    .card { padding: 14px; }
    .row { grid-template-columns: 1fr; gap: 10px; }
    /* Prevent iOS Safari's auto-zoom-on-focus, which otherwise fires on any
       input/textarea/select under 16px */
    input[type=text], input[type=password], textarea, select { font-size: 16px; }
    /* Full-width primary actions -- easier to hit with a thumb than a left-aligned
       button, and matches how most mobile forms present their main CTA. Scoped to
       exclude the smaller secondary/utility buttons, which stay their natural size. */
    button:not(.small-btn):not(.clear-btn):not(.del-btn) {
      width: 100%;
      padding: 12px 16px;
    }
    .result-head { flex-wrap: wrap; }
    .score-group { align-items: flex-start; }
    .hist-actions { flex-wrap: wrap; }
    .hist-actions button { flex: 1; min-width: 120px; }
    .del-btn { padding: 6px 8px; font-size: 18px; }
  }

  /* 2026-10-08: step-by-step intro (replaced the h1 + subtitle) */
  .steps-intro { margin: 0 0 18px; }
  .steps-intro h1 { margin-bottom: 10px; }
  .steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
  .steps li { display: flex; gap: 12px; align-items: flex-start; font-size: 13.5px; line-height: 1.5; color: var(--muted); }
  .steps li strong { color: var(--text); }
  .step-num {
    flex-shrink: 0; width: 24px; height: 24px; border-radius: 50%; display: inline-flex;
    align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
    background: var(--accent-light); color: var(--accent); border: 1px solid var(--accent-dim);
  }
  .step-badge { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 999px; margin-left: 4px; vertical-align: 1px; }
  .step-free { background: var(--green-bg); color: var(--green); border: 1px solid var(--green-border); }
  .step-paid { background: var(--yellow-bg); color: var(--yellow); border: 1px solid var(--yellow-border); }

  /* 2026-10-08: Buy credits pack buttons */
  .pack-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
  #creditsCard .pack-btn { margin-top: 0; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 10px; color: var(--text); border-color: var(--border-light); background: var(--card2); }
  #creditsCard .pack-btn:hover, #creditsCard .pack-btn.pack-selected { border-color: var(--accent); }
  .pack-qty { font-size: 13px; font-weight: 600; }
  .pack-price { font-size: 20px; font-weight: 700; color: var(--accent); }
  .pack-save { font-size: 11.5px; color: var(--green); min-height: 1em; }
  .pack-ideas { font-size: 11.5px; color: var(--muted); }
  @media (max-width: 640px) {
    .pack-row { gap: 8px; }
    #creditsCard .pack-btn { padding: 10px 4px; }
    .pack-price { font-size: 18px; }
    /* the topbar's Log out stays its natural size, not a full-width CTA */
    #authTopbar button { width: auto; padding: 6px 12px; }
    /* the delete confirmation gets its own row under the card title */
    details.hist-entry summary { flex-wrap: wrap; }
    details.hist-entry summary .del-confirm { flex-basis: 100%; justify-content: flex-start; }
  }

  /* Accounts (Phase 6) */
  .auth-topbar { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 12.5px; color: var(--muted); }
  .auth-topbar button { margin: 0; padding: 6px 12px; font-size: 12.5px; }
  .auth-card { max-width: 420px; margin: 40px auto; }
  .ts-slot { margin: 12px 0 4px; min-height: 0; }
  .ts-slot:empty { margin: 0; }
  .auth-switch { font-size: 12.5px; color: var(--muted); margin-top: 14px; text-align: center; }
  .auth-switch a { color: var(--accent); cursor: pointer; text-decoration: none; font-weight: 600; }
  .auth-forgot { display: block; text-align: right; font-size: 12px; color: var(--accent); cursor: pointer; margin-top: 8px; text-decoration: none; }
  .auth-msg { font-size: 13px; margin-top: 12px; }
  .success-box { background: var(--green-bg); color: var(--green); border: 1px solid var(--green-border); padding: 10px 12px; border-radius: 8px; font-size: 13px; margin-top: 12px; }
  .import-banner { background: var(--accent-light); border-radius: 10px; padding: 12px 14px; margin-bottom: 18px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
  .import-banner p { margin: 0; font-size: 12.5px; color: var(--text); }
  .import-banner button { margin: 0; }

  /* Checkout panel (2026-09-29). The PayPal buttons sit on a white panel on
     purpose: when a buyer picks "Debit or Credit Card", PayPal expands an
     inline card form whose labels are dark text on a transparent
     background -- unreadable on this dark theme without it. */
  .topbar-credits { color: var(--accent); font-weight: 600; text-decoration: none; cursor: pointer; }
  .topbar-credits:hover { text-decoration: underline; }
  #creditsCard .pack-selected { border-color: var(--accent); color: var(--accent); }
  .pay-panel { margin-top: 14px; border: 1px solid var(--border-light); border-radius: 12px; padding: 14px; }
  .pay-summary { font-size: 14px; margin-bottom: 10px; }
  .pay-test-note { font-size: 12px; color: var(--muted); margin: -4px 0 10px; }
  .paypal-box { background: #fff; border-radius: 10px; padding: 12px 12px 4px; min-height: 60px; }
  .paypal-box .deliverables-status, .paypal-box .error-box { margin: 0 0 8px; }
  .paypal-box .deliverables-status { color: #333; }
  .pay-or { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; margin: 12px 0 2px; }
  .pay-or::before, .pay-or::after { content: ""; flex: 1; border-top: 1px solid var(--border-light); }
  .pay-crypto-btn { width: 100%; }
  .pay-success { margin-top: 12px; background: var(--accent-light); border-radius: 10px; padding: 12px 14px; font-size: 13px; }
  .site-footer { text-align: center; margin-top: 30px; padding-top: 16px; border-top: 1px solid var(--border); font-size: 12px; color: var(--muted); }
  .site-footer a { color: var(--muted); text-decoration: underline; }
  .site-footer span { margin: 0 6px; }
  .site-footer { line-height: 2; }
  .auth-terms { font-size: 12px; color: var(--muted); margin: 12px 0 0; }
  /* 2026-10-23: the opt-in to help improve the tools (off by default) */
  .consent-row { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0 0; font-size: 12.5px; font-weight: 400; color: var(--muted); line-height: 1.45; cursor: pointer; }
  .consent-row input { width: auto; margin: 2px 0 0; flex: 0 0 auto; }
  .consent-row a { color: var(--accent); }
  /* 2026-10-23: an idea brought from an AI assistant */
  .prefill-note { margin: 0 0 10px; padding: 9px 12px; border-radius: 8px; background: var(--accent-light); border: 1px solid var(--accent-dim); color: var(--text); font-size: 13px; line-height: 1.45; }
  .connections-box .connection-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 6px 0; border-top: 1px solid var(--border); font-size: 13px; }
  .connections-box .connection-row button { margin: 0; }
  .consent-msg { font-size: 12px; color: var(--muted); margin-top: 4px; min-height: 1em; }
  /* 2026-10-21: the password rules under the field, a live length count and a Show toggle */
  .pw-row { display: flex; align-items: flex-start; gap: 10px; margin-top: 6px; }
  .pw-hint { flex: 1; margin: 0; }
  .pw-hint.pw-ok { color: var(--green); }
  .pw-show { display: inline-flex; align-items: center; gap: 5px; margin: 0; font-size: 12.5px; font-weight: 600; color: var(--muted); white-space: nowrap; cursor: pointer; }
  .pw-show input { width: auto; margin: 0; }
  .auth-terms a { color: var(--muted); text-decoration: underline; }

  /* Print (PDF export) */
  .print-only { display: none; }
  @media print {
    body > *:not(#printArea) { display: none !important; }
    #printArea { display: block !important; position: static; width: 100%; padding: 0; }
    #printArea h1 { font-size: 20px; }
    #printArea h2 { font-size: 15px; margin-top: 18px; }
    #printArea h3 { font-size: 13px; margin-top: 12px; }
  }

  /* Deep Market Test (2026-08-28) -- reuses existing tokens/elements
     (label/input/select/textarea/.secondary/.small-btn/.error-box/.spinner
     are already globally styled above); these are only the genuinely new
     shapes this feature needs. */
  .dmt-block { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); }
  .dmt-block-done, .cf-block-done, .deliverables-block-done, .score-block-done, .im-block-done { background: var(--accent-light); border-radius: 10px; padding: 12px 14px; border-top: none; margin-top: 10px; }
  /* 2026-10-14: each part of an idea in History opens with "View full report" */
  .card-part-actions { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }
  .card-part-body { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); }
  .card-part-body .investor-materials { margin-top: 0; }
  .dmt-done-title { font-weight: 700; font-size: 12.5px; margin-bottom: 4px; }
  .dmt-done-text { font-size: 12px; color: var(--text); margin: 0; }
  .dmt-progress-label { font-size: 12.5px; color: var(--muted); display: flex; align-items: center; gap: 8px; }
  .dmt-intake input[type=text], .dmt-intake select, .dmt-intake textarea { margin-bottom: 4px; }
  .dmt-form-error { margin-top: 8px; }
  .dmt-report-view, .cf-report-view { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); }
  .dmt-table { width: 100%; border-collapse: collapse; margin: 8px 0 14px; font-size: 12.5px; }
  .dmt-table td, .dmt-table th { border: 1px solid var(--border); padding: 6px 8px; text-align: left; vertical-align: top; }
  .dmt-table th { background: var(--bg); font-weight: 700; }
  .dmt-triage { display: flex; gap: 10px; margin: 10px 0; flex-wrap: wrap; }
  .dmt-triage-col { flex: 1; min-width: 160px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; font-size: 12.5px; }
  .dmt-triage-col ul { margin: 6px 0 0; padding-left: 18px; }
  .dmt-triage-keep { border-top: 3px solid var(--green); }
  .dmt-triage-fix { border-top: 3px solid var(--yellow); }
  .dmt-triage-kill { border-top: 3px solid var(--red); }
  .dmt-sev-pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; color: #fff; }
  .dmt-sev-pill.sev-high { background: var(--red); }
  .dmt-sev-pill.sev-medium { background: var(--yellow); }
  .dmt-sev-pill.sev-structural { background: var(--muted); }

  .brand-bar { display: flex; justify-content: center; margin-bottom: 10px; }
  .brand-lockup {
    display: inline-flex; align-items: center; gap: 12px; text-decoration: none;
    padding: 6px 18px 6px 8px; border-radius: 999px; border: 1px solid var(--border);
    background: var(--card2);
  }
  .brand-lockup img { height: 40px; width: auto; display: block; } /* 2026-10-20 (Alvaro): larger logo; was 22px */
  .brand-lockup .brand-word { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; color: var(--text); }
  .brand-lockup .brand-word .e { color: var(--accent); }
  .brand-lockup:hover { border-color: var(--accent-dim); }
  /* Beta (2026-10-16, beta launch B1/B2) */
  .brand-bar { align-items: center; gap: 8px; }
  .beta-pill { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); border: 1px solid var(--accent-dim); background: var(--accent-light); border-radius: 999px; padding: 4px 10px; }
  @media (max-width: 480px) {
    .brand-lockup img { height: 34px; }
    .brand-lockup .brand-word { font-size: 19px; }
  }
  .beta-note { margin: 0 auto 8px; max-width: 62ch; line-height: 1.5; }
  .beta-note a { cursor: pointer; }
  .feedback-fab { position: fixed; right: 16px; bottom: 16px; z-index: 50; margin: 0; width: auto !important; padding: 9px 16px !important; border-radius: 999px; font-size: 13px; box-shadow: 0 4px 18px rgba(0,0,0,.35); }
  .feedback-panel { position: fixed; right: 16px; bottom: 64px; z-index: 51; width: min(380px, calc(100vw - 32px)); max-height: calc(100vh - 96px); overflow: auto; background: var(--card); border: 1px solid var(--border-light); border-radius: 12px; padding: 16px; box-shadow: 0 10px 40px rgba(0,0,0,.5); }
  .feedback-panel h3 { margin: 0 0 6px; font-size: 15px; }
  .feedback-panel textarea { width: 100%; box-sizing: border-box; resize: vertical; }
  .feedback-actions { display: flex; gap: 8px; margin-top: 10px; }
  .feedback-actions button { margin: 0; width: auto; flex: 1; }
  .feedback-alt { margin: 10px 0 0; }
  /* Other ideas compared (2026-10-18, K16) */
  .alt-block { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--border); }
  .alt-block h3 { margin: 0 0 4px; font-size: 15px; }
  .alt-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border); }
  .alt-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; }
  .alt-sub { font-size: 12px; color: var(--muted); }
  .alt-sum { font-size: 12.5px; color: var(--muted); }
  .alt-row button { margin: 0; flex: none; }
  .site-footer .footer-brand { display: inline-flex; align-items: center; gap: 6px; color: var(--text-faint); font-size: 12px; text-decoration: none; vertical-align: middle; }
  .site-footer .footer-brand img { height: 14px; width: auto; }

  /* 2026-10-09: print (PDF export) in ink on white. The app's colours are a
     dark theme, and printing drops background colours by default, so text
     coloured for a dark card (--text #e9edf2, --muted) printed almost white
     on white: persona cards, Credit Finder card details, the recommended
     sequence. Redefining the colour tokens for print fixes every component
     that uses them at once. Kept at the end of the file so it wins over the
     component rules above. */
  @media print {
    :root {
      color-scheme: light;
      --bg: #ffffff; --card: #ffffff; --card2: #f5f6f8;
      --border: #d6dae0; --border-light: #c9ced6; --field: #ffffff; --field-focus: #ffffff;
      --text: #14181e; --muted: #4b5563; --text-faint: #6b7280;
      --accent: #0f7a5c; --accent-dim: #0f7a5c; --accent-light: #e8f5f0;
      --green: #15803d; --green-bg: #ecfdf3; --green-border: #a6dfbd;
      --yellow: #8a5a00; --yellow-bg: #fff7e0; --yellow-border: #ecd08a;
      --red: #b42318; --red-bg: #fef3f2; --red-border: #f2b8b1;
      --blue: #1d4ed8; --blue-bg: #eef4ff; --blue-border: #b8cdf5;
    }
    html, body { background: #ffffff !important; background-image: none !important; color: var(--text); }
    #printArea { color: var(--text); font-size: 12px; line-height: 1.45; }
    #printArea * { box-shadow: none !important; }
    #printArea h1, #printArea h2, #printArea h3, #printArea .im-section-head,
    #printArea .cf-section-heading, #printArea .cf-triage-heading { break-after: avoid; page-break-after: avoid; }
    /* Keep cards and short blocks whole across page breaks */
    #printArea .persona-card, #printArea .cf-match, #printArea .cf-warning-item,
    #printArea .cf-bottom-line, #printArea .im-exec-summary, #printArea .sim-banner,
    #printArea .dmt-triage-col, #printArea tr { break-inside: avoid; page-break-inside: avoid; }
    /* Credit Finder triage: three narrow columns could not break cleanly and
       clipped their badges; one column per group on paper. */
    #printArea .cf-triage { display: block; }
    #printArea .cf-triage-col { margin-bottom: 14px; }
    #printArea .cf-badge { white-space: normal; }
    #printArea .cf-match-head { flex-wrap: wrap; }
    #printArea .im-section-head { flex-wrap: wrap; align-items: baseline; }
    /* Badges and pills lose their fill on paper: outline them instead. */
    #printArea .conf-badge, #printArea .cf-badge, #printArea .cf-cat-badge, #printArea .dmt-sev-pill, #printArea .sim-signal { border: 1px solid currentColor; }
    /* The severity pills are white text on a coloured fill; with no fill
       on paper they printed white on white (Safari test, 2026-10-09). */
    #printArea .dmt-sev-pill { background: none !important; }
    #printArea .dmt-sev-pill.sev-high { color: var(--red); }
    #printArea .dmt-sev-pill.sev-medium { color: var(--yellow); }
    #printArea .dmt-sev-pill.sev-structural { color: var(--muted); }
    #printArea a { color: var(--accent); }
  }
/* 2026-10-14: the whole idea's exports, set apart from each part's own */
.hist-actions-whole { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--border); display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.hist-actions-label { font-size: 12px; color: var(--muted, #888); margin-right: 4px; }

  /* On-screen report dashboards (2026-10-20). Print and the downloads keep
     their own styles; these classes only appear in the live page. */
  .dash { display: flex; flex-direction: column; gap: 12px; margin-top: 6px; min-width: 0; }
  .dash > * { min-width: 0; max-width: 100%; }
  .dash-banner { margin: 0; padding: 8px 12px; border-radius: 8px; border: 1px solid var(--red-border); background: var(--red-bg); color: var(--text); font-size: 12px; font-weight: 600; }
  .dash-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: 8px; }
  .dash-tile { background: var(--card2); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; min-width: 0; }
  .dash-tile-label { font-size: 11.5px; color: var(--muted); display: flex; align-items: center; gap: 6px; line-height: 1.3; }
  .dash-tile-value { font-size: 20px; font-weight: 650; margin-top: 4px; line-height: 1.2; overflow-wrap: anywhere; }
  .dash-tile-note { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
  .dash-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; background: var(--muted); }
  .dash-tone-good .dash-dot { background: var(--green); }
  .dash-tone-warn .dash-dot { background: var(--yellow); }
  .dash-tone-bad .dash-dot { background: var(--red); }
  .dash-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .dash-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .dash-card { background: var(--card2); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; min-width: 0; }
  .dash-wide { grid-column: 1 / -1; }
  .dash-lead { border-color: var(--accent-dim); }
  .dash-warn { border-color: var(--yellow-border); }
  .dash-col-now { border-top: 3px solid var(--green); }
  .dash-col-later { border-top: 3px solid var(--yellow); }
  .dash-col-ignore { border-top: 3px solid var(--text-faint); }
  .dash-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
  .dash-card-head h3 { margin: 0; font-size: 13.5px; font-weight: 650; }
  .dash-count { margin-left: auto; font-size: 11.5px; color: var(--muted); background: var(--field); border-radius: 999px; padding: 1px 8px; }
  .dash-card-body { font-size: 13px; overflow-wrap: anywhere; }
  .dash-card-body p { margin: 0 0 8px; }
  .dash-card-body p:last-child { margin-bottom: 0; }
  .dash-sub { font-size: 12px; color: var(--muted); margin: 8px 0 0 !important; }
  .dash-sub-head { color: var(--text); font-weight: 600; }
  .dash-muted { color: var(--muted); }
  .dash-more { margin-top: 6px; }
  .dash-more > summary { cursor: pointer; color: var(--accent); font-size: 12.5px; list-style: none; }
  .dash-more > summary::-webkit-details-marker { display: none; }
  .dash-more > summary::before { content: '▸ '; }
  .dash-more[open] > summary::before { content: '▾ '; }
  .dash-more[open] > summary { margin-bottom: 6px; }
  .dash-list { margin: 0; padding-left: 18px; }
  .dash-list li { margin-bottom: 6px; }
  .dash-list-tight li { margin-bottom: 3px; }
  .dash-checklist { list-style: none; margin: 0; padding: 0; }
  .dash-checklist li { padding-left: 22px; position: relative; margin-bottom: 5px; }
  .dash-checklist li::before { content: ''; position: absolute; left: 2px; top: 4px; width: 11px; height: 11px; border: 1.5px solid var(--muted); border-radius: 3px; }
  .dash-steps { margin: 0; padding: 0; list-style: none; counter-reset: dstep; }
  .dash-steps li { counter-increment: dstep; display: grid; grid-template-columns: 26px minmax(90px, 160px) 1fr; gap: 8px; padding: 7px 0; border-top: 1px solid var(--border); }
  .dash-steps li:first-child { border-top: 0; }
  .dash-steps li::before { content: counter(dstep); width: 22px; height: 22px; border-radius: 50%; background: var(--accent-light); color: var(--accent); font-size: 11.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
  .dash-steps-plain li { grid-template-columns: 26px 1fr; }
  .dash-step-when { font-weight: 600; }
  .dash-rank { margin: 0; padding-left: 20px; }
  .dash-rank li { margin-bottom: 4px; }
  .dash-item { padding: 8px 0; border-top: 1px solid var(--border); }
  .dash-item:first-child { border-top: 0; padding-top: 0; }
  .dash-item-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
  .dash-item-head .cf-cat-badge { margin-left: 0; }
  .dash-item-meta { font-size: 12px; color: var(--muted); margin-top: 3px; }
  .dash-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 10px; margin-top: 6px; font-size: 12px; }
  .dash-facts em { display: block; font-style: normal; color: var(--muted); font-size: 11px; }
  .dash-k { font-style: normal; color: var(--muted); font-size: 11.5px; margin-right: 6px; text-transform: uppercase; letter-spacing: 0.03em; }
  .dash-chip { font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 999px; border: 1px solid; }
  .dash-chip-yes { color: var(--green); border-color: var(--green-border); background: var(--green-bg); }
  .dash-chip-no { color: var(--muted); border-color: var(--border-light); }
  .dash-persona-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
  .dash-persona { background: var(--card); border: 1px solid var(--border); border-radius: 8px; padding: 10px; font-size: 12.5px; }
  .dash-persona p { margin: 6px 0 0 !important; }
  .dash-risks { display: flex; flex-direction: column; gap: 8px; }
  .dash-risk { display: grid; grid-template-columns: 84px 1fr; gap: 10px; align-items: start; }
  .dash-risk .dmt-sev-pill { text-align: center; }
  .dash-risk p { margin: 2px 0 0 !important; font-size: 12.5px; }
  .dash-table-wrap { overflow-x: auto; margin-top: 8px; }
  .dash-table-wrap table { width: 100%; }
  .dash-table-wrap th { text-align: left; }
  .dash-table-wrap td, .dash-table-wrap th { overflow-wrap: anywhere; }
  .dash-about, .dash-foot { font-size: 12px; }
  .dash-pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 11px; font-family: var(--mono); }
  /* charts */
  .dash-stack { display: flex; gap: 2px; height: 14px; border-radius: 4px; overflow: hidden; background: var(--card2); }
  .dash-seg { display: block; min-width: 2px; }
  .dash-legend { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; }
  .dash-legend li { display: grid; grid-template-columns: 12px 1fr auto; gap: 8px; align-items: center; }
  .dash-legend-inline { flex-direction: row; flex-wrap: wrap; gap: 14px; margin: 0 0 6px; }
  .dash-legend-inline li { grid-template-columns: 12px auto; }
  .dash-swatch { width: 12px; height: 12px; border-radius: 3px; }
  .dash-legend-value { color: var(--muted); font-variant-numeric: tabular-nums; }
  .dash-chart { width: 100%; max-width: 560px; height: auto; display: block; }
  .dash-chart .dash-gridline { stroke: var(--border); stroke-width: 1; }
  .dash-chart .dash-baseline { stroke: var(--border-light); stroke-width: 1; }
  .dash-chart .dash-axis-text { fill: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
  .dash-chart .dash-axis-value { fill: var(--text); font-size: 11px; font-weight: 600; }
  .dash-chart .dash-mark { outline: none; }
  .dash-chart .dash-mark:hover, .dash-chart .dash-mark:focus { filter: brightness(1.2); }
  .dash-meter { margin-bottom: 10px; font-size: 12.5px; }
  .dash-legend + .dash-meter { margin-top: 14px; }
  .dash-meter-row { display: flex; justify-content: space-between; gap: 8px; }
  .dash-meter-track { height: 8px; border-radius: 4px; background: var(--meter-track); margin-top: 4px; overflow: hidden; }
  .dash-meter-track span { display: block; height: 100%; background: #3987e5; border-radius: 4px; }
  .dash-meter-note { font-size: 11.5px; color: var(--muted); margin-top: 3px; }
  @media (max-width: 680px) {
    /* Phone-first (2026-10-20): one column, the tiles as a list, tables as stacked rows. */
    .dash { gap: 10px; }
    .dash-grid, .dash-cols { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .dash-tiles { grid-template-columns: minmax(0, 1fr); gap: 0; background: var(--card2); border: 1px solid var(--border); border-radius: 10px; }
    .dash-tile { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; align-items: center; border: 0; border-radius: 0; background: none; padding: 10px 12px; border-top: 1px solid var(--border); }
    .dash-tile:first-child { border-top: 0; }
    .dash-tile-label { font-size: 13px; color: var(--text); }
    .dash-tile-value { grid-column: 2; grid-row: 1 / span 2; margin: 0; font-size: 17px; text-align: right; }
    .dash-tile-note { grid-column: 1; }
    .dash-card { padding: 12px; }
    .dash-card-body { font-size: 14px; line-height: 1.6; }
    .dash-legend { font-size: 13px; }
    .dash-legend li { grid-template-columns: 12px 1fr; row-gap: 0; }
    .dash-legend-value { grid-column: 2; font-size: 12px; }
    .dash-facts { grid-template-columns: minmax(0, 1fr); }
    .dash-risk { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .dash-risk .dmt-sev-pill { justify-self: start; }
    .dash-rows thead { display: none; }
    .dash-rows, .dash-rows tbody, .dash-rows tr, .dash-rows td { display: block; width: 100%; }
    .dash-rows tr { border: 1px solid var(--border); border-radius: 8px; padding: 6px 10px; margin-bottom: 8px; }
    .dash-rows td { border: 0; padding: 4px 0; font-size: 13px; }
    .dash-rows td::before { content: attr(data-label); display: block; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.03em; }
    .dash-rows td:first-child { font-weight: 600; }
    .dash-steps li { grid-template-columns: 26px 1fr; }
    .dash-steps .dash-step-when { grid-column: 2; }
    .dash-steps li > span:last-child { grid-column: 2; }
  }
  @media print { .dash { display: none; } }
  /* Credit Finder, short version (2026-10-20): funding map and timeline. */
  .dash-map { display: flex; flex-direction: column; }
  .dash-map-row { display: grid; grid-template-columns: 96px minmax(0, 1fr) minmax(0, 1fr); gap: 10px; padding: 9px 0; border-top: 1px solid var(--border); align-items: start; }
  .dash-map-head { border-top: 0; padding-top: 0; font-size: 11.5px; color: var(--muted); }
  .dash-map-head span { display: flex; align-items: center; gap: 6px; }
  .dash-map-kind { font-size: 12.5px; font-weight: 600; }
  .dash-map-cell { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
  .dash-map-opt { display: flex; align-items: flex-start; gap: 7px; font-size: 12.5px; line-height: 1.35; }
  .dash-map-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; margin-top: 3px; background: var(--muted); }
  .dash-map-now .dash-map-dot, .dash-map-dot.dash-map-now { background: var(--green); }
  .dash-map-later .dash-map-dot, .dash-map-dot.dash-map-later { background: var(--yellow); }
  .dash-map-head .dash-map-dot { margin-top: 0; }
  .dash-map-empty { color: var(--text-faint); }
  .dash-timeline { list-style: none; margin: 0; padding: 0 0 0 16px; position: relative; }
  .dash-timeline::before { content: ''; position: absolute; left: 4px; top: 6px; bottom: 6px; width: 2px; background: var(--border-light); border-radius: 1px; }
  .dash-timeline li { position: relative; padding: 0 0 12px 12px; }
  .dash-timeline li:last-child { padding-bottom: 0; }
  .dash-timeline li::before { content: ''; position: absolute; left: -16px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 2px var(--card2); }
  .dash-tl-when { display: block; font-size: 12px; font-weight: 650; color: var(--accent); }
  .dash-tl-what { display: block; font-size: 13px; }
  .dash-details > summary { cursor: pointer; list-style: none; font-size: 13px; }
  .dash-details > summary::-webkit-details-marker { display: none; }
  .dash-details > summary::before { content: '▸ '; color: var(--accent); }
  .dash-details[open] > summary::before { content: '▾ '; }
  .dash-detail { border-top: 1px solid var(--border); padding-top: 10px; margin-top: 10px; font-size: 13px; overflow-wrap: anywhere; }
  .dash-detail h4 { margin: 0 0 6px; font-size: 13px; }
  .dash-detail p { margin: 0 0 6px; }
  @media (max-width: 680px) {
    .dash-map-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .dash-map-head { display: none; }
    .dash-map-cell-empty { display: none; }
    .dash-map-cell::before { content: attr(data-label); font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.03em; }
    .dash-tl-what { font-size: 14px; }
  }
  /* Short investor materials and Deep Market Test (2026-10-20). */
  .dash-hbars { display: flex; flex-direction: column; gap: 7px; }
  .dash-hbar { display: grid; grid-template-columns: minmax(90px, 38%) 1fr auto; gap: 8px; align-items: center; font-size: 12.5px; }
  .dash-hbar-label { color: var(--text); overflow-wrap: anywhere; }
  .dash-hbar-track { height: 10px; display: block; }
  .dash-hbar-fill { display: block; height: 100%; background: #3987e5; border-radius: 0 4px 4px 0; }
  .dash-hbar-value { color: var(--muted); font-variant-numeric: tabular-nums; font-size: 12px; }
  .dash-status { list-style: none; margin: 0; padding: 0; }
  .dash-status li { display: grid; grid-template-columns: 12px 1fr auto; gap: 8px; align-items: center; padding: 7px 0; border-top: 1px solid var(--border); font-size: 13px; }
  .dash-status li:first-child { border-top: 0; padding-top: 0; }
  .dash-st-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--muted); }
  .dash-st-ok .dash-st-dot { background: var(--green); }
  .dash-st-warn .dash-st-dot { background: var(--yellow); }
  .dash-st-bad .dash-st-dot { background: var(--red); }
  .dash-st-word { font-size: 11.5px; color: var(--muted); }
  .dash-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
  .dash-checks li { display: grid; grid-template-columns: 20px 1fr; gap: 8px; align-items: start; font-size: 13px; }
  .dash-check-mark { width: 18px; height: 18px; border-radius: 50%; background: var(--yellow-bg); border: 1px solid var(--yellow-border); color: var(--yellow); font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
  .dash-people { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
  .dash-person { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700; }
  .dash-person-yes { background: #3987e5; color: #fff; }
  .dash-person-no { border: 2px solid var(--border-light); color: var(--muted); }
  .dash-swatch-hollow { border: 2px solid var(--border-light); background: none; box-sizing: border-box; }
  .dash-people + .dash-legend { margin-bottom: 12px; }
  /* Market test cross-check on the score and the investor materials (2026-10-20). */
  .dash-xcheck { display: grid; grid-template-columns: 10px 1fr; gap: 9px; align-items: start; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border); background: var(--card2); font-size: 13px; line-height: 1.5; }
  .dash-xcheck .dash-dot { margin-top: 5px; }
  .dash-xcheck-bad { border-color: var(--red-border); background: var(--red-bg); }
  .dash-xcheck-bad .dash-dot { background: var(--red); }
  .dash-xcheck-warn { border-color: var(--yellow-border); background: var(--yellow-bg); }
  .dash-xcheck-warn .dash-dot { background: var(--yellow); }
  .dash-xcheck-good .dash-dot { background: var(--green); }
  .dash-xcheck-compact { margin: 8px 0; font-size: 12.5px; }
