/* Plataforma Baqueira · panel local.
   Marca (manual de identidad 2025): azul #1D2D3E y el azul de los logos #0A293C, gris #EDEDED y
   salvia #929E9B. La tipografía de marca, Commuters Sans, no está instalada: Urbanist es la geométrica
   más cercana. El logo va siempre en blanco sobre el azul del menú, sin transparencias ni efectos. */
:root {
  --fondo: #EDEDED; --papel: #FFFFFF; --tinta: #1D2D3E; --texto: #2E3B47; --tenue: #5C6866;
  --linea: #D9DDDC; --barra: #0A293C; --barra-texto: #EDEDED; --barra-tenue: #A9B4B1; --barra-linea: #2C4557;
  --acento: #1D2D3E; --sobre-acento: #FFFFFF;
  --realce: #929E9B; --realce-suave: #E4E8E7; --realce-tinta: #4C5957;
  --ok: #2F7D5B; --ok-suave: #E2F2EA; --warn: #8F5C0C; --warn-suave: #FBF0DA;
  --bad: #A93A3A; --bad-suave: #F8E3E1; --neutro-suave: #E1E5E4; --fila-dudosa: #FFFBF2; --fila-alterna: #F6F7F7;
  --letra: "Urbanist", "Segoe UI", system-ui, sans-serif;
  /* Las cifras de las tablas: Urbanist dibuja cada número con su propio ancho (el 1 angosto) y una cifra con unos
     parecía más chica que otra mayor; Segoe UI los dibuja todos iguales, así se alinean por su valor. */
  --cifras: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
  --ancho-menu: 15.5rem;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --fondo: #0B1620; --papel: #12212D; --tinta: #EDEDED; --texto: #C9D0CE; --tenue: #95A19E;
    --linea: #25343F; --barra: #06111A; --barra-texto: #EDEDED; --barra-tenue: #95A19E; --barra-linea: #22323D;
    --acento: #EDEDED; --sobre-acento: #0A293C;
    --realce: #929E9B; --realce-suave: #1F2D2C; --realce-tinta: #C3CCCA;
    --ok: #6DC59C; --ok-suave: #14312A; --warn: #E2B25A; --warn-suave: #382C12;
    --bad: #EF8B85; --bad-suave: #3E1F1F; --neutro-suave: #1A2B36; --fila-dudosa: #1B2226; --fila-alterna: #16242F;
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--fondo); color: var(--texto); font: 500 15px/1.5 var(--letra); }
a { color: var(--acento); text-underline-offset: .18em; }
a:focus-visible, input:focus-visible, summary:focus-visible { outline: 2px solid var(--acento); outline-offset: 2px; }
code { font: 500 .82em var(--mono); background: var(--neutro-suave); color: var(--tinta); padding: .1em .35em; border-radius: 3px; }
h1, h2, h3 { color: var(--tinta); margin: 0; text-wrap: balance; }
h1 { font-size: 1.9rem; font-weight: 800; letter-spacing: -.015em; }
h2 { font-size: 1.12rem; font-weight: 700; }

/* Menú lateral y contenido */
.app { display: grid; grid-template-columns: var(--ancho-menu) minmax(0, 1fr); min-height: 100vh; }
.app.menu-cerrado { grid-template-columns: 0 minmax(0, 1fr); }
.lateral { position: sticky; top: 0; height: 100vh; overflow-y: auto; background: var(--barra); color: var(--barra-texto);
  display: flex; flex-direction: column; gap: 1rem; padding: 1.1rem .75rem 1.2rem; }
.menu-cerrado .lateral { visibility: hidden; padding: 0; overflow: hidden; }
.lateral a:focus-visible { outline-color: var(--barra-texto); }
.lateral-marca { display: block; padding: .35rem .6rem .5rem; }
.lateral-marca img { display: block; width: 100%; max-width: 12rem; height: auto; }
.lateral-nav { display: flex; flex-direction: column; gap: .12rem; }
.lateral-nav a { color: var(--barra-tenue); text-decoration: none; font-weight: 600; font-size: .92rem; padding: .45rem .65rem;
  border-radius: 4px; display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.lateral-nav a:hover { color: var(--barra-texto); background: #14374D; }
.lateral-nav a.activo { color: var(--barra-texto); background: #1B4159; }
.lateral-grupo { margin: 1.1rem 0 .2rem; padding: 0 .65rem; font-size: .68rem; font-weight: 800; letter-spacing: .15em;
  text-transform: uppercase; color: #7D93A1; }
.lateral-nav a.lateral-grupo { padding: .3rem .65rem; font-size: .68rem; color: #7D93A1; }
.lateral-nav a.lateral-grupo:hover, .lateral-nav a.lateral-grupo.activo { color: var(--barra-texto); }
.globo { background: var(--realce); color: #0A293C; font-size: .7rem; font-weight: 800; border-radius: 999px; padding: .05rem .45rem; }
.principal { min-width: 0; display: flex; flex-direction: column; }
.barra-sup { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; gap: .9rem; padding: .6rem 1.5rem;
  background: var(--fondo); border-bottom: 1px solid var(--linea); }
.alternar { display: inline-flex; align-items: center; justify-content: center; width: 2.3rem; height: 2.3rem; padding: 0;
  border: 1px solid var(--linea); border-radius: 4px; background: var(--papel); color: var(--tinta); cursor: pointer; }
.alternar:hover { border-color: var(--realce); }
.barra-marca { display: none; align-items: center; gap: .55rem; color: var(--tinta); text-decoration: none; font-weight: 700; }
.barra-marca img { display: block; height: 22px; width: auto; }
.menu-cerrado .barra-marca { display: inline-flex; }
.modo { margin-left: auto; font-size: .78rem; font-weight: 600; color: var(--tenue); }
.modo.prueba::before, .modo.oficial::before { content: ""; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: #E2B25A; margin-right: .45rem; vertical-align: .05em; }
.modo.oficial::before { background: #5B9A6E; }
@media (prefers-reduced-motion: no-preference) { .app { transition: grid-template-columns .18s ease; } }

/* Estructura */
.contenido { width: 100%; max-width: 86rem; margin: 0 auto; padding: 1.6rem 1.5rem 3rem; display: flex; flex-direction: column; gap: 1.4rem; }
.encabezado { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.eyebrow { margin: 0 0 .25rem; font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--tenue); }
.sub, .nota { margin: 0; color: var(--tenue); max-width: 60rem; }
.nota { font-size: .85rem; margin-top: -.6rem; }
.bloque { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .8rem; min-width: 0; }
.dos { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1.4rem; }
.vacio { color: var(--tenue); margin: 0; }
.contador { font-size: .8rem; font-weight: 800; color: var(--realce-tinta); background: var(--realce-suave); border-radius: 999px; padding: .1rem .55rem; vertical-align: .15em; margin-left: .3rem; }

/* Procesos */
.procesos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.proceso { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .45rem; color: inherit; text-decoration: none; }
.proceso.enlace { border-color: var(--realce); }
.proceso.enlace:hover { box-shadow: 0 2px 10px rgba(10,41,60,.12); }
.proceso-cab { display: flex; justify-content: space-between; align-items: center; }
.modulo { font: 500 .8rem var(--mono); color: var(--tenue); }
.proceso h2 { font-size: 1.05rem; }
.proceso-detalle { margin: 0; font-size: .9rem; flex: 1; }
.proximo { margin: 0; font-size: .82rem; font-weight: 700; color: var(--tinta); border-top: 1px solid var(--linea); padding-top: .55rem; }
.proceso h2 a { color: inherit; text-decoration: none; }
.proceso h2 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.por-decidir { border-color: var(--warn); border-left-width: 5px; }
.por-decidir > ul { margin: 0; padding-left: 1.1rem; display: grid; gap: .25rem; }
.version-nueva { display: flex; flex-direction: column; gap: .55rem; border-top: 1px solid var(--linea); padding-top: .75rem; }
.version-nueva .version-cab { margin: 0; }
.version-nueva table { max-width: 44rem; }
.version-nueva .acciones { font-size: .86rem; gap: .5rem 1rem; }
.version-nueva td.baja { color: var(--bad); }
.version-nueva tbody th { text-transform: none; letter-spacing: 0; font-size: .86rem; font-weight: 700; color: var(--tinta); }
.no-tomados { border-color: var(--warn); border-left-width: 5px; }
.no-tomados ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; font-size: .88rem; }
.no-tomados li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .55rem; }
.no-tomados .motivo { flex-basis: 100%; color: var(--tenue); font-size: .82rem; overflow-wrap: anywhere; }
.entrega-a-mano { font-size: .84rem; }
.entrega-a-mano summary { cursor: pointer; color: var(--tenue); font-weight: 600; }
.entrega-a-mano form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .5rem .7rem; margin: .55rem 0 0; }
.entrega-a-mano form p { margin: 0; flex-basis: 100%; overflow-wrap: anywhere; }
.entrega-a-mano .campo { flex: 1 1 9rem; font-size: .8rem; }

/* Hitos y decisiones */
.hitos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.hitos li { display: grid; grid-template-columns: 6.5rem 1fr auto; gap: .8rem; align-items: center; padding: .55rem 0; border-top: 1px solid var(--linea); }
.hitos li:first-child { border-top: 0; }
.hitos .fecha { font-weight: 800; color: var(--tinta); font-variant-numeric: tabular-nums; }
.hitos li.pasado .fecha, .hitos li.pasado .texto { color: var(--tenue); }
.pie-hitos { margin: 0; font-size: .8rem; }
.resumen-decisiones .numero { margin: 0; font-size: 2.6rem; font-weight: 800; color: var(--tinta); line-height: 1; }
.resumen-decisiones p { margin: 0; }
.boton { align-self: flex-start; background: var(--acento); color: var(--sobre-acento); text-decoration: none; font-weight: 700; padding: .5rem .9rem; border-radius: 4px; }
.boton:hover { filter: brightness(1.12); }

/* Indicadores */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1rem; }
.kpi { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: .9rem 1rem; display: flex; flex-direction: column; gap: .15rem; }
.kpi-v { font-size: 1.8rem; font-weight: 800; color: var(--tinta); font-variant-numeric: tabular-nums; line-height: 1.1; }
.kpi-v small { font-size: 1rem; color: var(--tenue); font-weight: 700; }
.kpi-l { font-size: .82rem; color: var(--tenue); font-weight: 600; }
.kpi.acento { border-color: var(--realce); background: var(--realce-suave); }
.kpi.acento .kpi-v { color: var(--realce-tinta); }

/* Pestañas de mes */
.pestanas { display: flex; flex-wrap: wrap; gap: .3rem; background: var(--neutro-suave); padding: .25rem; border-radius: 6px; }
.pestanas a { text-decoration: none; color: var(--tenue); font-weight: 700; font-size: .9rem; padding: .35rem .8rem; border-radius: 4px; }
.pestanas a.activo { background: var(--papel); color: var(--tinta); box-shadow: 0 1px 2px rgba(10,41,60,.12); }
.pestanas.proyectos { display: inline-flex; margin: 0 0 1rem; }          /* Numa · Zentra en un mismo reporte */

/* Tablas */
.tabla-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .88rem; }
th { text-align: left; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--tenue); padding: .55rem .6rem; border-bottom: 1px solid var(--linea); white-space: nowrap; }
td { padding: .55rem .6rem; border-top: 1px solid var(--linea); vertical-align: top; }
tbody tr:first-child td { border-top: 0; }
.num { text-align: right; font-family: var(--cifras); font-variant-numeric: tabular-nums; white-space: nowrap; }
td.entrada { color: var(--ok); }
td.desc { min-width: 16rem; color: var(--texto); }
td.tercero { min-width: 11rem; }
td.motivo { min-width: 18rem; font-size: .82rem; color: var(--tenue); }
td.nw { white-space: nowrap; }
tr.fila-dudosa td { background: var(--fila-dudosa); }
tr.sin-pareja td { background: var(--bad-suave); }
.cuenta-tag { display: inline-block; font-weight: 700; color: var(--tinta); background: var(--neutro-suave); border-radius: 3px; padding: .1rem .4rem; white-space: nowrap; }
.cuenta-tag.otra { background: var(--warn-suave); color: var(--warn); }

/* Estados */
.chip { display: inline-flex; align-items: center; gap: .35rem; font-size: .74rem; font-weight: 800; padding: .2rem .5rem; border-radius: 3px; white-space: nowrap; }
.chip::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.chip.ok { background: var(--ok-suave); color: var(--ok); }
.chip.warn { background: var(--warn-suave); color: var(--warn); }
.chip.bad { background: var(--bad-suave); color: var(--bad); }
.chip.accent { background: var(--realce-suave); color: var(--realce-tinta); }
.chip.neutro { background: var(--neutro-suave); color: var(--tenue); }
.avisos { margin: 0; padding-left: 1.1rem; font-size: .85rem; color: var(--warn); }

/* Barras de origen */
.barras { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.barras li { display: grid; grid-template-columns: 11rem 1fr 2.5rem; gap: .7rem; align-items: center; font-size: .88rem; }
.barras-pista { height: .6rem; background: var(--neutro-suave); border-radius: 3px; overflow: hidden; }
.barras-valor { display: block; height: 100%; background: var(--tinta); border-radius: 3px; }
.barras-n { text-align: right; font-weight: 800; color: var(--tinta); font-variant-numeric: tabular-nums; }

/* Reglas */
.filtro { display: flex; align-items: center; gap: .8rem; }
.filtro input { flex: 1; max-width: 32rem; font: 600 .95rem var(--letra); padding: .55rem .75rem; border: 1px solid var(--linea); border-radius: 4px; background: var(--papel); color: var(--texto); }
.conteo { color: var(--tenue); font-size: .85rem; }
.condiciones { margin: 0; padding-left: 1rem; }
.nota-regla { font-size: .8rem; color: var(--tenue); margin-top: .3rem; max-width: 30rem; }

/* Decisiones */
.decisiones { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.decision { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .6rem; scroll-margin-top: 4rem; }
.decision:target { border-color: var(--realce); box-shadow: 0 0 0 2px var(--realce-suave); }
.decision p { margin: 0; max-width: 62rem; }
.decision-cab { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.numero-d { font: 500 .85rem var(--mono); color: var(--realce-tinta); }
.datos-d { display: flex; gap: 2rem; margin: 0; }
.datos-d dt { font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--tenue); }
.datos-d dd { margin: 0; font-weight: 700; color: var(--tinta); }
.propuesta { color: var(--tinta); }

details.bloque summary, details.decididas summary { cursor: pointer; font-weight: 700; color: var(--tinta); }

/* Revisión y aprobación */
.aviso-banda { margin: 0; padding: .7rem 1rem; border-radius: 6px; font-weight: 700; }
.aviso-banda.ok { background: var(--ok-suave); color: var(--ok); }
.aviso-banda.bad { background: var(--bad-suave); color: var(--bad); }
/* Modo consulta: quien no ejecuta, y quien entra desde fuera de la PC */
.aviso-banda.consulta { background: var(--neutro-suave); color: var(--tenue); font-weight: 600;
  border-left: 3px solid var(--realce); margin-bottom: 1.4rem; }
button[disabled], input[type=submit][disabled] { opacity: .45; cursor: not-allowed; }

.aviso-banda.warn { background: var(--warn-suave); color: var(--warn); }
.aviso-banda a { color: inherit; font-weight: 800; }
.franja-estado { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; font-size: .92rem; color: var(--tenue); }
.franja-estado strong { color: var(--tinta); font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.franja-estado .pendiente strong { color: var(--warn); }
.acciones { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin: 0; }
.nota-accion { color: var(--tenue); font-size: .85rem; }
form.decidir { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: 0; }
form.decidir select { font: 600 .84rem var(--letra); padding: .35rem .4rem; border: 1px solid var(--linea); border-radius: 4px; background: var(--papel); color: var(--texto); max-width: 15rem; }
button.boton { border: 0; cursor: pointer; font: 700 .92rem var(--letra); }
button.boton:disabled { opacity: .6; cursor: progress; }
.boton.secundario { background: var(--neutro-suave); color: var(--tinta); }
.boton.chico { padding: .35rem .65rem; font-size: .82rem; }
.listo { margin: 0; font-weight: 700; color: var(--ok); }
.generacion { border: 1px solid var(--linea); border-left: 4px solid var(--ok); border-radius: 6px; padding: .9rem 1rem; display: flex; flex-direction: column; gap: .5rem; }
.generacion.mal { border-left-color: var(--bad); }
.generacion h3 { font-size: .98rem; }
.generacion p { margin: 0; }
.aceptar-cruce { display: flex; flex-direction: column; gap: .55rem; border-top: 1px solid var(--linea); padding-top: .75rem; max-width: 46rem; }
.aceptar-cruce .boton { align-self: flex-start; }
.archivos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .25rem; font-size: .88rem; }
.archivos li { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--linea); padding-top: .25rem; }
.tenue { color: var(--tenue); }
/* Informe de Directorio: insumos y edición de textos */
.insumos { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.insumos li { display: grid; grid-template-columns: 6.5rem 12rem minmax(0, 1fr); gap: .8rem; align-items: center; font-size: .92rem; }
.insumos li .tenue { overflow-wrap: anywhere; }
form.contenido { display: flex; flex-direction: column; gap: 1.2rem; margin: 0; }
.campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); gap: 1rem 1.4rem; }
.campo { display: flex; flex-direction: column; gap: .35rem; font-size: .88rem; }
.campo > span { font-weight: 700; color: var(--tinta); }
.campo em, .fotos-form em { font-style: normal; font-weight: 500; color: var(--tenue); }
.campo input, .campo textarea, .fotos-form select, .fotos-form input {
  font: 500 .9rem var(--letra); padding: .5rem .6rem; border: 1px solid var(--linea); border-radius: 4px;
  background: var(--papel); color: var(--texto); width: 100%; }
.campo textarea { resize: vertical; line-height: 1.45; }
.campo.corto { max-width: 16rem; }
.fotos-form { border: 1px solid var(--linea); border-radius: 6px; padding: .9rem 1rem; margin: 0; display: grid; gap: .55rem; }
.fotos-form legend { font-weight: 700; color: var(--tinta); padding: 0 .3rem; font-size: .9rem; }
.fotos-form .foto { display: grid; grid-template-columns: 6rem minmax(0, 18rem) minmax(0, 1fr); gap: .6rem; align-items: center; font-size: .85rem; }
form.en-linea { display: inline; margin: 0; }
button.enlace { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--acento); text-decoration: underline; cursor: pointer; }
input:focus-visible, textarea:focus-visible, select:focus-visible, button:focus-visible { outline: 2px solid var(--acento); outline-offset: 2px; }
td.empresa-fecha { white-space: nowrap; }
td.empresa-fecha strong, td.empresa-fecha span { display: block; }
td.empresa-fecha span { font-size: .8rem; }
td.movimiento { min-width: 14rem; max-width: 26rem; }
td.movimiento span { display: block; }
td.movimiento .quien { font-weight: 700; color: var(--tinta); }
td.movimiento .que { font-size: .86rem; }
td.movimiento .porque { font-size: .8rem; color: var(--tenue); margin-top: .3rem; padding-left: .6rem; border-left: 2px solid var(--linea); }
.aviso-bloque p { margin: 0; }

/* Reportes: lo que se presenta, mes a mes */
.reportes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.reporte-tarjeta { background: var(--papel); border: 1px solid var(--linea); border-radius: 6px; padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .55rem; }
.reporte-tarjeta h2 { font-size: 1.1rem; }
.reporte-meses { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .3rem; }
.reporte-meses a { display: inline-flex; align-items: baseline; gap: .35rem; font-weight: 700; font-size: .86rem; padding: .3rem .65rem; border-radius: 4px;
  background: var(--neutro-suave); color: var(--tinta); text-decoration: none; }
.reporte-meses a:first-child { background: var(--acento); color: var(--sobre-acento); }
.reporte-meses small { font-size: .68rem; font-weight: 700; opacity: .75; }
.franja-reporte { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; font-size: .88rem; color: var(--tenue); }
.franja-reporte .acciones-reporte { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.1rem; }
.visor { display: block; width: 100%; height: calc(100vh - 12.5rem); min-height: 34rem; border: 1px solid var(--linea); border-radius: 6px; background: #FFFFFF; }
/* El tablero en Excel se muestra como hoja: fondo de papel en los dos temas, como en Excel */
.hojas-tabs { display: flex; flex-wrap: wrap; gap: .3rem; }
.hojas-tabs button { font: 700 .86rem var(--letra); padding: .35rem .8rem; border: 1px solid var(--linea); border-radius: 4px; background: var(--papel); color: var(--tenue); cursor: pointer; }
.hojas-tabs button[aria-selected="true"] { background: var(--acento); color: var(--sobre-acento); border-color: var(--acento); }
.hoja-excel { overflow: auto; max-height: calc(100vh - 15rem); border: 1px solid var(--linea); border-radius: 6px; background: #FFFFFF; color: #1D2D3E; }
.hoja-excel table { width: auto; font-size: .8rem; }
.hoja-excel td { padding: .22rem .5rem; border: 1px solid #E6E9E8; white-space: nowrap; vertical-align: middle; }
.hoja-excel td.n { text-align: right; font-family: var(--cifras); font-variant-numeric: tabular-nums; }
.hoja-excel td.c { text-align: center; }
.hoja-excel td.b { font-weight: 700; }

/* Pie: el símbolo B firma la página (azul sobre claro, blanco sobre oscuro) */
.pie { width: 100%; max-width: 86rem; margin: auto auto 0; padding: 0 1.5rem 2rem; color: var(--tenue); font-size: .8rem; display: flex; align-items: center; gap: .7rem; }
.pie img { display: block; height: 22px; width: auto; }

/* Balances: la versión corta por empresa, la extendida con todas las cuentas y la ficha de cada empresa */
.vista-balances { align-self: flex-start; }
table.balances th, table.balances td { white-space: nowrap; }
table.balances.corta { font-size: .85rem; }
table.balances.corta th, table.balances.corta td { padding: .45rem .36rem; }
table.balances.corta tr.grupo th { background: var(--neutro-suave); padding: .35rem .36rem; }
table.balances .empresa a { font-weight: 700; color: var(--tinta); }
table.balances tr.revisar td { background: var(--warn-suave); }
table.balances tr.falta td { color: var(--tenue); }
table.balances td.baja { color: var(--bad); }
table.balances td.descargas a { font-size: .8rem; }
table.balances td.descargas a + a { margin-left: .5rem; }
.pie-balances { margin: 0; font-size: .82rem; }
.revisar-balances { margin: 0; padding-left: 1.1rem; display: grid; gap: .5rem; }
.revisar-balances > li > a { font-weight: 800; }
.revisar-balances ul { margin: .15rem 0 0; padding-left: 1.1rem; font-size: .88rem; }
.kpi-v.kpi-texto { font-size: 1.15rem; padding-top: .5rem; }
.kpi-v.cifras { font-family: var(--cifras); font-size: 1.35rem; }
.matriz { overflow: auto; max-height: 75vh; border: 1px solid var(--linea); border-radius: 6px; }
table.extendida { width: auto; font-size: .8rem; border-collapse: separate; border-spacing: 0; }
table.extendida thead tr:nth-child(2) th { position: sticky; top: 0; z-index: 2; background: var(--papel); }
table.extendida th.proyecto { text-align: center; border-left: 1px solid var(--linea); background: var(--papel); }
table.extendida th.cuenta { position: sticky; left: 0; z-index: 1; background: var(--papel); text-align: left; text-transform: none;
  letter-spacing: 0; font-size: .8rem; font-weight: 500; color: var(--texto); min-width: 22rem; max-width: 28rem; white-space: normal;
  border-right: 1px solid var(--linea); }
table.extendida thead th.cuenta { z-index: 3; text-transform: uppercase; font-size: .72rem; font-weight: 800; color: var(--tenue); }
table.extendida td, table.extendida tbody th { padding: .25rem .55rem; border-top: 1px solid var(--linea); vertical-align: middle; }
table.extendida td.num { min-width: 7.5rem; }
table.extendida th a { color: var(--tinta); }
table.extendida .codigo { font-family: var(--cifras); color: var(--tenue); margin-right: .45rem; font-size: .76rem; }
table.extendida tr.nivel-1 th.cuenta, table.extendida tr.nivel-2 th.cuenta { font-weight: 800; color: var(--tinta); }
table.extendida tr.nivel-3 th.cuenta { padding-left: 1.2rem; font-weight: 700; }
table.extendida tr.nivel-4 th.cuenta { padding-left: 2rem; }
table.extendida tr.nivel-5 th.cuenta { padding-left: 2.8rem; }
table.extendida tr.nivel-6 th.cuenta { padding-left: 3.6rem; color: var(--tenue); }
table.extendida tr.total th, table.extendida tr.total td { font-weight: 800; color: var(--tinta); background: var(--neutro-suave); }
.archivos-balance { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.archivos-balance li { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .8rem; padding: .45rem .7rem;
  border: 1px solid var(--linea); border-radius: 6px; }
.archivos-balance li.elegido { border-color: var(--acento); }
.archivos-balance .ver { font-weight: 800; color: var(--tinta); }
.archivos-balance .tenue { overflow-wrap: anywhere; }
.archivos-balance .boton { margin-left: auto; }
.versiones summary { cursor: pointer; font-weight: 700; color: var(--tenue); margin-bottom: .4rem; }

/* Inventario Numa: la consulta por estado */
.filtros-inventario { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .6rem; }
.filtros-inventario .filtro { display: flex; flex-direction: column; gap: .1rem; padding: .7rem .85rem; border: 1px solid var(--linea);
  border-radius: 6px; background: var(--papel); color: inherit; text-decoration: none; }
.filtros-inventario .filtro:hover { border-color: var(--realce); }
.filtros-inventario .filtro.activo { border-color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); }
.filtro-nombre { display: flex; align-items: center; gap: .4rem; font-size: .76rem; font-weight: 800; letter-spacing: .05em;
  text-transform: uppercase; color: var(--tenue); }
.filtro-nombre::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--tenue); }
.filtro.ok .filtro-nombre::before { background: var(--ok); }
.filtro.warn .filtro-nombre::before { background: var(--warn); }
.filtro.accent .filtro-nombre::before { background: var(--tinta); }
.filtro.todos .filtro-nombre::before { display: none; }
.filtro-cifra { font-family: var(--cifras); font-size: 1.6rem; font-weight: 800; color: var(--tinta); line-height: 1.15; }
.filtro-detalle { font-family: var(--cifras); font-size: .78rem; color: var(--tenue); }
table.inventario { font-size: .86rem; }
table.inventario th, table.inventario td { padding: .42rem .5rem; white-space: nowrap; }
table.inventario tbody th { text-align: left; text-transform: none; letter-spacing: 0; }
table.inventario td.ubicacion { font-weight: 700; color: var(--tinta); }
table.inventario td.vencida { color: var(--warn); font-weight: 700; }
table.inventario .cuenta { font-family: var(--cifras); font-size: .78rem; font-weight: 700; color: var(--tenue); margin-left: .35rem; }
table.inventario tr.fase th, table.inventario tr.fase td { background: var(--neutro-suave); color: var(--tinta); font-size: .95rem;
  font-weight: 800; padding-top: .6rem; padding-bottom: .6rem; border-top: 2px solid var(--realce); }
table.inventario tr.grupo, table.inventario tr.subgrupo { cursor: pointer; }
table.inventario tr.grupo:hover, table.inventario tr.subgrupo:hover { background: var(--realce-suave); }
table.inventario tr.grupo th, table.inventario tr.grupo td { font-weight: 800; color: var(--tinta); }
table.inventario tr.grupo th { font-size: .92rem; }
table.inventario tr.subgrupo th { padding-left: 1.6rem; font-weight: 700; font-size: .88rem; color: var(--tinta); }
table.inventario tr.subgrupo td { font-weight: 700; color: var(--texto); }
table.inventario tr.detalle td:first-child { padding-left: 1.6rem; }
table.inventario tr.subgrupo + tr.detalle td:first-child, table.inventario tr.detalle[data-padre*="terrenos-"] td:first-child { padding-left: 2.8rem; }
table.inventario tfoot td { font-weight: 800; color: var(--tinta); border-top: 2px solid var(--realce); }
.plegable { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; display: inline-flex; align-items: center; gap: .45rem; }
.plegable::before { content: "▸"; display: inline-block; width: .8rem; color: var(--tenue); transition: transform .12s ease; }
.plegable[aria-expanded="true"]::before { transform: rotate(90deg); }
.acciones-inventario { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; font-size: .86rem; }
.acciones-inventario .tenue { margin-right: auto; }
.buscar-inventario { flex: 0 1 24rem; }
.buscar-inventario input { width: 100%; font: 500 .9rem var(--letra); padding: .45rem .65rem; border: 1px solid var(--linea);
  border-radius: 4px; background: var(--papel); color: var(--texto); }
.buscar-inventario input:focus { border-color: var(--acento); }
table.inventario td.cliente { white-space: normal; min-width: 9rem; max-width: 15rem; font-size: .82rem; }
.sr-solo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
table.inventario td a.analizar { font-size: .8rem; }

/* Aprobaciones: la tabla de sensibilidad (los parámetros arriba, la fecha a la izquierda) y la lista de lo revisado */
.analisis { display: flex; flex-direction: column; gap: 1.2rem; margin: 0; }
.tarjeta-diferencia { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3rem 1.4rem; align-items: center;
  background: var(--ok-suave); border: 1px solid var(--ok); border-left-width: 5px; border-radius: 6px; padding: .9rem 1.2rem; }
.tarjeta-diferencia.en-contra { background: var(--bad-suave); border-color: var(--bad); }
.dif-cifra { display: flex; flex-direction: column; gap: .1rem; }
.dif-v { font: 800 1.9rem/1.1 var(--cifras); color: var(--ok); }
.en-contra .dif-v { color: var(--bad); }
.dif-l { font-size: .76rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--tenue); }
.dif-texto { margin: 0; font-size: .95rem; font-weight: 600; color: var(--tinta); }
.dif-texto .tenue { display: block; font-size: .82rem; font-weight: 500; }
.dif-otros { grid-column: 2; list-style: none; margin: .2rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; font-size: .84rem; }
.dif-otros li { display: flex; align-items: baseline; gap: .4rem; }
.dif-otros strong.alta { color: var(--ok); } .dif-otros strong.baja { color: var(--bad); }
.ficha-producto { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; font-size: .86rem;
  border-top: 1px solid var(--linea); padding-top: .7rem; }
.ficha-producto .etiqueta { font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--tenue); }
.ficha-producto strong { color: var(--tinta); }
.encabezado-tabla { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; }
.encabezado-tabla h2 { margin: 0; }
.encabezado-tabla .acciones { display: flex; flex-wrap: wrap; gap: .6rem; }
.boton-oculto { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; pointer-events: none; }
table.sensibilidad { font-size: .84rem; --tinte: rgba(146, 158, 155, .10); }
table.sensibilidad th, table.sensibilidad td { padding: .26rem .45rem; border: 1px solid var(--linea); white-space: nowrap; vertical-align: middle; }
table.sensibilidad tbody tr:first-child td { border-top: 1px solid var(--linea); }
table.sensibilidad .esc1 { background: var(--tinte); }
table.sensibilidad th.grupo { text-align: left; font-size: .8rem; color: var(--tinta); padding: .4rem .45rem; }
.titulo-escenario { display: flex; align-items: center; gap: .4rem; }
.titulo-escenario .chip { font-size: .64rem; }
.acciones-escenario { display: flex; gap: .7rem; font-size: .72rem; text-transform: none; letter-spacing: 0; font-weight: 600; }
.acciones-escenario:empty { display: none; }
table.sensibilidad tr.grupo-titulo th { background: var(--barra); color: var(--barra-texto); font-size: .68rem;
  letter-spacing: .12em; padding: .3rem .5rem; }
table.sensibilidad tr.parametro th, table.sensibilidad tbody th.izq, table.sensibilidad tfoot th {
  text-transform: none; letter-spacing: 0; font-size: .8rem; font-weight: 700; color: var(--tinta); }
table.sensibilidad tr.parametro th { background: var(--neutro-suave); }
table.sensibilidad tr.parametro th .tenue { font-weight: 500; }
table.sensibilidad tr.total td, table.sensibilidad tr.resultado td, table.sensibilidad tfoot td { font-weight: 800; color: var(--tinta); }
table.sensibilidad tr.resultado th, table.sensibilidad tfoot th, table.sensibilidad tfoot td { background: var(--neutro-suave); }
table.sensibilidad tr.diferencia th, table.sensibilidad tr.diferencia td { background: var(--realce-suave); font-weight: 800;
  font-size: .95rem; border-top: 2px solid var(--realce); border-bottom: 2px solid var(--realce); }
table.sensibilidad tr.diferencia td.alta { color: var(--ok); }
table.sensibilidad tr.diferencia td.baja { color: var(--bad); }
table.sensibilidad tr.diferencia .unidad { display: block; font-weight: 700; }
table.sensibilidad tr.comun td { background: var(--realce-suave); }
table.sensibilidad td.baja { color: var(--bad); }
table.sensibilidad tr.columnas th { background: var(--neutro-suave); }
table.sensibilidad tbody th.izq { font-family: var(--cifras); background: var(--papel); position: sticky; left: 0; z-index: 1; }
table.sensibilidad tbody tr:nth-child(even) td { background: var(--fila-alterna); }
table.sensibilidad tbody tr:nth-child(even) td.esc1 { background: var(--tinte); }
table.sensibilidad tr.vacia th.izq, table.sensibilidad tr.vacia td { color: var(--tenue); }
table.sensibilidad td.dato, table.sensibilidad tr.parametro td.num { text-align: left; }
table.sensibilidad tr.parametro td.num { padding-left: .75rem; }
.celda { font: 600 .84rem var(--cifras); text-align: right; width: 6rem; padding: .18rem .35rem;
  border: 1px solid transparent; border-radius: 3px; background: transparent; color: var(--texto); }
.celda:hover { border-color: var(--linea); background: var(--papel); }
.celda:focus { border-color: var(--acento); background: var(--papel); }
.celda.corta { width: 3.6rem; }
.celda.media { width: 5.2rem; }
.celda.nombre { width: 9rem; text-align: left; font: 800 .86rem var(--letra); color: var(--tinta); }
.celda.ancha { width: 100%; text-align: left; font-family: var(--letra); font-weight: 500; }
.celda.fecha { width: 8.6rem; font-family: var(--letra); font-weight: 500; }
.celda.pago { width: 6.4rem; }
.unidad { color: var(--tenue); font-size: .78rem; }
.pie-tabla { margin: .5rem 0 0; font-size: .82rem; display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
.buscar-aprobaciones { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem .8rem; }
table.balances td.comentario { white-space: normal; min-width: 14rem; max-width: 30rem; }
.buscar-aprobaciones .campo { flex: 1 1 18rem; }
.buscar-aprobaciones .campo.corto { flex: 0 1 10rem; }
.buscar-aprobaciones select { font: 500 .9rem var(--letra); padding: .5rem .6rem; border: 1px solid var(--linea);
  border-radius: 4px; background: var(--papel); color: var(--texto); width: 100%; }
.decidir { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .8rem 1rem; }
.decidir .campo { flex: 1 1 22rem; }
@media (prefers-reduced-motion: reduce) { .plegable::before { transition: none; } }
.aviso-banda ul { margin: .3rem 0 0; padding-left: 1.1rem; font-weight: 600; }

@media (max-width: 1100px) { .procesos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .reportes { grid-template-columns: 1fr; } }
@media (max-width: 900px) {
  .app, .app.menu-cerrado { grid-template-columns: minmax(0, 1fr); }
  .lateral { position: fixed; inset: 0 auto 0 0; width: var(--ancho-menu); z-index: 30; box-shadow: 0 0 0 100vmax rgba(6, 17, 26, .45); }
  .menu-cerrado .lateral { box-shadow: none; }
  .barra-marca { display: inline-flex; }
  .filtros-inventario { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .procesos, .dos { grid-template-columns: 1fr; }
  .barras li { grid-template-columns: 8rem 1fr 2rem; }
  .insumos li, .fotos-form .foto { grid-template-columns: 1fr; }
  .modo { display: none; }
}

/* El tablero de mando publicado, embebido en el panel */
.marco-reporte {
  margin-top: 16px;
  border: 1px solid var(--borde, rgba(0, 0, 0, 0.12));
  border-radius: 10px;
  overflow: hidden;
  background: #0f0f11;
}
.marco-reporte iframe {
  display: block;
  width: 100%;
  height: 78vh;
  min-height: 520px;
  border: 0;
}

/* --- Quién está adentro (barra de arriba) y la pantalla de entrar ------------------------------------ */
.modo { margin-left: auto; }
.quien { display: flex; align-items: center; gap: .55rem; }
.quien-nombre { display: flex; flex-direction: column; line-height: 1.1; font-size: .82rem; font-weight: 700;
  color: var(--barra-texto); text-align: right; }
.quien-nombre small { font-size: .7rem; font-weight: 500; color: var(--barra-tenue); }
.quien-inicial { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%;
  background: var(--barra-linea); color: var(--barra-texto); font-size: .74rem; font-weight: 800; letter-spacing: .02em; }
.quien-lejos { font-size: .7rem; font-weight: 700; color: #E2B25A; border: 1px solid #E2B25A; border-radius: 3px;
  padding: .12rem .4rem; }
.quien-salir { background: none; border: 1px solid var(--barra-linea); color: var(--barra-tenue); cursor: pointer;
  font-family: inherit; font-size: .74rem; font-weight: 700; padding: .28rem .6rem; border-radius: 4px; }
.quien-salir:hover { color: var(--barra-texto); border-color: var(--barra-tenue); }
@media (max-width: 720px) { .quien-nombre { display: none; } }

.pagina-entrar { min-height: 100vh; margin: 0; display: grid; place-items: center; background: var(--barra);
  color: var(--barra-texto); font-family: var(--letra); padding: 1.5rem; }
.entrar { width: min(26rem, 100%); text-align: center; }
.entrar-marca { max-width: 13rem; height: auto; margin-bottom: 2.2rem; }
.entrar h1 { font-size: 1.5rem; font-weight: 800; margin: 0 0 .35rem; letter-spacing: -.01em; }
.entrar-bajada { color: var(--barra-tenue); margin: 0 0 1.8rem; font-size: .92rem; }
.entrar-aviso { background: rgba(226, 178, 90, .12); border: 1px solid rgba(226, 178, 90, .45); color: #E2B25A;
  border-radius: 6px; padding: .7rem .9rem; font-size: .86rem; margin: 0 0 1.4rem; text-align: left; }
.entrar-problemas { text-align: left; font-size: .84rem; color: #E2B25A; margin: -.8rem 0 1.4rem; padding-left: 1.2rem; }
.entrar-google { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; width: 100%;
  background: #FFFFFF; color: #1F1F1F; font-family: inherit; font-size: .95rem; font-weight: 700;
  padding: .8rem 1rem; border-radius: 6px; text-decoration: none; }
.entrar-google:hover { background: #F1F3F4; }
.entrar-pie { color: var(--barra-tenue); font-size: .78rem; line-height: 1.5; margin: 1.6rem 0 0; }
.entrar-pie strong { color: var(--barra-texto); }

/* --- Control de gastos: presupuesto contra ejecutado ------------------------------------------------- */
table.gastos td.pasado { color: var(--bad); font-weight: 700; }
table.gastos tfoot td { font-weight: 800; color: var(--tinta); border-top: 2px solid var(--linea); }
table.gastos th.grupo { text-align: center; border-bottom: 1px solid var(--linea); }
.uso { display: flex; align-items: center; gap: .55rem; min-width: 10rem; }
.uso-pista { flex: 1; height: .5rem; background: var(--neutro-suave); border-radius: 3px; overflow: hidden; }
.uso-valor { display: block; height: 100%; background: var(--tinta); border-radius: 3px; }
.uso-valor.pasado { background: var(--bad); }
.uso-n { min-width: 3rem; text-align: right; font-family: var(--cifras); font-variant-numeric: tabular-nums; font-size: .84rem; font-weight: 700; color: var(--tinta); }
.decidir-gasto { display: flex; flex-direction: column; align-items: stretch; gap: .3rem; margin: 0; width: 12.5rem; }
.decidir-gasto select { font: 600 .82rem var(--letra); padding: .3rem .35rem; border: 1px solid var(--linea); border-radius: 4px;
  background: var(--papel); color: var(--texto); width: 100%; }
.decidir-gasto .boton { align-self: flex-start; }
.tabla-decidir td.motivo-d { min-width: 14rem; max-width: 24rem; }
.tabla-decidir small { font-size: .76rem; }
.tabla-decidir td.motivo-d { display: table-cell; }
.tabla-decidir .tercero-d, .tabla-decidir .desc-d, .tabla-decidir td.motivo-d small { display: block; }
.tabla-decidir .tercero-d { font-weight: 700; color: var(--tinta); }
.tabla-decidir .desc-d { margin: .15rem 0; font-size: .86rem; color: var(--texto); overflow-wrap: anywhere; }
.tabla-decidir .desc-d.vacio { color: var(--tenue); font-style: italic; }
/* Publicar y avisar a la gerencia financiera (en la pantalla del control) */
.pasos-publicar { margin: .4rem 0 0; padding-left: 1.3rem; display: flex; flex-direction: column; gap: .9rem; }
.pasos-publicar > li { padding-left: .2rem; }
.pasos-publicar > li.hecho::marker { color: var(--ok); }
.pasos-publicar details { margin-top: .4rem; }
.pasos-publicar summary { cursor: pointer; color: var(--tenue); font-weight: 600; }
.pasos-publicar .campos-clave, #netlify .campos-clave { display: grid; gap: .5rem; max-width: 26rem; margin-top: .5rem; }
#netlify .campos-clave label { display: grid; gap: .25rem; font-weight: 600; }
#netlify .campos-clave input, #netlify .campos-clave select { font: 500 .95rem var(--letra); padding: .5rem .6rem;
  border: 1px solid var(--linea); border-radius: 4px; background: var(--papel); color: var(--texto); }
#netlify .campos-clave .boton { justify-self: start; }
.pasos-publicar .campos-clave label, .pasos-publicar .correo-aviso label { display: grid; gap: .25rem; font-weight: 600; }
.pasos-publicar .campos-clave input, .pasos-publicar .correo-aviso input, .pasos-publicar .correo-aviso textarea {
  font: inherit; font-weight: 400; padding: .5rem .6rem; border: 1px solid var(--linea); border-radius: 6px;
  background: transparent; color: inherit; }
.pasos-publicar .campos-clave .boton { justify-self: start; }
.pasos-publicar .correo-aviso { display: grid; gap: .6rem; max-width: 42rem; margin-top: .6rem; }
/* La página de la gerencia financiera, embebida en Reportes: su fondo es claro u oscuro según el tema */
.marco-reporte.claro { background: transparent; }
/* Guías de cada proceso («Cómo se hace»): texto de lectura, con el índice al costado */
.guia-enlace { display: inline-block; margin-top: .5rem; font-size: .86rem; font-weight: 700; color: var(--tinta); text-decoration: none; border-bottom: 1px solid var(--linea); }
.guia-enlace:hover { border-bottom-color: var(--tinta); }
.eyebrow a { color: inherit; }
.guias-lista { margin: 1rem 0 0; padding-left: 1.2rem; display: grid; gap: .45rem; font-size: 1rem; font-weight: 700; }
.guia-cuerpo { display: grid; grid-template-columns: minmax(11rem, 15rem) minmax(0, 1fr); gap: 2.2rem; align-items: start; margin-top: 1.4rem; }
.guia-indice { position: sticky; top: 1rem; }
.guia-indice ol { margin: .45rem 0 0; padding-left: 1.2rem; display: grid; gap: .4rem; font-size: .9rem; }
.guia-indice a { color: var(--texto); text-decoration: none; }
.guia-indice a:hover { color: var(--tinta); text-decoration: underline; text-underline-offset: 3px; }
.guia { max-width: 74ch; line-height: 1.6; color: var(--texto); }
.guia h2 { font-size: 1.3rem; margin: 2.1rem 0 .6rem; padding-top: .9rem; border-top: 1px solid var(--linea); scroll-margin-top: 1rem; }
.guia h2:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
.guia h3 { font-size: 1.05rem; margin: 1.4rem 0 .4rem; scroll-margin-top: 1rem; }
.guia p { margin: .55rem 0; }
.guia ol, .guia ul { margin: .55rem 0; padding-left: 1.4rem; display: grid; gap: .4rem; }
.guia li > ul { margin: .4rem 0 .15rem; gap: .25rem; }
.guia blockquote { margin: .9rem 0; padding: .7rem .95rem; background: var(--neutro-suave); border-radius: 6px; color: var(--tinta); }
.guia blockquote p { margin: 0; }
.guia .tabla-scroll { margin: .7rem 0; }
.guia th { white-space: normal; }
.guia-pie { margin-top: 2.4rem; padding-top: .9rem; border-top: 1px solid var(--linea); font-size: .82rem; color: var(--tenue); }
@media (max-width: 900px) { .guia-cuerpo { grid-template-columns: 1fr; gap: 1rem; } .guia-indice { position: static; } }
