/* AFCT Flujo de Caja - estilos compactos profesionales */
body { font-size: 14px; background: #f6f7fb; }
/* Contenedor de gráficos: altura fija para evitar bucles de resize de Chart.js */
.chart-wrap { position: relative; width: 100%; }
.chart-wrap canvas { display: block; max-width: 100% !important; height: 100% !important; }
.navbar-brand { font-size: 1.05rem; }
.card { border: 1px solid #dde1e9; border-radius: 6px; }
.card-header { background: #f0f3f9; font-weight: 600; padding: .5rem .75rem; }
.table { font-size: 13px; }
.table thead { background: #1F4E78; color: #fff; }
.table-flujo td, .table-flujo th { padding: .35rem .5rem; white-space: nowrap; }
/* Encabezado de meses - tono celeste muy tenue */
.table-flujo thead { background: #eaf2fb !important; color: #1F4E78 !important; }
.table-flujo thead th { background: #eaf2fb !important; color: #1F4E78 !important; border-bottom: 2px solid #cfd8e6; font-weight: 600; text-align: center; vertical-align: middle; }
/* La primera columna (concepto) queda alineada a la izquierda */
.table-flujo thead th:first-child { text-align: left; }
/* Grupos (INGRESOS / EGRESOS) - tono lavanda muy tenue */
.table-flujo .grupo { background: #f0f3fa; color: #1F4E78; font-weight: 700; }
.table-flujo .grupo td { background: #f0f3fa; }
/* Totales y subtotales - gris azulado muy suave */
.table-flujo .total { background: #f5f7fc; font-weight: 700; border-top: 1px solid #d5dbe7; }
.table-flujo .total td { background: #f5f7fc; }
.table-flujo .subtotal { background: #f8fafd; font-weight: 600; font-style: italic; }
.table-flujo .subtotal td { background: #f8fafd; }
/* Superávit / déficit - verdes/rojos pastel */
.table-flujo .superavit { background: #eaf6ee; font-weight: 700; }
.table-flujo .superavit td { background: #eaf6ee; }
.table-flujo .deficit { background: #fbecee; font-weight: 700; }
.table-flujo .deficit td { background: #fbecee; }
/* Saldo - amarillo crema tenue */
.table-flujo .saldo { background: #fffaea; font-weight: 700; }
.table-flujo .saldo td { background: #fffaea; }
.kpi { padding: .8rem 1rem; border-left: 4px solid #1F4E78; background: #fff; border-radius: 4px; }
.kpi-label { color: #6c757d; font-size: 11px; text-transform: uppercase; }
.kpi-value { font-size: 1.3rem; font-weight: 700; }
.kpi.green { border-color: #198754; }
.kpi.red { border-color: #dc3545; }
.kpi.blue { border-color: #0d6efd; }
.btn-xs { padding: .15rem .4rem; font-size: 12px; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.login-box { max-width: 380px; margin: 8% auto; }
.form-label { font-size: 12px; font-weight: 600; color: #495057; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.form-control, .form-select { font-size: 13px; }
/* Evitar que selects e inputs se compriman demasiado en formularios densos */
form .row .form-control, form .row .form-select { min-width: 0; }
/* Inputs numéricos siempre alineados a la derecha */
input.text-end { text-align: right; }
h1, h2, h3, h4, h5 { color: #1F4E78; }
.page-title { border-bottom: 2px solid #1F4E78; padding-bottom: .35rem; margin-bottom: 1rem; }
