*{box-sizing:border-box}

.topbar{
  position:fixed;top:0;left:0;right:0;z-index:500;
  height:var(--TB);background:var(--wh);border-bottom:1px solid var(--bdr);
  display:flex;align-items:center;padding:0 1.25rem;gap:1rem;
}
.logo{font-family:'Playfair Display',serif;font-size:1.05rem;font-weight:300;color:var(--ink);white-space:nowrap;flex-shrink:0;letter-spacing:-.01em}
.logo b{font-weight:700;font-style:normal}
.logo em{font-style:italic;color:var(--gn);font-weight:300}
.top-nav{display:flex;gap:2px;overflow-x:auto;flex:1;scrollbar-width:none}
.top-nav::-webkit-scrollbar{display:none}
.tnav{font-size:.77rem;font-weight:500;color:var(--ink3);padding:.32rem .7rem;border-radius:var(--rsm);cursor:pointer;white-space:nowrap;border:none;background:none;font-family:var(--f);transition:color .12s,background .12s}
.tnav:hover{color:var(--ink);background:var(--s2)}
.tnav.active{color:var(--gn);background:var(--gnl);font-weight:600}
.top-acts{display:flex;gap:5px;flex-shrink:0;margin-left:auto}
.tbtn{display:flex;align-items:center;gap:4px;font-family:var(--f);font-size:.74rem;font-weight:500;color:var(--ink2);padding:.28rem .75rem;border-radius:var(--rsm);border:1px solid var(--bdrm);background:var(--wh);cursor:pointer;transition:all .12s;white-space:nowrap}
.tbtn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.tbtn svg{width:12px;height:12px;flex-shrink:0}

.sidebar{
  position:fixed;
  top:var(--TB);left:0;bottom:0;
  width:var(--SB);
  background:var(--wh);
  border-right:1px solid var(--bdr);
  overflow-y:auto;
  scrollbar-width:thin;
  z-index:200;
  display:flex;flex-direction:column;
}
.sb-core{padding:.85rem .85rem .7rem;background:var(--wh);flex-shrink:0}
.sb-core-title{font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink4);margin-bottom:.45rem}
.sb-sep{height:1px;background:var(--bdr);flex-shrink:0}
.sb-ctx{display:none;flex-shrink:0}
.sb-ctx.on{display:block}
.sb-fill{flex:1;background:var(--bg);border-top:1px solid var(--bdr);min-height:40px}

#ctx-ahorro{background:var(--gnl);border-top:1.5px solid var(--gnb);padding:.75rem .85rem .85rem}
#ctx-ahorro .sb-ctx-title{color:var(--gn)}
#ctx-ahorro .ir{background:rgba(255,255,255,.7);border-color:rgba(26,92,51,.14)}
#ctx-ahorro .ir:focus-within{background:var(--wh);border-color:var(--gnm);box-shadow:var(--shf)}
#ctx-hip{background:var(--aml);border-top:1.5px solid var(--amb);padding:.75rem .85rem .85rem}
#ctx-hip .sb-ctx-title{color:var(--am)}
#ctx-hip .ir{background:rgba(255,255,255,.7);border-color:rgba(138,85,0,.14)}
#ctx-hip .ir:focus-within{background:var(--wh);border-color:var(--am)}
#ctx-hip .sl-row input[type=range]{accent-color:var(--am)}
#ctx-imp{background:#f5f2ed;border-top:1.5px solid rgba(24,23,26,.1);padding:.75rem .85rem .85rem}
#ctx-imp .sb-ctx-title{color:var(--ink2)}
#ctx-imp .ir{background:rgba(255,255,255,.75);border-color:rgba(24,23,26,.1)}
#ctx-imp .ir:focus-within{background:var(--wh);border-color:var(--gnm);box-shadow:var(--shf)}
#ctx-cmp{background:var(--bll);border-top:1.5px solid var(--blb);padding:.75rem .85rem .85rem}
#ctx-cmp .sb-ctx-title{color:var(--bl)}
#ctx-cmp .ir{background:rgba(255,255,255,.7);border-color:rgba(26,63,122,.14)}
#ctx-cmp .ir:focus-within{background:var(--wh);border-color:var(--bl)}
.sb-ctx-title{font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem;display:block}
.sb-ctx .field{margin-bottom:.5rem}
.sb-ctx .field:last-child{margin-bottom:0}

.main-wrap{
  margin-left:var(--SB);
  padding-top:var(--TB);
  min-height:100vh;
}

.ctx-bar{
  position:sticky;top:var(--TB);z-index:100;
  background:var(--wh);border-bottom:1px solid var(--bdr);
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.ctx-bar-inner{display:flex;align-items:stretch;padding:0 1.75rem;min-height:46px}
.ctx-stat{display:flex;flex-direction:column;justify-content:center;padding:.45rem .9rem .45rem 0;gap:1px}
.ctx-stat:first-child{padding-left:0}
.ctx-lbl{font-size:.59rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);white-space:nowrap}
.ctx-val{font-size:.86rem;font-weight:600;color:var(--ink);white-space:nowrap}
.ctx-hl .ctx-lbl{color:var(--gn)}
.ctx-hl .ctx-val{color:var(--gn)}
.ctx-div{width:1px;background:var(--bdr);margin:.5rem .75rem .5rem 0;flex-shrink:0}

.main-pages{padding:1.4rem 1.75rem 4rem}
.page{display:none}.page.active{display:block}

.field{margin-bottom:.55rem;position:relative}
.field:last-child{margin-bottom:0}
.field>label{display:flex;align-items:center;gap:4px;font-size:.71rem;color:var(--ink3);margin-bottom:3px}
.tip{width:14px;height:14px;border-radius:50%;background:var(--s3);color:var(--ink3);font-size:.58rem;display:inline-flex;align-items:center;justify-content:center;cursor:help;flex-shrink:0;position:relative}
.tip:hover .tipbox,.tip:focus .tipbox{display:block}
.tipbox{display:none;position:absolute;left:0;top:calc(100% + 4px);z-index:99;background:var(--ink);color:#fff;font-size:.69rem;line-height:1.5;padding:.45rem .65rem;border-radius:var(--rsm);width:210px;pointer-events:none}
.ir{display:flex;align-items:center;background:var(--s2);border:1px solid var(--bdr);border-radius:var(--rsm);height:34px;overflow:hidden;transition:border-color .12s,box-shadow .12s}
.ir:focus-within{border-color:var(--gnm);box-shadow:var(--shf);background:var(--wh)}
.ir.warn{border-color:var(--am)!important;background:var(--aml)!important}
.ir input[type=number]{flex:1;min-width:0;border:none;background:transparent;font-family:var(--f);font-size:.83rem;font-weight:500;color:var(--ink);text-align:right;padding:0 6px;outline:none;-moz-appearance:textfield}
.ir input::-webkit-inner-spin-button,.ir input::-webkit-outer-spin-button{-webkit-appearance:none}
.ir select{flex:1;min-width:0;border:none;background:transparent;font-family:var(--f);font-size:.77rem;color:var(--ink);padding:0 5px;outline:none;cursor:pointer}
.iu{font-size:.69rem;color:var(--ink3);padding:0 8px 0 2px;white-space:nowrap;user-select:none}
.sl-row{display:flex;align-items:center;gap:6px;margin-top:3px}
.sl-row input[type=range]{flex:1;accent-color:var(--gnm);height:4px;cursor:pointer}
.sl-val{font-size:.7rem;font-weight:600;color:var(--ink2);min-width:34px;text-align:right}
.fwarn{font-size:.66rem;color:var(--am);margin-top:2px;display:none}
.fwarn.show{display:block}
.rpills{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}
.rpill{font-size:.63rem;font-weight:500;padding:2px 7px;border-radius:20px;cursor:pointer;border:1px solid var(--bdr);background:var(--s2);color:var(--ink2);transition:all .12s;user-select:none}
.rpill:hover{border-color:var(--gnm);color:var(--gn)}
.rpill.active{background:var(--gn);color:#fff;border-color:var(--gn)}

.sec-h{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);margin-bottom:.2rem}
.sec-h em{font-style:italic;color:var(--gn)}
.sec-sub{font-size:.78rem;color:var(--ink3);font-weight:300;margin-bottom:1.1rem}
.rg{display:grid;gap:9px;margin-bottom:1.2rem}
.rg4{grid-template-columns:repeat(4,1fr)}
.rg3{grid-template-columns:repeat(3,1fr)}
.rg2{grid-template-columns:repeat(2,1fr)}
.rc{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:.8rem .95rem;transition:box-shadow .15s}
.rc:hover{box-shadow:var(--sh)}
.rc-lbl{font-size:.6rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);margin-bottom:.28rem}
.rc-val{font-family:'Playfair Display',serif;font-size:1.75rem;font-weight:600;line-height:1;letter-spacing:-.03em;color:var(--ink)}
.rc-sub{font-size:.66rem;color:var(--ink3);margin-top:3px}
.rc.prim{background:var(--gn);border-color:var(--gn)}
.rc.prim .rc-lbl{color:rgba(255,255,255,.6)}
.rc.prim .rc-val{color:#fff;font-size:2rem}
.rc.prim .rc-sub{color:rgba(255,255,255,.55)}
.rc-sub.pos{color:var(--gnm);font-weight:500}
.nf{animation:nf .22s ease}
@keyframes nf{0%{opacity:.3;transform:scale(.97)}100%{opacity:1;transform:scale(1)}}
.cp{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:1.2rem}
.cp-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.8rem;gap:.6rem;flex-wrap:wrap}
.cp-title{font-size:.85rem;font-weight:600;color:var(--ink)}
.cp-sub{font-size:.7rem;color:var(--ink3);font-weight:300;margin-top:1px}
.leg{display:flex;gap:10px;flex-wrap:wrap;align-items:center;flex-shrink:0}
.li{display:flex;align-items:center;gap:4px;font-size:.68rem;color:var(--ink2)}
.ll{width:16px;height:2px;border-radius:1px;flex-shrink:0}
.cw{position:relative;width:100%}
.bk{margin-top:.6rem}
.br{display:flex;justify-content:space-between;align-items:center;font-size:.74rem;color:var(--ink2);padding:3px 0;border-top:1px solid var(--bdr)}
.br .bv{font-weight:500;color:var(--ink);text-align:right}
.br.bt{font-size:.81rem;font-weight:600;border-top:1.5px solid var(--bdrm);margin-top:3px;padding-top:6px}
.br.bt .bv{color:var(--gn)}
.alert{border-radius:var(--rsm);padding:.6rem .85rem;font-size:.77rem;line-height:1.5;margin-bottom:1rem;display:none}
.alert.show{display:block}
.alert-red{background:var(--rdl);border:1px solid var(--rdb);color:var(--rd)}
.alert-amber{background:var(--aml);border:1px solid var(--amb);color:var(--am)}
.alert-green{background:var(--gnl);border:1px solid var(--gnb);color:var(--gn)}
.alert strong{font-weight:600}
.summary{background:var(--gnl);border:1px solid var(--gnb);border-radius:var(--r);padding:.75rem 1rem;font-size:.79rem;color:var(--ink2);line-height:1.7;margin-bottom:1.2rem}
.summary strong{color:var(--gn);font-weight:600}
.summary .warn{color:var(--am);font-weight:600}
.gauge-wrap{text-align:center;padding:.25rem 0}
.gauge-arc{width:120px;height:63px;overflow:hidden;margin:0 auto .3rem}
.gauge-arc svg{width:120px;height:63px}
.gauge-val{font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:600;letter-spacing:-.02em}
.gauge-sub{font-size:.67rem;color:var(--ink3);margin-top:1px}
.sug-box{background:var(--gnl);border:1px solid var(--gnb);border-radius:var(--rsm);padding:.65rem .85rem;margin-top:.75rem;display:none}
.sug-title{font-size:.64rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--gn);margin-bottom:.3rem}
.sug-body{font-size:.76rem;color:var(--ink2);line-height:1.5}
.sug-apply{margin-top:.5rem;font-family:var(--f);font-size:.71rem;font-weight:600;padding:4px 11px;border-radius:var(--rsm);border:none;background:var(--gn);color:#fff;cursor:pointer}
.sug-apply:hover{opacity:.85}
.breakeven{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:.95rem 1.2rem;margin-bottom:1.2rem;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.be-num{font-family:'Playfair Display',serif;font-size:2.4rem;font-weight:600;letter-spacing:-.04em;line-height:1;white-space:nowrap}
.be-num.pos{color:var(--gn)}.be-num.neg{color:var(--rd)}
.be-text{font-size:.79rem;color:var(--ink2);line-height:1.5;max-width:460px}
.cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:1.2rem}
.cmp-card{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:.9rem 1rem}
.cmp-card.winner{border-color:var(--gnm);border-width:2px}
.cmp-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.65rem;gap:.5rem}
.cmp-lbl{font-size:.8rem;font-weight:600;color:var(--ink)}
.cmp-sub{font-size:.67rem;color:var(--ink3);margin-top:1px}
.badge{font-size:.6rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:12px;flex-shrink:0}
.badge-g{background:var(--gn);color:#fff}
.badge-gray{background:var(--s3);color:var(--ink3)}
.cs{display:flex;justify-content:space-between;align-items:baseline;padding:3px 0;border-top:1px solid var(--bdr)}
.cs-lbl{font-size:.72rem;color:var(--ink2)}
.cs-val{font-family:'Playfair Display',serif;font-size:1.02rem;font-weight:600;color:var(--ink)}
.cs-val.pos{color:var(--gn)}.cs-val.neg{color:var(--rd)}
.scen-bar{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:.7rem}
.scen-btn{font-family:var(--f);font-size:.72rem;font-weight:500;padding:4px 10px;border-radius:var(--rsm);border:1px solid var(--bdr);background:var(--wh);color:var(--ink2);cursor:pointer;transition:all .12s}
.scen-btn:hover{border-color:var(--gnm);color:var(--gn)}
.scen-btn.active{background:var(--gn);color:#fff;border-color:var(--gn)}
.scen-note{font-size:.71rem;background:var(--s2);border-radius:var(--rsm);padding:.45rem .8rem;color:var(--ink2);line-height:1.5;margin-bottom:1rem}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:1.2rem}
.kpi{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:.8rem .95rem}
.kpi-lbl{font-size:.6rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);margin-bottom:.28rem}
.kpi-val{font-family:'Playfair Display',serif;font-size:1.65rem;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.kpi-sub{font-size:.67rem;color:var(--ink3);margin-top:2px}
details>summary{font-size:.73rem;font-weight:500;color:var(--bl);cursor:pointer;list-style:none;padding:.25rem 0}
details>summary::-webkit-details-marker{display:none}
.amort-wrap{overflow-x:auto;margin-top:.4rem}
.amort-table{width:100%;border-collapse:collapse;font-size:.71rem}
.amort-table th{text-align:left;font-size:.6rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:3px 6px;border-bottom:1.5px solid var(--bdrm)}
.amort-table td{padding:3px 6px;border-bottom:1px solid var(--bdr);color:var(--ink2)}
.amort-table td:not(:first-child){text-align:right;font-weight:500;color:var(--ink)}
.amort-table tr:hover td{background:var(--s2)}
.hist-intro{background:var(--bll);border:1px solid var(--blb);border-radius:var(--r);padding:.8rem 1.1rem;margin-bottom:1.1rem;font-size:.78rem;color:var(--ink2);line-height:1.6}
.hist-intro strong{color:var(--bl);font-weight:600}
.hist-intro a{color:var(--bl);text-decoration:none;border-bottom:1px dotted var(--blb)}
.hist-src{font-size:.65rem;color:var(--ink3);margin-top:.25rem}
.hist-block{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);margin-bottom:1rem;overflow:hidden}
.hbi{display:grid;grid-template-columns:1fr 1.5fr}
.htab{padding:.95rem 1.1rem;border-right:1px solid var(--bdr);display:flex;flex-direction:column;gap:.55rem}
.hchart{padding:.95rem 1.1rem;background:var(--s2);display:flex;flex-direction:column;justify-content:center}
.hmetric{font-family:'Playfair Display',serif;font-size:1.85rem;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.hmetric-lbl{font-size:.65rem;color:var(--ink3);margin-top:2px}
.hbadge-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem}
.htable{width:100%;border-collapse:collapse;font-size:.7rem}
.htable th{font-size:.59rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:2.5px 4px;border-bottom:1.5px solid var(--bdrm);text-align:left}
.htable td{padding:2px 4px;border-bottom:1px solid var(--bdr);color:var(--ink2);vertical-align:middle}
.htable td:nth-child(2){font-weight:600;color:var(--ink);text-align:right;padding-right:7px;white-space:nowrap}
.htable tr:last-child td{border-bottom:none}
.htable tr:hover td{background:var(--s2)}
.bar-cell{width:40%}
.hbar{display:inline-block;height:5px;border-radius:2px;vertical-align:middle}
.hbar.pos{background:var(--gnm);opacity:.7}
.hbar.neg{background:var(--rd);opacity:.65}
.hnote{font-size:.68rem;color:var(--ink3);line-height:1.55;padding:.5rem .7rem;background:var(--s2);border-radius:var(--rsm)}
.hnote strong{color:var(--ink2);font-weight:600}
.hsrc{font-size:.66rem;font-weight:500;color:var(--bl);text-decoration:none;border-bottom:1px dotted var(--blb)}
.hsrc:hover{border-bottom-style:solid}
.db{font-size:.63rem;font-weight:600;padding:2px 7px;border-radius:12px;white-space:nowrap}
.db-g{background:var(--gnl);color:var(--gn);border:1px solid var(--gnb)}
.db-a{background:var(--aml);color:var(--am);border:1px solid var(--amb)}
.db-r{background:var(--rdl);color:var(--rd);border:1px solid var(--rdb)}
.db-b{background:var(--bll);color:var(--bl);border:1px solid var(--blb)}
.hleg{display:flex;gap:8px;flex-wrap:wrap;margin-top:.45rem}
.disc{font-size:.64rem;color:var(--ink3);text-align:center;padding:.9rem;line-height:1.6;border-top:1px solid var(--bdr);margin-top:1rem}

@media(min-width:801px) and (max-width:1060px){
  .rg4{grid-template-columns:1fr 1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .hbi{grid-template-columns:1fr}
  .htab{border-right:none;border-bottom:1px solid var(--bdr)}
}
