:root {
  --navy: #1f3864;
  --dia: #d9e1f2;
  --amarillo: #fff2cc;
  --nueva: #e2efda;
  --grid: #bfbfbf;
  --excel: #217346;
}

body { background: #f3f4f6; font-size: .9rem; }
.bg-navy { background: var(--navy); }

/* Tablas estilo hoja de cálculo */
.sheet { width: 100%; border-collapse: collapse; background: #fff; }
.sheet th, .sheet td { border: 1px solid var(--grid); padding: .2rem .45rem; vertical-align: middle; }
.sheet .dia th { background: var(--dia); font-weight: 700; }
.sheet .cols th { background: var(--navy); color: #fff; font-weight: 600; white-space: nowrap; }
.sheet.hoy { outline: 3px solid #f4b400; }
.sheet a { color: inherit; text-decoration: none; }
.sheet a:hover { text-decoration: underline; }

.int-fallo { color: #b42318; font-weight: 600; }
.int-rir { color: #1d4ed8; }

/* Registro: celdas editables */
.registro { min-width: 960px; }
.registro .cols th { text-align: center; }
.registro td { padding: 0; background: var(--amarillo); }
.registro td.calc { background: #fff; text-align: right; padding: 0 .45rem; font-variant-numeric: tabular-nums; }
.registro tbody#nueva td { background: var(--nueva); }
.registro tbody#nueva td.calc { background: #f6faf3; }
.registro tr.sep td { border-top: 2px solid var(--navy); }

.cell { width: 100%; border: 0; background: transparent; padding: .25rem .45rem; font: inherit; color: inherit; }
.cell:focus { outline: 2px solid var(--excel); outline-offset: -2px; background: #fff; }
.cell.num { text-align: right; font-variant-numeric: tabular-nums; }
.cell.is-invalid { outline: 2px solid #dc3545; outline-offset: -2px; }
.cell::-webkit-outer-spin-button, .cell::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cell[type=number] { -moz-appearance: textfield; }

.btn-cell { border: 0; background: transparent; width: 100%; padding: .25rem; line-height: 1; }
.btn-cell:hover { background: rgba(0, 0, 0, .06); }

.flash-ok { animation: flash-ok .9s ease-out; }
@keyframes flash-ok { from { background: #c6efce; } }
.flash-err { background: #ffc7ce !important; }
