:root{
--azul:#21386f;
--azul2:#36559c;
--oscuro:#12234d;
--dorado:#d4a20a;
--dorado2:#f3c847;
--blanco:#fff;
--fondo:#f4f7fb;
--texto:#243044;
--muted:#667085;
--borde:#dfe5ef;
--sombra:0 22px 55px rgba(18,35,77,.16)
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Arial,Helvetica,sans-serif;background:var(--fondo);color:var(--texto);line-height:1.6}
button,input,select{font:inherit}
.container{width:min(1220px,92%);margin:auto}
.simulador{min-height:100vh;padding:75px 0;background:radial-gradient(circle at top right,rgba(54,85,156,.13),transparent 30%),linear-gradient(#f8faff,#edf2f8)}
.encabezado{max-width:760px;margin-bottom:35px}
.encabezado>span,.tabla-cabecera span,.paso{color:var(--dorado);font-weight:900;letter-spacing:3px;font-size:14px}
.encabezado h1{color:var(--oscuro);font-size:clamp(42px,5vw,68px);line-height:1;margin:8px 0 12px}
.encabezado p{color:var(--muted);font-size:18px}
.paneles{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}
.panel,.tabla-seccion{border:1px solid var(--borde);border-radius:28px;box-shadow:var(--sombra)}
.formulario{padding:34px;background:var(--blanco)}
.formulario h2,.resultado h2{margin-bottom:24px;color:var(--oscuro);font-size:28px}
label{display:block;margin:0 0 8px;color:var(--oscuro);font-weight:800}
input,select{width:100%;min-height:52px;margin-bottom:20px;padding:14px 16px;border:1px solid #cbd4e1;border-radius:14px;background:#fff;outline:none}
input:focus,select:focus{border-color:var(--azul2);box-shadow:0 0 0 4px rgba(54,85,156,.12)}
.dos-columnas{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.formulario button,.tabla-cabecera button,.secundario{border:0;border-radius:999px;cursor:pointer;font-weight:900;transition:.25s}
.formulario button{width:100%;min-height:54px;background:linear-gradient(90deg,var(--dorado),var(--dorado2));color:var(--oscuro)}
.formulario button:hover,.tabla-cabecera button:hover,.secundario:hover{transform:translateY(-2px)}
.mensaje{min-height:22px;margin-top:12px;color:#b42318;font-weight:700}
.resultado{display:flex;align-items:center;padding:34px;color:#fff;background:radial-gradient(circle at top right,rgba(255,255,255,.12),transparent 35%),linear-gradient(145deg,var(--oscuro),var(--azul))}
#estadoInicial{text-align:center;margin:auto;max-width:430px}
#estadoInicial p{color:#dce6fb}
.icono{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 20px;border-radius:24px;background:var(--dorado);color:var(--oscuro);font-size:34px;font-weight:900}
#resumen{width:100%}
#resumen h2{color:#fff;margin:14px 0 22px}
.cuota-principal{padding:24px;margin-bottom:20px;border:1px solid rgba(255,255,255,.15);border-radius:20px;background:rgba(255,255,255,.09)}
.cuota-principal span,.resumen-grid span{display:block;color:#dbe5fa;font-size:14px}
.cuota-principal strong{display:block;margin-top:5px;color:var(--dorado2);font-size:38px}
.resumen-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.resumen-grid div{padding:18px;border-radius:16px;background:rgba(255,255,255,.07)}
.resumen-grid strong{display:block;margin-top:5px;color:#fff;font-size:18px}
.secundario{width:100%;margin-top:22px;padding:14px;background:#fff;color:var(--oscuro)}
.tabla-seccion{margin-top:30px;padding:34px;background:#fff}
.tabla-cabecera{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}
.tabla-cabecera h2{color:var(--oscuro);font-size:32px}
.tabla-cabecera button{padding:12px 20px;background:var(--azul);color:#fff}
.tabla-scroll{overflow-x:auto;border:1px solid var(--borde);border-radius:18px}
table{width:100%;min-width:1050px;border-collapse:collapse}
th,td{padding:14px 15px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--borde)}
th{background:#edf2fa;color:var(--oscuro);font-size:14px}
th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:center}
tbody tr:nth-child(even){background:#f8fafd}
.nota{margin-top:15px;color:var(--muted);font-size:13px}
.oculto{display:none!important}
@media(max-width:900px){.paneles{grid-template-columns:1fr}.resultado{min-height:500px}}
@media(max-width:620px){.simulador{padding:50px 0}.panel,.tabla-seccion{padding:24px;border-radius:22px}.dos-columnas,.resumen-grid{grid-template-columns:1fr}.tabla-cabecera{align-items:flex-start;flex-direction:column}.cuota-principal strong{font-size:30px}}
@media print{.encabezado,.formulario,.tabla-cabecera button,.secundario{display:none!important}.paneles{display:block}.resultado,.tabla-seccion{background:#fff;color:#000;box-shadow:none;border:0}.resultado h2,#resumen strong{color:#000}}

.campo-tasa{position:relative}.campo-tasa input{padding-right:50px;background:#eef2f8;cursor:not-allowed;font-weight:900;color:#21386f}.campo-tasa span{position:absolute;right:18px;top:26px;transform:translateY(-50%);font-weight:900;color:#21386f}.campo-tasa input.tasa-asignada{background:#fff8dc;border-color:#d4a20a}.ahorro-fijo{padding:20px;margin-bottom:22px;background:#fff8dc;border:1px solid #d4a20a;border-radius:18px}.ahorro-fijo>div{display:flex;justify-content:space-between;gap:20px}.ahorro-fijo span{font-weight:800;color:#21386f}.ahorro-fijo strong{font-size:20px;color:#12234d}.ahorro-fijo p{font-size:13px;color:#667085}.producto-seleccionado{padding:15px 18px;margin-bottom:12px;background:rgba(255,255,255,.08);border-radius:14px}.producto-seleccionado span{display:block;color:#dbe5fa;font-size:13px}.producto-seleccionado strong{display:block;margin-top:4px;color:#f3c847;font-size:17px}.cuota-principal small{margin:6px 0 0;color:#dbe5fa}table{min-width:1250px}