.kpi .value { font-size: 1.8rem; font-weight: 600; }
.table-sm td, .table-sm th { vertical-align: middle; }
.status-Pendiente { background: #fff3cd; }
.status-Confirmado { background: #cfe2ff; }
.status-Recibido { background: #d1e7dd; }
.status-Cancelado { background: #e2e3e5; color: #6c757d; text-decoration: line-through; }
.badge-status-Pendiente { background: #ffc107; color: #000; }
.badge-status-Confirmado { background: #0d6efd; }
.badge-status-Recibido { background: #198754; }
.badge-status-Cancelado { background: #6c757d; }
.calendar td { width: 14.28%; height: 7rem; vertical-align: top; font-size: .85rem; }
.calendar td.other-month { background: #f8f9fa; color: #adb5bd; }
.calendar td.today { outline: 2px solid #198754; outline-offset: -2px; }
.calendar .event { display: block; padding: 1px 4px; margin-bottom: 2px; border-radius: 3px; text-decoration: none; color: inherit; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.bar { height: .6rem; background: #198754; border-radius: 2px; }
.bar.alt { background: #0d6efd; }
.weekly input { width: 4.5rem; padding: 0 .25rem; text-align: right; }
.module-card.disabled { opacity: .55; }
