body.es-auth-body {
    background: radial-gradient(circle at 12% 10%, #eef4ff 0, transparent 42%), #f7f9fc;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    align-items: safe center;
    justify-content: safe center;
    padding: 24px;
    box-sizing: border-box;
}
body.es-auth-body:has(.es-legal-document) {
    align-items: flex-start;
}
.es-login.es-auth-card,
.es-auth-card {
    width: min(100%, 470px);
    border: 1px solid #e2e8f2;
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(28,45,78,.09);
    padding: 32px;
    overflow: hidden;
    background: var(--es-surface, #fff);
}
.es-login.es-auth-card:has(> .es-brand-mark),
.es-login.es-auth-card:has(> .es-logo),
.es-auth-card:has(> .es-brand-mark),
.es-auth-card:has(> .es-logo) {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
}
.es-auth-card--wide,
.es-login.es-auth-card--wide {
    width: min(100%, 580px);
    max-width: min(100%, 580px);
}
.es-auth-card--devices,
.es-login.es-auth-card--devices {
    width: min(100%, 760px);
    max-width: min(100%, 760px);
}
.es-auth-card--devices .es-wearables {
    margin: 4px 0 8px;
}
.es-login.es-auth-card > .es-brand-mark,
.es-login.es-auth-card > .es-logo,
.es-auth-card > .es-brand-mark,
.es-auth-card > .es-logo {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 34px 36px;
    font-weight: 800 !important;
}
.es-login.es-auth-card:has(> .es-brand-mark) > *:not(.es-brand-mark):not(.es-logo),
.es-login.es-auth-card:has(> .es-logo) > *:not(.es-brand-mark):not(.es-logo),
.es-auth-card:has(> .es-brand-mark) > *:not(.es-brand-mark):not(.es-logo),
.es-auth-card:has(> .es-logo) > *:not(.es-brand-mark):not(.es-logo) {
    margin-left: 32px;
    margin-right: 32px;
}
.es-auth-card h1 { margin: 0 0 8px; }

.es-auth-card--join {
    width: min(100%, 520px);
}
.es-join-coach {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 18px 0 16px;
}
.es-join-coach__avatar {
    width: 56px;
    height: 56px;
    font-size: 18px;
}
.es-join-coach__name {
    font-size: 20px;
    font-weight: 750;
    line-height: 1.25;
    color: var(--es-ink, #10151b);
}
.es-join-coach__access {
    margin: 0 0 8px;
    line-height: 1.5;
}
.es-join-coach__actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
    align-items: center;
}
.es-join-coach__sr-form {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.es-join-coach__actions .es-join-coach__btn.es-btn,
a.es-btn.es-join-coach__btn,
button.es-btn.es-join-coach__btn {
    flex: 1 1 0;
    display: inline-flex;
    width: auto;
    min-width: 0;
    height: 38px;
    min-height: 38px;
    max-height: 38px;
    margin: 0;
    padding: 0 16px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    border-radius: 999px;
    border-width: 1px;
    border-style: solid;
}
.es-join-coach__legal {
    margin: 16px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: #8590a2;
}
.es-join-coach__legal a {
    color: #5b6575;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.es-join-coach__legal a:hover,
.es-join-coach__legal a:focus-visible {
    color: #2865dc;
}
.es-auth-lead--center {
    text-align: center;
    margin-top: 4px;
}
.es-auth-step { color: #2865dc; font-size: 12px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; margin: 0 0 9px; }
.es-auth-back {
    display: block;
    width: fit-content;
    margin: 0 0 16px;
    color: #8a93a3;
    font-size: 13px;
    font-weight: 550;
    text-decoration: none;
}
.es-auth-back:hover,
.es-auth-back:focus,
.es-auth-back:focus-visible {
    color: #4b5565;
    text-decoration: none;
}
.es-auth-card--check-email > .es-brand-mark,
.es-auth-card--check-email > .es-logo {
    margin-bottom: 12px;
}
.es-auth-card--check-email > .es-auth-back {
    margin: 0 auto 28px;
}
.es-auth-card--check-email > h1 {
    margin: 0 0 14px;
}
.es-auth-card--check-email > .lead {
    margin: 0 0 28px;
}
.es-auth-card--check-email > .es-alert {
    margin-bottom: 22px;
    text-align: center;
}
.es-auth-card--check-email > .es-auth-code-form {
    margin-top: 8px;
    margin-bottom: 8px;
}
.es-auth-card--check-email .es-auth-submit {
    margin-top: 16px;
}
.es-auth-resend {
    margin: 10px 0 0;
    text-align: left;
}
.es-auth-resend__line {
    margin: 16px 0 0;
    text-align: left;
    color: #8a93a3;
    font-size: 13px;
}
.es-auth-resend__btn {
    display: inline;
    padding: 0;
    border: 0;
    background: none;
    color: #4b5565;
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}
.es-auth-resend__btn:hover,
.es-auth-resend__btn:focus-visible {
    text-decoration: underline;
    text-underline-offset: 2px;
}
.es-auth-resend__btn:focus:not(:focus-visible) {
    text-decoration: none;
}
.es-auth-provider-list { display: grid; gap: 10px; margin: 22px 0; }
.es-auth-provider {
    position: relative;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px solid #dce3ee;
    border-radius: 10px;
    padding: 8px 13px;
    color: #172033;
    text-decoration: none;
    font-weight: 650;
    background: #fff;
}
.es-auth-provider:hover,
.es-auth-provider:focus,
.es-auth-provider:focus-visible {
    border-color: #9eb7ec;
    background: #f9fbff;
    text-decoration: none;
}
.es-auth-provider small {
    color: #7a8497;
    font-weight: 500;
    position: absolute;
    right: 13px;
}
.es-auth-provider__mark {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    background: transparent;
    border: 0;
    border-radius: 0;
    overflow: visible;
}
.es-auth-provider__mark img {
    display: block;
    width: 20px;
    height: 20px;
    object-fit: contain;
}
.es-auth-provider--strava .es-auth-provider__mark {
    background: transparent;
    border: 0;
}
.es-auth-divider { display: flex; align-items: center; gap: 12px; color: #8590a2; font-size: 12px; margin: 18px 0; }
.es-auth-divider::before,.es-auth-divider::after { content:""; height: 1px; background: #e3e8f0; flex: 1; }
.es-auth-label-row { display: flex; justify-content: space-between; align-items: center; }
.es-auth-label-row a { font-size: 12px; }
.es-auth-submit { width: 100%; justify-content: center; margin-top: 8px; }
/* Direct-child submit links inherit side margins from the brand-mark card layout.
   width:100% + those margins overflows and overflow:hidden clips the right edge. */
.es-login.es-auth-card:has(> .es-brand-mark) > .es-btn.es-auth-submit,
.es-login.es-auth-card:has(> .es-logo) > .es-btn.es-auth-submit,
.es-auth-card:has(> .es-brand-mark) > .es-btn.es-auth-submit,
.es-auth-card:has(> .es-logo) > .es-btn.es-auth-submit {
    width: auto;
    display: flex;
    box-sizing: border-box;
    margin-left: 32px;
    margin-right: 32px;
}
.es-auth-code-form { margin-top: 2px; text-align: left; }
.es-auth-code-input {
    text-align: center;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 24px;
    font-weight: 720;
    letter-spacing: .22em;
    font-variant-numeric: tabular-nums;
}
.es-auth-fieldset { border: 0; padding: 0; margin: 14px 0 10px; }
.es-auth-fieldset legend {
    display: block;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--es-ink-soft, #5b6575);
    margin: 0 0 6px;
    padding: 0;
}
.es-auth-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.es-auth-choice { position: relative; cursor: pointer; }
.es-auth-choice input { position: absolute; opacity: 0; }
.es-auth-choice span { display: grid; gap: 4px; border: 1px solid #dce3ee; border-radius: 11px; padding: 14px; min-height: 74px; }
.es-auth-choice small { color: #707b8d; line-height: 1.35; }
.es-auth-choice input:checked + span { border-color: #2865dc; box-shadow: inset 0 0 0 1px #2865dc; background: #f5f8ff; }
.es-auth-choice--disabled { cursor: not-allowed; }
.es-auth-choice--disabled span {
  opacity: 0.55;
  background: #f3f5f8;
  border-color: #e4e9f0;
  color: #6b7280;
}
.es-auth-choice--disabled small { color: #9aa3ad; }
.es-auth-choice--disabled input:checked + span {
  border-color: #e4e9f0;
  box-shadow: none;
  background: #f3f5f8;
}
.es-auth-check { display: grid; grid-template-columns: 18px 1fr; gap: 9px; align-items: start; margin: 12px 0; font-size: 14px; line-height: 1.45; }
.es-auth-check input { margin-top: 3px; }
.es-auth-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 0; }
.es-auth-two > .es-field { margin-bottom: 0; }
.es-auth-gender-field { margin-top: 18px; }
.es-auth-actions { display: flex; justify-content: space-between; gap: 10px; margin-top: 22px; }
.es-auth-actions--end { justify-content: flex-end; }
.es-security-email {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 10px;
    margin: 0 0 16px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--es-ink-faint, #8a93a3);
}
.es-security-email__label {
    font-weight: 650;
    color: var(--es-ink-faint, #8a93a3);
}
.es-security-email__value {
    color: var(--es-ink-soft, #5b6575);
    user-select: text;
}
.es-security-save-password {
    margin-top: 16px;
}
.es-security-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
    align-items: center;
}
.es-security-legal-links {
    margin: 32px 0 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--es-ink-soft, #5b6575);
}
.es-security-legal-links a { font-size: inherit; }
#ai-consent .es-auth-check:last-of-type { margin-bottom: 10px; }
#ai-consent .es-autosave-status {
    min-height: 0;
    margin-top: 0;
}
#ai-consent .es-autosave-status.is-saving,
#ai-consent .es-autosave-status.is-saved,
#ai-consent .es-autosave-status.is-error {
    min-height: 16px;
    margin-top: 4px;
}
.es-legal-summary { background: #f6f8fb; border-radius: 10px; padding: 14px; font-size: 13px; line-height: 1.5; }
@media (max-width: 600px) {
    .es-login.es-auth-card,
    .es-auth-card { padding: 24px 19px; border-radius: 14px; }
    .es-login.es-auth-card:has(> .es-brand-mark),
    .es-login.es-auth-card:has(> .es-logo),
    .es-auth-card:has(> .es-brand-mark),
    .es-auth-card:has(> .es-logo) {
        padding-top: 0;
        padding-left: 0;
        padding-right: 0;
    }
    .es-login.es-auth-card > .es-brand-mark,
    .es-login.es-auth-card > .es-logo,
    .es-auth-card > .es-brand-mark,
    .es-auth-card > .es-logo { margin: 0 0 28px 24px; }
    .es-login.es-auth-card:has(> .es-brand-mark) > *:not(.es-brand-mark):not(.es-logo),
    .es-login.es-auth-card:has(> .es-logo) > *:not(.es-brand-mark):not(.es-logo),
    .es-auth-card:has(> .es-brand-mark) > *:not(.es-brand-mark):not(.es-logo),
    .es-auth-card:has(> .es-logo) > *:not(.es-brand-mark):not(.es-logo) {
        margin-left: 19px;
        margin-right: 19px;
    }
    .es-login.es-auth-card:has(> .es-brand-mark) > .es-btn.es-auth-submit,
    .es-login.es-auth-card:has(> .es-logo) > .es-btn.es-auth-submit,
    .es-auth-card:has(> .es-brand-mark) > .es-btn.es-auth-submit,
    .es-auth-card:has(> .es-logo) > .es-btn.es-auth-submit {
        margin-left: 19px;
        margin-right: 19px;
    }
    .es-auth-two,.es-auth-choice-grid { grid-template-columns: 1fr; }
    .es-auth-actions { flex-direction: column-reverse; }
    .es-auth-actions .es-btn { width:100%; justify-content:center; }
    .es-join-coach__actions { flex-direction: column-reverse; }
    .es-join-coach__actions .es-join-coach__btn.es-btn,
    a.es-btn.es-join-coach__btn,
    button.es-btn.es-join-coach__btn {
        width: 100%;
        flex: none;
        height: 38px;
        min-height: 38px;
        max-height: 38px;
        padding: 0 16px;
    }
}

@media (max-width: 860px) {
    .es-auth-provider {
        min-height: 44px;
        padding-top: 6px;
        padding-bottom: 6px;
    }
    a.es-btn.es-join-coach__btn,
    button.es-btn.es-join-coach__btn {
        height: 38px;
        min-height: 38px;
        max-height: 38px;
        padding-top: 0;
        padding-bottom: 0;
    }
}
.es-login.es-auth-card.es-legal-document,
.es-auth-card.es-legal-document {
    width: min(100%, 880px);
    max-width: min(100%, 880px);
}
.es-legal-document { line-height: 1.65; margin: 28px 0; }
.es-legal-document h2 { font-size: 17px; margin: 28px 0 8px; }
.es-legal-document h3 { font-size: 14px; margin: 18px 0 6px; color: #3e485a; }
.es-legal-document p,.es-legal-document li { color:#3e485a; font-size:14px; }
.es-legal-document ul { padding-left:22px; }
.es-legal-document hr { border:0; border-top:1px solid #e2e7ef; margin:30px 0; }
.es-legal-document nav { margin: 0 0 8px; font-size: 13px; line-height: 1.6; }
