:root {
    --auth-forest: #2f4d41;
    --auth-dark: #21372f;
    --auth-sage: #91a58a;
    --auth-cream: #f7f7ed;
    --auth-line: #dfe8df;
    --auth-muted: #6d7f75;
    --auth-orange: #e9a152;
}

body.auth-page {
    min-height: 100vh;
    background: var(--auth-cream);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.auth-layout {
    display: grid;
    grid-template-columns: minmax(320px, .9fr) minmax(500px, 1.1fr);
    min-height: 100vh;
}

.auth-showcase {
    position: relative;
    display: flex;
    min-height: 100%;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 46px clamp(28px, 5vw, 76px);
    color: #fff;
    background: linear-gradient(150deg, var(--auth-dark), var(--auth-forest));
}

.auth-showcase::before,
.auth-showcase::after {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    content: "";
}

.auth-showcase::before { right: -210px; bottom: -175px; width: 520px; height: 520px; }
.auth-showcase::after { right: -110px; bottom: -70px; width: 300px; height: 300px; border-width: 28px; border-color: rgba(233, 161, 82, .32); }

.auth-showcase > * { position: relative; z-index: 1; }
.auth-logo { display: inline-flex; align-items: center; gap: 12px; width: fit-content; color: #fff; font-size: 22px; font-weight: 900; letter-spacing: -.04em; }
.auth-logo img { width: 42px; height: 42px; object-fit: contain; filter: brightness(0) invert(1); }
.auth-showcase-copy { max-width: 520px; margin: auto 0; padding: 60px 0; }
.auth-showcase-copy .eyebrow { color: #d3e3d4; font-size: 11px; }
.auth-showcase-copy .eyebrow::before { background: var(--auth-orange); }
.auth-showcase-copy h1 { margin: 18px 0 16px; color: #fff; font-size: clamp(38px, 5vw, 66px); line-height: 1.02; letter-spacing: -.06em; }
.auth-showcase-copy p { max-width: 480px; margin: 0; color: #bdd0c0; font-size: 16px; }
.auth-benefits { display: grid; gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
.auth-benefits li { display: flex; align-items: center; gap: 10px; color: #e2eee3; font-size: 14px; }
.auth-benefits li::before { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 50%; color: var(--auth-dark); background: var(--auth-orange); content: "✓"; font-size: 11px; font-weight: 900; }
.auth-showcase-footer { margin: 0; color: #a8bfac; font-size: 12px; }

.auth-panel { display: flex; align-items: center; justify-content: center; padding: 45px 28px; }
.auth-card { width: min(100%, 560px); padding: clamp(26px, 4vw, 45px); border: 1px solid var(--auth-line); border-radius: 24px; background: #fff; box-shadow: 0 24px 65px rgba(33, 55, 47, .11); }
.auth-card.auth-card-wide { width: min(100%, 690px); }
.auth-card-head { margin-bottom: 25px; }
.auth-card-head h2 { margin: 0 0 7px; color: var(--auth-dark); font-size: clamp(28px, 4vw, 40px); line-height: 1.04; letter-spacing: -.05em; }
.auth-card-head p { margin: 0; color: var(--auth-muted); font-size: 14px; }
.auth-progress { display: flex; align-items: center; gap: 9px; margin: 0 0 25px; color: #82958a; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.auth-progress span { padding: 7px 10px; border-radius: 99px; background: #edf3ed; }
.auth-progress span.active { color: #fff; background: var(--auth-forest); }
.auth-progress i { width: 25px; height: 1px; background: var(--auth-line); }
.auth-alert { margin: 0 0 18px; padding: 11px 13px; border: 1px solid #f1c4c4; border-radius: 10px; color: #962f2f; background: #fff1f1; font-size: 13px; }
.auth-alert.success { border-color: #bfe3c8; color: #226a39; background: #eefaf0; }
.auth-form { display: grid; gap: 16px; }
.auth-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.auth-field { display: grid; gap: 7px; }
.auth-field.full { grid-column: 1 / -1; }
.auth-field label { color: var(--auth-dark); font-size: 12px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.auth-field input, .auth-field select, .auth-field textarea { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #d4e1d6; border-radius: 11px; outline: none; color: var(--auth-dark); background: #fbfdfb; font: inherit; }
.auth-field textarea { min-height: 82px; resize: vertical; }
.auth-field input:focus, .auth-field select:focus, .auth-field textarea:focus { border-color: var(--auth-forest); box-shadow: 0 0 0 3px rgba(47, 77, 65, .12); background: #fff; }
.auth-field small { color: #809188; font-size: 11px; }
.auth-password-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.auth-password-row button { min-height: 48px; padding: 0 12px; border: 1px solid #d4e1d6; border-radius: 11px; color: var(--auth-forest); background: #fff; font-weight: 800; cursor: pointer; }
.auth-options { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--auth-muted); font-size: 13px; }
.auth-check { display: inline-flex; align-items: center; gap: 7px; }
.auth-check input { width: 16px; height: 16px; accent-color: var(--auth-forest); }
.auth-link { color: var(--auth-forest); font-weight: 900; }
.auth-submit { width: 100%; min-height: 51px; border: 0; border-radius: 12px; color: #fff; background: var(--auth-forest); box-shadow: 0 11px 24px rgba(47, 77, 65, .2); font-weight: 900; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.auth-submit:hover { transform: translateY(-1px); background: var(--auth-dark); }
.auth-divider { display: flex; align-items: center; gap: 10px; margin: 22px 0 15px; color: #9aa9a0; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.auth-divider::before, .auth-divider::after { height: 1px; flex: 1; background: var(--auth-line); content: ""; }
.auth-footnote { margin: 0; color: var(--auth-muted); font-size: 13px; text-align: center; }
.auth-footnote a { color: var(--auth-forest); font-weight: 900; }
.auth-terms { color: #819087; font-size: 11px; line-height: 1.45; }
.auth-terms a { color: var(--auth-forest); font-weight: 800; }

@media (max-width: 860px) {
    .auth-layout { grid-template-columns: 1fr; }
    .auth-showcase { min-height: auto; padding: 28px 22px; }
    .auth-showcase-copy { margin: 0; padding: 50px 0 32px; }
    .auth-showcase-copy h1 { font-size: clamp(38px, 10vw, 58px); }
    .auth-showcase-footer { display: none; }
    .auth-panel { align-items: flex-start; padding: 25px 15px 45px; }
}

@media (max-width: 520px) {
    .auth-card { padding: 23px 18px; border-radius: 18px; }
    .auth-form-grid { grid-template-columns: 1fr; gap: 16px; }
    .auth-field.full { grid-column: auto; }
    .auth-progress { flex-wrap: wrap; }
    .auth-progress i { display: none; }
    .auth-options { align-items: flex-start; flex-direction: column; }
}

/* Login-page refinements */
.auth-card-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.auth-kicker {
    color: var(--auth-forest);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
}

.auth-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #7b8e83;
    font-size: 11px;
    font-weight: 700;
}

.auth-status i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #57a66d;
    box-shadow: 0 0 0 4px #e9f6eb;
}

.auth-field label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.auth-field label small {
    color: #9aaa9f;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: none;
}

.auth-input-wrap {
    position: relative;
}

.auth-input-icon {
    position: absolute;
    top: 50%;
    left: 14px;
    display: grid;
    width: 18px;
    height: 18px;
    place-items: center;
    color: var(--auth-sage);
    pointer-events: none;
    transform: translateY(-50%);
}

.auth-input-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.auth-input-control {
    padding-left: 43px !important;
}

.auth-input-control::placeholder {
    color: #a3b0a8;
}

.auth-password-row {
    grid-template-columns: minmax(0, 1fr) auto;
}

.auth-password-toggle {
    display: inline-flex;
    min-width: 78px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 48px;
    padding: 0 10px;
    border: 1px solid #d4e1d6;
    border-radius: 11px;
    color: var(--auth-forest);
    background: #fff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease;
}

.auth-password-toggle:hover,
.auth-password-toggle:focus-visible {
    border-color: var(--auth-sage);
    background: #f4f8f3;
    outline: none;
}

.auth-password-toggle > span:first-child {
    color: var(--auth-sage);
    font-size: 13px;
}

.auth-field-status {
    min-height: 16px;
    color: #b06b2d !important;
    font-size: 11px !important;
    font-weight: 700;
}

.auth-submit {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
}

.auth-submit:focus-visible,
.auth-link:focus-visible,
.auth-logo:focus-visible {
    outline: 3px solid rgba(233, 161, 82, .45);
    outline-offset: 3px;
}

.auth-submit-arrow {
    font-size: 18px;
    line-height: 1;
}

.auth-submit.is-loading {
    cursor: wait;
    opacity: .82;
}

.auth-submit.is-loading .auth-submit-arrow {
    display: none;
}

.auth-spinner {
    display: none;
    width: 17px;
    height: 17px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: auth-spin .7s linear infinite;
}

.auth-submit.is-loading .auth-spinner { display: block; }

.auth-card-caption {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 18px 0 0;
    color: #94a39a;
    font-size: 11px;
    text-align: center;
}

.auth-card-caption span { font-size: 12px; }

@keyframes auth-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 520px) {
    .auth-card-topline { align-items: flex-start; flex-direction: column; gap: 8px; }
    .auth-password-row { grid-template-columns: 1fr; }
    .auth-password-toggle { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .auth-submit,
    .auth-password-toggle { transition: none; }
    .auth-spinner { animation: none; }
}

/* Orange and white login polish */
body.auth-login-page {
    background: #fff;
}

.auth-login-page .auth-showcase {
    background: linear-gradient(150deg, #21372f 0%, #2f4d41 66%, #3f6250 100%);
}

.auth-login-page .auth-logo {
    width: min(205px, 100%);
}

.auth-login-page .auth-logo img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    filter: none;
}

.auth-login-page .auth-logo span {
    display: none;
}

.auth-login-page .auth-panel {
    background: linear-gradient(145deg, #fff 0%, #fffaf3 100%);
}

.auth-login-page .auth-card {
    border-color: #f1e2cf;
    background: #fff;
    box-shadow: 0 25px 70px rgba(96, 67, 31, .13);
}

.auth-login-page .auth-kicker {
    color: #c97821;
}

.auth-login-page .auth-status i {
    background: var(--auth-orange);
    box-shadow: 0 0 0 4px #fff0dd;
}

.auth-login-page .auth-field input,
.auth-login-page .auth-field select,
.auth-login-page .auth-field textarea {
    border-color: #eadfce;
    background: #fff;
}

.auth-login-page .auth-field input:hover,
.auth-login-page .auth-field select:hover,
.auth-login-page .auth-field textarea:hover {
    border-color: #e3b273;
}

.auth-login-page .auth-field input:focus,
.auth-login-page .auth-field select:focus,
.auth-login-page .auth-field textarea:focus {
    border-color: var(--auth-orange);
    box-shadow: 0 0 0 4px rgba(233, 161, 82, .17);
}

.auth-login-page .auth-input-icon,
.auth-login-page .auth-password-toggle > span:first-child {
    color: #d78a36;
}

.auth-login-page .auth-password-toggle {
    border-color: #eadfce;
    color: #b86d20;
    background: #fff;
}

.auth-login-page .auth-password-toggle:hover,
.auth-login-page .auth-password-toggle:focus-visible {
    border-color: var(--auth-orange);
    color: #9a5b1e;
    background: #fff8ee;
}

.auth-login-page .auth-check input {
    accent-color: var(--auth-orange);
}

.auth-login-page .auth-link,
.auth-login-page .auth-footnote a {
    color: #c97821;
}

.auth-login-page .auth-link:hover,
.auth-login-page .auth-footnote a:hover {
    color: #9c5b1e;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.auth-login-page .auth-submit {
    color: #fff;
    background: linear-gradient(135deg, #e9a152, #d9832f);
    box-shadow: 0 12px 25px rgba(217, 131, 47, .27);
}

.auth-login-page .auth-submit:hover {
    background: linear-gradient(135deg, #d9832f, #bc6c1f);
    box-shadow: 0 15px 30px rgba(217, 131, 47, .32);
}

.auth-login-page .auth-submit:focus-visible,
.auth-login-page .auth-link:focus-visible,
.auth-login-page .auth-logo:focus-visible {
    outline-color: rgba(233, 161, 82, .65);
}

.auth-login-page .auth-divider::before,
.auth-login-page .auth-divider::after {
    background: #f0e2d0;
}

.auth-login-page .auth-divider span {
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid #f0dfc5;
    border-radius: 50%;
    color: #c97821;
    background: #fffaf3;
    font-size: 10px;
    font-weight: 900;
}

.auth-login-page .auth-card-caption {
    color: #9b8c7b;
}

@media (max-width: 520px) {
    .auth-login-page .auth-logo {
        width: 175px;
    }

    .auth-login-page .auth-card {
        box-shadow: 0 15px 38px rgba(96, 67, 31, .1);
    }
}

/* Centered orange-and-white login card */
.auth-login-page {
    color: #1f2d2a;
    background: #f7f8fb;
}

.auth-login-page .login-screen {
    position: relative;
    display: grid;
    min-height: 100vh;
    place-items: center;
    overflow: hidden;
    padding: 34px 18px 48px;
    background:
        radial-gradient(circle at 14% 12%, rgba(233, 161, 82, .16), transparent 28%),
        linear-gradient(180deg, #fff9f0 0%, #f7f8fb 62%, #f3f5f7 100%);
}

.auth-login-page .login-screen::before,
.auth-login-page .login-screen::after {
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.auth-login-page .login-screen::before {
    top: -180px;
    right: -130px;
    width: 390px;
    height: 390px;
    border: 65px solid rgba(233, 161, 82, .08);
}

.auth-login-page .login-screen::after {
    bottom: -170px;
    left: -150px;
    width: 340px;
    height: 340px;
    background: rgba(47, 77, 65, .045);
}

.auth-login-page .login-card {
    position: relative;
    z-index: 1;
    width: min(100%, 500px);
    overflow: hidden;
    border: 1px solid #eee1d3;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 28px 70px rgba(55, 48, 39, .18);
}

.auth-login-page .login-card-header {
    padding: 36px 26px 32px;
    color: #fff;
    background: linear-gradient(145deg, #c86f25 0%, #e9a152 100%);
    text-align: center;
}

.auth-login-page .login-brand-mark {
    display: grid;
    width: 68px;
    height: 68px;
    margin: 0 auto 17px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 17px;
    color: #fff;
    background: rgba(80, 40, 12, .2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2);
}

.auth-login-page .login-brand-mark svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.auth-login-page .login-brand-name {
    margin: 0;
    color: #fff;
    font-size: clamp(28px, 5vw, 34px);
    font-weight: 900;
    letter-spacing: -.055em;
    line-height: 1.05;
}

.auth-login-page .login-card-header h1 {
    margin: 8px 0 0;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .1em;
    line-height: 1.3;
    text-transform: uppercase;
}

.auth-login-page .login-header-subtitle {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, .82);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .13em;
}

.auth-login-page .login-card-body {
    padding: 30px 32px 24px;
    background: #fff;
}

.auth-login-page .login-form {
    gap: 17px;
}

.auth-login-page .login-form .auth-field {
    gap: 8px;
}

.auth-login-page .login-form .auth-field label {
    color: #263633;
    font-size: 12.5px;
    font-weight: 900;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.auth-login-page .login-form .auth-input-control {
    min-height: 50px;
    padding-right: 45px !important;
    border-color: #dce3ec;
    border-radius: 13px;
    color: #263633;
    background: #f9fafc;
    font-size: 14px;
}

.auth-login-page .login-form .auth-input-control::placeholder {
    color: #9aa9be;
}

.auth-login-page .login-form .auth-input-control:hover {
    border-color: #e5b16f;
    background: #fff;
}

.auth-login-page .login-form .auth-input-control:focus {
    border-color: #e58b32;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(229, 139, 50, .16);
}

.auth-login-page .login-form .auth-input-icon {
    color: #ee9841;
}

.auth-login-page .login-form .auth-password-row {
    position: relative;
    display: block;
}

.auth-login-page .login-form .auth-password-toggle {
    position: absolute;
    top: 50%;
    right: 11px;
    display: grid;
    width: 28px;
    min-width: 28px;
    height: 34px;
    min-height: 34px;
    padding: 0;
    place-items: center;
    border: 0;
    color: #e58b32;
    background: transparent;
    transform: translateY(-50%);
}

.auth-login-page .login-form .auth-password-toggle:hover,
.auth-login-page .login-form .auth-password-toggle:focus-visible {
    border: 0;
    color: #bd681f;
    background: #fff4e5;
    outline: none;
}

.auth-login-page .login-form .auth-toggle-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.auth-login-page .auth-eye-icon {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.auth-login-page .auth-field-status {
    min-height: 14px;
    color: #b96c25 !important;
    font-size: 11px !important;
    font-weight: 700;
}

.auth-login-page .auth-options {
    margin-top: 1px;
    color: #4f626d;
    font-size: 13px;
}

.auth-login-page .auth-check {
    white-space: nowrap;
}

.auth-login-page .auth-check input {
    width: 16px;
    height: 16px;
    accent-color: #e58b32;
}

.auth-login-page .auth-link,
.auth-login-page .auth-footnote a {
    color: #d87925;
}

.auth-login-page .auth-link:hover,
.auth-login-page .auth-footnote a:hover {
    color: #aa5c1b;
}

.auth-login-page .login-submit {
    min-height: 50px;
    border-radius: 13px;
    background: linear-gradient(135deg, #e58b32, #d87925);
    box-shadow: 0 10px 22px rgba(216, 121, 37, .24);
    font-size: 15px;
}

.auth-login-page .login-submit:hover {
    background: linear-gradient(135deg, #d87925, #b85d19);
    box-shadow: 0 13px 26px rgba(216, 121, 37, .3);
}

.auth-login-page .auth-submit-arrow-left {
    font-size: 20px;
    line-height: 1;
}

.auth-login-page .auth-divider {
    margin: 21px 0 15px;
}

.auth-login-page .auth-divider span {
    display: none;
}

.auth-login-page .auth-footnote {
    color: #71808d;
    font-size: 13px;
}

.auth-login-page .auth-card-caption {
    margin-top: 16px;
    color: #9ca7b1;
    font-size: 11px;
}

@media (max-width: 520px) {
    .auth-login-page .login-screen {
        align-items: start;
        padding: 22px 13px 32px;
    }

    .auth-login-page .login-card {
        border-radius: 21px;
    }

    .auth-login-page .login-card-header {
        padding: 27px 20px 25px;
    }

    .auth-login-page .login-card-body {
        padding: 25px 19px 21px;
    }

    .auth-login-page .auth-options {
        align-items: center;
        flex-direction: row;
        gap: 7px;
    }

    .auth-login-page .auth-check {
        white-space: normal;
    }
}

@media (prefers-reduced-motion: reduce) {
    .auth-login-page .login-submit,
    .auth-login-page .auth-password-toggle {
        transition: none;
    }
}

/* Complete responsive and UI polish */
:root {
    --auth-orange: #e58b32;
    --auth-orange-dark: #b85d19;
    --auth-orange-soft: #fff4e5;
    --auth-ink: #263633;
    --auth-muted: #71808d;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    min-width: 320px;
    background: #f6f7fa;
}

body.auth-page {
    min-width: 320px;
    min-height: 100vh;
    min-height: 100svh;
    margin: 0;
    overflow-x: hidden;
}

button,
input,
select,
textarea {
    min-width: 0;
}

a,
button,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent;
}

.auth-layout,
.auth-showcase,
.auth-panel,
.auth-card,
.auth-form-grid,
.auth-field {
    min-width: 0;
}

.auth-layout {
    min-height: 100vh;
    min-height: 100svh;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
}

.auth-showcase {
    min-height: 100vh;
    min-height: 100svh;
}

.auth-showcase-copy {
    min-width: 0;
}

.auth-showcase-copy h1,
.auth-card-head h2,
.login-brand-name {
    overflow-wrap: anywhere;
}

.auth-panel {
    min-width: 0;
    background: linear-gradient(145deg, #fff 0%, #fffaf3 100%);
}

.auth-card-wide {
    max-width: 720px;
}

.auth-form-grid > * {
    min-width: 0;
}

.auth-field input,
.auth-field select,
.auth-field textarea {
    min-width: 0;
    max-width: 100%;
    color: var(--auth-ink);
}

.auth-field input::placeholder,
.auth-field textarea::placeholder {
    color: #9aa9be;
    opacity: 1;
}

.auth-field input:focus,
.auth-field select:focus,
.auth-field textarea:focus,
.auth-password-toggle:focus-visible,
.auth-submit:focus-visible,
.auth-link:focus-visible,
.auth-logo:focus-visible,
.login-brand-mark:focus-visible {
    outline: none;
    border-color: var(--auth-orange);
    box-shadow: 0 0 0 4px rgba(229, 139, 50, .16);
}

.auth-logo:focus-visible,
.auth-link:focus-visible,
.login-brand-mark:focus-visible {
    outline: 3px solid rgba(229, 139, 50, .55);
    outline-offset: 3px;
    box-shadow: none;
}

.auth-submit,
.auth-password-toggle,
.login-submit {
    touch-action: manipulation;
}

.auth-submit:disabled,
.login-submit:disabled {
    cursor: wait;
    opacity: .78;
}

.auth-page:not(.auth-login-page) .auth-progress span.active {
    color: #fff;
    background: var(--auth-orange);
}

.auth-page:not(.auth-login-page) .auth-submit {
    background: linear-gradient(135deg, var(--auth-orange), #d87925);
    box-shadow: 0 11px 24px rgba(216, 121, 37, .22);
}

.auth-page:not(.auth-login-page) .auth-submit:hover {
    background: linear-gradient(135deg, #d87925, var(--auth-orange-dark));
}

.auth-page:not(.auth-login-page) .auth-link,
.auth-page:not(.auth-login-page) .auth-footnote a {
    color: #c97821;
}

.auth-login-page .login-screen {
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    padding: clamp(24px, 5vw, 60px) 16px;
}

.auth-login-page .login-card {
    width: min(100%, 480px);
    max-width: 480px;
    border-radius: 24px;
}

.auth-login-page .login-card-header {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.auth-login-page .login-card-header::after {
    position: absolute;
    z-index: 0;
    right: -72px;
    bottom: -104px;
    width: 230px;
    height: 230px;
    border: 28px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.auth-login-page .login-card-header > * {
    position: relative;
    z-index: 1;
}

.auth-login-page .login-brand-mark {
    width: 64px;
    height: 64px;
    margin-bottom: 15px;
    border-radius: 16px;
}

.auth-login-page .login-brand-name {
    font-size: clamp(26px, 5vw, 34px);
}

.auth-login-page .login-card-body {
    padding: clamp(24px, 5vw, 34px);
}

.auth-login-page .auth-alert {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    line-height: 1.45;
}

.auth-alert-icon {
    display: inline-grid;
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    place-items: center;
    border-radius: 50%;
    color: currentColor;
    background: rgba(0, 0, 0, .06);
    font-size: 11px;
    font-weight: 900;
}

.auth-login-page .auth-options {
    flex-wrap: wrap;
}

.auth-login-page .auth-check {
    min-width: 0;
}

.auth-login-page .auth-link {
    min-width: 0;
    text-align: right;
    overflow-wrap: anywhere;
}

.auth-login-page .login-submit {
    min-height: 54px;
    font-size: 15px;
    letter-spacing: .01em;
}

@media (max-width: 860px) {
    .auth-showcase {
        min-height: auto;
    }

    .auth-showcase-copy h1 {
        max-width: 15ch;
    }
}

@media (max-width: 640px) {
    .auth-layout {
        display: block;
    }

    .auth-login-page .login-screen {
        align-items: flex-start;
        padding: 18px 10px 30px;
    }

    .auth-login-page .login-card {
        width: 100%;
        border-radius: 21px;
    }

    .auth-login-page .login-card-header {
        padding: 28px 20px 26px;
    }

    .auth-login-page .login-card-body {
        padding: 24px clamp(16px, 6vw, 26px) 22px;
    }

    .auth-login-page .auth-options {
        align-items: flex-start;
        flex-direction: column;
        gap: 9px;
    }

    .auth-login-page .auth-link {
        text-align: left;
    }

    .auth-showcase {
        padding: 24px 18px;
    }

    .auth-showcase-copy {
        padding: 38px 0 26px;
    }

    .auth-showcase-copy h1 {
        max-width: none;
        font-size: clamp(34px, 10vw, 52px);
    }

    .auth-panel {
        align-items: flex-start;
        padding: 18px 10px 34px;
    }

    .auth-card {
        width: 100%;
        padding: 22px 16px;
        border-radius: 20px;
    }

    .auth-card-wide {
        width: 100%;
    }

    .auth-progress {
        align-items: flex-start;
        flex-wrap: wrap;
    }
}

@media (max-width: 380px) {
    .auth-login-page .login-card-header {
        padding-right: 16px;
        padding-left: 16px;
    }

    .auth-login-page .login-card-body {
        padding-right: 14px;
        padding-left: 14px;
    }

    .auth-login-page .login-form .auth-field label {
        font-size: 11px;
    }

    .auth-login-page .login-form .auth-input-control {
        font-size: 13px;
    }

    .auth-login-page .auth-card-caption {
        font-size: 10px;
    }
}
