/* Scroll-linked fade for main content regions (see ldv-scroll-fade.js). */

:root {
    --ldv-surface-elevated: var(--ldv-glass-bg);
    --ldv-surface-solid: var(--ldv-paper);
    --ldv-surface-menu: var(--ldv-glass-bg);
    --ldv-scroll-fade-shift: 1.125rem;
    --ldv-scroll-fade-exit-opacity: 0.21;
}

@keyframes ldv-scroll-fade-enter {
    from {
        opacity: 0;
        transform: translateY(var(--ldv-scroll-fade-shift));
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes ldv-scroll-fade-exit {
    from {
        opacity: 1;
    }

    to {
        opacity: var(--ldv-scroll-fade-exit-opacity);
    }
}

/* Modern browsers: view() timeline (no JS). */
@supports (animation-timeline: view()) {
    html.ldv-scroll-fade-native .ldv-scroll-region .ldv-scroll-fade-target {
        animation:
            ldv-scroll-fade-enter linear both,
            ldv-scroll-fade-exit linear both;
        animation-timeline: view(), view();
        animation-range: entry 0% cover 48%, exit 0% exit 100%;
    }
}

/* Intersection Observer fallback */
html:not(.ldv-scroll-fade-native) .ldv-scroll-region .ldv-scroll-fade-target {
    opacity: 0;
    transform: translateY(var(--ldv-scroll-fade-shift));
    transition:
        opacity 0.825s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.825s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

html:not(.ldv-scroll-fade-native) .ldv-scroll-region .ldv-scroll-fade-target.ldv-scroll-visible {
    opacity: 1;
    transform: translateY(0);
}

html:not(.ldv-scroll-fade-native) .ldv-scroll-region .ldv-scroll-fade-target.ldv-scroll-exited {
    opacity: var(--ldv-scroll-fade-exit-opacity);
    transform: translateY(calc(var(--ldv-scroll-fade-shift) * -0.35));
}

@media (prefers-reduced-motion: reduce) {
    html.ldv-scroll-fade-native .ldv-scroll-region .ldv-scroll-fade-target {
        animation: none;
    }

    html:not(.ldv-scroll-fade-native) .ldv-scroll-region .ldv-scroll-fade-target {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Authenticated shell — white fields, dark text (scroll fade may dim off-screen items). */
.page-app {
    --ldv-surface-elevated: #ffffff;
    --ldv-surface-solid: #ffffff;
    --ldv-surface-menu: #ffffff;
    --ldv-surface-shadow: var(--ldv-glass-shadow);
}

.page-app .card,
.page-app .ldv-glass,
.page-app .reminders-hub,
.page-app .readiness-hub,
.page-app .readiness-hub-collapsed,
.page-app .dashboard-card:not(.ldv-window-a):not(.ldv-window-b),
.page-app .ldv-record-card,
.page-app .intent-tile,
.page-app .quick-capture-tile,
.page-app .auth-panel {
    background: #ffffff;
    color: var(--ldv-ink);
    border-color: var(--ldv-glass-border);
    box-shadow: var(--ldv-surface-shadow);
}

.page-app .dashboard-card.ldv-window-a,
.page-app .dashboard-card.ldv-window-b {
    color: var(--ldv-ink);
    border-color: var(--ldv-glass-border);
    box-shadow: var(--ldv-surface-shadow);
}

.page-app .browse-bucket-chip {
    background: #ffffff;
    color: var(--ldv-ink);
    border-color: var(--ldv-glass-border);
    box-shadow: var(--ldv-pill-shadow, var(--ldv-surface-shadow));
}

.page-app .alert {
    box-shadow: var(--ldv-surface-shadow);
}

.page-app .card-header {
    background: #f7f9fc;
    border-bottom-color: var(--ldv-glass-border);
    color: var(--ldv-ink);
}

.page-app .list-group-item {
    background: #ffffff;
    border-color: rgba(26, 79, 214, 0.12);
    color: var(--ldv-ink);
}

.page-app .list-group-item .text-muted,
.page-app .app-content .text-muted,
.page-app .card .text-muted {
    color: var(--ldv-text-muted, #5a6a76) !important;
}

.page-app .policy-box {
    background: #f7faf8;
    color: var(--ldv-ink);
}

.page-app .modal-content {
    background: var(--ldv-surface-solid);
    border-color: var(--ldv-glass-border);
    color: var(--ldv-ink);
}

.page-app .form-control,
.page-app .form-select,
.page-app .input-group-text,
.page-app textarea.form-control {
    background-color: #ffffff;
    border-color: rgba(26, 79, 214, 0.22);
    color: var(--ldv-ink);
}

.page-app .form-control::placeholder,
.page-app .form-select::placeholder {
    color: #6b7780;
    opacity: 1;
}

.page-marketing .form-control,
.page-marketing .form-select {
    background-color: rgba(230, 238, 248, 0.82);
    border-color: var(--ldv-glass-border);
}

.page-app .card,
.page-app .card-body {
    color: var(--ldv-ink);
}

.page-app .app-main,
.page-app .app-content {
    color: var(--ldv-ink);
}

.page-app .app-content h1,
.page-app .app-content h2,
.page-app .app-content h3,
.page-app .app-content h4,
.page-app .app-content h5,
.page-app .app-content h6,
.page-app .dashboard-greeting,
.page-app .dashboard-card-title,
.page-app .readiness-headline {
    color: var(--ldv-ink);
}

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

.page-app .browse-bucket-link {
    color: var(--ldv-ink);
}

.page-app .quick-capture-tile strong,
.page-app .quick-capture-tile .small {
    color: var(--ldv-ink);
}

.page-app .table {
    --bs-table-bg: #ffffff;
    --bs-table-color: var(--ldv-ink);
    --bs-table-border-color: rgba(26, 79, 214, 0.12);
}

.page-app .table > :not(caption) > * > * {
    background-color: #ffffff;
    color: var(--ldv-ink);
}

.page-app .accordion-item {
    background: #ffffff;
    color: var(--ldv-ink);
    border-color: rgba(26, 79, 214, 0.12);
}

.page-app .accordion-button {
    background: #ffffff;
    color: var(--ldv-ink);
}

.page-app .accordion-button:not(.collapsed) {
    background: #f7f9fc;
    color: var(--ldv-ink);
}

.page-app .accordion-body {
    background: #ffffff;
    color: var(--ldv-ink);
}

.page-app .dashboard-card,
.page-app .ldv-record-card,
.page-app .intent-tile,
.page-app .readiness-wizard-page,
.page-app .admin-console-page {
    --ldv-link: var(--ldv-blue);
    --ldv-link-hover: var(--ldv-blue-deep);
    --bs-primary: var(--ldv-blue);
    --bs-primary-rgb: 26, 79, 214;
}

.page-app .dashboard-card,
.page-app .ldv-record-card,
.page-app .intent-tile {
    color: var(--ldv-ink);
}

.page-app .dashboard-card h1,
.page-app .dashboard-card h2,
.page-app .dashboard-card h3,
.page-app .dashboard-card h4,
.page-app .dashboard-card h5,
.page-app .dashboard-card h6,
.page-app .dashboard-card .dashboard-greeting,
.page-app .dashboard-card .dashboard-card-title,
.page-app .dashboard-card .readiness-headline,
.page-app .ldv-record-card .ldv-record-card-title a {
    color: var(--ldv-ink);
}

.page-app .ldv-record-card .ldv-record-card-title a:hover {
    color: var(--ldv-link);
}

/* In-view scroll targets stay fully opaque and readable. */
.page-app .ldv-scroll-region .ldv-scroll-fade-target.ldv-scroll-visible {
    opacity: 1;
}
