/*
 * Our Experts admin theme.
 *
 * A design layer over the Sneat / Bootstrap 5 template: type, surfaces,
 * sidebar, navbar, cards, buttons, forms, modals, offcanvas drawers, tables
 * (DataTables), dropdowns, badges, alerts, tabs, pagination, Select2,
 * SweetAlert and toasts. Colours come from brand.css; this file only uses
 * its tokens and Bootstrap's role variables, so light and dark both work.
 */

/* ---------------------------------------------------------------- Tokens */

:root,
[data-bs-theme=light] {
    --bs-font-sans-serif: "Plus Jakarta Sans", "Noto Sans Malayalam", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);

    --bs-body-bg: #f4f5fa;
    --bs-body-bg-rgb: 244, 245, 250;
    --bs-body-color: #5b6177;
    --bs-body-color-rgb: 91, 97, 119;
    --bs-heading-color: #1b1d36;
    --bs-secondary-color: #8a8fa6;
    --bs-border-color: #e7e8f0;

    --bs-border-radius: .625rem;
    --bs-border-radius-sm: .5rem;
    --bs-border-radius-lg: .875rem;
    --bs-border-radius-xl: 1rem;
    --bs-border-radius-xxl: 1.25rem;

    --bs-box-shadow-sm: 0 1px 2px rgba(27, 29, 54, .04), 0 1px 3px rgba(27, 29, 54, .06);
    --bs-box-shadow: 0 1px 2px rgba(27, 29, 54, .04), 0 4px 16px rgba(27, 29, 54, .06);
    --bs-box-shadow-lg: 0 12px 40px rgba(27, 29, 54, .12);

    --ui-surface: #ffffff;
    --ui-surface-muted: #f8f9fc;
    --ui-input-bg: #ffffff;
    --ui-input-border: #dfe1ea;
    --ui-hairline: rgba(27, 29, 54, .06);
    --ui-ring: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .16);
    --ui-btn-shadow: 0 6px 16px -6px rgba(var(--bs-primary-rgb), .55);
    --ui-backdrop: rgba(17, 16, 46, .38);

    --ui-menu-bg: linear-gradient(180deg, #17153b 0%, #1e1b4b 55%, #1b1a42 100%);
    --ui-menu-text: rgba(226, 228, 255, .72);
    --ui-menu-text-strong: #ffffff;
    --ui-menu-header: rgba(199, 210, 254, .45);
    --ui-menu-hover: rgba(255, 255, 255, .07);
}

[data-bs-theme=dark] {
    --bs-body-bg: #12132a;
    --bs-body-bg-rgb: 18, 19, 42;
    --bs-paper-bg: #1b1c38;
    --bs-paper-bg-rgb: 27, 28, 56;
    --bs-body-color: #a9acc6;
    --bs-body-color-rgb: 169, 172, 198;
    --bs-heading-color: #eceefe;
    --bs-secondary-color: #8186a6;
    --bs-border-color: #2c2e52;

    --bs-box-shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);
    --bs-box-shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 6px 20px rgba(0, 0, 0, .25);
    --bs-box-shadow-lg: 0 16px 48px rgba(0, 0, 0, .45);

    --ui-surface: #1b1c38;
    --ui-surface-muted: #202243;
    --ui-input-bg: #16172f;
    --ui-input-border: #33355c;
    --ui-hairline: rgba(255, 255, 255, .06);
    --ui-backdrop: rgba(5, 5, 20, .6);

    --ui-menu-bg: linear-gradient(180deg, #0f0e2b 0%, #141336 60%, #12122f 100%);
}

/* ------------------------------------------------------------------ Base */

body {
    font-family: var(--bs-body-font-family);
    background:
        radial-gradient(1200px 500px at 100% -10%, rgba(var(--bs-primary-rgb), .07), transparent 60%),
        radial-gradient(900px 400px at -10% 110%, rgba(13, 148, 136, .05), transparent 60%),
        var(--bs-body-bg);
    background-attachment: fixed;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { letter-spacing: -.015em; font-weight: 700; }
.card-title, .modal-title, .offcanvas-title { letter-spacing: -.01em; font-weight: 700; }
.text-muted { color: var(--bs-secondary-color) !important; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: rgba(var(--bs-primary-rgb), .22); border-radius: 10px; border: 3px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: rgba(var(--bs-primary-rgb), .4); }

/* --------------------------------------------------------------- Sidebar */

.layout-menu.menu-vertical,
.layout-menu.menu-vertical .menu-inner-shadow {
    --bs-menu-bg: transparent;
    --bs-menu-color: var(--ui-menu-text);
    --bs-menu-hover-bg: var(--ui-menu-hover);
    --bs-menu-hover-color: var(--ui-menu-text-strong);
    --bs-menu-active-color: #fff;
    --bs-menu-active-bg: transparent;
    --bs-menu-active-toggle-bg: var(--ui-menu-hover);
    --bs-menu-sub-active-bg: rgba(255, 255, 255, .08);
    --bs-menu-sub-active-color: #fff;
}
.layout-menu.menu-vertical {
    background: var(--ui-menu-bg) !important;
    color: var(--ui-menu-text);
    box-shadow: 4px 0 24px rgba(15, 14, 43, .12);
    border-inline-end: 0;
}
.layout-menu .app-brand { padding-top: .5rem; }
.layout-menu .app-brand .app-brand-text,
.layout-menu .app-brand-link { color: #fff !important; }
.layout-menu .app-brand { height: 4.75rem; padding-inline: 1.5rem 1rem; }
.layout-menu .app-brand-link { gap: 0; }
.app-brand-logo.demo { width: auto !important; height: auto !important; }
.app-brand-logo.demo svg.brand-mark { width: 2.25rem; height: 2.25rem; }
.authentication-wrapper .app-brand-logo.demo svg.brand-mark { width: 2.5rem; height: 2.5rem; }
.brand-mark { display: block; flex-shrink: 0; filter: drop-shadow(0 6px 14px rgba(79, 70, 229, .45)); }
.layout-menu .app-brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.layout-menu .brand-name { font-size: 1.125rem; font-weight: 800; letter-spacing: -.02em; color: #fff; }
.layout-menu .brand-tagline { font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(199, 210, 254, .55); }
.layout-menu .layout-menu-toggle i { font-size: 1.125rem; }
.layout-menu .menu-inner-shadow { background: linear-gradient(#17153b 41%, rgba(23, 21, 59, .11) 95%, transparent) !important; }
.layout-menu .menu-header { color: var(--ui-menu-header) !important; }
.layout-menu .menu-header .menu-header-text { font-size: .6875rem; letter-spacing: .14em; font-weight: 700; }
.layout-menu .menu-header::before { background-color: rgba(255, 255, 255, .08) !important; }
.layout-menu .menu-link { color: var(--ui-menu-text); font-weight: 500; transition: background .2s ease, color .2s ease, transform .2s ease; }
.layout-menu .menu-link .menu-icon { color: inherit; opacity: .85; }
.layout-menu .menu-item:not(.active) > .menu-link:hover { color: #fff; transform: translateX(2px); }
.layout-menu.menu-vertical .menu-inner > .menu-item > .menu-link { border-radius: .75rem; }
.layout-menu.menu-vertical .menu-inner > .menu-item.active > .menu-link:not(.menu-toggle) {
    background: linear-gradient(120deg, #4f46e5 0%, #7c3aed 100%);
    color: #fff;
    box-shadow: 0 8px 20px -8px rgba(99, 102, 241, .8), inset 0 1px 0 rgba(255, 255, 255, .18);
}
.layout-menu.menu-vertical .menu-inner > .menu-item.active > .menu-link .menu-icon { opacity: 1; }
.layout-menu.menu-vertical .menu-inner > .menu-item.active::before { display: none; }
.layout-menu .menu-sub > .menu-item.active > .menu-link { color: #fff; }
.layout-menu .layout-menu-toggle { background: var(--brand-primary) !important; border-color: transparent !important; color: #fff !important; box-shadow: 0 0 0 6px rgba(15, 14, 43, .35); }
.layout-menu .badge { box-shadow: none; }

/* Signed-in user card pinned to the bottom of the menu */
.menu-profile {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: .75rem 1rem 1rem;
    padding: .625rem .625rem .625rem .75rem;
    border-radius: .875rem;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .08);
    flex-shrink: 0;
}
.menu-profile-link { display: flex; align-items: center; gap: .75rem; min-width: 0; flex: 1; color: #fff; }
.menu-profile-link:hover { color: #fff; }
.menu-profile .avatar-initial { background: var(--brand-gradient); color: #fff; font-weight: 700; }
.menu-profile .avatar-online::after { box-shadow: 0 0 0 2px #17153b; }
.menu-profile-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.menu-profile-name { font-size: .8125rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.menu-profile-role { font-size: .6875rem; color: rgba(199, 210, 254, .6); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.menu-profile-logout {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2rem; height: 2rem; border: 0; border-radius: .625rem;
    background: transparent; color: rgba(199, 210, 254, .7);
    transition: background .2s ease, color .2s ease;
}
.menu-profile-logout:hover { background: rgba(251, 113, 133, .16); color: #fda4af; }
.layout-menu-collapsed:not(.layout-menu-hover) .menu-profile { margin-inline: .5rem; padding: .5rem; justify-content: center; }
.layout-menu-collapsed:not(.layout-menu-hover) .menu-profile-text,
.layout-menu-collapsed:not(.layout-menu-hover) .menu-profile form,
.layout-menu-collapsed:not(.layout-menu-hover) .layout-menu .brand-tagline { display: none; }

/* ---------------------------------------------------------------- Navbar */

.layout-navbar.navbar-detached {
    border-radius: 1rem;
    background: rgba(var(--bs-paper-bg-rgb), .78) !important;
    backdrop-filter: saturate(160%) blur(14px);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    border: 1px solid var(--ui-hairline);
    box-shadow: var(--bs-box-shadow-sm);
}
.layout-navbar .navbar-search-wrapper .search-input-wrapper,
.layout-navbar .navbar-nav .nav-item .nav-link { border-radius: .625rem; }
.layout-navbar .avatar .avatar-initial,
.layout-navbar .avatar img { box-shadow: 0 0 0 2px var(--ui-surface), 0 0 0 4px rgba(var(--bs-primary-rgb), .25); }
.layout-navbar .avatar .avatar-initial { background: var(--brand-gradient) !important; color: #fff !important; font-weight: 700; }

/* Icon buttons on the right become soft square tiles */
.layout-navbar .navbar-nav-right > .navbar-nav > .nav-item > .nav-link:not(.nav-user-chip) {
    min-width: 2.5rem; height: 2.5rem;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--bs-heading-color);
    transition: background .2s ease, color .2s ease;
}
.layout-navbar .navbar-nav-right > .navbar-nav > .nav-item > .nav-link:not(.nav-user-chip):hover,
.layout-navbar .navbar-nav-right > .navbar-nav > .nav-item > .nav-link.show {
    background: rgba(var(--bs-primary-rgb), .1);
    color: var(--bs-primary);
}

/* Search pill */
.ui-nav-search {
    display: flex !important; align-items: center; gap: .625rem;
    min-width: 17rem; height: 2.5rem; padding: 0 .5rem 0 .875rem !important;
    border-radius: 999px !important;
    background: var(--ui-surface-muted);
    border: 1px solid var(--ui-hairline);
    color: var(--bs-secondary-color) !important;
    font-size: .8125rem;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.ui-nav-search:hover { border-color: rgba(var(--bs-primary-rgb), .45); box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), .08); }
.ui-nav-search i { font-size: 1.05rem; }
.ui-nav-search kbd {
    font-family: inherit; font-size: .6875rem; font-weight: 600;
    color: var(--bs-secondary-color); background: var(--ui-surface);
    border: 1px solid var(--ui-hairline); border-radius: .375rem;
    padding: .125rem .4rem; box-shadow: 0 1px 0 var(--ui-hairline);
}
@media (max-width: 767.98px) {
    .ui-nav-search { min-width: 0; width: 2.5rem; padding: 0 !important; justify-content: center; }
    .ui-nav-search span, .ui-nav-search kbd { display: none !important; }
}

/* User chip */
.nav-user-chip { display: flex !important; align-items: center; gap: .75rem; padding: .25rem .25rem .25rem .875rem !important; border-radius: 999px !important; border: 1px solid transparent; transition: background .2s ease, border-color .2s ease; }
.nav-user-chip:hover, .nav-user-chip.show { background: var(--ui-surface-muted); border-color: var(--ui-hairline); }
.nav-user-text { flex-direction: column; align-items: flex-end; line-height: 1.2; }
.nav-user-name { font-size: .8125rem; font-weight: 700; color: var(--bs-heading-color); }
.nav-user-role { font-size: .6875rem; color: var(--bs-secondary-color); }

/* Needs-attention dropdown */
.nav-attention-count {
    position: absolute; top: -.55rem; inset-inline-end: -.7rem;
    min-width: 1.125rem; height: 1.125rem; padding: 0 .3rem;
    border-radius: 999px; background: var(--bs-danger); color: #fff;
    font-size: .625rem; font-weight: 700; line-height: 1.125rem; text-align: center;
    box-shadow: 0 0 0 2px var(--ui-surface);
}
.nav-attention { width: 22rem; overflow: hidden; }
.nav-attention-head { padding: 1rem 1.25rem .75rem; background: var(--brand-gradient); color: #fff; }
.nav-attention-head h6 { color: #fff; font-weight: 700; }
.nav-attention-head small { color: rgba(255, 255, 255, .7); }
.nav-attention-stats { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--ui-hairline); }
.nav-attention-stats > div { display: flex; flex-direction: column; align-items: center; padding: .75rem .25rem; text-align: center; }
.nav-attention-stats > div + div { border-inline-start: 1px solid var(--ui-hairline); }
.nav-attention-stats strong { font-size: 1.125rem; font-weight: 800; color: var(--bs-heading-color); }
.nav-attention-stats span { font-size: .6875rem; color: var(--bs-secondary-color); }
.nav-attention-list { max-height: 17rem; overflow-y: auto; padding: .375rem; }
.nav-attention-item { display: flex; align-items: center; gap: .75rem; padding: .625rem .75rem; border-radius: .75rem; color: inherit; }
.nav-attention-item:hover { background: rgba(var(--bs-primary-rgb), .07); color: inherit; }
.layout-navbar .nav-attention-item .avatar .avatar-initial { background: var(--bs-warning-bg-subtle) !important; color: var(--bs-warning-text-emphasis) !important; box-shadow: none !important; }
.nav-attention-empty { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 1.5rem 1rem; text-align: center; color: var(--bs-secondary-color); font-size: .8125rem; }
.nav-attention-empty i { font-size: 2rem; color: var(--bs-success); }
.nav-attention-foot { padding: .75rem 1rem 1rem; border-top: 1px solid var(--ui-hairline); }
.min-w-0 { min-width: 0; }

/* ----------------------------------------------------------------- Cards */

.card {
    --bs-card-border-radius: 1rem;
    --bs-card-inner-border-radius: calc(1rem - 1px);
    --bs-card-border-width: 1px;
    --bs-card-border-color: var(--ui-hairline);
    --bs-card-box-shadow: var(--bs-box-shadow);
    --bs-card-cap-bg: transparent;
    --bs-card-spacer-y: 1.375rem;
    --bs-card-spacer-x: 1.5rem;
    border: 1px solid var(--ui-hairline);
}
.card-header { border-bottom: 0; }
.card-header + .card-body,
.card-header + .card-datatable,
.card-header + .table-responsive { padding-top: .25rem; }
/* A header with a divider: keep the line full width and give the body its own top spacing. */
.card .card-header.border-bottom {
    padding-block: 1.125rem;
    border-bottom: 1px solid var(--ui-hairline) !important;
}
.card .card-header.border-bottom + .card-body,
.card .card-header.border-bottom + form > .card-body:first-child,
.card .card-header.border-bottom + .card-content > .card-body:first-of-type { padding-top: var(--bs-card-spacer-y); }
.card .card-header.border-bottom + .card-datatable,
.card .card-header.border-bottom + .table-responsive { padding-top: 0; }
.card-footer { border-top: 1px solid var(--ui-hairline); background: transparent; }
.card-subtitle { color: var(--bs-secondary-color) !important; }

/* --------------------------------------------------------------- Buttons */

.btn {
    --bs-btn-font-weight: 600;
    --bs-btn-border-radius: .625rem;
    --bs-btn-padding-y: .5625rem;
    --bs-btn-padding-x: 1.125rem;
    letter-spacing: .005em;
    transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn-sm { --bs-btn-border-radius: .5rem; --bs-btn-padding-y: .375rem; --bs-btn-padding-x: .8rem; }
.btn-lg { --bs-btn-border-radius: .75rem; }
.btn:not(:disabled):not(.disabled):active { transform: translateY(1px); }
.btn-primary {
    background-image: linear-gradient(135deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, 0));
    box-shadow: var(--ui-btn-shadow);
}
.btn-primary:hover { box-shadow: 0 10px 22px -8px rgba(var(--bs-primary-rgb), .7); transform: translateY(-1px); }
.btn-success, .btn-danger, .btn-warning, .btn-info { box-shadow: 0 6px 16px -8px rgba(27, 29, 54, .35); }
.btn-outline-primary { border-width: 1.5px; }
.btn-label-secondary, .btn-outline-secondary { border-color: var(--bs-border-color); }
.btn-icon { border-radius: .625rem; }
.btn-check:checked + .btn-outline-primary { box-shadow: var(--ui-btn-shadow); }
.btn-group > .btn { box-shadow: none; }

/* ----------------------------------------------------------------- Forms */

.form-label, .col-form-label {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--bs-heading-color);
    letter-spacing: .005em;
    text-transform: none;
    margin-bottom: .4rem;
}
.form-control,
.form-select,
.input-group-text {
    --bs-input-border-color: var(--ui-input-border);
    background-color: var(--ui-input-bg);
    border-color: var(--ui-input-border);
    border-radius: .625rem;
    min-height: 2.75rem;
    padding-top: .625rem;
    padding-bottom: .625rem;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.form-control-sm, .form-select-sm { min-height: 2.25rem; padding-top: .375rem; padding-bottom: .375rem; border-radius: .5rem; }
textarea.form-control { min-height: 6rem; }
.form-control::placeholder { color: var(--bs-secondary-color); opacity: .75; }
.form-control:hover:not(:focus):not(:disabled),
.form-select:hover:not(:focus):not(:disabled) { border-color: color-mix(in srgb, var(--bs-primary) 35%, var(--ui-input-border)); }
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--bs-primary) !important;
    box-shadow: var(--ui-ring) !important;
}
.form-control:disabled, .form-control[readonly], .form-select:disabled { background-color: var(--ui-surface-muted); }
.input-group-text { color: var(--bs-secondary-color); }
.input-group:focus-within .input-group-text { border-color: var(--bs-primary); }
.input-group-merge .form-control:not(:last-child) { border-right: 0; }
.form-check-input { border-radius: .35em; border-color: var(--ui-input-border); }
.form-check-input:checked { background-color: var(--bs-primary); border-color: var(--bs-primary); box-shadow: 0 4px 10px -4px rgba(var(--bs-primary-rgb), .6); }
.form-switch .form-check-input { border-radius: 2em; }
.form-text { color: var(--bs-secondary-color); }
.invalid-feedback { font-weight: 500; }

/* Select2 */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    background-color: var(--ui-input-bg) !important;
    border-color: var(--ui-input-border) !important;
    border-radius: .625rem !important;
    min-height: 2.75rem;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 2.625rem !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 2.625rem !important; }
.select2-container--default.select2-container--focus .select2-selection,
.select2-container--default.select2-container--open .select2-selection {
    border-color: var(--bs-primary) !important;
    box-shadow: var(--ui-ring) !important;
}
.select2-dropdown { border-color: var(--ui-hairline) !important; border-radius: .75rem !important; box-shadow: var(--bs-box-shadow-lg); overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted { background-color: var(--bs-primary) !important; }
.select2-container--default .select2-selection--multiple .select2-selection__choice { border-radius: 2rem !important; background: var(--bs-primary-bg-subtle) !important; color: var(--bs-primary-text-emphasis) !important; border: 0 !important; }

/* Select2 set up by form-enhance.js: looks like a .form-select, opens a
   floating list that follows the theme. */
.select2-container { max-width: 100%; }
.select2-container.select2-themed { min-width: 10rem; }
.select2-container.select2-themed.select2-inline { min-width: 0; }
div.dt-container .dt-length { display: flex; align-items: center; gap: .5rem; }
div.dt-container .dt-length .select2-container { width: 5.5rem !important; flex: none; }
div.dt-container .dt-length label { margin: 0; }
.select2-dropdown.select2-themed { min-width: 12rem; }
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--bs-heading-color);
    padding-inline-start: .9375rem;
    padding-inline-end: 2.5rem;
    font-weight: 500;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--bs-secondary-color); font-weight: 400; }
.select2-container--default .select2-selection--single .select2-selection__arrow {
    width: 2.25rem;
    top: 0 !important;
    right: .25rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow { right: auto; left: .25rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
    position: static !important;
    border: 0 !important;
    width: .9rem !important;
    height: .9rem !important;
    margin: 0 !important;
    background-color: var(--bs-secondary-color);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform .2s ease, background-color .2s ease;
}
.select2-container--open .select2-selection--single .select2-selection__arrow b { transform: rotate(180deg); background-color: var(--bs-primary); }
.select2-container--default .select2-selection--single .select2-selection__clear { margin-inline-end: 2rem; color: var(--bs-secondary-color); font-size: 1.125rem; }
.select2-container--default .select2-selection:hover { border-color: color-mix(in srgb, var(--bs-primary) 35%, var(--ui-input-border)) !important; }
.select2-container--default.select2-container--disabled .select2-selection { background-color: var(--ui-surface-muted) !important; opacity: .8; }
.select2-container--default .select2-selection--multiple { padding: .3rem .5rem !important; }
.select2-container--default .select2-selection--multiple .select2-selection__choice { padding: .2rem .7rem !important; font-weight: 500; font-size: .8125rem; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { color: inherit !important; opacity: .6; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { opacity: 1; }
.is-invalid + .select2-container .select2-selection { border-color: var(--bs-danger) !important; }

/* Small variant, matches .form-select-sm */
.select2-container.select2-sm .select2-selection--single { min-height: 2.25rem; border-radius: .5rem !important; }
.select2-container.select2-sm .select2-selection--single .select2-selection__rendered { line-height: 2.125rem !important; font-size: .8125rem; padding-inline-start: .75rem; }
.select2-container.select2-sm .select2-selection--single .select2-selection__arrow { height: 2.125rem !important; }

.select2-dropdown {
    background: var(--ui-surface) !important;
    color: var(--bs-body-color);
    border: 1px solid var(--ui-hairline) !important;
    padding: .375rem;
    animation: uiDropIn .16s cubic-bezier(.2, .8, .2, 1);
}
.select2-container--open .select2-dropdown--below { margin-top: .375rem; border-radius: .75rem !important; }
.select2-container--open .select2-dropdown--above { margin-top: -.375rem; border-radius: .75rem !important; }
.select2-search--dropdown { padding: .125rem .125rem .5rem; position: relative; }
.select2-search--dropdown::before {
    content: "";
    position: absolute;
    inset-inline-start: .875rem;
    top: calc(50% - .1875rem);
    width: .9rem;
    height: .9rem;
    transform: translateY(-50%);
    background-color: var(--bs-secondary-color);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
    pointer-events: none;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
    background: var(--ui-input-bg);
    color: var(--bs-heading-color);
    border: 1px solid var(--ui-input-border) !important;
    border-radius: .5rem;
    padding: .5rem .75rem .5rem 2.25rem;
    font-size: .875rem;
    outline: 0;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus { border-color: var(--bs-primary) !important; box-shadow: var(--ui-ring); }
.select2-container--default .select2-search--dropdown .select2-search__field::placeholder { color: var(--bs-secondary-color); }
.select2-results > .select2-results__options { max-height: 16rem; }
.select2-container--default .select2-results__option {
    border-radius: .5rem;
    padding: .5rem .75rem;
    margin: 1px 0;
    color: var(--bs-heading-color);
    font-size: .875rem;
}
.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option--selected {
    background-color: var(--bs-primary-bg-subtle) !important;
    color: var(--bs-primary) !important;
    font-weight: 600;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
}
.select2-container--default .select2-results__option[aria-disabled=true] { color: var(--bs-secondary-color); opacity: .6; }
.select2-container--default .select2-results__message { color: var(--bs-secondary-color); text-align: center; padding: .75rem; }
.select2-container--default .select2-results__group { color: var(--bs-secondary-color); font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; padding: .5rem .75rem .25rem; }
/* Above offcanvas drawers and modals */
.select2-container--open { z-index: 1091; }

/* Date and time pickers (Flatpickr) */
.form-control.fp-alt,
.form-control.fp-alt[readonly] {
    cursor: pointer;
    background-color: var(--ui-input-bg);
    padding-inline-end: 2.5rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a8fa6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16.5' rx='3'/%3E%3Cpath d='M16 2.5v4M8 2.5v4M3 10h18'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .875rem center;
    background-size: 1.05rem;
}
.form-control.fp-alt.form-control-sm { background-position: right .7rem center; background-size: .95rem; padding-inline-end: 2.1rem; }
.form-control.fp-alt.fp-time {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a8fa6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}
.form-control.fp-alt.active { border-color: var(--bs-primary) !important; box-shadow: var(--ui-ring) !important; }

.flatpickr-calendar.fp-themed {
    background: var(--ui-surface);
    border: 1px solid var(--ui-hairline);
    border-radius: 1rem;
    box-shadow: var(--bs-box-shadow-lg);
    padding: .75rem;
    inline-size: 19rem;
    font-family: var(--bs-body-font-family);
    margin-top: .375rem;
}
.flatpickr-calendar.fp-themed.arrowTop::before,
.flatpickr-calendar.fp-themed.arrowTop::after,
.flatpickr-calendar.fp-themed.arrowBottom::before,
.flatpickr-calendar.fp-themed.arrowBottom::after { display: none; }
.flatpickr-calendar.fp-themed.animate.open { animation: uiDropIn .18s cubic-bezier(.2, .8, .2, 1); }
.flatpickr-calendar.fp-themed .flatpickr-months { align-items: center; margin-bottom: .5rem; }
.flatpickr-calendar.fp-themed .flatpickr-month { background: transparent; block-size: 2.25rem; }
.flatpickr-calendar.fp-themed .flatpickr-current-month {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--bs-heading-color);
    padding-top: .375rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .25rem;
}
.flatpickr-calendar.fp-themed .flatpickr-current-month .cur-month { font-weight: 700; margin: 0; }
.flatpickr-calendar.fp-themed .flatpickr-current-month input.cur-year { font-weight: 700; color: var(--bs-heading-color); }
.flatpickr-calendar.fp-themed .flatpickr-prev-month,
.flatpickr-calendar.fp-themed .flatpickr-next-month {
    inset-block-start: .25rem;
    inline-size: 2rem;
    block-size: 2rem;
    border-radius: .625rem;
    color: var(--bs-heading-color);
    background-color: var(--ui-surface-muted);
    border: 1px solid var(--ui-hairline);
    transition: background-color .15s ease, color .15s ease;
}
.flatpickr-calendar.fp-themed .flatpickr-prev-month { inset-inline-start: .25rem; }
.flatpickr-calendar.fp-themed .flatpickr-next-month { inset-inline-end: .25rem; }
.flatpickr-calendar.fp-themed .flatpickr-prev-month:hover,
.flatpickr-calendar.fp-themed .flatpickr-next-month:hover { background-color: var(--bs-primary); color: #fff; }
.flatpickr-calendar.fp-themed .flatpickr-prev-month i,
.flatpickr-calendar.fp-themed .flatpickr-next-month i { font-size: 1.125rem; }
.flatpickr-calendar.fp-themed .flatpickr-weekdays { background: transparent; margin-bottom: .25rem; }
.flatpickr-calendar.fp-themed span.flatpickr-weekday {
    background: transparent;
    color: var(--bs-secondary-color);
    font-size: .6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.flatpickr-calendar.fp-themed .flatpickr-days,
.flatpickr-calendar.fp-themed .dayContainer { inline-size: 100%; min-inline-size: 100%; max-inline-size: 100%; }
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day {
    border-radius: .625rem;
    color: var(--bs-heading-color);
    font-size: .8125rem;
    font-weight: 500;
    max-inline-size: none;
    block-size: 2.375rem;
    line-height: 2.375rem;
    border: 0;
    margin-block: 1px;
    transition: background-color .12s ease, color .12s ease;
}
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day:hover,
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day:focus {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day.prevMonthDay,
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day.nextMonthDay { color: var(--bs-secondary-color); opacity: .55; }
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day.today {
    border: 0;
    box-shadow: inset 0 0 0 1.5px rgba(var(--bs-primary-rgb), .55);
    color: var(--bs-primary);
    background: transparent;
    font-weight: 700;
}
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day.selected,
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day.selected:hover,
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day.selected:focus {
    background: var(--bs-primary);
    color: #fff;
    box-shadow: var(--ui-btn-shadow);
    font-weight: 700;
    opacity: 1;
}
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar.fp-themed .flatpickr-days .flatpickr-day.flatpickr-disabled:hover {
    color: var(--bs-secondary-color);
    background: transparent;
    opacity: .35;
    cursor: not-allowed;
}
.flatpickr-calendar.fp-themed .numInputWrapper:hover { background: transparent; }
.flatpickr-calendar.fp-themed .flatpickr-monthDropdown-months,
.flatpickr-calendar.fp-themed .numInputWrapper input { color: var(--bs-heading-color); }

/* Time part */
.flatpickr-calendar.fp-themed.hasTime:not(.noCalendar) .flatpickr-time { border-top: 1px solid var(--ui-hairline); margin-top: .5rem; padding-top: .5rem; }
.flatpickr-calendar.fp-themed.noCalendar { inline-size: 13rem; padding: .5rem; }
.flatpickr-calendar.fp-themed .flatpickr-time { block-size: auto; max-block-size: none; line-height: 2.5rem; gap: .25rem; }
.flatpickr-calendar.fp-themed .flatpickr-time .numInputWrapper,
.flatpickr-calendar.fp-themed .flatpickr-time .flatpickr-am-pm {
    border-radius: .625rem;
    background: var(--ui-surface-muted);
    block-size: 2.5rem;
}
.flatpickr-calendar.fp-themed .flatpickr-time input,
.flatpickr-calendar.fp-themed .flatpickr-time .flatpickr-am-pm {
    color: var(--bs-heading-color);
    font-weight: 700;
    font-size: 1rem;
}
.flatpickr-calendar.fp-themed .flatpickr-time .flatpickr-time-separator { color: var(--bs-secondary-color); font-weight: 700; line-height: 2.5rem; }
.flatpickr-calendar.fp-themed .flatpickr-time input,
.flatpickr-calendar.fp-themed .flatpickr-time input:hover,
.flatpickr-calendar.fp-themed .flatpickr-time input:focus { background: transparent; inline-size: 100%; }
.flatpickr-calendar.fp-themed .flatpickr-time .numInputWrapper span { display: none; }
.flatpickr-calendar.fp-themed .flatpickr-time input::selection { background: transparent; }
.flatpickr-calendar.fp-themed .flatpickr-time .numInputWrapper:hover,
.flatpickr-calendar.fp-themed .flatpickr-time .numInputWrapper:focus-within,
.flatpickr-calendar.fp-themed .flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-calendar.fp-themed .flatpickr-time .flatpickr-am-pm:focus { background: var(--bs-primary-bg-subtle); }
.flatpickr-calendar.fp-themed .flatpickr-time .numInputWrapper:focus-within input,
.flatpickr-calendar.fp-themed .flatpickr-time .flatpickr-am-pm:focus { color: var(--bs-primary); }

@keyframes uiDropIn {
    from { opacity: 0; transform: translateY(-6px) scale(.98); }
    to { opacity: 1; transform: none; }
}

/* --------------------------------------------------- Modals and drawers */

.modal-backdrop.show,
.offcanvas-backdrop.show { opacity: 1; background: var(--ui-backdrop); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.modal-backdrop, .offcanvas-backdrop { background: var(--ui-backdrop); }
.modal-content {
    border: 1px solid var(--ui-hairline);
    border-radius: 1.25rem;
    box-shadow: var(--bs-box-shadow-lg), 0 0 0 1px rgba(var(--bs-primary-rgb), .04);
    overflow: hidden;
}
.modal-header { border-bottom: 0; padding: 1.5rem 1.5rem .5rem; }
.modal-body { padding: 1rem 1.5rem; }
.modal-footer { border-top: 0; padding: .75rem 1.5rem 1.5rem; gap: .5rem; }
.modal-footer > * { margin: 0; }
.modal.fade .modal-dialog { transform: translateY(16px) scale(.98); transition: transform .25s cubic-bezier(.2, .8, .2, 1); }
.modal.show .modal-dialog { transform: none; }
.modal .btn-close,
.offcanvas .btn-close {
    background-size: .7rem;
    width: 2rem; height: 2rem; padding: 0;
    border-radius: .625rem;
    background-color: var(--ui-surface-muted);
    opacity: .8;
    transform: none !important;
    box-shadow: none !important;
}
.modal .btn-close:hover, .offcanvas .btn-close:hover { opacity: 1; background-color: rgba(var(--bs-danger-rgb), .12); }

.offcanvas {
    --bs-offcanvas-width: 30rem;
    border: 0 !important;
    background: var(--ui-surface);
    box-shadow: var(--bs-box-shadow-lg);
}
.offcanvas.offcanvas-end { border-start-start-radius: 1.25rem; border-end-start-radius: 1.25rem; }
.offcanvas.offcanvas-start { border-start-end-radius: 1.25rem; border-end-end-radius: 1.25rem; }
.offcanvas-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--ui-hairline);
    background:
        linear-gradient(120deg, rgba(var(--bs-primary-rgb), .08), rgba(13, 148, 136, .05)),
        var(--ui-surface);
}
.offcanvas-body { padding: 1.5rem; }

/* ---------------------------------------------------------------- Tables */

.table {
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--ui-hairline);
    --bs-table-hover-bg: rgba(var(--bs-primary-rgb), .035);
    --bs-table-striped-bg: var(--ui-surface-muted);
}
.table > :not(caption) > * > * { padding: .9rem 1.25rem; }
.table > thead > tr > th,
.table thead th {
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--bs-secondary-color) !important;
    background: var(--ui-surface-muted) !important;
    border-bottom: 1px solid var(--ui-hairline) !important;
    white-space: nowrap;
}
.table > thead > tr > th:first-child { border-start-start-radius: .625rem; }
.table > thead > tr > th:last-child { border-start-end-radius: .625rem; }
.table > tbody > tr { transition: background-color .15s ease; }
.table > tbody > tr:hover > * { background-color: rgba(var(--bs-primary-rgb), .035); }
.table-bordered > :not(caption) > * > * { border-color: var(--ui-hairline); }

/* DataTables */
div.dt-container .dt-search input,
div.dt-container .dt-length select {
    background-color: var(--ui-input-bg);
    border: 1px solid var(--ui-input-border);
    border-radius: .625rem;
    min-height: 2.5rem;
}
div.dt-container .dt-search input { padding-inline-start: 2.25rem; min-width: 15rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238a8fa6' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: .75rem center; }
div.dt-container .dt-search input:focus,
div.dt-container .dt-length select:focus { border-color: var(--bs-primary); box-shadow: var(--ui-ring); outline: 0; }
div.dt-container .dt-info { color: var(--bs-secondary-color); font-size: .8125rem; }
div.dt-container .dt-paging .pagination { gap: .3rem; }
div.dt-container table.dataTable { border-collapse: separate !important; border-spacing: 0; }
div.dt-container table.dataTable > thead > tr > th { border-top: 0 !important; }
div.dt-container .dt-buttons .btn { border-radius: .625rem !important; }
div.dt-container div.dt-processing > div:last-child > div { background: var(--bs-primary); }
.card-datatable .dt-container { padding-bottom: .5rem; }

/* ------------------------------------------------------------ Pagination */

.pagination { --bs-pagination-border-radius: .625rem; gap: .3rem; }
.page-link {
    border-radius: .625rem !important;
    border: 1px solid transparent;
    min-width: 2.25rem;
    text-align: center;
    font-weight: 600;
    color: var(--bs-body-color);
    background: var(--ui-surface-muted);
}
.page-link:hover { background: rgba(var(--bs-primary-rgb), .1); color: var(--bs-primary); }
.page-item.active .page-link,
.page-item.active > .page-link {
    background: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #fff !important;
    box-shadow: var(--ui-btn-shadow);
}

/* ------------------------------------------- Badges, alerts, tabs, misc */

.badge { font-weight: 600; letter-spacing: .01em; padding: .42em .78em; border-radius: 2rem; }
.badge.rounded-0, .badge.badge-square { border-radius: .375rem; }
.badge-dot { padding: 0; }

.alert {
    border-radius: .875rem;
    border: 1px solid transparent;
    border-inline-start-width: 4px;
    padding: .9rem 1.1rem;
}
.alert-primary { border-color: rgba(var(--bs-primary-rgb), .25); border-inline-start-color: var(--bs-primary); }
.alert-success { border-color: rgba(var(--bs-success-rgb), .25); border-inline-start-color: var(--bs-success); }
.alert-warning { border-color: rgba(var(--bs-warning-rgb), .3); border-inline-start-color: var(--bs-warning); }
.alert-danger { border-color: rgba(var(--bs-danger-rgb), .25); border-inline-start-color: var(--bs-danger); }
.alert-info { border-color: rgba(var(--bs-info-rgb), .25); border-inline-start-color: var(--bs-info); }

.nav-tabs { border-bottom: 1px solid var(--ui-hairline); gap: .25rem; }
.nav-tabs .nav-link { border: 0; border-radius: .625rem .625rem 0 0; font-weight: 600; color: var(--bs-secondary-color); position: relative; }
.nav-tabs .nav-link.active { color: var(--bs-primary); background: transparent; }
.nav-tabs .nav-link.active::after { content: ''; position: absolute; inset-inline: .75rem; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--bs-primary); }
.nav-pills { gap: .35rem; }
.nav-pills .nav-link { border-radius: .625rem; font-weight: 600; }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background: var(--bs-primary); box-shadow: var(--ui-btn-shadow); }

/* Tab bar: pills sitting inside one contained strip (e.g. Credentials & Settings). */
.nav-pills.nav-bar {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    background: var(--ui-surface);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-lg);
    box-shadow: var(--bs-box-shadow-sm);
    padding: .3125rem;
    gap: .125rem;
}
.nav-pills.nav-bar::-webkit-scrollbar { display: none; }
.nav-pills.nav-bar .nav-link {
    white-space: nowrap;
    color: var(--bs-body-color);
    background: transparent;
    font-size: .875rem;
    padding: .5rem .8rem;
    transition: background-color .15s ease, color .15s ease;
}
.nav-pills.nav-bar .nav-link .bx { opacity: .7; }
.nav-pills.nav-bar .nav-link:hover:not(.active) { background: var(--ui-surface-muted); color: var(--bs-heading-color); }
.nav-pills.nav-bar .nav-link.active { background: var(--bs-primary); color: #fff; box-shadow: var(--ui-btn-shadow); }
.nav-pills.nav-bar .nav-link.active .bx { opacity: 1; }
}

.dropdown-menu {
    --bs-dropdown-border-radius: .875rem;
    --bs-dropdown-border-color: var(--ui-hairline);
    --bs-dropdown-box-shadow: var(--bs-box-shadow-lg);
    --bs-dropdown-link-active-bg: rgba(var(--bs-primary-rgb), .1);
    --bs-dropdown-link-active-color: var(--bs-primary);
    padding: .4rem;
    border: 1px solid var(--ui-hairline);
    animation: uiPop .16s ease-out;
}
.dropdown-item { border-radius: .5rem; padding: .5rem .75rem; font-weight: 500; }
.dropdown-item:hover, .dropdown-item:focus { background: rgba(var(--bs-primary-rgb), .08); color: var(--bs-primary); }
@keyframes uiPop { from { opacity: 0; transform: translateY(-4px) scale(.98); } to { opacity: 1; transform: none; } }

.progress { --bs-progress-border-radius: 2rem; --bs-progress-bg: rgba(var(--bs-primary-rgb), .1); }
.progress-bar { border-radius: 2rem; }
.list-group { --bs-list-group-border-color: var(--ui-hairline); --bs-list-group-border-radius: .875rem; }
.list-group-item-action:hover { background: rgba(var(--bs-primary-rgb), .05); }
.accordion { --bs-accordion-border-color: var(--ui-hairline); --bs-accordion-border-radius: .875rem; --bs-accordion-active-bg: rgba(var(--bs-primary-rgb), .06); --bs-accordion-active-color: var(--bs-primary); }
.tooltip { --bs-tooltip-bg: #1b1d36; --bs-tooltip-border-radius: .5rem; --bs-tooltip-padding-x: .65rem; --bs-tooltip-padding-y: .35rem; font-weight: 500; }
.popover { --bs-popover-border-radius: .875rem; --bs-popover-border-color: var(--ui-hairline); --bs-popover-box-shadow: var(--bs-box-shadow-lg); }
.avatar .avatar-initial { font-weight: 700; }
hr { border-color: var(--ui-hairline); opacity: 1; }

/* Page title rows used across index pages */
.content-wrapper > .container-xxl > h4:first-child,
.content-wrapper > .container-xxl > .d-flex:first-child h4 { font-weight: 800; letter-spacing: -.02em; }

/* --------------------------------------------------- Toasts / SweetAlert */

.bs-toast.toast { border-radius: .875rem; border: 0; box-shadow: var(--bs-box-shadow-lg); overflow: hidden; }
.bs-toast .toast-header { border-bottom: 1px solid rgba(255, 255, 255, .15); }

.swal2-popup {
    border-radius: 1.25rem !important;
    font-family: var(--bs-body-font-family) !important;
    background: var(--ui-surface) !important;
    color: var(--bs-body-color) !important;
    box-shadow: var(--bs-box-shadow-lg) !important;
    padding: 1.75rem 1.5rem 1.5rem !important;
}
.swal2-title { color: var(--bs-heading-color) !important; font-weight: 700 !important; letter-spacing: -.01em; font-size: 1.35rem !important; }
.swal2-html-container { color: var(--bs-body-color) !important; }
.swal2-actions { gap: .5rem; }
.swal2-styled { border-radius: .625rem !important; font-weight: 600 !important; padding: .6rem 1.25rem !important; margin: 0 !important; }
.swal2-styled.swal2-confirm { background: var(--bs-primary) !important; box-shadow: var(--ui-btn-shadow) !important; }
.swal2-styled.swal2-cancel { background: var(--ui-surface-muted) !important; color: var(--bs-heading-color) !important; }
.swal2-styled.swal2-deny { background: var(--bs-danger) !important; }
.swal2-styled:focus { box-shadow: var(--ui-ring) !important; }
.swal2-container.swal2-backdrop-show { background: var(--ui-backdrop) !important; backdrop-filter: blur(4px); }
.swal2-icon { transform: scale(.85); }


/* ------------------------------------------------------- Sign-in pages */

body:has(.authentication-wrapper) {
    background:
        radial-gradient(700px 420px at 12% 18%, rgba(124, 58, 237, .45), transparent 65%),
        radial-gradient(640px 420px at 88% 82%, rgba(13, 148, 136, .38), transparent 65%),
        linear-gradient(135deg, #0f0e2b 0%, #1e1b4b 50%, #23205a 100%);
    background-attachment: fixed;
    min-height: 100vh;
}
body .authentication-wrapper.authentication-basic .authentication-inner::before,
body .authentication-wrapper.authentication-basic .authentication-inner::after { display: none; }
body .authentication-wrapper .card {
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 1.5rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 30px 80px -20px rgba(5, 4, 30, .6), 0 0 0 1px rgba(255, 255, 255, .06);
    backdrop-filter: blur(10px);
}
[data-bs-theme=dark] body .authentication-wrapper .card,
body[data-bs-theme=dark] .authentication-wrapper .card { background: rgba(27, 28, 56, .94); border-color: rgba(255, 255, 255, .08); }
body .authentication-wrapper .card .card-body { padding: 2.5rem 2.25rem; }
body .authentication-wrapper .app-brand { margin-bottom: 1.75rem; }
body .authentication-wrapper .app-brand-link { gap: .75rem !important; }
body .authentication-wrapper .app-brand-text { font-size: 1.5rem; letter-spacing: -.02em; }
body .authentication-wrapper h4 { font-weight: 800; letter-spacing: -.02em; }
body .authentication-wrapper .btn-primary { padding-block: .75rem; font-size: 1rem; }

/* ---------------------------------------------------------------- Footer */

.content-footer .footer-container { color: var(--bs-secondary-color); font-size: .8125rem; }

@media (prefers-reduced-motion: reduce) {
    .btn, .layout-menu .menu-link, .modal.fade .modal-dialog, .dropdown-menu { transition: none !important; animation: none !important; }
}
