@import url('https://fonts.googleapis.com/css2?family=Inter:wght@500;600;700;800&display=swap');

:root{
  --fa-navy:#08084f;
  --fa-navy-2:#0d0d69;
  --fa-blue:#0625cf;
  --fa-blue-2:#0a18a7;
  --fa-cyan:#18e0ed;
  --fa-white:#fff;
  --fa-muted:#bfc8f0;
  --fa-line:rgba(255,255,255,.16);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,Arial,sans-serif;background:#061bbb;color:#fff}
body{min-height:100vh;background:#061bbb}
body:before{display:none}
button,input{font:inherit}
button,a{touch-action:manipulation}
.fantasy-auth-shell{position:relative;z-index:1;width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 16px}
.fantasy-auth-card{width:min(100%,440px);padding:30px 28px 28px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(8,8,79,.88);box-shadow:0 30px 80px rgba(0,0,55,.36);backdrop-filter:blur(10px)}
.fantasy-auth-card-register{width:min(100%,500px)}
.fantasy-auth-brand{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 32px;color:#fff;font-size:38px;font-weight:600;letter-spacing:-.055em;line-height:1}
.fantasy-auth-logo{width:40px;height:40px;display:block;background:#fff;-webkit-mask:url('/assets/img/ufl_login.png') center/contain no-repeat;mask:url('/assets/img/ufl_login.png') center/contain no-repeat}
.fantasy-auth-heading{text-align:center;margin-bottom:24px}.fantasy-auth-kicker{display:inline-block;color:var(--fa-cyan);font-size:10px;font-weight:800;letter-spacing:.13em}.fantasy-auth-heading h1{margin:7px 0 8px;font-size:25px;line-height:1.08;letter-spacing:-.04em}.fantasy-auth-heading p{max-width:360px;margin:0 auto;color:var(--fa-muted);font-size:12px;line-height:1.55}
.auth-message{margin:0 0 16px;padding:11px 12px;border-radius:8px;font-size:11px;line-height:1.45;font-weight:600}.auth-message.error{background:rgba(255,59,95,.14);border:1px solid rgba(255,87,116,.34);color:#ffd7de}.auth-message.success{background:rgba(24,224,237,.12);border:1px solid rgba(24,224,237,.32);color:#c8fbff}
.fantasy-auth-form{display:flex;flex-direction:column}.fantasy-auth-form label:not(.terms-check){margin:0 0 6px;color:#e4e8ff;font-size:11px;font-weight:600}.fantasy-auth-form input[type="text"],.fantasy-auth-form input[type="email"],.fantasy-auth-form input[type="tel"],.fantasy-auth-form input[type="password"],.fantasy-auth-form select{width:100%;height:45px;margin:0 0 14px;padding:0 13px;border:1px solid rgba(255,255,255,.16);border-radius:8px;outline:0;background:#101070;color:#fff;font-size:13px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}.fantasy-auth-form input:focus{border-color:var(--fa-cyan);box-shadow:0 0 0 3px rgba(24,224,237,.12)}.fantasy-auth-form input::placeholder{color:#8994c9}
.auth-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.auth-name-grid>div{display:flex;flex-direction:column}
.field-hint{display:block;margin:-7px 0 14px;color:#909bd0;font-size:9.5px;line-height:1.4}
.forgot-link{align-self:flex-end;margin:-2px 0 20px;color:var(--fa-cyan);font-size:10.5px;font-weight:600;text-decoration:none}.forgot-link:hover{text-decoration:underline}
.auth-primary,.auth-secondary{width:100%;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.035em}.auth-primary{border:0;background:var(--fa-cyan);color:#05054b;box-shadow:0 8px 24px rgba(24,224,237,.18)}.auth-primary:hover{filter:brightness(1.04)}.auth-secondary{margin-top:9px;border:1px solid rgba(255,255,255,.26);background:transparent;color:#fff}.auth-secondary:hover{background:rgba(255,255,255,.06)}
.terms-check{display:flex;align-items:flex-start;gap:9px;margin:1px 0 20px;color:#cbd3f4;font-size:10.5px;line-height:1.45}.terms-check input{width:16px;height:16px;flex:0 0 16px;margin:0;accent-color:var(--fa-cyan)}.terms-link{border:0;padding:0;background:transparent;color:var(--fa-cyan);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.auth-link-button{margin-top:24px}
.fantasy-auth-message-card{text-align:center}
body.terms-open{overflow:hidden}.terms-modal{position:fixed;inset:0;z-index:20;display:none;align-items:center;justify-content:center;padding:18px}.terms-modal.open{display:flex}.terms-backdrop{position:absolute;inset:0;background:rgba(0,0,45,.74);backdrop-filter:blur(6px)}.terms-dialog{position:relative;z-index:1;width:min(100%,520px);max-height:min(78vh,640px);overflow:auto;padding:26px 24px 22px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:#0b0b60;box-shadow:0 30px 80px rgba(0,0,45,.45)}.terms-dialog h2{margin:7px 30px 18px 0;font-size:23px;letter-spacing:-.03em}.terms-close{position:absolute;top:13px;right:14px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:23px;line-height:1}.terms-copy{color:#cbd3f4;font-size:11.5px;line-height:1.65}.terms-copy p{margin:0 0 14px}.terms-copy strong{color:#fff}.terms-done{margin-top:20px}

.auth-message.is-hidden{display:none}
.password-field{position:relative;width:100%;margin:0 0 14px}
.password-field input[type="password"],.password-field input[type="text"]{margin:0;padding-right:48px}
.password-toggle{position:absolute;top:50%;right:7px;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:8px;display:flex;align-items:center;justify-content:center;background:transparent;color:#aeb8e6;cursor:pointer}
.password-toggle:hover,.password-toggle:focus-visible{background:rgba(255,255,255,.07);color:#fff;outline:0}
.password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.password-toggle .eye-closed{display:none}.password-toggle.showing .eye-open{display:none}.password-toggle.showing .eye-closed{display:block}
.auth-primary:disabled{opacity:.6;cursor:wait}
.terms-copy strong{font-weight:800}
@media(max-width:520px){.fantasy-auth-shell{min-height:100svh;align-items:center;justify-content:center;padding:16px 12px}.fantasy-auth-card{margin-top:0;padding:25px 18px 22px;border-radius:14px}.fantasy-auth-card-register{margin-top:0}.fantasy-auth-brand{font-size:34px;margin-bottom:27px}.fantasy-auth-logo{width:36px;height:36px}.fantasy-auth-heading h1{font-size:22px}.auth-name-grid{grid-template-columns:1fr;gap:0}.terms-dialog{padding:22px 18px}}

/* iOS Safari: prevent automatic zoom when focusing auth fields. */
@media (max-width: 768px) {
  .fantasy-auth-form input[type="text"],
  .fantasy-auth-form input[type="email"],
  .fantasy-auth-form input[type="tel"],
  .fantasy-auth-form input[type="password"],
  .fantasy-auth-form select {
    font-size: 16px;
  }
}
\n\n/* Mobile login only: keep the centered auth card fixed with no page scrolling.\n   Registration remains scrollable because its form is taller. */\n@media (max-width: 520px) {\n  html:has(body.fantasy-auth-login-page),\n  body.fantasy-auth-login-page {\n    width: 100%;\n    height: 100%;\n    min-height: 100%;\n    overflow: hidden;\n    overscroll-behavior: none;\n  }\n\n  body.fantasy-auth-login-page {\n    position: fixed;\n    inset: 0;\n  }\n\n  body.fantasy-auth-login-page .fantasy-auth-shell {\n    width: 100%;\n    height: 100svh;\n    min-height: 100svh;\n    overflow: hidden;\n    padding: 16px 12px;\n  }\n}\n
/* Prevent accidental double-tap zoom while preserving pinch zoom and normal scrolling. */
html,body,.fantasy-auth-page,button,a,input,label{touch-action:manipulation}

/* Fantasy auth: disable pinch zoom as requested while preserving one-finger scrolling/taps. */
html,body,.fantasy-auth-shell,.fantasy-auth-shell *{touch-action:pan-x pan-y}


/* Registration phone + first-time Fantasy Team setup */
.auth-phone-grid{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px}
.auth-phone-grid>div{display:flex;flex-direction:column}
.auth-phone-grid .field-hint{margin-top:-7px}
.fantasy-team-name-card{width:min(100%,460px)}
.fantasy-team-name-locked{margin:0 0 18px;padding:18px;border:1px solid rgba(24,224,237,.3);border-radius:12px;background:rgba(24,224,237,.08);color:#fff;text-align:center;font-size:20px;font-weight:800;letter-spacing:-.03em}
@media(max-width:520px){.auth-phone-grid{grid-template-columns:120px minmax(0,1fr);gap:8px}}
