:root {
    --sidebar-width: 240px;
    --topbar-bg: #17324d;
    --sidebar-bg: #10263b;
    --sidebar-link: #c9d6e2;
}
body { background: #f4f7fa; font-size: .94rem; }
.topbar { background: var(--topbar-bg); min-height: 56px; }
.navbar-brand { font-weight: 700; letter-spacing: .2px; }
.brand-mini, .brand-icon { display:inline-flex; align-items:center; justify-content:center; background:#0d6efd; color:#fff; border-radius:10px; font-weight:800; }
.brand-mini { width:32px; height:32px; margin-right:8px; }
.brand-icon { width:64px; height:64px; font-size:1.35rem; }
.sidebar { position: fixed; top: 56px; bottom: 0; left: 0; z-index: 100; padding: 0; box-shadow: inset -1px 0 0 rgba(0,0,0,.08); background: var(--sidebar-bg); overflow-y:auto; }
.sidebar-sticky { min-height: calc(100vh - 56px); }
.sidebar .nav-link { color: var(--sidebar-link); padding: .68rem 1rem; border-left: 3px solid transparent; }
.sidebar .nav-link i { width: 24px; display:inline-block; }
.sidebar .nav-link:hover, .sidebar .nav-link.active { color:#fff; background:rgba(255,255,255,.08); border-left-color:#4ea1ff; }
.sidebar-heading { color:#7f9bb4; font-size:.7rem; letter-spacing:.1em; }
.main-content { min-height: calc(100vh - 96px); }
.card { border:0; box-shadow: 0 2px 9px rgba(22,43,64,.06); }
.card-header { background:#fff; border-bottom:1px solid #edf1f4; font-weight:600; }
.stat-card .stat-icon { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; }
.table thead th { white-space:nowrap; font-size:.82rem; text-transform:uppercase; letter-spacing:.02em; color:#5c6773; background:#f7f9fb; }
.table td { vertical-align:middle; }
.form-label { font-weight:600; }
.required::after { content:' *'; color:#dc3545; }
.login-page { background: radial-gradient(circle at top left, #315f86 0, #10263b 45%, #091726 100%); }
.app-footer { margin-left: var(--sidebar-width); background:#fff; border-top:1px solid #e9eef3; }
.money { text-align:right; white-space:nowrap; }
.ui-datepicker { z-index: 2000 !important; }
@media (min-width: 768px) { .main-content { margin-left: 0; } }
@media (max-width: 767.98px) { .sidebar { position: fixed; top:56px; width:260px; } .app-footer { margin-left:0; } }
@media print { .topbar,.sidebar,.app-footer,.no-print { display:none!important; } .main-content { width:100%!important; margin:0!important; padding:0!important; } body { background:#fff; } }
