:root,
[data-bs-theme="light"] {
    --ebs-blue: #07529b;
    --ebs-blue-rgb: 7, 82, 155;
    --ebs-blue-deep: #043866;
    --ebs-blue-ink: #0c2745;
    --ebs-blue-soft: #edf4fb;
    --ebs-green: #1aac4d;
    --ebs-green-rgb: 26, 172, 77;
    --ebs-green-deep: #137439;
    --ebs-green-soft: #e8f8ee;
    --ebs-amber: #d99a2b;
    --ebs-amber-rgb: 217, 154, 43;
    --ebs-amber-soft: #fcf3df;
    --ebs-slate-900: #0f1d32;
    --ebs-slate-850: #132543;
    --ebs-slate-800: #1b3155;
    --ebs-slate-100: #eef3f8;
    --ebs-slate-50: #f7f9fc;

    --bs-primary: var(--ebs-blue);
    --bs-primary-rgb: var(--ebs-blue-rgb);
    --bs-primary-text-emphasis: var(--ebs-blue-deep);
    --bs-primary-bg-subtle: var(--ebs-blue-soft);
    --bs-primary-border-subtle: #a8c5e0;
    --bs-link-color: var(--ebs-blue);
    --bs-link-color-rgb: var(--ebs-blue-rgb);
    --bs-link-hover-color: var(--ebs-blue-deep);
    --bs-link-hover-color-rgb: 4, 56, 102;
    --bs-focus-ring-color: rgba(7, 82, 155, 0.16);

    --bs-success: var(--ebs-green);
    --bs-success-rgb: var(--ebs-green-rgb);
    --bs-success-text-emphasis: var(--ebs-green-deep);
    --bs-success-bg-subtle: var(--ebs-green-soft);
    --bs-success-border-subtle: #aadfbc;
    --bs-warning: var(--ebs-amber);
    --bs-warning-rgb: var(--ebs-amber-rgb);
    --bs-warning-text-emphasis: #8d6112;
    --bs-warning-bg-subtle: var(--ebs-amber-soft);
    --bs-warning-border-subtle: #efd39b;
    --bs-form-valid-color: var(--ebs-green);
    --bs-form-valid-border-color: var(--ebs-green);
    --bs-body-bg: #f4f7fb;
    --bs-body-bg-rgb: 244, 247, 251;
    --bs-tertiary-bg: #f0f4f9;
    --bs-tertiary-bg-rgb: 240, 244, 249;
    --bs-border-color: #d9e2ee;
    --bs-border-color-translucent: rgba(12, 39, 69, 0.08);
    --bs-box-shadow: 0 18px 40px rgba(12, 39, 69, 0.08);
    --bs-box-shadow-sm: 0 8px 22px rgba(12, 39, 69, 0.05);
    --bs-box-shadow-lg: 0 24px 64px rgba(12, 39, 69, 0.12);
}

[data-bs-theme="dark"] {
    --bs-primary: #4f96d8;
    --bs-primary-rgb: 79, 150, 216;
    --bs-primary-text-emphasis: #b8daf5;
    --bs-primary-bg-subtle: #0f2741;
    --bs-primary-border-subtle: #326b9c;
    --bs-link-color: #84bae9;
    --bs-link-color-rgb: 132, 186, 233;
    --bs-link-hover-color: #b8daf5;
    --bs-link-hover-color-rgb: 184, 218, 245;
    --bs-focus-ring-color: rgba(132, 186, 233, 0.22);

    --bs-success: #38c167;
    --bs-success-rgb: 56, 193, 103;
    --bs-success-text-emphasis: #a7e3ba;
    --bs-success-bg-subtle: #0f2d1b;
    --bs-success-border-subtle: #2c8047;
    --bs-warning: #e3ab45;
    --bs-warning-rgb: 227, 171, 69;
    --bs-warning-text-emphasis: #f3d7a0;
    --bs-warning-bg-subtle: #3d2c10;
    --bs-warning-border-subtle: #9e7428;
    --bs-form-valid-color: #38c167;
    --bs-form-valid-border-color: #38c167;
}

body {
    background: #f5f5f5;
    color: #14263f;
}

[data-bs-theme="dark"] body {
    background:
        radial-gradient(circle at top left, rgba(79, 150, 216, 0.15), transparent 24%),
        radial-gradient(circle at right top, rgba(56, 193, 103, 0.1), transparent 20%),
        #0c1427;
}

.text-primary {
    color: var(--ebs-blue) !important;
}

.sidebar .sidebar-header .sidebar-brand span,
.nobleui-logo span {
    color: var(--ebs-green) !important;
}

.text-success {
    color: var(--ebs-green) !important;
}

.page-wrapper .page-content {
    position: relative;
}

.page-wrapper .page-content::before {
    display: none;
}

.sidebar {
    background:
        linear-gradient(180deg, rgba(19, 37, 67, 0.98), rgba(15, 29, 50, 0.98)),
        var(--ebs-slate-900);
    box-shadow: 16px 0 44px rgba(10, 22, 41, 0.18);
}

.sidebar .sidebar-header {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(7, 82, 155, 0.08));
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.sidebar .sidebar-header::after {
    display: none;
}

.sidebar .sidebar-header .sidebar-brand {
    letter-spacing: 0.01em;
}

.sidebar .sidebar-header .sidebar-brand,
.sidebar .sidebar-header .sidebar-toggler span {
    color: #ffffff;
}

.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-category {
    color: rgba(255, 255, 255, 0.58);
    letter-spacing: 0.08em;
    font-weight: 700;
}

.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link {
    color: rgba(234, 241, 250, 0.82);
    border-radius: 12px;
    margin: 4px 12px;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link .link-icon,
.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link .link-title {
    color: inherit;
    transition: inherit;
}

.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link:hover {
    background: rgba(7, 82, 155, 0.22);
    color: #ffffff;
    transform: translateX(2px);
}

.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link.active {
    background:
        linear-gradient(90deg, rgba(7, 82, 155, 0.3), rgba(7, 82, 155, 0.14)),
        rgba(255, 255, 255, 0.03);
    color: #ffffff;
    box-shadow: inset 0 0 0 1px rgba(120, 177, 228, 0.18);
}

.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link.active::before,
.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link:hover::before {
    display: none;
}

.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link.active .link-icon {
    color: #6ec48e;
}

.sidebar-dark .sidebar .sidebar-body .nav .nav-item .nav-link:hover .link-icon {
    color: #92c8f0;
}

.page-wrapper .navbar {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(237, 244, 251, 0.9));
    border-bottom: 1px solid rgba(7, 82, 155, 0.1);
    box-shadow: 0 10px 26px rgba(12, 39, 69, 0.05);
    backdrop-filter: blur(10px);
}

.page-wrapper .navbar .navbar-content h6 {
    color: var(--ebs-blue-ink);
}

.page-wrapper .navbar .navbar-content small {
    color: #567089 !important;
}

.logo-mini-wrapper {
    padding: 0.45rem;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(7, 82, 155, 0.12), rgba(26, 172, 77, 0.1));
    box-shadow: inset 0 0 0 1px rgba(7, 82, 155, 0.08);
}

.card,
.dropdown-menu,
.modal-content,
.offcanvas,
.list-group,
.toast {
    border-color: rgba(12, 39, 69, 0.08);
    box-shadow: 0 18px 44px rgba(12, 39, 69, 0.08);
}

.card,
.dropdown-menu,
.modal-content {
    border-radius: 18px;
}

.card-header,
.modal-header {
    background: linear-gradient(180deg, rgba(7, 82, 155, 0.04), rgba(255, 255, 255, 0));
    border-bottom-color: rgba(12, 39, 69, 0.08);
}

.table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(7, 82, 155, 0.025);
    --bs-table-hover-bg: rgba(7, 82, 155, 0.045);
    border-color: rgba(12, 39, 69, 0.08);
}

.table thead th {
    color: var(--ebs-blue-ink);
    font-weight: 700;
    background: rgba(7, 82, 155, 0.04);
    border-bottom-color: rgba(7, 82, 155, 0.08);
}

.table-responsive {
    margin-bottom: 0;
}

.app-table-shell {
    border: 1px solid rgba(12, 39, 69, 0.08);
    border-radius: 18px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(10px);
}

.app-data-table {
    margin-bottom: 0;
}

.app-data-table thead th {
    white-space: nowrap;
}

.app-data-table tbody td {
    padding-top: 1.1rem;
    padding-bottom: 1.1rem;
    vertical-align: top;
}

.app-data-table tbody tr:last-child td {
    border-bottom: 0;
}

.app-table-empty {
    padding: 2.2rem 1rem !important;
    text-align: center;
}

.app-table-title {
    display: block;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
    color: #152a43;
}

a.app-table-title {
    text-decoration: none;
}

a.app-table-title:hover {
    color: var(--ebs-blue);
}

.app-table-subtitle {
    display: block;
    margin-top: 0.28rem;
    color: #637992 !important;
    font-size: 0.82rem;
    line-height: 1.45;
}

.app-table-meta {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #7a8ea5;
}

.app-table-count {
    font-weight: 700;
    color: var(--ebs-blue-ink);
}

.app-ellipsis {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-table-actions {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.action-icon-btn {
    align-items: center;
    display: inline-flex;
    height: 38px;
    justify-content: center;
    padding: 0;
    width: 38px;
}

.app-chip,
.app-chip-link {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.28rem 0.7rem;
    font-size: 0.73rem;
    font-weight: 600;
    line-height: 1.2;
}

.app-chip {
    background: rgba(12, 39, 69, 0.06);
    color: #53687f;
}

.app-chip-link {
    background: rgba(7, 82, 155, 0.1);
    color: #07529b;
    text-decoration: none;
}

.app-chip-link:hover {
    background: rgba(7, 82, 155, 0.16);
    color: var(--ebs-blue-deep);
}

.app-chip-dark {
    background: rgba(12, 39, 69, 0.1);
    color: #173251;
}

.app-chip-warning {
    background: rgba(217, 154, 43, 0.14);
    color: #7a5615;
}

.app-chip-success {
    background: rgba(26, 172, 77, 0.14);
    color: #137439;
}

.btn {
    border-radius: 10px;
}

.btn-primary {
    background: linear-gradient(135deg, var(--ebs-blue), #0b66ba);
    border-color: var(--ebs-blue);
    box-shadow: 0 12px 24px rgba(7, 82, 155, 0.18);
}

.btn-primary:hover,
.btn-primary:focus {
    background: linear-gradient(135deg, #0860b3, #0d73cf);
    border-color: #0860b3;
    box-shadow: 0 16px 30px rgba(7, 82, 155, 0.22);
}

.btn-success,
.table .badge.bg-success,
.alert-success {
    background: linear-gradient(135deg, var(--ebs-green), #20c05a) !important;
    border-color: var(--ebs-green) !important;
    color: #ffffff !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.page-item.active .page-link {
    background-color: var(--ebs-blue);
    border-color: var(--ebs-blue);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
    background-color: var(--ebs-amber-soft);
    border-color: #d2b57e;
    color: #7a5615;
}

.page-link {
    color: var(--ebs-blue);
}

.badge.bg-warning,
.alert-warning {
    background-color: var(--ebs-amber-soft) !important;
    color: #8d6112 !important;
    border-color: #efd39b !important;
}

.form-control,
.form-select,
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single {
    border-color: #d5deea;
    border-radius: 10px;
}

.form-control:focus,
.form-select:focus,
.select2-container--focus.select2-container--default .select2-selection--multiple,
.select2-container--focus.select2-container--default .select2-selection--single {
    border-color: rgba(7, 82, 155, 0.36);
    box-shadow: 0 0 0 0.2rem rgba(7, 82, 155, 0.1);
}

.form-check-input:checked {
    background-color: var(--ebs-green);
    border-color: var(--ebs-green);
}

.progress,
.table-responsive,
.preloader,
.swal2-popup,
.flatpickr-calendar {
    border-color: rgba(12, 39, 69, 0.08);
}

.dropdown-item:active,
.dropdown-item.active {
    background-color: rgba(7, 82, 155, 0.08);
    color: var(--ebs-blue-deep);
}

.nav-tabs .nav-link.active,
.nav-pills .nav-link.active {
    background-color: var(--ebs-blue);
    border-color: var(--ebs-blue);
}

.breadcrumb .breadcrumb-item.active,
.text-muted {
    color: #667b92 !important;
}

.auth-page .card {
    overflow: hidden;
    border: 1px solid rgba(7, 82, 155, 0.1);
    box-shadow: 0 26px 68px rgba(12, 39, 69, 0.14);
}

.auth-side-wrapper {
    position: relative;
    isolation: isolate;
}

.auth-side-wrapper::after {
    display: none;
}

.auth-side-wrapper::before {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 18px;
    z-index: 1;
}

.auth-form-wrapper {
    background: #ffffff;
}

.wizard > .steps .current a,
.wizard > .steps .current a:active,
.wizard > .steps .current a:hover {
    background-color: var(--ebs-blue);
}

.wizard > .steps .done a,
.wizard > .steps .done a:active,
.wizard > .steps .done a:hover {
    background-color: rgba(7, 82, 155, 0.12);
    color: var(--ebs-blue);
    border-color: var(--ebs-blue);
}

.theme-switcher-wrapper label .box {
    background: rgba(7, 82, 155, 0.12);
}

.theme-switcher-wrapper label .box .ball {
    background: var(--ebs-blue);
}

@media (max-width: 991.98px) {
    .sidebar {
        box-shadow: 12px 0 30px rgba(10, 22, 41, 0.26);
    }

    .page-wrapper .navbar {
        background: rgba(255, 255, 255, 0.97);
    }
}