:root{
  --bg:#f4f5f2; --card-bg:#ffffff; --border:#e5e6e1; --text:#141414; --text-muted:#6b6b68;
  --accent:#145bc7; --accent-soft:#e8f0fd; --chip-bg:#eef1ea; --chip-text:#3c4a2f;
  --warn-bg:#fdf3e3; --warn-text:#8a5a10; --danger:#c0392b;
  --shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#15161a; --card-bg:#1e2025; --border:#2c2e33; --text:#f2f2f0; --text-muted:#9a9a97;
    --accent:#6ea2f5; --accent-soft:#1c2a42; --chip-bg:#242923; --chip-text:#c9d6bd;
    --warn-bg:#332a15; --warn-text:#e0b06a; --shadow:0 1px 3px rgba(0,0,0,.4);
  }
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;}
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;}
.wrap{max-width:1320px;width:100%;margin:0 auto;padding:24px 24px 64px;min-width:0;}
header{margin-bottom:20px;}
h1{font-size:22px;font-weight:700;margin:0 0 4px;}
.subtitle{color:var(--text-muted);font-size:14px;margin:0 0 12px;}

/* menu lateral (en pantallas estrechas es un cajon que se abre con el boton de la cabecera) */
.menu{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;background:var(--card-bg);border-right:1px solid var(--border);padding:20px 12px 16px;}
.menu-marca{padding:2px 10px 16px;} .menu-marca strong{display:block;font-size:17px;letter-spacing:.06em;} .menu-marca span{font-size:12px;color:var(--text-muted);}
.menu-grupo{margin-top:14px;} .menu-grupo:first-child{margin-top:0;}
.menu-titulo{margin:0 0 4px;padding:0 10px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);}
.tab-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;background:none;border:none;border-radius:8px;padding:8px 10px;font-size:14px;font-weight:500;color:var(--text);cursor:pointer;}
.tab-btn:hover{background:var(--accent-soft);}
.tab-btn.active{background:var(--accent-soft);color:var(--accent);font-weight:700;box-shadow:inset 3px 0 0 var(--accent);}
.tab-btn:focus-visible,.menu-boton:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.badge-count{background:var(--danger);color:#fff;font-size:11px;font-weight:700;padding:1px 7px;border-radius:100px;} .badge-count:empty{display:none;}
.menu-pie{margin-top:auto;padding:16px 10px 0;border-top:1px solid var(--border);}
.menu-fondo,.menu-boton{display:none;}
.menu-boton{background:none;border:1px solid var(--border);border-radius:8px;padding:6px 8px;color:var(--text);cursor:pointer;line-height:0;}
.cabecera-titulo{display:flex;align-items:center;gap:12px;min-width:0;} .cabecera-titulo h1{margin:0;}
@media (max-width:900px){
  .app{grid-template-columns:minmax(0,1fr);}
  .wrap{padding:16px 16px 64px;}
  .menu-boton{display:inline-block;}
  .menu{position:fixed;left:0;top:0;bottom:0;width:272px;max-width:86vw;z-index:950;transform:translateX(-100%);visibility:hidden;transition:transform .2s ease,visibility 0s .2s;}
  body.menu-abierto .menu{transform:none;visibility:visible;transition:transform .2s ease;box-shadow:0 10px 40px rgba(0,0,0,.35);}
  body.menu-abierto .menu-fondo{display:block;position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.45);}
}
@media (prefers-reduced-motion:reduce){.menu{transition:none !important;}}
.tab-content{display:none;}
.tab-content.active{display:block;}

.controls{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;align-items:center;}
.controls input[type="text"],.controls select{background:var(--card-bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-size:14px;}
.controls button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer;}
.controls button:hover{opacity:.9;}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:20px;}
.stat{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px;box-shadow:var(--shadow);}
.stat .num{font-size:20px;font-weight:700;}
.stat .label{font-size:12px;color:var(--text-muted);margin-top:2px;}

.table-wrap{overflow-x:auto;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);}
table{width:100%;border-collapse:collapse;font-size:13px;}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;}
th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.02em;}
tr:last-child td{border-bottom:none;}
.num-cell{text-align:right;font-variant-numeric:tabular-nums;}
.positivo{color:#1a7a3c;}
.negativo{color:var(--danger);}
.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0;}
.link-btn.danger{color:var(--danger);}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;}
.card .nombre{font-size:15px;font-weight:700;}
.card .ciudad{font-size:12px;color:var(--accent);font-weight:600;text-transform:uppercase;}
.badges{display:flex;flex-wrap:wrap;gap:6px;}
.badge{background:var(--chip-bg);color:var(--chip-text);font-size:11px;font-weight:600;padding:3px 8px;border-radius:100px;}
.badge.estado-personal{background:var(--warn-bg);color:var(--warn-text);}
.badge.estado-revisar{background:#fde3e3;color:#8a1010;}
.card-actions{display:flex;gap:10px;margin-top:4px;}

:root{--rojo-bg:#fde3e3;--rojo-tx:#8a1010;--verde-bg:#e3f5e8;--verde-tx:#1a7a3c;}
@media (prefers-color-scheme: dark){:root{--rojo-bg:#3a1a1a;--rojo-tx:#f4a0a0;--verde-bg:#123321;--verde-tx:#7fdca0;}}
.cabecera{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.cabecera-acciones{display:flex;gap:12px;align-items:center;}
.alerta-cab{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--border);border-radius:100px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer;}
.alerta-cab.alta{background:var(--rojo-bg);color:var(--rojo-tx);}
.chip{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:100px;background:var(--chip-bg);color:var(--chip-text);white-space:nowrap;}
.chip.rojo{background:var(--rojo-bg);color:var(--rojo-tx);}
.chip.ambar{background:var(--warn-bg);color:var(--warn-text);}
.chip.verde{background:var(--verde-bg);color:var(--verde-tx);}
.chip.azul{background:var(--accent-soft);color:var(--accent);}
.chip.gris{background:var(--chip-bg);color:var(--text-muted);}
.controls .buscador{min-width:220px;}
.controls .sep{flex:1;}
.fila-clic{cursor:pointer;}
.fila-clic:hover td{background:var(--accent-soft);}
td.wrap-cell{white-space:normal;min-width:160px;max-width:320px;}
button.primario,.primario{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;}
button.secundario{background:var(--chip-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-size:14px;cursor:pointer;}
.acciones{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:10px 16px;border-radius:10px;background:var(--verde-tx);color:#fff;font-size:14px;z-index:2000;box-shadow:0 6px 24px rgba(0,0,0,.25);max-width:90vw;}
.toast.error{background:var(--danger);}
.toast[hidden]{display:none;}

dialog.dlg-ancho{width:min(760px,94vw);max-height:90vh;overflow:auto;}
dialog.dlg-ficha{width:min(1040px,96vw);max-height:92vh;overflow:auto;}
.form-grid{padding:20px;display:flex;flex-direction:column;gap:12px;}
.grid-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;}
.grid-campos label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted);}
.grid-campos label.ancho2{grid-column:1 / -1;}
.grid-campos small{color:var(--text-muted);font-size:11px;}
.grid-campos input,.grid-campos select,.grid-campos textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit;}
.grid-campos input[type="checkbox"]{width:18px;height:18px;}
@media (max-width:640px){.grid-campos{grid-template-columns:1fr;}}

.aviso{background:var(--warn-bg);color:var(--warn-text);border-radius:10px;padding:10px 14px;font-size:13px;margin:10px 0;}
.aviso.rojo{background:var(--rojo-bg);color:var(--rojo-tx);}
.seccion{margin:18px 0;}
.seccion h4{margin:0 0 8px;font-size:14px;}
.kv{display:grid;grid-template-columns:150px 1fr;gap:5px 12px;font-size:13px;margin:0;}
.kv dt{color:var(--text-muted);} .kv dd{margin:0;}
.tarjeta-contrato{border:1px solid var(--border);border-radius:12px;padding:14px;margin:10px 0;background:var(--card-bg);}
.tarjeta-contrato h5{margin:0 0 8px;font-size:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.mini{width:100%;border-collapse:collapse;font-size:12px;}
.mini th,.mini td{padding:6px 8px;border-bottom:1px solid var(--border);white-space:normal;}
.mini th{text-transform:none;font-size:11px;}

.alerta-item{background:var(--card-bg);border:1px solid var(--border);border-left-width:5px;border-radius:10px;padding:12px 14px;margin:10px 0;box-shadow:var(--shadow);}
.alerta-item.alta{border-left-color:var(--danger);} .alerta-item.media{border-left-color:#d9982b;} .alerta-item.baja{border-left-color:var(--accent);}
.alerta-cab-fila{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.alerta-detalle{font-size:13px;color:var(--text-muted);margin:6px 0;}
.alerta-pie{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;font-size:12px;color:var(--text-muted);}
.alerta-pie a{color:var(--accent);}
.cfg-fila{display:grid;grid-template-columns:24px 1fr 130px 100px auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.cfg-fila input[type="text"],.cfg-fila select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 8px;}
.resumen-import{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0;}
.subida{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:12px 0;}
.subida label{display:flex;flex-direction:column;gap:6px;font-size:13px;background:var(--card-bg);border:1px dashed var(--border);border-radius:10px;padding:12px;}
.overlay{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;}
.overlay[hidden]{display:none;}
.login-card{background:var(--card-bg);border:1px solid var(--border);border-radius:14px;padding:24px;box-shadow:var(--shadow);width:100%;max-width:400px;display:flex;flex-direction:column;gap:12px;}
.login-card h2{margin:0;font-size:20px;}
.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted);}
.login-card label[hidden]{display:none;}
.login-card input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px;font-size:15px;}
.login-card button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:11px 14px;font-size:15px;font-weight:600;cursor:pointer;}
.error{color:var(--danger);font-size:13px;min-height:18px;}

dialog{border:none;border-radius:12px;padding:0;background:var(--card-bg);color:var(--text);box-shadow:0 8px 30px rgba(0,0,0,.2);}
dialog::backdrop{background:rgba(0,0,0,.4);}
dialog form{padding:20px;display:flex;flex-direction:column;gap:10px;min-width:320px;}
dialog h3{margin:0 0 6px;}
dialog label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted);}
dialog input,dialog select,dialog textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit;}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;}
.dialog-actions button{padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--chip-bg);cursor:pointer;}
.dialog-actions button[type="submit"]{background:var(--accent);color:#fff;border:none;}
.dialog-actions button.primario{background:var(--accent);color:#fff;border:none;}
.dialog-actions button.peligro,button.peligro{background:var(--danger);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;}
.link-btn:disabled,button:disabled{opacity:.5;cursor:not-allowed;}

/* ---------- lista de inmuebles (tabla) ---------- */
#tablaInmuebles td{vertical-align:middle;}
#tablaInmuebles td.wrap-cell{min-width:105px;max-width:210px;}
#tablaInmuebles .nombre-inm{font-weight:700;}
#tablaInmuebles .sub{display:block;font-size:11px;color:var(--text-muted);font-weight:400;}
.btn-detalle{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:700;cursor:pointer;}
.btn-detalle:hover{opacity:.88;}
.panel select,.acciones select,.acciones input[type="text"],.acciones input[type="search"],.acciones input[type="date"],.gen-sec select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;font-size:14px;}
.acciones-fila{display:flex;gap:4px 10px;align-items:center;white-space:nowrap;flex-wrap:wrap;max-width:150px;}
#tablaInmuebles th,#tablaInmuebles td{padding:9px 8px;}
#tablaInmuebles td:last-child{width:1%;}
#tablaInmuebles .acciones-fila{flex-direction:column;align-items:stretch;gap:4px;max-width:none;}
#tablaInmuebles .acciones-fila .btn-detalle{text-align:center;}
#tablaInmuebles .acciones-fila .vinculos{display:flex;gap:10px;justify-content:center;}

/* ---------- pagina de detalle del inmueble ---------- */
.det-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:6px;}
.det-cab h2{margin:0 0 4px;font-size:21px;}
.volver{background:none;border:none;color:var(--accent);cursor:pointer;font-size:14px;font-weight:600;padding:0 0 10px;}
.cadena{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin:14px 0 6px;}
.cadena .paso{flex:1 1 200px;background:var(--card-bg);border:1px solid var(--border);border-top:4px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13px;cursor:pointer;box-shadow:var(--shadow);}
.cadena .paso:hover{background:var(--accent-soft);}
.cadena .paso.ok{border-top-color:#2e9b57;} .cadena .paso.falta{border-top-color:#d9982b;} .cadena .paso.vacio{border-top-color:var(--danger);}
.cadena .paso .t{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;}
.cadena .paso .v{font-weight:700;margin:2px 0;}
.cadena .paso .d{color:var(--text-muted);font-size:12px;}
.cadena .flecha{align-self:center;color:var(--text-muted);font-size:18px;}
.tabs-det{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin:14px 0 18px;}
.tabs-det button{background:none;border:none;padding:10px 16px;font-size:14px;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:3px solid transparent;}
.tabs-det button.active{color:var(--accent);border-bottom-color:var(--accent);}
.tabs-det .contador{background:var(--chip-bg);color:var(--text-muted);font-size:11px;padding:1px 7px;border-radius:100px;margin-left:5px;}
.vacio{background:var(--card-bg);border:1px dashed var(--border);border-radius:12px;padding:22px;text-align:center;color:var(--text-muted);}
.vacio strong{display:block;color:var(--text);font-size:15px;margin-bottom:6px;}
.vacio .acciones{justify-content:center;margin-top:12px;}
.panel{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin:12px 0;box-shadow:var(--shadow);}
.panel h4{margin:0 0 10px;font-size:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.panel h4 .acciones{margin-left:auto;}
.rejilla2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px;}
.tarjeta-inq{border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--card-bg);}
.tarjeta-inq h5{margin:0 0 8px;font-size:15px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}

/* ---------- asociar inquilino ---------- */
.seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:4px 0 10px;}
.seg button{background:var(--bg);border:none;padding:8px 14px;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;}
.seg button.active{background:var(--accent);color:#fff;}
.lista-sel{max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:10px;margin:8px 0;}
.lista-sel label{display:flex;flex-direction:row;gap:10px;align-items:flex-start;padding:9px 12px;border-bottom:1px solid var(--border);cursor:pointer;font-size:13px;color:var(--text);}
.lista-sel label:last-child{border-bottom:none;}
.lista-sel label:hover{background:var(--accent-soft);}
.lista-sel input{margin-top:3px;}

/* ---------- facturas ---------- */
dialog.dlg-factura{width:min(1120px,97vw);max-height:94vh;overflow:auto;}
dialog.dlg-pdf{width:min(980px,96vw);height:92vh;overflow:hidden;}
dialog.dlg-confirmar{width:min(480px,94vw);}
.pdf-frame{width:100%;height:calc(92vh - 90px);border:1px solid var(--border);border-radius:8px;background:#fff;}
.pdf-frame.mediano{height:68vh;}
.chip.estado-borrador{background:var(--chip-bg);color:var(--text-muted);} .chip.estado-emitida{background:var(--accent-soft);color:var(--accent);}
.chip.estado-pagada{background:var(--verde-bg);color:var(--verde-tx);} .chip.estado-anulada{background:var(--rojo-bg);color:var(--rojo-tx);}
.dos-col{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:16px;}
@media (max-width:900px){.dos-col{grid-template-columns:1fr;}}
.tabla-lineas textarea,.tabla-lineas input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:5px 7px;font-size:13px;}
.tabla-lineas td{white-space:normal;}
.errores-lista{margin:6px 0 0;padding-left:18px;font-size:13px;}
.resumen-estados{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.resumen-estados .stat{flex:1 1 140px;}

/* ---------- generacion de contratos ---------- */
dialog.dlg-gen{width:min(1180px,97vw);height:95vh;overflow:hidden;}
.gen{display:flex;flex-direction:column;height:95vh;}
.gen-cab{padding:14px 20px 8px;border-bottom:1px solid var(--border);}
.gen-cuerpo{flex:1;overflow:auto;padding:6px 20px 20px;}
.gen-pie{border-top:1px solid var(--border);padding:12px 20px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--card-bg);}
.banner-borrador{background:var(--rojo-bg);color:var(--rojo-tx);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;margin-top:8px;}
.gen-sec{border:1px solid var(--border);border-radius:12px;margin:12px 0;background:var(--card-bg);}
.gen-sec>summary{cursor:pointer;padding:12px 16px;font-weight:700;font-size:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;list-style:none;}
.gen-sec>summary::-webkit-details-marker{display:none;}
.gen-sec>summary::before{content:"▸";color:var(--text-muted);}
.gen-sec[open]>summary::before{content:"▾";}
.gen-sec .gen-int{padding:0 16px 14px;}
.campo-gen{display:flex;flex-direction:column;gap:3px;font-size:13px;margin-bottom:12px;}
.campo-gen>span.etq{color:var(--text);font-weight:600;}
.campo-gen small{color:var(--text-muted);font-size:11.5px;}
.campo-gen input,.campo-gen select,.campo-gen textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit;}
.campo-gen .sug{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0;text-align:left;}
.grid-gen{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:4px 18px;}
.hallazgo{border:1px solid var(--border);border-left-width:5px;border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--bg);font-size:13px;}
.hallazgo.bloquea{border-left-color:var(--danger);} .hallazgo.aviso{border-left-color:#d9982b;} .hallazgo.ok{border-left-color:#2e9b57;} .hallazgo.excepcion{border-left-color:var(--accent);}
.hallazgo .cab{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-weight:700;}
.hallazgo .meta{color:var(--text-muted);font-size:12px;margin-top:4px;}
.proteccion{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:8px 0;}
.proteccion label{display:flex;flex-direction:row;gap:10px;align-items:flex-start;cursor:pointer;font-size:14px;font-weight:600;color:var(--text);}
.texto-clausula{white-space:pre-wrap;font-size:12.5px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:6px 0;}
.preview-doc{background:#fff;color:#111;border:1px solid var(--border);border-radius:8px;padding:28px 36px;font-family:"Times New Roman",Georgia,serif;font-size:13.5px;line-height:1.5;max-height:60vh;overflow:auto;}
.preview-doc h1{font-size:18px;text-align:center;margin:0 0 14px;} .preview-doc h2{font-size:14px;margin:16px 0 6px;} .preview-doc h3{font-size:13.5px;margin:12px 0 4px;}
.preview-doc p{margin:6px 0;text-align:justify;} .preview-doc .lista{margin-left:22px;} .preview-doc .cont{margin-left:34px;}
.preview-doc .anexo{border-top:2px solid #bbb;margin-top:18px;padding-top:8px;font-weight:700;text-align:center;}
.preview-doc table{border-collapse:collapse;width:100%;font-size:12.5px;margin:8px 0;} .preview-doc td,.preview-doc th{border:1px solid #bbb;padding:4px 8px;white-space:normal;color:#111;}
.firmas{display:flex;justify-content:space-around;margin:26px 0;font-weight:700;text-align:center;}
.checklist-fila{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px;}
.checklist-fila:last-child{border-bottom:none;}
.sticky-estado{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px;}

/* ---------- biblioteca ---------- */
.subtabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:14px;flex-wrap:wrap;}
.subtabs button{background:none;border:none;padding:8px 14px;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:3px solid transparent;}
.subtabs button.active{color:var(--accent);border-bottom-color:var(--accent);}
.variante{border:1px solid var(--border);border-radius:10px;padding:8px 10px;margin:8px 0;}
.variante textarea{width:100%;min-height:110px;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px;font-family:inherit;font-size:13px;}
.json-cond{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:11.5px;white-space:pre-wrap;overflow:auto;max-height:140px;}
/* ---------- facturas de gastos y rentabilidad ---------- */
.ga-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:10px;}
.ga-fila label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted);}
.ga-fila select,.controls label select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px;}
.controls label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--text-muted);}
.ga-check{cursor:pointer;}
.ga-zona{border:2px dashed var(--border);border-radius:12px;padding:26px 16px;text-align:center;color:var(--text-muted);cursor:pointer;background:var(--bg);}
.ga-zona:hover,.ga-zona:focus,.ga-zona.sobre{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);outline:none;}
.ga-sel{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0;}
.ga-prog{font-size:13px;color:var(--text-muted);margin-left:10px;}
.ga-resumen{margin:12px 0 8px;font-size:14px;}
.ga-pie{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:10px 2px;font-size:13px;color:var(--text-muted);}
.ga-enlinea{max-width:210px;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 6px;font-size:12.5px;}
.ga-aviso{background:var(--warn-bg);color:var(--warn-text);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:14px;}
.ga-aviso .link-btn{color:var(--warn-text);text-decoration:underline;font-size:14px;}
.prestamo{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px;} .prestamo h5{margin:0 0 6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
/* la pantalla «Rentabilidad» tiene sus estilos en rentabilidad.css */

@media print{
  body.imprimiendo > .app, body.imprimiendo dialog:not(#dlgImprimir), body.imprimiendo .toast{display:none !important;}
  body.imprimiendo #dlgImprimir{position:static;box-shadow:none;width:auto;height:auto;max-height:none;overflow:visible;}
  body.imprimiendo #dlgImprimir::backdrop{display:none;}
  .no-imprimir{display:none !important;}
}

/* ---------- pantalla «Actualizar rentas» (rentas.js) ---------- */
.re-inmueble{color:var(--text);text-decoration:none;}
.re-inmueble:hover,.re-inmueble:focus-visible{color:var(--accent);text-decoration:underline;}
