:root{--navy:#13213a;--blue:#246bfd;--mist:#f4f7fb;--muted:#738097}*{box-sizing:border-box}body{margin:0;background:var(--mist);color:#172033;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;min-height:100vh;flex:0 0 248px;background:var(--navy);color:#fff;padding:28px 16px;flex-direction:column;position:sticky;top:0}.brand{font-size:24px;font-weight:800;color:#fff;text-decoration:none;line-height:1.2}.brand span{color:#71a2ff}.sidebar>.brand{padding:0 12px 34px}.sidebar-label{font-size:10px;letter-spacing:1.4px;color:#8592ab;padding:0 12px;margin:0 0 8px}.sidebar nav,.mobile-nav nav{display:grid;gap:5px}.sidebar .nav-link,.mobile-nav .nav-link{color:#b8c3d7;border-radius:8px;padding:11px 12px;font-size:15px}.sidebar .nav-link:hover,.sidebar .nav-link.active,.mobile-nav .nav-link:hover,.mobile-nav .nav-link.active{color:#fff;background:#263957}.sidebar-footer{margin-top:auto;border-top:1px solid #2e405d;padding:18px 12px 0;display:grid;gap:3px;font-size:13px}.sidebar-footer small,.user-summary small{color:#9dabc2}.sidebar-footer a,.sign-out{color:#8bb2ff;text-decoration:none;margin-top:8px}.content{flex:1;min-width:0;max-width:1600px;padding:30px 42px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:30px}.topbar h1{font-size:clamp(22px,2vw,28px);font-weight:750;margin:0}.topbar p{color:var(--muted);margin:4px 0;font-size:14px}.status-dot{white-space:nowrap;background:#e3f7eb;color:#26834e;border-radius:20px;padding:7px 12px;font-size:12px;font-weight:600}.metric-card,.panel{background:#fff;border:0;border-radius:14px;box-shadow:0 2px 14px #1923420b}.metric-card{padding:20px;height:100%}.metric-card p{color:var(--muted);font-size:13px;margin:0 0 9px}.metric-card h2{font-size:28px;margin:0;font-weight:750}.metric-card .trend{font-size:12px;color:#248250}.panel{padding:22px}.panel h2{font-size:17px;font-weight:700;margin:0 0 18px}.table{--bs-table-bg:transparent;margin-bottom:0}.table th{font-size:11px;color:var(--muted);letter-spacing:.4px;border-top:0;white-space:nowrap}.table td{vertical-align:middle}.badge-soft{background:#e8efff;color:#2462dc;font-weight:600}.form-control,.form-select{min-height:44px}.form-control:focus,.form-select:focus{border-color:#8aafff;box-shadow:0 0 0 .2rem #246bfd20}.btn-primary{background:var(--blue);border-color:var(--blue);padding:11px;font-weight:650;min-height:44px}.mobile-header{display:flex!important;height:64px;background:var(--navy);padding:0 18px;align-items:center;justify-content:space-between}.navbar-toggler{border:1px solid #ffffff55;background:#ffffff12;padding:4px 10px;line-height:1;border-radius:6px}.menu-icon{color:#fff;font-size:24px;line-height:1}.mobile-nav{background:var(--navy);color:#fff;width:min(290px,86vw)}.mobile-nav .offcanvas-header{padding:24px 22px 18px}.mobile-nav .offcanvas-body{padding:8px 16px 22px}.user-summary{display:grid;gap:3px;background:#20324e;border-radius:10px;padding:14px;margin:0 0 22px;font-size:14px}.mobile-nav .sidebar-label{padding:0 10px}.sign-out{margin-top:auto;padding:12px}.login-page{min-height:100vh;background:linear-gradient(135deg,#13213a,#246bfd);display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);background:#fff;border-radius:18px;padding:38px;box-shadow:0 24px 60px #07122666}.login-card h1{font-weight:800;color:var(--navy)}.login-card .form-control{padding:12px}@media(max-width:991.98px){.content{max-width:none;padding:28px 30px}}@media(max-width:575.98px){.content{padding:22px 16px}.topbar{display:block;margin-bottom:22px}.status-dot{display:inline-block;margin-top:10px}.panel{padding:17px;border-radius:12px}.metric-card{padding:17px}.metric-card h2{font-size:25px}.row{--bs-gutter-x:1rem;--bs-gutter-y:1rem}.login-page{padding:16px}.login-card{padding:28px 22px;border-radius:14px}.login-card h1{font-size:27px}.table-responsive{margin:0 -3px}.alert{font-size:14px}}
#pageLoader{position:fixed;inset:0;z-index:9999;background:#f4f7fb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#13213a;font-weight:650}.page-loader-spinner{width:38px;height:38px;border:4px solid #d9e3f8;border-top-color:#246bfd;border-radius:50%;animation:pageLoaderSpin .7s linear infinite}@keyframes pageLoaderSpin{to{transform:rotate(360deg)}}

.brand-logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: transparent;
}

.brand-logo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.brand-logo-mobile {
    width: 84px;
    height: 58px;
}

.brand-logo-menu {
    width: 116px;
    height: 87px;
}

.login-logo-wrap {
    display: flex;
    width: 100%;
    max-width: 260px;
    aspect-ratio: 4 / 3;
    justify-content: center;
    align-items: center;
    margin: -14px auto 18px;
    overflow: hidden;
    border-radius: 14px;
    background: #ffffff;
}

.login-logo {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    object-fit: contain;
}

.login-card {
    width: min(430px, calc(100vw - 48px));
    max-width: 430px;
    overflow: hidden;
}

@media (max-width: 575.98px) {
    .login-card {
        width: calc(100vw - 32px);
    }

    .brand-logo-mobile {
        width: 78px;
        height: 56px;
    }

    .login-logo {
        width: 100%;
    }

    .login-logo-wrap {
        width: min(190px, 72vw);
        margin-top: -8px;
        margin-bottom: 14px;
    }
}

@media (min-width: 576px) and (max-width: 991.98px) {
    .login-logo-wrap {
        width: 220px;
    }
}

@media (min-width: 992px) {
    .login-logo-wrap {
        width: 240px;
    }
}

/* Use accessible dark blue for warning text; warning backgrounds remain unchanged. */
.text-warning,
.text-warning-emphasis {
    color: #123a70 !important;
}
