/**
 * Two-tier color system
 * ─────────────────────
 * 1. Project brand (`--color-primary` in 00-preamble-tokens.css)
 *    → buttons, links, global chrome. Same on every page.
 * 2. Module accent (`--module-accent` below on body.module-*)
 *    → topbar stripe, page title, module badges, subnav, module registration forms.
 *
 * Apply module class on body: module-lab | module-hospital | module-pharmacy
 */

:root {
    --module-accent: #334155;
    --module-accent-soft: #f1f5f9;
    --module-accent-rgb: 51, 65, 85;
    --module-accent-dark: #1e293b;
}

/* ── Laboratory (clinical green / teal) ── */
body.module-lab {
    --module-accent: #0f766e;
    --module-accent-soft: #ccfbf1;
    --module-accent-rgb: 15, 118, 110;
    --module-accent-dark: #0d5d56;
    /* Primary chrome on lab routes: buttons, table headers, pagination, filter CTAs */
    --color-primary: #0f766e;
    --color-primary-dark: #0d5d56;
    --color-primary-hover: #0d9488;
    --color-primary-rgb: 15, 118, 110;
}

/* ── Hospital (clinical blue — aligns with project brand) ── */
body.module-hospital {
    --module-accent: #145da0;
    --module-accent-soft: #e8f2fc;
    --module-accent-rgb: 20, 93, 160;
    --module-accent-dark: #0f487f;
}

/* ── Pharmacy (purple) ── */
body.module-pharmacy {
    --module-accent: #6d28d9;
    --module-accent-soft: #ede9fe;
    --module-accent-rgb: 109, 40, 217;
    --module-accent-dark: #5b21b6;
}

/* Module accent → section subnav (overrides hardcoded subnav palette classes) */
body.module-lab .module-subnav,
body.module-hospital .module-subnav,
body.module-pharmacy .module-subnav {
    --subnav-accent: var(--module-accent);
    --subnav-accent-hover: var(--module-accent-dark);
    --subnav-accent-soft: rgba(var(--module-accent-rgb), 0.12);
    --subnav-accent-ring: rgba(var(--module-accent-rgb), 0.28);
}

/* Module accent → OPD-style registration surfaces */
body.module-lab .opd-register,
body.module-hospital .opd-register,
body.module-pharmacy .opd-register {
    --opd-accent: var(--module-accent);
    --opd-accent-soft: var(--module-accent-soft);
}

/* Top bar — module stripe + title */
body.module-lab .topbar,
body.module-hospital .topbar,
body.module-pharmacy .topbar {
    border-bottom: 3px solid var(--module-accent);
}

body.module-lab .topbar-titles h1,
body.module-hospital .topbar-titles h1,
body.module-pharmacy .topbar-titles h1 {
    color: var(--module-accent);
}

/* Module badge on registration cards */
.module-register-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: var(--module-accent-soft);
    color: var(--module-accent);
    border: 1px solid rgba(var(--module-accent-rgb), 0.22);
}

.lab-register__split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 320px);
    gap: 1rem;
    margin-top: 0.75rem;
}

@media (max-width: 960px) {
    .lab-register__split {
        grid-template-columns: 1fr;
    }
}

.lab-register__tests-card,
.lab-register__pay-card {
    border: 1px solid var(--opd-border, #e2e8f0);
    border-radius: 10px;
    padding: 0.85rem 1rem;
    background: #fff;
}

.lab-register__tests-card {
    border-top: 3px solid var(--module-accent);
}

/* Lab list tables — match patients / reports hub tables */
body.module-lab .data-table th {
    background: linear-gradient(135deg, var(--module-accent) 0%, var(--module-accent-dark) 100%);
}

body.module-lab .data-table tbody tr:hover {
    background: rgba(var(--module-accent-rgb), 0.06);
}

body.module-lab .list-pagination__btn--active {
    background: linear-gradient(135deg, var(--module-accent) 0%, var(--module-accent-dark) 100%);
    border-color: var(--module-accent-dark);
    box-shadow: 0 2px 8px rgba(var(--module-accent-rgb), 0.28);
}

body.module-lab a.list-pagination__btn:hover {
    border-color: rgba(var(--module-accent-rgb), 0.45);
    color: var(--module-accent);
    background: rgba(var(--module-accent-rgb), 0.06);
}
