.ad-access-layout { position: relative; isolation: isolate; display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
.ad-access-image { position: absolute; inset: 0; z-index: -2; background: #111 url("../images/touge-access-retro.png") center 62% / cover; filter: grayscale(.85) brightness(.8) contrast(1.02); }
.ad-access-layout::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse min(440px, 110vw) 410px at 50% 53%, #08090acc 15%, #08090a99 42%, #08090a38 72%, #08090a00 100%), linear-gradient(180deg, #08090a45, #08090a35 45%, #08090ae6), radial-gradient(ellipse at center, #08090a30 15%, #08090a88 100%); }
.ad-access-header { display: flex; justify-content: center; padding: 48px 25px 0; }
.ad-access-header .ad-brand { width: 380px; max-width: 100%; }
.ad-access-panel { display: flex; align-items: center; justify-content: center; min-width: 0; flex: 1; padding: 36px 25px; }
.ad-access-content { width: 100%; max-width: 440px; padding: 38px 40px 30px; }
.ad-auth-heading { display: flex; align-items: center; justify-content: center; gap: 13px; }
.ad-racing-mark { display: inline-flex; gap: 3px; padding-left: 2px; }
.ad-racing-mark i { display: block; width: 3px; height: 12px; background: #4c5158; transform: skewX(-22deg); }
.ad-racing-mark i:nth-child(2) { background: #a1a6af; }
.ad-racing-mark i:last-child { background: var(--ad-accent); }
.ad-access-content > .ad-eyebrow { font-size: 9px; letter-spacing: 1.2px; }
.ad-access-content h1 { font-size: 38px; font-weight: 450; letter-spacing: -1.2px; margin: 15px 0 12px; text-align: center; }
.ad-access-intro { color: var(--ad-muted); font-size: 13px; margin-bottom: 32px; text-align: center; }
.ad-access-form label { display: block; font: 10px/1.5 var(--ad-mono); letter-spacing: 1.2px; color: #b3b6bc; margin-bottom: 10px; }
.ad-access-form input:not([type="hidden"]) { display: block; width: 100%; height: 49px; background: var(--ad-surface); border: 1px solid var(--ad-border); border-radius: 0; padding: 0 14px; color: var(--ad-text); font-size: 14px; }
.ad-access-form input::placeholder { color: #979ca6; }
.ad-access-form input:autofill { box-shadow: 0 0 0 100px var(--ad-surface) inset; -webkit-text-fill-color: var(--ad-text); caret-color: var(--ad-text); }
.ad-label-row { display: flex; justify-content: space-between; align-items: baseline; margin-top: 24px; gap: 15px; }
.ad-password-field { position: relative; }
.ad-password-field input { padding-right: 50px !important; }
.ad-password-toggle { position: absolute; top: 2px; right: 2px; display: grid; place-items: center; width: 45px; height: 45px; border: 0; background: none; color: #a1a6af; }
.ad-password-toggle svg { width: 20px; height: 20px; }
.ad-login-submit { width: 100%; margin-top: 30px; justify-content: center; }
.ad-access-help { margin-top: 23px; color: #a5a8af; font-size: 12px; line-height: 1.8; text-align: center; }
.ad-access-help a { display: inline-block; padding: 5px 0; margin-left: 3px; color: var(--ad-text); text-decoration: underline; text-decoration-color: #5a606a; text-underline-offset: 4px; }
.ad-access-help a:hover { color: var(--ad-accent); text-decoration-color: var(--ad-accent); }
.ad-access-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 24px; padding: 0 25px 28px; font: 9px/1.5 var(--ad-mono); letter-spacing: 1px; color: #9aa0aa; }
.ad-form-notice { margin: 0 0 25px; padding: 14px 15px; border: 1px solid #414852; border-left: 2px solid var(--ad-accent); background: #11151a; overflow-wrap: anywhere; }
.ad-form-notice > .ad-eyebrow { font-size: 9px; color: var(--ad-accent); }
.ad-form-notice p { margin-top: 6px; font-size: 13px; color: #d5dae1; line-height: 1.65; }

@media (max-width: 600px) {
  .ad-access-header { padding-top: 32px; }
  .ad-access-header .ad-brand { width: 280px; }
  .ad-access-image { background-position: center 72%; }
  .ad-access-panel { padding-block: 36px; }
  .ad-access-content { max-width: 380px; padding: 0; }
  .ad-access-content h1 { font-size: 33px; }
  .ad-access-form input:not([type="hidden"]) { font-size: 16px; }
  .ad-access-footer { padding-bottom: 24px; font-size: 8px; letter-spacing: .5px; }
}
