:root {
  --sidebar: #1a2332;
  --acento: #e8a33d;
  --fondo: #f5f6f8;
  --azul: #2c5f8a;
  --verde: #27ae60;
  --rojo: #c0392b;
  --gris: #9aa3b2;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Segoe UI", system-ui, sans-serif;
  background: var(--fondo);
  color: #1a2332;
}

.vt-main-contenido h1 { font-size: 1.3rem; margin: 0; color: #1a2332; }
h2 { font-size: 1.05rem; margin: 24px 0 10px; color: #1a2332; }

/* Encabezado de bienvenida (igual que DashboardBienvenida en el escritorio) */
.vt-saludo {
  margin: 0;
  font-size: 0.8rem;
  font-weight: bold;
  letter-spacing: 0.5px;
  color: var(--azul);
}
.vt-saludo-nombre {
  font-size: 0.95rem;
  color: var(--acento);
}
.vt-titulo-fecha {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 6px;
}
.vt-fecha { color: #5b6878; font-size: 0.9rem; }
.vt-subtitulo { margin: 0 0 18px; color: #5b6878; font-size: 0.95rem; }
.vt-linea { height: 1px; background: #e2e5ea; margin-bottom: 20px; }

.vt-login-caja {
  width: 340px;
  background: white;
  padding: 28px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}
.vt-login-caja h2 { margin-top: 0; font-size: 1.1rem; }

label { display: block; font-size: 0.85rem; color: #6c757d; margin: 12px 0 4px; }

input, select {
  width: 100%;
  padding: 10px;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 6px;
}

.btn-principal {
  width: 100%;
  margin-top: 18px;
  padding: 12px;
  background: var(--verde);
  color: white;
  border: none;
  border-radius: 6px;
  font-weight: bold;
  cursor: pointer;
}

.error { color: var(--rojo); font-weight: bold; margin-top: 10px; }

#barra-placa {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
#barra-placa label { margin: 0; }
#barra-placa select { width: auto; min-width: 130px; }
#btn-configurar { margin-left: auto; }
.ayuda { color: #6c757d; font-size: 0.85rem; margin-left: auto; }

.banner-warn {
  background: #fff3cd;
  border: 1px solid #ffe08a;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 0.9rem;
}

/* Revisión Anual de Tasas (2026-07-22) y Saldo Flypass (2026-07-24) --
   ambos banners son <a>, no <p>, como el resto de .banner-warn, para que
   sean clicables de punta a punta -- sin botón para ocultarlos a
   propósito (solo desaparecen cuando ya no queda nada pendiente, ver
   CLAUDE.md "Historización de tasas por cambio de año" y "Flypass:
   prepago de peajes"). display:block va SOLO cuando no están `hidden` --
   una regla de ID sin esa condición le gana en especificidad a
   `[hidden]{display:none}` del navegador y el banner se seguía viendo
   (vacío, solo el fondo/borde) aunque JS ya le hubiera puesto
   `hidden=true`. */
#banner-revision-anual:not([hidden]),
#banner-flypass:not([hidden]) {
  display: block;
  margin-bottom: 16px;
  color: #7a5b00;
  text-decoration: none;
  font-weight: bold;
}
#banner-revision-anual:hover,
#banner-flypass:hover { text-decoration: underline; }

.tarjetas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
}

.tarjeta {
  background: white;
  border: 1px solid #dcdfe4;
  border-radius: 8px;
  padding: 16px;
}
.tarjeta .icono { font-size: 1.6rem; }
.tarjeta .titulo { font-size: 0.85rem; color: #6c757d; margin: 6px 0; }
.tarjeta .valor { font-size: 1.15rem; font-weight: bold; }

/* Tarjeta "CxC Pendiente" clicable -> Cuentas por Cobrar (2026-08-03).
   Mismo patrón/clase que provisiones/style.css (copiada aquí porque este
   módulo no importa esa hoja de estilos). */
.tarjeta-clickable { cursor: pointer; transition: box-shadow 0.15s, transform 0.15s; }
.tarjeta-clickable:hover { box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12); transform: translateY(-1px); }

table {
  width: 100%;
  border-collapse: collapse;
  background: white;
  border-radius: 8px;
  overflow: hidden;
}
th, td {
  padding: 10px 12px;
  text-align: center;
  border-bottom: 1px solid #eee;
  font-size: 0.9rem;
}
th { background: #eef1f5; color: #444; }

.cumple-si { color: var(--verde); font-weight: bold; }
.cumple-no { color: var(--rojo); font-weight: bold; }
.cumple-na { color: var(--gris); }

.texto-bloqueado { color: var(--gris); font-size: 0.85rem; }

/* Sección plegable (Saldo Inicial de Caja) -- mismo espíritu que los
   grupos plegables del sidebar (shared/sidebar.js), colores propios para
   el fondo claro del panel en vez de los del sidebar oscuro. */
.seccion-plegable-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.05rem;
  font-weight: bold;
  color: #1a2332;
  padding: 6px 0;
  margin-top: 24px;
}
.seccion-plegable-btn:hover { color: var(--azul); }
.seccion-plegable-flecha {
  font-size: 0.75rem;
  color: #6c757d;
  transition: transform 0.15s ease;
  display: inline-block;
}
.seccion-plegable-flecha.abierta { transform: rotate(90deg); }
.seccion-plegable-contenido { margin-top: 6px; }

#barra-filtros label { margin: 0; }
