:root{--accent:#5d7bef;--ink:#182230;--muted:#667085;--panel:#fff;--surface:#f5f7fb}.purple{background:#7f56d9!important;color:#fff}.app-shell{min-height:100vh;background:var(--surface)}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#121a2f;color:#fff;padding:20px 14px;z-index:20}.brand{display:flex;align-items:center;color:#fff;text-decoration:none;padding:0 8px 24px}.brand img{display:block;width:100%;max-width:205px;height:70px;object-fit:contain;object-position:left center}.sidebar nav a{display:flex;gap:12px;align-items:center;color:#aeb8cd;text-decoration:none;padding:11px 13px;margin:4px 0;border-radius:10px}.sidebar nav a:hover{background:#202b45;color:#fff}.main{margin-left:250px}.topbar{height:72px;background:var(--panel);border-bottom:1px solid #e7eaf0;display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:10}.content{padding:30px}.content h1{font-weight:750;font-size:28px;color:var(--ink);margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:11px;font-weight:800}.card{border:1px solid #eaecf0;border-radius:16px;box-shadow:0 4px 18px rgba(16,24,40,.04)}.stat-card .icon{width:45px;height:45px;display:grid;place-items:center;border-radius:13px;background:#eef2ff;color:var(--accent);font-size:20px}.stat-card .number{font-size:28px;font-weight:800}.table>thead th{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}.notify-badge{position:absolute;top:-5px;right:-6px}.progress{height:7px}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#eaf0ff,transparent 45%),#f6f7fb}.auth-card{width:min(440px,92vw);padding:36px;background:#fff;border-radius:22px;box-shadow:0 24px 70px rgba(22,29,54,.12)}.auth-logo{display:block;width:min(280px,100%);height:100px;object-fit:contain;object-position:left center;margin-bottom:18px}[data-bs-theme=dark]{--surface:#0b1020;--panel:#131a2b;--ink:#f6f7fb;--muted:#aab2c3}.badge{padding:.48em .7em}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{margin-left:0}.content{padding:20px}.topbar{padding:0 16px}}
