/*
 * Default (Lumi) application theme.
 *
 * This file is a complete, removable visual overlay for Bootstrap. Structural
 * application rules belong in styles/app.css so the site remains usable when
 * this stylesheet is absent.
 */

:root[data-app-theme='lumi'] {
    color-scheme: light;

    --gg-surface: #eefaff;
    --gg-surface-rgb: 238, 250, 255;
    --gg-surface-raised: #ffffff;
    --gg-surface-soft: #e1f6fb;
    --gg-ink: #12313d;
    --gg-ink-rgb: 18, 49, 61;
    --gg-muted: #55727c;
    --gg-primary: #1cc7dc;
    --gg-primary-rgb: 28, 199, 220;
    --gg-primary-hover: #13b0c4;
    --gg-primary-active: #0d98ab;
    --gg-primary-emphasis: #087d91;
    --gg-primary-emphasis-rgb: 8, 125, 145;
    --gg-primary-emphasis-hover: #056779;
    --gg-on-primary: #062a31;
    --gg-border: rgba(18, 49, 61, 0.14);
    --gg-border-strong: rgba(8, 125, 145, 0.3);
    --gg-primary-soft: rgba(28, 199, 220, 0.15);
    --gg-navbar: rgba(246, 253, 255, 0.9);
    --gg-table-stripe: rgba(8, 125, 145, 0.035);
    --gg-table-hover: rgba(28, 199, 220, 0.09);
    --gg-glow-primary: rgba(61, 220, 237, 0.18);
    --gg-glow-secondary: rgba(74, 167, 225, 0.12);
    --gg-shadow-subtle: 0 0.5rem 1.5rem rgba(20, 83, 101, 0.08);
    --gg-shadow: 0 1rem 2.5rem rgba(20, 83, 101, 0.12);
    --gg-shadow-floating: 0 1.25rem 3rem rgba(12, 55, 69, 0.18);

    --bs-primary: var(--gg-primary);
    --bs-primary-rgb: var(--gg-primary-rgb);
    --bs-primary-text-emphasis: var(--gg-primary-emphasis);
    --bs-primary-bg-subtle: #d7f5fa;
    --bs-primary-border-subtle: #9de7f0;
    --bs-link-color: var(--gg-primary-emphasis);
    --bs-link-color-rgb: var(--gg-primary-emphasis-rgb);
    --bs-link-hover-color: var(--gg-primary-emphasis-hover);
    --bs-body-color: var(--gg-ink);
    --bs-body-color-rgb: var(--gg-ink-rgb);
    --bs-body-bg: var(--gg-surface);
    --bs-body-bg-rgb: var(--gg-surface-rgb);
    --bs-emphasis-color: #09232d;
    --bs-emphasis-color-rgb: 9, 35, 45;
    --bs-secondary-color: var(--gg-muted);
    --bs-secondary-bg: #e4f4f8;
    --bs-tertiary-bg: #dceff4;
    --bs-border-color: var(--gg-border);
    --bs-border-radius: 0.75rem;
    --bs-border-radius-sm: 0.55rem;
    --bs-border-radius-lg: 1rem;
    --bs-border-radius-xl: 1.25rem;
    --bs-focus-ring-color: rgba(28, 199, 220, 0.34);
    --bs-box-shadow-sm: var(--gg-shadow-subtle);
    --bs-box-shadow: var(--gg-shadow);
    --bs-box-shadow-lg: var(--gg-shadow-floating);
}

:root[data-app-theme='lumi'][data-bs-theme='dark'] {
    color-scheme: dark;

    --gg-surface: #07161d;
    --gg-surface-rgb: 7, 22, 29;
    --gg-surface-raised: #0d222c;
    --gg-surface-soft: #13313d;
    --gg-ink: #e6f9fc;
    --gg-ink-rgb: 230, 249, 252;
    --gg-muted: #9bc1ca;
    --gg-primary: #45d7e8;
    --gg-primary-rgb: 69, 215, 232;
    --gg-primary-hover: #6de2ee;
    --gg-primary-active: #8feaf3;
    --gg-primary-emphasis: #74e3ef;
    --gg-primary-emphasis-rgb: 116, 227, 239;
    --gg-primary-emphasis-hover: #a1edf4;
    --gg-on-primary: #062a31;
    --gg-border: rgba(193, 236, 243, 0.16);
    --gg-border-strong: rgba(69, 215, 232, 0.34);
    --gg-primary-soft: rgba(69, 215, 232, 0.16);
    --gg-navbar: rgba(8, 27, 35, 0.91);
    --gg-table-stripe: rgba(116, 227, 239, 0.035);
    --gg-table-hover: rgba(69, 215, 232, 0.09);
    --gg-glow-primary: rgba(69, 215, 232, 0.12);
    --gg-glow-secondary: rgba(55, 119, 177, 0.13);
    --gg-shadow-subtle: 0 0.5rem 1.5rem rgba(0, 5, 8, 0.3);
    --gg-shadow: 0 1rem 2.5rem rgba(0, 5, 8, 0.4);
    --gg-shadow-floating: 0 1.25rem 3rem rgba(0, 4, 7, 0.55);

    --bs-primary: var(--gg-primary);
    --bs-primary-rgb: var(--gg-primary-rgb);
    --bs-primary-text-emphasis: var(--gg-primary-emphasis);
    --bs-primary-bg-subtle: #123a45;
    --bs-primary-border-subtle: #216270;
    --bs-link-color: var(--gg-primary-emphasis);
    --bs-link-color-rgb: var(--gg-primary-emphasis-rgb);
    --bs-link-hover-color: var(--gg-primary-emphasis-hover);
    --bs-body-color: var(--gg-ink);
    --bs-body-color-rgb: var(--gg-ink-rgb);
    --bs-body-bg: var(--gg-surface);
    --bs-body-bg-rgb: var(--gg-surface-rgb);
    --bs-emphasis-color: #f4fdff;
    --bs-emphasis-color-rgb: 244, 253, 255;
    --bs-secondary-color: var(--gg-muted);
    --bs-secondary-bg: #102b36;
    --bs-tertiary-bg: #153642;
    --bs-border-color: var(--gg-border);
    --bs-focus-ring-color: rgba(69, 215, 232, 0.38);
}

[data-app-theme='lumi'] body {
    min-height: 100vh;
    color: var(--gg-ink);
    background:
        radial-gradient(circle at 92% 8%, var(--gg-glow-primary), transparent 32rem),
        radial-gradient(circle at 8% 24%, var(--gg-glow-secondary), transparent 34rem),
        var(--gg-surface);
    font-family: "Avenir Next", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

[data-app-theme='lumi'] ::selection {
    color: var(--gg-on-primary);
    background: color-mix(in srgb, var(--gg-primary) 72%, white);
}

[data-app-theme='lumi'] h1,
[data-app-theme='lumi'] h2,
[data-app-theme='lumi'] h3,
[data-app-theme='lumi'] h4,
[data-app-theme='lumi'] h5,
[data-app-theme='lumi'] h6,
[data-app-theme='lumi'] .app-brand-name {
    letter-spacing: -0.015em;
}

[data-app-theme='lumi'] a {
    text-underline-offset: 0.18em;
}

[data-app-theme='lumi'] .navbar {
    background: var(--gg-navbar) !important;
    border-color: var(--gg-border) !important;
    box-shadow: 0 0.35rem 1.4rem rgba(10, 75, 94, 0.07);
    backdrop-filter: blur(14px) saturate(130%);
}

[data-app-theme='lumi'] .navbar .nav-link {
    border-radius: 0.65rem;
    color: color-mix(in srgb, var(--gg-ink) 82%, transparent);
    font-weight: 550;
}

[data-app-theme='lumi'] .navbar .nav-link:hover,
[data-app-theme='lumi'] .navbar .nav-link:focus-visible,
[data-app-theme='lumi'] .navbar .nav-link.show {
    color: var(--gg-primary-emphasis);
    background: var(--gg-primary-soft);
}

[data-app-theme='lumi'] .navbar-toggler {
    border-color: var(--gg-border-strong);
    border-radius: 0.75rem;
}

[data-app-theme='lumi'] .card {
    --bs-card-bg: color-mix(in srgb, var(--gg-surface-raised) 97%, transparent);
    --bs-card-border-color: var(--gg-border);
    --bs-card-border-radius: 1rem;
    --bs-card-cap-bg: color-mix(in srgb, var(--gg-surface-soft) 48%, var(--gg-surface-raised));
    box-shadow: var(--gg-shadow-subtle);
}

[data-app-theme='lumi'] .card.shadow,
[data-app-theme='lumi'] .card.shadow-sm {
    box-shadow: var(--gg-shadow-subtle) !important;
}

[data-app-theme='lumi'] .card-header:first-child {
    border-radius: calc(1rem - 1px) calc(1rem - 1px) 0 0;
}

[data-app-theme='lumi'] .btn {
    --bs-btn-border-radius: 0.65rem;
    --bs-btn-focus-box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--gg-primary) 32%, transparent);
    font-weight: 600;
    transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

[data-app-theme='lumi'] .btn-primary {
    --bs-btn-color: var(--gg-on-primary);
    --bs-btn-bg: var(--gg-primary);
    --bs-btn-border-color: var(--gg-primary);
    --bs-btn-hover-color: var(--gg-on-primary);
    --bs-btn-hover-bg: var(--gg-primary-hover);
    --bs-btn-hover-border-color: var(--gg-primary-hover);
    --bs-btn-active-color: var(--gg-on-primary);
    --bs-btn-active-bg: var(--gg-primary-active);
    --bs-btn-active-border-color: var(--gg-primary-active);
    --bs-btn-disabled-color: var(--gg-on-primary);
    --bs-btn-disabled-bg: var(--gg-primary);
    --bs-btn-disabled-border-color: var(--gg-primary);
    --bs-btn-focus-shadow-rgb: var(--gg-primary-rgb);
}

[data-app-theme='lumi'] .btn-outline-primary {
    --bs-btn-color: var(--gg-primary-emphasis);
    --bs-btn-border-color: var(--gg-border-strong);
    --bs-btn-hover-color: var(--gg-on-primary);
    --bs-btn-hover-bg: var(--gg-primary);
    --bs-btn-hover-border-color: var(--gg-primary);
    --bs-btn-active-color: var(--gg-on-primary);
    --bs-btn-active-bg: var(--gg-primary-active);
    --bs-btn-active-border-color: var(--gg-primary-active);
    --bs-btn-disabled-color: var(--gg-primary-emphasis);
    --bs-btn-disabled-border-color: var(--gg-border-strong);
    --bs-btn-focus-shadow-rgb: var(--gg-primary-rgb);
}

[data-app-theme='lumi'] .form-control,
[data-app-theme='lumi'] .form-select,
[data-app-theme='lumi'] .input-group-text {
    border-color: var(--gg-border);
    border-radius: 0.7rem;
    background-color: color-mix(in srgb, var(--gg-surface-raised) 96%, var(--gg-surface));
}

[data-app-theme='lumi'] .form-control:focus,
[data-app-theme='lumi'] .form-select:focus,
[data-app-theme='lumi'] .form-check-input:focus {
    border-color: var(--gg-primary);
    box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--gg-primary) 26%, transparent);
}

[data-app-theme='lumi'] .form-check-input:checked {
    border-color: var(--gg-primary-emphasis);
    background-color: var(--gg-primary-emphasis);
}

[data-app-theme='lumi'] .dropdown-menu {
    --bs-dropdown-bg: color-mix(in srgb, var(--gg-surface-raised) 98%, transparent);
    --bs-dropdown-border-color: var(--gg-border);
    --bs-dropdown-border-radius: 0.85rem;
    --bs-dropdown-link-hover-bg: var(--gg-primary-soft);
    --bs-dropdown-link-active-color: var(--gg-on-primary);
    --bs-dropdown-link-active-bg: var(--gg-primary);
    padding: 0.45rem;
    box-shadow: var(--gg-shadow-floating);
}

[data-app-theme='lumi'] .dropdown-item {
    border-radius: 0.55rem;
}

[data-app-theme='lumi'] .table {
    --bs-table-color: var(--gg-ink);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--gg-border);
    --bs-table-striped-bg: var(--gg-table-stripe);
    --bs-table-hover-bg: var(--gg-table-hover);
    --bs-table-hover-color: var(--gg-ink);
}

[data-app-theme='lumi'] .table > thead > tr > th {
    color: color-mix(in srgb, var(--gg-ink) 78%, transparent);
    background: color-mix(in srgb, var(--gg-surface-soft) 52%, transparent);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

[data-app-theme='lumi'] .nav-tabs {
    --bs-nav-tabs-border-color: var(--gg-border);
    --bs-nav-tabs-link-hover-border-color: transparent transparent var(--gg-border-strong);
    --bs-nav-tabs-link-active-color: var(--gg-primary-emphasis);
    --bs-nav-tabs-link-active-bg: var(--gg-surface-raised);
    --bs-nav-tabs-link-active-border-color: var(--gg-border) var(--gg-border) var(--gg-surface-raised);
    gap: 0.2rem;
}

[data-app-theme='lumi'] .nav-tabs .nav-link {
    border-radius: 0.7rem 0.7rem 0 0;
    font-weight: 600;
}

[data-app-theme='lumi'] .nav-pills {
    --bs-nav-pills-link-active-color: var(--gg-on-primary);
    --bs-nav-pills-link-active-bg: var(--gg-primary);
}

[data-app-theme='lumi'] .pagination {
    --bs-pagination-color: var(--gg-primary-emphasis);
    --bs-pagination-bg: var(--gg-surface-raised);
    --bs-pagination-border-color: var(--gg-border);
    --bs-pagination-hover-color: var(--gg-primary-emphasis-hover);
    --bs-pagination-hover-bg: var(--gg-primary-soft);
    --bs-pagination-hover-border-color: var(--gg-border-strong);
    --bs-pagination-focus-color: var(--gg-primary-emphasis-hover);
    --bs-pagination-focus-bg: var(--gg-primary-soft);
    --bs-pagination-focus-box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--gg-primary) 28%, transparent);
    --bs-pagination-active-color: var(--gg-on-primary);
    --bs-pagination-active-bg: var(--gg-primary);
    --bs-pagination-active-border-color: var(--gg-primary);
    gap: 0.2rem;
}

[data-app-theme='lumi'] .page-link {
    border-radius: 0.55rem !important;
}

[data-app-theme='lumi'] .alert {
    border-radius: 0.85rem;
    box-shadow: 0 0.35rem 1rem rgba(12, 68, 84, 0.05);
}

[data-app-theme='lumi'] .alert-primary {
    --bs-alert-color: var(--gg-primary-emphasis);
    --bs-alert-bg: var(--gg-primary-soft);
    --bs-alert-border-color: var(--gg-border-strong);
    --bs-alert-link-color: var(--gg-primary-emphasis-hover);
}

[data-app-theme='lumi'] .badge {
    border-radius: 0.55rem;
    font-weight: 650;
    letter-spacing: 0.01em;
}

[data-app-theme='lumi'] .text-bg-primary,
[data-app-theme='lumi'] .bg-primary {
    color: var(--gg-on-primary) !important;
    background-color: var(--gg-primary) !important;
}

[data-app-theme='lumi'] .text-primary,
[data-app-theme='lumi'] .link-primary {
    color: var(--gg-primary-emphasis) !important;
}

[data-app-theme='lumi'] .list-group {
    --bs-list-group-bg: var(--gg-surface-raised);
    --bs-list-group-border-color: var(--gg-border);
    --bs-list-group-action-hover-bg: var(--gg-primary-soft);
    --bs-list-group-active-color: var(--gg-on-primary);
    --bs-list-group-active-bg: var(--gg-primary);
    --bs-list-group-active-border-color: var(--gg-primary);
    border-radius: 0.85rem;
}

[data-app-theme='lumi'] .progress {
    --bs-progress-bg: var(--gg-surface-soft);
    --bs-progress-bar-bg: var(--gg-primary);
    border-radius: 999px;
}

[data-app-theme='lumi'] .modal-content,
[data-app-theme='lumi'] .offcanvas {
    color: var(--gg-ink);
    background: var(--gg-surface-raised);
    border-color: var(--gg-border);
    box-shadow: var(--gg-shadow-floating);
}

[data-app-theme='lumi'] .modal-content {
    border-radius: 1.1rem;
}

[data-app-theme='lumi'] .modal-header,
[data-app-theme='lumi'] .modal-footer,
[data-app-theme='lumi'] .offcanvas-header {
    border-color: var(--gg-border);
}

[data-app-theme='lumi'] code,
[data-app-theme='lumi'] pre {
    color: color-mix(in srgb, var(--gg-primary-emphasis) 78%, var(--gg-ink));
}

[data-app-theme='lumi'] pre {
    border: 1px solid var(--gg-border);
    border-radius: 0.8rem;
    padding: 1rem;
    background: color-mix(in srgb, var(--gg-surface-soft) 56%, transparent);
}

[data-app-theme='lumi'] .admin-nav-link:hover,
[data-app-theme='lumi'] .admin-nav-link:focus-visible,
[data-app-theme='lumi'] .admin-nav-link.active {
    background-color: var(--gg-primary-soft);
    color: var(--gg-primary-emphasis);
}

[data-app-theme='lumi'] .admin-sidebar-card {
    background:
        linear-gradient(180deg, var(--gg-primary-soft), transparent 24%),
        var(--gg-surface-raised);
}

[data-app-theme='lumi'] .admin-sidebar-badge,
[data-app-theme='lumi'] .admin-card-icon {
    background-color: var(--gg-primary-soft);
}

[data-app-theme='lumi'] .admin-dashboard-hero {
    border-color: var(--gg-border-strong);
    background:
        radial-gradient(circle at top right, var(--gg-primary-soft), transparent 30rem),
        linear-gradient(135deg, var(--gg-surface-raised), color-mix(in srgb, var(--gg-primary-soft) 55%, transparent));
}

[data-app-theme='lumi'] .admin-dashboard-card:hover {
    transform: translateY(-1px);
    box-shadow: var(--gg-shadow) !important;
}

[data-app-theme='lumi'] .home-lumi-artwork {
    filter: drop-shadow(0 1rem 1.5rem color-mix(in srgb, var(--gg-primary-emphasis) 18%, transparent));
}

[data-app-theme='lumi'] .home-hero-panel {
    border-color: var(--gg-border-strong);
    background:
        radial-gradient(circle at 12% 8%, var(--gg-primary-soft), transparent 20rem),
        radial-gradient(circle at 88% 100%, var(--gg-glow-secondary), transparent 24rem),
        color-mix(in srgb, var(--gg-surface-raised) 96%, transparent);
    box-shadow: var(--gg-shadow);
}

[data-app-theme='lumi'] .home-hero-authenticated .home-hero-panel {
    background:
        radial-gradient(circle at 80% 10%, var(--gg-primary-soft), transparent 24rem),
        linear-gradient(145deg, var(--gg-surface-raised), color-mix(in srgb, var(--gg-surface-soft) 48%, var(--gg-surface-raised)));
}

[data-app-theme='lumi'] .home-hero-eyebrow {
    color: var(--gg-primary-emphasis);
}

[data-app-theme='lumi'] .auth-page {
    background:
        radial-gradient(circle at 8% 18%, var(--gg-primary-soft), transparent 26rem),
        radial-gradient(circle at 92% 82%, var(--gg-glow-secondary), transparent 30rem);
}

[data-app-theme='lumi'] .auth-brand-panel,
[data-app-theme='lumi'] .auth-card {
    border-color: var(--gg-border-strong);
    box-shadow: var(--gg-shadow);
}

[data-app-theme='lumi'] .auth-brand-panel {
    background:
        radial-gradient(circle at 18% 18%, var(--gg-primary-soft), transparent 44%),
        radial-gradient(circle at 92% 88%, var(--gg-glow-secondary), transparent 46%),
        color-mix(in srgb, var(--gg-surface-raised) 92%, transparent);
    backdrop-filter: blur(16px);
}

[data-app-theme='lumi'] .auth-card {
    background: color-mix(in srgb, var(--gg-surface-raised) 96%, transparent);
    backdrop-filter: blur(18px);
}

[data-app-theme='lumi'] .auth-hero-art {
    filter: drop-shadow(0 1rem 1.5rem color-mix(in srgb, var(--gg-primary-emphasis) 20%, transparent));
}

[data-app-theme='lumi'] .auth-brand-eyebrow,
[data-app-theme='lumi'] .auth-eyebrow {
    color: var(--gg-primary-emphasis);
}

[data-app-theme='lumi'] .auth-icon {
    background: linear-gradient(145deg, var(--gg-primary), color-mix(in srgb, var(--gg-primary) 68%, #4aa7e1));
    color: var(--gg-on-primary);
    box-shadow: 0 0.75rem 1.6rem color-mix(in srgb, var(--gg-primary) 28%, transparent);
}

[data-app-theme='lumi'] .auth-accent {
    border-color: var(--gg-border-strong);
    background: color-mix(in srgb, var(--gg-primary-soft) 58%, transparent);
}

[data-app-theme='lumi'] .site-footer {
    border-color: var(--gg-border);
    background: color-mix(in srgb, var(--gg-surface-raised) 82%, transparent);
    backdrop-filter: blur(12px);
}

[data-app-theme='lumi'] .legal-document-header,
[data-app-theme='lumi'] .legal-document,
[data-app-theme='lumi'] .legal-document-nav,
[data-app-theme='lumi'] .legal-acceptance {
    border-color: var(--gg-border-strong);
}

[data-app-theme='lumi'] .legal-document-header {
    background:
        radial-gradient(circle at 90% 8%, var(--gg-primary-soft), transparent 24rem),
        linear-gradient(145deg, var(--gg-surface-raised), color-mix(in srgb, var(--gg-surface-soft) 42%, var(--gg-surface-raised)));
    box-shadow: var(--gg-shadow);
}

[data-app-theme='lumi'] .legal-document-art,
[data-app-theme='lumi'] .legal-acceptance-art img {
    filter: drop-shadow(0 0.85rem 1.25rem color-mix(in srgb, var(--gg-primary-emphasis) 18%, transparent));
}

[data-app-theme='lumi'] .legal-document-eyebrow {
    color: var(--gg-primary-emphasis);
}

[data-app-theme='lumi'] .legal-document-nav .nav-link:hover,
[data-app-theme='lumi'] .legal-document-nav .nav-link:focus-visible {
    color: var(--gg-primary-emphasis);
    background: var(--gg-primary-soft);
}

[data-app-theme='lumi'] .legal-acceptance {
    background:
        radial-gradient(circle at 8% 100%, var(--gg-primary-soft), transparent 18rem),
        var(--gg-surface-raised);
    box-shadow: var(--gg-shadow);
}

[data-app-theme='lumi'] .legal-acceptance-art {
    background: linear-gradient(160deg, var(--gg-primary-soft), transparent 80%);
}

[data-app-theme='lumi'] :focus-visible {
    outline-color: var(--gg-primary-emphasis);
}

@media (prefers-reduced-motion: reduce) {
    [data-app-theme='lumi'] *,
    [data-app-theme='lumi'] *::before,
    [data-app-theme='lumi'] *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
