:root{--blue:#0071e3;--text:#111;--muted:#6e6e73;--line:#d2d2d7;--bg:#f5f5f7;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"SF Pro Display",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;color:var(--text);letter-spacing:0;-webkit-font-smoothing:antialiased}body{min-height:100vh;background:#fff;overflow-x:hidden}.auth-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#fff;transition:opacity .62s ease,visibility 0s linear .62s}.auth-loader.hide{opacity:0;visibility:hidden}.auth-loader-logo{font-size:18px;font-weight:600;white-space:nowrap;animation:none!important;transform:none!important}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);opacity:0;transition:opacity .7s ease}.page-ready .auth-shell{opacity:1}.auth-art{position:relative;overflow:hidden;background:#000;color:#fff;padding:54px;display:flex;flex-direction:column;justify-content:flex-start}.auth-brand{font-size:17px;font-weight:600}.auth-copy{position:relative;z-index:2;max-width:720px}.auth-copy-top{margin-top:clamp(74px,12vh,150px)}.auth-kicker{font-size:15px;color:#8e8e93;margin:0 0 16px}.auth-copy h1{font-size:clamp(50px,5.35vw,82px);line-height:.98;margin:0 0 24px;font-weight:600;letter-spacing:-.035em!important}.auth-copy h1.auth-title-compact{font-size:clamp(42px,4.3vw,66px);line-height:1.02}
.auth-copy p{font-size:20px;line-height:1.45;color:#a1a1a6;max-width:560px;margin:0}.orb{position:absolute;border-radius:50%;filter:blur(1px);pointer-events:none}.orb.one{width:520px;height:520px;right:-160px;top:-110px;background:radial-gradient(circle at 35% 35%,rgba(100,177,255,.9),rgba(0,113,227,.34) 35%,rgba(0,0,0,0) 72%)} .orb.two{display:none!important}.auth-panel{display:grid;place-items:center;padding:56px;background:#fff}.auth-card{width:min(100%,470px)}.auth-card h2{font-size:38px;line-height:1.08;margin:0 0 12px;font-weight:600}.auth-card>p{font-size:16px;line-height:1.5;color:var(--muted);margin:0 0 34px}.field{margin-bottom:18px}.field label{display:block;font-size:13px;font-weight:520;margin:0 0 8px;color:#333}.control{width:100%;height:54px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 16px;font:inherit;font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.control:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,113,227,.12)}.password-wrap{position:relative}.password-wrap .control{padding-right:52px}.toggle-password{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:#6e6e73;cursor:pointer}.toggle-password:hover{background:#f5f5f7;color:#111}.primary{width:100%;height:54px;border:0;border-radius:999px;background:var(--blue);color:#fff;font:inherit;font-size:16px;font-weight:520;cursor:pointer;margin-top:8px;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s}.primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,113,227,.28);background:#0077ed}.primary:active{transform:scale(.99)}.secondary-link{display:block;text-align:center;margin-top:22px;font-size:14px;color:var(--blue);text-decoration:none}.secondary-link:hover{text-decoration:underline}.helper{font-size:13px;color:#86868b;line-height:1.45;margin-top:18px;text-align:center}.message{display:none;margin:0 0 18px;padding:13px 15px;border-radius:12px;font-size:14px;line-height:1.4}.message.show{display:block}.message.error{background:#fff1f0;color:#b42318}.message.success{background:#edf8f1;color:#176b3a}.email-lock{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;border:1px solid var(--line);border-radius:14px;padding:0 16px;background:#f5f5f7;color:#555;font-size:15px}.email-lock span:last-child{font-size:12px;color:#8e8e93}.back-link{display:inline-flex;align-items:center;gap:7px;color:#6e6e73;text-decoration:none;font-size:14px;margin-bottom:28px}.back-link:hover{color:#111}.legal{position:absolute;left:54px;bottom:36px;font-size:12px;color:#6e6e73}.auth-note{margin-top:28px;padding-top:22px;border-top:1px solid #ececee;font-size:13px;color:#86868b;line-height:1.5}.auth-note strong{color:#333;font-weight:520}
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-art{min-height:360px;padding:30px 24px}.auth-copy-top{margin-top:54px}.auth-copy h1{font-size:52px}.auth-copy p{font-size:17px}.legal{display:none}.auth-panel{padding:44px 22px 54px}.auth-card{max-width:520px}.orb.one{width:360px;height:360px;right:-150px;top:-90px}.orb.two{display:none}}
@media(max-width:520px){.auth-art{min-height:320px}.auth-copy-top{margin-top:42px}.auth-copy h1{font-size:44px;margin-bottom:16px}.auth-copy p{font-size:15px}.auth-card h2{font-size:32px}.auth-panel{place-items:start center;padding-top:38px}.control,.primary,.email-lock{height:52px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.auth-shell{opacity:1}.auth-loader{display:none}}

@media(max-width:900px){.auth-copy h1.auth-title-compact{font-size:44px}}
@media(max-width:520px){.auth-copy h1.auth-title-compact{font-size:36px;line-height:1.04}}

/* Acceso y recuperación: tipografía sin interletrado y control de contraseña con icono. */
.auth-shell,.auth-shell *{letter-spacing:0!important}
.toggle-password{font-size:0!important;display:grid!important;place-items:center!important}
.toggle-password svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.orb{display:none!important}
.auth-art{background:#000!important}
.auth-art:after{content:"";position:absolute;z-index:2;top:-190px;right:-190px;width:650px;height:650px;border-radius:50%;background:radial-gradient(circle at center,rgba(36,132,255,.24) 0,rgba(10,100,220,.11) 35%,rgba(0,0,0,0) 70%);pointer-events:none}
.auth-copy{z-index:auto!important}
.auth-brand{position:relative;z-index:3}
.auth-brand{display:none!important}
.auth-copy h1,.auth-copy p{position:relative;z-index:3}
.auth-login-image{position:relative;z-index:1}
.auth-copy-top{margin-left:auto!important;margin-right:auto!important;text-align:center!important}
.auth-copy h1.auth-title-compact{font-size:clamp(31px,3vw,46px)!important;line-height:1.05!important;text-align:center!important}
.auth-copy h1.auth-title-compact:not(:has(br)){white-space:nowrap}
.auth-copy h1.auth-title-brand{font-size:clamp(48px,5vw,72px)!important;line-height:1!important}
.auth-title-brand .auth-reg{font-size:.58em;font-weight:400!important;vertical-align:super;margin-left:2px}
.auth-shell .primary{font-weight:400!important}
.auth-art.auth-logo-only{display:grid!important;place-items:center!important;padding:54px!important}
.auth-logo-only .auth-copy{position:absolute!important;inset:0!important;width:100%;max-width:none;text-align:center;display:grid!important;place-items:center!important}
.auth-logo-only .auth-copy-top{margin:0!important}
.auth-logo-only .auth-copy h1.auth-title-brand{margin:0!important;font-size:clamp(54px,5.5vw,78px)!important;line-height:1!important;letter-spacing:0!important;white-space:nowrap}
.auth-logo-only .legal{z-index:3}
.auth-copy h1,.auth-card h2{letter-spacing:0!important}
.auth-copy p{margin-left:auto!important;margin-right:auto!important;text-align:center!important;font-size:17px!important;max-width:510px!important}
.auth-card h2{font-size:32px!important}
.auth-login-image{display:block;width:min(96%,680px);height:auto;max-height:350px;object-fit:contain;object-position:center;border-radius:0;margin:52px auto 0}
@media(max-width:900px){.auth-copy h1.auth-title-compact{font-size:35px!important}.auth-copy p{font-size:16px!important}.auth-login-image{width:min(86%,520px);max-height:230px;margin-top:24px}}
@media(max-width:520px){.auth-art:after{width:440px;height:440px;top:-150px;right:-180px}.auth-copy h1.auth-title-compact{font-size:30px!important}.auth-copy h1.auth-title-compact:not(:has(br)){white-space:normal}.auth-copy p{font-size:14px!important}.auth-card h2{font-size:28px!important}.auth-login-image{max-height:190px;margin-top:20px}}
@media(max-width:900px){
  .auth-art.auth-logo-only{min-height:300px!important;padding:30px 24px!important}
  .auth-logo-only .auth-copy h1.auth-title-brand{font-size:clamp(54px,10vw,78px)!important}
}
@media(max-width:520px){
  .auth-art.auth-logo-only{min-height:250px!important;padding:24px!important}
  .auth-logo-only .auth-copy h1.auth-title-brand{font-size:48px!important;white-space:nowrap!important}
}

/* Login y recuperación en móvil: una sola superficie blanca, sin hero ni imagen. */
@media(max-width:900px){
  .auth-shell:has(.auth-art .auth-login-image){display:block!important;background:#fff!important;min-height:100vh!important}
  .auth-shell:has(.auth-art .auth-login-image) .auth-art{display:none!important}
  .auth-shell:has(.auth-art .auth-login-image) .auth-panel{
    position:relative!important;display:grid!important;place-items:start center!important;
    min-height:100vh!important;padding:112px 22px 50px!important;background:#fff!important;
  }
  .auth-shell:has(.auth-art .auth-login-image) .auth-panel:before{
    content:"CR8TORS®";position:absolute;top:38px;left:0;right:0;text-align:center;
    color:#111;font-size:17px;font-weight:600;line-height:1;
  }
  .auth-shell:has(.auth-art .auth-login-image) .auth-card{width:min(100%,470px)!important}
}

@media(max-width:900px){
  .auth-shell:has(.auth-art .auth-login-image) .auth-panel{
    padding:270px 20px 32px!important;
  }
  .auth-shell:has(.auth-art .auth-login-image) .auth-panel:after{
    content:"";position:absolute;z-index:0;top:0;left:0;right:0;height:238px;
    background-color:#000;
    background-image:radial-gradient(circle at 88% 12%,rgba(21,123,255,.25),rgba(5,70,160,.10) 32%,transparent 64%),url("../assets/login-hero.png");
    background-repeat:no-repeat,no-repeat;background-position:center,center 50px;background-size:cover,min(82vw,330px) auto;
  }
  .auth-shell:has(.auth-art .auth-login-image) .auth-panel:before{
    z-index:1;top:23px;left:20px;right:auto;text-align:left;color:#fff;font-size:16px;
  }
  .auth-shell:has(.auth-art .auth-login-image) .auth-card{position:relative;z-index:1}
  .auth-shell:has(.auth-art .auth-login-image) .auth-card h2{
    margin-bottom:7px!important;font-size:23px!important;line-height:1.1!important;text-align:center!important;
  }
  .auth-shell:has(.auth-art .auth-login-image) .auth-card>p{
    margin:0 auto 22px!important;max-width:340px;font-size:13px!important;line-height:1.4!important;text-align:center!important;
  }
  .auth-shell:has(.auth-art .auth-login-image) .field{margin-bottom:12px!important}
  .auth-shell:has(.auth-art .auth-login-image) .field label{font-size:11px!important;margin-bottom:6px!important}
  .auth-shell:has(.auth-art .auth-login-image) .control,
  .auth-shell:has(.auth-art .auth-login-image) .primary{height:44px!important;font-size:13px!important}
  .auth-shell:has(.auth-art .auth-login-image) .back-link{display:flex;justify-content:center;margin:0 0 22px!important;font-size:13px!important}
  .auth-shell:has(.auth-art .auth-login-image) .secondary-link{margin-top:18px!important;font-size:13px!important}
  .auth-shell:has(.auth-art .auth-login-image) .auth-note{margin-top:22px!important;padding-top:18px!important;font-size:12px!important}
  .auth-shell:has(.auth-art .auth-login-image) .auth-note{display:none!important}
}
