:root {
    --primary: #0d6efd;
    --primary-dark: #0a58ca;
    --sidebar-bg: #1a2332;
    --sidebar-hover: #253347;
    --sidebar-active: #0d6efd;
    --body-bg: #f0f2f5;
    --card-shadow: 0 2px 12px rgba(0,0,0,.08);
}
* { font-family: 'Cairo', sans-serif; }
body { background: var(--body-bg); margin: 0; min-height: 100vh; }

.sidebar { width: 260px; min-height: 100vh; background: var(--sidebar-bg); color: #fff; position: fixed; right: 0; top: 0; z-index: 1000; display: flex; flex-direction: column; transition: transform .3s; }
.sidebar-header { padding: 24px 20px 16px; text-align: center; border-bottom: 1px solid rgba(255,255,255,.1); }
.sidebar-logo { width: 64px; height: 64px; object-fit: contain; border-radius: 12px; background: #fff; padding: 4px; }
.sidebar-icon { font-size: 40px; color: var(--primary); }
.sidebar .nav { padding: 12px 0; flex: 1; overflow-y: auto; }
.sidebar .nav-link { color: rgba(255,255,255,.7); padding: 10px 24px; display: flex; align-items: center; gap: 10px; font-size: 14px; transition: all .2s; }
.sidebar .nav-link:hover { color: #fff; background: var(--sidebar-hover); }
.sidebar .nav-link.active { color: #fff; background: var(--sidebar-active); font-weight: 600; }
.sidebar .nav-link i { font-size: 18px; width: 24px; text-align: center; }
.sidebar-footer { padding: 16px 20px; border-top: 1px solid rgba(255,255,255,.1); text-align: center; font-size: 13px; }

.main-content { margin-right: 260px; flex: 1; padding: 20px; min-height: 100vh; width: calc(100% - 260px); }

.stat-card { border: none; border-radius: 16px; box-shadow: var(--card-shadow); transition: transform .2s; }
.stat-card:hover { transform: translateY(-2px); }
.stat-card .card-body { padding: 20px; }
.stat-card .stat-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; }

.card { border: none; border-radius: 16px; box-shadow: var(--card-shadow); }
.card-header { background: #fff; border-bottom: 1px solid #eee; font-weight: 600; border-radius: 16px 16px 0 0 !important; }

.table { font-size: 14px; }
.table th { background: #f8f9fa; font-weight: 600; white-space: nowrap; }
.badge { font-weight: 500; padding: 5px 12px; border-radius: 20px; }

.login-wrapper { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--sidebar-bg), var(--primary-dark)); }
.login-card { width: 400px; border-radius: 20px; box-shadow: 0 8px 40px rgba(0,0,0,.15); }

.btn-whatsapp { background: #25D366; color: #fff; border: none; border-radius: 8px; padding: 4px 10px; font-size: 13px; }
.btn-whatsapp:hover { background: #1da851; color: #fff; }

@media print { body * { visibility: hidden; } .print-area, .print-area * { visibility: visible; display: block; } .print-area { position: absolute; top: 0; right: 0; width: 100%; } }

@media (max-width: 991px) { .sidebar { transform: translateX(100%); } .sidebar.show { transform: translateX(0); } .main-content { margin-right: 0; width: 100%; } }

.reminder-item { padding: 10px 14px; border-bottom: 1px solid #f0f0f0; font-size: 13px; }
.reminder-item:last-child { border-bottom: none; }
.reminder-overdue { border-right: 3px solid #dc3545; }
.reminder-today { border-right: 3px solid #ffc107; }
.reminder-upcoming { border-right: 3px solid #198754; }
