/* Cartera: todas las empresas mes a mes */
.alerta-ind b { color: var(--rojo); }
.agenda .punto, .cartera-tabla .punto, .cartera-leyenda .punto { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--linea-fuerte); background: transparent; flex: none; vertical-align: -1px; }
.agenda .punto.rojo, .cartera-tabla .punto.rojo, .cartera-leyenda .punto.rojo { background: var(--rojo); border-color: var(--rojo); }
.agenda .punto.ambar, .cartera-tabla .punto.ambar, .cartera-leyenda .punto.ambar { background: var(--ambar); border-color: var(--ambar); }
.agenda .punto.verde, .cartera-tabla .punto.verde, .cartera-leyenda .punto.verde { background: var(--verde); border-color: var(--verde); }
.agenda .punto.preparando, .cartera-tabla .punto.preparando { border-color: var(--ambar); background: var(--ambar-bg); }

/* Próximos vencimientos agrupados por fecha */
.agenda { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--linea); }
.agenda > li { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 4px 16px; padding: 12px 0; border-bottom: 1px solid var(--linea); }
.agenda .dia { display: grid; gap: 1px; align-content: start; }
.agenda .dia b { font-family: var(--f-mono); font-weight: 500; font-size: 1rem; }
.agenda .dia small { font-size: .78rem; color: var(--suave); }
.agenda > li.cerca .dia b { color: var(--ambar); }
.agenda ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.agenda ul li { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; }
.agenda ul li .punto { margin-top: 5px; }
@media (max-width: 560px) { .agenda > li { grid-template-columns: minmax(0, 1fr); } .agenda .dia { grid-auto-flow: column; justify-content: start; gap: 10px; align-items: baseline; } }

/* Tabla de empresas: en el celular cada empresa es una tarjeta */
.filtros-cartera { align-items: flex-end; }
.filtros-cartera .campo.corto { flex: 0 1 240px; }
.cartera-tabla td, .cartera-tabla th { vertical-align: middle; }
.cartera-tabla th.mes, .cartera-tabla td.mes { text-align: center; padding-left: 4px; padding-right: 4px; white-space: nowrap; }
.cartera-tabla td.empresa { min-width: 220px; }
.cartera-tabla td.empresa a { text-decoration: none; color: var(--tinta); }
.cartera-tabla td.empresa a:hover b { text-decoration: underline; }
.cartera-tabla td.empresa .mono { display: block; }
.cartera-tabla .punto-mes { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; }
.cartera-tabla .punto-mes:hover { background: var(--superficie-2); }
.cartera-tabla td.vence { white-space: nowrap; font-size: .88rem; }
.cartera-tabla td.igv { white-space: nowrap; }
.cartera-tabla td.igv span { display: block; }
.cartera-leyenda { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.cartera-leyenda > span { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 720px) {
  .cartera-tabla { border: 0; overflow: visible; }
  .cartera-tabla table, .cartera-tabla tbody { display: block; }
  .cartera-tabla thead { display: none; }
  .cartera-tabla tr { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px 4px; border: 1px solid var(--linea); border-radius: var(--r-control); padding: 12px; margin-bottom: 10px; background: var(--superficie); }
  .cartera-tabla td { border: 0; padding: 0; }
  .cartera-tabla td.empresa { grid-column: 1 / -1; min-width: 0; }
  .cartera-tabla td.mes { display: grid; justify-items: center; gap: 2px; font-size: .7rem; color: var(--suave); }
  .cartera-tabla td.mes::after { content: attr(data-mes); }
  .cartera-tabla td.igv { grid-column: 1 / -1; text-align: left; }
  .cartera-tabla td.igv span { display: inline; margin-left: 6px; }
  .cartera-tabla td.vence { grid-column: 1 / -1; white-space: normal; }
  .cartera-tabla td.sunat { grid-column: 1 / -1; justify-self: start; }
  .cartera-tabla td.abrir { grid-column: 1 / -1; }
  .cartera-tabla td.abrir .boton { width: 100%; }
}

.cartera-tabla td.sunat .automatico-cartera { display: block; margin-top: 4px; }

/* Portal del contador: pestañas */
.portal-pestanas { margin-bottom: -8px; }
.cartera-tabla td.empresa > span.suave:not(.mono) { display: block; }
.punto-texto { display: inline-flex; align-items: center; gap: 8px; }
.punto-texto .punto, .reportes-tabla .punto { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--linea-fuerte); background: transparent; flex: none; }
.punto-texto .punto.rojo { background: var(--rojo); border-color: var(--rojo); }
.punto-texto .punto.ambar { background: var(--ambar); border-color: var(--ambar); }
.punto-texto .punto.verde { background: var(--verde); border-color: var(--verde); }
.punto-texto .punto.preparando { border-color: var(--ambar); background: var(--ambar-bg); }

/* Calendario del mes */
.cal-barra { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px 20px; flex-wrap: wrap; }
.cal-nav { display: flex; align-items: center; gap: 8px; }
.cal-nav h2 { min-width: 11ch; text-align: center; text-transform: none; }
.cal-nav .boton.secundario { min-width: 40px; padding-inline: 10px; font-size: 1.1rem; }
.cal-barra .campo.corto { flex: 0 1 260px; }
.cal-mes { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--linea); border-radius: var(--r-control); overflow: hidden; background: var(--superficie); }
.cal-dsem { font-size: .74rem; font-weight: 600; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; background: var(--superficie-2); padding: 7px 8px; border-bottom: 1px solid var(--linea); }
.cal-dia { min-height: 104px; padding: 6px; display: grid; align-content: start; gap: 3px; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea); color: var(--tinta); text-decoration: none; min-width: 0; position: relative; }
.cal-dia:nth-child(7n) { border-right: 0; }
.cal-dia.fuera { background: var(--superficie-2); }
.cal-dia.pasado .cal-num { color: var(--suave); }
.cal-dia.pasado .cal-ev { opacity: .55; }
a.cal-dia:hover { background: var(--superficie-2); text-decoration: none; }
.cal-num { font-family: var(--f-mono); font-size: .8rem; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; }
.cal-dia.hoy .cal-num { background: var(--noche); color: var(--oro); font-weight: 500; }
.cal-ev { display: block; font-size: .72rem; line-height: 1.3; padding: 2px 6px; border-radius: 4px; background: var(--superficie-2); border-left: 3px solid var(--oro); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-ev.sire { border-left-color: var(--foco); }
.cal-ev i { font-style: normal; font-weight: 600; color: var(--suave); font-size: .66rem; text-transform: uppercase; letter-spacing: .03em; }
.cal-ev.cumplido { text-decoration: line-through; color: var(--suave); }
.cal-mas { font-size: .72rem; color: var(--suave); padding-left: 6px; }
.cal-cuenta { display: none; }
@media (max-width: 760px) {
  .cal-dia { min-height: 58px; padding: 4px; justify-items: center; }
  .cal-ev, .cal-mas { display: none; }
  .cal-dia.con .cal-cuenta { display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--oro); color: var(--noche); font-size: .72rem; font-weight: 700; }
  .cal-dsem { padding: 6px 2px; text-align: center; font-size: .66rem; }
}
.agenda > li.paso .dia b { color: var(--suave); }
#cal-lista .agenda li[id] { scroll-margin-top: 90px; }
#cal-lista .agenda li:target { background: var(--superficie-2); }

/* Reportes */
.rep-detalle { align-self: center; flex: 1 1 260px; }
.rep-cartera { display: flex; justify-content: space-between; align-items: center; gap: 12px 20px; flex-wrap: wrap; border: 1px solid var(--oro); border-radius: var(--r-control); padding: 14px 16px; background: var(--superficie-2); }
.rep-cartera > div { flex: 1 1 320px; }
.reportes-tabla td { vertical-align: middle; }

/* Accesos */
.accesos-formas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 16px; align-items: start; }
.portal-accesos .campo.ruc { flex: 0 1 190px; }
.portal-accesos .hoja-cabeza p { color: var(--suave); }

/* La columna «Abrir» solo hace falta en el celular (en la computadora, el nombre de la empresa abre su cierre) */
@media (min-width: 721px) { .cartera-tabla th:last-child, .cartera-tabla td.abrir { display: none; } }
#v-reportes .campo.corto { flex: 0 1 260px; }
