@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--primary:#2563eb;--primary-dark:#1d4ed8;--navy:#101828;--muted:#667085;--line:#e4e7ec;--surface:#fff;--canvas:#f5f7fb;--success:#079455;--danger:#d92d20;--warning:#dc6803;--sidebar:264px}
*{box-sizing:border-box}body{font-family:Inter,system-ui,sans-serif;background:var(--canvas);color:var(--navy);margin:0}.min-w-0{min-width:0}
.app-shell{min-height:100vh}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:26px 18px;background:#111827;color:#fff;flex-direction:column;z-index:1030}.app-content{min-height:100vh;margin-left:var(--sidebar)}
.app-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:800;font-size:18px}.app-brand small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#98a2b3;margin-top:2px}.brand-mark{width:44px;height:44px;display:inline-grid;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);box-shadow:0 8px 22px rgba(37,99,235,.3)}.brand-mark.small{width:38px;height:38px;border-radius:12px}
.app-nav{display:flex;flex-direction:column;gap:6px;margin-top:38px}.nav-caption{padding:0 12px 8px;color:#667085;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.app-nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;text-decoration:none;color:#98a2b3;font-weight:600;transition:.2s}.app-nav-link i{width:20px;text-align:center}.app-nav-link:hover{color:#fff;background:#1f2937}.app-nav-link.active{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 7px 20px rgba(37,99,235,.23)}
.sidebar-user{margin-top:auto;padding:14px 10px;border-top:1px solid #344054;display:flex;align-items:center;gap:11px}.sidebar-user strong,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#98a2b3;font-size:11px;margin-top:3px}.user-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;background:#344054;font-weight:700}
.app-topbar{height:88px;padding:0 30px;display:flex;align-items:center;gap:18px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1020;backdrop-filter:blur(10px)}.app-topbar h1{font-size:23px;margin:1px 0 0;font-weight:750}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}.app-main{padding:28px 30px 46px;max-width:1600px;margin:auto}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 8px rgba(16,24,40,.035)}.panel-header{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-header h2,.panel-header h3{font-size:16px;margin:0;font-weight:750}.panel-body{padding:20px}
.metric-card{height:100%;padding:21px;border-radius:16px;background:#fff;border:1px solid var(--line);position:relative;overflow:hidden}.metric-card .metric-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:18px}.metric-card .metric-label{font-size:13px;color:var(--muted);font-weight:600}.metric-card .metric-value{font-size:25px;font-weight:800;margin-top:5px;letter-spacing:-.03em}.metric-card.success .metric-icon{background:#ecfdf3;color:var(--success)}.metric-card.danger .metric-icon{background:#fef3f2;color:var(--danger)}.metric-card.primary .metric-icon{background:#eff4ff;color:var(--primary)}.metric-card.warning .metric-icon{background:#fffaeb;color:var(--warning)}
.filter-panel{padding:17px 19px;margin-bottom:22px}.form-label{font-size:12px;font-weight:700;color:#475467}.form-control,.form-select{border-color:#d0d5dd;border-radius:9px;min-height:42px}.form-control:focus,.form-select:focus{border-color:#84adff;box-shadow:0 0 0 3px #eff4ff}.btn{border-radius:9px;font-weight:650}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.table{--bs-table-bg:transparent;margin:0}.table thead th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#667085;font-weight:750;background:#f9fafb;border-bottom:1px solid var(--line);padding:12px 16px;white-space:nowrap}.table tbody td{padding:14px 16px;border-color:#f0f1f3;vertical-align:middle}.badge-soft{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;background:#eff4ff;color:#3538cd}.amount{font-variant-numeric:tabular-nums;font-weight:750}.empty-state{padding:45px 20px;text-align:center;color:var(--muted)}
.pagination .page-link{color:#344054;border-color:var(--line);font-size:13px}.pagination .active>.page-link{background:var(--primary);border-color:var(--primary)}
.login-page{background:#eef2ff;min-height:100vh}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.login-brand{padding:8vw;color:#fff;align-items:flex-end;background:radial-gradient(circle at 20% 10%,#4f46e5,transparent 40%),linear-gradient(145deg,#111827,#1e3a8a)}.login-brand h1{font-size:clamp(38px,4.4vw,68px);line-height:1.04;max-width:720px;margin:30px 0 20px;font-weight:800;letter-spacing:-.05em}.login-brand p{max-width:580px;font-size:18px;color:#d0d5dd}.login-form-wrap{display:grid;place-items:center;padding:28px;background:#fff}.login-card{width:min(430px,100%)}.login-card h2{font-weight:800;letter-spacing:-.03em}.login-card .form-control{min-height:52px}
.toast-message{position:fixed;right:24px;bottom:24px;z-index:2000;min-width:280px}.summary-positive{color:var(--success)}.summary-negative{color:var(--danger)}
@media(max-width:991.98px){.app-content{margin-left:0}.app-main{padding:20px 16px 38px}.app-topbar{height:76px;padding:0 16px}.app-topbar h1{font-size:19px}.offcanvas .app-nav{margin-top:10px}.offcanvas .app-nav-link{color:#475467}.offcanvas .app-nav-link:hover{color:#111827;background:#f2f4f7}.offcanvas .app-nav-link.active{color:#fff}.login-shell{display:block}.login-form-wrap{min-height:100vh}}
@media(max-width:575.98px){.panel-body{padding:15px}.metric-card{padding:17px}.metric-card .metric-value{font-size:21px}.table thead th,.table tbody td{padding:11px 12px}.app-topbar .eyebrow{display:none}}
