:root {
    --promvella-navy: #00102d;
    --promvella-deep-blue: #00235f;
    --promvella-royal: #004fc4;
    --promvella-blue: #007deb;
    --promvella-electric: #00a8ff;
    --promvella-gold: #ffb300;
    --promvella-orange: #ff8500;
    --promvella-red-orange: #ff3b0a;
    --promvella-ink: #02070d;
    --promvella-tint: #f4f9ff;
    --promvella-border: #c5dbef;
    --promvella-muted: #526681;
    --promvella-warm-ink: #a94300;
    --bs-primary: #004fc4;
    --bs-primary-rgb: 0, 79, 196;
    --bs-link-color: #004fc4;
    --bs-link-hover-color: #00235f;
}

/* Color overrides only, except the existing logo sizing retained below.
 * Match Qovex's ID/data-attribute selectors so vendor colors cannot win. */
body { background: var(--promvella-tint); color: var(--promvella-navy); }
#page-topbar,
body[data-topbar=colored] #page-topbar,
body[data-topbar=dark] #page-topbar {
    background: #fff;
    box-shadow: 0 2px 14px rgba(0, 35, 95, .08), inset 0 -3px 0 var(--promvella-royal);
}
.navbar-brand-box { background: #fff; }
.logo-lg img, .logo-sm img { background: #fff !important; border-radius: 0 !important; padding: 0 !important; object-fit: contain; }
.logo-lg img { width: 158px; max-height: 44px; }
.logo-sm img { width: 42px; max-height: 38px; object-fit: cover; object-position: 50% 20%; }

body[data-topbar] .header-item,
body[data-topbar] .noti-icon i { color: var(--promvella-deep-blue); }
body[data-topbar] .header-item:hover,
body[data-topbar] .header-item:hover i { color: var(--promvella-royal); background: #eaf5ff; }
body[data-topbar] .navbar-header .dropdown .header-item.show { background: #fff3dc; color: var(--promvella-navy); }
body[data-topbar] .app-search .form-control { background: var(--promvella-tint); color: var(--promvella-navy); }
body[data-topbar] .app-search input.form-control::placeholder,
body[data-topbar] .app-search span { color: var(--promvella-muted); }
.vertical-menu { background: #fff; box-shadow: 0 6px 22px rgba(0,35,95,.07); }
.vertical-menu .user-wid { background: linear-gradient(135deg, #f0f8ff, #fff8ec); }
.vertical-menu .user-wid .text-body { color: var(--promvella-navy) !important; }
.vertical-menu .user-wid .text-muted,
#sidebar-menu .menu-title { color: var(--promvella-muted) !important; }
#sidebar-menu ul li a,
#sidebar-menu ul li ul.sub-menu li a { color: var(--promvella-deep-blue); }
#sidebar-menu ul li a i { color: var(--promvella-royal); }
#sidebar-menu ul li a:hover { background: #eaf5ff; color: var(--promvella-royal); }
#sidebar-menu ul li a:hover i { color: var(--promvella-royal); }
#sidebar-menu .mm-active > a,
#sidebar-menu .mm-active > a:hover {
    color: var(--promvella-navy) !important;
    background: #fff3dc;
    box-shadow: inset 4px 0 0 var(--promvella-orange);
}
#sidebar-menu .mm-active > a i,
#sidebar-menu .mm-active > a::after { color: var(--promvella-warm-ink) !important; }
#sidebar-menu a:focus-visible { outline: 2px solid var(--promvella-royal); outline-offset: -2px; }

/* Royal blue provides sufficient contrast for white, normal-sized labels. */
.btn-primary,
body .btn-primary,
body.promvella-auth button.btn.btn-primary.btn-login {
    --bs-btn-bg: #004fc4;
    --bs-btn-border-color: #004fc4;
    --bs-btn-hover-bg: #00235f;
    --bs-btn-hover-border-color: #00235f;
    --bs-btn-active-bg: #00235f;
    --bs-btn-active-border-color: #00235f;
    --bs-btn-disabled-bg: #004fc4;
    --bs-btn-disabled-border-color: #004fc4;
    background: var(--promvella-royal) !important;
    border-color: var(--promvella-royal) !important;
    color: #fff !important;
}
.btn-primary:hover, .btn-primary:active, .btn-primary:focus,
body.promvella-auth button.btn.btn-primary.btn-login:hover { background: var(--promvella-deep-blue) !important; border-color: var(--promvella-deep-blue) !important; color: #fff !important; }
.btn-outline-primary { color: var(--promvella-royal); border-color: var(--promvella-royal); }
.btn-outline-primary:hover, .btn-outline-primary:active { background: var(--promvella-royal); border-color: var(--promvella-royal); color: #fff; }
.btn-warning { background: var(--promvella-gold); border-color: var(--promvella-gold); color: var(--promvella-navy); }
.btn-warning:hover { background: var(--promvella-orange); border-color: var(--promvella-orange); color: var(--promvella-navy); }
.btn:focus-visible { outline: 3px solid var(--promvella-electric); outline-offset: 2px; }
.text-primary { color: var(--promvella-royal) !important; }
a { color: var(--promvella-royal); }
a:hover { color: var(--promvella-deep-blue); }
h1, h2, h3, h4, h5, h6, .form-label, .col-form-label, label { color: var(--promvella-navy); }
.text-muted { color: var(--promvella-muted) !important; }
.page-title-box .breadcrumb .breadcrumb-item.active { color: var(--promvella-deep-blue); }
.card { background: #fff; border-color: var(--promvella-border); box-shadow: 0 6px 20px rgba(0,35,95,.06); }
.card-header, .table-light { background: #eef6ff; color: var(--promvella-navy); border-color: var(--promvella-border); }
.table { color: var(--promvella-navy); --bs-table-color: #00102d; --bs-table-hover-bg: #eef6ff; --bs-table-striped-bg: #f4f9ff; border-color: var(--promvella-border); }
body .form-control, body .form-select { color: var(--promvella-navy); background-color: #fff; border-color: #9eb6d0; }
.form-control::placeholder { color: #526681; }
.form-control:focus, .form-select:focus { background-color: #fff; color: var(--promvella-navy); border-color: var(--promvella-royal); box-shadow: 0 0 0 .2rem rgba(0,125,235,.18); }
.form-control:disabled, .form-control[readonly], .form-select:disabled { background: #eef3f8; color: #526681; }
.form-control.is-invalid, .form-select.is-invalid { border-color: #bd2828; }
.invalid-feedback, .text-danger { color: #bd2828 !important; }
.form-check-input { border-color: #7a94b5; }
.form-check-input:checked { background-color: var(--promvella-royal); border-color: var(--promvella-royal); }
body .select2.select2-container,
body .select2-selection { background: #fff !important; color: var(--promvella-navy); }
body .select2-container--default .select2-selection--single .select2-selection__rendered,
body .select2-results__option { color: var(--promvella-navy); }
body .select2-container--default .select2-search--dropdown .select2-search__field { color: var(--promvella-navy); border-color: #9eb6d0; }
body .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--promvella-royal); color: #fff; }
.page-link { color: var(--promvella-royal); border-color: var(--promvella-border); }
.page-item.active .page-link { background: var(--promvella-royal); border-color: var(--promvella-royal); color: #fff; }
.bg-primary, .progress-bar { background-color: var(--promvella-royal) !important; color: #fff; }
.avatar-title { background-color: var(--promvella-royal); color: #fff; }
.page-content .col-md-4:nth-child(2) .avatar-title { background: linear-gradient(135deg, var(--promvella-gold), var(--promvella-orange)); color: var(--promvella-navy); }
.dropdown-menu { background: #fff; border-color: var(--promvella-border); }
.dropdown-item { color: var(--promvella-navy); }
.dropdown-item:hover, .dropdown-item:focus { background: #eaf5ff; color: var(--promvella-deep-blue); }
.footer { color: var(--promvella-muted); background: #fff; }

/* Standalone login shares the color system, not dashboard layout rules. */
body.promvella-auth, .bg-login { background: radial-gradient(circle at 85% 10%, #dbf2ff, transparent 45%), linear-gradient(135deg, #f4f9ff, #fff 55%, #fff2dc); }
.bg-login-overlay { background: rgba(0,79,196,.04); }
.promvella-auth .login-container { background: #fff; box-shadow: 0 12px 40px rgba(0,35,95,.12), inset 0 4px 0 var(--promvella-orange); }
.promvella-auth .login-header img { background: #fff; }
@media (max-width: 991.98px) { .logo-lg img { width: 140px; } }
