.willow-auth { padding: 70px 0 86px; overflow: hidden; color: var(--willow-ink); background: linear-gradient(135deg, #f9fcfd, #edf7fb); }
.willow-auth *, .willow-auth *::before, .willow-auth *::after { box-sizing: border-box; }
.willow-auth__shell { display: grid; grid-template-columns: minmax(380px,.88fr) minmax(520px,1.12fr); align-items: stretch; }
.willow-auth__visual { position: relative; min-height: 720px; overflow: hidden; border-radius: 16px 0 0 16px; background: #17344b; box-shadow: 0 24px 60px rgba(17,47,79,.13); }
.willow-auth--register .willow-auth__visual { min-height: 940px; }
.willow-auth__visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.willow-auth__visual-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,31,44,.06) 0%, rgba(4,35,49,.34) 42%, rgba(4,32,45,.9) 100%); }
.willow-auth__visual-copy { position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; padding: 48px; color: #fff; }
.willow-auth__eyebrow { margin: 0 0 13px; color: #c5ebf8; font-size: 11px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.willow-auth__visual h1 { margin: 0 0 19px; color: #fff; font-size: clamp(42px,4.3vw,61px); line-height: 1.02; letter-spacing: -.05em; }
.willow-auth__visual h1 br { display: block !important; }
.willow-auth__visual-copy > p:not(.willow-auth__eyebrow) { max-width: 520px; margin: 0; color: rgba(255,255,255,.8); font-size: 15px; line-height: 1.7; }
.willow-auth__promise { margin-top: 30px; padding-top: 24px; display: flex; align-items: center; gap: 13px; border-top: 1px solid rgba(255,255,255,.25); color: rgba(255,255,255,.86); font-size: 12px; font-style: italic; }
.willow-auth__promise img { width: 38px; height: 51px; object-fit: contain; filter: drop-shadow(0 4px 10px rgba(0,0,0,.2)); }
.willow-auth__benefits { margin: 27px 0 0; padding: 24px 0 0; border-top: 1px solid rgba(255,255,255,.25); list-style: none; }
.willow-auth__benefits li { margin: 11px 0; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.88); font-size: 13px; }
.willow-auth__benefits i { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: #0c6f93; background: #fff; font-size: 9px; }

.willow-auth__card { padding: 58px 62px; display: flex; flex-direction: column; justify-content: center; border: 1px solid #cfdee6; border-left: 0; border-radius: 0 16px 16px 0; background: #fff; box-shadow: 0 24px 60px rgba(17,47,79,.13); }
.willow-auth__card--wide { justify-content: flex-start; padding-top: 52px; padding-bottom: 52px; }
.willow-auth__card--compact { min-height: 720px; }
.willow-auth__heading { margin-bottom: 31px; }
.willow-auth__heading h2 { margin: 0; color: var(--willow-navy); font-size: clamp(34px,3.8vw,48px); line-height: 1.08; letter-spacing: -.045em; }
.willow-auth__heading > p:last-child { margin: 13px 0 0; color: var(--willow-muted); font-size: 14px; line-height: 1.6; }
.willow-auth__heading-icon { width: 54px; height: 54px; margin-bottom: 23px; display: grid; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: var(--willow-pale); font-size: 22px; }
.willow-auth__notice { margin-bottom: 25px; padding: 14px 16px; display: flex; align-items: flex-start; gap: 10px; border-radius: 9px; font-size: 13px; line-height: 1.55; }
.willow-auth__notice--success { color: #126a58; background: #e7f7f1; }
.willow-auth__notice i { margin-top: 3px; }

.willow-auth__form { margin: 0; }
.willow-auth__form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 17px; }
.willow-field { min-width: 0; margin-bottom: 21px; }
.willow-auth__form-grid .willow-field { margin-bottom: 0; }
.willow-field label { display: block; margin: 0 0 8px; color: var(--willow-navy); font-size: 12px; font-weight: 800; }
.willow-field__label-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.willow-field__label-row a { margin-bottom: 8px; color: var(--willow-blue-dark); font-size: 11px; font-weight: 800; text-decoration: none; }
.willow-field__control { position: relative; }
.willow-field__control > i { position: absolute; top: 50%; left: 16px; z-index: 1; color: #7d95a5; font-size: 15px; transform: translateY(-50%); pointer-events: none; }
.willow-field__control input, .willow-field__control select { width: 100%; height: 53px; margin: 0; padding: 0 16px 0 45px; border: 1px solid #cbdce5; border-radius: 8px; outline: 0; color: var(--willow-ink); background: #fbfdfe; font-size: 13px; transition: border-color .2s, box-shadow .2s, background .2s; }
.willow-field__control select { padding-right: 38px; appearance: none; cursor: pointer; }
.willow-field__control--select::after { position: absolute; top: 50%; right: 16px; color: #718797; font-family: "Font Awesome 5 Pro"; font-size: 11px; content: "\f078"; transform: translateY(-50%); pointer-events: none; }
.willow-field__control--readonly input { color: #617787; background: #f1f5f7; cursor: default; }
.willow-field__control input:focus, .willow-field__control select:focus { border-color: var(--willow-blue); background: #fff; box-shadow: 0 0 0 4px rgba(20,140,203,.09); }
.willow-field__control:focus-within > i { color: var(--willow-blue-dark); }
.willow-field__error { display: block; margin-top: 6px; color: #b44242; font-size: 11px; line-height: 1.4; }
.willow-field__error--standalone { margin: 8px 0 0; }

.willow-auth button.willow-auth__submit { width: 100%; min-height: 53px; margin-top: 4px; padding: 0 24px; display: flex; align-items: center; justify-content: center; gap: 11px; border: 2px solid var(--willow-blue); border-radius: 999px; color: #fff !important; background: var(--willow-blue); box-shadow: 0 10px 23px rgba(20,140,203,.18); font-size: 13px; font-weight: 800; text-transform: none; transition: .2s ease; }
.willow-auth button.willow-auth__submit:hover { transform: translateY(-2px); border-color: var(--willow-blue-dark); color: #fff !important; background: var(--willow-blue-dark); }
.willow-auth__secondary { margin-top: 16px; padding: 13px 16px; display: grid; grid-template-columns: 37px 1fr auto; gap: 12px; align-items: center; border: 1px solid #cfe0e9; border-radius: 9px; color: inherit !important; background: #f8fbfd; text-decoration: none !important; transition: .2s ease; }
.willow-auth__secondary:hover { border-color: #9dc9dc; background: #f0f8fc; }
.willow-auth__secondary > i:first-child { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: #e1f2fa; }
.willow-auth__secondary > i:last-child { color: var(--willow-blue-dark); font-size: 11px; }
.willow-auth__secondary strong, .willow-auth__secondary small { display: block; }
.willow-auth__secondary strong { color: var(--willow-navy); font-size: 12px; }
.willow-auth__secondary small { margin-top: 2px; color: var(--willow-muted); font-size: 10px; }
.willow-auth__switch { margin: 24px 0 0; color: var(--willow-muted); font-size: 12px; text-align: center; }
.willow-auth__switch a, .willow-auth__back, .willow-auth__terms a, .willow-auth__help-note a { color: var(--willow-blue-dark); font-weight: 800; text-decoration: none; }
.willow-auth__switch a:hover, .willow-auth__back:hover, .willow-auth__terms a:hover, .willow-auth__help-note a:hover { color: var(--willow-navy); text-decoration: underline; }
.willow-auth__back { margin-top: 21px; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 12px; }
.willow-auth__guest { min-height: 50px; padding: 0 21px; display: flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid #9fcadb; border-radius: 999px; color: var(--willow-blue-dark) !important; background: var(--willow-pale); font-size: 13px; font-weight: 800; text-decoration: none !important; }
.willow-auth__divider { margin: 22px 0; display: flex; align-items: center; gap: 12px; color: #8699a6; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.willow-auth__divider::before, .willow-auth__divider::after { height: 1px; flex: 1; background: #d9e6ec; content: ""; }
.willow-auth__socials { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.willow-auth__social { min-height: 48px; padding: 0 13px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid #cfdee6; border-radius: 8px; color: var(--willow-navy) !important; background: #fff; font-size: 11px; font-weight: 800; text-decoration: none !important; transition: .2s ease; }
.willow-auth__social:hover { border-color: #9dc9dc; background: #f4fafd; }
.willow-auth__terms { margin-top: 23px; display: grid; grid-template-columns: 19px 1fr; gap: 10px; align-items: start; color: var(--willow-muted); font-size: 11px; line-height: 1.6; cursor: pointer; }
.willow-auth__terms input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--willow-blue-dark); }
.willow-auth__captcha { margin: 22px 0; overflow-x: auto; }
.willow-auth__help-note { margin-top: 32px; padding-top: 24px; display: grid; grid-template-columns: 39px 1fr; gap: 12px; align-items: start; border-top: 1px solid #dce8ee; }
.willow-auth__help-note > i { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: var(--willow-pale); }
.willow-auth__help-note p { margin: 0; }
.willow-auth__help-note strong, .willow-auth__help-note span { display: block; }
.willow-auth__help-note strong { color: var(--willow-navy); font-size: 12px; }
.willow-auth__help-note span { margin-top: 3px; color: var(--willow-muted); font-size: 10px; line-height: 1.5; }

.willow-auth--delegate .willow-auth__visual-overlay { background: linear-gradient(180deg, rgba(4,31,44,.08) 0%, rgba(4,35,49,.4) 40%, rgba(4,32,45,.92) 100%); }
.willow-auth__heading-icon--delegate { color: #fff; background: linear-gradient(135deg, var(--willow-blue-dark), var(--willow-blue)); box-shadow: 0 10px 24px rgba(20,140,203,.18); }
.willow-field__control--key input { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; letter-spacing: .04em; }
.willow-auth__security-note { margin: 3px 0 24px; padding: 15px 16px; display: grid; grid-template-columns: 34px 1fr; gap: 11px; align-items: start; border: 1px solid #c5dfe9; border-radius: 9px; color: #567080; background: #eff8fc; }
.willow-auth__security-note > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--willow-blue-dark); background: #fff; font-size: 15px; }
.willow-auth__security-note p { margin: 0; }
.willow-auth__security-note strong, .willow-auth__security-note span { display: block; }
.willow-auth__security-note strong { color: var(--willow-navy); font-size: 11px; }
.willow-auth__security-note span { margin-top: 2px; font-size: 10px; line-height: 1.5; }

@media (max-width: 1050px) {
    .willow-auth__shell { grid-template-columns: minmax(330px,.78fr) minmax(500px,1.22fr); }
    .willow-auth__visual-copy { padding: 36px; }
    .willow-auth__card { padding-left: 40px; padding-right: 40px; }
}
@media (max-width: 860px) {
    .willow-auth { padding: 0 0 70px; }
    .willow-auth__shell { grid-template-columns: 1fr; }
    .willow-auth__visual { min-height: 460px !important; border-radius: 0; }
    .willow-auth__visual-copy { padding: 45px 34px; }
    .willow-auth__card { min-height: auto; padding: 48px 34px; border-top: 0; border-left: 1px solid #cfdee6; border-radius: 0 0 14px 14px; }
}
@media (max-width: 620px) {
    .willow-auth__visual { min-height: 430px !important; }
    .willow-auth__visual h1 { font-size: 43px; }
    .willow-auth__visual-copy { padding: 35px 24px; }
    .willow-auth__card { padding: 40px 22px; }
    .willow-auth__form-grid, .willow-auth__socials { grid-template-columns: 1fr; }
    .willow-auth__heading h2 { font-size: 35px; }
}
