/* Alquileres PH — sistema visual claro/oscuro, con navegación lateral.
   La lógica de negocio y los permisos siguen estando en Supabase. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;650;700;750;800&display=swap');
:root {
 --primary:#5c3bd6; --hover:#4828bc; --primary-soft:#f2edff;
 --bg:#f7f8fc; --surface:#fff; --text:#202a40; --muted:#717f95;
 --border:#e6e9f1; --row:#f7f8fc; --success:#147c62;
 --error:#bc3c4d; --warning:#98661a; --shadow:0 4px 24px rgba(24,38,69,.035);
 --radius:14px; --sidebar:244px; --topbar:84px;
 color-scheme:light;
}
body[data-theme="dark"]{
 --primary:#b7a6ff; --hover:#d0c5ff; --primary-soft:#36294f;
 --bg:#101827; --surface:#1b2637; --text:#ecf2fc; --muted:#a5b3c8;
 --border:#344156; --row:#253249; --success:#7ae0b9;
 --error:#ff9da9; --warning:#f7c57e; --shadow:0 6px 20px rgba(0,0,0,.09);
 color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;font:14px/1.55 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.53;cursor:not-allowed}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
[hidden]{display:none!important}
.app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
.encabezado{grid-column:1/-1;grid-row:1;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:var(--topbar);padding:15px 33px;background:var(--surface);border-bottom:1px solid var(--border)}
.marca{display:flex;flex-direction:column}.marca h1{margin:0;font-size:20px;letter-spacing:-.8px;font-weight:800;color:var(--text)}.marca h1::before{content:"◆";color:var(--primary);font-size:18px;margin-right:10px}.marca p{margin:3px 0 0 29px;color:var(--muted);font-size:12px}
.usuario{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px}.usuario span{font-weight:600;color:var(--muted)}
#btn-salir{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:9px;padding:10px 14px;font-weight:600}#btn-salir:hover{color:var(--text);background:var(--row)}
.menu-principal{grid-column:1;grid-row:2;align-self:stretch;display:flex;flex-direction:column;gap:4px;min-width:0;padding:30px 14px 28px;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto}
.menu-principal::before{content:"ESPACIO DE TRABAJO";font-size:10px;letter-spacing:1.45px;font-weight:800;color:var(--muted);margin:0 10px 13px}
.menu-opcion{width:100%;flex:none;min-height:45px;display:flex;align-items:center;text-align:left;padding:11px 14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:13px;font-weight:600;line-height:1.3;white-space:normal;transition:background .16s ease,color .16s ease}
.menu-opcion:hover{background:var(--row);color:var(--text)}.menu-opcion.activo{color:var(--primary);background:var(--primary-soft);font-weight:750}.menu-opcion.activo::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--primary);margin-right:11px;flex:none}
#contenido-principal{grid-column:2;grid-row:2;width:100%;max-width:1550px;margin:0 auto;padding:34px clamp(20px,3.2vw,52px) 64px;min-width:0;min-height:calc(100vh - 142px)}
.app:has(.menu-principal[hidden]) #contenido-principal{grid-column:1/-1}
.titulo-seccion{margin-bottom:26px}.titulo-seccion h2{margin:0;font-size:clamp(22px,2vw,27px);font-weight:750;letter-spacing:-.7px}.titulo-seccion p{margin:6px 0 0;color:var(--muted);font-size:13px}
#estado-aplicacion{padding:11px 16px;margin-bottom:21px;border-radius:10px;background:var(--surface);color:var(--muted);border:1px solid var(--border);font-size:13px}#estado-aplicacion.error{color:var(--error);border-color:var(--error)}#estado-aplicacion.exito{color:var(--success)}
.tarjeta,.indicador{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.tarjeta{padding:25px;margin-bottom:20px}.tarjeta h3{margin:0 0 19px;font-size:15px;font-weight:750;letter-spacing:-.2px}.tarjeta>p{line-height:1.7}
.cuadricula{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr));gap:15px}.indicador{padding:22px;min-height:150px;display:flex;flex-direction:column;justify-content:center}.indicador-titulo{color:var(--muted);font-size:12px;font-weight:600}.indicador-valor{font-size:clamp(22px,2.1vw,29px);font-weight:750;letter-spacing:-1px;margin:9px 0 10px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.indicador-detalle{font-size:11px;color:var(--muted)}
.separacion{margin-top:19px}.doble-columna{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:17px}
.boton-primario,.boton-secundario,.boton-peligro{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:10px 16px;border-radius:9px;font-size:13px;font-weight:700;line-height:1.25;white-space:normal;text-align:center;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.boton-primario{background:#5634d3;color:#fff;border:1px solid #5634d3}.boton-primario:hover:not(:disabled){background:#4326af}.boton-secundario{background:var(--surface);color:var(--text);border:1px solid var(--border)}.boton-secundario:hover:not(:disabled){background:var(--row);border-color:var(--muted)}.boton-peligro{background:var(--surface);color:var(--error);border:1px solid var(--error)}
input,select,textarea{display:block;min-width:0;min-height:43px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);max-width:100%;transition:border-color .15s ease}input:hover,select:hover{border-color:var(--muted)}
input[type=number],input[type=date],input[type=month]{width:100%;max-width:none}
.campo{display:flex;flex-direction:column;justify-content:flex-end;gap:7px;min-width:0}.campo label{font-size:12px;font-weight:700;color:var(--text)}.campo input,.campo select{width:100%}
.formulario{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:18px}.formulario-acciones{grid-column:1/-1;display:flex;justify-content:flex-start;align-items:center;gap:11px;padding-top:2px}
.fila-acciones{display:flex;align-items:flex-end;justify-content:flex-start;gap:12px;flex-wrap:wrap;margin:0 0 21px}.fila-acciones>.campo{min-width:215px}.fila-acciones>button{flex:none;min-height:43px;align-self:flex-end}.fila-acciones label{margin:0}
.formulario.tarjeta{align-items:end}
.tabla-contenedor{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:10px}.tabla-datos{width:100%;border-collapse:collapse;text-align:left}.tabla-datos th,.tabla-datos td{padding:15px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.tabla-datos th{font-size:11px;font-weight:750;letter-spacing:.2px;color:var(--muted);background:var(--row);white-space:nowrap}.tabla-datos tbody tr:last-child td{border-bottom:0}.tabla-datos tbody tr:hover{background:var(--row)}.tabla-datos td .boton-secundario{min-height:35px;padding:7px 13px}
.numero{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.texto-secundario,.nota{color:var(--muted)}.nota{font-size:12px;margin:12px 0;line-height:1.7}.etiqueta{display:inline-block;border:1px solid var(--border);padding:4px 8px;border-radius:8px;font-size:11px}.exito{color:var(--success)}.error{color:var(--error)}.aviso{color:var(--warning)}.bloque-datos{border-top:1px solid var(--border);margin-top:14px;padding-top:13px}.bloque-datos p{margin:7px 0}.barra{height:12px;background:var(--row);border-radius:20px;overflow:hidden}.barra>div{height:100%;background:var(--primary);border-radius:20px}
#pantalla-login{max-width:440px;margin:36px auto}#form-login{display:flex;flex-direction:column;gap:11px}#form-login label{font-size:12px;font-weight:700}#form-login input{width:100%}#mensaje-login{color:var(--error)}
.pie{grid-column:1/-1;grid-row:3;padding:15px 28px;text-align:center;border-top:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:11px}
@media(max-width:1120px){:root{--sidebar:205px}.encabezado{padding:15px 22px}.menu-principal{padding:23px 10px}.menu-opcion{font-size:12px;padding:10px 12px}#contenido-principal{padding:26px 24px 48px}.formulario{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.app{display:flex;flex-direction:column}.encabezado{min-height:0;align-items:flex-start;flex-wrap:wrap;padding:17px}.marca h1{font-size:19px}.marca p{margin-left:29px}.usuario{width:100%;justify-content:flex-start;gap:9px}.menu-principal{display:flex;flex-direction:row;gap:6px;padding:9px 13px;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--border)}.menu-principal::before{display:none}.menu-opcion{width:auto;min-height:39px;white-space:nowrap;padding:8px 11px}.menu-opcion.activo::before{margin-right:7px}#contenido-principal{width:100%;padding:24px 16px 46px;min-height:55vh}.tarjeta{padding:18px}.formulario{grid-template-columns:minmax(0,1fr)}.fila-acciones>.campo{flex:1 1 190px}.fila-acciones>button{flex:0 0 auto}.cuadricula{grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr))}.tabla-datos th,.tabla-datos td{padding:12px;font-size:12px}.pie{padding:13px}}
@media(max-width:430px){.marca h1{font-size:18px}.indicador{min-height:120px;padding:18px}.fila-acciones{align-items:stretch}.fila-acciones>.campo,.fila-acciones>button{width:100%;flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Terminación visual del panel: seis tarjetas equilibradas y valores legibles. */
.indicadores-dashboard {grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.indicadores-dashboard .indicador {min-width:0;min-height:148px}
.indicadores-dashboard .indicador-valor {font-size:clamp(21px,2vw,28px);letter-spacing:-.65px;overflow-wrap:normal;word-break:normal}
#estado-aplicacion[hidden]{display:none!important}
.tarjeta .fila-acciones {align-items:end}
.tarjeta .fila-acciones button {min-height:43px}
.tabla-datos td:last-child .boton-secundario {white-space:nowrap}
@media(max-width:1200px){.indicadores-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.indicadores-dashboard{grid-template-columns:minmax(0,1fr)}}

/* Administración de inmuebles */
.acciones-tabla {display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.acciones-tabla .boton-secundario {white-space:nowrap}
.cabecera-tarjeta {display:flex;gap:8px;flex-direction:column;margin-bottom:14px}
.cabecera-tarjeta h3,.cabecera-tarjeta p {margin:0}
.formulario-inmueble {margin-top:18px}
.formulario-inmueble .campo label {display:flex;flex-direction:column;gap:8px}
@media(max-width:760px){.acciones-tabla{min-width:155px}}

/* Listado de personas y gráficos financieros */
.buscador-listado{display:block;width:min(100%,420px);padding:12px 14px;margin:14px 0 22px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}
.grafico-barras{display:flex;flex-direction:column;gap:18px;margin:24px 0 4px}
.grafico-fila{display:grid;grid-template-columns:85px minmax(80px,1fr) 155px;align-items:center;gap:16px}
.grafico-mes{color:var(--muted);font-size:13px;text-transform:capitalize}
.grafico-fondo{height:20px;border-radius:7px;background:var(--row);overflow:hidden;border:1px solid var(--border)}
.grafico-barra{height:100%;border-radius:6px;background:var(--primary)}
.grafico-numero{text-align:right;font-weight:650;font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media(max-width:650px){.grafico-fila{grid-template-columns:62px minmax(30px,1fr) 115px;gap:8px}.grafico-numero{font-size:11px}}

/* Mejoras de coherencia visual y accesibilidad */
.buscador-listado:focus-visible{outline-offset:2px}
.tabla-datos td{overflow-wrap:normal}
@media(max-width:1050px){.tabla-contenedor{overflow-x:auto}.tabla-datos{min-width:680px}}

/* Formularios administrativos accesibles y adaptables */
.formulario-inquilino{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:940px;margin-top:18px}
.formulario-inquilino .campo{display:flex;flex-direction:column;gap:7px;min-width:0}
.formulario-inquilino .campo input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text)}
.formulario-inquilino .acciones-formulario{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
.cabecera-acciones{display:flex;justify-content:flex-end;margin:0 0 16px}
@media(max-width:700px){.formulario-inquilino{grid-template-columns:1fr}}

/* Correcciones de formularios, cuadros de confirmación y documentos */
.formulario-inquilino .campo input,.formulario-inquilino .campo textarea{display:block!important;min-height:48px!important;background:var(--surface)!important;border:1px solid var(--border)!important;color:var(--text)!important;opacity:1!important;visibility:visible!important;box-shadow:0 1px 2px rgba(20,25,40,.06)}
.formulario-inquilino .campo input::placeholder{color:var(--muted);opacity:1}
.formulario-inquilino .campo input:focus{border-color:var(--primary)!important;outline:2px solid var(--primary);outline-offset:1px}
.texto-nombre-propio{text-transform:capitalize}
.boton-peligro{background:#b42336;color:white;border:0;border-radius:9px;padding:11px 17px;font-weight:700;cursor:pointer;margin:8px 0}
.modal-fondo{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(14,20,37,.6);backdrop-filter:blur(3px)}
.modal-tarjeta{width:min(100%,480px);border-radius:18px;background:var(--surface);border:1px solid var(--border);box-shadow:0 18px 70px rgba(10,15,30,.25);padding:26px;color:var(--text)}
.modal-tarjeta h3{margin:0 0 10px;font-size:20px}.modal-tarjeta p{line-height:1.7;color:var(--muted)}
.modal-acciones{display:flex;justify-content:flex-end;gap:12px;margin-top:26px}
.bloque-banco{margin:22px 0;padding:17px;border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.bloque-banco label{font-weight:700}.bloque-banco textarea{width:100%;resize:vertical;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:11px}

.filtros-estadisticas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end;margin:16px 0}.filtros-estadisticas>button{justify-self:start;height:44px}.lineas-estadisticas{width:100%;overflow-x:auto}.grafico-lineal{width:100%;min-width:650px;max-height:350px}.lineas-estadisticas .tabla-contenedor{margin-top:20px}@media(max-width:900px){.filtros-estadisticas{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.filtros-estadisticas{grid-template-columns:1fr}}

/* Cobros: campos monetarios argentinos con signo fijo y sin romper el diseño */
.importe-con-simbolo{display:flex;align-items:stretch;min-width:0;position:relative}
.importe-con-simbolo .simbolo-pesos{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-weight:750;color:var(--text);pointer-events:none}
.importe-con-simbolo input{padding-left:32px!important;text-align:right;font-variant-numeric:tabular-nums;width:100%;min-width:0}
.ayuda-cobro{grid-column:1/-1;max-width:850px;margin:0!important}

/* Configuración operativa administrada por contrato */
.condiciones-form {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:end;}
.condiciones-form>h3,.condiciones-form>.nota,.condiciones-form>.condiciones-lista,.condiciones-form>.formulario-acciones {grid-column:1/-1;}
.condiciones-form textarea,.condiciones-form input,.condiciones-form select {width:100%;min-height:44px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:10px 12px;}
.condiciones-form label {display:block;margin-bottom:8px;font-weight:600;}
.condicion-fila {display:grid;grid-template-columns:1.1fr 1.5fr .8fr 1fr auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--border);border-radius:12px;margin-bottom:12px;}
@media(max-width:1000px){.condicion-fila{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.condiciones-form,.condicion-fila{grid-template-columns:1fr;}}

/* Flujo simplificado y acciones administrativas */
.configuracion-liquidacion {margin: 4px 0 10px;padding: 12px 15px;border:1px solid var(--border);border-radius:10px;background:var(--surface);}
.fila-acciones {display:flex;align-items:end;gap:10px;flex-wrap:wrap;}
.fila-acciones button {min-height:40px;}
.total-documento {font-size:1.12rem;font-weight:700;text-align:right;margin:18px 0;}
.boton-peligro {background:transparent;border:1px solid #bd4651;color:#bd4651;border-radius:9px;padding:10px 15px;font-weight:600;}
.boton-peligro:hover {background:rgba(189,70,81,.1);}
.tabla-datos .fila-acciones {gap:6px;}
.tabla-datos .fila-acciones button {white-space:nowrap;}
/* Consolidación visual: grillas fluidas, acciones coherentes y formularios legibles. */
.panel-cargas{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:13px;width:100%}
.panel-cargas h4{grid-column:1/-1;margin:15px 0 2px}
.carga-mensual{display:flex;flex-direction:column;gap:11px;border:1px solid var(--border);border-radius:12px;padding:17px;background:var(--surface);min-width:0}
.carga-descripcion{font-size:13px;font-weight:650;line-height:1.5}
.carga-mensual .campo{margin:0;min-width:0}.carga-mensual input{width:100%;font-variant-numeric:tabular-nums}
.panel-comision{margin:26px 0;border-top:1px solid var(--border);padding-top:24px}
.panel-comision h3,.grupo-expensas-admin h4{margin:0 0 15px}
.grupo-expensas-admin{border:1px solid var(--border);border-radius:14px;margin:19px 0;padding:18px}
.concepto-config-fila{display:grid;grid-template-columns:1fr 1.6fr 1fr 1fr .7fr;gap:12px;margin:14px 0;align-items:end}
.configuraciones-expensas .campo{min-width:0}.configuraciones-expensas input,.configuraciones-expensas select{width:100%}
.formulario-acciones,.fila-acciones,.modal-acciones{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.formulario-acciones button,.fila-acciones button{min-height:43px;margin:0}
.importe-pendiente{font-size:clamp(1.35rem,2.4vw,2.2rem);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
@media(max-width:1050px){.concepto-config-fila{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.concepto-config-fila{grid-template-columns:minmax(0,1fr)}.formulario-acciones button{flex:1 1 auto}}

/* Sección Inversiones: controles y visualización exclusiva. */
.inversiones-acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.inversion-chart{display:grid;gap:10px;padding:12px 0}
.inversion-chart-row{display:grid;grid-template-columns:110px minmax(80px,1fr) 125px;gap:12px;align-items:center;font-size:.83rem}
.inversion-chart-period{font-weight:600}
.inversion-chart-track{height:12px;border-radius:999px;background:var(--borde,#e5e7eb);overflow:hidden}
.inversion-chart-bar{height:100%;border-radius:999px;background:#635bff}
.inversion-chart-value{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:550px){.inversion-chart-row{grid-template-columns:80px minmax(60px,1fr) 105px;gap:7px;font-size:.72rem}}

/* Inversiones: cinco indicadores alineados en una sola fila en escritorio. */
.indicadores-dashboard.indicadores-inversiones {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.indicadores-inversiones .indicador {min-width:0;min-height:154px;padding:20px 16px;}
.indicadores-inversiones .indicador-valor {font-size:clamp(19px,1.75vw,27px);line-height:1.2;overflow-wrap:normal;word-break:normal;}
@media (max-width:1400px) {
 .indicadores-dashboard.indicadores-inversiones {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:900px) {
 .indicadores-dashboard.indicadores-inversiones {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px) {
 .indicadores-dashboard.indicadores-inversiones {grid-template-columns:minmax(0,1fr);}
}

/* Inversiones: valores tabulares, alineados y sin prefijos repetidos. */
.tabla-inversiones th:nth-child(n+2):nth-child(-n+7),
.tabla-inversiones td:nth-child(n+2):nth-child(-n+7) {
 text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;
}

/* Ficha única: administración directa sin submenús ni formularios sobredimensionados. */
.condiciones-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.condiciones-form>h3,.condiciones-form>.nota,.condiciones-form>.condiciones-lista,.condiciones-form>.formulario-acciones{grid-column:1/-1}
.condiciones-form textarea{width:100%;min-height:76px}
.configuraciones-expensas{display:grid;gap:8px}
.concepto-config-fila{display:grid;grid-template-columns:1.05fr 1.5fr 1fr 1fr .7fr;gap:9px;align-items:end;padding:10px 0;border-bottom:1px solid var(--border)}
.concepto-config-fila .campo{min-width:0}
.concepto-config-fila input,.concepto-config-fila select{width:100%}
.condiciones-lista{display:grid;gap:9px}
.condicion-fila{display:grid;grid-template-columns:1fr 1.4fr .8fr 1fr 1fr auto auto;gap:9px;align-items:end;padding:10px 0;border-bottom:1px solid var(--border)}
.condicion-fila .campo{min-width:0}
.condicion-fila input,.condicion-fila select{width:100%}
@media(max-width:1050px){.concepto-config-fila{grid-template-columns:repeat(2,minmax(0,1fr))}.condicion-fila{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.condiciones-form,.concepto-config-fila,.condicion-fila{grid-template-columns:1fr}}


/* Ajuste consolidado: controles de listado, sin huecos ni encabezados repetidos */
.tarjeta-listado-contratos{padding:16px 18px 18px}
.tarjeta-listado-contratos .controles-listado-contratos{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin:0 0 10px}
.tarjeta-listado-contratos .controles-listado-contratos select{width:auto;min-width:175px;max-width:220px;margin:0!important;height:39px;min-height:39px;padding:6px 10px!important}
.tarjeta-listado-contratos .controles-listado-contratos button{min-height:39px;padding:7px 12px;white-space:nowrap}
.tarjeta-listado-contratos .tabla-datos th,.tarjeta-listado-contratos .tabla-datos td{padding:10px 12px}
/* Comisiones: acciones en la misma línea; no una fila de botones debajo */
.filtros-estadisticas:has(.acciones-comisiones-compactas){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.acciones-comisiones-compactas{display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:9px;min-width:max-content}
.acciones-comisiones-compactas button{min-height:43px;white-space:nowrap}
@media(max-width:900px){.filtros-estadisticas:has(.acciones-comisiones-compactas){grid-template-columns:repeat(2,minmax(0,1fr))}.acciones-comisiones-compactas{grid-column:1/-1}}
@media(max-width:520px){.tarjeta-listado-contratos .controles-listado-contratos{justify-content:flex-start}.filtros-estadisticas:has(.acciones-comisiones-compactas){grid-template-columns:1fr}.acciones-comisiones-compactas{grid-column:auto;flex-wrap:wrap}}

/* Preparación operativa: resumen mensual compacto, sin scroll interno */
.tarjeta-preparacion-mensual{padding:14px 18px;margin-bottom:12px}
.tarjeta-preparacion-mensual h3{margin-bottom:4px}
.tarjeta-preparacion-mensual .nota{margin:4px 0 9px}
.tarjeta-preparacion-mensual .tabla-datos td,.tarjeta-preparacion-mensual .tabla-datos th{padding:8px 11px}
.tarjeta-preparacion-mensual .tabla-datos td:nth-child(3){max-width:410px;overflow-wrap:anywhere}

/* Ficha de contrato compacta: etiquetas y valores separados; una sola grilla. */
.resumen-general-contrato{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 18px!important;margin:12px 0 18px!important;align-items:stretch}
.resumen-general-contrato .dato-contrato{min-width:0;display:flex!important;flex-direction:column!important;gap:5px!important;margin:0!important;padding:10px 12px!important;border:1px solid var(--border);background:var(--row);border-radius:9px;line-height:1.35}
.resumen-general-contrato .dato-contrato-etiqueta{display:block;color:var(--muted);font-size:11px;font-weight:600;line-height:1.35}
.resumen-general-contrato .dato-contrato strong{display:block;font-size:13px;overflow-wrap:anywhere;line-height:1.5;font-weight:700}
.resumen-general-contrato .dato-contrato-canon{grid-column:span 2}
.resumen-general-contrato .entrada-contrato-en-linea{width:100%;min-width:0;max-width:100%;margin-top:2px}
@media(max-width:1200px){.resumen-general-contrato{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.resumen-general-contrato{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.resumen-general-contrato{grid-template-columns:1fr}.resumen-general-contrato .dato-contrato-canon{grid-column:auto}}
.tarjeta-preparacion-mensual{padding:16px 20px;margin-bottom:14px}
.tarjeta-preparacion-mensual .tabla-datos th,.tarjeta-preparacion-mensual .tabla-datos td{padding:9px 11px}

/* Liquidaciones: identificadores visibles y acceso compacto al formulario. */
.tarjeta-preparacion-mensual .tabla-datos td:last-child button {white-space:nowrap;min-height:34px;padding:7px 12px}
.panel-cargas .carga-descripcion {overflow-wrap:anywhere;line-height:1.45;font-weight:700}
.panel-cargas .carga-mensual {padding:14px;gap:9px}
.panel-cargas .carga-mensual .campo label {color:var(--muted)}
@media(max-width:760px){.preparacion-mensual-tabla .tabla-contenedor{overflow-x:auto}}

/* Etapa 2 localhost: controles compactos del proceso mensual. */
.carga-descripcion{overflow-wrap:anywhere}
.tarjeta-preparacion-mensual .tabla-datos td:last-child{white-space:nowrap;width:1%}
.tarjeta-preparacion-mensual .tabla-datos td:last-child button{min-height:35px;padding:6px 13px}
.ayuda-cobro{border-left:3px solid var(--primary);padding-left:12px}

/* Etapa 3: cobros organizados en acciones principales y excepción plegable. */
.acciones-cobros-principales{justify-content:flex-start!important;margin:12px 0!important}
.cobros-excepcionales{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:5px 0 18px}
.cobros-excepcionales>summary{cursor:pointer;padding:13px 17px;font-size:12px;font-weight:700;color:var(--muted)}
.cobros-excepcionales-interior{padding:0 17px 16px}
.cobros-excepcionales-interior .nota{margin-top:0}
.filtros-historico{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:10px 0 12px}
.filtros-historico>.campo{flex:0 1 220px;min-width:190px}
.filtros-historico>.boton-secundario{flex:none;min-height:43px}
.filtros-historico-opciones{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.filtros-historico-opciones>.campo{min-width:165px;flex:1 1 165px}
.filtros-historico-opciones[hidden]{display:none!important}
@media(max-width:620px){.filtros-historico>.campo,.filtros-historico>.boton-secundario{flex:1 1 100%}.filtros-historico-opciones{width:100%}}

/* Detalle y distribución de pagos parciales en el formulario de cobro */
.detalle-liquidacion-cobro{grid-column:1/-1;padding:12px 15px;border:1px solid var(--border);border-radius:12px;background:var(--row);min-width:0}
.detalle-liquidacion-cobro h4{margin:0 0 12px;font-size:14px}
.detalle-liquidacion-cobro .tabla-contenedor{max-width:900px;background:var(--surface)}
.detalle-liquidacion-cobro .tabla-datos th,.detalle-liquidacion-cobro .tabla-datos td{padding:9px 12px}
.detalle-liquidacion-cobro .tabla-datos td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.gm-desglose-cobro{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px;margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.gm-desglose-cobro h4,.gm-desglose-cobro>.nota,.gm-desglose-suma{grid-column:1/-1}
.gm-desglose-cobro h4{margin:0}
.gm-desglose-cobro .campo{margin:0}
.gm-desglose-suma{align-self:center;color:var(--warning);font-variant-numeric:tabular-nums}
.gm-desglose-suma.gm-desglose-coincide{color:var(--success)}
@media(max-width:600px){.gm-desglose-cobro{grid-template-columns:minmax(0,1fr);padding:12px}}

/* ================================================================
   GESTIÓN MENSUAL V2 — interfaz integrada, sin framework.
   Los estados/importes proceden de Supabase y nunca de datos demo.
   ================================================================ */
:root{
 --primary:#5145cc;--hover:#4236b8;--primary-soft:#f0efff;
 --bg:#f7f8fa;--surface:#fff;--text:#1b2536;--muted:#748199;
 --border:#e7eaf0;--row:#f5f7fa;--success:#118464;--warning:#a46c1f;
 --radius:12px;--sidebar:213px;--topbar:65px;--shadow:0 7px 26px rgba(25,44,78,.035);
}
body[data-theme=dark]{
 --primary:#b3a8ff;--hover:#d4ccff;--primary-soft:#303054;
 --bg:#0f1522;--surface:#1a2434;--text:#f0f4fa;--muted:#9daec5;
 --border:#324156;--row:#222e40;--success:#6dd5ae;--warning:#f0bb72;
 --shadow:none;
}
.encabezado{min-height:65px;padding:12px 27px}
.marca h1{font-size:16px;letter-spacing:-.4px}.marca h1::before{font-size:15px}
.marca p{font-size:10px}
.menu-principal{padding:24px 12px 22px;gap:3px}
.menu-opcion{font-size:12px;min-height:40px;padding:10px 13px;border-radius:9px}
#contenido-principal{max-width:1600px;padding:32px clamp(16px,3.1vw,44px) 55px}
.app:has(.gm-vista) .titulo-seccion{display:none}
#estado-aplicacion{font-size:12px;border-radius:9px}
.tarjeta{padding:21px;margin-bottom:16px}
.tabla-datos th,.tabla-datos td{padding:10px 12px}
.boton-primario,.boton-secundario{border-radius:8px}

.gm-vista{font-size:13px;line-height:1.45;color:var(--text)}
.gm-cabecera{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:22px}
.gm-eyebrow{font-size:10px;letter-spacing:1.1px;font-weight:800;color:var(--muted)}
.gm-cabecera h2{font-size:clamp(25px,2.55vw,34px);line-height:1.16;letter-spacing:-1px;margin:5px 0 5px;font-weight:780}
.gm-sub{color:var(--muted);font-size:12px;margin:0;line-height:1.5}
.gm-meses{display:flex;align-items:center;gap:5px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:4px}
.gm-meses strong{font-size:12px;min-width:150px;text-align:center;font-weight:750;text-transform:capitalize}
.gm-flecha{width:35px;height:34px;border:0;background:transparent;border-radius:8px;color:var(--text);font-size:23px;line-height:1;display:grid;place-items:center;padding:0}
.gm-flecha:hover{background:var(--row)}
.gm-indicadores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}
.gm-indicador{min-width:0;padding:19px 21px 15px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}
.gm-indicador-superior{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gm-indicador-superior strong{font-size:12px;color:var(--text);font-weight:700}
.gm-indicador-superior small{font-size:10px;color:var(--muted)}
.gm-cifra{font-size:clamp(25px,2.45vw,35px);font-weight:780;letter-spacing:-1.15px;line-height:1.16;font-variant-numeric:tabular-nums;margin:12px 0 6px;overflow-wrap:anywhere}
.gm-indicador-pie{font-size:11px;color:var(--muted);margin:0}
.gm-link{color:var(--primary);background:transparent;border:0;font-size:11px;font-weight:750;padding:6px 0;margin-top:5px;text-align:left}
.gm-link:hover{text-decoration:underline}
.gm-pipeline{border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.gm-cargando{padding:25px;color:var(--muted)}
.gm-pipeline-top{padding:20px 21px 13px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.gm-pipeline-top h3{font-size:16px;font-weight:760;letter-spacing:-.3px;margin:0 0 3px}
.gm-filtros{display:flex;align-items:center;gap:8px}
.gm-buscar,.gm-select{min-height:36px;height:36px;border:1px solid var(--border);border-radius:8px;padding:7px 10px;background:var(--surface);color:var(--text);font-size:12px}
.gm-buscar{width:185px}.gm-select{width:145px}
.gm-avance{display:flex;align-items:center;gap:10px;padding:0 21px 14px;color:var(--muted);font-size:11px;flex-wrap:wrap}
.gm-avance strong{color:var(--text);font-size:11px}
.gm-barra{background:var(--border);width:110px;height:6px;border-radius:30px;overflow:hidden}
.gm-progreso{height:100%;background:var(--success);border-radius:30px;transition:width .2s}
.gm-head-tabla,.gm-fila{display:grid;grid-template-columns:minmax(165px,1.62fr) repeat(4,minmax(95px,1fr)) minmax(137px,1.15fr);gap:8px;align-items:center}
.gm-head-tabla{padding:10px 21px;background:var(--row);border-top:1px solid var(--border);color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.25px}
.gm-head-tabla span:nth-child(n+2):nth-child(-n+5){text-align:center}
.gm-fila{padding:12px 21px;min-height:75px;border-top:1px solid var(--border)}
.gm-fila:hover{background:color-mix(in srgb,var(--row) 60%,transparent)}
.gm-inmueble{min-width:0;display:flex;flex-direction:column;gap:4px}
.gm-inmueble strong{font-size:12px;font-weight:750;line-height:1.3}
.gm-inmueble span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gm-etapa{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:47px;min-width:0;padding:7px 3px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text)}
.gm-etapa:hover{border-color:var(--border);background:var(--surface)}
.gm-etapa-principal{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:730;white-space:nowrap}
.gm-etapa small{color:var(--muted);font-size:10px}
.gm-punto{width:14px;height:14px;display:inline-grid;place-items:center;border-radius:50%;border:1.5px solid var(--border);font-weight:800;font-size:10px;line-height:1;flex:none;color:var(--muted)}
.gm-listo .gm-etapa-principal{color:var(--success)}.gm-listo .gm-punto{background:var(--success);border-color:var(--success);color:#fff}
.gm-pendiente .gm-etapa-principal{color:var(--warning)}.gm-pendiente .gm-punto{background:color-mix(in srgb,var(--warning) 12%,var(--surface));border-color:var(--warning);color:var(--warning)}
.gm-desconocido .gm-etapa-principal{color:var(--muted)}
.gm-celda-accion{display:flex;justify-content:flex-end;min-width:0}
.gm-boton-fila{font-size:11px;font-weight:750;min-height:35px;padding:7px 11px;background:var(--primary-soft);color:var(--primary);border:0;border-radius:8px;max-width:100%;white-space:normal}
.gm-boton-fila:hover{filter:brightness(.96)}
.gm-vacio{padding:30px 20px;color:var(--muted)}
.gm-pie-grupo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 21px;background:var(--row);border-top:1px solid var(--border);font-size:11px;color:var(--muted)}
.gm-pie-general{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:var(--muted);font-size:11px}
.gm-fondo{position:fixed;inset:0;z-index:700;background:rgba(13,22,40,.44)}
.gm-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);z-index:701;background:var(--surface);color:var(--text);overflow:auto;box-shadow:-12px 0 55px rgba(0,0,0,.16);padding:28px clamp(17px,2.7vw,32px)}
.gm-drawer-cabecera{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:19px;border-bottom:1px solid var(--border);margin-bottom:20px}
.gm-drawer h2{font-size:22px;letter-spacing:-.7px;line-height:1.2;margin:6px 0}
.gm-cerrar{background:var(--row);color:var(--text);border:1px solid var(--border);border-radius:9px;min-width:35px;min-height:35px;font-size:17px}
.gm-drawer-cuerpo{display:flex;flex-direction:column;gap:17px;min-width:0}
.gm-detalle{border:1px solid var(--border);border-radius:11px;padding:16px;min-width:0}
.gm-detalle h3,.gm-form-gastos h3{font-size:13px;font-weight:780;margin:0 0 11px}
.gm-reparto-resumen{border:1px solid var(--border);border-radius:11px;padding:16px;min-width:0;background:var(--row)}
.gm-reparto-resumen h3{font-size:13px;margin:0 0 8px}.gm-reparto-resumen p{margin:7px 0;font-size:12px;line-height:1.5}
.gm-reparto-resumen h4{font-size:12px;margin:14px 0 6px}
.gm-expensas-emision{list-style:none;margin:0;padding:0}
.gm-expensas-emision li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-top:1px solid var(--border);font-size:12px}
.gm-expensas-emision li strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.gm-parte-expensas{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;border:1px solid var(--primary);border-radius:10px;background:var(--primary-soft);font-size:13px;font-weight:650}
.gm-parte-expensas strong{font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
.gm-dato{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}
.gm-dato:last-child{border:0}.gm-dato span{color:var(--muted)}.gm-dato strong{text-align:right;font-weight:730;font-variant-numeric:tabular-nums}
.gm-aviso{background:var(--row);border:1px solid var(--border);border-radius:9px;color:var(--muted);font-size:12px;line-height:1.55;padding:12px 14px;margin:0}
.gm-accion-primaria,.gm-accion-secundaria{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;min-height:42px;border-radius:9px;font-weight:750;font-size:12px;max-width:100%;text-align:center}
.gm-accion-primaria{background:#5145cc;color:#fff;border:1px solid #5145cc}
.gm-accion-secundaria{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.gm-form-gastos{display:flex;flex-direction:column;gap:12px}.gm-form-gastos h3{margin:9px 0 0}
.gm-form-gastos .campo{margin:0}.gm-form-gastos .campo input{width:100%}
.gm-form-embebido{min-width:0}
.gm-form-embebido .formulario{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:9px 12px;margin:0;box-shadow:none;padding:0;background:transparent;border:0}
.gm-form-embebido .formulario .campo{width:100%}
.gm-form-embebido .formulario .campo input,.gm-form-embebido .formulario .campo select{min-height:39px;padding:8px 10px}
.gm-form-embebido .formulario .ayuda-cobro,.gm-form-embebido .formulario .detalle-liquidacion-cobro,.gm-form-embebido .formulario-acciones{grid-column:1/-1}
.gm-form-embebido .formulario .ayuda-cobro{font-size:11px;line-height:1.4;margin:0!important;padding-left:9px}
.gm-form-embebido .formulario-acciones{justify-content:flex-end;padding-top:0}
.gm-cobro-drawer{padding:19px clamp(17px,2vw,24px)}
.gm-cobro-drawer .gm-drawer-cabecera{padding-bottom:10px;margin-bottom:0}
.gm-cobro-drawer .gm-drawer-cuerpo{gap:9px}
.gm-cobro-resumen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding:10px 13px}
.gm-cobro-resumen h3{grid-column:1/-1;margin:0 0 5px}
.gm-cobro-resumen .gm-dato{padding:5px 0;font-size:11px}
.gm-cobro-resumen .gm-dato:nth-last-child(2){border-bottom:0}
.gm-cobro-drawer .gm-aviso{padding:8px 11px;font-size:11px}
.gm-cobro-drawer .detalle-liquidacion-cobro{padding:0;border:0;background:transparent}
.gm-cobro-drawer .gm-desglose-cobro{margin:0;padding:9px 11px;gap:7px}
.gm-cobro-drawer .gm-desglose-cobro .nota{margin:3px 0}
.gm-cobro-drawer .formulario-acciones button{min-height:39px}
@media(max-width:520px){.gm-form-embebido .formulario{grid-template-columns:minmax(0,1fr)}.gm-cobro-resumen{grid-template-columns:minmax(0,1fr)}.gm-cobro-resumen h3,.gm-form-embebido .formulario .ayuda-cobro,.gm-form-embebido .formulario .detalle-liquidacion-cobro,.gm-form-embebido .formulario-acciones{grid-column:1}}
.gm-drawer .tabla-contenedor{max-width:100%;overflow-x:auto}
.gm-drawer .tabla-datos{min-width:0}
.gm-drawer .tabla-datos th,.gm-drawer .tabla-datos td{font-size:11px;padding:9px 10px}
@media(max-width:1160px){
 .gm-head-tabla,.gm-fila{grid-template-columns:minmax(130px,1.55fr) repeat(4,minmax(83px,1fr)) minmax(108px,1.05fr);gap:3px}
 .gm-head-tabla{padding-left:12px;padding-right:12px}.gm-fila{padding:11px 12px}.gm-etapa-principal{font-size:10px}
 .gm-boton-fila{font-size:10px;padding:8px}
}
@media(max-width:900px){
 .gm-cabecera{align-items:start;flex-wrap:wrap}
 .gm-meses{margin-left:auto}
 .gm-head-tabla{display:none}
 .gm-fila{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:13px;gap:7px}
 .gm-inmueble{grid-column:1/-1;padding-bottom:5px}
 .gm-inmueble strong{font-size:13px}.gm-inmueble span{font-size:11px}
 .gm-celda-accion{grid-column:1/-1;justify-content:stretch}.gm-boton-fila{width:100%;font-size:11px}
 .gm-indicador{padding:15px}.gm-indicador-superior small{display:none}
}
@media(max-width:650px){
 .gm-cabecera{margin-bottom:16px}.gm-meses{width:100%;justify-content:space-between}
 .gm-indicadores{grid-template-columns:1fr;gap:9px}.gm-indicador{padding:15px 17px}
 .gm-cifra{margin:7px 0;font-size:27px}
 .gm-pipeline-top{flex-direction:column;align-items:stretch;padding:15px;gap:12px}
 .gm-filtros>*{flex:1;min-width:0;width:auto}
 .gm-avance{padding:0 15px 12px}.gm-etapa-principal{font-size:10px}
 .gm-etapa{padding:7px 0}.gm-pie-grupo,.gm-pie-general{align-items:flex-start;flex-direction:column}
 .gm-drawer{padding:20px 17px}
}
.gm-meses strong{text-transform:none}


/* Gestión mensual V2.1 — legibilidad de Contratos y proyecciones futuras.
   Correcciones de presentación, sin duplicar la lógica financiera. */
.resumen-general-contrato .dato-contrato {
  gap:7px!important;
  padding:13px 15px!important;
}
.resumen-general-contrato .dato-contrato-etiqueta {
  display:block!important;
  font-size:11px;
  font-weight:650;
  letter-spacing:.01em;
}
.resumen-general-contrato .dato-contrato>strong {
  display:block!important;
  font-size:14px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
/* Los bloques anteriores contenían un strong y span sin estructura CSS;
   por eso las etiquetas y el texto aparecían pegados. */
.resumen-condiciones {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:12px 0 18px;
}
.resumen-condiciones .resumen-condicion {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:7px;
  margin:0;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--row);
  line-height:1.5;
}
.resumen-condiciones .resumen-condicion strong {
  display:block;
  font-size:12px;
  font-weight:730;
  color:var(--text);
  overflow-wrap:anywhere;
}
.resumen-condiciones .resumen-condicion span {
  display:block;
  font-size:12px;
  color:var(--muted);
  overflow-wrap:anywhere;
  white-space:pre-wrap;
}
.inquilino-tarjeta {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:12px;
  row-gap:10px;
  padding:14px 16px;
  margin:12px 0 18px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
}
.inquilino-tarjeta h4 {
  grid-column:1/-1;
  font-size:14px;
  font-weight:750;
  margin:0 0 2px;
}
.inquilino-tarjeta p {
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
  padding:9px 11px;
  margin:0;
  border-radius:9px;
  background:var(--row);
  font-size:12px;
  line-height:1.5;
  overflow-wrap:anywhere;
}
.inquilino-tarjeta p strong {display:block;color:var(--muted);font-size:11px;font-weight:650}
/* No se oculta información cuando el contrato se edita. */
.gm-proyeccion-titulo {font-size:13px;font-weight:750;margin:4px 0 -8px}
@media(max-width:700px){
  .resumen-condiciones,.inquilino-tarjeta{grid-template-columns:1fr}
}

/* Gestión mensual: distinguir una referencia económica de un canon confirmado. */
.gm-provisorio .gm-etapa-principal {color:var(--warning)}
.gm-provisorio .gm-punto {
    border-color:var(--warning);
    background:color-mix(in srgb,var(--warning) 13%,var(--surface));
    color:var(--warning);
}
.gm-provisorio:hover {border-color:var(--warning)}
.gm-indicador-pie{line-height:1.5}


/* V2.4 — Pipeline compacto en PC: 4 contratos y sus etapas en una vista.
   Solo Gestión mensual: las fichas y formularios de otras secciones no cambian.
   En pantallas bajas o de móvil se permite scroll natural, sin cortar información. */
@media (min-width: 1100px) {
  body:has(.gm-vista) { --topbar: 57px; }
  body:has(.gm-vista) .encabezado { min-height:57px; padding:8px 24px; }
  body:has(.gm-vista) .marca h1 { font-size:17px; }
  body:has(.gm-vista) .marca p { font-size:10px; margin-top:0; }
  body:has(.gm-vista) .menu-principal { padding-top:15px; gap:2px; }
  body:has(.gm-vista) .menu-opcion { min-height:35px; padding:8px 12px; font-size:12px; }
  body:has(.gm-vista) #contenido-principal { padding:14px clamp(16px,2.2vw,29px) 10px; min-height:0; }
  .gm-cabecera { align-items:center; margin-bottom:10px; }
  .gm-cabecera h2 { font-size:26px; margin:0; line-height:1.13; }
  .gm-meses { padding:2px; }
  .gm-flecha { height:30px; width:33px; }
  .gm-indicadores { gap:10px; margin-bottom:10px; }
  .gm-indicador { padding:11px 17px 9px; }
  .gm-indicador-superior strong { font-size:11px; }
  .gm-indicador-superior small { font-size:10px; }
  .gm-cifra { margin:4px 0 2px; font-size:clamp(25px,2.3vw,31px); }
  .gm-indicador-pie { font-size:10px; line-height:1.32; }
  .gm-link { padding:1px 0; margin-top:3px; font-size:10px; }
  .gm-pipeline-top { padding:10px 15px 7px; gap:10px; }
  .gm-pipeline-top h3 { margin:0; font-size:14px; }
  .gm-buscar,.gm-select { min-height:31px; height:31px; }
  .gm-avance { padding:0 15px 7px; gap:7px; }
  .gm-head-tabla { padding:7px 15px; }
  .gm-fila { min-height:56px; padding:5px 15px; }
  .gm-inmueble { gap:2px; }
  .gm-inmueble strong { font-size:11px; }
  .gm-inmueble span { font-size:10px; }
  .gm-etapa { min-height:34px; padding:3px 2px; }
  .gm-etapa-principal { font-size:10px; }
  .gm-etapa small { display:none; }
  .gm-boton-fila { min-height:30px; padding:6px 9px; font-size:10px; }
  .gm-pie-grupo { padding:6px 15px; }
  .gm-pie-general { margin-top:5px; }
  .gm-pie-general,.gm-pie-grupo { font-size:10px; }
}

/* V2.5 — navegación por proceso, con módulos secundarios plegables.
   Mantiene las rutas existentes y las autorizaciones del servidor. */
.menu-otras { width:100%; min-width:0; margin-top:9px; border-top:1px solid var(--border); padding-top:9px; }
.menu-otras-resumen { display:flex; align-items:center; justify-content:space-between; cursor:pointer;
    list-style:none; border-radius:9px; padding:10px 12px; color:var(--muted);
    font-size:12px; font-weight:700; user-select:none; }
.menu-otras-resumen::-webkit-details-marker { display:none; }
.menu-otras-resumen::after { content:'⌄'; font-size:15px; transition:transform .15s ease; }
.menu-otras[open] .menu-otras-resumen::after { transform:rotate(180deg); }
.menu-otras-resumen:hover,.menu-otras[open] .menu-otras-resumen { background:var(--row); color:var(--text); }
.menu-otras-resumen:focus-visible { outline:3px solid var(--primary); outline-offset:2px; }
.menu-otras-enlaces { display:flex; flex-direction:column; gap:2px; padding-top:4px; }
.menu-otras-enlaces .menu-opcion { font-size:12px; }
.permisos-recursos {min-width:0;margin:18px 0;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.permisos-recursos legend {padding:0 7px;font-weight:700;color:var(--text)}
.permisos-recursos>input {width:100%;margin-bottom:10px}
.permisos-lista {max-height:320px;overflow:auto;overscroll-behavior:contain}
.permisos-recurso {display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px 5px;border-bottom:1px solid var(--border)}
.permisos-recurso:last-child {border-bottom:0}
.permisos-recurso label {display:flex;align-items:center;gap:9px;margin:0;cursor:pointer;min-width:0}
.permisos-recurso input[type=checkbox] {width:18px;height:18px;min-height:18px;flex:0 0 auto;accent-color:var(--primary)}
.permisos-recurso .permiso-pdf {font-size:12px;color:var(--muted)}
.permisos-recurso span {overflow-wrap:anywhere}
.gm-pie-general { justify-content:flex-end; }
.config-pestanas {display:flex;gap:6px;flex-wrap:wrap;margin:0 0 20px;border-bottom:1px solid var(--border);padding-bottom:10px}
.config-pestana {min-height:42px;padding:10px 16px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-weight:650}
.config-pestana:hover {background:var(--row);color:var(--text)}
.config-pestana[aria-selected=true] {background:var(--primary-soft);color:var(--primary)}
.grupos-barra {display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:20px 0 14px}
.grupos-barra .campo {margin:0;min-width:170px}
.grupos-barra button {min-height:44px}
.grupos-lista {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.grupos-lista-unica {grid-template-columns:minmax(0,1fr)}
.grupo-tarjeta {min-width:0;border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:20px}
.grupo-cabecera {display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:8px}
.grupo-tarjeta h4 {margin:0 0 6px;font-size:16px;letter-spacing:-.2px;overflow-wrap:anywhere}
.grupo-cabecera button {flex-shrink:0}
.grupo-tarjeta .nota {font-size:12px;line-height:1.5;margin:0;color:var(--muted)}
.grupo-integrante {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--border)}
.grupo-integrante:last-child {padding-bottom:0}
.grupo-integrante>div {display:grid;gap:5px;min-width:0}
.grupo-integrante strong {font-size:14px;overflow-wrap:anywhere}
.grupo-integrante button {flex-shrink:0;font-size:12px;min-height:36px}
.grupo-vacio {color:var(--muted);font-size:13px;padding:16px 0 0;border-top:1px solid var(--border)}
.grupo-sin-asignar {grid-column:1/-1;background:transparent}
.grupo-sin-asignar>.nota {margin-bottom:14px}
.acciones-inmueble {margin:20px 0 0;justify-content:flex-start}
.grupos-editor:has(form) {border:1px solid var(--border);border-radius:14px;padding:0 20px 20px;background:var(--surface);margin-top:20px}
.grupos-editor .formulario-datos {border-top:0;margin-top:0}
.grupos-editor>.exito {padding:14px;border-radius:10px;border:1px solid var(--border)}
.config-grupos>h3 {font-size:20px;letter-spacing:-.5px;margin-bottom:8px}
.config-grupos>.nota {max-width:850px;font-size:13px;line-height:1.7}
.grupos-barra {padding:18px;border:1px solid var(--border);background:var(--row);border-radius:12px}
.grupos-resumen {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}
.grupo-resumen-dato {display:flex;flex-direction:column;gap:3px;padding:17px 20px;border-left:3px solid var(--primary);background:var(--row);border-radius:0 10px 10px 0}
.grupo-resumen-dato strong {font-size:28px;line-height:1.2;letter-spacing:-1px;color:var(--text)}
.grupo-resumen-dato span {font-size:12px;color:var(--muted)}
.grupo-distintivo {display:block;color:var(--primary);font-size:9px;font-weight:800;letter-spacing:1.1px;margin-bottom:7px}
.grupo-tarjeta {padding:22px;background:var(--row);box-shadow:0 2px 8px rgba(0,0,0,.025)}
.grupo-tarjeta h4 {font-size:17px}
.grupo-cabecera {margin-bottom:16px}
.grupo-reglas-boton {min-height:34px;font-size:12px;margin:0 0 16px}
.grupo-integrante {display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px}
.grupo-porcentaje {display:flex!important;flex-direction:column;align-items:flex-end;gap:2px!important;min-width:68px}
.grupo-porcentaje strong {color:var(--primary);font-size:17px;font-variant-numeric:tabular-nums}
.grupo-porcentaje span {color:var(--muted);font-size:10px}
.grupo-integrante-acciones {display:flex!important;flex-direction:column;gap:7px!important;max-width:180px}
.grupo-integrante-acciones button {width:100%;font-size:11px}
.grupo-quitar {color:var(--muted);background:transparent}
.grupo-quitar:hover {color:var(--error);border-color:var(--error)}
.grupo-sin-asignar {background:var(--row);border-style:solid}
.grupo-independiente .grupo-distintivo {color:var(--muted)}
.grupo-futuro {background:var(--surface);border-style:dashed}
.grupo-futuro .grupo-distintivo {color:var(--muted)}
.grupo-sin-asignar .grupo-integrante {grid-template-columns:minmax(0,1fr) auto}
.grupo-reglas-editor {padding:0 20px 20px;border:1px solid var(--border);border-radius:14px;background:var(--surface);margin-top:20px}
.grupo-gastos-form {border-top:0;margin-top:0}
.grupo-gastos-filas {grid-column:1/-1;display:grid;gap:16px}
.grupo-gasto-fila {min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:1px solid var(--border);border-radius:12px;padding:18px;background:var(--row)}
.grupo-gasto-fila legend {padding:0 7px;font-weight:700;font-size:13px}
.grupo-gasto-quitar {grid-column:1/-1;justify-self:start;min-height:36px}
.grupo-contrato-consulta {margin:18px 0}
@media(max-width:600px){
 .grupos-resumen{gap:8px}.grupo-resumen-dato{padding:12px 10px}.grupo-resumen-dato strong{font-size:24px}.grupo-resumen-dato span{font-size:10px;line-height:1.5}
 .grupo-integrante{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.grupo-integrante>button,.grupo-integrante-acciones{grid-column:1/-1;max-width:none}
 .grupo-sin-asignar .grupo-integrante{grid-template-columns:minmax(0,1fr)}.grupo-porcentaje{align-items:flex-end}.grupo-tarjeta{padding:17px}
 .grupo-gasto-fila{grid-template-columns:minmax(0,1fr);padding:14px}.grupo-reglas-editor{padding:0 14px 14px}
}
@media(max-width:1000px){.grupos-lista{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){
 .grupos-barra>.campo,.grupos-barra>button{width:100%}.grupo-tarjeta{padding:16px}
 .grupo-cabecera{flex-wrap:wrap}.grupo-integrante{align-items:flex-start;flex-direction:column;gap:10px}
 .grupo-cabecera button,.grupo-integrante button{width:100%;min-height:40px}.grupos-editor:has(form){padding:0 14px 14px}
}
.formulario-datos {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
.formulario-datos>h4,.formulario-datos>.nota,.formulario-datos>.error,.formulario-datos>.permisos-grupos {grid-column:1/-1;margin:0}
.formulario-datos>h4 {font-size:16px;letter-spacing:-.25px}
.formulario-datos .campo {display:flex;flex-direction:column;gap:7px;margin:0;min-width:0}
.formulario-datos .campo>label {margin:0}
.formulario-datos .campo>input,.formulario-datos .campo>select {width:100%}
.formulario-datos .permisos-recursos {margin:0}
.acceso-activacion {width:min(100%,540px);margin:32px auto}
.acceso-activacion .formulario {display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.acceso-activacion .campo {margin:0;min-width:0}
.acceso-activacion input,.acceso-activacion button {width:100%;min-height:44px}
@media(max-width:600px){.formulario-datos{grid-template-columns:minmax(0,1fr)}.formulario-datos>button{width:100%}}
/* Legibilidad del flujo mensual sin perder los cuatro contratos de la vista de escritorio. */
@media(min-width:1100px){
 .gm-indicador-superior strong {font-size:12px}
 .gm-indicador-superior small,.gm-indicador-pie {font-size:11px}
 .gm-link {font-size:12px;min-height:27px;display:inline-flex;align-items:center}
 .gm-head-tabla {font-size:11px}
 .gm-inmueble strong,.gm-etapa-principal,.gm-boton-fila {font-size:12px}
 .gm-inmueble span {font-size:11px}
 .gm-fila {min-height:64px}
 .gm-etapa,.gm-boton-fila {min-height:38px}
 .gm-buscar,.gm-select {min-height:36px;height:36px}
}
.gm-drawer .fila-acciones {display:flex;flex-wrap:wrap;gap:10px;margin:0;padding-top:4px}
.gm-drawer .fila-acciones button {flex:1 1 180px;min-height:42px}
.gm-drawer .tabla-datos th,.gm-drawer .tabla-datos td {font-size:12px}
.concepto-liquidacion {display:flex;flex-direction:column;gap:5px}
.concepto-liquidacion .nota {margin:0;line-height:1.5;font-size:11px}
@media(max-width:760px){
 .encabezado {padding:13px 16px;gap:12px}
 .marca h1 {font-size:16px}
 .marca p {display:none}
 .usuario {display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:100%;min-width:0;font-size:11px}
 .usuario #nombre-usuario {flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .usuario button,#btn-salir {min-height:36px;flex-shrink:0;padding:7px 10px;font-size:11px}
 .menu-principal {flex-wrap:wrap;overflow:visible;padding:8px 11px;gap:3px}
 .menu-otras:not([open])>.menu-otras-enlaces {display:none}
 .menu-otras[open] {width:100%;max-width:100%}
 .menu-otras[open] .menu-otras-enlaces {min-width:0}
 .gm-etapa {min-height:44px}
 .gm-flecha {min-width:40px;min-height:40px}
}
@media (max-width:760px){
  .menu-otras{width:auto; flex:0 0 auto; margin:0; padding:0; border:0; position:relative;}
  .menu-otras-resumen{min-height:39px; padding:8px 11px; white-space:nowrap;}
  .menu-otras-enlaces{padding:6px; background:var(--surface); border:1px solid var(--border);
      border-radius:11px; min-width:160px; }
  .menu-otras[open] { flex:0 0 100%; }
  .menu-otras[open] .menu-otras-enlaces {flex-direction:row; flex-wrap:wrap;}
}
/* Preparación mensual: el gasto común se ve antes de la tabla y cada fila muestra
   el canon confirmado sin tener que abrir cuatro paneles. */
.gm-grupos-resumen{display:grid;gap:8px;padding:0 15px 12px}
.gm-grupo-resumen{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 14px;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--primary-soft) 62%,var(--surface))}
.gm-grupo-resumen-textos{display:flex;flex-direction:column;gap:3px;min-width:0}
.gm-grupo-resumen-textos strong{font-size:12px;color:var(--text)}
.gm-grupo-resumen-textos span{font-size:11px;color:var(--muted);line-height:1.4}
.gm-grupo-resumen-accion{flex:none;min-height:37px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));border-radius:8px;background:var(--surface);color:var(--primary);font-size:11px;font-weight:750}
.gm-grupo-resumen-accion:hover{background:var(--primary-soft)}
.gm-inmueble-canon{font-size:11px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.gm-avance-pendientes{padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--warning) 13%,var(--surface));color:var(--warning);font-weight:750}
.gm-fila-en-proceso{border-left:3px solid color-mix(in srgb,var(--warning) 70%,var(--border))}
.gm-fila-completa{border-left:3px solid var(--success)}
@media(max-width:650px){.gm-grupo-resumen{align-items:stretch;flex-direction:column}.gm-grupo-resumen-accion{width:100%}}

/* Configuración: navegación clara y panel de trabajo amplio en escritorio. */
.config-layout{display:grid;grid-template-columns:minmax(190px,225px) minmax(0,1fr);align-items:start;gap:22px}
.config-pestanas{position:sticky;top:14px;display:flex;flex-direction:column;gap:5px;margin:0;padding:8px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.config-pestana{display:flex;align-items:center;justify-content:flex-start;text-align:left;width:100%;min-height:44px;padding:10px 12px;border:1px solid transparent;border-radius:9px;color:var(--muted);font-size:12px;line-height:1.35;font-weight:650;transition:background .16s ease,color .16s ease,border-color .16s ease}
.config-pestana:hover{background:var(--row);color:var(--text)}
.config-pestana[aria-selected=true]{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 22%,var(--border));color:var(--primary);font-weight:750;box-shadow:inset 3px 0 0 var(--primary)}
.config-contenido{min-width:0}
.config-seccion{margin:0;min-width:0;padding:clamp(18px,2vw,28px);border-radius:16px;box-shadow:var(--shadow)}
.config-seccion>h3{font-size:19px;letter-spacing:-.45px;margin-bottom:8px}
.config-seccion>p.nota{max-width:82ch;line-height:1.65}
.config-seccion .tabla-contenedor{border-radius:12px}
.config-seccion .formulario-datos{margin-top:18px}
@media(max-width:900px){.config-layout{grid-template-columns:minmax(0,1fr);gap:14px}.config-pestanas{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.config-pestana{min-height:42px}.config-pestana[aria-selected=true]{box-shadow:inset 3px 0 0 var(--primary)}}
@media(max-width:520px){.config-pestanas{grid-template-columns:minmax(0,1fr)}.config-pestana{min-height:40px}.config-seccion{padding:16px}.config-seccion .tabla-contenedor{overflow-x:auto}}
