/* ── Compound detail page ── */

/* ── Badge colour tokens (light-core4 PR6) ──
   Three axes share the same values today but not their meaning: drug type
   (.cpd-badge-flag.*), indication phase (.cpd-indication-badge.*) and route of
   administration (.cpd-badge-route). They get separate tokens so PR7 can move
   one without dragging the others — and because a rule pointed at the wrong
   axis renders identically, which no capture gate can detect.

   Values are carried across unchanged; the light set is retargeted in PR7, not
   here. The dark set redefines only what a dark rule actually overrode. */
:root {
    /* Batch 1 — drug type. Rendered by .cpd-badge-flag.* only. */
    --color-drug-type-natural-border: #86efac;
    --color-drug-type-natural-text: #166534;
    --color-drug-type-first-class-border: #bfdbfe;
    --color-drug-type-first-class-text: #1d4ed8;
    --color-drug-type-prodrug-border: #fcd34d;
    --color-drug-type-prodrug-text: #92400e;
    --color-drug-type-probe-border: #ddd6fe;
    --color-drug-type-probe-text: #6d28d9;
    --color-drug-type-warning-border: #fecaca;
    --color-drug-type-warning-text: #991b1b;

    /* Batch 2 — indication phase. Same values as the drug type ramp above and
       deliberately not the same tokens: a clinical phase is not a drug type. */
    --color-indication-phase4-border: #86efac;
    --color-indication-phase4-text: #166534;
    --color-indication-phase3-border: #bfdbfe;
    --color-indication-phase3-text: #1d4ed8;
    --color-indication-phase2-border: #fcd34d;
    --color-indication-phase2-text: #92400e;
    /* phase1 already reads --color-border-light / --color-text-secondary. */

    /* Batch 2 — route of administration. Its light border matches first-class,
       its meaning does not. */
    --color-cpd-route-border: #bfdbfe;
    /* PR7 4단계: #0284c7 gave 4.09:1 against white (< AA 4.5:1). */
    --color-cpd-route-text: #0369a1;
}
:root[data-theme="dark"] {
    /* Exactly the pairs the dark rules overrode (:373-377). A test asserts this
       set is neither larger nor smaller. */
    --color-drug-type-natural-border: #4ade80;
    --color-drug-type-natural-text: #4ade80;
    --color-drug-type-first-class-border: #60a5fa;
    --color-drug-type-first-class-text: #60a5fa;
    --color-drug-type-prodrug-border: #fbbf24;
    --color-drug-type-prodrug-text: #fbbf24;
    --color-drug-type-probe-border: #a78bfa;
    --color-drug-type-probe-text: #a78bfa;
    /* #249 2단계 — added: the "don't repaint a badge that never changed" call
       above left this at 2.04:1 against the dark surface. Reuses
       --color-danger-strong's dark value. */
    --color-drug-type-warning-border: #fca5a5;
    --color-drug-type-warning-text: #fca5a5;
    --color-indication-phase4-border: #4ade80;
    --color-indication-phase4-text: #4ade80;
    --color-indication-phase3-border: #60a5fa;
    --color-indication-phase3-text: #60a5fa;
    --color-indication-phase2-border: #fbbf24;
    --color-indication-phase2-text: #fbbf24;
    --color-cpd-route-border: #38bdf8;
    --color-cpd-route-text: #38bdf8;
}

/* ═══════════════════════════════════════════════════
   1. PAGE SHELL
   ═══════════════════════════════════════════════════ */
.cpd-page {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 1.75rem 1.5rem 3rem;
}


/* ═══════════════════════════════════════════════════
   2. HEADER BLOCK
   ═══════════════════════════════════════════════════ */
.cpd-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: start;
    margin-bottom: 1rem;
    padding: 1.35rem 1.4rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}
.cpd-header h1   { margin: 0; font-size: clamp(2rem, 3vw, 2.35rem); }
.cpd-title-block { display: grid; gap: 0.55rem; }
.cpd-subtitle    { font-size: 1.02rem; color: var(--color-text-secondary); font-weight: 500; }


/* ═══════════════════════════════════════════════════
   3. CONTEXT CARD & KICKER
   .cpd-context-card → .card-elevated (appearance) + layout stub below
   .cpd-kicker → .kicker (components.css §19)
   ═══════════════════════════════════════════════════ */
/* Layout-only stub — card appearance provided by .card-elevated */
.cpd-context-card {
    margin: 0 0 1rem;
    display: flex;
    gap: 0.5rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}
.cpd-context-copy { display: flex; flex-direction: column; gap: 0.15rem; }


/* ═══════════════════════════════════════════════════
   4. STATUS BADGES
   .cpd-badge → .badge (components.css §19)
   Drug type variants below are kept as .badge extensions
   ═══════════════════════════════════════════════════ */
/* Drug type variants (not covered by generic .badge) */
.badge.natural     { border-color: #86efac; color: #166534; background: #f0fdf4; }
.badge.first-class { border-color: #bfdbfe; color: #1d4ed8; background: #eff6ff; }
.badge.prodrug     { border-color: #fcd34d; color: #92400e; background: #fffbeb; }
.badge.probe       { border-color: #ddd6fe; color: #6d28d9; background: #f5f3ff; }

:root[data-theme="dark"] .badge.natural      { color: #4ade80; border-color: #4ade80; background: rgba(74, 222, 128, 0.12); }
:root[data-theme="dark"] .badge.first-class  { color: #60a5fa; border-color: #60a5fa; background: rgba(96, 165, 250, 0.12); }
:root[data-theme="dark"] .badge.prodrug      { color: #fbbf24; border-color: #fbbf24; background: rgba(251, 191, 36, 0.12); }
:root[data-theme="dark"] .badge.probe        { color: #a78bfa; border-color: #a78bfa; background: rgba(167, 139, 250, 0.12); }


/* ═══════════════════════════════════════════════════
   5. LAYOUT  (grid-2, section)
   .cpd-section → .card  (components.css §19)
   ═══════════════════════════════════════════════════ */
/* cpd-grid-2: compound-specific 2-col grid (reversed column order) */
.cpd-grid-2 {
    display: grid;
    grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1.05fr);
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding: 1.2rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}
/* .cpd-section spacing (appearance via .card) */
.card + .card,
.cpd-grid-2 + .card { margin-top: 0; }
.card { margin-bottom: 0; }
.cpd-page .card { margin-bottom: 1.25rem; }
.cpd-page .card h2 { font-size: 1.25rem; font-weight: 700; margin-bottom: 0.75rem; }


/* ═══════════════════════════════════════════════════
   6. STRUCTURE BOX
   ═══════════════════════════════════════════════════ */
.cpd-structure-box {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 1rem;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px;
}
.cpd-structure-box svg { max-width: 100%; height: auto; }


/* ═══════════════════════════════════════════════════
   7. STAT GRID
   ═══════════════════════════════════════════════════ */
/* .cpd-stat-card / .cpd-stat-val / .cpd-stat-label → .stat-cell / .stat-val / .stat-label (components.css §3) */
.cpd-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}


/* ═══════════════════════════════════════════════════
   8. PROPERTY GRID
   ═══════════════════════════════════════════════════ */
.cpd-prop-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.5rem;
}
.cpd-prop-item {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 0.625rem;
    text-align: center;
}
.cpd-prop-val  { font-size: 1rem; font-weight: 600; font-family: var(--font-mono); }
.cpd-prop-name { font-size: 0.6875rem; color: var(--color-text-secondary); margin-top: 0.125rem; }


/* ═══════════════════════════════════════════════════
   9. DATA TABLE  (베이스는 components.css .cpd-table)
   ═══════════════════════════════════════════════════ */
.cpd-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; text-align: left; }
.cpd-table th,
.cpd-table td  { padding: 0.375rem 0.75rem; border-bottom: 1px solid var(--color-border-light); }
.cpd-table th  {
    font-weight: 600;
    color: var(--color-text-secondary);
    font-size: 0.8125rem;
    background: var(--color-bg);
    white-space: nowrap;
}
.cpd-table tr:hover td { background: var(--color-surface-hover); }
.cpd-table a        { color: var(--color-primary); text-decoration: none; }
.cpd-table a:hover  { text-decoration: underline; }


/* ═══════════════════════════════════════════════════
   10. SYNONYMS & SMILES
   .cpd-synonym-chip → .chip (components.css §19)
   ═══════════════════════════════════════════════════ */
.cpd-synonyms { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.cpd-smiles {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    word-break: break-all;
    background: var(--color-surface);
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    margin-top: 0.5rem;
    border: 1px solid var(--color-border-light);
}


/* ═══════════════════════════════════════════════════
   11. EXTERNAL LINKS
   ═══════════════════════════════════════════════════ */
/* .cpd-ext-link → .asy-ext-link (components.css §20) */
.cpd-links { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.75rem; }


/* ═══════════════════════════════════════════════════
   12A. PROJECT EVIDENCE
   ═══════════════════════════════════════════════════ */
.cpd-evidence-card {
    margin-bottom: 1rem;
}
.cpd-evidence-head {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
    margin-bottom: 0.75rem;
}
.cpd-evidence-query {
    margin: 0.2rem 0 0;
    font-size: 0.8rem;
    color: var(--color-text-secondary);
}
.cpd-evidence-list {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.9rem;
}
.cpd-evidence-item {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 0.85rem 0.95rem;
    background: var(--color-surface);
}
.cpd-evidence-item-head {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
}
.cpd-evidence-main {
    min-width: 0;
    flex: 1 1 auto;
}
.cpd-evidence-badges {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.4rem;
}
.cpd-evidence-retrieval {
    background: var(--color-evidence-retrieval-bg);
    color: var(--color-evidence-retrieval-text);
}
.cpd-evidence-title {
    color: var(--color-text);
    text-decoration: none;
    font-weight: 700;
}
.cpd-evidence-title:hover {
    color: var(--color-primary);
}
.cpd-evidence-time {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    white-space: nowrap;
}
.cpd-evidence-snippet {
    margin-top: 0.45rem;
    font-size: 0.84rem;
    line-height: 1.6;
    color: var(--color-text-secondary);
    white-space: pre-wrap;
}
.cpd-evidence-why {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-top: 0.6rem;
}
.cpd-evidence-actions {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 0.7rem;
}
.cpd-evidence-source {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}
.cpd-evidence-empty {
    margin-top: 0.8rem;
}


/* ═══════════════════════════════════════════════════
   12. DRUG INFO BADGES  (route, flag)
   ═══════════════════════════════════════════════════ */
.cpd-badge-route {
    display: inline-block;
    padding: 0.25rem 0.625rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    margin-right: 0.25rem;
    margin-bottom: 0.375rem;
    background: var(--color-surface);
    border: 1px solid var(--color-cpd-route-border);
    color: var(--color-cpd-route-text);
}
:root[data-theme="dark"] .cpd-badge-route { color: var(--color-cpd-route-text); border-color: var(--color-cpd-route-border); }

.cpd-badge-flag {
    display: inline-block;
    padding: 0.25rem 0.625rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    margin-right: 0.25rem;
    margin-bottom: 0.375rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
}
.cpd-badge-flag.warning     { border-color: var(--color-drug-type-warning-border); color: var(--color-drug-type-warning-text); }
.cpd-badge-flag.natural     { border-color: var(--color-drug-type-natural-border); color: var(--color-drug-type-natural-text); }
.cpd-badge-flag.first-class { border-color: var(--color-drug-type-first-class-border); color: var(--color-drug-type-first-class-text); }
.cpd-badge-flag.prodrug     { border-color: var(--color-drug-type-prodrug-border); color: var(--color-drug-type-prodrug-text); }
.cpd-badge-flag.probe       { border-color: var(--color-drug-type-probe-border); color: var(--color-drug-type-probe-text); }

/* Kept as separate dark rules rather than folded into the base ones: merging
   would move the dark render onto a new cascade path, and identical-dark-SHA is
   the evidence this step rests on (same call as source-guidance in PR5b-1). */
:root[data-theme="dark"] .cpd-badge-flag.natural     { color: var(--color-drug-type-natural-text); border-color: var(--color-drug-type-natural-border); }
:root[data-theme="dark"] .cpd-badge-flag.first-class { color: var(--color-drug-type-first-class-text); border-color: var(--color-drug-type-first-class-border); }
:root[data-theme="dark"] .cpd-badge-flag.prodrug     { color: var(--color-drug-type-prodrug-text); border-color: var(--color-drug-type-prodrug-border); }
:root[data-theme="dark"] .cpd-badge-flag.probe       { color: var(--color-drug-type-probe-text); border-color: var(--color-drug-type-probe-border); }
:root[data-theme="dark"] .cpd-badge-flag.warning     { color: var(--color-drug-type-warning-text); border-color: var(--color-drug-type-warning-border); }


/* ═══════════════════════════════════════════════════
   13. INDICATION BADGES
   ═══════════════════════════════════════════════════ */
.cpd-indication-badge {
    display: inline-block;
    padding: 0.375rem 0.75rem;
    border-radius: 4px;
    font-size: 0.8125rem;
    font-weight: 500;
    margin-right: 0.5rem;
    margin-bottom: 0.5rem;
    max-width: 250px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
}
.cpd-indication-badge.phase4 { border-color: var(--color-indication-phase4-border); color: var(--color-indication-phase4-text); }
.cpd-indication-badge.phase3 { border-color: var(--color-indication-phase3-border); color: var(--color-indication-phase3-text); }
.cpd-indication-badge.phase2 { border-color: var(--color-indication-phase2-border); color: var(--color-indication-phase2-text); }
.cpd-indication-badge.phase1 { border: 1px solid var(--color-border-light); color: var(--color-text-secondary); }

:root[data-theme="dark"] .cpd-indication-badge.phase4 { color: var(--color-indication-phase4-text); border-color: var(--color-indication-phase4-border); }
:root[data-theme="dark"] .cpd-indication-badge.phase3 { color: var(--color-indication-phase3-text); border-color: var(--color-indication-phase3-border); }
:root[data-theme="dark"] .cpd-indication-badge.phase2 { color: var(--color-indication-phase2-text); border-color: var(--color-indication-phase2-border); }


/* ═══════════════════════════════════════════════════
   14. WARNING CARD
   ═══════════════════════════════════════════════════ */
.cpd-warning-card {
    background: var(--color-surface);
    border: 1px solid var(--color-danger-border);
    border-left: 3px solid var(--color-danger-strong);
    border-radius: var(--radius-sm);
    padding: 0.75rem;
    margin-bottom: 0.75rem;
}
.cpd-warning-type-badge {
    display: inline-block;
    padding: 0.25rem 0.625rem;
    border-radius: 3px;
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--color-surface);
    border: 1px solid var(--color-danger-border);
    color: var(--color-danger-strong);
    margin-right: 0.5rem;
    margin-bottom: 0.375rem;
}
.cpd-warning-class { font-weight: 600; color: var(--color-danger-strong); margin-bottom: 0.375rem; }
.cpd-warning-desc  { font-size: 0.875rem; color: var(--color-danger-strong); margin-bottom: 0.375rem; }
.cpd-warning-meta  { font-size: 0.75rem; color: var(--color-text-muted); }


/* ═══════════════════════════════════════════════════
   15. ATC CLASSIFICATION
   ═══════════════════════════════════════════════════ */
.cpd-atc-item {
    background: var(--color-surface);
    border-left: 3px solid var(--color-primary);
    border-radius: var(--radius-sm);
    padding: 0.75rem;
    margin-bottom: 0.75rem;
}
.cpd-atc-code  { font-family: var(--font-mono); font-weight: 600; font-size: 0.9375rem; margin-bottom: 0.25rem; }
.cpd-atc-name  { font-weight: 500; margin-bottom: 0.375rem; }
.cpd-atc-level { font-size: 0.8125rem; color: var(--color-text-secondary); margin-bottom: 0.125rem; }


/* ═══════════════════════════════════════════════════
   16. NAV FORM
   ═══════════════════════════════════════════════════ */
.cpd-nav-form { display: flex; align-items: center; gap: 0.5rem; }


/* ═══════════════════════════════════════════════════
   17. RESPONSIVE
   ═══════════════════════════════════════════════════ */
@media (max-width: 768px) {
    .cpd-page         { padding: 1.25rem 1rem; }
    .cpd-header       { grid-template-columns: 1fr; padding: 1.1rem; }
    .cpd-grid-2       { grid-template-columns: 1fr; }
    .cpd-stat-grid    { grid-template-columns: repeat(2, 1fr); }
    .cpd-context-card { padding: 0.9rem 1rem; }
    .cpd-evidence-head,
    .cpd-evidence-item-head { flex-direction: column; }
}


/* ═══════════════════════════════════════════════════
   18. NAVIGATION FORM
   ═══════════════════════════════════════════════════ */
.cpd-nav-label {
    color: var(--color-text-muted);
    font-size: 0.75rem;
}
.cpd-nav-form input[type="text"] {
    width: 130px;
    padding: 0.375rem 0.5rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-bg);
    color: var(--color-text);
    font-size: 0.8125rem;
}
.cpd-go-btn {
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
}


/* ═══════════════════════════════════════════════════
   19. CONTEXT CARD TEXT
   ═══════════════════════════════════════════════════ */
.cpd-context-copy strong {
    font-size: 0.875rem;
}
.cpd-context-copy > span {
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
}


/* ═══════════════════════════════════════════════════
   20. SMILES ROW & COPY BUTTON
   ═══════════════════════════════════════════════════ */
.cpd-smiles-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}
.cpd-copy-btn {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    white-space: nowrap;
}
.cpd-no-struct {
    color: var(--color-text-muted);
}


/* ═══════════════════════════════════════════════════
   21. INFO TABLE MONO VALUES
   ═══════════════════════════════════════════════════ */
.cpd-info-table td.cpd-mono-val {
    font-family: var(--font-mono);
    font-size: 0.8125rem;
}
.cpd-drug-mono {
    font-family: var(--font-mono);
}


/* ═══════════════════════════════════════════════════
   22. SECTION CONTAINERS
   ═══════════════════════════════════════════════════ */
.cpd-meta-section {
    margin-top: 1rem;
}
.cpd-meta-section h3 {
    font-size: 0.9375rem;
    margin-bottom: 0.5rem;
}

/* ═══════════════════════════════════════════════════
   23. STAT VALUE COLORS
   ═══════════════════════════════════════════════════ */
.stat-val.cpd-stat-activities { color: var(--color-accent); }
.stat-val.cpd-stat-pk         { color: #059669; }
.stat-val.cpd-stat-lit        { color: #7c3aed; }
.stat-val.cpd-stat-syn        { color: #92400e; }
.stat-val.cpd-stat-ind        { color: #10b981; }
.stat-val.cpd-stat-mech       { color: #f59e0b; }


/* ═══════════════════════════════════════════════════
   24. AVAILABILITY TYPE
   ═══════════════════════════════════════════════════ */
.cpd-avail-withdrawn    { color: #dc2626; font-weight: 500; }
.cpd-avail-unknown      { color: #6b7280; }
.cpd-avail-discontinued { color: #6b7280; }
.cpd-avail-rx           { color: #059669; font-weight: 500; }
.cpd-avail-otc          { color: #0284c7; font-weight: 500; }

/* PR7 4단계: these literals were never theme-split — #059669/#10b981/#0284c7
   pass AA against the dark stat-cell surface (contrast 4.16-6.71) but fall
   short against the light one (2.53-4.09). Scope darker values to light only
   instead of changing the shared literal, so dark keeps its passing contrast. */
:root:not([data-theme="dark"]) .stat-val.cpd-stat-pk { color: #047857; }
:root:not([data-theme="dark"]) .stat-val.cpd-stat-ind { color: #047857; }
:root:not([data-theme="dark"]) .cpd-avail-rx { color: #047857; }
:root:not([data-theme="dark"]) .cpd-avail-otc { color: #0369a1; }


/* ═══════════════════════════════════════════════════
   25. TABLE WRAPPERS
   ═══════════════════════════════════════════════════ */
.cpd-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}


/* ═══════════════════════════════════════════════════
   26. CHIP ROWS
   ═══════════════════════════════════════════════════ */
.cpd-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.cpd-more-chip {
    color: var(--color-text-muted);
}


/* ═══════════════════════════════════════════════════
   27. WARNING CARD INNER
   ═══════════════════════════════════════════════════ */
.cpd-warning-badge-row {
    margin-bottom: 0.375rem;
}


/* ═══════════════════════════════════════════════════
   28. ACTIVITY STAT CARDS
   ═══════════════════════════════════════════════════ */
.cpd-astat-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.cpd-astat-type {
    font-weight: 600;
    color: var(--color-primary);
}
.cpd-astat-count {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
}
.cpd-astat-best {
    font-size: 0.75rem;
    font-family: var(--font-mono);
    color: var(--color-text-muted);
}


/* ═══════════════════════════════════════════════════
   29. TARGET TABLE CELLS
   ═══════════════════════════════════════════════════ */
.cpd-tgt-id {
    font-size: 0.6875rem;
    color: var(--color-text-muted);
}
.cpd-cell-mono      { font-family: var(--font-mono); }
.cpd-cell-mono-bold { font-family: var(--font-mono); font-weight: 600; }
.cpd-cell-center    { text-align: center; }


/* ═══════════════════════════════════════════════════
   30. PK TABLE
   ═══════════════════════════════════════════════════ */
.cpd-pk-param { font-weight: 600; }


/* ═══════════════════════════════════════════════════
   31. ACTIVITY SAMPLES
   ═══════════════════════════════════════════════════ */
.cpd-samples-note {
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    margin-bottom: 0.75rem;
}
.cpd-act-assay-desc {
    font-size: 0.75rem;
    max-width: 250px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cpd-act-link { font-size: 0.75rem; }


/* ═══════════════════════════════════════════════════
   32. DATA SOURCE FOOTER
   ═══════════════════════════════════════════════════ */
.cpd-data-source {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    margin-top: 1rem;
}

.phase2-cta { display: none; }
