:root {
    --background: #f5f7fa;
    --sidebar: #fbfcfd;
    --surface: #ffffff;
    --surface-raised: #f0f3f7;
    --surface-hover: #edf1f6;
    --border: #dfe5ec;
    --border-strong: #cdd5df;
    --text: #14202b;
    --muted: #667585;
    --muted-subtle: #8996a4;
    --accent: #3b63e6;
    --accent-strong: #294fc4;
    --accent-soft: #e9efff;
    --good: #16815d;
    --good-soft: #e3f5ee;
    --warn: #a96b14;
    --warn-soft: #fff2dc;
    --bad: #c6414b;
    --bad-soft: #fdebee;
    --shadow-xs: 0 1px 2px rgba(16, 24, 40, .06);
    --shadow-sm: 0 8px 24px rgba(25, 38, 55, .06);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

[data-bs-theme="dark"] {
    --background: #0b0e13;
    --sidebar: #10141a;
    --surface: #141920;
    --surface-raised: #1b222c;
    --surface-hover: #1c242e;
    --border: #272f3a;
    --border-strong: #36414e;
    --text: #edf2f7;
    --muted: #99a6b4;
    --muted-subtle: #707e8d;
    --accent: #6f8fff;
    --accent-strong: #9aafff;
    --accent-soft: #202b4e;
    --good: #56c79a;
    --good-soft: #15382d;
    --warn: #e1a550;
    --warn-soft: #3c2b16;
    --bad: #ef7078;
    --bad-soft: #402125;
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);
    --shadow-sm: 0 12px 32px rgba(0, 0, 0, .18);
}

* {
    box-sizing: border-box;
}

html,
body {
    background: var(--background);
    color: var(--text);
    margin: 0;
}

html {
    scrollbar-color: var(--border-strong) var(--background);
}

body {
    min-width: 320px;
}

a {
    color: var(--accent);
}

h1,
h2,
p {
    margin-top: 0;
}

h1 {
    font-size: clamp(1.75rem, 2.5vw, 2.55rem);
    letter-spacing: -.04em;
    line-height: 1.08;
    margin-bottom: .8rem;
}

h1:focus {
    outline: none;
}

h2 {
    font-size: 1.2rem;
    letter-spacing: -.015em;
    margin-bottom: 0;
}

code {
    color: var(--muted);
    font-size: .75rem;
}

.page-heading,
.panel-heading {
    align-items: end;
    display: flex;
    justify-content: space-between;
}

.page-heading {
    margin-bottom: 1.5rem;
}

.eyebrow {
    color: var(--accent);
    font-size: .72rem;
    font-weight: 760;
    letter-spacing: .14em;
    margin-bottom: .65rem;
    text-transform: uppercase;
}

.lede,
.as-of,
.panel-heading > span {
    color: var(--muted);
}

.as-of,
.panel-heading > span,
.panel-heading > a {
    font-size: .78rem;
}

.summary-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.summary-card,
.panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .9rem;
    box-shadow: var(--shadow-xs);
}

.summary-card {
    display: flex;
    flex-direction: column;
    padding: 1.25rem;
}

.summary-card.urgent {
    border-top: 3px solid var(--bad);
}

.summary-card.caution {
    border-top: 3px solid var(--warn);
}

.summary-number {
    font-size: 2rem;
    font-variant-numeric: tabular-nums;
    font-weight: 720;
}

.summary-label {
    color: var(--muted);
    font-size: .8rem;
    margin-top: .25rem;
}

.panel {
    margin-top: 1rem;
    padding: 1.35rem;
}

.business-scope {
    color: var(--muted);
    font-size: .72rem;
    margin: -.35rem 0 1.7rem;
}

.business-trends {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.business-detail-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.business-detail-card {
    margin-top: 0;
}

.business-checks {
    margin: .25rem 0 0;
}

.business-checks > div {
    align-items: center;
    border-bottom: 1px solid var(--border);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .8rem 0;
}

.business-checks > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.business-checks dt {
    color: var(--muted);
    font-size: .78rem;
}

.business-checks dd {
    font-size: .83rem;
    font-weight: 700;
    margin: 0;
    text-align: right;
}

.business-exceptions {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.business-exceptions > div {
    border-bottom: 0;
    display: block;
    padding-bottom: 0;
}

.business-exceptions dd {
    font-size: 1.35rem;
    margin-top: .35rem;
    text-align: left;
}

.fact-good { color: var(--good); }
.fact-warn { color: var(--warn); }
.fact-bad { color: var(--bad); }

.panel-heading {
    border-bottom: 1px solid var(--border);
    padding-bottom: 1rem;
}

.empty-state,
.loading {
    color: var(--muted);
    line-height: 1.55;
    margin: 1.25rem 0 0;
    max-width: 60rem;
}

.attention-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.attention-list li {
    align-items: start;
    border-bottom: 1px solid var(--border);
    display: grid;
    gap: 1rem;
    grid-template-columns: auto 1fr;
    padding: 1rem 0;
}

.attention-list li:last-child {
    border-bottom: 0;
}

.attention-list p {
    color: var(--muted);
    font-size: .86rem;
    margin: .35rem 0 0;
}

.attention-actions {
    display: flex;
    gap: .5rem;
    margin-top: .8rem;
}

.attention-actions button {
    background: var(--surface-raised);
    border: 1px solid var(--border);
    border-radius: .45rem;
    color: var(--text);
    cursor: pointer;
    padding: .45rem .7rem;
}

.attention-actions button.resolve {
    color: var(--good);
}

.primary-action,
.attention-actions button.execute {
    background: var(--accent);
    border: 1px solid var(--accent);
    border-radius: .55rem;
    color: white;
    cursor: pointer;
    padding: .65rem .9rem;
}

.notice {
    border: 1px solid var(--border);
    border-radius: .75rem;
    margin-bottom: 1rem;
    padding: .9rem 1rem;
}

.error-notice {
    border-color: var(--bad);
    color: var(--bad);
}

.operator-guidance {
    border-left: .3rem solid var(--warn);
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
}

.operator-guidance h2,
.operator-guidance h3,
.operator-guidance p {
    margin-top: 0;
}

.operator-guidance p {
    line-height: 1.55;
}

.guidance-link {
    display: inline-block;
    text-decoration: none;
}

@media (max-width: 720px) {
    .operator-guidance {
        grid-template-columns: 1fr;
    }
}

.action-preview {
    font-size: 1rem;
    line-height: 1.55;
    margin: 1rem 0;
    max-width: 75rem;
}

.action-facts {
    display: grid;
    gap: .6rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.action-facts div {
    border-top: 1px solid var(--border);
    padding-top: .65rem;
}

.action-facts dt,
.action-facts dd {
    font-size: .8rem;
    margin: 0;
}

.action-facts dt {
    color: var(--muted);
}

.action-status {
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.action-status.succeeded { color: var(--good); }
.action-status.failed,
.action-status.expired { color: var(--bad); }
.action-status.approved,
.action-status.dispatched { color: var(--warn); }

.attention-actions button:disabled {
    cursor: wait;
    opacity: .55;
}

.activity-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.activity-list li {
    border-bottom: 1px solid var(--border);
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 11rem 1fr;
    padding: 1rem 0;
}

.activity-list li:last-child {
    border-bottom: 0;
}

.activity-list time,
.activity-list p {
    color: var(--muted);
    font-size: .8rem;
}

.activity-list p {
    margin: .3rem 0;
}

.priority {
    background: var(--surface-raised);
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 720;
    padding: .3rem .55rem;
    text-transform: uppercase;
}

.priority.critical {
    color: var(--bad);
}

.priority.high {
    color: var(--warn);
}

.source-table {
    margin-top: .2rem;
}

.source-row {
    align-items: center;
    border-bottom: 1px solid var(--border);
    display: grid;
    gap: .8rem;
    grid-template-columns: .8rem minmax(16rem, 2fr) minmax(7rem, .6fr) minmax(8rem, .8fr) minmax(7rem, .7fr);
    min-height: 4rem;
}

.source-row:last-child {
    border-bottom: 0;
}

.health-dot {
    background: var(--muted);
    border-radius: 50%;
    height: .6rem;
    width: .6rem;
}

.health-dot.healthy {
    background: var(--good);
}

.health-dot.degraded,
.health-dot.partial,
.health-dot.stale {
    background: var(--warn);
}

.health-dot.unavailable {
    background: var(--bad);
}

.source-name strong,
.source-name code {
    display: block;
}

.source-state {
    font-size: .82rem;
    font-weight: 650;
}

.source-age,
.source-coverage {
    color: var(--muted);
    font-size: .78rem;
}

.source-row-detail {
    min-height: 5rem;
}

.source-link {
    color: var(--text);
    text-decoration: none;
    transition: background .15s ease, transform .15s ease;
}

.source-link:hover {
    background: color-mix(in srgb, var(--surface-raised) 70%, transparent);
    transform: translateX(.2rem);
}

.source-name p {
    color: var(--muted);
    font-size: .78rem;
    margin: .3rem 0 0;
}

.source-name p.source-error {
    color: var(--bad);
}

.product-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.product-card {
    margin-top: 0;
}

.product-card > p:not(.eyebrow) {
    color: var(--muted);
    line-height: 1.5;
    min-height: 4.5rem;
}

.product-card dl {
    border-top: 1px solid var(--border);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 1rem 0 0;
    padding-top: 1rem;
}

.product-card dl div {
    display: flex;
    flex-direction: column-reverse;
}

.product-card dt {
    color: var(--muted);
    font-size: .68rem;
}

.product-card dd {
    font-size: 1.3rem;
    font-weight: 700;
    margin: 0;
}

.product-sources {
    border-top: 1px solid var(--border);
    margin-top: 1rem;
    padding-top: .5rem;
}

.product-sources a {
    align-items: center;
    color: var(--text);
    display: flex;
    font-size: .78rem;
    gap: .55rem;
    padding: .45rem 0;
    text-decoration: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--good);
}

/* Command-center overview */
.dashboard-heading {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.35rem;
}

.dashboard-heading h1 {
    margin-bottom: .55rem;
}

.dashboard-heading .lede {
    font-size: .92rem;
    margin-bottom: 0;
}

.dashboard-refresh {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: .65rem;
}

.heading-actions {
    align-items: center;
    display: flex;
    gap: .75rem;
}

.live-indicator {
    align-items: center;
    color: var(--muted);
    display: inline-flex;
    font-size: .72rem;
    gap: .42rem;
}

.live-indicator i {
    background: var(--good);
    border-radius: 50%;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--good) 14%, transparent);
    height: .45rem;
    width: .45rem;
}

.secondary-action {
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: .55rem;
    box-shadow: var(--shadow-xs);
    color: var(--text);
    font-size: .75rem;
    font-weight: 650;
    padding: .62rem .8rem;
    text-decoration: none;
}

.secondary-action:hover {
    background: var(--surface-hover);
}

.status-banner {
    align-items: center;
    background: var(--good-soft);
    border: 1px solid color-mix(in srgb, var(--good) 34%, var(--border));
    border-radius: .85rem;
    display: grid;
    gap: .9rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin-bottom: 1rem;
    min-height: 4.7rem;
    padding: .9rem 1.1rem;
}

.status-banner.warning {
    background: var(--warn-soft);
    border-color: color-mix(in srgb, var(--warn) 34%, var(--border));
}

.status-banner.critical {
    background: var(--bad-soft);
    border-color: color-mix(in srgb, var(--bad) 34%, var(--border));
}

.status-symbol {
    align-items: center;
    background: var(--good);
    border-radius: 50%;
    color: white;
    display: flex;
    font-size: .9rem;
    font-weight: 800;
    height: 2.15rem;
    justify-content: center;
    width: 2.15rem;
}

.status-banner.warning .status-symbol { background: var(--warn); }
.status-banner.critical .status-symbol { background: var(--bad); }

.status-banner strong {
    display: block;
    font-size: .86rem;
}

.status-banner p {
    color: var(--muted);
    font-size: .73rem;
    margin: .22rem 0 0;
}

.status-banner > a,
.card-link {
    color: var(--text);
    font-size: .72rem;
    font-weight: 650;
    text-decoration: none;
}

.status-banner > a span,
.card-link span,
.kpi-card > a span {
    color: var(--accent);
    margin-left: .2rem;
}

.kpi-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1.6rem;
}

.kpi-card,
.insight-card,
.chart-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .85rem;
    box-shadow: var(--shadow-xs);
}

.kpi-card {
    min-height: 9rem;
    padding: 1rem 1.05rem;
}

.kpi-top {
    align-items: center;
    color: var(--muted);
    display: flex;
    font-size: .68rem;
    font-weight: 650;
    justify-content: space-between;
}

.kpi-icon {
    align-items: center;
    background: var(--surface-raised);
    border-radius: .45rem;
    display: flex;
    font-style: normal;
    height: 1.55rem;
    justify-content: center;
    width: 1.55rem;
}

.kpi-icon.good { background: var(--good-soft); color: var(--good); }
.kpi-icon.bad { background: var(--bad-soft); color: var(--bad); }

.kpi-card > strong {
    display: block;
    font-size: 1.85rem;
    letter-spacing: -.04em;
    margin-top: .55rem;
}

.kpi-card > strong.kpi-time {
    font-size: 1.35rem;
    margin-top: .75rem;
}

.kpi-denominator {
    color: var(--muted-subtle);
    font-size: .95rem;
    font-weight: 560;
}

.kpi-card p {
    color: var(--muted);
    font-size: .68rem;
    margin: .1rem 0 .75rem;
}

.kpi-card > a {
    color: var(--muted);
    font-size: .66rem;
    font-weight: 620;
    text-decoration: none;
}

.progress-track {
    background: var(--surface-raised);
    border-radius: 1rem;
    height: .28rem;
    margin-top: 1rem;
    overflow: hidden;
}

.progress-track span {
    background: var(--good);
    border-radius: inherit;
    display: block;
    height: 100%;
}

.dashboard-layout {
    display: grid;
    gap: .9rem;
    grid-template-columns: minmax(0, 2.15fr) minmax(18rem, .85fr);
}

.section-heading {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    margin-bottom: .8rem;
}

.section-heading.compact {
    align-items: center;
    border-bottom: 1px solid var(--border);
    margin: 0;
    min-height: 3.9rem;
    padding: .9rem 1rem;
}

.section-heading .eyebrow {
    font-size: .59rem;
    margin-bottom: .3rem;
}

.section-heading h2 {
    font-size: 1rem;
}

.section-heading > span,
.section-heading > a {
    color: var(--muted);
    font-size: .66rem;
}

.chart-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.chart-card {
    color: var(--text);
    display: block;
    min-height: 13rem;
    overflow: hidden;
    padding: 1rem 1rem .75rem;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.chart-card:hover {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-sm);
    transform: translateY(-1px);
}

.chart-heading {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
}

.chart-heading span,
.chart-heading strong {
    display: block;
}

.chart-heading span {
    color: var(--muted);
    font-size: .66rem;
}

.chart-heading strong {
    font-size: 1.42rem;
    letter-spacing: -.035em;
    margin-top: .25rem;
}

.chart-heading .trend-range {
    background: var(--surface-raised);
    border-radius: 99px;
    font-size: .6rem;
    padding: .28rem .46rem;
}

.metric-chart {
    margin-top: .65rem;
}

.metric-chart svg {
    display: block;
    height: auto;
    margin: 0;
    overflow: visible;
    width: 100%;
}

.metric-chart-grid line {
    stroke: var(--border);
    stroke-dasharray: 3 4;
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.metric-chart-y-axis text,
.metric-chart-x-axis text {
    fill: var(--muted);
    font-size: 9px;
    font-variant-numeric: tabular-nums;
}

.metric-chart-line {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.25;
    vector-effect: non-scaling-stroke;
}

.metric-chart-latest {
    stroke: var(--surface);
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.metric-chart-summary {
    border-top: 1px solid var(--border);
    display: grid;
    gap: .35rem .7rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: .2rem 0 0;
    padding-top: .65rem;
}

.metric-chart-summary div {
    display: flex;
    justify-content: space-between;
}

.metric-chart-summary dt,
.metric-chart-summary dd {
    font-size: .62rem;
    margin: 0;
}

.metric-chart-summary dt {
    color: var(--muted);
}

.metric-chart-summary dd {
    font-variant-numeric: tabular-nums;
    font-weight: 650;
    text-align: right;
}

.chart-empty {
    align-items: center;
    color: var(--muted);
    display: flex;
    font-size: .7rem;
    height: 7rem;
    justify-content: center;
    text-align: center;
}

.dashboard-secondary {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    padding-top: 2.85rem;
}

.insight-card {
    overflow: hidden;
}

.health-visual {
    align-items: center;
    display: grid;
    gap: 1.2rem;
    grid-template-columns: 7.8rem 1fr;
    padding: 1.25rem 1rem;
}

.health-ring {
    align-items: center;
    background: conic-gradient(
        var(--good) 0 var(--healthy),
        var(--warn) var(--healthy) var(--degraded),
        var(--bad) var(--degraded) var(--unavailable),
        var(--border-strong) var(--unavailable) 100%);
    border-radius: 50%;
    display: flex;
    height: 7.5rem;
    justify-content: center;
    position: relative;
    width: 7.5rem;
}

.health-ring::after {
    background: var(--surface);
    border-radius: 50%;
    content: "";
    height: 5.45rem;
    position: absolute;
    width: 5.45rem;
}

.health-ring > span {
    position: relative;
    text-align: center;
    z-index: 1;
}

.health-ring strong,
.health-ring small {
    display: block;
}

.health-ring strong {
    font-size: 1.35rem;
    letter-spacing: -.04em;
}

.health-ring small {
    color: var(--muted);
    font-size: .58rem;
}

.health-legend {
    margin: 0;
}

.health-legend > div {
    align-items: center;
    border-bottom: 1px solid var(--border);
    display: flex;
    font-size: .65rem;
    justify-content: space-between;
    padding: .42rem 0;
}

.health-legend > div:last-child { border-bottom: 0; }
.health-legend dt { color: var(--muted); font-weight: 500; }
.health-legend dd { font-weight: 720; margin: 0; }
.health-legend i { border-radius: 50%; display: inline-block; height: .42rem; margin-right: .4rem; width: .42rem; }
.health-legend i.good { background: var(--good); }
.health-legend i.warn { background: var(--warn); }
.health-legend i.bad { background: var(--bad); }
.health-legend i.unknown { background: var(--border-strong); }

.authority-list {
    margin: 0;
    padding: .35rem 1rem .25rem;
}

.authority-list > div {
    align-items: center;
    border-bottom: 1px solid var(--border);
    display: flex;
    font-size: .68rem;
    justify-content: space-between;
    padding: .72rem 0;
}

.authority-list > div:last-child { border-bottom: 0; }
.authority-list dt { color: var(--muted); }
.authority-list dd { align-items: center; display: flex; font-weight: 650; gap: .45rem; margin: 0; }
.authority-card .card-link { border-top: 1px solid var(--border); display: block; padding: .85rem 1rem; }

.dashboard-lower {
    display: grid;
    gap: .9rem;
    grid-template-columns: minmax(0, 1.45fr) minmax(20rem, .75fr);
    margin-top: .9rem;
}

.clear-state {
    align-items: center;
    display: flex;
    gap: .8rem;
    min-height: 6rem;
    padding: 1rem;
}

.clear-state > span {
    align-items: center;
    background: var(--good-soft);
    border-radius: 50%;
    color: var(--good);
    display: flex;
    font-weight: 760;
    height: 2.2rem;
    justify-content: center;
    width: 2.2rem;
}

.clear-state strong { font-size: .75rem; }
.clear-state p { color: var(--muted); font-size: .66rem; margin: .25rem 0 0; }

.dashboard-attention-list,
.dashboard-activity-list {
    list-style: none;
    margin: 0;
    padding: .25rem 1rem;
}

.dashboard-attention-list li {
    align-items: start;
    border-bottom: 1px solid var(--border);
    display: grid;
    gap: .7rem;
    grid-template-columns: auto 1fr auto;
    padding: .7rem 0;
}

.dashboard-attention-list li:last-child { border-bottom: 0; }
.dashboard-attention-list strong { font-size: .71rem; }
.dashboard-attention-list p { color: var(--muted); font-size: .63rem; margin: .18rem 0 0; }
.dashboard-attention-list time { color: var(--muted-subtle); font-size: .58rem; }

.site-rollups {
    padding: .25rem 1rem;
}

.site-rollups > a {
    align-items: center;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    display: grid;
    gap: .65rem;
    grid-template-columns: auto 1fr auto;
    padding: .7rem 0;
    text-decoration: none;
}

.site-rollups > a:last-child { border-bottom: 0; }
.site-rollups strong,
.site-rollups small { display: block; }
.site-rollups strong { font-size: .71rem; }
.site-rollups small { color: var(--muted); font-size: .6rem; margin-top: .18rem; }
.site-rollups em { color: var(--muted); font-size: .58rem; font-style: normal; text-transform: capitalize; }

.site-orbit {
    align-items: center;
    background: var(--good-soft);
    border-radius: 50%;
    display: flex;
    height: 1.8rem;
    justify-content: center;
    width: 1.8rem;
}

.site-orbit i { background: var(--good); border-radius: 50%; height: .45rem; width: .45rem; }
.site-orbit.degraded { background: var(--warn-soft); }
.site-orbit.degraded i { background: var(--warn); }
.site-orbit.critical { background: var(--bad-soft); }
.site-orbit.critical i { background: var(--bad); }

.activity-card {
    margin-top: .9rem;
}

.dashboard-activity-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dashboard-activity-list li {
    align-items: start;
    border-bottom: 1px solid var(--border);
    display: grid;
    gap: .65rem;
    grid-template-columns: auto 1fr auto;
    padding: .75rem .5rem;
}

.dashboard-activity-list li:nth-child(odd) { border-right: 1px solid var(--border); padding-right: 1rem; }
.dashboard-activity-list li:nth-child(even) { padding-left: 1rem; }
.activity-glyph { align-items: center; background: var(--surface-raised); border-radius: .4rem; color: var(--accent-strong); display: flex; font-size: .65rem; font-weight: 750; height: 1.65rem; justify-content: center; width: 1.65rem; }
.dashboard-activity-list strong { font-size: .68rem; }
.dashboard-activity-list p { color: var(--muted); font-size: .61rem; line-height: 1.4; margin: .18rem 0 0; }
.dashboard-activity-list time { color: var(--muted-subtle); font-size: .56rem; white-space: nowrap; }

.dashboard-loading {
    align-items: center;
    color: var(--muted);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: center;
    min-height: 60vh;
}

.dashboard-loading span {
    animation: ops-spin .8s linear infinite;
    border: 2px solid var(--border);
    border-radius: 50%;
    border-top-color: var(--accent);
    height: 2rem;
    width: 2rem;
}

/* Operator-first dashboard */
.dashboard-section {
    margin-top: 2rem;
}

.dashboard-section > .section-heading {
    align-items: end;
    margin-bottom: .9rem;
}

.dashboard-section > .section-heading h2 {
    font-size: 1.18rem;
}

.dashboard-section > .section-heading > a {
    font-size: .78rem;
    font-weight: 650;
    text-decoration: none;
}

.problem-list {
    background: var(--surface);
    border: 1px solid color-mix(in srgb, var(--warn) 38%, var(--border));
    border-radius: .85rem;
    margin-bottom: 1.2rem;
    overflow: hidden;
}

.problem-list > a,
.component-list > a {
    align-items: center;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    display: grid;
    gap: .75rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: .82rem 1rem;
    text-decoration: none;
}

.problem-list > a:last-child,
.component-list > a:last-child {
    border-bottom: 0;
}

.problem-list strong,
.problem-list small,
.component-list strong,
.component-list small {
    display: block;
}

.problem-list small,
.component-list small {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.45;
    margin-top: .2rem;
}

.problem-list em,
.component-list time {
    color: var(--muted);
    font-size: .68rem;
    font-style: normal;
    white-space: nowrap;
}

.system-group-grid {
    display: grid;
    gap: .9rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.system-group-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .85rem;
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}

.system-group-card > header {
    align-items: center;
    background: color-mix(in srgb, var(--surface-raised) 42%, var(--surface));
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    min-height: 4.4rem;
    padding: .9rem 1rem;
}

.system-group-card > header strong,
.system-group-card > header span {
    display: block;
}

.system-group-card > header strong {
    font-size: .9rem;
}

.system-group-card > header div > span {
    color: var(--muted);
    font-size: .7rem;
    margin-top: .2rem;
}

.state-pill {
    background: var(--surface-raised);
    border-radius: 999px;
    color: var(--muted);
    font-size: .65rem;
    font-weight: 720;
    padding: .34rem .55rem;
}

.state-pill.healthy { background: var(--good-soft); color: var(--good); }
.state-pill.degraded,
.state-pill.partial,
.state-pill.stale { background: var(--warn-soft); color: var(--warn); }
.state-pill.unavailable { background: var(--bad-soft); color: var(--bad); }

.automation-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.automation-card {
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .75rem;
    color: var(--text);
    display: grid;
    gap: .8rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 5.4rem;
    padding: .9rem 1rem;
    text-decoration: none;
}

.automation-card:hover,
.component-list > a:hover,
.problem-list > a:hover {
    background: var(--surface-hover);
}

.automation-card strong {
    font-size: .83rem;
}

.automation-card p {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.45;
    margin: .2rem 0 0;
}

.automation-state {
    color: var(--muted);
    font-size: .68rem;
    white-space: nowrap;
}

.automation-state b {
    color: var(--accent);
    margin-left: .35rem;
}

.trend-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.trend-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .85rem;
    color: var(--text);
    display: block;
    min-height: 14.5rem;
    overflow: hidden;
    padding: 1rem;
    text-decoration: none;
}

.trend-card:hover:not(.trend-card-empty) {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-sm);
}

.trend-heading {
    align-items: start;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
}

.trend-heading span,
.trend-heading strong,
.trend-heading small {
    display: block;
}

.trend-heading > div > span {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 620;
}

.trend-heading strong {
    font-size: 1.45rem;
    letter-spacing: -.035em;
    margin-top: .25rem;
}

.trend-heading small {
    color: var(--muted);
    font-size: .65rem;
    line-height: 1.4;
    margin-top: .25rem;
}

.trend-heading > span {
    background: var(--surface-raised);
    border-radius: 999px;
    color: var(--muted);
    font-size: .6rem;
    padding: .28rem .48rem;
    white-space: nowrap;
}

.trend-card-empty {
    border-style: dashed;
}

.recovery-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.recovery-grid > a {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .8rem;
    color: var(--text);
    display: flex;
    flex-direction: column;
    min-height: 9.5rem;
    padding: 1rem;
    text-decoration: none;
}

.recovery-grid > a:hover {
    border-color: var(--accent);
}

.recovery-grid strong,
.recovery-grid span,
.recovery-grid b {
    display: block;
}

.recovery-grid strong {
    font-size: .9rem;
}

.recovery-grid span {
    color: var(--muted);
    font-size: .73rem;
    line-height: 1.5;
    margin-top: .45rem;
}

.recovery-grid b {
    color: var(--accent);
    font-size: .72rem;
    margin-top: auto;
    padding-top: .8rem;
}

.recent-activity .dashboard-activity-list {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .85rem;
    display: block;
    padding: .1rem 1rem;
}

.recent-activity .dashboard-activity-list li,
.recent-activity .dashboard-activity-list li:nth-child(odd),
.recent-activity .dashboard-activity-list li:nth-child(even) {
    border-bottom: 1px solid var(--border);
    border-right: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .78rem 0;
}

.recent-activity .dashboard-activity-list li:last-child {
    border-bottom: 0;
}

.recent-activity .dashboard-activity-list strong {
    font-size: .75rem;
}

.recent-activity .dashboard-activity-list p {
    font-size: .68rem;
}

.recovery-option-grid {
    display: grid;
    gap: .9rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.recovery-option {
    align-items: end;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .9rem;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 1.15rem;
}

.recovery-option.high-risk {
    border-top: 3px solid var(--warn);
}

.recovery-option span {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 650;
    text-transform: uppercase;
}

.recovery-option h2 {
    font-size: 1rem;
    margin-top: .3rem;
}

.recovery-option p {
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.5;
    margin: .45rem 0 0;
}

.recovery-option button {
    background: var(--surface-raised);
    border: 1px solid var(--border-strong);
    border-radius: .55rem;
    color: var(--text);
    cursor: pointer;
    font: inherit;
    font-size: .74rem;
    font-weight: 650;
    padding: .65rem .8rem;
}

.recovery-option button.execute {
    background: var(--accent);
    border-color: var(--accent);
    color: white;
}

.recovery-option button:disabled {
    cursor: wait;
    opacity: .55;
}

.action-history-heading {
    margin: 2rem 0 .25rem;
}

.technical-details {
    border-top: 1px solid var(--border);
    color: var(--muted);
    font-size: .72rem;
    margin-top: .9rem;
    padding-top: .7rem;
}

.technical-details summary {
    cursor: pointer;
}

.incident-meta {
    font-size: .72rem !important;
}

@keyframes ops-spin { to { transform: rotate(360deg); } }

/* Account and security */
.account-settings {
    max-width: 1120px;
}

.settings-heading {
    border-bottom: 1px solid var(--border);
    margin-bottom: 1.4rem;
    padding-bottom: 1.2rem;
}

.settings-heading h1 { margin-bottom: .45rem; }
.settings-heading p { color: var(--muted); font-size: .84rem; margin-bottom: 0; }

.settings-layout {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 13rem minmax(0, 1fr);
}

.settings-nav {
    align-self: start;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .8rem;
    box-shadow: var(--shadow-xs);
    padding: .45rem;
    position: sticky;
    top: 1rem;
}

.settings-nav .nav {
    gap: .12rem;
}

.settings-nav .nav-link {
    border-radius: .48rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 620;
    padding: .62rem .7rem;
}

.settings-nav .nav-link:hover,
.settings-nav .nav-link.active {
    background: var(--accent-soft);
    color: var(--accent-strong);
}

.settings-content {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: .85rem;
    box-shadow: var(--shadow-xs);
    min-height: 28rem;
    padding: 1.5rem;
}

.settings-content h3 { font-size: 1.25rem; letter-spacing: -.025em; margin-bottom: .45rem; }
.settings-content h4 { font-size: .9rem; margin-top: 1.5rem; }
.settings-content .row { display: block; margin: 0; }
.settings-content [class*="col-"] { max-width: 38rem; padding: 0; width: 100%; }
.settings-content .form-control { background-color: var(--background); border-color: var(--border-strong); color: var(--text); }
.settings-content .form-control:disabled { background-color: var(--surface-raised); color: var(--muted); }
.settings-content .btn-primary { background: var(--accent); border-color: var(--accent); }
.settings-content .table { --bs-table-bg: transparent; --bs-table-color: var(--text); --bs-table-border-color: var(--border); }

.authenticator-qr {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: .7rem;
    display: inline-flex;
    margin: .5rem 0 1rem;
    padding: .75rem;
}

.authenticator-qr svg {
    display: block;
    height: min(300px, 70vw);
    width: min(300px, 70vw);
}

.passkey-add-panel {
    align-items: center;
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: .7rem;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem;
}

.passkey-add-panel strong {
    display: block;
    font-size: .82rem;
    margin-bottom: .25rem;
}

.passkey-add-panel p {
    color: var(--muted);
    font-size: .7rem;
    margin: 0;
    max-width: 45rem;
}

.passkey-add-panel .btn {
    flex: 0 0 auto;
}

.security-summary-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 1.25rem 0 1.5rem;
}

.security-summary-card {
    align-items: center;
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: .7rem;
    color: var(--text);
    display: grid;
    gap: .7rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: .85rem;
    text-decoration: none;
}

.security-summary-card:hover {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-xs);
}

.security-card-icon {
    align-items: center;
    background: var(--surface-raised);
    border-radius: .55rem;
    color: var(--accent-strong);
    display: flex;
    font-size: 1rem;
    height: 2.35rem;
    justify-content: center;
    width: 2.35rem;
}

.security-summary-card.secure .security-card-icon { background: var(--good-soft); color: var(--good); }
.security-summary-card.warning .security-card-icon { background: var(--warn-soft); color: var(--warn); }
.security-summary-card small,
.security-summary-card strong,
.security-summary-card em { display: block; }
.security-summary-card small { color: var(--muted); font-size: .6rem; }
.security-summary-card strong { font-size: .75rem; margin-top: .15rem; }
.security-summary-card em { color: var(--muted-subtle); font-size: .58rem; font-style: normal; margin-top: .15rem; }
.security-summary-card b { color: var(--accent); font-size: .8rem; }

.settings-section {
    border-top: 1px solid var(--border);
    padding-top: 1.25rem;
}

.settings-section-heading h4 {
    font-size: .85rem;
    margin: 0;
}

.settings-section-heading p {
    color: var(--muted);
    font-size: .65rem;
    margin: .25rem 0 1rem;
}

.settings-form {
    max-width: 34rem;
}

@media (max-width: 1180px) {
    .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-layout { grid-template-columns: 1fr; }
    .dashboard-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 0; }
    .trend-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .dashboard-heading { align-items: start; flex-direction: column; gap: 1rem; }
    .dashboard-refresh { align-items: flex-start; }
    .heading-actions { justify-content: space-between; width: 100%; }
    .status-banner { grid-template-columns: auto 1fr; }
    .status-banner > a { grid-column: 2; }
    .business-detail-grid,
    .business-exceptions { grid-template-columns: 1fr; }
    .chart-grid,
    .dashboard-lower,
    .dashboard-secondary,
    .dashboard-activity-list { grid-template-columns: 1fr; }
    .dashboard-activity-list li:nth-child(odd) { border-right: 0; padding-right: .5rem; }
    .dashboard-activity-list li:nth-child(even) { padding-left: .5rem; }
    .settings-layout { grid-template-columns: 1fr; }
    .settings-nav { overflow-x: auto; position: static; }
    .settings-nav .nav { flex-direction: row !important; flex-wrap: nowrap; }
    .settings-nav .nav-link { white-space: nowrap; }
    .security-summary-grid { grid-template-columns: 1fr; }
    .passkey-add-panel { align-items: stretch; flex-direction: column; }
    .system-group-grid,
    .automation-grid,
    .recovery-option-grid { grid-template-columns: 1fr; }
    .recovery-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .kpi-grid { grid-template-columns: 1fr; }
    .kpi-card { min-height: 8rem; }
    .health-visual { grid-template-columns: 1fr; justify-items: center; }
    .health-legend { width: 100%; }
    .trend-grid { grid-template-columns: 1fr; }
    .recovery-option { align-items: stretch; grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
    .dashboard-loading span { animation: none; }
}

.invalid {
    outline: 1px solid var(--bad);
}

.validation-message {
    color: var(--bad);
}

@media (max-width: 900px) {
    .summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .source-row {
        grid-template-columns: .8rem 1fr auto;
        padding: .8rem 0;
    }

    .source-age,
    .source-coverage {
        display: none;
    }

    .product-grid {
        grid-template-columns: 1fr;
    }

    .action-facts {
        grid-template-columns: 1fr;
    }
}
.selected-attention {
    outline: 2px solid var(--accent, #5965f2);
    outline-offset: 4px;
}

.authority-strip {
    background: linear-gradient(115deg, color-mix(in srgb, var(--accent) 18%, var(--surface)), var(--surface));
    border: 1px solid color-mix(in srgb, var(--accent) 38%, var(--border));
    border-radius: 1rem;
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 1rem;
    overflow: hidden;
}

.authority-strip > div {
    display: flex;
    flex-direction: column;
    padding: 1.1rem 1.25rem;
}

.authority-strip span,
.authority-strip small,
.muted-copy {
    color: var(--muted);
    font-size: .75rem;
}

.authority-strip strong {
    font-size: 1.05rem;
    margin-top: .3rem;
}

.site-grid,
.runner-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.site-card,
.runner-card {
    margin-top: 0;
}

.site-health {
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--muted);
    font-size: .7rem;
    font-weight: 750;
    padding: .35rem .6rem;
    text-transform: uppercase;
}

.site-health.healthy,
.site-health.online {
    border-color: color-mix(in srgb, var(--good) 55%, var(--border));
    color: var(--good);
}

.site-health.degraded,
.site-health.partial,
.site-health.stale {
    border-color: color-mix(in srgb, var(--warn) 55%, var(--border));
    color: var(--warn);
}

.site-health.critical,
.site-health.unavailable,
.site-health.offline {
    border-color: color-mix(in srgb, var(--bad) 55%, var(--border));
    color: var(--bad);
}

.metric-grid {
    display: grid;
    gap: .6rem;
    grid-template-columns: repeat(3, 1fr);
    margin: 1rem 0;
}

.metric-grid div {
    background: var(--surface-raised);
    border-radius: .65rem;
    padding: .75rem;
}

.metric-grid dt,
.metric-grid dd {
    margin: 0;
}

.metric-grid dt {
    color: var(--muted);
    font-size: .68rem;
}

.metric-grid dd {
    font-size: 1.3rem;
    font-weight: 700;
    margin-top: .2rem;
}

.site-source-list {
    border-top: 1px solid var(--border);
}

.site-source-list a {
    align-items: center;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    display: grid;
    gap: .65rem;
    grid-template-columns: auto 1fr auto;
    padding: .8rem 0;
    text-decoration: none;
}

.site-source-list a:last-child {
    border-bottom: 0;
}

.site-source-list strong,
.site-source-list small {
    display: block;
}

.site-source-list small {
    color: var(--muted);
    font-size: .7rem;
    margin-top: .2rem;
    max-width: 24rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-source-list em {
    color: var(--muted);
    font-size: .7rem;
    font-style: normal;
}

.topology {
    align-items: center;
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    padding-top: 1.3rem;
}

.topology div {
    background: var(--surface-raised);
    border-radius: .75rem;
    padding: 1rem;
}

.topology strong,
.topology span {
    display: block;
}

.topology span {
    color: var(--muted);
    font-size: .72rem;
    margin-top: .3rem;
}

.topology i {
    color: var(--accent);
    font-style: normal;
}

.runner-card .tag-line {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: 1rem 0 .5rem;
}

.runner-card .tag-line code {
    background: var(--surface-raised);
    border-radius: .35rem;
    padding: .3rem .45rem;
}

.runner-sources {
    color: var(--muted);
    font-size: .75rem;
}

.source-command {
    align-items: center;
    display: flex;
    gap: .75rem;
}

button.primary-action {
    font: inherit;
}

.selected-action {
    border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
}

.fact-group {
    border-top: 1px solid var(--border);
    padding-top: 1rem;
}

.fact-group:first-of-type {
    border-top: 0;
}

.fact-group h3 {
    font-size: .82rem;
    margin: .2rem 0 .75rem;
}

.fact-grid {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 0 1rem;
}

.fact {
    background: var(--surface-raised);
    border-left: 3px solid var(--border);
    border-radius: .6rem;
    display: flex;
    flex-direction: column;
    min-height: 6.2rem;
    padding: .75rem;
}

.fact.healthy { border-left-color: var(--good); }
.fact.warning { border-left-color: var(--warn); }
.fact.critical { border-left-color: var(--bad); }

.fact dt {
    color: var(--muted);
    font-size: .7rem;
}

.fact dd {
    font-size: 1.05rem;
    font-weight: 700;
    margin: .35rem 0;
    overflow-wrap: anywhere;
}

.fact small {
    color: var(--muted);
    font-family: ui-monospace, monospace;
    font-size: .62rem;
    margin-top: auto;
}

.trend-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(2, 1fr);
    padding-top: 1rem;
}

.trend-card {
    background: var(--surface-raised);
    border-radius: .7rem;
    padding: .8rem;
}

.trend-card strong,
.trend-card small {
    display: block;
}

.trend-card small {
    color: var(--muted);
    font-size: .68rem;
}

.observation-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.observation-list li {
    align-items: start;
    border-bottom: 1px solid var(--border);
    display: grid;
    gap: .8rem;
    grid-template-columns: auto 11rem 1fr auto;
    padding: .9rem 0;
}

.observation-list time,
.observation-list li > span:last-child,
.observation-list p {
    color: var(--muted);
    font-size: .72rem;
}

.observation-list p {
    margin: .25rem 0 0;
}

@media (max-width: 1100px) {
    .site-grid,
    .runner-grid { grid-template-columns: 1fr; }
    .fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .authority-strip,
    .trend-grid,
    .fact-grid { grid-template-columns: 1fr; }
    .topology { grid-template-columns: 1fr; }
    .topology i { transform: rotate(90deg); text-align: center; }
    .observation-list li { grid-template-columns: auto 1fr; }
    .observation-list time,
    .observation-list li > span:last-child { grid-column: 2; }
    .page-heading { align-items: start; flex-direction: column; gap: 1rem; }
}
