/* ===== Sistema visual: memoria de cálculo (pantalla) ===== */
:root {
  --azul: #1f4e79; --azul2: #2e75b6; --azul-claro: #e8f0f8; --gris: #f4f6f9; --borde: #c9d3df; --texto: #1d2733; --tenue: #5f6b7a;
  --ok: #1e8449; --alerta: #b9770e; --falla: #c0392b; --ntc: #7b1f2e; --aci: #1f4e79; --aisc: #4a5d23;
  --nav-ancho: 270px; --fuente: Arial, "Helvetica Neue", Helvetica, sans-serif; --fuente-t: "Arial Narrow", Arial, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: #e9edf2; color: var(--texto); font: 12.5px/1.45 var(--fuente); }

/* ---- Panel lateral ---- */
#nav { position: fixed; inset: 0 auto 0 0; width: var(--nav-ancho); background: #14324f; color: #dbe6f2; display: flex; flex-direction: column; z-index: 10; }
.nav-marca { display: flex; gap: 10px; align-items: center; padding: 14px 14px 10px; border-bottom: 1px solid #234a70; }
.nav-marca img { height: 42px; background: #fff; border-radius: 4px; padding: 2px; }
.nav-marca b { display: block; color: #fff; font-size: 14px; } .nav-marca span { font-size: 11px; opacity: .75; }
.nav-proyecto { padding: 10px 14px; font-size: 12px; border-bottom: 1px solid #234a70; } .nav-proyecto b { display: block; color: #fff; } .nav-proyecto span { opacity: .7; font-size: 11px; }
.nav-volver { display: block; padding: 8px 14px; font-size: 12px; color: #f0b429; text-decoration: none; border-bottom: 1px solid #234a70; } .nav-volver:hover { background: #1b3f63; }
.nav-variante { padding: 8px 14px 10px; border-bottom: 1px solid #234a70; font-size: 11px; } .nav-variante label { display: block; opacity: .75; margin-bottom: 4px; }
.nav-variante select { width: 100%; font: inherit; font-size: 11.5px; padding: 4px 6px; border-radius: 4px; border: 1px solid #3c6a96; background: #0f2f50; color: #fff; }
.enc-variante { font: 600 9.5px var(--fuente-t); color: #b4141e; text-transform: uppercase; margin-top: 1px; }
.cmp-tabla td.mejor { background: #e3f3e6; font-weight: 600; } .cmp-tabla td.peor { background: #fbe7e6; } .cmp-tabla td.num, .cmp-tabla th.num { text-align: right; }
.cmp-tabla .idx { color: #555; font-size: 0.9em; margin-left: 4px; } .cmp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; margin: 10px 0; }
.cmp-tarjeta { border: 1px solid #c9d3de; border-radius: 6px; padding: 8px 10px; background: #fafcfe; } .cmp-tarjeta h3 { margin: 0 0 4px; font-size: 13px; } .cmp-tarjeta ul { margin: 4px 0 0 16px; padding: 0; font-size: 11.5px; }
#arbol { flex: 1; overflow-y: auto; padding: 6px 0 12px; }
.grupo { margin-top: 8px; } .grupo > .g-tit { padding: 6px 16px 3px; font: 600 10.5px var(--fuente); letter-spacing: .08em; text-transform: uppercase; color: #8fb3d6; }
.item { display: flex; align-items: center; gap: 8px; padding: 5px 16px 5px 22px; color: #dbe6f2; text-decoration: none; cursor: pointer; border-left: 3px solid transparent; font-size: 12.5px; }
.item:hover { background: #1b3f63; } .item.activo { background: #24527f; border-left-color: #f0b429; color: #fff; font-weight: 600; }
.item.sub { padding-left: 34px; font-size: 12px; } .item.deshab { opacity: .4; pointer-events: none; }
.item .dc { margin-left: auto; font-size: 10.5px; padding: 0 5px; border-radius: 8px; background: #0f2740; }
.item .dc.ok { color: #7fd8a0; } .item .dc.alerta { color: #f5c26b; } .item .dc.falla { color: #ff8a80; }
.nav-acciones { padding: 10px 14px 14px; border-top: 1px solid #234a70; display: grid; gap: 6px; }
.btn-nav { padding: 7px 10px; border: 1px solid #3a6a96; border-radius: 6px; background: transparent; color: #dbe6f2; cursor: pointer; font: 12px var(--fuente); text-align: left; }
.btn-nav:hover { background: #1b3f63; } .btn-nav.primario { background: #f0b429; color: #14324f; border-color: #f0b429; font-weight: 600; }
.nav-nota { font-size: 10.5px; opacity: .6; }

/* ---- Lienzo y hojas ---- */
#lienzo { margin-left: var(--nav-ancho); padding: 14px 18px 30px; }
#paginas { min-height: 60vh; }
.pagina { display: none; } .pagina.activa { display: block; }
table.hoja { table-layout: fixed; border-collapse: collapse; background: #fff; box-shadow: 0 1px 6px rgba(20, 50, 80, .15); margin: 0 auto; width: 100%; }
.pagina.reporte table.hoja { width: 205mm; max-width: 100%; }
table.hoja > thead > tr > td, table.hoja > tbody > tr > td, table.hoja > tfoot > tr > td { padding: 0; border: 0; }
table.hoja > tbody > tr > td { padding: 2mm 8mm 6mm; }
.encabezado { display: grid; grid-template-columns: 30mm 1fr 58mm 24mm; border: 1.5px solid var(--azul); margin: 6mm 8mm 3mm; }
.encabezado > div { border-right: 1px solid var(--azul); padding: 3px 7px; display: flex; flex-direction: column; justify-content: center; }
.encabezado > div:last-child { border-right: 0; }
.enc-logo { align-items: center; } .enc-logo img { max-height: 13mm; max-width: 100%; }
.enc-fila { font-size: 9.5px; line-height: 1.3; } .enc-et { color: var(--tenue); font-size: 8.5px; margin-right: 4px; }
.enc-titulo { margin-top: 2px; font: 700 10.5px var(--fuente-t); color: var(--azul); text-transform: uppercase; }
.enc-datos { font-size: 9px; } .enc-datos > div { display: flex; justify-content: space-between; gap: 6px; border-bottom: 1px dotted var(--borde); }
.pie { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 2mm 8mm 5mm; padding-top: 3px; border-top: 1.5px solid var(--azul); font-size: 8.5px; color: var(--tenue); }
.pie-qr { display: flex; gap: 2.5mm; }
.cuadro-qr { flex-direction: row !important; gap: 2mm; justify-content: center !important; align-items: center; }
.pie .qr, .cuadro .qr { display: flex; flex-direction: column; align-items: center; color: inherit; text-decoration: none; }
.pie .qr svg, .cuadro .qr svg { width: 13mm; height: 13mm; background: #fff; fill: #000; }
.pie .qr small, .cuadro .qr small { font-size: 6.5px; line-height: 1; }
/* Láminas doble carta (ancho útil 405 mm) */
/* Hoja doble carta a tamaño real (431.8 × 279.4 mm) con marco tipo plano: 10 mm izquierda (encuadernado), 5 mm resto */
.lamina-marco { overflow-x: auto; margin: 8mm auto 0; max-width: 100%; }
.lamina { position: relative; width: 431.8mm; height: 279.2mm; overflow: hidden; background: #fff; box-sizing: border-box; margin: 0 auto;
  padding: 8mm 8mm 7mm 13mm; display: flex; flex-direction: column; box-shadow: 0 1px 6px rgba(20, 50, 80, .25); }
.lamina::before { content: ""; position: absolute; left: 10mm; top: 5mm; right: 5mm; bottom: 5mm; border: 0.6mm solid #1f4e79; pointer-events: none; }
.lamina::after { content: ""; position: absolute; left: 3mm; top: 3mm; right: 3mm; bottom: 3mm; border: 0.15mm solid #8aa2bb; pointer-events: none; }
.lamina-cuerpo { flex: 1; min-height: 0; overflow: hidden; }
.lamina-tit { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1.5px solid var(--azul); margin-bottom: 3mm; padding-bottom: 1.5mm; }
.lamina-tit b { font: 700 13px var(--fuente-t); color: var(--azul); text-transform: uppercase; } .lamina-tit span { font-size: 10px; color: var(--tenue); }
.lamina .grid2 { gap: 5mm; } .lamina .plot { min-height: 0; }
.cuadro { display: grid; grid-template-columns: 30mm 1fr 70mm 34mm 34mm 24mm; border: 1.5px solid var(--azul); margin-top: 3mm; font-size: 9px; }
.cuadro > div { border-right: 1px solid var(--azul); padding: 2px 6px; display: flex; flex-direction: column; justify-content: center; }
.cuadro > div:last-child { border-right: 0; } .cuadro img { max-height: 11mm; max-width: 100%; align-self: center; }
.cuadro .clave { font: 700 14px var(--fuente-t); color: var(--azul); text-align: center; }

/* ---- Páginas ---- */
.pagina h1 { font: 700 18px var(--fuente-t); color: var(--azul); margin: 10px 0 4px; text-transform: uppercase; letter-spacing: .02em; }
.pagina .resumen { color: var(--tenue); margin: 0 0 10px; }
h2 { font: 700 14.5px var(--fuente-t); color: var(--azul); border-bottom: 1.5px solid var(--azul); padding-bottom: 3px; margin: 18px 0 8px; text-transform: uppercase; }
h3 { font: 700 13px var(--fuente-t); margin: 12px 0 6px; color: #23384f; }
h4 { font: 700 12px var(--fuente-t); margin: 10px 0 4px; text-decoration: underline; }
p { margin: 4px 0 8px; text-align: justify; }
table.t { border-collapse: collapse; font-size: 11.5px; margin: 4px 0 6px; width: auto; }
table.t.ancha { width: 100%; }
table.t th { background: var(--azul-claro); color: #183451; font-weight: 600; border: 1px solid var(--borde); padding: 3px 7px; text-align: center; }
table.t td { border: 1px solid var(--borde); padding: 3px 7px; text-align: right; vertical-align: top; }
table.t td.izq, table.t th.izq { text-align: left; } table.t td.cen { text-align: center; }
table.t tr.sub td { background: #fafbfd; font-weight: 600; text-align: left; }
.cap-tabla { font: 700 11.5px var(--fuente); text-align: center; margin: 10px 0 2px; }
.cap-fig { font: 700 11.5px var(--fuente); text-align: center; margin: 2px 0 10px; }
.figura { break-inside: avoid; }
.grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.tarjeta { border: 1px solid var(--borde); border-radius: 6px; padding: 8px 10px; background: #fff; break-inside: avoid; }
.barra { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 6px 0; }
select, button.btn { padding: 5px 9px; border: 1px solid var(--borde); border-radius: 5px; background: #fff; font: 12px var(--fuente); }
button.btn { background: var(--azul); color: #fff; border-color: var(--azul); cursor: pointer; }
.nota { background: #fff7e6; border-left: 4px solid #e6a23c; padding: 6px 10px; font-size: 11.5px; margin: 8px 0; }
.ref { color: var(--tenue); font-size: 10.5px; }
.plot { width: 100%; min-height: 320px; }
.tabla-scroll { max-height: 440px; overflow: auto; }
code { font-size: 11px; background: var(--gris); padding: 0 3px; }

/* ---- Bloques de cálculo ---- */
.calc-grid { display: grid; grid-template-columns: 1fr; gap: 0 12px; }
.calc { border: 1px solid var(--borde); border-left: 4px solid var(--azul2); border-radius: 4px; padding: 6px 10px; margin: 6px 0 10px; break-inside: avoid; background: #fbfcfe; }
.calc .c-tit { font: 700 12px var(--fuente-t); color: #183451; margin-bottom: 4px; display: flex; justify-content: space-between; gap: 8px; }
.ec { display: grid; grid-template-columns: minmax(170px, 1.3fr) minmax(200px, 2fr) 120px minmax(150px, 1fr); gap: 2px 10px; padding: 2px 0; border-bottom: 1px dotted #dde3ea; align-items: baseline; font-size: 11.5px; }
.ec:last-child { border-bottom: 0; }
.ec .f { font-family: "Cambria Math", "Times New Roman", serif; font-size: 12.5px; } .ec .s { color: #334; } .ec .r { font-weight: 700; text-align: right; } .ec .n { text-align: right; }
.chip { display: inline-block; font-size: 9.5px; padding: 0 5px; border-radius: 3px; border: 1px solid; margin-left: 3px; white-space: nowrap; font-weight: 600; }
.chip.ntc { color: var(--ntc); border-color: var(--ntc); background: #fbeff1; } .chip.aci { color: var(--aci); border-color: var(--aci); background: #eef4fa; } .chip.aisc { color: var(--aisc); border-color: var(--aisc); background: #f2f6ea; } .chip.otro { color: #555; border-color: #999; }
.estado { font-weight: 700; } .estado.ok { color: var(--ok); } .estado.alerta { color: var(--alerta); } .estado.falla { color: var(--falla); }
.conclusion { border: 1.5px solid var(--ok); background: #f0f9f3; padding: 8px 12px; border-radius: 4px; margin: 10px 0; break-inside: avoid; }
.conclusion.falla { border-color: var(--falla); background: #fdf0ef; }

@media screen and (max-width: 900px) {
  #nav { position: static; width: 100%; } #lienzo { margin-left: 0; padding: 8px; } .pagina.reporte table.hoja { width: 100%; }
  .encabezado { grid-template-columns: 1fr; } .grid2, .grid3, .grid4 { grid-template-columns: 1fr; } .ec { grid-template-columns: 1fr; }
}

/* Tablas de las vistas interactivas (sin clase) */
#paginas table:not(.t):not(.hoja) { border-collapse: collapse; font-size: 11.5px; margin: 4px 0 10px; }
#paginas table:not(.t):not(.hoja) th { background: var(--azul-claro); border: 1px solid var(--borde); padding: 3px 7px; font-weight: 600; }
#paginas table:not(.t):not(.hoja) td { border: 1px solid var(--borde); padding: 3px 7px; text-align: right; }
#paginas table:not(.t):not(.hoja) td:first-child { text-align: left; }
.ec .n { display: flex; flex-wrap: wrap; gap: 2px; justify-content: flex-end; align-content: flex-start; }
.ec .n .chip { margin-left: 0; }
.ec > span { min-width: 0; overflow-wrap: anywhere; }

/* Planos */
.pagina.plano table.hoja > thead, .pagina.plano table.hoja > tfoot { display: none; }
.pagina.plano table.hoja { width: 100%; background: transparent; box-shadow: none; }
.plano-marco { overflow: auto; background: #8996a3; padding: 10px; border-radius: 4px; }
.plano-hoja { width: max-content; margin: 0 auto; box-shadow: 0 2px 10px rgba(0, 0, 0, .35); background: #fff; }
.plano-hoja svg { display: block; }
.esp h2 { margin-top: 18px; } .esp p { text-align: justify; margin: 3px 0 5px; } .esp ul { margin: 2px 0 6px 18px; } .esp li { margin: 1px 0; }

/* ---- Modelo 3D (#/modelo3d): visor a pantalla completa; la lámina impresa se arma al imprimir ---- */
.pagina.modelo table.hoja > thead, .pagina.modelo table.hoja > tfoot { display: none; }
.pagina.modelo table.hoja > tbody > tr > td { padding: 0; }
.pagina.modelo > .laminas { display: none; }
.m3d { display: flex; flex-direction: column; height: calc(100vh - 44px); min-height: 520px; }
.m3d-barra { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; padding: 6px 10px; border-bottom: 1px solid var(--borde); background: var(--gris); font-size: 12px; }
.m3d-barra .sep { width: 1px; height: 20px; background: var(--borde); }
.m3d-barra select, .m3d-barra .btn { font: 12px var(--fuente); }
.m3d .btn.activo { background: #f0b429; border-color: #f0b429; }
.m3d-cuerpo { flex: 1; min-height: 0; display: grid; grid-template-columns: 290px 1fr 300px; }
.m3d-capas, .m3d-props { overflow-y: auto; padding: 6px 8px; font-size: 12px; border-right: 1px solid var(--borde); }
.m3d-props { border-right: 0; border-left: 1px solid var(--borde); }
.m3d-tit { font: 700 11px var(--fuente); text-transform: uppercase; letter-spacing: .06em; color: var(--azul); margin: 6px 0 4px; }
.m3d-lienzo { position: relative; min-width: 0; min-height: 0; overflow: hidden; }
.m3d-lienzo canvas { display: block; width: 100%; height: 100%; }
.m3d-tip { position: absolute; display: none; pointer-events: none; background: rgba(20, 50, 79, .92); color: #fff; padding: 2px 7px; border-radius: 4px; font-size: 11.5px; max-width: 360px; }
.m3d-estado { position: absolute; right: 8px; bottom: 6px; font-size: 11px; color: var(--tenue); background: rgba(255, 255, 255, .75); padding: 1px 6px; border-radius: 3px; }
.arbol3d .fila { display: flex; align-items: center; gap: 4px; padding: 1px 0; white-space: nowrap; }
.arbol3d .fila b { font-size: 12px; flex: 1; overflow: hidden; text-overflow: ellipsis; }
.arbol3d .fila input[type=range] { width: 56px; }
.arbol3d .car { cursor: pointer; width: 12px; color: var(--tenue); transition: transform .1s; display: inline-block; }
.arbol3d .n3.abierto > .fila > .car { transform: rotate(90deg); }
.arbol3d .hijos { display: none; padding-left: 14px; } .arbol3d .n3.abierto > .hijos { display: block; }
.arbol3d .cnt { margin-left: auto; font-size: 10.5px; color: var(--tenue); }
.arbol3d .obj { cursor: pointer; } .arbol3d .obj:hover { background: var(--azul-claro); } .arbol3d .obj.sel { background: #fde9c4; }
.arbol3d .obj .nom { overflow: hidden; text-overflow: ellipsis; font-size: 11.5px; }
.m3d .sw { display: inline-block; width: 10px; height: 10px; border-radius: 2px; border: 1px solid rgba(0, 0, 0, .25); flex: none; }
.m3d-ayuda { margin-top: 10px; font-size: 10.5px; color: var(--tenue); line-height: 1.4; }
.props3d .sel-nom { font-weight: 700; display: flex; gap: 6px; align-items: center; }
.props3d table.t td { font-size: 11px; padding: 2px 4px; vertical-align: top; }
.m3d .acc { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0; }
.corte3d .eje { display: grid; grid-template-columns: 14px 1fr 1fr; gap: 2px 4px; align-items: center; font-size: 11px; }
.corte3d .eje .val { grid-column: 2 / 4; color: var(--tenue); font-size: 10.5px; }
.corte3d input[type=range] { width: 100%; }
.medidas3d .lista > div { font-size: 11.5px; border-bottom: 1px dotted var(--borde); padding: 2px 0; }
.m3d-lam { display: flex; gap: 5mm; height: 100%; }
.m3d-lam img { flex: 1; min-width: 0; height: 100%; object-fit: contain; border: 0.2mm solid #c9d3df; }
.m3d-ley { width: 62mm; flex: none; display: flex; flex-direction: column; gap: 1mm; font-size: 9px; }
.m3d-ley b { color: var(--azul); margin-top: 2mm; text-transform: uppercase; font-size: 9px; }

/* ---- Memoria de cálculo (vista previa carta): capítulos numerados ---- */
.memoria { counter-reset: cap; }
.memoria h1:not(.no-num) { counter-increment: cap; counter-reset: ap; }
.memoria h1:not(.no-num)::before { content: counter(cap) ".- "; }
.memoria h2 { counter-increment: ap; counter-reset: sap; } .memoria h2::before { content: counter(cap) "." counter(ap) ".- "; }
.memoria h3 { counter-increment: sap; } .memoria h3::before { content: counter(cap) "." counter(ap) "." counter(sap) " "; }
.memoria h4 { font-size: 11.5px; margin: 8px 0 3px; color: var(--azul); }
.memoria h4.sub { text-align: center; text-transform: uppercase; }
.memoria .resumen-ejecutivo { border-bottom: 2px solid var(--azul); margin-bottom: 10px; padding-bottom: 6px; }
.memoria .figura img { max-width: 100%; display: block; margin: 0 auto; }
.memoria .lamina-en-memoria .grid2 { grid-template-columns: 1fr; }
@media print { .memoria h1:not(.no-num) { break-before: page; } }

/* ---- Edición de consulta (web): sin selección ni impresión, marca de agua, aviso del cálculo FEM ---- */
body.publico .solo-local, body.publico .nav-acciones { display: none !important; }
body.publico, body.publico * { -webkit-user-select: none !important; user-select: none !important; -webkit-touch-callout: none; }
body.publico img, body.publico svg, body.publico canvas { -webkit-user-drag: none; }
body.publico input, body.publico select { -webkit-user-select: auto !important; user-select: auto !important; }
.marca-agua { position: fixed; inset: -50%; z-index: 50; pointer-events: none; display: flex; flex-wrap: wrap; gap: 70px 120px; align-content: center; justify-content: center;
  transform: rotate(-30deg); opacity: .07; font: 700 18px Arial, sans-serif; color: #1f4e79; white-space: nowrap; }
#avisoFEM { position: fixed; right: 18px; bottom: 18px; z-index: 60; max-width: 420px; background: #14324f; color: #fff; padding: 10px 14px; border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .3); font-size: 12.5px; display: flex; flex-direction: column; gap: 4px; }
#avisoFEM b { color: #f0b429; } #avisoFEM span { opacity: .9; }
#msgPublico { position: fixed; left: 50%; top: 18px; transform: translate(-50%, -150%); z-index: 70; background: #c0392b; color: #fff; padding: 8px 16px; border-radius: 6px; font-size: 13px; transition: transform .25s; }
#msgPublico.visible { transform: translate(-50%, 0); }
@media print {
  body.publico > * { display: none !important; }
  body.publico::before { content: "Documento de consulta: la impresión no está disponible en esta edición."; display: block; padding: 40mm 20mm; font: 16pt Arial, sans-serif; text-align: center; }
}
/* control de cambios R3 → R3.1 */
.cc-estado { display: inline-block; padding: 1px 7px; border-radius: 9px; font: 600 10px var(--fuente); white-space: nowrap; vertical-align: middle; text-transform: none; letter-spacing: 0; }
.cc-pendiente { background: #fde9c4; color: #7a4a00; } .cc-por-confirmar { background: #f9d6d5; color: #8a1c17; } .cc-sin-cambio { background: #d9f0dc; color: #1f6a2b; }
.cc-informativo { background: #e4e8ee; color: #3d4957; } .cc-aplicado { background: #cfe3f7; color: #16426e; }
.cc-cuenta { display: flex; flex-wrap: wrap; gap: 6px; }
.cc-resumen td:nth-child(4) { font-size: 10.5px; } #cambios table.t td { text-align: left; }
.cc-ficha { break-before: page; } .cc-ficha:first-of-type { break-before: auto; }
.cc-datos th { width: 28mm; text-align: left; vertical-align: top; } .cc-datos td { font-size: 11.5px; }
.cc-figs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.cc-fig { margin: 0; border: 1px solid var(--borde); border-top: 4px solid var(--tenue); padding: 4px; background: #fff; }
.cc-fig.cc-R3 { border-top-color: var(--azul2); } .cc-fig.cc-R31 { border-top-color: #e67e22; } .cc-fig.cc-antes { border-top-color: #c0392b; } .cc-fig.cc-vigente { border-top-color: #1e8449; } .cc-fig.cc-sobre { border-top-color: #7d3c98; }
.cc-fig img { width: 100%; max-height: 110mm; object-fit: contain; display: block; } .cc-fig figcaption { font-size: 10px; color: var(--tenue); margin-top: 3px; }
.cc-etq { font: 700 9.5px var(--fuente); text-transform: uppercase; letter-spacing: .04em; color: var(--texto); margin-bottom: 3px; }

/* ---- Ficha de portafolio ---- */
.ficha-resumen { font-size: 14px; line-height: 1.55; border-left: 4px solid #f0b429; padding: 4px 0 4px 12px; margin: 6px 0 14px; }
.ficha-datos td:first-child { width: 38%; color: var(--tenue); }
.ficha-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.ficha-fotos figure { margin: 0; border: 1px solid var(--borde); padding: 4px; background: #fff; }
.ficha-fotos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; } .ficha-fotos figcaption { font-size: 11px; color: var(--tenue); margin-top: 3px; }
.ficha-mapa { margin: 0; border: 1px solid var(--borde); padding: 4px; background: #fff; } .ficha-mapa img { width: 100%; display: block; }
.ficha-mapa figcaption { font-size: 11px; color: var(--tenue); margin-top: 3px; }
.doc-original { width: 100%; height: calc(100vh - 110px); border: 0; background: #fff; display: block; }
