/* ============================================================
   CDMO Signal — Design System (v3 — Dark Intelligence Theme)
   ============================================================ */

:root {
    --ink: #e8eaef;
    --ink-90: #c8cdd8;
    --ink-80: #a1abbd;
    --ink-60: #7a87a6;
    --ink-50: #536184;
    --ink-40: #7a87a6;
    --ink-30: #536184;
    --ink-20: #3d4a6b;
    --ink-10: #1e2640;
    --ink-05: #141b2d;
    --paper: #0c1220;
    --white: #111827;
    --green: #10b981;
    --green-soft: #064e3b;
    --green-bg: #022c22;
    --amber: #f59e0b;
    --amber-soft: #78350f;
    --amber-bg: #451a03;
    --red: #ef4444;
    --red-soft: #7f1d1d;
    --red-bg: #450a0a;
    --serif: 'Newsreader', Georgia, serif;
    --sans: 'IBM Plex Sans', -apple-system, sans-serif;
    --mono: 'IBM Plex Mono', 'SF Mono', monospace;
    --r: 8px;
    --r-lg: 12px;
    --accent: #0ea5e9;
    --accent-soft: #0c4a6e;
}

/* ── Reset & Base ────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--sans); color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }

/* ── Navigation ──────────────────────────────────────────── */

.nav {
    position: sticky; top: 0; z-index: 1000;
    background: rgba(12,18,32,0.95); backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--ink-10);
    height: 54px; padding: 0 28px;
    display: flex; align-items: center; justify-content: space-between;
}
.nav-left { display: flex; align-items: center; gap: 28px; }
.nav-brand { display: flex; align-items: center; gap: 7px; cursor: pointer; text-decoration: none; color: var(--ink); }
.nav-icon { width: 24px; height: 24px; border-radius: 5px; background: var(--accent); display: flex; align-items: center; justify-content: center; }
.nav-icon svg { width: 14px; height: 14px; }
.nav-name { font-family: var(--serif); font-size: 17px; font-weight: 600; }
.nav-links { display: flex; gap: 1px; }
.nav-tab {
    background: none; border: none; font-family: var(--sans);
    font-size: 12.5px; font-weight: 500; color: var(--ink-40);
    padding: 6px 12px; border-radius: 5px; cursor: pointer;
    text-decoration: none;
}
.nav-tab:hover { color: var(--ink); background: var(--ink-05); }
.nav-tab.active { color: var(--ink); background: var(--ink-05); font-weight: 600; }
.nav-right { display: flex; align-items: center; gap: 10px; }
.badge { font-size: 9.5px; font-weight: 700; letter-spacing: 0.7px; padding: 3px 7px; border-radius: 3px; text-transform: uppercase; }
.badge-free { background: var(--ink-05); color: var(--ink-30); }
.badge-pro { background: var(--green-bg); color: var(--green); }
.badge-trial { background: var(--amber-bg); color: var(--amber); }

/* ── Nav Account Dropdown ────────────────────────────────── */

.nav-account { position: relative; }
.nav-account-btn {
    background: none; border: 1px solid var(--ink-10); border-radius: 5px;
    font-family: var(--sans); font-size: 12.5px; font-weight: 500;
    color: var(--ink-60); padding: 5px 10px; cursor: pointer;
}
.nav-account-btn:hover { border-color: var(--ink-20); color: var(--ink); }
.nav-dropdown {
    display: none; position: absolute; top: calc(100% + 4px); right: 0;
    background: var(--white); border: 1px solid var(--ink-10); border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08); min-width: 140px; z-index: 1001;
    overflow: hidden;
}
.nav-account:hover .nav-dropdown { display: block; }
.nav-dropdown a {
    display: block; padding: 9px 14px; font-size: 13px; color: var(--ink-60);
    text-decoration: none; border-bottom: 1px solid var(--ink-05);
}
.nav-dropdown a:last-child { border-bottom: none; }
.nav-dropdown a:hover { background: var(--ink-05); color: var(--ink); }

/* ── Flash Messages ──────────────────────────────────────── */

.flash-container { max-width: 640px; margin: 0 auto; padding: 12px 28px 0; }
.flash { padding: 10px 14px; border-radius: var(--r); font-size: 13px; margin-bottom: 8px; }
.flash-error { background: var(--red-bg); color: var(--red); border: 1px solid rgba(220,38,38,0.1); }
.flash-success { background: var(--green-bg); color: var(--green); border: 1px solid rgba(5,150,105,0.1); }

/* ── Auth Pages ──────────────────────────────────────────── */

.auth-page { max-width: 440px; margin: 0 auto; padding: 48px 28px 80px; }
.auth-card {
    background: var(--white); border: 1px solid var(--ink-10);
    border-radius: var(--r-lg); padding: 32px;
}
.auth-card h1 { font-family: var(--serif); font-size: 24px; font-weight: 500; margin-bottom: 4px; }
.auth-sub { font-size: 13.5px; color: var(--ink-40); margin-bottom: 24px; line-height: 1.5; }
.auth-error { background: var(--red-bg); color: var(--red); font-size: 13px; padding: 10px 14px; border-radius: var(--r); margin-bottom: 14px; border: 1px solid rgba(220,38,38,0.1); }
.auth-footer { text-align: center; font-size: 13px; color: var(--ink-30); margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--ink-05); }
.auth-footer a { color: var(--ink); font-weight: 600; text-decoration: none; }
.auth-footer a:hover { text-decoration: underline; }

/* ── Account Page ────────────────────────────────────────── */

.account-section { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--ink-05); }
.account-section:last-of-type { border-bottom: none; }
.account-section h2 { font-family: var(--serif); font-size: 17px; font-weight: 500; margin-bottom: 12px; }
.account-row { display: flex; justify-content: space-between; padding: 7px 0; font-size: 13.5px; }
.account-label { color: var(--ink-30); font-weight: 500; }
.account-tier-badge { display: inline-block; font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 4px; letter-spacing: 0.3px; }
.tier-pro { background: var(--green-bg); color: var(--green); }
.tier-trial { background: var(--amber-bg); color: var(--amber); }
.tier-free { background: var(--ink-05); color: var(--ink-30); }
.tier-cancelled { background: var(--red-bg); color: var(--red); }

/* ── Buttons ─────────────────────────────────────────────── */

.btn {
    font-family: var(--sans); font-size: 12.5px; font-weight: 600;
    padding: 7px 14px; border-radius: 5px; cursor: pointer; border: none;
    text-decoration: none; display: inline-flex; align-items: center; gap: 4px;
    transition: all 0.12s;
}
.btn-dark { background: var(--accent); color: #0c1220; font-weight: 700; }
.btn-dark:hover { background: #38bdf8; }
.btn-outline { background: none; color: var(--ink-50); border: 1px solid var(--ink-20); }
.btn-outline:hover { border-color: var(--ink-40); color: var(--ink); }
.btn-lg { padding: 11px 22px; font-size: 14px; }

/* ── Hero ────────────────────────────────────────────────── */

.hero { max-width: 640px; margin: 0 auto; padding: 64px 28px 40px; text-align: center; }
.hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 1.8px; text-transform: uppercase; color: var(--ink-30); margin-bottom: 14px; }
.hero h1 { font-family: var(--serif); font-size: 38px; font-weight: 400; line-height: 1.22; letter-spacing: -0.4px; margin-bottom: 14px; }
.hero-sub { font-size: 15px; line-height: 1.6; color: var(--ink-50); max-width: 460px; margin: 0 auto 28px; }
.hero-search {
    max-width: 480px; margin: 0 auto;
    display: flex; border: 1.5px solid var(--ink-20);
    border-radius: var(--r); overflow: hidden; background: var(--white);
}
.hero-search:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(10,15,26,0.05); }
.hero-search input {
    flex: 1; border: none; padding: 11px 14px;
    font-size: 13.5px; font-family: var(--sans); color: var(--ink);
    background: transparent; outline: none;
}
.hero-search input::placeholder { color: var(--ink-20); }
.hero-search button { background: var(--ink); border: none; color: white; padding: 11px 18px; font-size: 12.5px; font-weight: 600; font-family: var(--sans); cursor: pointer; }

/* ── Credibility ─────────────────────────────────────────── */

.cred { max-width: 640px; margin: 0 auto 36px; display: flex; justify-content: center; gap: 28px; padding: 16px 0; border-top: 1px solid var(--ink-10); border-bottom: 1px solid var(--ink-10); }
.cred-item { text-align: center; }
.cred-num { font-family: var(--mono); font-size: 20px; font-weight: 600; }
.cred-label { font-size: 11px; color: var(--ink-30); margin-top: 1px; }

/* ── Social Proof ────────────────────────────────────────── */

.proof { max-width: 500px; margin: 0 auto 40px; padding: 20px 24px; background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r-lg); text-align: center; }
.proof-q { font-family: var(--serif); font-size: 14.5px; font-style: italic; line-height: 1.6; color: var(--ink-60); margin-bottom: 10px; }
.proof-a { font-size: 11.5px; color: var(--ink-30); }
.proof-a strong { color: var(--ink-50); }

/* ── Chips ────────────────────────────────────────────────── */

.chips { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 14px; }
.chip {
    font-size: 11.5px; font-weight: 500; padding: 4px 10px;
    border-radius: 20px; border: 1px solid var(--ink-10);
    background: var(--white); color: var(--ink-40);
    cursor: pointer; user-select: none;
}
.chip:hover { border-color: var(--ink-20); color: var(--ink); }
.chip.on { background: var(--ink); border-color: var(--ink); color: white; font-weight: 600; }

/* ── Table ────────────────────────────────────────────────── */

table.t { width: 100%; border-collapse: collapse; }
table.t th {
    text-align: left; font-size: 10px; font-weight: 600;
    letter-spacing: 0.7px; text-transform: uppercase;
    color: var(--ink-20); padding: 7px 8px;
    border-bottom: 1px solid var(--ink-10);
}
table.t td { padding: 11px 8px; font-size: 13px; border-bottom: 1px solid var(--ink-05); vertical-align: middle; }
table.t tbody tr { cursor: pointer; transition: background 0.08s; }
table.t tbody tr:hover { background: rgba(10,15,26,0.012); }
.cdmo-cell { display: flex; align-items: center; gap: 9px; }
.av { width: 28px; height: 28px; border-radius: 5px; background: var(--ink-05); border: 1px solid var(--ink-10); display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: var(--ink-30); flex-shrink: 0; }
.cdmo-n { font-weight: 600; font-size: 13px; }
.cdmo-l { font-size: 11px; color: var(--ink-30); margin-top: 1px; }
.sc { display: inline-flex; align-items: center; gap: 4px; font-family: var(--mono); font-weight: 600; font-size: 12.5px; padding: 2px 6px; border-radius: 3px; }
.sc .d { width: 5px; height: 5px; border-radius: 50%; }
.sc-g { color: var(--green); } .sc-g .d { background: var(--green); }
.sc-a { color: var(--amber); } .sc-a .d { background: var(--amber); }
.sc-r { color: var(--red); } .sc-r .d { background: var(--red); }
.sc-p { color: var(--ink-20); font-family: var(--sans); font-weight: 400; font-size: 11.5px; font-style: italic; }
.tags { display: flex; gap: 3px; flex-wrap: wrap; }
.tag { font-size: 10px; font-weight: 500; padding: 2px 5px; border-radius: 3px; background: var(--ink-05); color: var(--ink-40); }
.prg { font-family: var(--mono); font-size: 11.5px; color: var(--ink-30); }

/* ── Capacity Labels ─────────────────────────────────────── */

.cap-label { font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 10px; white-space: nowrap; }
.cap-expanding { background: var(--green-bg); color: var(--green); }
.cap-available { background: var(--green-soft); color: var(--green); }
.cap-limited { background: var(--amber-soft); color: var(--amber); }
.cap-constrained { background: var(--red-soft); color: var(--red); }

/* ── Deep Intel Locked Column ────────────────────────────── */

.locked-col { position: relative; cursor: pointer; }
.locked-blur { filter: blur(4px); opacity: 0.35; user-select: none; font-size: 11px; color: var(--ink-40); }
.locked-col .tip {
    display: none; position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
    background: var(--ink); color: white; font-size: 11px; font-weight: 500;
    padding: 8px 12px; border-radius: 6px; white-space: nowrap; z-index: 100;
    line-height: 1.4;
}
.locked-col .tip::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--ink); }
.locked-col:hover .tip { display: block; }
.dimmed { opacity: 0.7; }
.dimmed-more { opacity: 0.5; }

/* ── Type Badges ─────────────────────────────────────────── */
.type-badge { font-size: 10px; font-weight: 500; padding: 1px 6px; border-radius: 3px; vertical-align: middle; margin-left: 4px; }
.type-hybrid { background: #e8eaf6; color: #3949ab; }
.type-platform { background: #e0f2f1; color: #00796b; }
.type-reagent { background: #fff3e0; color: #e65100; }
.type-national { background: #f3e5f5; color: #7b1fa2; }

/* ── Upgrade Banner ──────────────────────────────────────── */

.ub {
    margin: 24px 0; padding: 24px 28px;
    background: var(--white); border: 1px solid var(--ink-10);
    border-radius: var(--r-lg);
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.ub h3 { font-family: var(--serif); font-size: 18px; font-weight: 500; margin-bottom: 3px; }
.ub p { font-size: 12.5px; color: var(--ink-40); line-height: 1.5; }
.ub-price { font-family: var(--mono); font-size: 13px; font-weight: 600; color: var(--ink); margin-top: 4px; }

/* ══════ CDMO PROFILE ══════ */

.profile { max-width: 800px; margin: 0 auto; padding: 32px 28px 60px; }
.prof-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 28px; }
.prof-name { font-size: 24px; font-weight: 700; letter-spacing: -0.3px; }
.prof-loc { font-size: 13px; color: var(--ink-40); margin-top: 3px; }
.prof-score-box { text-align: center; padding: 14px 20px; border-radius: var(--r-lg); }
.prof-score-box.high { background: var(--green-bg); border: 1px solid rgba(5,150,105,0.1); }
.prof-score-box.mid { background: var(--amber-bg); border: 1px solid rgba(217,119,6,0.1); }
.prof-big { font-family: var(--mono); font-size: 36px; font-weight: 700; line-height: 1; }
.prof-score-box.high .prof-big { color: var(--green); }
.prof-score-box.mid .prof-big { color: var(--amber); }
.prof-score-lbl { font-size: 10px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; margin-top: 3px; }
.prof-score-box.high .prof-score-lbl { color: var(--green); }
.prof-score-box.mid .prof-score-lbl { color: var(--amber); }

/* ── Free Pillar Summary Cards ───────────────────────────── */

.free-pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px; }
.fp-card { background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r); padding: 16px; }
.fp-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.fp-label { font-size: 10.5px; font-weight: 600; color: var(--ink-30); text-transform: uppercase; letter-spacing: 0.4px; }
.fp-score { font-family: var(--mono); font-size: 22px; font-weight: 700; }
.fp-bar { height: 3px; background: var(--ink-05); border-radius: 2px; margin-bottom: 8px; overflow: hidden; }
.fp-bar-fill { height: 100%; border-radius: 2px; }
.fp-insight { font-size: 12px; color: var(--ink-50); line-height: 1.5; }

/* ── Locked Deep Intel Sections ──────────────────────────── */

.locked-section {
    background: var(--white); border: 1px solid var(--ink-10);
    border-radius: var(--r); padding: 20px; margin-bottom: 10px;
}
.ls-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.ls-head h3 { font-size: 14px; font-weight: 600; }
.pro-badge { font-size: 9px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; padding: 2px 7px; border-radius: 3px; background: var(--ink-05); color: var(--ink-20); }
.fake-rows { margin-bottom: 14px; }
.fake-row { display: flex; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--ink-05); }
.fake-bar { height: 9px; background: var(--ink-05); border-radius: 4px; }
.ls-desc { font-size: 12px; color: var(--ink-40); line-height: 1.5; padding-top: 10px; border-top: 1px solid var(--ink-05); }
.ls-cta { display: inline-block; margin-top: 8px; font-size: 12.5px; font-weight: 600; color: var(--ink); text-decoration: none; }
.ls-cta:hover { text-decoration: underline; }

/* ══════ METHODOLOGY ══════ */

.method { max-width: 700px; margin: 0 auto; padding: 44px 28px 80px; }
.method h1 { font-family: var(--serif); font-size: 30px; font-weight: 400; margin-bottom: 6px; }
.method .sub { font-size: 14.5px; color: var(--ink-50); margin-bottom: 36px; line-height: 1.6; }
.ms { margin-bottom: 32px; }
.ms h2 { font-family: var(--serif); font-size: 19px; font-weight: 500; margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid var(--ink-10); }
.ms p { font-size: 13.5px; line-height: 1.7; color: var(--ink-60); margin-bottom: 8px; }
.ms ul { font-size: 13.5px; line-height: 1.7; color: var(--ink-60); margin: 8px 0 8px 20px; padding: 0; }
.ms li { margin-bottom: 4px; }
.mp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 14px 0; }
.mp-card { padding: 16px; background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r); }
.mp-card h3 { font-size: 13px; font-weight: 600; margin-bottom: 2px; }
.mp-card .wt { font-family: var(--mono); font-size: 10px; color: var(--ink-20); }
.mp-card ul { font-size: 12px; color: var(--ink-50); line-height: 1.7; margin: 6px 0 0 14px; }
.ds-box { margin: 14px 0; padding: 14px 18px; background: var(--ink-05); border-radius: var(--r); font-size: 12px; color: var(--ink-50); line-height: 1.7; }
.ds-box strong { color: var(--ink-60); }

/* ══════ UPGRADE PAGE ══════ */

.upgrade { max-width: 840px; margin: 0 auto; padding: 48px 28px 80px; }
.upgrade-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.ug-left h1 { font-family: var(--serif); font-size: 28px; font-weight: 500; margin-bottom: 4px; }
.ug-price { font-family: var(--mono); font-size: 32px; font-weight: 700; color: var(--ink); margin: 8px 0; }
.ug-price span { font-size: 16px; font-weight: 400; color: var(--ink-40); }
.ug-terms { font-size: 13px; color: var(--ink-40); margin-bottom: 28px; }
.ug-features { list-style: none; }
.ug-features li { padding: 10px 0; border-bottom: 1px solid var(--ink-05); }
.ug-features li:last-child { border-bottom: none; }
.ug-feat-name { font-size: 14px; font-weight: 600; margin-bottom: 2px; display: flex; align-items: center; gap: 6px; }
.ug-feat-name .check { color: var(--green); font-size: 15px; }
.ug-feat-desc { font-size: 12.5px; color: var(--ink-40); line-height: 1.5; padding-left: 21px; }
.ug-right {
    background: var(--white); border: 1px solid var(--ink-10);
    border-radius: var(--r-lg); padding: 28px;
}
.ug-right h2 { font-family: var(--serif); font-size: 20px; font-weight: 500; margin-bottom: 20px; }
.ug-field { margin-bottom: 14px; }
.ug-field label { display: block; font-size: 11px; font-weight: 600; color: var(--ink-30); text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 4px; }
.ug-field input, .ug-field select, .ug-field textarea {
    width: 100%; padding: 9px 12px; border: 1px solid var(--ink-10);
    border-radius: 5px; font-size: 13px; font-family: var(--sans);
    color: var(--ink); background: var(--paper); outline: none;
}
.ug-field input:focus, .ug-field select:focus, .ug-field textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 2px rgba(10,15,26,0.04); }
.ug-field textarea { height: 70px; resize: vertical; }

/* ── Upgrade Success State ───────────────────────────────── */

.ug-success { text-align: center; padding: 48px 24px; }
.ug-success .check-big { font-size: 40px; margin-bottom: 12px; }
.ug-success h2 { font-family: var(--serif); font-size: 24px; font-weight: 500; margin-bottom: 8px; }
.ug-success p { font-size: 14px; color: var(--ink-40); line-height: 1.6; }

/* ══════ PRO PAGES ══════ */

.pro-page { max-width: 1100px; margin: 0 auto; padding: 32px 28px 60px; }
.pro-page h1 { font-family: var(--serif); font-size: 28px; font-weight: 500; margin-bottom: 4px; }
.pro-sub { font-size: 14px; color: var(--ink-40); margin-bottom: 20px; }
.pro-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; }
.pro-section { margin-bottom: 24px; }
.pro-section h2 { font-family: var(--serif); font-size: 19px; font-weight: 500; margin-bottom: 14px; padding-bottom: 6px; border-bottom: 1px solid var(--ink-10); }
.pro-count { font-family: var(--mono); font-size: 12px; font-weight: 400; color: var(--ink-20); }
.pro-source { font-size: 11px; font-style: italic; color: var(--ink-20); margin-top: 8px; }
.pro-source a { color: var(--ink-40); text-decoration: underline; }

/* ── Alerts Feed ─────────────────────────────────────────── */

.alerts-feed { display: flex; flex-direction: column; gap: 6px; }
.alert-card { display: flex; gap: 10px; padding: 10px 14px; background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r); }
.alert-indicator { width: 4px; border-radius: 2px; flex-shrink: 0; }
.alert-critical .alert-indicator { background: var(--red); }
.alert-warning .alert-indicator { background: var(--amber); }
.alert-positive .alert-indicator { background: var(--green); }
.alert-info .alert-indicator { background: var(--ink-20); }
.alert-body { flex: 1; }
.alert-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.alert-cdmo { font-weight: 600; font-size: 13px; color: var(--ink); text-decoration: none; }
.alert-cdmo:hover { text-decoration: underline; }
.alert-date { font-size: 11px; color: var(--ink-20); }
.alert-severity-badge { font-size: 9px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; padding: 2px 6px; border-radius: 3px; }
.alert-critical .alert-severity-badge { background: var(--red-bg); color: var(--red); }
.alert-warning .alert-severity-badge { background: var(--amber-bg); color: var(--amber); }
.alert-positive .alert-severity-badge { background: var(--green-bg); color: var(--green); }
.alert-info .alert-severity-badge { background: var(--ink-05); color: var(--ink-30); }
.alert-headline { font-weight: 600; font-size: 13px; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.alert-desc { font-size: 12px; color: var(--ink-50); line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.alert-source { font-size: 10px; color: var(--ink-20); margin-top: 2px; font-style: italic; }

/* ── Pro Pillar Cards ────────────────────────────────────── */

.pro-pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 24px; }
.pro-pillar-card { background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r); padding: 18px; }
.pro-pillar-detail { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--ink-05); }
.ppd-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 12px; }
.ppd-label { color: var(--ink-30); }

/* ── Pending Pillar State ────────────────────────────────── */

.pro-pillar-card.pillar-pending { background: var(--ink-05); border-style: dashed; opacity: 0.85; }
.pillar-gap-note {
    font-size: 11px; color: var(--ink-30); font-style: italic;
    margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--ink-10);
}

/* ── Classification Badges ───────────────────────────────── */

.class-badge { font-size: 10px; font-weight: 700; letter-spacing: 0.4px; padding: 2px 7px; border-radius: 3px; }
.class-nai { background: var(--green-bg); color: var(--green); }
.class-vai { background: var(--amber-bg); color: var(--amber); }
.class-oai { background: var(--red-bg); color: var(--red); }

/* ── Pro Filing Cards ────────────────────────────────────── */

.pro-filing-card { padding: 14px 16px; background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r); margin-bottom: 8px; }
.pro-filing-meta { display: flex; gap: 12px; font-size: 12px; color: var(--ink-30); margin-bottom: 8px; }
.pro-filing-type { font-weight: 700; font-family: var(--mono); color: var(--ink-60); }
.pro-excerpt { font-size: 12.5px; color: var(--ink-50); line-height: 1.5; font-style: italic; padding: 6px 0; border-bottom: 1px solid var(--ink-05); }
.pro-excerpt:last-child { border-bottom: none; }

/* ── Pro News Cards ──────────────────────────────────────── */

.pro-news-card { padding: 12px 0; border-bottom: 1px solid var(--ink-05); }
.pro-news-card:last-child { border-bottom: none; }
.pro-news-meta { display: flex; gap: 8px; align-items: center; margin-bottom: 4px; }
.pro-news-title { font-weight: 600; font-size: 13.5px; margin-bottom: 3px; }
.pro-news-summary { font-size: 12.5px; color: var(--ink-50); line-height: 1.5; }

/* ── Matchmaker ──────────────────────────────────────────── */

.matchmaker-form { background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r-lg); padding: 24px; margin-top: 16px; }
.mm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mm-result { padding: 18px; background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r); margin-bottom: 10px; }
.mm-result-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; }
.mm-rank { font-family: var(--mono); font-size: 10px; color: var(--ink-20); margin-bottom: 2px; }
.mm-name { font-weight: 600; font-size: 15px; color: var(--ink); text-decoration: none; }
.mm-name:hover { text-decoration: underline; }
.mm-loc { font-size: 12px; color: var(--ink-30); display: block; margin-top: 2px; }
.mm-confidence { font-family: var(--mono); font-size: 16px; font-weight: 700; color: var(--green); margin-bottom: 4px; }
.mm-rationale { font-size: 13px; color: var(--ink-60); line-height: 1.6; margin-bottom: 10px; }
.mm-signals { display: flex; flex-wrap: wrap; gap: 6px; }
.mm-signal { font-size: 11px; padding: 3px 8px; border-radius: 4px; }
.mm-pos { background: var(--green-bg); color: var(--green); }
.mm-caut { background: var(--amber-bg); color: var(--amber); }

/* ── Compare ─────────────────────────────────────────────── */

.compare-form { background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r-lg); padding: 20px; margin-bottom: 24px; }
.compare-table-wrap { overflow-x: auto; }
.compare-table td, .compare-table th { min-width: 120px; }
.compare-label { font-weight: 600; font-size: 12px; color: var(--ink-30); text-transform: uppercase; letter-spacing: 0.3px; }

/* ── Pro Table ───────────────────────────────────────────── */

.pro-table tbody tr { cursor: pointer; }

/* ── Breadcrumbs ────────────────────────────────────────── */

.breadcrumb { font-size: 12px; color: var(--ink-20); margin-bottom: 16px; display: flex; align-items: center; gap: 6px; }
.breadcrumb a { color: var(--ink-40); text-decoration: none; }
.breadcrumb a:hover { color: var(--ink); text-decoration: underline; }
.breadcrumb span { color: var(--ink-20); }

/* ── Quick Facts (LLM-optimized) ───────────────────────── */

.quick-facts {
    background: var(--white); border: 1px solid var(--ink-10);
    border-radius: var(--r); padding: 20px 24px; margin-bottom: 20px;
}
.quick-facts h2 {
    font-family: var(--serif); font-size: 16px; font-weight: 500;
    margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--ink-05);
}
.quick-facts dl {
    display: grid; grid-template-columns: 140px 1fr;
    gap: 6px 16px; font-size: 13px;
}
.quick-facts dt { color: var(--ink-40); font-weight: 500; }
.quick-facts dd { color: var(--ink); }

/* ── Admin Badge ────────────────────────────────────────── */

.badge-admin { background: #ede9fe; color: #7c3aed; }

/* ── Blog ───────────────────────────────────────────────── */

.blog-list { display: flex; flex-direction: column; gap: 12px; }
.blog-card { padding: 18px 0; border-bottom: 1px solid var(--ink-05); }
.blog-card:last-child { border-bottom: none; }
.blog-card h2 { font-family: var(--serif); font-size: 19px; font-weight: 500; margin-bottom: 4px; }
.blog-card a { text-decoration: none; color: var(--ink); }
.blog-card a:hover h2 { text-decoration: underline; }
.blog-meta { font-size: 12px; color: var(--ink-20); margin-bottom: 6px; }
.blog-excerpt { font-size: 13.5px; color: var(--ink-50); line-height: 1.6; }
.blog-content { font-size: 14px; line-height: 1.8; color: var(--ink-60); }
.blog-content h2 { font-family: var(--serif); font-size: 19px; font-weight: 500; margin: 28px 0 10px; }
.blog-content h3 { font-size: 15px; font-weight: 600; margin: 20px 0 8px; }
.blog-content p { margin-bottom: 14px; }
.blog-content ul, .blog-content ol { margin: 0 0 14px 20px; }
.blog-content a { color: var(--ink); font-weight: 600; text-decoration: underline; }

/* ── Cookie Banner ──────────────────────────────────────── */

.cookie-banner {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 2000;
    background: #1e2640; color: #e8eaef; padding: 12px 28px;
    display: flex; justify-content: space-between; align-items: center;
    gap: 16px; font-size: 12.5px;
}
.cookie-banner a { color: var(--ink-20); text-decoration: underline; }
.cookie-banner button {
    background: var(--accent); color: #0c1220; border: none; padding: 6px 16px;
    border-radius: 4px; font-size: 12px; font-weight: 600; cursor: pointer;
    flex-shrink: 0;
}

/* ══════ FOOTER ══════ */

.footer { padding: 20px 28px; border-top: 1px solid var(--ink-10); font-size: 11px; color: var(--ink-20); }
.footer-about { margin-bottom: 14px; }
.footer-about p { font-size: 11.5px; color: var(--ink-30); line-height: 1.6; max-width: 700px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
.footer-links a { color: var(--ink-30); text-decoration: none; margin-left: 16px; }
.footer-links a:hover { color: var(--ink); }

/* ══════ DASHBOARD INTELLIGENCE ══════ */

.dash-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 20px; }
.dash-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
.dash-card {
    background: var(--white); border: 1px solid rgba(14,165,233,0.15); border-radius: var(--r);
    padding: 18px 20px; text-align: center;
    border-top: 2px solid var(--accent);
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.dash-card-label { font-size: 10px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--ink-40); margin-bottom: 6px; }
.dash-card-value { font-family: var(--mono); font-size: 28px; font-weight: 700; color: var(--accent); line-height: 1.1; }
.dash-card-sub { font-size: 11px; color: var(--ink-30); margin-top: 4px; }
.dash-panel {
    background: var(--white); border: 1px solid rgba(14,165,233,0.1); border-radius: var(--r-lg);
    padding: 20px; min-height: 200px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}
.dash-panel h2 {
    font-family: var(--serif); font-size: 16px; font-weight: 500;
    margin-bottom: 14px; padding-bottom: 8px; border-bottom: 1px solid var(--ink-10);
    display: flex; justify-content: space-between; align-items: center;
}
.dash-chart-wrap { position: relative; }
.dash-chart-row { display: flex; gap: 12px; }
.dash-empty { padding: 24px; text-align: center; color: var(--ink-30); font-size: 13px; }

/* Inspection summary bar */
.dash-inspection-summary { margin-bottom: 14px; }
.dash-insp-bar { display: flex; height: 10px; border-radius: 5px; overflow: hidden; gap: 2px; margin-bottom: 8px; }
.dash-insp-seg { min-width: 4px; border-radius: 3px; transition: flex 0.3s; }
.dash-insp-nai { background: var(--green); }
.dash-insp-vai { background: var(--amber); }
.dash-insp-oai { background: var(--red); }
.dash-insp-legend { display: flex; gap: 14px; font-size: 11px; color: var(--ink-40); }
.dash-insp-leg-item { display: flex; align-items: center; gap: 4px; }
.dash-insp-leg-item .d { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.dash-insp-leg-item strong { color: var(--ink); font-family: var(--mono); font-weight: 600; }

/* Mini list rows */
.dash-mini-list { border-top: 1px solid var(--ink-10); margin-top: 10px; }
.dash-mini-row {
    display: flex; align-items: center; gap: 8px; padding: 7px 0;
    font-size: 12px; border-bottom: 1px solid var(--ink-05);
}
.dash-mini-name { font-weight: 600; color: var(--ink); flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-mini-date { font-family: var(--mono); font-size: 11px; color: var(--ink-30); flex-shrink: 0; }
.dash-deal-row { flex-wrap: wrap; }
.dash-deal-title { font-size: 11px; color: var(--ink-40); width: 100%; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-link { color: var(--accent); font-size: 14px; flex-shrink: 0; text-decoration: none; }
.dash-link:hover { color: var(--ink); }

/* Study rows in profile */
.dash-study-row {
    display: flex; align-items: center; gap: 8px; padding: 6px 0;
    font-size: 12px; border-bottom: 1px solid var(--ink-05);
    text-decoration: none; color: var(--ink);
}
.dash-study-row:hover { background: var(--ink-05); }
.dash-study-nct { font-family: var(--mono); font-size: 10px; color: var(--accent); flex-shrink: 0; font-weight: 600; }
.dash-study-title { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ink-60); }

/* Hiring placeholder */
.dash-panel-placeholder { opacity: 0.8; }
.dash-placeholder-body { text-align: center; padding: 24px 0; }
.dash-placeholder-icon { color: var(--ink-20); margin-bottom: 10px; }
.dash-placeholder-body p { font-size: 13px; color: var(--ink-30); max-width: 300px; margin: 0 auto 16px; line-height: 1.5; }
.dash-placeholder-preview { display: flex; flex-direction: column; gap: 8px; max-width: 200px; margin: 0 auto; }

/* Capacity overview cards */
.capacity-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.capacity-card {
    border: 1px solid var(--ink-10); border-radius: var(--r); padding: 14px;
    transition: border-color 0.2s;
}
.capacity-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.capacity-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.capacity-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--ink); }
.capacity-count { font-family: var(--mono); font-size: 12px; color: var(--ink-40); margin-left: auto; }
.capacity-card-list { display: flex; flex-wrap: wrap; gap: 4px 8px; }
.capacity-name { font-size: 11px; color: var(--ink-60); }
.capacity-more { font-size: 11px; color: var(--ink-30); font-style: italic; }
@media (max-width: 600px) { .capacity-grid { grid-template-columns: 1fr; } }
.dash-fake-sparkline {
    height: 6px; border-radius: 3px;
    background: linear-gradient(90deg, var(--ink-10), var(--accent-soft), var(--ink-10));
    background-size: 200% 100%;
    animation: shimmer 2s infinite;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Inspection visual timeline (profile) */
.insp-timeline {
    display: flex; align-items: flex-end; gap: 2px; padding: 16px 0 8px;
    overflow-x: auto; min-height: 50px;
}
.insp-dot-wrap { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 36px; cursor: default; }
.insp-dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--paper); box-shadow: 0 0 0 1px var(--ink-10); }
.insp-dot-nai { background: var(--green); }
.insp-dot-vai { background: var(--amber); }
.insp-dot-oai { background: var(--red); }
.insp-dot-label { font-family: var(--mono); font-size: 8px; color: var(--ink-30); }

/* ══════ RESPONSIVE ══════ */

@media(max-width:768px) {
    .hero h1 { font-size: 28px; }
    .cred { gap: 14px; flex-wrap: wrap; }
    .free-pillars { grid-template-columns: 1fr; }
    .mp-grid { grid-template-columns: 1fr; }
    .upgrade-grid { grid-template-columns: 1fr; }
    .nav-links { display: none; }
    .ub { flex-direction: column; text-align: center; }
    .prof-header { flex-direction: column; gap: 16px; }
    .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
    .footer-links a { margin-left: 8px; }
    .quick-facts dl { grid-template-columns: 1fr; }
    .pro-pillars { grid-template-columns: 1fr; }
    .pro-header { flex-direction: column; gap: 12px; }
    .mm-grid { grid-template-columns: 1fr; }
    .compare-form .mm-grid { grid-template-columns: 1fr; }
    .dash-grid-3 { grid-template-columns: 1fr; }
    .dash-grid-2 { grid-template-columns: 1fr; }
    .dash-chart-row { flex-direction: column; }
    .mm-ai-input-wrap { flex-direction: column; }
    .mm-ai-input-wrap input { border-radius: var(--r) !important; }
    .mm-ai-input-wrap .btn { border-radius: var(--r) !important; width: 100%; }
}

/* ── Hero AI Sub ───────────────────────────────────── */
.hero-ai-sub { font-size: 12px; color: var(--ink-30); margin-top: 10px; text-align: center; }

/* ── Example Queries ──────────────────────────────── */
.example-queries {
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 6px; margin-top: 14px;
}
.example-queries-label { font-size: 12px; color: var(--ink-30); margin-right: 2px; }
.example-query {
    font-family: var(--sans); font-size: 12px; font-weight: 500;
    padding: 5px 12px; border-radius: 20px;
    border: 1px solid var(--ink-10); background: var(--ink-05);
    color: var(--ink-60); cursor: pointer; transition: all 0.12s;
}
.example-query:hover { border-color: var(--ink-20); color: var(--ink); background: var(--ink-10); }


/* ── AI Matchmaker Form ────────────────────────────── */
.mm-ai-input-wrap { display: flex; gap: 0; }
.mm-ai-input-wrap input { flex: 1; padding: 14px 16px; border: 1.5px solid var(--ink-20); border-radius: var(--r) 0 0 var(--r); font-size: 14px; background: var(--white); color: var(--ink); font-family: var(--sans); }
.mm-ai-input-wrap input:focus { border-color: var(--ink); outline: none; box-shadow: 0 0 0 3px rgba(10,15,26,0.05); }
.mm-ai-input-wrap input::placeholder { color: var(--ink-20); }
.mm-ai-input-wrap .btn { border-radius: 0 var(--r) var(--r) 0; white-space: nowrap; padding: 14px 24px; font-size: 14px; }
.mm-form-footer { margin-top: 8px; }
.mm-ai-badge { font-size: 11px; color: var(--ink-30); }
.mm-advanced { margin-top: 14px; }
.mm-advanced summary { font-size: 12px; color: var(--ink-40); cursor: pointer; user-select: none; }
.mm-advanced summary:hover { color: var(--ink-60); }

/* ── Matchmaker Progress ───────────────────────────── */
.mm-progress-wrap { display: flex; align-items: center; gap: 12px; padding: 16px 24px; margin: 12px auto 0; max-width: 640px; background: var(--white); border: 1px solid var(--ink-10); border-radius: var(--r-lg); }
.mm-progress-msg { font-size: 14px; color: var(--ink-60); }

/* ── AI Results ────────────────────────────────────── */
.mm-ai-results-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; padding-bottom: 6px; border-bottom: 1px solid var(--ink-10); }
.mm-ai-results-header h2 { font-family: var(--serif); font-size: 19px; font-weight: 500; margin: 0; }
.mm-ai-results-badge { font-size: 11px; color: var(--accent); background: rgba(14,165,233,0.08); padding: 3px 10px; border-radius: 20px; }
.mm-elapsed { font-size: 11px; color: var(--ink-40); font-family: var(--mono); margin-left: 8px; }
.mm-ai-parsed { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.mm-chip { font-size: 12px; padding: 3px 10px; border-radius: 20px; background: var(--ink-05); color: var(--ink-60); border: 1px solid var(--ink-10); }
.mm-ai-card { border-left: 3px solid var(--accent); }
.mm-score-wrap { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.mm-score-num { font-family: var(--mono); font-size: 16px; font-weight: 700; color: var(--green); }
.mm-score-bar { width: 60px; height: 6px; background: var(--ink-05); border-radius: 3px; overflow: hidden; }
.mm-score-fill { height: 100%; background: var(--green); border-radius: 3px; transition: width 0.3s ease; }
.mm-data-section { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.mm-info { background: rgba(14,165,233,0.08); color: var(--accent); }
.mm-profile-link { font-size: 12px; color: var(--accent); text-decoration: none; font-weight: 500; }
.mm-profile-link:hover { text-decoration: underline; }

/* ── Matchmaker Alert ──────────────────────────────── */
.mm-alert { padding: 10px 14px; border-radius: var(--r); font-size: 13px; margin-bottom: 14px; }
.mm-alert-warn { background: var(--amber-bg); color: var(--amber); border: 1px solid rgba(245,158,11,0.2); }

/* ── Matchmaker Loading Spinner ────────────────────── */
.mm-spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid var(--ink-10); border-top-color: var(--accent); border-radius: 50%; animation: mm-spin 0.6s linear infinite; vertical-align: middle; flex-shrink: 0; }
@keyframes mm-spin { to { transform: rotate(360deg); } }

/* ── Score Trend Indicators ─────────────────────────────── */
.trend { font-size: 11px; font-weight: 600; margin-left: 4px; letter-spacing: -0.3px; }
.trend-up { color: var(--green); }
.trend-down { color: var(--red); }
.trend-flat { color: var(--ink-20); }


/* ── Pillar Tooltips ────────────────────────────────────── */
.has-tooltip { position: relative; cursor: help; }
.has-tooltip .tooltip {
    display: none; position: absolute; bottom: calc(100% + 8px); left: 50%;
    transform: translateX(-50%); background: #0c1121; color: #d0d5e0;
    font-size: 11.5px; font-weight: 400; padding: 12px 16px; border-radius: 8px;
    z-index: 200; line-height: 1.6; min-width: 240px; max-width: 360px;
    white-space: normal; box-shadow: 0 4px 16px rgba(0,0,0,0.5);
    border: 1px solid rgba(255,255,255,0.1);
}
.has-tooltip .tooltip::after {
    content: ''; position: absolute; top: 100%; left: 50%;
    transform: translateX(-50%); border: 6px solid transparent;
    border-top-color: #0c1121;
}
.has-tooltip:hover .tooltip { display: block; }

/* Tooltip positioned below */
.has-tooltip-below .tooltip {
    bottom: auto; top: calc(100% + 8px);
}
.has-tooltip-below .tooltip::after {
    top: auto; bottom: 100%;
    border-top-color: transparent; border-bottom-color: #0c1121;
}

/* Tooltip detail list */
.tooltip-detail { padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,0.08); color: #d0d5e0; }
.tooltip-detail:last-child { border-bottom: none; }
.tooltip-source { font-size: 10px; color: rgba(160,170,190,0.6); margin-top: 6px; padding-top: 4px; border-top: 1px solid rgba(255,255,255,0.1); }

/* ── Expandable Programs Panel ──────────────────────────── */
.expand-programs-btn {
    background: none; border: none; color: var(--accent); cursor: pointer;
    font-size: 12px; font-weight: 500; padding: 0; text-decoration: underline;
    text-underline-offset: 2px;
}
.expand-programs-btn:hover { color: var(--ink); }
.programs-panel {
    display: none; margin-top: 10px; padding: 12px; background: var(--bg);
    border: 1px solid var(--ink-10); border-radius: var(--r);
    max-height: 320px; overflow-y: auto;
}
.programs-panel.open { display: block; }
.prog-item {
    display: flex; align-items: center; gap: 8px; padding: 6px 0;
    border-bottom: 1px solid var(--ink-05); font-size: 12px;
}
.prog-item:last-child { border-bottom: none; }
.prog-nct { font-family: var(--mono); font-size: 11px; color: var(--accent); text-decoration: none; font-weight: 500; min-width: 100px; }
.prog-nct:hover { text-decoration: underline; }
.prog-title { flex: 1; color: var(--ink-60); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prog-phase { font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 3px; background: var(--ink-05); color: var(--ink-40); text-transform: uppercase; }
.prog-status { font-size: 10px; font-weight: 500; padding: 1px 6px; border-radius: 3px; }
.prog-status-recruiting { background: var(--green-bg); color: var(--green); }
.prog-status-completed { background: #f3e8ff; color: #7c3aed; }
.prog-status-terminated { background: var(--red-bg); color: var(--red); }
.prog-status-active { background: var(--amber-bg); color: var(--amber); }
.prog-source { font-size: 10px; color: var(--ink-20); margin-top: 8px; padding-top: 6px; border-top: 1px solid var(--ink-10); }
.prog-view-all { display: inline-block; margin-top: 8px; font-size: 12px; color: var(--accent); text-decoration: none; font-weight: 500; }
.prog-view-all:hover { text-decoration: underline; }

/* ── Score Breakdown Detail ─────────────────────────────── */
.score-factors { margin-top: 8px; }
.score-factor {
    font-size: 11.5px; color: var(--ink-40); padding: 3px 0;
    border-bottom: 1px solid var(--ink-05);
}
.score-factor:last-child { border-bottom: none; }
.score-factor-positive { color: var(--green); }
.score-factor-negative { color: var(--red); }
.score-factor-neutral { color: var(--ink-30); }
