/* Vista Contabilidad — tabla de detalle + calendario de eventos.
   Reutiliza .kpi-grid, .card, .data-table, .badge y los tokens var(--*). */
.inv-table td.mono, .inv-table th { font-family: var(--mono); }
.inv-table td.mono { font-size: 12px; }
.inv-table th:nth-child(n+3), .inv-table td:nth-child(n+3) { text-align: right; }
.inv-table .badge { font-size: 10px; }

/* ── Calendario de eventos (rejilla mensual de 7 columnas) ── */
.cont-cal { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.cont-cal-dow { display: grid; grid-template-columns: repeat(7, 1fr); border-bottom: 1px solid var(--border); }
.cont-cal-dow > div { padding: 10px 8px; text-align: center; font-size: 10px; font-family: var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .07em; }
.cont-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.cont-cal-cell {
  min-height: 92px; padding: 6px 7px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 4px;
}
.cont-cal-cell:nth-child(7n) { border-right: none; }
.cont-cal-cell.empty { background: var(--card2); }
.cont-cal-cell.has { background: var(--hover); }
/* Color de la casilla según el neto del día (estilo calendario de trades) */
.cont-cal-cell.ingreso { background: rgba(0,160,110,.14); outline: 1px solid rgba(16,185,129,.35); outline-offset: -1px; }
.cont-cal-cell.gasto   { background: rgba(180,30,50,.14); outline: 1px solid rgba(239,68,68,.35); outline-offset: -1px; }
.cont-cal-cell.be      { background: rgba(200,120,0,.14); outline: 1px solid rgba(255,165,2,.35); outline-offset: -1px; }
.cont-cal-cell.today { outline: 2px solid var(--accent); outline-offset: -2px; }
.cont-cal-num { font-size: 11px; font-weight: 600; color: var(--muted); font-family: var(--mono); }
.cont-cal-cell.has .cont-cal-num { color: var(--text); }
.cont-cal-evs { display: flex; flex-direction: column; gap: 3px; }

/* Totales del día: ingresos (verde) y gastos (rojo), grandes y centrados */
.cont-cal-amts { flex: 1; display: flex; flex-direction: column; gap: 3px; align-items: center; justify-content: center; }
.cont-day-in, .cont-day-out {
  font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -.4px; line-height: 1.05;
}
.cont-day-in { color: var(--green); }
.cont-day-out { color: var(--red); }
.cont-day-mark { font-size: 9px; margin-left: 4px; vertical-align: middle; }
.cont-day-mark.f { color: var(--accent); }
.cont-day-mark.q { color: var(--red); }

.cont-ev {
  font-size: 9px; font-family: var(--mono); font-weight: 600; padding: 2px 5px;
  border-radius: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  border: 1px solid transparent;
}
.cont-ev.ev-compra { background: var(--red-bg);   color: var(--red); }
.cont-ev.ev-retiro { background: var(--green-bg); color: var(--green); }
.cont-ev.ev-fond   { background: var(--accent-bg); color: var(--accent); }
.cont-ev.ev-quem   { background: var(--red-bg);   color: var(--red); border-color: var(--red); }

/* ── Ranking de props (agregado por empresa) ── */
.prop-rank { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.prop-row {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 12px; border-radius: var(--radius-sm);
  background: var(--card2); border: 1px solid var(--border);
  transition: border-color var(--dur), transform var(--dur) var(--ease);
}
.prop-row:hover { border-color: var(--glass-border); transform: translateX(2px); }
.prop-rank-n {
  flex: none; width: 26px; height: 26px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700; font-size: 13px;
  background: var(--cyan-bg); color: var(--cyan);
}
.prop-row:nth-child(1) .prop-rank-n { background: var(--green-bg); color: var(--green); }
.prop-main { flex: 1; min-width: 0; }
.prop-name { font-weight: 600; color: var(--text-strong); font-size: 14px; margin-bottom: 3px; }
.prop-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 10.5px; font-family: var(--mono); color: var(--muted); }
.prop-meta b { color: var(--text); font-weight: 600; }
.prop-ben { flex: none; font-family: var(--font-display); font-weight: 700; font-size: 16px; letter-spacing: -.4px; }
.prop-ben.pos { color: var(--green); }
.prop-ben.neg { color: var(--red); }
.prop-empty { padding: 24px 8px; text-align: center; font-size: 12px; font-family: var(--mono); color: var(--muted); }

/* ── Pestaña Empresas ── */
.emp-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.emp-empty { text-align: center; padding: 48px 20px; }

@media (max-width: 640px) {
  .cont-cal-cell { min-height: 64px; padding: 5px 5px; }
  .cont-ev { font-size: 8px; }
  .cont-day-in, .cont-day-out { font-size: 13px; }
}
