:root{
  --finxa-blue:#0ea5e9; --finxa-cyan:#00b4d8; --finxa-green:#2ecc71;
  --bg:#0b1320; --text:#e8f0f7; --muted:#a9b8c7; --ring:rgba(46,204,113,.25);
}
*{box-sizing:border-box}
html,body{height:100%;background:#06111f;color:var(--text);font-family:'Inter',system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0}
.app-header{position:sticky;top:0;background:linear-gradient(135deg,rgba(46,204,113,.12),rgba(14,165,233,.12));border-bottom:1px solid rgba(255,255,255,.06);backdrop-filter:blur(6px)}
.brand{max-width:1100px;margin:0 auto;padding:20px;display:flex;align-items:center;gap:18px}
.logo{height:52px;width:auto;filter:drop-shadow(0 4px 16px rgba(14,165,233,.12))}
.brand-copy h1{margin:0 0 4px;font-size:clamp(22px,3vw,28px);font-weight:800}.brand-copy p{margin:0;color:var(--muted)}
.container{display:grid;place-items:center;padding:28px 18px 40px}
.card{width:min(1100px,96vw);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.08);border-radius:18px;box-shadow:0 10px 40px rgba(0,0,0,.35);padding:24px}
.progress{position:relative;padding:8px 8px 16px}.progress .bar{position:absolute;left:8px;right:8px;top:22px;height:6px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden}
.progress .bar::after{content:'';display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--finxa-green),var(--finxa-cyan),var(--finxa-blue));border-radius:999px;transition:transform .35s ease;transform:translateX(0%)}
.progress .steps{display:flex;justify-content:space-between;position:relative;z-index:1;padding:0 2px}
.step{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:#0a1628;border:1px solid rgba(255,255,255,.12);color:#87a2b8;font-weight:700}
.step.active{color:#fff;border-color:rgba(255,255,255,.6);background:linear-gradient(135deg,rgba(46,204,113,.35),rgba(14,165,233,.35));box-shadow:0 0 0 6px var(--ring)}
.stepview{display:none}.stepview.active{display:block}
h2{margin:4px 0 16px;font-size:clamp(20px,3vw,26px)}
label{display:block;font-size:14px;color:var(--muted);margin-bottom:6px}
input,select{width:100%;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(7,17,31,.8);color:var(--text);outline:none}
input:focus,select:focus{border-color:rgba(255,255,255,.5);box-shadow:0 0 0 6px var(--ring)}
.grid{display:grid;gap:14px;grid-template-columns:repeat(1,minmax(0,1fr))}
@media(min-width:820px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.actions{display:flex;gap:12px;margin-top:16px}
.btn{border:0;padding:12px 16px;border-radius:12px;font-weight:700;cursor:pointer;color:#0b1320;background:linear-gradient(90deg,var(--finxa-green),var(--finxa-cyan),var(--finxa-blue));box-shadow:0 8px 24px rgba(14,165,233,.28)}
.btn:hover{transform:translateY(-1px)}.btn.ghost{background:transparent;color:var(--text);border:1px solid rgba(255,255,255,.2);box-shadow:none}
.btn.primary{color:#06111f}
.result-callout{padding:16px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(135deg,rgba(46,204,113,.15),rgba(14,165,233,.15));margin-bottom:14px}
.summary{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:12px;border-radius:12px}
.summary dl{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;margin:0}.summary dt{color:var(--muted)}.summary dd{margin:0}
.amortizaciones{margin-top:10px}.sim-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.sim-card{border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px;background:rgba(255,255,255,.03)}
.kpi{display:flex;gap:12px;flex-wrap:wrap}.pill{padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04)}
table{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px}
th,td{padding:8px 10px;border-bottom:1px dashed rgba(255,255,255,.08);text-align:right}
th:first-child,td:first-child{text-align:left}
details.docs summary{cursor:pointer;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12)}
details.docs[open] summary{background:linear-gradient(90deg,rgba(46,204,113,.12),rgba(14,165,233,.12))}
.app-footer{text-align:center;padding:18px;color:var(--muted)}
.hidden{display:none!important}
.email-actions{justify-content:space-between}
