/* ═══════════════════════════════════════════
   components.css  —  Fields, cards, charts,
                       wizard, mobile landing
   Hipotética.ES
   ═══════════════════════════════════════════ */

/* ── AHORRO CALC DISPLAY ── */
.ahorro-calc{
  font-size:.69rem;color:var(--ink3);
  background:var(--s2);border-radius:var(--rsm);
  padding:.28rem .6rem;margin-top:3px;
  display:flex;justify-content:space-between;align-items:center;
  pointer-events:none;user-select:none;
}
.ahorro-calc span:last-child{font-weight:500;color:var(--ink3)}

/* ── MOBILE LANDING ── */
.mob-landing{
  display:none;
  position:fixed;inset:0;top:var(--TB);
  z-index:200;
  background:var(--bg);
  overflow-y:auto;
  padding:0 0 6rem;
}
.ml-hero{
  background:var(--gn);
  padding:2.5rem 1.5rem 2rem;
  text-align:center;
}
.ml-logo{
  font-family:'Playfair Display',serif;
  font-size:1.6rem;font-weight:300;color:#fff;
  letter-spacing:-.02em;margin-bottom:.3rem;
}
.ml-logo b{font-weight:700;font-style:normal}
.ml-logo em{font-style:italic;opacity:.75;font-weight:300}
.ml-tagline{
  font-size:.85rem;color:rgba(255,255,255,.75);
  font-weight:300;line-height:1.5;
}
.ml-cards{padding:1.1rem .9rem;display:flex;flex-direction:column;gap:.7rem}
.ml-card{
  background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);
  padding:1rem 1.1rem;display:flex;align-items:flex-start;gap:.85rem;
  cursor:pointer;transition:box-shadow .15s,border-color .15s;
  text-decoration:none;color:inherit;
  -webkit-tap-highlight-color:transparent;
}
.ml-card:active{box-shadow:var(--sh);border-color:var(--gnb)}
.ml-card-icon{
  width:36px;height:36px;border-radius:var(--rsm);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:1.1rem;
}
.ml-card-icon.g{background:var(--gnl)}
.ml-card-icon.a{background:var(--aml)}
.ml-card-icon.b{background:var(--bll)}
.ml-card-icon.s{background:var(--s3)}
.ml-card-body{}
.ml-card-title{font-size:.88rem;font-weight:600;color:var(--ink);margin-bottom:.18rem}
.ml-card-sub{font-size:.74rem;color:var(--ink3);line-height:1.4}
.ml-chevron{margin-left:auto;flex-shrink:0;color:var(--ink4);align-self:center}
.ml-footer{
  text-align:center;padding:.5rem 1rem 1rem;
  font-size:.68rem;color:var(--ink3);line-height:1.6;
}

@media(max-width:800px){
  /* Landing visible by default via JS; wiz-shell shown via JS when user taps a card */
  /* No !important here — JS inline style must be able to override */
}

/* ── MOBILE (all) ── */
@media(max-width:800px){
  .sidebar,.ctx-bar,.main-wrap{display:none!important}
  .tnav{display:none}
  .top-acts .tbtn span{display:none}
  #btn-export{display:none}
  .hbi{grid-template-columns:1fr}
  .htab{border-right:none;border-bottom:1px solid var(--bdr)}
}


/* ── WIZARD (mobile only, hidden on desktop) ── */
/* Visibility controlled 100% by JS — no display rules here that could conflict */
.wiz-shell{
  position:fixed;inset:0;top:var(--TB);
  flex-direction:column;
  background:var(--bg);z-index:100;
  /* display set by JS: none on desktop, flex when active on mobile */
  display:none;
}
.wiz-top{flex-shrink:0;background:var(--wh);border-bottom:1px solid var(--bdr);padding:.55rem .9rem .5rem}
.wiz-top-header{display:flex;align-items:center;gap:.55rem;margin-bottom:.4rem}
.wiz-back-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--rsm);border:1px solid var(--bdrm);background:var(--s2);color:var(--ink2);cursor:pointer;flex-shrink:0;padding:0;-webkit-tap-highlight-color:transparent}
.wiz-back-btn:active{background:var(--s3)}
.wiz-prog{display:flex;gap:4px;margin-bottom:.45rem}
.wdot{flex:1;height:3px;border-radius:2px;background:var(--s3);transition:background .2s}
.wdot.done{background:var(--gnm);opacity:.45}
.wdot.cur{background:var(--gnm)}
.wiz-row{display:flex;align-items:baseline;gap:.55rem}
.wiz-cnt{font-size:.62rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);flex-shrink:0}
.wiz-name{font-family:'Playfair Display',serif;font-size:1rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.wiz-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.8rem .85rem;display:flex;flex-direction:column;gap:.6rem}
.ws{display:none}
.ws.active{display:flex;flex-direction:column;gap:.6rem}
.wc{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:.85rem .95rem}
.wc .field{margin-bottom:.6rem}
.wc .field:last-child{margin-bottom:0}
.wc .field>label{font-size:.75rem;margin-bottom:4px}
.wc .ir{height:42px}
.wc .ir input[type=number]{font-size:.9rem}
.wc .ir select{font-size:.84rem}
.wc .iu{font-size:.75rem}
.wc .sl-row{margin-top:5px}
.wc .sl-row input[type=range]{height:5px}
.wc .sl-val{font-size:.75rem}
.wc-head{font-size:.63rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);margin-bottom:.6rem}
.wc-g{background:var(--gnl);border-color:var(--gnb)}
.wc-g .wc-head{color:var(--gn)}
.wc-g .ir{background:rgba(255,255,255,.65);border-color:rgba(26,92,51,.14)}
.wc-g .ir:focus-within{background:var(--wh);border-color:var(--gnm)}
.wc-a{background:var(--aml);border-color:var(--amb)}
.wc-a .wc-head{color:var(--am)}
.wc-a .ir{background:rgba(255,255,255,.65);border-color:rgba(138,85,0,.14)}
.wc-a .ir:focus-within{background:var(--wh);border-color:var(--am)}
.wc-a .sl-row input[type=range]{accent-color:var(--am)}
.w-stat{font-size:.72rem;color:var(--gn);font-weight:500;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--gnb)}
.wcost{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:.8rem .95rem}
.wcost-title{font-size:.62rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);margin-bottom:.5rem}
.wcost-row{display:flex;justify-content:space-between;font-size:.79rem;color:var(--ink2);padding:3px 0;border-top:1px solid var(--bdr)}
.wcost-row span:last-child{font-weight:600;color:var(--ink)}
.wcost-tot{display:flex;justify-content:space-between;font-size:.86rem;font-weight:600;color:var(--ink);padding:6px 0;border-top:1.5px solid var(--bdrm);margin-top:2px}
.wcost-tot span:last-child{color:var(--gn)}
.who{background:var(--gn);border-radius:var(--r);padding:1rem 1.1rem;text-align:center}
.who-lbl{font-size:.63rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:.3rem}
.who-val{font-family:'Playfair Display',serif;font-size:2.6rem;font-weight:600;color:#fff;letter-spacing:-.04em;line-height:1}
.who-sub{font-size:.72rem;color:rgba(255,255,255,.6);margin-top:.3rem}
.wkg{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.wkpi{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--rsm);padding:.6rem .7rem}
.wkpi-lbl{font-size:.59rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);margin-bottom:.18rem}
.wkpi-val{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1}
.wkpi-sub{font-size:.63rem;color:var(--ink3);margin-top:2px}
.wkpi.esf-ok .wkpi-val{color:var(--gnm)}
.wkpi.esf-warn .wkpi-val{color:var(--am)}
.wkpi.esf-bad .wkpi-val{color:var(--rd)}
.wchart{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:.75rem .9rem}
.wchart-t{font-size:.72rem;font-weight:600;color:var(--ink2);margin-bottom:.55rem}
.wbe{background:var(--wh);border:1px solid var(--bdr);border-radius:var(--r);padding:.8rem .95rem}
.wbe-lbl{font-size:.62rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);margin-bottom:.2rem}
.wbe-val{font-family:'Playfair Display',serif;font-size:1.9rem;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--gn)}
.wbe-val.neg{color:var(--rd)}
.wbe-txt{font-size:.75rem;color:var(--ink2);margin-top:.28rem;line-height:1.5}
.wiz-nav{flex-shrink:0;display:flex;gap:7px;padding:.65rem .85rem;background:var(--wh);border-top:1px solid var(--bdr);box-shadow:0 -3px 10px rgba(0,0,0,.04)}
.wbk{display:flex;align-items:center;gap:4px;font-family:var(--f);font-size:.79rem;font-weight:500;padding:.6rem .85rem;border-radius:var(--rsm);border:1px solid var(--bdrm);background:var(--wh);color:var(--ink2);cursor:pointer;transition:all .12s}
.wbk:disabled{opacity:.3;cursor:default}
.wnxt{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;font-family:var(--f);font-size:.84rem;font-weight:600;padding:.65rem 1rem;border-radius:var(--rsm);border:none;background:var(--gn);color:#fff;cursor:pointer;transition:opacity .12s}
.wnxt:hover{opacity:.88}


