:root{
  --wfa-primary:#08aeb0;
  --wfa-primary-dark:#078d8f;
  --wfa-ink:#263746;
  --wfa-text:#405363;
  --wfa-muted:#748696;
  --wfa-line:#d9e2e7;
  --wfa-soft:#f3f7f8;
  --wfa-white:#fff;
  --wfa-danger:#dc3545;
  --wfa-success:#198754;
  --wfa-control:40px;
  --wfa-bg:none;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--wfa-ink);background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-size:13px;line-height:1.5}
button,input,select{font:inherit}
a{color:var(--wfa-primary-dark);text-decoration:none}
a:hover{text-decoration:underline}
button{touch-action:manipulation}
[hidden]{display:none!important}

.wfa-body{min-height:100vh}
.wfa-shell{min-height:100vh;display:grid;grid-template-columns:minmax(430px,46%) minmax(440px,54%);background:#fff}
.wfa-side{position:relative;min-height:100vh;background:#263746 var(--wfa-bg) center/cover no-repeat;color:#fff;overflow:hidden}
.wfa-side-overlay{position:absolute;inset:0;background:rgba(27,43,54,.80)}
.wfa-side-inner{position:relative;z-index:1;height:100%;padding:40px 46px;display:flex;flex-direction:column}

.wfa-brand{display:flex;align-items:center;gap:11px;min-width:0;color:#fff}
.wfa-logo{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(255,255,255,.28);background:#fff;border-radius:5px;overflow:hidden;color:var(--wfa-primary);font-weight:700;font-size:14px}
.wfa-logo img{width:100%;height:100%;object-fit:contain;padding:4px}
.wfa-brand-copy{min-width:0}
.wfa-brand-copy strong{display:block;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wfa-brand-copy small{display:block;margin-top:1px;font-size:11px;color:rgba(255,255,255,.70);font-weight:500}

.wfa-kicker{display:block;margin-bottom:7px;font-size:10.5px;font-weight:600;letter-spacing:.075em;text-transform:uppercase;color:var(--wfa-primary)}
.wfa-side .wfa-kicker{color:#9ce8e9}
.wfa-side-copy{margin:auto 0;max-width:500px}
.wfa-side-copy h1{margin:0 0 12px;font-size:clamp(31px,3vw,45px);line-height:1.08;letter-spacing:-.035em;font-weight:700}
.wfa-side-copy p{margin:0;max-width:45ch;font-size:13px;line-height:1.65;color:rgba(255,255,255,.78)}
.wfa-side-points{display:flex;gap:7px;flex-wrap:wrap}
.wfa-side-points span{border:1px solid rgba(255,255,255,.22);padding:6px 9px;border-radius:3px;font-size:11px;font-weight:500;color:rgba(255,255,255,.88);background:rgba(0,0,0,.10)}

.wfa-main{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:38px 54px;background:#f7f9fa}
.wfa-mobile-hero{display:none}
.wfa-card{width:min(100%,460px)}
.wfa-card-flat{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}
.wfa-card-head{padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid #e3eaee}
.wfa-head-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:3px}
.wfa-head-topline .wfa-kicker{margin:0}
.wfa-country-badge{display:inline-flex;align-items:center;gap:5px;max-width:150px;color:var(--wfa-muted);font-size:10.5px;font-weight:600;white-space:nowrap}
.wfa-country-badge span{font-size:15px;line-height:1}
.wfa-card-head h2{margin:0;font-size:23px;line-height:1.15;font-weight:700;letter-spacing:-.025em}
.wfa-card-head p{margin:6px 0 0;color:var(--wfa-muted);font-size:12px;line-height:1.55;max-width:52ch}

.wfa-alert{display:none;margin-bottom:14px;padding:10px 11px;border-radius:3px;border:1px solid var(--wfa-line);font-size:12px;line-height:1.45}
.wfa-alert.is-visible{display:block}
.wfa-alert.is-error{background:#fff3f4;border-color:#efc7cc;color:#952630}
.wfa-alert.is-success{background:#f1faf6;border-color:#c8e6d6;color:#146c43}
.wfa-alert.is-info{background:#effafa;border-color:#bae7e7;color:#17696b}

.wfa-form{display:grid;gap:14px}
.wfa-field{display:grid;gap:6px}
.wfa-field>label,.wfa-label-row label{font-size:10.5px;font-weight:600;color:var(--wfa-ink)}
.wfa-label-row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.wfa-label-row small{font-size:10.5px;color:var(--wfa-muted);font-weight:500}

.wfa-select-wrap{position:relative;height:var(--wfa-control)}
.wfa-select-wrap select{width:100%;height:100%;appearance:none;-webkit-appearance:none;border:1px solid var(--wfa-line);border-radius:3px;background:#fff;color:var(--wfa-ink);outline:0;padding:0 42px 0 12px;font-size:12.5px;font-weight:500;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.wfa-select-wrap select:focus{border-color:var(--wfa-primary);box-shadow:0 0 0 3px rgba(8,174,176,.08)}
.wfa-select-arrow{position:absolute;right:13px;top:50%;width:7px;height:7px;border-right:1.5px solid #6f8291;border-bottom:1.5px solid #6f8291;transform:translateY(-65%) rotate(45deg);pointer-events:none}

.wfa-input-wrap{height:var(--wfa-control);display:flex;align-items:center;border:1px solid var(--wfa-line);border-radius:3px;background:#fff;transition:border-color .15s,box-shadow .15s;overflow:hidden}
.wfa-input-wrap:focus-within{border-color:var(--wfa-primary);box-shadow:0 0 0 3px rgba(8,174,176,.08)}
.wfa-input-icon{height:100%;min-width:48px;padding:0 9px;display:grid;place-items:center;flex:0 0 auto;border-right:1px solid #e5ebee;background:#f5f8f9;font-size:9.5px;font-weight:700;color:#607482;letter-spacing:.02em}
.wfa-input-wrap input{min-width:0;width:100%;height:100%;border:0;outline:0;padding:0 10px;background:transparent;color:var(--wfa-ink);font-size:13px;font-weight:500;letter-spacing:.01em}
.wfa-input-wrap input::placeholder{color:#a3afb9;font-weight:400;letter-spacing:0}
.wfa-eye{width:40px;height:100%;display:grid;place-items:center;flex:0 0 auto;border:0;border-left:1px solid #edf1f3;background:#fff;color:#6f8291;cursor:pointer;padding:0}
.wfa-eye:hover{color:var(--wfa-primary-dark);background:#fbfdfd}
.wfa-eye svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wfa-eye.is-visible{color:var(--wfa-primary-dark);background:#f3fbfb}

.wfa-check{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.45;color:var(--wfa-muted);cursor:pointer}
.wfa-check input{width:15px;height:15px;margin:1px 0 0;accent-color:var(--wfa-primary);flex:0 0 auto}
.wfa-check a{font-weight:600}

.wfa-btn{height:40px;border:1px solid transparent;border-radius:3px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}
.wfa-btn:disabled{opacity:.55;cursor:not-allowed}
.wfa-btn-primary{background:var(--wfa-primary);border-color:var(--wfa-primary);color:#fff}
.wfa-btn-primary:hover{background:var(--wfa-primary-dark);border-color:var(--wfa-primary-dark)}
.wfa-btn-secondary{background:#fff;border-color:var(--wfa-line);color:var(--wfa-ink)}
.wfa-btn-secondary:hover{background:#f5f8f9}
.wfa-btn-block{width:100%}

.wfa-help-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:1px}
.wfa-help-row a,.wfa-link-btn{font-size:11.5px;font-weight:600}
.wfa-link-btn{border:0;background:none;padding:0;color:var(--wfa-primary-dark);cursor:pointer}
.wfa-link-btn:hover{text-decoration:underline}
.wfa-card-foot{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid #e3eaee;font-size:10.5px;color:var(--wfa-muted)}

.wfa-otp-intro{display:grid;gap:5px}
.wfa-otp-intro h3{font-size:18px;margin:0;font-weight:700}
.wfa-otp-intro p{margin:0;font-size:12px;color:var(--wfa-muted);line-height:1.5}
.wfa-back{justify-self:start;border:0;background:none;padding:0;color:var(--wfa-primary-dark);font-size:11.5px;font-weight:600;cursor:pointer}
.wfa-otp-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}
.wfa-otp{width:100%;min-width:0;height:48px;border:1px solid var(--wfa-line);border-radius:3px;text-align:center;font-size:18px;font-weight:700;outline:0;color:var(--wfa-ink);background:#fff}
.wfa-otp:focus{border-color:var(--wfa-primary);box-shadow:0 0 0 3px rgba(8,174,176,.08)}
.wfa-otp-meta{display:flex;justify-content:space-between;gap:12px;font-size:11.5px;color:var(--wfa-muted)}

.wfa-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:18px}
.wfa-modal-backdrop{position:absolute;inset:0;background:rgba(28,40,49,.58)}
.wfa-dialog{position:relative;z-index:1;width:min(94vw,520px);background:#fff;border:1px solid var(--wfa-line);border-radius:4px;box-shadow:0 24px 70px rgba(19,31,40,.24);padding:20px}
.wfa-dialog-sm{width:min(94vw,430px)}
.wfa-dialog-close{position:absolute;right:10px;top:8px;width:32px;height:32px;border:0;background:#f1f4f6;color:var(--wfa-ink);border-radius:3px;font-size:20px;cursor:pointer}
.wfa-loader-row{display:flex;align-items:center;gap:14px}
.wfa-loader-row strong{display:block;font-size:14px}
.wfa-loader-row p{margin:4px 0 0;font-size:11.5px;color:var(--wfa-muted);line-height:1.45}
.wfa-spinner{width:34px;height:34px;border:3px solid #dce8e9;border-top-color:var(--wfa-primary);border-radius:50%;animation:wfa-spin .8s linear infinite;flex:0 0 auto}
@keyframes wfa-spin{to{transform:rotate(360deg)}}
.wfa-install-head{display:flex;gap:12px;align-items:center;padding-right:30px}
.wfa-install-icon{width:48px;height:48px;border:1px solid var(--wfa-line);border-radius:4px;display:grid;place-items:center;overflow:hidden}
.wfa-install-icon img{width:100%;height:100%;object-fit:contain;padding:4px}
.wfa-install-head strong{font-size:14px}
.wfa-install-head p{margin:4px 0 0;font-size:11.5px;color:var(--wfa-muted)}
.wfa-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}

/* Tablet: conserva el fondo, reduce peso del panel visual. */
@media (min-width:861px) and (max-width:1100px){
  .wfa-shell{grid-template-columns:38% 62%}
  .wfa-side-inner{padding:32px 30px}
  .wfa-side-copy h1{font-size:31px}
  .wfa-side-copy p{font-size:12.5px}
  .wfa-side-points{display:none}
  .wfa-main{padding:34px 40px}
  .wfa-card{width:min(100%,440px)}
}

/* Móvil/tablet vertical: más fondo visible + formulario compacto debajo. */
@media(max-width:860px){
  .wfa-shell{
    display:block;
    min-height:100vh;
    min-height:100dvh;
    background:#f7f9fa;
  }

  .wfa-side{display:none}

  .wfa-main{
    min-height:calc(100vh - clamp(245px,37vh,300px));
    min-height:calc(100dvh - clamp(245px,37dvh,300px));
    display:block;
    padding:0 0 max(20px,env(safe-area-inset-bottom));
    background:#f7f9fa;
  }

  /* El fondo gana protagonismo en móvil. */
  .wfa-mobile-hero{
    position:relative;
    display:block;
    height:clamp(245px,37vh,300px);
    height:clamp(245px,37dvh,300px);
    background:#263746 var(--wfa-bg) center 42%/cover no-repeat;
    overflow:hidden;
  }

  .wfa-mobile-hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(27,43,54,.68);
  }

  .wfa-mobile-hero-inner{
    position:relative;
    z-index:1;
    height:100%;
    padding:max(18px,env(safe-area-inset-top)) 22px 16px;
    display:flex;
    align-items:flex-start;
  }

  /* Formulario separado del banner, sin tarjeta inflada. */
  .wfa-card{
    width:min(calc(100% - 40px),500px);
    margin:0 auto;
    padding:clamp(40px,6.2vh,54px) 0 0;
  }

  .wfa-card-head{margin-bottom:17px}
}

/* Móvil normal: mantiene buen fondo y controles legibles. */
@media(max-width:560px){
  :root{--wfa-control:40px}

  .wfa-mobile-hero{
    height:clamp(235px,36dvh,300px);
    background-position:center 40%;
  }

  .wfa-mobile-hero-inner{
    padding-left:16px;
    padding-right:16px;
  }

  .wfa-logo{width:42px;height:42px}

  .wfa-card{
    width:calc(100% - 28px);
    padding-top:clamp(40px,6.2vh,54px);
  }

  .wfa-card-head{
    padding-bottom:14px;
    margin-bottom:15px;
  }

  .wfa-card-head h2{font-size:21px}
  .wfa-card-head p{font-size:11.8px}
  .wfa-form{gap:13px}
  .wfa-help-row{gap:8px}
  .wfa-otp-grid{gap:5px}
  .wfa-otp{height:45px;font-size:17px}
  .wfa-dialog-actions{display:grid;grid-template-columns:1fr 1fr}
  .wfa-dialog-actions .wfa-btn{width:100%}
}

/* Pantallas muy pequeñas: sigue mostrando fondo sin sacrificar el formulario. */
@media(max-width:360px){
  .wfa-mobile-hero{
    height:clamp(205px,32dvh,235px);
  }

  .wfa-card{
    width:calc(100% - 24px);
    padding-top:38px;
  }

  .wfa-country-badge{font-size:10px}
  .wfa-card-head h2{font-size:20px}
  .wfa-otp-grid{gap:4px}
  .wfa-otp{height:42px;font-size:16px}
}

/* Móvil horizontal o pantallas de poca altura: evita cortar el acceso. */
@media(max-width:860px) and (max-height:620px){
  .wfa-mobile-hero{
    height:120px;
  }

  .wfa-card{
    padding-top:18px;
  }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}