/* GlobalX authentication: login, register, OTP, recovery and reset. */

/* 1. CSS variables / theme */
.gx-auth-page {
    --paper: #fff; --canvas: var(--gx-canvas); --ink: var(--gx-ink); --muted: var(--gx-muted);
    --brand: var(--gx-brand); --brand-hover: var(--gx-brand-hover); --accent: var(--gx-brand);
    --line: var(--gx-line); --soft: #fdfcfe; --ok: #246644; --bad: #a52d3e;
    --radius: 8px; --ring: 0 0 0 4px rgb(var(--gx-brand-channels) / 12%);
    font-family: 'Host Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
    color-scheme: light;
    color: var(--ink); background: var(--canvas); -webkit-font-smoothing: antialiased;
}
form{margin-bottom:10px !important;}
i{font-weight:100 !important;}
/* 2. Base / reset */
.gx-auth-page { margin: 0; min-width: 0; }
.gx-auth-page *, .gx-auth-page *::before, .gx-auth-page *::after { box-sizing: border-box; }
.gx-auth-wrap { width: 100%; min-height: 100vh; min-height: 100svh; padding: clamp(20px, 1vw, 48px); background: #fff; }
.gx-auth-wrap button, .gx-auth-wrap input { font: inherit; }
.gx-auth-wrap a { color: var(--brand); text-underline-offset: 4px; }
.gx-auth-wrap img { max-width: 100%; }
.gx-auth-wrap [hidden] { display: none !important; }

/* 3. Auth layout */
.gx-auth-shell { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); width: 100%; max-width: 1240px; min-height: calc(100svh - 96px); margin: auto; background: var(--paper); border: 1px solid var(--line); border-radius: 0; box-shadow: 0 20px 64px -32px rgb(45 19 56 / 10%); }
.gx-auth-shell > * { min-width: 0; }
.gx-auth-form { display: flex; justify-content: center; padding: clamp(28px, 4vw, 35px); }
.gx-auth-wrap .access-grid .gx-submit{color:#fff;}
.gx-auth-wrap .access-grid .gx-info{color:var(--brand);}
/* 4. Branding */
.gx-auth-brand { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; gap: 15px; padding: clamp(28px, 3.5vw, 48px); border-radius: 0 0 0 0; background: linear-gradient(145deg, #ffffff, #f8f5fb 65%, #f2edf7); color: var(--ink); }
.gx-auth-brand::before { content: ''; position: absolute; z-index: -1; width: 480px; height: 480px; right: -290px; top: 100px; border: 1px solid rgb(var(--gx-brand-channels) / 8%); border-radius: 50%; box-shadow: 0 0 0 55px rgb(var(--gx-brand-channels) / 3%), 0 0 0 110px rgb(var(--gx-brand-channels) / 2%); pointer-events: none; }
.gx-brand-top { display: grid; gap: 24px; }
.gx-brand-logo { display: flex; align-items: center; gap: 12px; }
.gx-brand-logo img { width: 60px;height: 50px;object-fit: contain;background: #fff;border-radius: 0px; }
.gx-brand-logo .name { color: var(--ink); font-size: 18px; font-weight: 650; line-height: 1.1; }
.gx-brand-logo .tag { font-size: 12px; color: var(--muted); margin-top: 0; }
.gx-brand-heading { color: var(--ink); font-size: clamp(30px, 3.2vw, 44px); line-height: 1.15; letter-spacing: -.045em; font-weight: 400; margin: 16px 0 0; max-width: 19ch; text-wrap: balance; }
.gx-brand-heading em, .gx-brand-heading .accent { color: var(--accent); font-style: normal; }
.gx-brand-sub { color: var(--muted); font-size: 14px; line-height: 1.75; margin: 0; max-width: 44ch; }
.gx-brand-media { position: relative; margin: 0; aspect-ratio: 16 / 8; border: 1px solid var(--line); border-radius: 0; overflow: hidden; }
.gx-brand-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gx-brand-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent, rgb(26 10 33 / 80%)); }
.gx-media-caption, .gx-media-badge { position: absolute; bottom: 18px; left: 18px; right: 18px; z-index: 1; }
.gx-media-badge { display: flex; align-items: center; gap: 12px; }
.gx-media-badge > i { font-size: 26px; color: #f1d8a5; }
.gx-media-caption strong, .gx-media-badge strong { display: block; color: #fff; font-size: 14px; font-weight: 600; }
.gx-media-caption span, .gx-media-badge span { display: block; color: #e5d9eb; font-size: 12px; line-height: 1;}
.gx-features { display: grid; gap: 18px; }
.gx-feature { display: flex; gap: 12px; align-items: flex-start; }
.gx-feature-ic { flex: 0 0 36px; height: 36px; display: grid; place-items: center; background: rgb(var(--gx-brand-channels) / 6%); color: var(--brand); font-size: 18px; }
.gx-feature-txt strong { display: block; font-size: 13px; font-weight: 600; color: var(--ink); }
.gx-feature-txt span { display: block; font-size: 12px; line-height: 1.6; color: var(--muted); margin-top: 0; }
.gx-brand-foot { display: flex; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 20px; border-top: 1px solid rgb(var(--gx-brand-channels) / 10%); font-size: 11px; color: var(--muted); }
.gx-brand-foot .dots { display: flex; align-items: center; gap: 5px; }
.gx-brand-foot .dots span { width: 5px; height: 5px; border-radius: 50%; background: #ad8eb8; }
.gx-info { color: var(--gx-brand) !important;}
/* 5. Auth card */
.gx-form-inner { width: 100%; }
.gx-form-head { margin-bottom: 28px; }
.gx-form-step { display: inline-flex;align-items: center;gap: 8px;font-size: 13px;font-weight: 500;color: var(--brand);}
.gx-form-step .dot { width: 6px; height: 6px; background: var(--brand); border-radius: 50%; }
.gx-form-title { font-size: clamp(28px, 2.7vw, 34px); letter-spacing: -.04em; font-weight: 400; line-height: 1.2; color: var(--ink); margin: 10px 0 5px; }
.gx-form-sub { font-size: 14px; line-height: 1.7; color: var(--muted); margin: 0; overflow-wrap: anywhere; }

/* 6. Forms */
.gx-field { margin-bottom: 12px; min-width: 0; }
.gx-label { display: flex; align-items: baseline; gap: 4px; font-size: 13px; font-weight: 600; margin-bottom: 8px; color: var(--ink); }
.gx-label a { margin-left: auto; font-size: 12px; font-weight: 500; text-decoration: none; }
.gx-label .req { color: var(--bad); margin-left: 3px; }
.gx-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.gx-hint { display: block; margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.gx-check { display: flex; align-items: flex-start; gap: 10px; margin: 4px 0 24px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.gx-check input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--brand); cursor: pointer; }
.gx-check label { cursor: pointer; }

/* 7. Inputs */
.gx-input-wrap { position: relative; }
.gx-input { width: 100%; min-width: 0; height: 50px; padding: 0 14px; font-size: 16px !important; color: var(--ink); background: var(--soft); border: 1px solid var(--line); border-radius: var(--radius); transition: border-color .18s, box-shadow .18s, background .18s; }
.gx-input::placeholder { color: #81788b; font-size: 14px; }
.gx-input:hover, .gx-otp-box:hover { border-color: #b5a5c2; }
.gx-input:focus, .gx-otp-box:focus { outline: none; background: #fff; border-color: var(--brand); box-shadow: var(--ring); }
.gx-input[aria-invalid='true'] { border-color: var(--bad); }
.gx-input-ic { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: #81738d; font-size: 18px; pointer-events: none; }
.gx-input-wrap:has(.gx-input-ic) .gx-input { padding-left: 44px; }
.gx-auth-wrap .iti { display: block; width: 100%; --iti-border-color: var(--line); }
.gx-auth-wrap .iti__dropdown-content, .gx-auth-wrap .iti__country-list { border-radius: 10px; border: 1px solid var(--line); box-shadow: 0 12px 32px rgb(45 19 56 / 12%); z-index: 30; max-width: min(400px, calc(100vw - 48px)); }

/* 8. Password field */
.gx-input.has-toggle { padding-right: 48px; }
.gx-input-btn { position: absolute; top: 50%; right: 3px; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 9px; background: transparent; color: var(--muted); cursor: pointer; }
.gx-input-btn:hover { color: var(--brand); background: #efe7f3; }
.gx-rules { padding: 14px 16px; margin: 0 0 20px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--soft); }
.gx-rules-title { font-size: 12px; font-weight: 600; margin-bottom: 10px; }
.gx-rules-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; }
.gx-rule { display: flex; align-items: center; gap: 7px; font-size: 12px; line-height: 1; color: var(--muted); }
.gx-rule i { font-size: 14px; }
.gx-rule.valid { color: var(--ok); }
.gx-rule.invalid { color: var(--bad); }

/* 9. Buttons */
.gx-submit { width: 100%; min-height: 50px; display: inline-flex; justify-content: center; align-items: center; gap: 10px; padding: 12px 16px; border: 1px solid transparent; border-radius: var(--radius); background: var(--brand); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; box-shadow: 0 4px 12px rgb(var(--gx-brand-channels) / 16%); transition: background .18s, box-shadow .18s; }
.gx-submit:hover { background: var(--brand-hover); box-shadow: 0 6px 18px rgb(var(--gx-brand-channels) / 24%); }
.gx-submit:active { box-shadow: none; }
.gx-submit:disabled { opacity: .65; cursor: not-allowed; }

/* 10. Links */
.gx-auth-wrap a:hover { color: var(--brand-hover); text-decoration: underline; }
.gx-divider { display: flex; align-items: center; gap: 14px; margin: 26px 0 0; color: var(--muted); font-size: 13px; }
.gx-divider::before, .gx-divider::after { content: ''; height: 1px; background: var(--line); flex: 1; }
.gx-auth-foot { margin-top: 24px; text-align: center; color: var(--muted); font-size: 13px; line-height: 1.7; margin-bottom: 10px; }
.gx-auth-foot a { display: inline-flex; align-items: center; gap: 5px; margin-left: 4px; font-weight: 600; text-decoration: none; }

/* 11. Alerts / errors / success */
.gx-alert, .auth-flashes .alert { display: flex; align-items: center; gap: 10px; padding: 10px; margin-bottom: 20px; border: 1px solid; border-radius: var(--radius); font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.gx-alert > i { flex-shrink: 0; font-size: 18px; }
.gx-alert > div { min-width: 0; }
.gx-alert-danger, .auth-flashes .alert-danger { color: #942638; background: #fff2f4; border-color: #f1cbd2; }
.gx-alert-success, .auth-flashes .alert-success { color: #246644; background: #eff9f3; border-color: #c6e5d3; }
.gx-alert-info, .auth-flashes .alert-info { color: #34527f; background: #f0f5fe; border-color: #d0def3; }
.gx-alert-warning, .auth-flashes .alert-warning { color: #795617; background: #fff8e9; border-color: #eddbb2; }
.auth-flashes { position: relative; width: 100%; margin: 0 0 20px; }
.auth-flashes .flash-messages { margin: 0 !important; }
.auth-flashes .alert { position: relative; padding-right: 48px; margin-bottom: 12px; }
.auth-flashes .alert:last-child { margin-bottom: 0; }

/* 12. OTP UI */
.gx-otp-email-inline { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 2px 8px; margin-top: 4px; background: #f5eef8; border: 1px solid var(--line); border-radius: 6px; color: var(--brand); font-size: 13px; overflow-wrap: anywhere; }
.gx-otp-email-inline i { flex-shrink: 0; }
.gx-otp-boxes { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin: 8px 0 24px; }
.gx-otp-box { width: 100%; min-width: 0; height: clamp(48px, 5vw, 64px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--soft); color: var(--ink); font-size: 24px !important; font-weight: 600; text-align: center; padding: 0; caret-color: var(--brand); }
.gx-otp-box.filled { color: var(--brand); border-color: #ae84b7; background: #faf4fc; }
.gx-otp-resend { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px 8px; margin-top: 18px; font-size: 12px; color: var(--muted); }
.gx-otp-resend form { display: inline; }
.gx-otp-resend-btn { display: inline-flex; align-items: center; gap: 5px; min-height: 44px; padding: 8px; background: transparent; border: 0; border-radius: 8px; color: var(--brand); font-size: 12px; font-weight: 600; cursor: pointer; }
.gx-otp-resend-btn:hover { background: #f5eef8; }
.gx-otp-resend-btn:disabled, .gx-otp-resend-btn.disabled { color: var(--muted); opacity: .65; cursor: not-allowed; }
.gx-otp-timer { font-variant-numeric: tabular-nums; font-size: 12px; }

/* 13. Loading states */
.is-loading { cursor: progress; }
.is-loading::after { content: ''; width: 16px; height: 16px; flex: 0 0 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: gx-spin .7s linear infinite; }
.is-loading > i { display: none; }
@keyframes gx-spin { to { transform: rotate(360deg); } }

/* 14. Responsive / mobile */
@media (min-width: 961px) { .gx-auth-wrap { display: flex; align-items: center; } }
@media (max-width: 960px) {
    .gx-auth-wrap { padding: 24px; }
    .gx-auth-shell { grid-template-columns: minmax(0, 1fr); max-width: 620px; min-height: auto; border-radius: 0; }
    .gx-auth-brand { padding: 28px 32px; gap: 16px; border-radius: 21px 21px 0 0; }
    .gx-brand-top { gap: 16px; }
    .gx-brand-heading { font-size: 28px; max-width: none; margin-top: 0; }
    .gx-brand-sub { max-width: none; font-size: 13px; }
    .gx-brand-media, .gx-features, .gx-brand-foot { display: none; }
    .gx-auth-form { padding: 32px; }
}
@media (max-width: 520px) {
    .gx-auth-wrap { padding: 12px; }
    .gx-auth-shell { border-radius: 0; }
    .gx-auth-brand { padding: 24px; border-radius: 17px 17px 0 0; }
    .gx-brand-heading { font-size: 24px; }
    .gx-brand-sub { display: none; }
    .gx-brand-logo img { width: 40px; height: 40px; }
    .gx-brand-logo .name { font-size: 14px; }
    .gx-auth-form { padding: 28px 20px; }
    .gx-form-title { font-size: 28px; }
    .gx-grid-2 { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .gx-rules-grid { grid-template-columns: minmax(0, 1fr); }
    .gx-otp-boxes { gap: 6px; }
    .gx-otp-box { height: 48px; border-radius: 8px; font-size: 20px !important; }
}

/* 15. Accessibility / focus states */
.gx-auth-page :is(a, button, input, [tabindex]):focus-visible { outline: 1px solid #9c5ba7; outline-offset: 0; }
.gx-auth-form:focus { outline: none; }
.gx-skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; transform: translateY(-160%); background: #fff; color: var(--brand); padding: 12px 18px; border-radius: 8px; }
.gx-skip-link:focus { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { .gx-auth-page *, .gx-auth-page *::before, .gx-auth-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media (forced-colors: active) { .gx-submit, .gx-input, .gx-otp-box, .gx-check input { border: 1px solid ButtonText; } }




/* Local SVG field icons do not depend on external icon fonts. */
.gx-auth-local-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1;font-style:normal;flex-shrink:0}
.gx-auth-local-icon::before{content:none!important}.gx-auth-local-icon svg{display:block;width:20px;height:20px}
.gx-label-icon{margin-right:7px;vertical-align:middle}
.gx-auth-heading-icon{margin-right:10px;vertical-align:middle;color:var(--brand,var(--gx-brand))}
.gx-auth-heading-icon svg{width:26px;height:26px}.gx-auth-action-icon{margin-right:9px;vertical-align:middle}.gx-auth-action-icon svg{width:20px;height:20px}

/* Portal selection shares the authentication theme and readable link contrast. */
.access-hub{width:100%;max-width:1120px;margin:32px auto}
.access-hub>p{color:var(--muted)}
.access-hub h1{font-size:clamp(27px,4vw,36px);letter-spacing:-.7px;margin-top:20px}
.access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}
.access-grid section{display:flex;flex-direction:column;min-width:0;background:var(--paper);padding:28px;border:1px solid var(--line);border-radius:14px}
.access-grid section>i{font-size:30px;color:var(--brand)}
.access-grid h2{font-size:21px;margin:18px 0 12px}
.access-grid p{color:var(--muted);font-size:14px;line-height:1.7;flex:1;margin-bottom:20px}
.access-grid .gx-submit{margin:0 0 14px;text-decoration:none;text-align:center}
.access-grid .gx-info{align-self:flex-start;margin:0;line-height:1.5}
@media(max-width:750px){.access-hub{margin:12px auto}.access-grid{grid-template-columns:1fr;gap:14px}.access-grid section{padding:24px}}

/* Shared geometry for Author, Community and University account forms. */
.gx-auth-wrap:not(.access-page){background:radial-gradient(ellipse at 15% 10%,#f4ecf7,transparent 55%),#faf9fc}
.gx-auth-shell{border-radius:20px;overflow:hidden}
.gx-auth-brand{border-radius:0}
.gx-auth-brand>p,.gx-auth-form .gx-form-inner>p{font-size:14px;line-height:1.75;color:var(--muted)}
.gx-auth-form .gx-form-inner>p a{font-weight:600}
.gx-form-inner>form{margin-top:24px}
.gx-auth-form .gx-form-inner>p:last-child{margin-bottom:0}
.gx-eyebrow{font-size:12px;letter-spacing:1px;color:var(--brand);font-weight:600}
.gx-auth-form .gx-info{display:inline-flex;min-height:40px;align-items:center;font-size:13px}
.gx-portal-links{border-top:1px solid var(--line);padding-top:18px;margin-top:24px;font-size:12px}
.gx-portal-links p{margin:0}.gx-portal-links a{display:inline-block;padding:6px 0;line-height:1.6;text-decoration:none}
@media(max-width:520px){.gx-auth-shell{border-radius:16px}.gx-auth-brand{border-radius:0}.gx-form-title{font-size:26px}.gx-auth-heading-icon{margin-right:6px}.gx-auth-heading-icon svg{width:22px;height:22px}}

/* One GlobalX palette and square controls across all account screens. */
body.gx-auth-page{--radius:0;--auth-tint:#f7f0f8;--auth-border:#e1d5e5}
body.gx-auth-page *{border-radius:0!important}
.gx-auth-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:64px;max-width:1240px;margin:auto;padding:12px 24px;border-bottom:1px solid var(--auth-border);background:#fff}
.gx-auth-topbar a{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:6px 0;color:var(--brand);font-size:12px;text-decoration:none;white-space:nowrap}
.gx-auth-portal-name{padding:6px 10px;border-left:2px solid var(--brand);font-size:11px;font-weight:600;letter-spacing:.3px;color:var(--brand)}
.gx-auth-topbar+.gx-auth-wrap{min-height:calc(100svh - 64px);padding:24px}
.gx-auth-topbar+.gx-auth-wrap .gx-auth-shell{min-height:calc(100svh - 112px)}
.gx-auth-wrap:not(.access-page){background:#faf9fc}
.gx-auth-shell{border-color:var(--auth-border);box-shadow:none}
.gx-auth-brand{border-right:1px solid var(--auth-border);background:linear-gradient(150deg,#fff,var(--auth-tint));padding:40px}
.gx-auth-brand::before{display:none}
.gx-auth-form{padding:40px;align-items:center}
.gx-form-inner{max-width:520px}
.gx-form-title{display:flex;align-items:center;gap:12px;letter-spacing:-1px;line-height:1.25;margin:14px 0 10px}
.gx-auth-heading-icon{width:44px;height:44px;margin:0;flex:0 0 44px;background:var(--auth-tint);border:1px solid var(--auth-border);color:var(--brand)}
.gx-auth-heading-icon svg{width:23px;height:23px}
.gx-form-step,.gx-eyebrow{font-size:10px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase}
.gx-auth-page .gx-field{margin-bottom:12px}
.gx-auth-page .gx-input{height:50px;background:#fff;border-color:#ddd7e2}
.gx-auth-page .gx-input-ic{color:var(--brand)}
.gx-auth-page .gx-input-btn:hover{background:var(--auth-tint)}
.gx-auth-page .gx-feature-ic{border:1px solid var(--auth-border);background:#fff;color:var(--brand)}
.gx-auth-page .gx-feature-txt span{line-height:1.75}
.gx-auth-page .gx-submit{box-shadow:none;margin-top:8px;gap:9px; color:#fff;background:var(--brand);border-color:var(--brand)}
.gx-auth-page .gx-auth-action-icon{margin:0}
.gx-auth-page .gx-rules{padding:16px;background:var(--auth-tint);border-color:var(--auth-border)}
.gx-auth-page .gx-rule{line-height:1.7}
.gx-auth-page .gx-rule svg{width:15px;height:15px}
.gx-auth-page .gx-info{color:var(--brand)!important}
.gx-auth-page .gx-otp-email-inline{background:var(--auth-tint);border-color:var(--auth-border);color:var(--brand)}
.gx-auth-page .gx-otp-box.filled{background:var(--auth-tint);border-color:var(--brand);color:var(--brand)}
.gx-auth-page .gx-phone-code{background:var(--auth-tint);border-color:#ddd7e2}
body.gx-auth-page :is(a,button,input,select,textarea,[tabindex]):focus{outline:none!important;box-shadow:none!important}
body.gx-auth-page :is(a,button,input,select,textarea,[tabindex]):focus-visible{outline:none!important;box-shadow:inset 0 -2px 0 var(--brand)!important}
.gx-auth-page .gx-alert{align-items:flex-start;padding:14px;gap:10px}
.gx-auth-page .gx-alert .gx-auth-local-icon{margin-top:2px}
@media(max-width:960px){.gx-auth-topbar+.gx-auth-wrap .gx-auth-shell{min-height:0}.gx-auth-brand{border-right:0;border-bottom:1px solid var(--auth-border);padding:28px 30px}.gx-auth-form{padding:32px 30px}.gx-auth-topbar{max-width:668px}.gx-brand-heading{font-size:30px}}
@media(max-width:520px){.gx-auth-topbar{gap:9px;padding:10px 16px;min-height:58px}.gx-auth-topbar a{font-size:10px;gap:4px}.gx-auth-portal-name{font-size:9px;padding:5px 7px;letter-spacing:0}.gx-auth-topbar+.gx-auth-wrap{padding:14px;min-height:calc(100svh - 58px)}.gx-auth-brand{padding:24px 20px}.gx-auth-form{padding:28px 20px}.gx-form-title{font-size:25px;gap:9px}.gx-auth-heading-icon{width:38px;height:38px;flex-basis:38px}.gx-brand-heading{font-size:26px}.gx-auth-page .gx-field{margin-bottom:16px}}
@media(forced-colors:active){body.gx-auth-page :is(a,button,input,select,[tabindex]):focus-visible{outline:2px solid Highlight!important;outline-offset:2px}}

/* Consistent form rhythm on all portal registrations and sign-in screens. */
.gx-auth-page .gx-brand-logo{min-height:52px;text-decoration:none}
.gx-auth-page .gx-brand-logo .tag{font-size:12px;line-height:1.2}
.gx-auth-page .gx-form-sub{max-width:48ch}
.gx-auth-page .gx-form-inner>form{margin-top:25px}
.gx-auth-page .gx-input,.gx-auth-page .gx-phone-code{border-color:#dcd3e2}
.gx-auth-page select.gx-input{appearance:auto;padding:0 12px;color:var(--ink)}
.gx-auth-page .gx-submit{min-height:50px;font-size:14px;letter-spacing:.1px}
.gx-auth-page .gx-form-inner>p{margin-top:18px;font-size:13px}
.gx-auth-page .gx-brand-heading{max-width:20ch}
@media(min-width:961px){.gx-auth-page .gx-auth-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.gx-auth-page .gx-auth-form{padding:20px;}}
@media(max-width:520px){.gx-auth-page .gx-auth-topbar{flex-wrap:wrap;gap:5px 12px}.gx-auth-page .gx-auth-portal-name{order:3;flex-basis:100%;text-align:center;border-left:0;border-top:1px solid var(--auth-border);padding-top:8px}.gx-auth-page .gx-auth-topbar>a:last-child{margin-left:auto}.gx-auth-page .gx-form-title{font-size:24px;overflow-wrap:anywhere}.gx-auth-page .gx-auth-form{padding:25px 18px}.gx-auth-page .gx-auth-brand{padding:22px 18px}.gx-auth-page .gx-brand-heading{font-size:25px}.gx-auth-page .gx-brand-sub{display:block;font-size:12px;line-height:1.7}.gx-auth-page .gx-input{height:48px}.gx-auth-page .gx-auth-wrap{padding:12px}}
