/*
 * Life Data Vault — appearance tokens, WCAG-oriented contrast, and theme modes.
 * Loaded after scoped layout CSS so shell overrides win.
 */

:root {
    --ldv-page-shell-max: 44rem;
    --ldv-page-shell-max-wide: 56rem;
    --ldv-text: var(--ldv-ink);
    --ldv-text-muted: #5a6a76;
    --ldv-text-muted-strong: #3d4f5a;
    --ldv-text-on-dark: #ffffff;
    --ldv-text-on-dark-muted: #e6eef8;

    --ldv-status-success-bg: #edf7ef;
    --ldv-status-success-border: #b8dfc4;
    --ldv-status-success-text: var(--ldv-pine);

    --ldv-status-warning-bg: #fff8e6;
    --ldv-status-warning-border: #e8c96a;
    --ldv-status-warning-text: #7a5b00;

    --ldv-status-info-bg: #e8f0ff;
    --ldv-status-info-border: rgba(26, 79, 214, 0.28);
    --ldv-status-info-text: #0f3188;

    --ldv-status-danger-bg: #fdecee;
    --ldv-status-danger-border: #f1aeb5;
    --ldv-status-danger-text: #842029;

    --ldv-badge-success-bg: rgba(126, 217, 87, 0.28);
    --ldv-badge-success-text: var(--ldv-pine);

    --ldv-app-main-bg: var(--ldv-paper);
    --ldv-border-subtle: rgba(12, 22, 36, 0.12);

    /* Secure vault panel — shared by landing and tone-B app windows */
    --ldv-vault-panel-bg:
        radial-gradient(ellipse 70% 60% at 100% 0%, rgba(26, 79, 214, 0.18), transparent 55%),
        radial-gradient(ellipse 60% 50% at 0% 100%, rgba(31, 138, 69, 0.14), transparent 50%),
        linear-gradient(155deg, #0a1628 0%, #0c1f3d 50%, #081525 100%);
    --ldv-vault-panel-shadow: 0 20px 60px rgba(10, 26, 51, 0.2);
}

/* Clean Paper (default authenticated canvas) */
html[data-ldv-theme="paper"] .page-app .app-main,
html:not([data-ldv-theme]) .page-app .app-main {
    background: var(--ldv-app-main-bg);
}

html[data-ldv-theme="paper"] .page-app .app-content,
html:not([data-ldv-theme]) .page-app .app-content {
    color: var(--ldv-text);
}

html[data-ldv-theme="paper"] .page-app .trust-note,
html:not([data-ldv-theme]) .page-app .trust-note {
    color: var(--ldv-text-muted-strong);
}

/* Deep Midnight — dark canvas behind elevated cards */
html[data-ldv-theme="midnight"] .page-app .app-main,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .app-main {
    background:
        radial-gradient(ellipse 72% 58% at 8% 0%, rgba(var(--ldv-blue-rgb), 0.26), transparent 54%),
        radial-gradient(ellipse 64% 52% at 92% 100%, rgba(var(--ldv-moss-rgb), 0.16), transparent 50%),
        linear-gradient(168deg, #070d16 0%, var(--ldv-ink) 38%, var(--ldv-navy) 72%, #0b2236 100%);
}

html[data-ldv-theme="midnight"] .page-app .app-content {
    color: var(--ldv-text-on-dark-muted);
}

html[data-ldv-theme="midnight"] .page-app .app-content h1,
html[data-ldv-theme="midnight"] .page-app .app-content h2,
html[data-ldv-theme="midnight"] .page-app .app-content h3,
html[data-ldv-theme="midnight"] .page-app .app-content h4,
html[data-ldv-theme="midnight"] .page-app .app-content h5,
html[data-ldv-theme="midnight"] .page-app .app-content h6,
html[data-ldv-theme="midnight"] .page-app .dashboard-greeting,
html[data-ldv-theme="midnight"] .page-app .dashboard-card-title,
html[data-ldv-theme="midnight"] .page-app .readiness-headline {
    color: var(--ldv-text-on-dark);
}

html[data-ldv-theme="midnight"] .page-app .quick-capture-strip .h6,
html[data-ldv-theme="midnight"] .page-app .browse-vault-strip .h6,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .quick-capture-strip .h6,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .browse-vault-strip .h6 {
    color: var(--ldv-text-on-dark);
}

html[data-ldv-theme="midnight"] .page-app .browse-vault-strip a.small:not(.btn),
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .browse-vault-strip a.small:not(.btn) {
    color: var(--ldv-canvas-link, #9ec0ff);
}

html[data-ldv-theme="midnight"] .page-app .trust-note {
    color: rgba(230, 238, 248, 0.9);
}

html[data-ldv-theme="midnight"] .page-app .text-muted,
html[data-ldv-theme="midnight"] .page-app .form-text.text-muted {
    color: rgba(230, 238, 248, 0.82) !important;
}

/* High-contrast accessibility mode */
html[data-ldv-theme="high-contrast"] {
    --ldv-text: #000000;
    --ldv-text-muted: #1a1a1a;
    --ldv-text-muted-strong: #000000;
    --ldv-ink: #000000;
    --ldv-paper: #ffffff;
    --ldv-app-main-bg: #ffffff;
    --ldv-glass-bg: #ffffff;
    --ldv-glass-border: #000000;
    --ldv-link: #0000ee;
    --ldv-link-hover: #0000aa;
    --ldv-blue: #0000ee;
    --ldv-royal: #0000ee;
    --ldv-border-subtle: #000000;
}

html[data-ldv-theme="high-contrast"] .page-app .app-main {
    background: #ffffff;
}

html[data-ldv-theme="high-contrast"] .page-app .card,
html[data-ldv-theme="high-contrast"] .page-app .ldv-glass,
html[data-ldv-theme="high-contrast"] .page-app .dashboard-card,
html[data-ldv-theme="high-contrast"] .page-app .ldv-record-card,
html[data-ldv-theme="high-contrast"] .page-app .reminders-hub,
html[data-ldv-theme="high-contrast"] .page-app .readiness-hub,
html[data-ldv-theme="high-contrast"] .page-app .readiness-hub-collapsed,
html[data-ldv-theme="high-contrast"] .page-app .quick-capture-tile,
html[data-ldv-theme="high-contrast"] .page-app .intent-tile,
html[data-ldv-theme="high-contrast"] .page-app .browse-bucket-chip,
html[data-ldv-theme="high-contrast"] .page-app .auth-panel,
html[data-ldv-theme="high-contrast"] .page-app .alert {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: 3px 3px 0 0 #000000 !important;
    border: 2px solid #000000 !important;
    background: #ffffff !important;
    color: #000000 !important;
}

html[data-ldv-theme="high-contrast"] .page-app .btn-primary {
    background-color: #000000 !important;
    border-color: #000000 !important;
    color: #ffffff !important;
}

html[data-ldv-theme="high-contrast"] .page-app a:not(.btn) {
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

@media (prefers-contrast: more) {
    html:not([data-ldv-theme="midnight"]) {
        --ldv-text-muted: var(--ldv-text-muted-strong);
        --ldv-glass-border: rgba(12, 22, 36, 0.28);
    }
}

/* Secondary / helper copy on light surfaces */
.page-app .text-muted,
.page-app .form-text.text-muted,
.page-app small.text-muted,
.page-app .text-muted.small,
.page-app .small.text-muted {
    color: var(--ldv-text-muted) !important;
    font-weight: 500;
}

.page-app .vault-tier-desc,
.page-app .vault-status .email,
.page-app .vault-account-email {
    color: var(--ldv-text-muted) !important;
}

.page-app .vault-tier-card {
    background: var(--ldv-window-a-bg, #ffffff);
    border-color: rgba(var(--ldv-blue-rgb), 0.08);
    border-radius: 1rem;
    box-shadow: var(--ldv-surface-shadow);
}

.page-app .vault-tier-waiver-inline,
.page-app .vault-tier-waiver-combined {
    border-top-color: var(--ldv-border-subtle);
}

/* Bootstrap alerts — dark text on light tints (never light-on-light) */
.page-app .alert-success {
    background-color: var(--ldv-status-success-bg);
    border-color: var(--ldv-status-success-border);
    color: var(--ldv-status-success-text);
}

.page-app .alert-warning {
    background-color: var(--ldv-status-warning-bg);
    border-color: var(--ldv-status-warning-border);
    color: var(--ldv-status-warning-text);
}

.page-app .alert-info {
    background-color: var(--ldv-status-info-bg);
    border-color: var(--ldv-status-info-border);
    color: var(--ldv-status-info-text);
}

.page-app .alert-danger {
    background-color: var(--ldv-status-danger-bg);
    border-color: var(--ldv-status-danger-border);
    color: var(--ldv-status-danger-text);
}

.page-app .alert .text-muted,
.page-app .alert .form-text {
    color: inherit !important;
    opacity: 0.92;
    font-weight: 500;
}

.page-app .alert a:not(.btn) {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.page-app .badge.bg-success,
.page-app .badge.unlocked {
    background-color: var(--ldv-moss) !important;
    color: #ffffff !important;
}

.page-app .badge.bg-secondary {
    background-color: #3d4f5a !important;
    color: #ffffff !important;
}

.page-app .badge.bg-success-subtle,
.page-app .badge.text-bg-success {
    background-color: var(--ldv-badge-success-bg) !important;
    color: var(--ldv-badge-success-text) !important;
    border: 1px solid rgba(15, 61, 40, 0.22);
}

.page-app .ldv-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2em 0.5em;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
    border: 1px solid transparent;
    white-space: nowrap;
}

.page-app .ldv-badge--warning {
    background-color: var(--ldv-status-warning-bg);
    border-color: var(--ldv-status-warning-border);
    color: var(--ldv-status-warning-text);
}

.page-app .ldv-badge--neutral {
    background-color: rgba(var(--ldv-blue-rgb), 0.1);
    border-color: rgba(var(--ldv-blue-rgb), 0.18);
    color: var(--ldv-text-muted-strong);
}

.page-app .ldv-badge--danger {
    background-color: var(--ldv-status-danger-bg);
    border-color: var(--ldv-status-danger-border);
    color: var(--ldv-status-danger-text);
}

.page-app .btn-primary {
    background-color: var(--ldv-royal);
    border-color: var(--ldv-blue-deep);
    color: #ffffff;
}

.page-app .btn-primary:hover,
.page-app .btn-primary:focus-visible {
    background-color: var(--ldv-blue-deep);
    border-color: var(--ldv-blue-deeper);
    color: #ffffff;
}

.page-app a:not(.btn):not(.nav-link):not(.mobile-nav-item):not(.brand-lockup) {
    text-decoration-skip-ink: auto;
}

.page-app a:not(.btn):hover {
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

/* Status chips aligned with badge matrix */
.backup-status-chip.backup-needed {
    background: var(--ldv-status-warning-bg);
    border-color: var(--ldv-status-warning-border);
    color: var(--ldv-status-warning-text);
}

.backup-status-chip.backup-current {
    background: var(--ldv-status-success-bg);
    border-color: var(--ldv-status-success-border);
    color: var(--ldv-status-success-text);
}

.emergency-public-badge {
    background: var(--ldv-mist);
    color: var(--ldv-navy);
}

.emergency-public-donor {
    background: var(--ldv-badge-success-bg);
    color: var(--ldv-pine);
}

/* Elevated page surfaces (single card on canvas — not a full-viewport white box) */
.page-app .app-page-shell,
.page-app .auth-panel {
    width: min(100%, var(--ldv-page-shell-max));
    max-width: var(--ldv-page-shell-max);
    margin-left: auto;
    margin-right: auto;
    padding: clamp(1.25rem, 2.5vw, 1.85rem);
    border-radius: 1rem;
    background: #ffffff;
    color: var(--ldv-ink);
    border: 1px solid rgba(var(--ldv-blue-rgb), 0.14);
    box-shadow:
        0 2px 4px rgba(12, 22, 36, 0.03),
        0 4px 20px rgba(12, 22, 36, 0.08);
}

.page-app .app-page-shell-wide,
.page-app .auth-panel.vault-areas-panel {
    width: min(100%, var(--ldv-page-shell-max-wide));
    max-width: var(--ldv-page-shell-max-wide);
}

.page-app .dashboard-vault {
    width: min(100%, var(--ldv-page-shell-max-wide));
    max-width: var(--ldv-page-shell-max-wide);
    margin-left: auto;
    margin-right: auto;
}

html[data-ldv-theme="midnight"] .page-app .app-page-shell,
html[data-ldv-theme="midnight"] .page-app .auth-panel,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .app-page-shell,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .auth-panel {
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.04),
        0 20px 52px rgba(0, 0, 0, 0.38);
}

html[data-ldv-theme="paper"] .page-app .app-page-shell,
html[data-ldv-theme="paper"] .page-app .auth-panel,
html:not([data-ldv-theme]) .page-app .app-page-shell,
html:not([data-ldv-theme]) .page-app .auth-panel {
    box-shadow:
        0 2px 4px rgba(12, 22, 36, 0.03),
        0 4px 20px rgba(12, 22, 36, 0.08);
}

/* Paper / default — soft card lift (vault areas / dashboard tiles) */
html[data-ldv-theme="paper"] .page-app,
html:not([data-ldv-theme]) .page-app {
    --ldv-surface-shadow:
        0 2px 4px rgba(12, 22, 36, 0.03),
        0 4px 20px rgba(12, 22, 36, 0.08);
    --ldv-pill-shadow:
        0 1px 2px rgba(12, 22, 36, 0.03),
        0 2px 8px rgba(12, 22, 36, 0.05);
    --ldv-glass-shadow: var(--ldv-surface-shadow);
}

/* Midnight canvas — stronger depth on elevated white cards */
html[data-ldv-theme="midnight"] .page-app,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app {
    --ldv-surface-shadow:
        0 1px 2px rgba(0, 0, 0, 0.12),
        0 16px 42px rgba(0, 0, 0, 0.34);
    --ldv-pill-shadow:
        0 1px 2px rgba(0, 0, 0, 0.05),
        0 3px 10px rgba(0, 0, 0, 0.09);
    --ldv-glass-shadow: var(--ldv-surface-shadow);
}

/* Final cascade: elevated surfaces (loaded after app-scroll-fade.css) */
html[data-ldv-theme="paper"] .page-app .card,
html[data-ldv-theme="paper"] .page-app .ldv-glass,
html[data-ldv-theme="paper"] .page-app .reminders-hub,
html[data-ldv-theme="paper"] .page-app .readiness-hub,
html[data-ldv-theme="paper"] .page-app .readiness-hub-collapsed,
html[data-ldv-theme="paper"] .page-app .dashboard-card,
html[data-ldv-theme="paper"] .page-app .ldv-record-card,
html[data-ldv-theme="paper"] .page-app .intent-tile,
html[data-ldv-theme="paper"] .page-app .quick-capture-tile,
html[data-ldv-theme="paper"] .page-app .vault-tier-card,
html[data-ldv-theme="paper"] .page-app .auth-panel,
html[data-ldv-theme="paper"] .page-app .alert,
html:not([data-ldv-theme]) .page-app .card,
html:not([data-ldv-theme]) .page-app .ldv-glass,
html:not([data-ldv-theme]) .page-app .reminders-hub,
html:not([data-ldv-theme]) .page-app .readiness-hub,
html:not([data-ldv-theme]) .page-app .readiness-hub-collapsed,
html:not([data-ldv-theme]) .page-app .dashboard-card,
html:not([data-ldv-theme]) .page-app .ldv-record-card,
html:not([data-ldv-theme]) .page-app .intent-tile,
html:not([data-ldv-theme]) .page-app .quick-capture-tile,
html:not([data-ldv-theme]) .page-app .vault-tier-card,
html:not([data-ldv-theme]) .page-app .auth-panel,
html:not([data-ldv-theme]) .page-app .alert {
    box-shadow: var(--ldv-surface-shadow);
}

html[data-ldv-theme="paper"] .page-app .auth-panel.vault-areas-panel,
html:not([data-ldv-theme]) .page-app .auth-panel.vault-areas-panel,
html[data-ldv-theme="midnight"] .page-app .auth-panel.vault-areas-panel,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .auth-panel.vault-areas-panel {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    padding-left: 0;
    padding-right: 0;
}

html[data-ldv-theme="midnight"] .page-app .card,
html[data-ldv-theme="midnight"] .page-app .ldv-glass,
html[data-ldv-theme="midnight"] .page-app .reminders-hub,
html[data-ldv-theme="midnight"] .page-app .readiness-hub,
html[data-ldv-theme="midnight"] .page-app .readiness-hub-collapsed,
html[data-ldv-theme="midnight"] .page-app .dashboard-card,
html[data-ldv-theme="midnight"] .page-app .ldv-record-card,
html[data-ldv-theme="midnight"] .page-app .intent-tile,
html[data-ldv-theme="midnight"] .page-app .quick-capture-tile,
html[data-ldv-theme="midnight"] .page-app .vault-tier-card,
html[data-ldv-theme="midnight"] .page-app .auth-panel,
html[data-ldv-theme="midnight"] .page-app .alert,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .card,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .ldv-glass,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .reminders-hub,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .readiness-hub,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .readiness-hub-collapsed,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .dashboard-card,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .ldv-record-card,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .intent-tile,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .quick-capture-tile,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .vault-tier-card,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .auth-panel,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .alert {
    box-shadow: var(--ldv-surface-shadow);
}

html[data-ldv-theme="paper"] .page-app .browse-bucket-chip,
html:not([data-ldv-theme]) .page-app .browse-bucket-chip,
html[data-ldv-theme="midnight"] .page-app .browse-bucket-chip,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .browse-bucket-chip {
    box-shadow: var(--ldv-pill-shadow, var(--ldv-surface-shadow));
}

.page-app .app-page-shell .nav-tabs,
.page-app .auth-panel .nav-tabs {
    border-bottom-color: rgba(var(--ldv-blue-rgb), 0.16);
}

.page-app .app-page-shell .nav-tabs .nav-link,
.page-app .auth-panel .nav-tabs .nav-link {
    color: var(--ldv-text-muted);
    border-color: transparent;
}

.page-app .app-page-shell .nav-tabs .nav-link.active,
.page-app .auth-panel .nav-tabs .nav-link.active {
    color: var(--ldv-ink);
    background: #fff;
    border-color: rgba(var(--ldv-blue-rgb), 0.16) rgba(var(--ldv-blue-rgb), 0.16) #fff;
    font-weight: 600;
}

.page-app .app-content > .site-footer {
    width: min(100%, var(--ldv-page-shell-max-wide));
    margin-left: auto;
    margin-right: auto;
    padding-top: 1.25rem;
}

@media (max-width: 640.98px) {
    html[data-ldv-theme="midnight"] .page-app .app-main > .top-row.vault-status-bar,
    html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .app-main > .top-row.vault-status-bar {
        background: rgba(8, 14, 24, 0.92);
        border-bottom-color: rgba(255, 255, 255, 0.1);
        box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.22);
        backdrop-filter: blur(14px) saturate(1.15);
        -webkit-backdrop-filter: blur(14px) saturate(1.15);
    }

    html[data-ldv-theme="high-contrast"] .page-app .app-main > .top-row.vault-status-bar {
        background: #ffffff;
        border-bottom: 2px solid #000000;
        box-shadow: none;
    }

    html[data-ldv-theme="high-contrast"] .page-app .vault-status-bar .btn-outline-secondary {
        color: #000000;
        border-color: #000000;
        background: #ffffff;
    }
}

html[data-ldv-theme="midnight"] .page-app .app-content > .site-footer,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .app-content > .site-footer {
    border-top-color: rgba(255, 255, 255, 0.12);
}

html[data-ldv-theme="midnight"] .page-app .app-content > .site-footer a,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .app-content > .site-footer a,
html[data-ldv-theme="midnight"] .page-app .app-content > .site-footer .site-footer-operator,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app .app-content > .site-footer .site-footer-operator {
    color: rgba(214, 226, 242, 0.82);
}

/* ——— Alternating windows: tone B uses surface tokens (grids) vs panel tokens (dashboard-card) ——— */

.page-app {
    --ldv-window-a-bg: #ffffff;
    --ldv-window-a-fg: var(--ldv-ink);
    --ldv-window-a-muted: var(--ldv-text-muted, #5a6a76);
    --ldv-window-a-border: rgba(var(--ldv-blue-rgb), 0.12);
    --ldv-window-a-link: var(--ldv-blue);
    /* Tone B — secure vault panel (tiles, chips, record cards, dashboard panels) */
    --ldv-window-b-panel-fg: var(--ldv-text-on-dark, #ffffff);
    --ldv-window-b-panel-muted: var(--ldv-text-on-dark-muted, rgba(230, 238, 248, 0.82));
    --ldv-window-b-panel-border: rgba(255, 255, 255, 0.12);
    --ldv-window-b-panel-link: #9ec0ff;
    --ldv-window-b-bg: var(--ldv-vault-panel-bg);
    --ldv-window-b-panel-bg: var(--ldv-vault-panel-bg);
    --ldv-window-b-fg: var(--ldv-window-b-panel-fg);
    --ldv-window-b-muted: var(--ldv-window-b-panel-muted);
    --ldv-window-b-border: var(--ldv-window-b-panel-border);
    --ldv-window-b-link: var(--ldv-window-b-panel-link);
    --ldv-window-b-surface-shadow: var(--ldv-vault-panel-shadow);
    /* Pale blue binder/dashboard sections (semantic ldv-window-b on chips and cards) */
    --ldv-window-b-surface-bg: var(--ldv-status-info-bg, #e8f0ff);
    --ldv-window-b-surface-fg: var(--ldv-ink);
    --ldv-window-b-surface-muted: var(--ldv-text-muted, #5a6a76);
    --ldv-window-b-surface-border: rgba(var(--ldv-blue-rgb), 0.18);
    --ldv-window-b-surface-link: var(--ldv-blue-deep, #143db8);
    --ldv-window-b-surface-elevation-shadow:
        0 2px 4px rgba(12, 22, 36, 0.03),
        0 4px 18px rgba(12, 22, 36, 0.07);
    --ldv-pill-shadow:
        0 1px 2px rgba(12, 22, 36, 0.03),
        0 2px 8px rgba(12, 22, 36, 0.05);
}

html[data-ldv-theme="midnight"] .page-app,
html:not([data-ldv-theme="paper"]):not([data-ldv-theme="high-contrast"]) .page-app {
    --ldv-canvas-link: #9ec0ff;
    --ldv-window-a-bg: #ffffff;
    --ldv-window-b-surface-bg: #dde8f5;
    --ldv-window-b-panel-border: rgba(255, 255, 255, 0.14);
    --ldv-pill-shadow:
        0 1px 2px rgba(0, 0, 0, 0.05),
        0 3px 10px rgba(0, 0, 0, 0.09);
}

html[data-ldv-theme="high-contrast"] .page-app {
    --ldv-window-a-bg: #ffffff;
    --ldv-window-a-fg: #000000;
    --ldv-window-a-muted: #1a1a1a;
    --ldv-window-a-border: #000000;
    --ldv-window-a-link: #0000ee;
    --ldv-window-b-bg: #f0f0f0;
    --ldv-window-b-fg: #000000;
    --ldv-window-b-muted: #1a1a1a;
    --ldv-window-b-border: #000000;
    --ldv-window-b-link: #0000ee;
    --ldv-window-b-surface-bg: #f0f0f0;
    --ldv-window-b-surface-fg: #000000;
    --ldv-window-b-surface-muted: #1a1a1a;
    --ldv-window-b-surface-border: #000000;
    --ldv-window-b-surface-link: #0000ee;
    --ldv-window-b-panel-bg: var(--ldv-ink, #0c1624);
    --ldv-window-b-panel-fg: #ffffff;
    --ldv-window-b-panel-muted: #e6e6e6;
    --ldv-window-b-panel-border: #000000;
    --ldv-window-b-panel-link: #ffffff;
}

/* Checkerboard tone A: cells 1, 4, 5, 8… (4n+1 and 4n) */
.page-app .dashboard-card.ldv-window-a,
.page-app .ldv-window-a,
.page-app .ldv-window-grid > :nth-child(4n + 1),
.page-app .ldv-window-grid > :nth-child(4n),
.page-app .intent-grid > :nth-child(4n + 1),
.page-app .intent-grid > :nth-child(4n),
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 1),
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n) {
    background: var(--ldv-window-a-bg);
    color: var(--ldv-window-a-fg);
    border-color: var(--ldv-window-a-border);
    box-shadow: var(--ldv-surface-shadow);
}

/* Checkerboard tone B: cells 2, 3, 6, 7… (4n+2 and 4n+3) — surface tokens only */
.page-app .ldv-window-grid > :nth-child(4n + 2),
.page-app .ldv-window-grid > :nth-child(4n + 3),
.page-app .intent-grid > :nth-child(4n + 2),
.page-app .intent-grid > :nth-child(4n + 3),
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 2),
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 3) {
    background: var(--ldv-window-b-surface-bg);
    color: var(--ldv-window-b-surface-fg);
    border-color: var(--ldv-window-b-surface-border);
    box-shadow: var(--ldv-window-b-surface-elevation-shadow, var(--ldv-surface-shadow));
}

.page-app .dashboard-card.ldv-window-b {
    background: var(--ldv-window-b-surface-bg);
    color: var(--ldv-window-b-surface-fg);
    border-color: var(--ldv-window-b-surface-border);
    box-shadow: var(--ldv-window-b-surface-elevation-shadow, var(--ldv-surface-shadow));
}

.page-app .dashboard-card.readiness-hero.ldv-window-b {
    background: var(--ldv-window-a-bg);
    color: var(--ldv-window-a-fg);
    border-color: var(--ldv-window-a-border);
    box-shadow: var(--ldv-surface-shadow);
}

.page-app .dashboard-card.readiness-hero.ldv-window-b .text-muted,
.page-app .dashboard-card.readiness-hero.ldv-window-b .form-text.text-muted {
    color: var(--ldv-window-a-muted) !important;
}

.page-app .dashboard-card.readiness-hero.ldv-window-b .readiness-headline,
.page-app .dashboard-card.readiness-hero.ldv-window-b .dashboard-greeting {
    color: var(--ldv-window-a-fg);
}

.page-app .dashboard-card.readiness-hero.ldv-window-b a:not(.btn) {
    color: var(--ldv-window-a-link);
}

html[data-ldv-theme="high-contrast"] .page-app .dashboard-card.ldv-window-a,
html[data-ldv-theme="high-contrast"] .page-app .ldv-window-a,
html[data-ldv-theme="high-contrast"] .page-app .ldv-window-grid > :nth-child(4n + 1),
html[data-ldv-theme="high-contrast"] .page-app .ldv-window-grid > :nth-child(4n),
html[data-ldv-theme="high-contrast"] .page-app .intent-grid > :nth-child(4n + 1),
html[data-ldv-theme="high-contrast"] .page-app .intent-grid > :nth-child(4n),
html[data-ldv-theme="high-contrast"] .page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 1),
html[data-ldv-theme="high-contrast"] .page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n) {
    background: #ffffff !important;
    color: #000000 !important;
    border: 2px solid #000000 !important;
    box-shadow: 3px 3px 0 0 #000000 !important;
}

html[data-ldv-theme="high-contrast"] .page-app .ldv-window-grid > :nth-child(4n + 2),
html[data-ldv-theme="high-contrast"] .page-app .ldv-window-grid > :nth-child(4n + 3),
html[data-ldv-theme="high-contrast"] .page-app .intent-grid > :nth-child(4n + 2),
html[data-ldv-theme="high-contrast"] .page-app .intent-grid > :nth-child(4n + 3),
html[data-ldv-theme="high-contrast"] .page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 2),
html[data-ldv-theme="high-contrast"] .page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 3) {
    background: var(--ldv-window-b-surface-bg, var(--ldv-window-b-bg)) !important;
    color: var(--ldv-window-b-surface-fg, var(--ldv-window-b-fg)) !important;
    border: 2px solid #000000 !important;
    box-shadow: 3px 3px 0 0 #000000 !important;
}

html[data-ldv-theme="high-contrast"] .page-app .dashboard-card.ldv-window-b {
    background: var(--ldv-window-b-surface-bg, var(--ldv-window-b-bg)) !important;
    color: var(--ldv-window-b-surface-fg, var(--ldv-window-b-fg)) !important;
    border: 2px solid #000000 !important;
    box-shadow: 3px 3px 0 0 #000000 !important;
}

.page-app .ldv-window-a .text-muted,
.page-app .ldv-window-a .form-text.text-muted,
.page-app .ldv-window-grid > :nth-child(4n + 1) .text-muted,
.page-app .ldv-window-grid > :nth-child(4n) .text-muted,
.page-app .intent-grid > :nth-child(4n + 1) .text-muted,
.page-app .intent-grid > :nth-child(4n) .text-muted,
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 1) .text-muted,
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n) .text-muted {
    color: var(--ldv-window-a-muted) !important;
}

.page-app .dashboard-card.ldv-window-b .text-muted,
.page-app .dashboard-card.ldv-window-b .form-text.text-muted {
    color: var(--ldv-window-b-surface-muted) !important;
}

.page-app .ldv-window-grid > :nth-child(4n + 2) .text-muted,
.page-app .ldv-window-grid > :nth-child(4n + 3) .text-muted,
.page-app .intent-grid > :nth-child(4n + 2) .text-muted,
.page-app .intent-grid > :nth-child(4n + 3) .text-muted,
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 2) .text-muted,
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 3) .text-muted {
    color: var(--ldv-window-b-surface-muted) !important;
}

.page-app .ldv-window-a .dashboard-card-title,
.page-app .ldv-window-a .dashboard-card-toggle,
.page-app .ldv-window-a .readiness-headline,
.page-app .ldv-window-a .dashboard-greeting {
    color: var(--ldv-window-a-fg);
}

.page-app .dashboard-card.ldv-window-b .dashboard-card-title,
.page-app .dashboard-card.ldv-window-b .dashboard-card-toggle,
.page-app .dashboard-card.ldv-window-b .readiness-headline,
.page-app .dashboard-card.ldv-window-b .dashboard-greeting {
    color: var(--ldv-window-b-surface-fg);
}

.page-app .dashboard-card.ldv-window-b .dashboard-card-chevron {
    border-right-color: var(--ldv-window-b-surface-fg);
    border-bottom-color: var(--ldv-window-b-surface-fg);
}

.page-app .ldv-window-a a:not(.btn),
.page-app .ldv-window-grid > :nth-child(4n + 1) a:not(.btn),
.page-app .ldv-window-grid > :nth-child(4n) a:not(.btn),
.page-app .intent-grid > :nth-child(4n + 1) a:not(.btn),
.page-app .intent-grid > :nth-child(4n) a:not(.btn),
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 1) a:not(.btn),
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n) a:not(.btn) {
    color: var(--ldv-window-a-link);
}

.page-app .dashboard-card.ldv-window-b a:not(.btn) {
    color: var(--ldv-window-b-surface-link);
}

.page-app .ldv-window-grid > :nth-child(4n + 2) a:not(.btn),
.page-app .ldv-window-grid > :nth-child(4n + 3) a:not(.btn),
.page-app .intent-grid > :nth-child(4n + 2) a:not(.btn),
.page-app .intent-grid > :nth-child(4n + 3) a:not(.btn),
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 2) a:not(.btn),
.page-app .ldv-record-card-grid > .ldv-record-card:nth-child(4n + 3) a:not(.btn) {
    color: var(--ldv-window-b-surface-link);
}

.page-app .dashboard-card.ldv-window-b .recent-record-title,
.page-app .dashboard-card.ldv-window-b .recent-record-meta {
    color: var(--ldv-window-b-surface-muted);
}

.page-app .dashboard-card.ldv-window-b .recent-record-title {
    color: var(--ldv-window-b-surface-link);
}

.page-app .ldv-window-grid > :nth-child(4n + 1) strong,
.page-app .ldv-window-grid > :nth-child(4n) strong,
.page-app .ldv-window-grid > :nth-child(4n + 2) strong,
.page-app .ldv-window-grid > :nth-child(4n + 3) strong,
.page-app .intent-grid > :nth-child(4n + 1) strong,
.page-app .intent-grid > :nth-child(4n) strong,
.page-app .intent-grid > :nth-child(4n + 2) strong,
.page-app .intent-grid > :nth-child(4n + 3) strong {
    color: inherit;
}

.page-app .category-grid.ldv-window-grid > :nth-child(4n + 1),
.page-app .category-grid.ldv-window-grid > :nth-child(4n) {
    background: var(--ldv-window-a-bg);
}

.page-app .category-grid.ldv-window-grid > .category-tile:nth-child(4n + 2),
.page-app .category-grid.ldv-window-grid > .category-tile:nth-child(4n + 3),
.page-app .category-grid.ldv-window-grid > :nth-child(4n + 2),
.page-app .category-grid.ldv-window-grid > :nth-child(4n + 3) {
    background: var(--ldv-window-b-surface-bg);
}

.page-app .category-grid.ldv-window-grid > :nth-child(4n + 2) .category-empty-prop,
.page-app .category-grid.ldv-window-grid > :nth-child(4n + 3) .category-empty-prop {
    color: var(--ldv-window-b-surface-muted);
}

/* Browse your binder — lighter pill elevation (overrides checkerboard tile shadows) */
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 1),
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n),
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 2),
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 3) {
    box-shadow: var(--ldv-pill-shadow, var(--ldv-surface-shadow));
}

/* Browse your binder — tone B chips */
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 2) .browse-bucket-add,
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 3) .browse-bucket-add {
    color: var(--ldv-window-b-link);
    border-left-color: var(--ldv-window-b-panel-border);
}

.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 2) .browse-bucket-link:hover,
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 3) .browse-bucket-link:hover,
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 2) .browse-bucket-add:hover,
.page-app .ldv-window-grid > .browse-bucket-chip:nth-child(4n + 3) .browse-bucket-add:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--ldv-window-b-link);
}

.page-app .dashboard-card.ldv-window-b .btn-outline-secondary {
    color: var(--ldv-window-b-surface-fg);
    border-color: var(--ldv-window-b-surface-border);
}

.page-app .dashboard-card.ldv-window-b .btn-outline-secondary:hover {
    background: color-mix(in srgb, var(--ldv-window-b-surface-bg) 88%, var(--ldv-blue) 12%);
    color: var(--ldv-window-b-surface-fg);
}

/* Semantic window tones (override checkerboard defaults on binder chips and tiles) */
.page-app .browse-bucket-chip.ldv-window-a,
.page-app .category-tile.ldv-window-a,
.page-app .category-hub-row.ldv-window-a {
    background: var(--ldv-window-a-bg);
    color: var(--ldv-window-a-fg);
    border-color: var(--ldv-window-a-border);
}

.page-app .browse-bucket-chip.ldv-window-b,
.page-app .category-tile.ldv-window-b,
.page-app .category-hub-row.ldv-window-b {
    background: var(--ldv-window-b-surface-bg);
    color: var(--ldv-window-b-surface-fg);
    border-color: var(--ldv-window-b-surface-border);
    box-shadow: var(--ldv-window-b-surface-elevation-shadow, var(--ldv-surface-shadow));
}

.page-app .browse-bucket-chip.ldv-window-a,
.page-app .browse-bucket-chip.ldv-window-b {
    box-shadow: var(--ldv-pill-shadow, var(--ldv-surface-shadow));
}

.page-app .browse-bucket-chip.ldv-window-b .browse-bucket-add {
    color: var(--ldv-window-b-surface-link);
    border-left-color: rgba(var(--ldv-blue-rgb), 0.18);
}

.page-app .browse-bucket-chip.ldv-window-b .browse-bucket-link:hover,
.page-app .browse-bucket-chip.ldv-window-b .browse-bucket-add:hover {
    background: color-mix(in srgb, var(--ldv-window-b-surface-bg) 88%, var(--ldv-blue) 12%);
    color: var(--ldv-window-b-surface-link);
}

.page-app .category-tile.ldv-window-b .category-empty-prop {
    color: var(--ldv-window-b-surface-muted);
}

.page-app .legacy-thumbnail-banner.dashboard-card {
    padding: 0.85rem 1rem;
}
