/* ============================================
   Campa theme (the default): only the look, on top of Bootstrap 5.3 and campa-base.css.
   Clean admin style: soft cards on a blue-gray page, Poppins headings, brand blue.
   ============================================ */

:root,
[data-bs-theme="light"] {
    --campa-surface: #ffffff;
    --campa-heading: #344050;
    --campa-card-shadow: 0 7px 14px 0 rgba(65, 69, 88, 0.1), 0 3px 6px 0 rgba(0, 0, 0, 0.07);
    --campa-control-shadow: 0 0 0 1px rgba(43, 45, 80, 0.1), 0 2px 5px 0 rgba(43, 45, 80, 0.08), 0 1px 1.5px 0 rgba(0, 0, 0, 0.07), 0 1px 2px 0 rgba(0, 0, 0, 0.08);
    --campa-control-shadow-hover: 0 0 0 1px rgba(43, 45, 80, 0.1), 0 2px 5px 0 rgba(43, 45, 80, 0.1), 0 3px 9px 0 rgba(43, 45, 80, 0.08), 0 1px 1.5px 0 rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.08);
    --campa-nav-link: #5e6e82;
    --campa-nav-link-hover: #232e3c;

    --bs-body-bg: #edf2f9;
    --bs-body-bg-rgb: 237, 242, 249;
    --bs-body-color: #5e6e82;
    --bs-body-color-rgb: 94, 110, 130;
    --bs-emphasis-color: #232e3c;
    --bs-emphasis-color-rgb: 35, 46, 60;
    --bs-secondary-color: #748194;
    --bs-secondary-color-rgb: 116, 129, 148;
    --bs-tertiary-color: #9da9bb;
    --bs-tertiary-color-rgb: 157, 169, 187;
    --bs-secondary-bg: #d8e2ef;
    --bs-secondary-bg-rgb: 216, 226, 239;
    --bs-tertiary-bg: #f9fafd;
    --bs-tertiary-bg-rgb: 249, 250, 253;
    --bs-border-color: #d8e2ef;
    --bs-success: #00b86b;
    --bs-success-rgb: 0, 184, 107;
    --bs-info: #27bcfd;
    --bs-info-rgb: 39, 188, 253;
    --bs-warning: #f5803e;
    --bs-warning-rgb: 245, 128, 62;
    --bs-danger: #e63757;
    --bs-danger-rgb: 230, 55, 87;
    --bs-link-color: #0050ef;
    --bs-link-color-rgb: 0, 80, 239;
    --bs-link-hover-color: #00356d;
    --bs-link-hover-color-rgb: 0, 53, 109;
    --bs-primary-text-emphasis: #003aad;
    --bs-primary-bg-subtle: #d9e5fd;
    --bs-secondary-text-emphasis: #006d6b;
    --bs-secondary-bg-subtle: #d9f2f2;
    --bs-success-text-emphasis: #00764a;
    --bs-success-bg-subtle: #d9f8eb;
    --bs-info-text-emphasis: #146a91;
    --bs-info-bg-subtle: #d8f3ff;
    --bs-warning-text-emphasis: #a4501f;
    --bs-warning-bg-subtle: #fde6d8;
    --bs-danger-text-emphasis: #b82c46;
    --bs-danger-bg-subtle: #fbdbe1;
    --bs-box-shadow: var(--campa-card-shadow);
    --shell-top-bg: rgba(237, 242, 249, 0.96);
}

[data-bs-theme="dark"] {
    --campa-surface: #121e2d;
    --campa-heading: #d8e2ef;
    --campa-card-shadow: 0 7px 14px 0 rgba(3, 12, 51, 0.15), 0 3px 6px 0 rgba(0, 0, 0, 0.2);
    --campa-control-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08), 0 2px 5px 0 rgba(0, 0, 0, 0.3);
    --campa-control-shadow-hover: 0 0 0 1px rgba(255, 255, 255, 0.14), 0 3px 9px 0 rgba(0, 0, 0, 0.35);
    --campa-nav-link: #9da9bb;
    --campa-nav-link-hover: #edf2f9;

    --bs-body-bg: #0b1727;
    --bs-body-bg-rgb: 11, 23, 39;
    --bs-body-color: #b6c1d2;
    --bs-body-color-rgb: 182, 193, 210;
    --bs-emphasis-color: #edf2f9;
    --bs-emphasis-color-rgb: 237, 242, 249;
    --bs-secondary-color: #9da9bb;
    --bs-secondary-color-rgb: 157, 169, 187;
    --bs-tertiary-color: #748194;
    --bs-tertiary-color-rgb: 116, 129, 148;
    --bs-secondary-bg: #344050;
    --bs-secondary-bg-rgb: 52, 64, 80;
    --bs-tertiary-bg: #162231;
    --bs-tertiary-bg-rgb: 22, 34, 49;
    --bs-border-color: #2a3646;
    --bs-success: #00d27a;
    --bs-success-rgb: 0, 210, 122;
    --bs-info: #27bcfd;
    --bs-info-rgb: 39, 188, 253;
    --bs-warning: #f5803e;
    --bs-warning-rgb: 245, 128, 62;
    --bs-danger: #e63757;
    --bs-danger-rgb: 230, 55, 87;
    --bs-link-color: #6c9fff;
    --bs-link-color-rgb: 108, 159, 255;
    --bs-link-hover-color: #a3c3ff;
    --bs-link-hover-color-rgb: 163, 195, 255;
    --bs-primary-text-emphasis: #a3c3ff;
    --bs-primary-bg-subtle: #0f2b50;
    --bs-secondary-text-emphasis: #7fe3e2;
    --bs-secondary-bg-subtle: #0b3b3b;
    --bs-success-text-emphasis: #73e6b6;
    --bs-success-bg-subtle: #003f25;
    --bs-info-text-emphasis: #93defe;
    --bs-info-bg-subtle: #0c384c;
    --bs-warning-text-emphasis: #fbc6a8;
    --bs-warning-bg-subtle: #562d16;
    --bs-danger-text-emphasis: #f4a5b3;
    --bs-danger-bg-subtle: #5c1623;
    --bs-box-shadow: var(--campa-card-shadow);
    --shell-top-bg: rgba(11, 23, 39, 0.96);
}

:root,
[data-bs-theme] {
    --shell-sidebar-width: 14rem;
    --bs-body-font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --bs-border-radius: 0.25rem;
    --bs-border-radius-sm: 0.25rem;
    --bs-border-radius-lg: 0.375rem;
    --campa-title: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ---------- Type ---------- */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--campa-title);
    font-weight: 500;
    color: var(--campa-heading);
}
h1, .h1 { font-size: 2.0736rem; }
h2, .h2 { font-size: 1.728rem; }
h3, .h3 { font-size: 1.44rem; }
h4, .h4 { font-size: 1.2rem; }
h5, .h5 { font-size: 1rem; }
h6, .h6 { font-size: 0.8333rem; }
.form-label { margin-bottom: 0.5rem; font-size: 0.8333rem; font-weight: 500; }
.navbar-vertical-label { font-size: 0.6944rem; font-weight: 700; letter-spacing: 0.02em; color: var(--bs-tertiary-color); }

/* ---------- Buttons ---------- */
.btn {
    --bs-btn-font-weight: 500;
    --bs-btn-font-size: 0.875rem;
    --bs-btn-padding-x: 1rem;
    --bs-btn-padding-y: 0.375rem;
    --bs-btn-border-radius: var(--bs-border-radius);
    font-family: var(--campa-title);
}
.btn-sm, .btn-group-sm > .btn { --bs-btn-font-size: 0.8333rem; --bs-btn-padding-x: 0.75rem; --bs-btn-padding-y: 0.1875rem; }
.btn-lg, .btn-group-lg > .btn { --bs-btn-font-size: 1rem; --bs-btn-padding-x: 1.25rem; --bs-btn-padding-y: 0.5rem; }
.btn-primary, .btn-secondary, .btn-success, .btn-info, .btn-warning, .btn-danger { --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; --bs-btn-disabled-color: #fff; }
.btn-primary:hover, .btn-secondary:hover, .btn-success:hover, .btn-info:hover, .btn-warning:hover, .btn-danger:hover { filter: brightness(0.92); }
[class*="btn-outline-"] { --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; }
.btn-falcon-default, .btn-falcon-primary, .btn-falcon-secondary, .btn-falcon-success, .btn-falcon-info, .btn-falcon-warning, .btn-falcon-danger {
    --bs-btn-bg: var(--campa-surface);
    --bs-btn-border-color: var(--campa-surface);
    --bs-btn-hover-bg: var(--campa-surface);
    --bs-btn-hover-border-color: var(--campa-surface);
    --bs-btn-active-bg: var(--bs-tertiary-bg);
    --bs-btn-active-border-color: var(--campa-surface);
    --bs-btn-disabled-bg: var(--campa-surface);
    --bs-btn-disabled-border-color: var(--campa-surface);
    box-shadow: var(--campa-control-shadow);
}
.btn-falcon-default:hover, .btn-falcon-primary:hover, .btn-falcon-secondary:hover, .btn-falcon-success:hover, .btn-falcon-info:hover, .btn-falcon-warning:hover, .btn-falcon-danger:hover { box-shadow: var(--campa-control-shadow-hover); }
.btn-falcon-default { --bs-btn-color: var(--bs-body-color); --bs-btn-hover-color: var(--bs-emphasis-color); --bs-btn-active-color: var(--bs-emphasis-color); --bs-btn-disabled-color: var(--bs-tertiary-color); }
.btn-falcon-primary { --bs-btn-color: var(--bs-primary); --bs-btn-hover-color: var(--bs-primary); --bs-btn-active-color: var(--bs-primary); --bs-btn-disabled-color: var(--bs-primary); }
.btn-falcon-secondary { --bs-btn-color: var(--bs-secondary); --bs-btn-hover-color: var(--bs-secondary); --bs-btn-active-color: var(--bs-secondary); --bs-btn-disabled-color: var(--bs-secondary); }
.btn-falcon-success { --bs-btn-color: var(--bs-success); --bs-btn-hover-color: var(--bs-success); --bs-btn-active-color: var(--bs-success); --bs-btn-disabled-color: var(--bs-success); }
.btn-falcon-info { --bs-btn-color: var(--bs-info); --bs-btn-hover-color: var(--bs-info); --bs-btn-active-color: var(--bs-info); --bs-btn-disabled-color: var(--bs-info); }
.btn-falcon-warning { --bs-btn-color: var(--bs-warning); --bs-btn-hover-color: var(--bs-warning); --bs-btn-active-color: var(--bs-warning); --bs-btn-disabled-color: var(--bs-warning); }
.btn-falcon-danger { --bs-btn-color: var(--bs-danger); --bs-btn-hover-color: var(--bs-danger); --bs-btn-active-color: var(--bs-danger); --bs-btn-disabled-color: var(--bs-danger); }

/* ---------- Surfaces ---------- */
.card {
    --bs-card-bg: var(--campa-surface);
    --bs-card-border-width: 0;
    --bs-card-border-radius: var(--bs-border-radius-lg);
    --bs-card-inner-border-radius: var(--bs-border-radius-lg);
    --bs-card-cap-bg: var(--bs-tertiary-bg);
    box-shadow: var(--campa-card-shadow);
}
.card .card.shadow-none, .dropdown-menu-card .card { box-shadow: none; }
.modal { --bs-modal-bg: var(--campa-surface); --bs-modal-border-width: 0; --bs-modal-border-radius: var(--bs-border-radius-lg); --bs-modal-inner-border-radius: var(--bs-border-radius-lg); }
.modal-content { box-shadow: 0 1rem 4rem rgba(0, 0, 0, 0.175); }
.dropdown-menu { --bs-dropdown-bg: var(--campa-surface); --bs-dropdown-border-color: var(--bs-border-color); --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); --bs-dropdown-font-size: 0.875rem; box-shadow: var(--campa-card-shadow); }
.accordion { --bs-accordion-bg: var(--campa-surface); }
.list-group { --bs-list-group-bg: var(--campa-surface); }
.popover { --bs-popover-bg: var(--campa-surface); }
.toast { --bs-toast-bg: var(--campa-surface); }
.badge { --bs-badge-font-weight: 600; --bs-badge-border-radius: 0.25rem; }
.form-control, .form-select { background-color: var(--campa-surface); font-size: 0.875rem; }
.form-control:focus, .form-select:focus { background-color: var(--campa-surface); }
.input-group-text { font-size: 0.875rem; }
.table { --bs-table-bg: transparent; --bs-table-color: var(--bs-body-color); --bs-table-border-color: var(--bs-border-color); --bs-table-striped-bg: var(--bs-tertiary-bg); --bs-table-hover-bg: var(--bs-tertiary-bg); }
.table > thead th { color: var(--campa-heading); font-weight: 600; }
.icon-item { border-radius: 50%; box-shadow: var(--campa-control-shadow); }
.avatar .avatar-name { border-radius: 50%; }
.avatar img { border-radius: 50%; }
.card-span .card-span-img { border-radius: 50%; box-shadow: var(--campa-card-shadow); }
.timeline-vertical .timeline-icon { border-radius: 50%; }
.timeline-vertical .timeline-item-card { border-radius: var(--bs-border-radius-lg); box-shadow: var(--campa-card-shadow); }
.notification-indicator-primary::before { background-color: var(--bs-danger) !important; }

/* ---------- Shell: the sidebar sits on the page, the top bar is glass ---------- */
.navbar { font-family: var(--campa-title); }
.navbar-top, .navbar-standard { font-size: 0.8333rem; font-weight: 600; }
.navbar-top { backdrop-filter: blur(6px); }
.navbar-top .nav-link { color: var(--campa-nav-link); }
.navbar-top .nav-link:hover, .navbar-top .nav-link:focus { color: var(--campa-nav-link-hover); }
.navbar-vertical .nav-link { color: var(--campa-nav-link); font-size: 0.875rem; font-weight: 500; font-family: var(--campa-title); padding: 0.35rem 0.5rem; }
.navbar-vertical .nav-link:hover, .navbar-vertical .nav-link:focus { color: var(--campa-nav-link-hover); }
.navbar-vertical .nav-link.active { color: var(--bs-primary); }
.navbar-vertical-divider { border-color: var(--bs-border-color); opacity: 1; }
.navbar-toggler-humburger-icon { color: var(--campa-nav-link); }
.navbar-toggler-humburger-icon:hover { color: var(--campa-nav-link-hover); }
.content > .footer { padding: 0.5rem 0; }
.navbar-vertical > .d-flex { background: var(--bs-body-bg); }
@media (max-width: 1199.98px) {
    .navbar-vertical .navbar-collapse { box-shadow: var(--campa-card-shadow); border-radius: 0 0 var(--bs-border-radius-lg) var(--bs-border-radius-lg); }
}

/* ---------- Links read as text until hovered ---------- */
a { text-decoration: none; }
a:hover { text-decoration: underline; }
a.btn:hover, a.nav-link:hover, a.dropdown-item:hover, a.navbar-brand:hover, a.page-link:hover, a.list-group-item:hover, a.card:hover { text-decoration: none; }
