:root{--primary:#10b981;--primary-dark:#006c49;--ink:#151c27;--muted:#6b7280;--surface:#f9f9ff;--line:#e5e7eb;--sidebar:260px}*{box-sizing:border-box}body{font-family:Inter,sans-serif;background:var(--surface);color:var(--ink);font-size:14px}.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:var(--primary-dark);--bs-btn-hover-border-color:var(--primary-dark)}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar)!important;background:#fff;border-right:1px solid var(--line);z-index:1040;overflow-y:auto}.brand{height:76px;display:flex;gap:12px;align-items:center;padding:16px 22px;border-bottom:1px solid #f3f4f6}.brand-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--primary);color:#fff;font-size:20px}.brand small{display:block;color:var(--muted);font-size:11px}.sidebar-nav{padding:12px}.sidebar-nav a{display:flex;align-items:center;gap:12px;color:#374151;text-decoration:none;padding:11px 12px;border-radius:8px;margin:2px 0;font-weight:500}.sidebar-nav a:hover{background:#ecfdf5;color:#047857}.sidebar-nav i{width:20px}.nav-caption{font-size:10px;font-weight:700;color:#9ca3af;padding:16px 12px 6px;letter-spacing:.08em}.app-main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:1020}.icon-btn{display:grid;place-items:center;color:#374151;background:#f3f4f6;border-radius:50%;width:38px;height:38px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.page-header h1{font-size:26px;font-weight:700;margin:0}.page-header p{color:var(--muted);margin:5px 0 0}.card{border:1px solid #edf0f4;border-radius:12px;box-shadow:0 2px 10px rgba(15,23,42,.04)}.card-header,.card-footer{background:#fff;border-color:#f3f4f6;padding:18px 22px}.stat-card .card-body{display:flex;align-items:center;gap:14px;padding:20px}.stat-card small{color:var(--muted);display:block;margin-bottom:5px}.stat-card strong{font-size:22px;display:block}.stat-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;font-size:19px}.table{margin:0}.table th{background:#f9fafb;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:13px 16px;border-bottom:1px solid var(--line)}.table td{padding:14px 16px;border-color:#f3f4f6}.form-control,.form-select{border-radius:8px;padding:.65rem .8rem}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(16,185,129,.12)}.form-label{font-weight:600;font-size:13px}.empty-state{text-align:center;color:#94a3b8;padding:60px 20px}.empty-state i{font-size:42px;margin-bottom:14px}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#d1fae5,transparent 38%),#f8fafc;padding:16px}.login-card{background:#fff;width:min(430px,100%);padding:40px;border-radius:20px;box-shadow:0 20px 60px rgba(15,23,42,.12)}.login-brand{text-align:center;margin-bottom:28px}.login-brand .brand-icon{margin:0 auto 14px}.login-brand h2{font-size:23px}.login-brand p{color:var(--muted)}.permission-matrix th,.permission-matrix td{text-align:center;white-space:nowrap}.permission-matrix th:first-child{text-align:left}.toast-container{z-index:1100}@media(max-width:991.98px){.app-main{margin-left:0}.sidebar{position:fixed}.page-header{align-items:flex-start}.page-header h1{font-size:22px}}@media(max-width:575.98px){.page-header{flex-direction:column}.page-header>div:last-child,.page-header .btn{width:100%}.topbar{height:64px;padding:0 14px}.container-fluid{padding:16px!important}.login-card{padding:26px 20px}}
