:root {
    --app-primary: #16213e;
    --app-secondary: #0f3460;
    --app-accent: #2f80ed;
    --app-bg: #f4f7fb;
}
body { background: var(--app-bg); color: #1f2937; }
.app-navbar { background: linear-gradient(120deg, var(--app-primary), var(--app-secondary)); }
.card { border: 0; border-radius: 1rem; }
.card-header { background: transparent; border-bottom: 1px solid #eef1f5; }
.stat-card { overflow: hidden; position: relative; }
.stat-card::after { content:""; position:absolute; right:-30px; top:-30px; width:100px; height:100px; border-radius:50%; background:rgba(47,128,237,.08); }
.stat-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; font-size:1.3rem; background:#eef5ff; color:var(--app-accent); }
.table thead th { color:#6b7280; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; border-bottom-width:1px; }
.table > :not(caption) > * > * { padding:.85rem .75rem; }
.form-control, .form-select { border-radius:.7rem; padding:.65rem .8rem; border-color:#dce2ea; }
.btn { border-radius:.7rem; }
.btn-primary { background:var(--app-accent); border-color:var(--app-accent); }
.balance-positive { color:#b42318; }
.balance-negative { color:#9a6700; }
.balance-zero { color:#067647; }
.login-page { min-height:100vh; display:grid; place-items:center; background:radial-gradient(circle at top right,#dbeafe,transparent 35%), linear-gradient(135deg,#f8fafc,#e8eef8); }
.login-card { width:min(430px,calc(100% - 32px)); border-radius:1.25rem; }
.empty-state { padding:3rem 1rem; color:#6b7280; text-align:center; }
@media print {
  nav, footer, .no-print, .btn { display:none!important; }
  body { background:#fff; }
  main { padding:0!important; }
  .card { box-shadow:none!important; }
}
