/* ============================================================
   fh-auth.css — sign up, sign in, two-step and password reset
   The landing page's look: black brand side with the blue glow,
   white cards, FanHubb blue buttons. Used by fanhubb-signup.html,
   fanhubb-login.html and fanhubb-forgot-password.html.
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
:root{
  --ink:#0B1220;--ink2:#2B3445;--muted:#5B6474;--faint:#8A93A5;
  --line:#DDE2EC;--soft:#F6F7FB;--soft2:#E8EBF2;
  --blue:#1E4FD8;--blue-d:#163BA6;--blue-l:#6E95FF;--blue-bg:#E8EFFF;
  --green:#0A8A5E;--green-d:#0A6B49;--green-bg:#E7F6EF;--red:#B42318;--red-bg:#FEF3F2;
  --dark:#0A0A0B;
}
html,body{margin:0}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--soft);-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:var(--blue)}a:hover{color:var(--blue-d)}
button,input,select{font:inherit}
.au-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Two-panel pages (sign up, sign in) ── */
.au{display:flex;min-height:100vh}
.au-brand{position:relative;overflow:hidden;width:44%;max-width:640px;flex-shrink:0;background:var(--dark);color:#fff;padding:44px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.au-brand::before{content:"";position:absolute;width:720px;height:720px;left:-260px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(30,79,216,.55),rgba(30,79,216,0) 65%);pointer-events:none}
.au-brand.glow-br::before{left:auto;top:auto;right:-320px;bottom:-300px;width:760px;height:760px}
.au-brand>*{position:relative}
.au-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;align-self:flex-start}
.au-logo-mark{width:36px;height:36px;border-radius:10px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px}
.au-logo-word{font-size:22px;font-weight:800;letter-spacing:-.6px;color:#fff}
.au-logo-word span{color:var(--blue-l)}
.au-pitch{display:flex;flex-direction:column;gap:18px}
.au-eyebrow{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:99px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#E6EAF3;font-size:13px;font-weight:600}
.au-eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:#34D399}
.au-h1{margin:0;font-size:clamp(40px,4.4vw,62px);line-height:1.02;letter-spacing:-2.4px;font-weight:900;color:#fff}
.au-h1 em{font-style:normal;color:var(--blue-l)}
.au-lede{margin:0;font-size:17px;line-height:1.55;color:rgba(255,255,255,.72);max-width:460px}
.au-cards{display:flex;flex-direction:column;gap:12px;max-width:470px}
.au-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 18px 40px -18px rgba(0,0,0,.6)}
.au-card-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:900;flex-shrink:0}
.au-card-ic.blue{background:var(--blue-bg);color:var(--blue)}.au-card-ic.green{background:var(--green-bg);color:var(--green)}
.au-card-ic.orange{background:#FFF1E6;color:#B54708}.au-card-ic.purple{background:#F1ECFF;color:#5B21B6}
.au-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.au-card-main b{font-size:14px;font-weight:800}
.au-card-main span{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-card-amt{font-size:16px;font-weight:900;color:var(--green);white-space:nowrap}
.au-peek{max-width:470px;border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 24px 50px -20px rgba(0,0,0,.7);overflow:hidden}
.au-peek-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--soft2)}
.au-peek-hd span{font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}
.au-peek-row{display:flex;align-items:center;gap:14px;padding:14px 20px;border-top:1px solid var(--soft2)}
.au-peek-hd+.au-peek-row{border-top:0}
.au-peek-row .au-card-ic{width:38px;height:38px;border-radius:50%}

.au-main{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:48px 32px}
.au-form{width:100%;max-width:460px;display:flex;flex-direction:column;gap:20px}
.au-form.narrow{max-width:420px}
.au-title{margin:0;font-size:34px;letter-spacing:-1.2px;font-weight:900;line-height:1.1}
.au-sub{margin:6px 0 0;font-size:15px;color:var(--muted)}
.au-sub a,.au-link{font-weight:700;text-decoration:none}

/* Fields */
.au-field{display:flex;flex-direction:column;gap:7px}
.au-label{font-size:13px;font-weight:700;color:var(--ink2)}
.au-label-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.au-label-row a{font-size:13px;font-weight:700;text-decoration:none}
.au-input{height:50px;width:100%;padding:0 14px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font-size:15px;font-weight:500;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
.au-input::placeholder{color:var(--faint)}
.au-input:focus,.au-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(30,79,216,.12)}
.au-box{display:flex;align-items:center;height:50px;border-radius:12px;border:1.5px solid var(--line);background:#fff;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.au-box .au-input{border:0;box-shadow:none!important;height:100%;border-radius:0;flex:1;min-width:0}
.au-box-pre{padding:0 0 0 14px;font-size:15px;font-weight:600;color:var(--faint);white-space:nowrap}
.au-box-pre+.au-input{padding-left:2px;font-weight:700}
.au-show{height:44px;margin-right:3px;padding:0 14px;border:0;background:none;font-size:13px;font-weight:700;color:var(--blue);cursor:pointer;border-radius:9px;flex-shrink:0}
.au-show:hover{background:var(--blue-bg)}
.au-hint{font-size:12.5px;font-weight:500;color:var(--muted);line-height:1.45}
.au-row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.au-bars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.au-bars .pw-bar{height:5px;border-radius:99px;background:var(--line);transition:background .2s}
.au-bars .pw-bar.w{background:#E5484D}.au-bars .pw-bar.f{background:#F59E0B}.au-bars .pw-bar.g,.au-bars .pw-bar.s{background:var(--green)}
.au-strength{font-size:12px;font-weight:600;color:var(--muted);min-height:16px}

/* Role switch */
.au-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:5px;border-radius:14px;background:var(--soft2)}
.role-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 10px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;min-height:44px}
.role-btn b{font-size:15px;font-weight:800}
.role-btn small{font-size:12px;font-weight:600;opacity:.8}
.role-btn.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(11,18,32,.10)}

/* Plan choice and founding rate (sign up) */
.plan-section{display:flex;flex-direction:column;gap:9px}
.plan-pills{margin-top:6px;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:8px}
.plan-pill{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px 12px;border-radius:14px;border:1.5px solid var(--line);background:#fff;cursor:pointer;color:var(--ink);min-height:44px}
.plan-pill:hover{border-color:#B8C2D6}
.plan-pill.active{border-color:var(--blue);box-shadow:0 0 0 4px rgba(30,79,216,.12)}
.plan-pill-name{font-size:13px;font-weight:800}
.plan-pill-price{font-size:20px;font-weight:900;letter-spacing:-.6px}
.plan-pill-per{font-size:11.5px;font-weight:600;color:var(--muted)}
.plan-pill-tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);padding:2px 9px;border-radius:99px;background:var(--blue);color:#fff;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap}
.plan-summary{font-size:12.5px;color:var(--muted);line-height:1.5}
.founding-inline{display:none;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;background:var(--dark);color:#fff}
.founding-inline.show{display:flex}
.founding-inline-left{flex:1;min-width:0}
.founding-inline-label{font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:#9DB8FF}
.founding-inline-price{font-size:22px;font-weight:900;letter-spacing:-.6px;margin-top:2px}
.founding-inline-price span{font-size:12px;font-weight:600;color:rgba(255,255,255,.55);margin-left:2px}
.founding-inline-was{font-size:12px;color:rgba(255,255,255,.5);text-decoration:line-through}
.founding-inline-note{font-size:12px;color:rgba(255,255,255,.62);margin-top:3px;line-height:1.4}
.founding-inline-toggle{display:flex;flex-direction:column;align-items:center;gap:5px;flex-shrink:0}
.toggle{width:44px;height:26px;border-radius:99px;position:relative;cursor:pointer;background:#3A3F4B;transition:background .2s;border:0;padding:0}
.toggle.on{background:var(--blue)}
.toggle-k{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.toggle.on .toggle-k{transform:translateX(18px)}
.toggle-lbl{font-size:11px;font-weight:700;color:rgba(255,255,255,.62)}

/* Agreement, captcha, buttons */
.age-check{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;background:#fff;border:1.5px solid var(--line);font-size:13.5px;line-height:1.5;color:var(--ink2);cursor:pointer}
.age-check input,.au-check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--blue);flex-shrink:0}
.au-check{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--ink2);cursor:pointer}
.au-check input{margin:0}
.recaptcha-wrap{display:flex;justify-content:center;min-height:78px}
.btn-submit{height:54px;width:100%;border:0;border-radius:14px;background:var(--blue);color:#fff;font-size:16px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 14px 28px -12px rgba(30,79,216,.7);transition:background .15s,transform .15s}
.btn-submit:hover{background:var(--blue-d)}
.btn-submit:active{transform:translateY(1px)}
.btn-submit:disabled{opacity:.7;cursor:wait}
.au-btn2{height:46px;padding:0 18px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.au-btn2:hover{border-color:#B8C2D6;color:var(--ink)}
.au-or{display:flex;align-items:center;gap:14px;color:var(--faint);font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase}
.au-or::before,.au-or::after{content:"";flex:1;height:1px;background:var(--line)}
.au-join{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.au-join a{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-radius:14px;border:1.5px solid var(--line);background:#fff;text-decoration:none;color:var(--ink)}
.au-join a:hover{border-color:#B8C2D6;color:var(--ink)}
.au-join b{font-size:14px;font-weight:800}
.au-join span{font-size:12.5px;color:var(--muted)}
.au-legal{display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:center;font-size:12px}
.au-legal a{color:var(--faint);font-weight:600;text-decoration:none}
.au-legal a:hover{color:var(--muted)}
.au-foot{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;color:var(--muted);text-align:center;line-height:1.45}
.au-foot svg{flex-shrink:0}
.au-notice{padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.5;font-weight:600;background:var(--green-bg);border:1px solid rgba(10,138,94,.3);color:var(--green-d)}
.au-notice.err{background:var(--red-bg);border-color:rgba(180,35,24,.3);color:var(--red)}

/* ── One-card pages (two-step, forgot, check email, new password) ── */
.au-solo{position:relative;overflow:hidden;min-height:100vh;background:var(--dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:96px 16px 40px}
.au-solo::before{content:"";position:absolute;width:900px;height:900px;left:50%;top:-420px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(30,79,216,.5),rgba(30,79,216,0) 62%);pointer-events:none}
.au-solo.ok::before{background:radial-gradient(circle,rgba(10,138,94,.38),rgba(10,138,94,0) 62%)}
.au-solo>*{position:relative}
.au-solo>.au-logo{position:absolute;left:56px;top:40px}
.au-card-solo{width:100%;max-width:480px;padding:40px 40px 30px;border-radius:24px;background:#fff;box-shadow:0 40px 80px -30px rgba(0,0,0,.8);display:flex;flex-direction:column;gap:20px}
.au-badge{align-self:center;width:64px;height:64px;border-radius:18px;background:var(--blue-bg);color:var(--blue);display:flex;align-items:center;justify-content:center}
.au-badge.green{background:var(--green-bg);color:var(--green)}
.au-center{text-align:center;display:flex;flex-direction:column;gap:8px}
.au-center .au-title{font-size:28px;letter-spacing:-1px}
.au-center p{margin:0;font-size:15px;line-height:1.5;color:var(--muted)}
.au-center p b,.au-center p strong{color:var(--ink)}
.au-code{height:64px;text-align:center;font-size:28px;font-weight:900;letter-spacing:10px}
.au-steps{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border-radius:14px;background:var(--soft)}
.au-step{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.45;color:var(--ink2)}
.au-step i{font-style:normal;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.au-checks{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:14px;background:var(--soft);font-size:13.5px;font-weight:600;color:var(--faint)}
.au-checks span{display:flex;align-items:center;gap:9px}
.au-checks span.ok{color:var(--green-d)}
.au-checks svg{flex-shrink:0}
.au-divide{padding-top:16px;border-top:1px solid var(--soft2);display:flex;flex-direction:column;gap:8px;align-items:center;font-size:13.5px;color:var(--muted);text-align:center}
.au-divide a.back{font-weight:700;color:var(--muted);text-decoration:none}
.au-divide a.back:hover{color:var(--ink)}
.au-solo-note{margin:0;display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.62);text-align:center;max-width:480px;line-height:1.5}
.au-solo-note a{color:#9DB8FF;font-weight:700;text-decoration:none}
.au-err{color:var(--red);font-size:13px;font-weight:600}
.success-state{display:none}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* The brand side stays in view while a long form scrolls */
@media (min-width:861px){.au{align-items:flex-start}.au-brand{position:sticky;top:0;height:100vh;min-height:620px}.au-main{min-height:100vh}}
/* ── Phones and small laptops ── */
@media (max-width:1080px){.au-brand{padding:40px}.au-cards,.au-peek{display:none}}
@media (max-width:860px){
  .au{flex-direction:column}
  .au-brand{width:auto;max-width:none;padding:20px 20px 34px;gap:22px}
  .au-brand::before{width:420px;height:420px;left:-140px;top:-200px}
  .au-brand.glow-br::before{left:auto;right:-160px;top:-180px;bottom:auto;width:440px;height:440px}
  .au-logo-mark{width:32px;height:32px;border-radius:9px;font-size:12px}.au-logo-word{font-size:20px}
  .au-eyebrow,.au-lede{display:none}
  .au-h1{font-size:36px;letter-spacing:-1.4px}
  .au-cards{display:flex}.au-cards .au-card:not(:first-child){display:none}
  .au-peek{display:none}
  .au-main{margin-top:-16px;border-radius:22px 22px 0 0;background:var(--soft);position:relative;padding:26px 20px 32px;align-items:flex-start}
  .au-title{font-size:26px;letter-spacing:-.9px}
  .au-input,.au-box-pre{font-size:16px}
  .au-solo{padding:84px 16px 28px;justify-content:flex-start}
  .au-solo>.au-logo{left:20px;top:22px}
  .au-card-solo{padding:28px 20px 22px;border-radius:22px}
  .au-center .au-title{font-size:24px}
}
@media (max-width:380px){.au-row2{grid-template-columns:minmax(0,1fr)}.au-join{grid-template-columns:minmax(0,1fr)}}

/* FanHubb chat-bubble mark */
.au-logo-mark,.au-fh{-webkit-mask:url(data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20100%20100%22%3E%3Cpath%20d=%22M24%200h52a24%2024%200%200%201%2024%2024v42a24%2024%200%200%201-24%2024H26L0%20100V24A24%2024%200%200%201%2024%200z%22/%3E%3C/svg%3E) center/100% 100% no-repeat;mask:url(data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20100%20100%22%3E%3Cpath%20d=%22M24%200h52a24%2024%200%200%201%2024%2024v42a24%2024%200%200%201-24%2024H26L0%20100V24A24%2024%200%200%201%2024%200z%22/%3E%3C/svg%3E) center/100% 100% no-repeat;border-radius:0!important;box-shadow:none!important}

/* A field that needs something: red outline and one line right under it (fh-auth-check.js) */
.au-field.bad>.au-input,.au-field.bad .au-box,.age-check.bad,.au-check.bad{border-color:var(--red);box-shadow:0 0 0 4px rgba(180,35,24,.1)}
.au-field.bad .au-box .au-input{box-shadow:none}
.age-check.bad{background:var(--red-bg)}
.recaptcha-wrap.bad+.au-err-line{text-align:center}
.au-err-line{display:block;line-height:1.4}
