:root{--navy:#172b4d;--blue:#2563eb;--ink:#1f2937;--muted:#738096;--line:#e8edf4;--canvas:#f5f7fb;--sidebar:264px}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);height:100vh;background:#fff;border-right:1px solid var(--line);padding:20px 14px 16px;display:flex;flex-direction:column;z-index:10;overflow:hidden}.sidebar-header{flex-shrink:0}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 18px;text-decoration:none;color:var(--navy);font-weight:800;font-size:18px;letter-spacing:-.5px}.sidebar-menu{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;margin-right:-2px;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.sidebar-menu::-webkit-scrollbar{width:5px}.sidebar-menu::-webkit-scrollbar-track{background:transparent}.sidebar-menu::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.sidebar-menu::-webkit-scrollbar-thumb:hover{background:#94a3b8}.brand-mark{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:white;font-weight:800;font-size:22px;box-shadow:0 5px 14px #2563eb30}.brand-light{font-weight:500;margin-left:4px;color:#62718a}.sidebar-caption{font-size:10px;letter-spacing:1.4px;font-weight:800;color:#9aa5b5;padding:0 12px 10px}.nav-item{display:flex;align-items:center;gap:12px;text-decoration:none;color:#65738a;padding:12px;border-radius:10px;margin:2px 0;font-weight:600;transition:.15s}.nav-item>span{font-size:18px;width:20px;text-align:center}.nav-item.active{background:#edf4ff;color:#2259bf}.nav-item:not(.disabled-link):hover{background:#f3f6fb}.nav-item small{margin-left:auto;font-size:9px;color:#a1aaba}.disabled-link{cursor:default}.sidebar-bottom{flex-shrink:0;margin-top:auto;border-top:1px solid var(--line);padding:14px 4px 0;display:flex;align-items:center;gap:10px;background:#fff}.avatar{height:36px;width:36px;border-radius:50%;display:grid;place-items:center;background:#dbeafe;color:#1d4ed8;font-weight:800}.user-info{display:flex;flex-direction:column;min-width:0;flex:1}.user-info strong{font-size:12px;overflow:hidden;text-overflow:ellipsis}.user-info span{font-size:11px;color:var(--muted);margin-top:3px}.logout-btn{border:0;background:transparent;color:#718096;font-size:20px}.main-content{margin-left:var(--sidebar);min-height:100vh}.topbar{height:94px;padding:20px 34px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:10px;letter-spacing:1.4px;color:#8995a8;font-weight:800}.topbar h1{font-size:23px;font-weight:750;letter-spacing:-.5px;margin:4px 0 0}.topbar-date{color:#728096;font-size:12px}.page-content{padding:30px 34px 42px;max-width:1600px;margin:auto}.welcome-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.welcome-row h2{font-size:21px;font-weight:750;margin:0 0 6px}.welcome-row p{margin:0;color:var(--muted)}.status-chip{display:inline-flex;align-items:center;gap:8px;background:#eafaf1;color:#198754;padding:8px 12px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.status-chip span{width:7px;height:7px;border-radius:50%;background:#22c55e}.metric-card,.panel-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:0 3px 12px #1e293b04}.metric-top{display:flex;align-items:center;justify-content:space-between}.metric-label{font-size:12px;font-weight:650;color:#66758b}.metric-icon{height:38px;min-width:38px;padding:0 8px;border-radius:11px;display:grid;place-items:center;font-weight:800}.metric-icon.blue{background:#eaf2ff;color:#2563eb}.metric-icon.green{background:#e8f8ef;color:#16834a}.metric-icon.orange{background:#fff2e4;color:#d97706}.metric-icon.purple{background:#f3eaff;color:#854dce}.metric-value{font-size:27px;font-weight:800;letter-spacing:-1px;margin:14px 0 6px;color:#202d42}.metric-note{font-size:11px;color:#95a0b0;line-height:1.5}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:17px}.panel-heading h3{font-size:15px;font-weight:750;margin:0 0 5px}.panel-heading p{font-size:12px;color:var(--muted);margin:0}.muted-pill{font-size:10px;background:#f0f3f8;color:#77849a;padding:5px 9px;border-radius:20px}.workflow-list{display:flex;flex-direction:column}.workflow-step{display:flex;gap:13px;align-items:center;padding:12px 0;border-top:1px solid #f0f2f6}.workflow-step:first-child{border-top:0}.workflow-step>span{height:30px;width:30px;border-radius:9px;background:#eff5ff;color:#2a61c8;display:grid;place-items:center;font-weight:800;font-size:12px}.workflow-step div,.setup-list li div{display:flex;flex-direction:column;gap:4px}.workflow-step strong,.setup-list strong{font-size:12px}.workflow-step small,.setup-list small{font-size:11px;color:#8a96a8}.setup-list{padding:0;margin:0;list-style:none}.setup-list li{display:flex;gap:12px;align-items:center;padding:14px 0;border-top:1px solid #f0f2f6}.setup-list li:first-child{border-top:0}.setup-check,.setup-pending{height:25px;width:25px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.setup-check{background:#e7f8ee;color:#18864b}.setup-pending{background:#fff4df;color:#c58213;font-weight:800}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 10% 10%,#dbeafe 0,transparent 32%),var(--canvas)}.login-card{background:white;border:1px solid var(--line);border-radius:20px;padding:38px;width:min(100%,420px);box-shadow:0 18px 55px #1e293b0b}.login-brand{display:flex;justify-content:center;margin-bottom:18px}.login-card h1{text-align:center;font-size:25px;font-weight:800}.login-card>p{text-align:center}.form-label{font-weight:650;font-size:12px}.form-control{border-color:#dce3ed;border-radius:9px}.form-control:focus{box-shadow:0 0 0 3px #2563eb1b;border-color:#7aa4f8}.btn-primary{background:#2563eb;border-color:#2563eb;border-radius:9px;font-weight:700}.btn-primary:hover{background:#1d4ed8}.alert-info{background:#edf6ff;color:#285a91}/* Responsive mobile sidebar & drawer */
.sidebar-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(15, 23, 42, 0.5);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 1040;
    opacity: 0;
    transition: opacity 0.25s ease;
}

@media (max-width: 991.98px) {
    .main-content {
        margin-left: 0 !important;
        width: 100% !important;
        min-width: 0;
    }
    .sidebar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: 280px !important;
        max-width: 85vw !important;
        height: 100vh !important;
        z-index: 1050 !important;
        transform: translateX(-100%);
        transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
        box-shadow: 0 0 25px rgba(15, 23, 42, 0.2);
        padding: 18px 14px 16px;
        display: flex !important;
        flex-direction: column !important;
        background: #fff !important;
        overflow: hidden;
    }
    .sidebar.show,
    .app-shell.sidebar-open .sidebar {
        transform: translateX(0) !important;
    }
    .sidebar-backdrop {
        display: block;
        pointer-events: none;
    }
    .sidebar-backdrop.show,
    .app-shell.sidebar-open .sidebar-backdrop {
        opacity: 1;
        pointer-events: auto;
    }
    .sidebar-caption,
    .nav-item,
    .sidebar-menu,
    .sidebar-bottom {
        display: flex !important;
    }
    .sidebar-caption {
        display: block !important;
    }
    .sidebar-menu {
        flex-direction: column !important;
        overflow-y: auto !important;
    }
    body.sidebar-open {
        overflow: hidden !important;
    }
    .topbar {
        padding: 12px 16px;
        height: auto;
        min-height: 60px;
    }
    .page-content {
        padding: 16px 14px;
    }
    .welcome-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
    .status-chip {
        align-self: flex-start;
    }
}

/* Login page: self-contained styling so the page remains usable even before LibMan restores Bootstrap. */
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 18px;background:radial-gradient(ellipse at 15% 10%,rgba(191,219,254,.62),transparent 34%),radial-gradient(ellipse at 90% 90%,rgba(186,230,253,.48),transparent 30%),#f4f7fc}
.login-card{width:min(100%,460px);padding:42px 42px 28px;background:rgba(255,255,255,.96);border:1px solid #e5ebf5;border-radius:24px;box-shadow:0 24px 70px rgba(25,49,89,.12);}
.login-brand{display:flex;justify-content:center;margin-bottom:22px}.login-brand .brand-mark{width:54px;height:54px;border-radius:17px;font-size:28px;box-shadow:0 9px 22px rgba(37,99,235,.24)}
.login-heading{text-align:center;margin-bottom:30px}.login-kicker{display:inline-block;color:#2563eb;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;padding:6px 11px;font-size:10px;font-weight:800;letter-spacing:1.6px;margin-bottom:14px}.login-heading h1{font-size:29px;line-height:1.2;letter-spacing:-.8px;font-weight:800;color:#172b4d;margin:0 0 10px}.login-heading p{font-size:14px;color:#758198;line-height:1.6;margin:0}
.login-form{display:block;width:100%}.login-validation:empty{display:none}.login-validation{font-size:12px;color:#b42318;background:#fef3f2;border:1px solid #fee4e2;border-radius:10px;padding:10px 12px;margin-bottom:16px}.login-validation ul{margin:0;padding-left:18px}.login-field{display:block;width:100%;margin:0 0 19px}.login-field label{display:block;color:#344054;font-size:12px;font-weight:750;margin:0 0 8px}.login-input{display:block;width:100%;height:48px;padding:0 14px;border:1px solid #d7dfeb;border-radius:11px;background:#fff;color:#172b4d;font-family:inherit;font-size:14px;outline:none;box-shadow:0 1px 2px rgba(16,24,40,.03);transition:border-color .15s ease,box-shadow .15s ease}.login-input::placeholder{color:#a1aabd}.login-input:focus{border-color:#5791f7;box-shadow:0 0 0 4px rgba(37,99,235,.12)}.field-validation{display:block;color:#b42318;font-size:11px;margin-top:5px}.login-options{display:flex;align-items:center;justify-content:space-between;margin:1px 0 23px}.remember-option{display:inline-flex;align-items:center;gap:9px;color:#59677d;font-size:12px;cursor:pointer}.remember-option input{width:16px;height:16px;margin:0;accent-color:#2563eb}.login-submit{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:49px;border:0;border-radius:11px;background:linear-gradient(100deg,#2563eb,#1685e8);color:white;font-family:inherit;font-size:14px;font-weight:750;box-shadow:0 8px 18px rgba(37,99,235,.22);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.login-submit:hover{filter:brightness(1.04);box-shadow:0 10px 23px rgba(37,99,235,.28);transform:translateY(-1px)}.login-submit:active{transform:translateY(0)}.login-footer{display:flex;justify-content:center;align-items:center;gap:8px;border-top:1px solid #edf0f6;margin-top:26px;padding-top:19px;color:#8a95a8;font-size:11px;text-align:center}.security-dot{width:7px;height:7px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 3px #e6f7ef}
@media(max-width:520px){.login-card{padding:32px 23px 24px;border-radius:20px}.login-heading h1{font-size:26px}.login-brand .brand-mark{width:50px;height:50px}}
