/* Aster-inspired Bootstrap 5 theme (CSS variables)
   Usage:
   1) Load Bootstrap 5 CSS first
   2) Load this file after
*/

:root,
[data-bs-theme="light"] {
    /* ========================================
       Brand Palette
       ======================================== */
    --aster-lilac: #7B6DAF;
    --aster-blueviolet: #4F6FA8;
    --aster-mistblue: #A9B7D0;
    --aster-lavendergray: #D8D5E5;
    --aster-pearl: #F6F7F9;
    --aster-graphite: #2F2F38;
    --aster-pistil: #C9B458;
    --aster-crimson: #B04A5A;

    /* ========================================
       Bootstrap Core Colors
       ======================================== */
    --bs-body-bg: var(--aster-pearl);
    --bs-body-color: var(--aster-graphite);
    --bs-emphasis-color: #1f1f28;
    --bs-secondary-color: rgba(47, 47, 56, 0.72);
    --bs-tertiary-color: rgba(47, 47, 56, 0.54);

    --bs-primary: var(--aster-lilac);
    --bs-secondary: var(--aster-mistblue);
    --bs-info: var(--aster-blueviolet);
    --bs-warning: var(--aster-pistil);
    --bs-light: var(--aster-pearl);
    --bs-dark: var(--aster-graphite);
    --bs-danger: var(--aster-crimson);

    --bs-primary-rgb: 123, 109, 175;
    --bs-secondary-rgb: 169, 183, 208;
    --bs-info-rgb: 79, 111, 168;
    --bs-warning-rgb: 201, 180, 88;
    --bs-danger-rgb: 176, 74, 90;
    --bs-light-rgb: 246, 247, 249;
    --bs-dark-rgb: 47, 47, 56;

    /* ========================================
       Subtle Color Variants
       ======================================== */
    /* Primary (aster lilac) */
    --bs-primary-text-emphasis: #4E4476;
    --bs-primary-bg-subtle: #E6E3F2;
    --bs-primary-border-subtle: #C9C2E3;

    /* Secondary (mist blue) */
    --bs-secondary-text-emphasis: #3F516F;
    --bs-secondary-bg-subtle: #E3E9F3;
    --bs-secondary-border-subtle: #C6D2E6;

    /* Info (blue-violet) */
    --bs-info-text-emphasis: #344A72;
    --bs-info-bg-subtle: #E2E8F4;
    --bs-info-border-subtle: #C2D0EA;

    /* Warning (pistil yellow) */
    --bs-warning-text-emphasis: #6A5C1E;
    --bs-warning-bg-subtle: #F5F0DA;
    --bs-warning-border-subtle: #E4D99F;

    /* Danger (aster crimson) */
    --bs-danger-text-emphasis: #7A2E3A;
    --bs-danger-bg-subtle: #F3D9DD;
    --bs-danger-border-subtle: #E3B2BA;

    /* ========================================
       Borders
       ======================================== */
    --bs-border-color: rgba(47, 47, 56, 0.18);
    --bs-border-color-translucent: rgba(47, 47, 56, 0.12);

    /* ========================================
       Links
       ======================================== */
    --bs-link-color: var(--aster-blueviolet);
    --bs-link-hover-color: #3f5f93;

    /* ========================================
       Surfaces
       ======================================== */
    --bs-card-bg: #ffffff;
    --bs-card-border-color: var(--bs-border-color);
    --bs-modal-content-bg: #ffffff;
    --bs-dropdown-bg: #ffffff;
    --bs-popover-bg: #ffffff;
    --bs-toast-background-color: rgba(255, 255, 255, 0.95);

    /* ========================================
       UI Elements
       ======================================== */
    --bs-focus-ring-color: rgba(79, 111, 168, 0.35);

    /* Rounded / shadows */
    --bs-border-radius: 0.9rem;
    --bs-border-radius-lg: 1.1rem;
    --bs-box-shadow-sm: 0 0.125rem 0.4rem rgba(47, 47, 56, 0.08);
    --bs-box-shadow: 0 0.35rem 1.1rem rgba(47, 47, 56, 0.10);
    --bs-box-shadow-lg: 0 0.75rem 2rem rgba(47, 47, 56, 0.12);
}

/* =========================================================
   Dark Mode (Bootstrap 5.3+ data-bs-theme)
   ========================================================= */
[data-bs-theme="dark"] {
    /* ========================================
       Bootstrap Core Colors
       ======================================== */
    --bs-body-bg: #15151b;
    --bs-body-color: #E8E9F1;
    --bs-emphasis-color: #ffffff;
    --bs-secondary-color: rgba(232, 233, 241, 0.74);
    --bs-tertiary-color: rgba(232, 233, 241, 0.56);

    --bs-primary: #8B7FC3;
    --bs-secondary: #7F93B8;
    --bs-info: #6E8FD0;
    --bs-warning: #D7C26B;
    --bs-danger: #C86A78;

    --bs-primary-rgb: 139, 127, 195;
    --bs-secondary-rgb: 127, 147, 184;
    --bs-info-rgb: 110, 143, 208;
    --bs-warning-rgb: 215, 194, 107;
    --bs-danger-rgb: 200, 106, 120;
    --bs-light-rgb: 246, 247, 249;
    --bs-dark-rgb: 47, 47, 56;

    /* ========================================
       Subtle Color Variants
       ======================================== */
    /* Primary */
    --bs-primary-text-emphasis: #D8D3F0;
    --bs-primary-bg-subtle: rgba(123, 109, 175, 0.22);
    --bs-primary-border-subtle: rgba(123, 109, 175, 0.45);

    /* Secondary */
    --bs-secondary-text-emphasis: #D4DDF0;
    --bs-secondary-bg-subtle: rgba(169, 183, 208, 0.22);
    --bs-secondary-border-subtle: rgba(169, 183, 208, 0.45);

    /* Info */
    --bs-info-text-emphasis: #D7E2F8;
    --bs-info-bg-subtle: rgba(79, 111, 168, 0.25);
    --bs-info-border-subtle: rgba(79, 111, 168, 0.48);

    /* Warning */
    --bs-warning-text-emphasis: #F1E6AE;
    --bs-warning-bg-subtle: rgba(201, 180, 88, 0.25);
    --bs-warning-border-subtle: rgba(201, 180, 88, 0.50);

    /* Danger */
    --bs-danger-text-emphasis: #F4C6CC;
    --bs-danger-bg-subtle: rgba(176, 74, 90, 0.25);
    --bs-danger-border-subtle: rgba(176, 74, 90, 0.50);

    /* ========================================
       Borders
       ======================================== */
    --bs-border-color: rgba(232, 233, 241, 0.18);
    --bs-border-color-translucent: rgba(232, 233, 241, 0.12);

    /* ========================================
       Links
       ======================================== */
    --bs-link-color: var(--bs-info);
    --bs-link-hover-color: #8FAAE0;

    /* ========================================
       Surfaces
       ======================================== */
    --bs-card-bg: #1B1B24;
    --bs-modal-content-bg: #1B1B24;
    --bs-dropdown-bg: #1B1B24;
    --bs-popover-bg: #1B1B24;
    --bs-toast-background-color: rgba(27, 27, 36, 0.95);

    /* ========================================
       UI Elements
       ======================================== */
    --bs-focus-ring-color: rgba(110, 143, 208, 0.40);
}

/* =========================================================
   Button Styles
   ========================================================= */

/* ---------- PRIMARY ---------- */
.btn-primary {
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: #6F62A3;
    --bs-btn-hover-border-color: #6F62A3;
    --bs-btn-active-bg: #645896;
    --bs-btn-active-border-color: #645896;
    --bs-btn-focus-shadow-rgb: 79, 111, 168;
}

.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #645896;
    --bs-btn-active-border-color: #645896;
    --bs-btn-focus-shadow-rgb: 123, 109, 175;
    --bs-btn-disabled-color: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}

/* ---------- SECONDARY (mist blue) ---------- */
.btn-secondary {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #8FA1C0;
    --bs-btn-hover-border-color: #8FA1C0;
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #7E90AF;
    --bs-btn-active-border-color: #7E90AF;
    --bs-btn-disabled-color: #ffffff;
    --bs-btn-disabled-bg: #C9D2E2;
    --bs-btn-disabled-border-color: #C9D2E2;
    --bs-btn-focus-shadow-rgb: 169, 183, 208;
}

.btn-outline-secondary {
    --bs-btn-color: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--bs-secondary);
    --bs-btn-hover-border-color: var(--bs-secondary);
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #8FA1C0;
    --bs-btn-active-border-color: #8FA1C0;
    --bs-btn-disabled-color: #C9D2E2;
    --bs-btn-disabled-border-color: #C9D2E2;
    --bs-btn-focus-shadow-rgb: 169, 183, 208;
}

/* ---------- INFO (blue-violet) ---------- */
.btn-info {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #435F94;
    --bs-btn-hover-border-color: #435F94;
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #3A547F;
    --bs-btn-active-border-color: #3A547F;
    --bs-btn-disabled-color: #ffffff;
    --bs-btn-disabled-bg: #A8B8D6;
    --bs-btn-disabled-border-color: #A8B8D6;
    --bs-btn-focus-shadow-rgb: 79, 111, 168;
}

.btn-outline-info {
    --bs-btn-color: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--bs-info);
    --bs-btn-hover-border-color: var(--bs-info);
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #435F94;
    --bs-btn-active-border-color: #435F94;
    --bs-btn-disabled-color: #A8B8D6;
    --bs-btn-disabled-border-color: #A8B8D6;
    --bs-btn-focus-shadow-rgb: 79, 111, 168;
}

/* ---------- WARNING (pistil yellow) ---------- */
.btn-warning {
    --bs-btn-color: #2F2F38;
    --bs-btn-bg: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: #2F2F38;
    --bs-btn-hover-bg: #B9A84E;
    --bs-btn-hover-border-color: #B9A84E;
    --bs-btn-active-color: #2F2F38;
    --bs-btn-active-bg: #A89745;
    --bs-btn-active-border-color: #A89745;
    --bs-btn-disabled-color: #2F2F38;
    --bs-btn-disabled-bg: #E2D7A3;
    --bs-btn-disabled-border-color: #E2D7A3;
    --bs-btn-focus-shadow-rgb: 201, 180, 88;
}

.btn-outline-warning {
    --bs-btn-color: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: #2F2F38;
    --bs-btn-hover-bg: var(--bs-warning);
    --bs-btn-hover-border-color: var(--bs-warning);
    --bs-btn-active-color: #2F2F38;
    --bs-btn-active-bg: #B9A84E;
    --bs-btn-active-border-color: #B9A84E;
    --bs-btn-disabled-color: #D9CB86;
    --bs-btn-disabled-border-color: #D9CB86;
    --bs-btn-focus-shadow-rgb: 201, 180, 88;
}

/* ---------- DANGER (aster crimson) ---------- */
.btn-danger {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #9E3F4F;
    --bs-btn-hover-border-color: #9E3F4F;
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #8F3847;
    --bs-btn-active-border-color: #8F3847;
    --bs-btn-disabled-color: #ffffff;
    --bs-btn-disabled-bg: #D3A1A9;
    --bs-btn-disabled-border-color: #D3A1A9;
    --bs-btn-focus-shadow-rgb: 176, 74, 90;
}

.btn-outline-danger {
    --bs-btn-color: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--bs-danger);
    --bs-btn-hover-border-color: var(--bs-danger);
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #9E3F4F;
    --bs-btn-active-border-color: #9E3F4F;
    --bs-btn-disabled-color: #D3A1A9;
    --bs-btn-disabled-border-color: #D3A1A9;
    --bs-btn-focus-shadow-rgb: 176, 74, 90;
}

/* =========================================================
   Dark Mode Button Adjustments
   ========================================================= */

[data-bs-theme="dark"] .btn-secondary {
    --bs-btn-bg: #7F93B8;
    --bs-btn-border-color: #7F93B8;
    --bs-btn-hover-bg: #6E82A7;
    --bs-btn-hover-border-color: #6E82A7;
    --bs-btn-active-bg: #627598;
    --bs-btn-active-border-color: #627598;
    --bs-btn-disabled-bg: #4C5B74;
    --bs-btn-disabled-border-color: #4C5B74;
}

[data-bs-theme="dark"] .btn-info {
    --bs-btn-bg: #6E8FD0;
    --bs-btn-border-color: #6E8FD0;
    --bs-btn-hover-bg: #5E7FC0;
    --bs-btn-hover-border-color: #5E7FC0;
    --bs-btn-active-bg: #506FB0;
    --bs-btn-active-border-color: #506FB0;
    --bs-btn-disabled-bg: #3E4F6E;
    --bs-btn-disabled-border-color: #3E4F6E;
}

[data-bs-theme="dark"] .btn-warning {
    --bs-btn-color: #15151B;
    --bs-btn-bg: #D7C26B;
    --bs-btn-border-color: #D7C26B;
    --bs-btn-hover-bg: #C6B15F;
    --bs-btn-hover-border-color: #C6B15F;
    --bs-btn-active-bg: #B6A255;
    --bs-btn-active-border-color: #B6A255;
    --bs-btn-disabled-bg: #6E6534;
    --bs-btn-disabled-border-color: #6E6534;
}

[data-bs-theme="dark"] .btn-danger {
    --bs-btn-bg: #C86A78;
    --bs-btn-border-color: #C86A78;
    --bs-btn-hover-bg: #B85A69;
    --bs-btn-hover-border-color: #B85A69;
    --bs-btn-active-bg: #A94E5C;
    --bs-btn-active-border-color: #A94E5C;
    --bs-btn-disabled-bg: #6F3941;
    --bs-btn-disabled-border-color: #6F3941;
}

[data-bs-theme="dark"] .btn-outline-danger {
    --bs-btn-color: #F0B9C0;
    --bs-btn-border-color: #C86A78;
    --bs-btn-hover-bg: #C86A78;
    --bs-btn-hover-border-color: #C86A78;
    --bs-btn-active-bg: #B85A69;
    --bs-btn-active-border-color: #B85A69;
    --bs-btn-disabled-color: #7A4A52;
    --bs-btn-disabled-border-color: #7A4A52;
}

/* =========================================================
   Print-friendly summary view
   ========================================================= */

@media print {
    @page {
        size: A4;
        margin: 12mm;
    }

    body {
        background: #ffffff !important;
        color: #000000 !important;
    }

    :root {
        --bs-border-color: #000000 !important;
        --bs-table-border-color: #000000 !important;
    }

    nav,
    footer,
    .navbar,
    .dropdown,
    .dropdown-menu,
    .alert,
    .btn {
        display: none !important;
    }

    .container-xxl,
    .row,
    main {
        margin: 0 !important;
        padding: 0 !important;
    }

    .shadow,
    .shadow-sm,
    .shadow-lg,
    .card {
        box-shadow: none !important;
        border: 0 !important;
        background: transparent !important;
    }

    .badge {
        background: transparent !important;
        color: #000000 !important;
        border: 1px solid #000000 !important;
    }

    .table .badge {
        border: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        color: #000000 !important;
        font-weight: inherit !important;
        font-size: inherit !important;
        line-height: inherit !important;
    }

    .table {
        font-size: 11px;
        border-collapse: collapse !important;
        border: 0 !important;
    }

    .table> :not(caption)>*>* {
        border: 0 !important;
        outline: 1px solid #000000 !important;
        /* outline-offset: -1px !important; */
    }

    .table-responsive {
        overflow: visible !important;
    }

    .norms-form {
        display: none !important;
    }

    .ravlt-grid-section {
        break-before: page;
        page-break-before: auto;
        break-after: avoid-page;
        page-break-after: avoid;
        break-inside: avoid;
    }

    .ravlt-grid-rotate {
        transform-origin: top left;
        transform: rotate(90deg) translateY(-100%);
        width: 100%;
    }

    .ravlt-grid-section~* {
        display: none !important;
    }

    .ravlt-grid-section table {
        page-break-inside: avoid;
    }
}