:root{--sidebar:#0f172a;--primary:#2563eb;--primary-soft:#eff6ff;--surface:#fff;--bg:#f5f7fb;--text:#172033;--muted:#64748b;--border:#e5eaf1}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:var(--sidebar);color:#fff;z-index:1040}.sidebar-brand{height:76px;display:flex;align-items:center;gap:12px;padding:0 22px;border-bottom:1px solid #ffffff18;font-size:1.03rem;font-weight:700}.brand-mark,.login-icon{display:grid;place-items:center;background:linear-gradient(135deg,#3b82f6,#06b6d4);color:#fff}.brand-mark{width:38px;height:38px;border-radius:11px}.brand-title{font-weight:700}.sidebar .nav{gap:5px}.sidebar .nav-link{display:flex;align-items:center;gap:12px;color:#aeb9cb;padding:11px 14px;border-radius:10px;font-size:.94rem}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:#ffffff14;color:#fff}.sidebar .nav-link.active{box-shadow:inset 3px 0 #60a5fa}.sidebar .nav-link i{font-size:1.08rem}.main-content{margin-left:260px;min-height:100vh}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:18px;padding:0 28px;position:sticky;top:0;z-index:1020}.top-search{max-width:620px;flex:1;display:flex;align-items:center;gap:10px;background:#f4f6f9;border:1px solid transparent;border-radius:10px;padding:9px 13px}.top-search:focus-within{background:#fff;border-color:#93c5fd}.top-search input{border:0;outline:0;background:transparent;width:100%;font-size:.92rem}.page-content{padding:28px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.page-heading h1{font-size:1.6rem;margin:0;font-weight:750}.page-heading p{margin:4px 0 0;color:var(--muted)}.card{border-color:var(--border);border-radius:14px}.stat-card{border:0;box-shadow:0 2px 9px #1720330a}.stat-card .card-body{padding:20px}.stat-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:1.65rem;font-weight:750;margin-top:4px}.stat-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:1.15rem}.table-card{overflow:hidden}.table-card .card-header{background:#fff;border-bottom-color:var(--border);padding:18px 20px}.table{margin:0}.table th{font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:650;background:#fafbfc;white-space:nowrap}.table td,.table th{padding:13px 15px;vertical-align:middle;border-color:#edf0f4}.table td{font-size:.9rem}.badge{font-weight:600}.form-card .card-body{padding:24px}.form-section{font-size:1rem;font-weight:700;margin:8px 0 18px;padding-bottom:10px;border-bottom:1px solid var(--border)}.form-label{font-size:.86rem;font-weight:600}.form-text{color:var(--muted)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#dbeafe,transparent 32%),linear-gradient(135deg,#f8fafc,#eef2ff)}.login-card{width:min(100%,420px);background:#fff;border:1px solid var(--border);border-radius:18px;padding:36px;box-shadow:0 22px 60px #0f172a18}.login-card h1{font-size:1.7rem;font-weight:750;margin:18px 0 5px}.login-icon{width:54px;height:54px;border-radius:15px;font-size:1.45rem}.detail-list dt{color:var(--muted);font-size:.82rem;font-weight:600}.detail-list dd{margin-bottom:14px}.empty-state{padding:45px 20px;text-align:center;color:var(--muted)}.empty-state i{font-size:2.2rem;display:block;margin-bottom:10px;color:#94a3b8}.notification-warning{border-left:4px solid #f59e0b;background:#fffbeb}.text-preline{white-space:pre-line}.password-hint{font-size:.78rem;color:var(--muted)}@media(max-width:991.98px){.sidebar{position:fixed}.main-content{margin-left:0}.topbar{padding:0 16px}.page-content{padding:20px 14px}.top-search{max-width:none}.top-search input::placeholder{color:transparent}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .btn-group,.page-heading>.btn{width:100%}.page-heading>.btn{display:block}.sidebar-brand{display:none}}@media(max-width:575.98px){.topbar .dropdown .btn{font-size:0}.topbar .dropdown i{font-size:1.1rem}.login-card{padding:25px}.stat-value{font-size:1.4rem}.table td,.table th{padding:11px}.page-content{padding:17px 10px}}
