:root { --primario: #1f4e79; }
body { background: #f4f6f9; }
.bg-primario { background: var(--primario); }
.btn-primario { background: var(--primario); border-color: var(--primario); color: #fff; }
.btn-primario:hover { background: #173b5c; border-color: #173b5c; color: #fff; }
.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.login-box { max-width: 380px; margin: 8vh auto 0; }
.saldo-num { font-size: 2.4rem; font-weight: 700; line-height: 1; }
.estado { font-size: .75rem; }
.cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cal .dia-nombre { text-align: center; font-size: .75rem; color: #6c757d; font-weight: 600; padding: 4px 0; }
.cal .dia { background: #fff; min-height: 84px; padding: 3px; font-size: .72rem; border-radius: 4px; overflow: hidden; }
.cal .dia.fuera { background: transparent; }
.cal .dia.finde { background: #eceff3; }
.cal .dia.feriado { background: #fdecec; }
.cal .dia.hoy { outline: 2px solid var(--primario); }
.cal .num { font-weight: 600; color: #495057; }
.cal .chip { display: block; border-radius: 3px; padding: 0 3px; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #fff; }
.cal .chip.pend { opacity: .55; }
.table td, .table th { vertical-align: middle; }
@media (max-width: 576px) {
  .cal .dia { min-height: 56px; font-size: .62rem; }
  .saldo-num { font-size: 2rem; }
}
