/* Base Glass v2.1, sacada de calculadora/index.html (13-nov-2026): tokens, fondo, barra, botones, pills, campos, cajas y contacto. */
/* ---------- Tokens · Glass v2.1 (noche por defecto) ---------- */
:root{
  color-scheme:dark;
  --bg:#03050C; --bg-rgb:3 5 12;
  --label:#FFFFFF;
  --label-2:rgba(235,235,245,.62);
  --label-3:rgba(235,235,245,.34);
  --label-4:rgba(235,235,245,.18);
  --dim:rgba(235,235,245,.42);
  --on-label:#000;
  --sep:rgba(255,255,255,.07);
  --glass:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.03));
  --glass-edge:rgba(255,255,255,.075);
  --glass-hi:inset 0 1px 0 rgba(255,255,255,.07);
  --glass-shadow:0 12px 32px rgba(0,0,0,.28);
  --fill:rgba(255,255,255,.06); --fill-2:rgba(255,255,255,.08); --fill-3:rgba(255,255,255,.04);
  --press:rgba(255,255,255,.07);
  --accent:#2F6BFF; --accent-hi:#5A8BFF; --accent-glow:rgba(47,107,255,.55);
  --green:#30D158; --red:#FF6961; --orange:#FF9F0A;
  --green-bg:rgba(48,209,88,.13); --blue-bg:rgba(47,107,255,.16); --orange-bg:rgba(255,159,10,.15);
  --glow-1:rgba(47,107,255,.62); --glow-1b:rgba(47,107,255,.18); --glow-2:rgba(84,120,255,.22);
  --grid-line:rgba(255,255,255,.04); --stars-o:1;
  --headline-grad:linear-gradient(180deg,#9DBBFF 0%,#5A8BFF 45%,#2458F0 100%); --headline-glow:rgba(47,107,255,.45);
  --contact-glow:rgba(47,107,255,.45);
  --top-bg:rgba(5,8,20,.62); --top-fade:rgba(3,5,12,.55);
  --toast-bg:rgba(34,38,58,.85); --toast-edge:rgba(255,255,255,.1); --toast-shadow:0 14px 40px rgba(0,0,0,.5);
  --field-bg:rgba(118,118,128,.2); --field-edge:rgba(255,255,255,.05);
  --solid:#141830; --solid-top:#070A18;
  --r-card:22px;
  --ease:cubic-bezier(.32,.72,0,1);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Inter",system-ui,sans-serif;
}
/* ---------- Modo día · "Cielo abierto" ---------- */
html[data-theme="day"]{
  color-scheme:light;
  --bg:#E9EFFB; --bg-rgb:233 239 251;
  --label:#0B1228;
  --label-2:rgba(20,30,64,.78);
  --label-3:rgba(20,30,64,.64);
  --label-4:rgba(20,30,64,.2);
  --dim:rgba(20,30,64,.46);
  --on-label:#FFFFFF;
  --sep:rgba(18,42,110,.09);
  --glass:linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.54));
  --glass-edge:rgba(255,255,255,.72);
  --glass-hi:inset 0 1px 0 #fff;
  --glass-shadow:0 0 0 .5px rgba(18,42,110,.08),0 1px 2px rgba(18,42,110,.05),0 16px 36px -8px rgba(24,60,150,.18);
  --fill:rgba(24,56,140,.07); --fill-2:rgba(255,255,255,.82); --fill-3:rgba(24,56,140,.045);
  --press:rgba(24,56,140,.06);
  --accent:#2F6BFF; --accent-hi:#1F57EC; --accent-glow:rgba(47,107,255,.4);
  --green:#147A36; --red:#C92F28; --orange:#A65800;
  --green-bg:rgba(20,122,54,.1); --blue-bg:rgba(47,107,255,.1); --orange-bg:rgba(166,88,0,.1);
  --glow-1:rgba(47,107,255,.68); --glow-1b:rgba(47,107,255,.36); --glow-2:rgba(60,120,255,.28);
  --grid-line:rgba(24,60,150,.075); --stars-o:0;
  --headline-grad:linear-gradient(180deg,#3E7BFF 0%,#1F57EC 52%,#1238B4 100%); --headline-glow:rgba(47,107,255,.24);
  --contact-glow:rgba(47,107,255,.3);
  --top-bg:rgba(233,239,251,.72); --top-fade:rgba(233,239,251,.58);
  --toast-bg:rgba(255,255,255,.88); --toast-edge:rgba(255,255,255,.75); --toast-shadow:0 0 0 .5px rgba(18,42,110,.08),0 14px 40px -6px rgba(24,60,150,.26);
  --field-bg:rgba(24,56,140,.065); --field-edge:rgba(24,56,140,.08);
  --solid:#FFFFFF; --solid-top:#E9EFFB;
}
html[data-theme="day"] .bg{background:radial-gradient(70% 38% at 0% 62%,rgba(90,145,255,.2),transparent 72%),radial-gradient(70% 40% at 100% 96%,rgba(47,107,255,.16),transparent 72%)}
html[data-theme="day"] .glass{-webkit-backdrop-filter:blur(24px) saturate(185%);backdrop-filter:blur(24px) saturate(185%)}
html[data-theme="day"] .btn.primary{box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 1px 2px rgba(20,50,140,.24),0 10px 22px -6px rgba(36,88,240,.44)}
html[data-theme="day"] .avatar{box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 6px 14px -4px rgba(36,88,240,.4)}
html[data-theme="day"] .btn.ghost{background:rgba(255,255,255,.62);border-color:rgba(24,56,140,.1)}

/* ---------- Base ---------- */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--bg);scroll-behavior:smooth;overflow-x:clip}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--label);font:17px/1.35 var(--font);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button{font:inherit;color:inherit;letter-spacing:inherit}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
.num{font-variant-numeric:tabular-nums}
[hidden]{display:none!important}
svg{display:block}
.i{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px;border-radius:12px}

/* ---------- Fondo ---------- */
.bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg::before{content:"";position:absolute;inset:-10% -30% auto;height:78vh;
  background:radial-gradient(60% 55% at 50% 0%,var(--glow-1),var(--glow-1b) 48%,transparent 75%),radial-gradient(40% 35% at 85% 30%,var(--glow-2),transparent 70%)}
.bg::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
  background-size:58px 58px;background-position:-1px -1px;
  -webkit-mask-image:radial-gradient(90% 60% at 50% 0%,#000 10%,transparent 72%);mask-image:radial-gradient(90% 60% at 50% 0%,#000 10%,transparent 72%)}
.stars{position:absolute;left:0;top:0;width:2px;height:2px;border-radius:50%;background:transparent;opacity:var(--stars-o);
  box-shadow:38px 120px rgba(255,255,255,.35),92px 262px rgba(255,255,255,.22),160px 54px rgba(255,255,255,.28),248px 188px rgba(255,255,255,.3),322px 96px rgba(255,255,255,.2),356px 300px rgba(255,255,255,.26),60px 420px rgba(255,255,255,.14),210px 470px rgba(255,255,255,.18),300px 520px rgba(255,255,255,.12),120px 610px rgba(255,255,255,.1),380px 690px rgba(255,255,255,.1),24px 760px rgba(255,255,255,.08),
    520px 80px rgba(255,255,255,.26),640px 210px rgba(255,255,255,.18),760px 60px rgba(255,255,255,.3),880px 260px rgba(255,255,255,.2),1010px 120px rgba(255,255,255,.26),1140px 330px rgba(255,255,255,.16),1260px 90px rgba(255,255,255,.24),1380px 240px rgba(255,255,255,.18),1500px 140px rgba(255,255,255,.22),700px 420px rgba(255,255,255,.1),1080px 520px rgba(255,255,255,.1),1320px 460px rgba(255,255,255,.12)}

/* ---------- Layout ---------- */
.app{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:0 20px calc(110px + env(safe-area-inset-bottom))}
.top{position:sticky;top:0;z-index:20;margin:0 -20px;padding:calc(env(safe-area-inset-top) + 14px) 20px 12px;transition:background .25s,backdrop-filter .25s}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:18px;pointer-events:none;opacity:0;transition:opacity .25s;background:linear-gradient(var(--top-fade),transparent)}
body.scrolled .top{background:var(--top-bg);-webkit-backdrop-filter:blur(26px) saturate(180%);backdrop-filter:blur(26px) saturate(180%)}
body.scrolled .top::after{opacity:1}
.row{display:flex;align-items:center}
.between{justify-content:space-between}
.gap8{gap:8px}.gap12{gap:12px}
.minw0{min-width:0}

/* ---------- Primitivas ---------- */
.glass{background:var(--glass);border:1px solid var(--glass-edge);box-shadow:var(--glass-hi),var(--glass-shadow);-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%)}
.card{border-radius:var(--r-card);padding:20px}
.press{transition:transform .12s ease-out,background-color .15s,opacity .15s;cursor:pointer;touch-action:manipulation}
.press:active{transform:scale(.965)}
.round{appearance:none;border:1px solid var(--glass-edge);background:var(--fill-2);box-shadow:var(--glass-hi);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--label);position:relative;padding:0}
.theme-btn{width:40px;height:40px;background:transparent;border-color:transparent;box-shadow:none;color:var(--label-2);transition:background-color .2s,color .2s,transform .12s ease-out}
.theme-btn:hover{background:var(--fill-2);color:var(--label)}
.theme-btn .i{grid-area:1/1;transition:transform .5s var(--ease),opacity .25s}
.theme-btn .ic-moon{opacity:0;transform:rotate(-90deg) scale(.5)}
html[data-theme="day"] .theme-btn .ic-sun{opacity:0;transform:rotate(90deg) scale(.5)}
html[data-theme="day"] .theme-btn .ic-moon{opacity:1;transform:none}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-new(root){z-index:9999}

.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:17px;color:#fff;flex:none;
  background:radial-gradient(120% 120% at 30% 20%,#7BA3FF,#2F6BFF 55%,#1B3FB8);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 18px rgba(47,107,255,.45)}
.eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--label-2);white-space:nowrap}
.hello{font-size:22px;font-weight:700;letter-spacing:-.022em;line-height:1.15;margin-top:1px;white-space:nowrap}

.btn{appearance:none;border:0;height:52px;padding:0 22px;border-radius:26px;font-size:16px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;white-space:nowrap}
.btn .i{width:19px;height:19px;stroke-width:2}
.btn.primary{color:#fff;background:linear-gradient(180deg,#4F85FF,#2458F0);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 8px 22px rgba(47,107,255,.5)}
.btn.ghost{color:var(--label);background:var(--fill);border:1px solid var(--glass-edge);box-shadow:var(--glass-hi)}
.btn.block{width:100%}
.btn.sm{height:40px;padding:0 16px;border-radius:20px;font-size:15px}
.btn.sm .i{width:17px;height:17px}
.textbtn{appearance:none;border:0;background:none;padding:8px 4px;font-size:14px;font-weight:600;color:var(--accent-hi);cursor:pointer}

.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:4px 8px;border-radius:8px;white-space:nowrap}
.pill.green{color:var(--green);background:var(--green-bg)}
.pill.blue{color:var(--accent-hi);background:var(--blue-bg)}
.pill.orange{color:var(--orange);background:var(--orange-bg)}
.pill.red{color:var(--red);background:color-mix(in srgb,var(--red) 14%,transparent)}
.pill.soft{color:var(--label-2);background:var(--fill)}

.sec-kicker{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-hi);margin:0 2px 6px}
.sec-head{display:flex;justify-content:space-between;align-items:center;margin:0 2px 14px;gap:12px}
.sec-head h2{font-size:24px;font-weight:700;letter-spacing:-.022em}
.form-label{font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--label-2);margin:22px 4px 10px}
.form-label:first-child{margin-top:4px}

/* ---------- Hero ---------- */
.hero{padding:20px 2px 28px}
.h1{font-size:clamp(36px,10.4vw,60px);line-height:1.02;font-weight:700;letter-spacing:-.04em;margin-top:10px}
.h1 .dim{color:var(--dim)}
.h1 .blue{background:var(--headline-grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 8px 28px var(--headline-glow))}
.lead{font-size:17px;line-height:1.5;color:var(--label-2);max-width:36ch;margin-top:16px}
.lead b{color:var(--label);font-weight:600}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}

/* ---------- Campos ---------- */
.fgroup{display:grid;gap:16px}
.fitem{min-width:0}
.fhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 4px 4px}
.fname{font-size:16px;font-weight:600;letter-spacing:-.015em}
.fhint{font-size:13px;line-height:1.4;color:var(--label-2);margin:0 4px 8px}
.field{display:flex;align-items:center;gap:8px;min-height:50px;border-radius:14px;padding:0 14px;background:var(--field-bg);border:1px solid var(--field-edge);transition:border-color .2s,box-shadow .2s;cursor:text}
.field:focus-within{border-color:rgba(90,139,255,.6);box-shadow:0 0 0 4px rgba(47,107,255,.18)}
.field input{flex:1;border:0;background:none;outline:0;color:var(--label);font:inherit;font-size:17px;min-width:0;padding:12px 0;font-variant-numeric:tabular-nums}
.field input::placeholder{color:var(--label-3)}
.field .affix{font-size:17px;color:var(--label-3);flex:none}
.field.is-error{border-color:color-mix(in srgb,var(--red) 60%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--red) 14%,transparent)}
.field.is-warn{border-color:color-mix(in srgb,var(--orange) 55%,transparent)}
.field-msg{display:flex;align-items:flex-start;gap:6px;font-size:13px;line-height:1.4;margin:6px 4px 0;color:var(--label-2)}
.field-msg:empty{display:none}
.field-msg.error{color:var(--red)}
.field-msg.warn{color:var(--orange)}
.field-msg .i{width:14px;height:14px;stroke-width:2.2;flex:none;margin-top:2px}

.ex-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}
.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;font-size:14px;line-height:1.45;color:var(--label-2);--tone:var(--accent-hi);background:color-mix(in srgb,var(--tone) 10%,transparent);border:1px solid color-mix(in srgb,var(--tone) 25%,transparent)}
.alert b{color:var(--label);font-weight:600}
.alert .i{width:20px;height:20px;flex:none;margin-top:0;color:var(--tone)}
.alert.success{--tone:var(--green)}
.alert.warn{--tone:var(--orange)}
.alert.error{--tone:var(--red)}
.alert[hidden]{display:none}

.note{font-size:13px;line-height:1.45;color:var(--label-2);margin-top:14px}

.ideal{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:var(--fill-3);border:1px solid var(--sep);font-size:14px;color:var(--label-2);line-height:1.45}
.ideal b{color:var(--label);font-weight:600}
.ideal .i{width:18px;height:18px;flex:none;color:var(--accent-hi);margin-top:1px}

/* ---------- Contacto ---------- */
.contact{position:relative;overflow:hidden;text-align:left}
.contact::before{content:"";position:absolute;inset:-40% -20% auto;height:220px;background:radial-gradient(50% 60% at 50% 0%,var(--contact-glow),transparent 70%);pointer-events:none;opacity:.7}
.contact > *{position:relative}
.contact h2{font-size:clamp(28px,7.6vw,40px);line-height:1.08;font-weight:700;letter-spacing:-.035em}
.contact h2 .dim{color:var(--dim)}
.contact p{font-size:16px;line-height:1.5;color:var(--label-2);margin-top:12px;max-width:40ch}
.contact .btn{margin-top:22px}

.foot{font-size:13px;line-height:1.6;color:var(--label-3);text-align:center;margin-top:36px;padding:0 8px}

.stack{display:grid;gap:44px}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
@media (prefers-reduced-transparency: reduce){
  .glass,.round,.btn.ghost,.sumbar{background:var(--solid)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  body.scrolled .top{background:var(--solid-top)!important;backdrop-filter:none!important}
}
@media (prefers-contrast: more){
  .glass,.round{border-color:rgba(255,255,255,.35)}
  :root{--label-2:rgba(235,235,245,.85);--label-3:rgba(235,235,245,.6)}
  html[data-theme="day"]{--label-2:rgba(20,30,64,.92);--label-3:rgba(20,30,64,.8)}
  html[data-theme="day"] .glass,html[data-theme="day"] .round{border-color:rgba(20,35,80,.35)}
}
