/* =============================================================================
   LAMHA — MODERN AUTH SHELL
   Shared presentation for login and registration only.
   Uses the central design tokens and keeps auth behavior untouched.
   ============================================================================= */

.auth-modern-page {
    min-height: 100svh;
    margin: 0;
    background: var(--bg-primary);
    color: var(--text-primary);
    font-family: var(--font-family-base);
    font-feature-settings: var(--font-feature-settings);
    overflow-x: hidden;
}

.auth-modern-page *,
.auth-modern-page *::before,
.auth-modern-page *::after {
    box-sizing: border-box;
}

.auth-modern {
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    overflow: hidden;
}

.auth-modern::before,
.auth-modern::after {
    content: '';
    position: fixed;
    z-index: -2;
    width: min(46vw, 680px);
    aspect-ratio: 1;
    border-radius: var(--radius-full);
    pointer-events: none;
    filter: blur(18px);
    opacity: .55;
}

.auth-modern::before {
    top: -34%;
    right: -12%;
    background: radial-gradient(circle, rgba(101, 123, 137, .20) 0%, rgba(101, 123, 137, 0) 68%);
}

.auth-modern::after {
    bottom: -40%;
    left: -14%;
    background: radial-gradient(circle, rgba(130, 150, 161, .12) 0%, rgba(130, 150, 161, 0) 70%);
}

.auth-modern__topbar {
    width: min(100% - 48px, 1320px);
    height: 84px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    animation: auth-modern-topbar .55s var(--ease-out) both;
}

.auth-modern__brand {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--text-primary);
    text-decoration: none;
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
    letter-spacing: -.02em;
}

.auth-modern__brand-mark {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .025);
}

.auth-modern__brand-mark img {
    width: 29px;
    height: 29px;
    object-fit: contain;
}

.auth-modern__switch {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 42px;
    padding-inline: var(--space-4);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-full);
    background: rgba(15, 19, 22, .62);
    color: var(--text-muted);
    text-decoration: none;
    font-size: var(--text-sm);
    backdrop-filter: blur(14px);
    transition: transform var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);
}

.auth-modern__switch strong {
    color: var(--text-primary);
    font-weight: var(--font-medium);
}

.auth-modern__switch :is(svg, i) {
    width: 15px;
    height: 15px;
}

.auth-modern__switch:hover {
    transform: translateY(-1px);
    border-color: var(--border-focus);
    background: var(--bg-secondary);
    color: var(--text-secondary);
}

.auth-modern__main {
    width: min(100% - 40px, 720px);
    min-height: calc(100svh - 84px);
    margin-inline: auto;
    display: grid;
    place-items: center;
    padding: var(--space-10) 0 var(--space-20);
}

.auth-modern__content {
    width: min(100%, 610px);
}

.auth-modern-page--register .auth-modern__content {
    width: min(100%, 660px);
}

.auth-modern__hero {
    margin-bottom: var(--space-8);
    text-align: center;
}

.auth-modern__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 34px;
    margin-bottom: var(--space-5);
    padding: 0 var(--space-3);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-full);
    background: rgba(15, 19, 22, .58);
    color: var(--text-secondary);
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    backdrop-filter: blur(12px);
    animation: auth-modern-enter .5s .06s var(--ease-out) both;
}

.auth-modern__eyebrow::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: var(--radius-full);
    background: var(--accent-secondary);
    box-shadow: 0 0 0 4px var(--accent-secondary-muted);
}

.auth-modern__title {
    max-width: 760px;
    margin: 0 auto;
    color: var(--text-primary);
    font-size: clamp(34px, 4.2vw, 50px);
    font-weight: var(--font-semibold);
    line-height: 1.12;
    letter-spacing: -.04em;
    animation: auth-modern-enter .58s .12s var(--ease-out) both;
}

.auth-modern-page--register .auth-modern__title {
    font-size: clamp(32px, 4vw, 46px);
}

.auth-modern__title span {
    color: var(--text-secondary);
}

.auth-modern__subtitle {
    max-width: 520px;
    margin: var(--space-4) auto 0;
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: var(--line-height-relaxed);
    animation: auth-modern-enter .58s .18s var(--ease-out) both;
}

.auth-modern__surface {
    animation: auth-modern-enter .62s .24s var(--ease-out) both;
}

.auth-modern-page .alert {
    margin-bottom: var(--space-4);
    border-radius: var(--radius-lg);
}

.auth-modern-page .social-auth {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.auth-modern-page .social-auth__button {
    min-height: 50px;
    border-color: var(--border-subtle);
    border-radius: var(--radius-full);
    background: rgba(15, 19, 22, .70);
    backdrop-filter: blur(12px);
}

.auth-modern-page .social-auth__button:only-of-type {
    grid-column: 1 / -1;
}

.auth-modern-page .social-auth__button:hover {
    transform: translateY(-1px);
    border-color: var(--border-focus);
    background: var(--bg-secondary);
}

.auth-modern-page .social-auth__mark {
    width: 24px;
    height: 24px;
    border-color: var(--border-subtle);
    background: var(--bg-primary);
}

.auth-modern-page .social-auth__divider {
    grid-column: 1 / -1;
    margin-top: var(--space-1);
}

.auth-modern-page .auth-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.auth-modern-page .field {
    margin: 0;
}

.auth-modern-page .field-label {
    margin-bottom: var(--space-2);
    color: var(--text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
}

.auth-modern-page .field-input {
    width: 100%;
    height: 54px;
    padding: 0 var(--space-5);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-full);
    background: rgba(15, 19, 22, .64);
    color: var(--text-primary);
    font-family: inherit;
    font-size: var(--text-base);
    outline: none;
    backdrop-filter: blur(12px);
    transition: border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
}

.auth-modern-page .field-input::placeholder {
    color: var(--text-disabled);
}

.auth-modern-page .field-input:hover {
    border-color: var(--border-default);
    background: rgba(21, 26, 30, .82);
}

.auth-modern-page .field-input:focus {
    border-color: rgba(165, 181, 192, .44);
    background: var(--bg-secondary);
    box-shadow: 0 0 0 4px var(--accent-muted);
}

.auth-modern-page .field-icon-wrap .field-input {
    padding-inline-start: var(--space-5);
    padding-inline-end: 52px;
}

.auth-modern-page .field-toggle {
    inset-inline-start: auto;
    inset-inline-end: 15px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: var(--radius-full);
    color: var(--text-muted);
    transition: color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);
}

.auth-modern-page .field-toggle:hover {
    background: var(--accent-secondary-muted);
    color: var(--text-primary);
}

.auth-modern-page .field-toggle :is(svg, i) {
    width: 17px;
    height: 17px;
}

.auth-modern__two-col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
}

.auth-modern-page .form-options {
    margin: var(--space-1) 0 var(--space-2);
    font-size: var(--text-sm);
}

.auth-modern-page .remember-label,
.auth-modern-page .forgot-link,
.auth-modern-page .terms-label {
    font-size: var(--text-sm);
}

.auth-modern-page .forgot-link,
.auth-modern-page .terms-label a,
.auth-modern__secondary-link {
    color: var(--text-secondary);
    text-decoration: none;
    transition: color var(--duration-fast) var(--ease-out);
}

.auth-modern-page .forgot-link:hover,
.auth-modern-page .terms-label a:hover,
.auth-modern__secondary-link:hover {
    color: var(--text-primary);
}

.auth-modern-page .btn.auth-modern__primary,
.auth-modern-page .auth-flow-nav .btn-primary {
    min-height: 54px;
    border: 0;
    border-radius: var(--radius-full);
    background: var(--gradient-brand);
    color: var(--text-inverse);
    font-family: inherit;
    font-size: var(--text-base);
    font-weight: var(--font-semibold);
    box-shadow: var(--shadow-accent);
    transition: transform var(--duration-fast) var(--ease-out), filter var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
}

.auth-modern-page .btn.auth-modern__primary:hover,
.auth-modern-page .auth-flow-nav .btn-primary:hover {
    transform: translateY(-1px);
    filter: brightness(1.035);
    box-shadow: 0 10px 28px rgba(101, 123, 137, .22);
}

.auth-modern-page .btn.auth-modern__primary:active,
.auth-modern-page .auth-flow-nav .btn-primary:active {
    transform: translateY(0) scale(.995);
}

.auth-modern-page .btn:focus-visible,
.auth-modern__switch:focus-visible,
.auth-modern__brand:focus-visible,
.auth-modern-page .social-auth__button:focus-visible {
    outline: 2px solid var(--accent-hover);
    outline-offset: 3px;
}

.auth-modern__footnote {
    margin-top: var(--space-5);
    color: var(--text-muted);
    font-size: var(--text-sm);
    text-align: center;
}

/* Registration ------------------------------------------------------------ */
.auth-modern-page .auth-flow-progress {
    position: relative;
    width: min(100%, 420px);
    margin: 0 auto var(--space-6);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
}

.auth-modern-page .auth-flow-progress::before {
    content: '';
    position: absolute;
    top: 13px;
    right: calc(25% + 12px);
    left: calc(25% + 12px);
    height: 1px;
    background: var(--border-subtle);
}

.auth-modern-page .auth-flow-progress__item {
    position: relative;
    z-index: 1;
    flex: 1;
    justify-content: center;
    color: var(--text-muted);
    font-size: var(--text-xs);
}

.auth-modern-page .auth-flow-progress__label {
    display: inline;
}

.auth-modern-page .auth-flow-progress__dot {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
    background: var(--bg-primary);
    border-color: var(--border-default);
}

.auth-modern-page .auth-flow-progress__item.is-active .auth-flow-progress__dot {
    border-color: var(--accent-secondary);
    background: var(--bg-secondary);
    box-shadow: 0 0 0 4px var(--accent-secondary-muted);
}

.auth-modern-page .auth-flow-progress__item.is-done .auth-flow-progress__dot {
    border-color: var(--accent-secondary);
    background: var(--accent-muted);
    color: var(--text-primary);
}

.auth-modern-page .auth-flow-step.is-active {
    animation: auth-modern-step .36s var(--ease-out) both;
}

.auth-modern-page .field-feedback {
    min-height: 16px;
    margin-top: var(--space-1);
    font-size: 11px;
}

.auth-modern-page .password-meter {
    margin-top: var(--space-2);
}

.auth-modern-page .auth-flow-nav {
    margin-top: var(--space-2);
}

.auth-modern-page .auth-flow-back {
    width: 54px;
    height: 54px;
    flex-basis: 54px;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-full);
    background: var(--bg-secondary);
    color: var(--text-secondary);
}

.auth-modern-page .terms-label {
    margin: var(--space-2) 0 var(--space-3);
    color: var(--text-muted);
}

.auth-modern-page .username-status {
    inset-inline-start: auto;
    inset-inline-end: var(--space-4);
}

.auth-modern-page .username-wrap .field-input {
    padding-inline-end: 48px;
}

@keyframes auth-modern-enter {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes auth-modern-topbar {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes auth-modern-step {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 760px) {
    .auth-modern__topbar {
        width: min(100% - 32px, 1320px);
        height: 72px;
    }

    .auth-modern__brand {
        font-size: var(--text-base);
    }

    .auth-modern__brand-mark {
        width: 34px;
        height: 34px;
    }

    .auth-modern__brand-mark img {
        width: 26px;
        height: 26px;
    }

    .auth-modern__switch {
        min-height: 38px;
        padding-inline: var(--space-3);
    }

    .auth-modern__switch > span:first-child {
        display: none;
    }

    .auth-modern__main {
        width: min(100% - 32px, 720px);
        min-height: calc(100svh - 72px);
        padding: var(--space-8) 0 var(--space-12);
    }

    .auth-modern__hero {
        margin-bottom: var(--space-6);
    }

    .auth-modern__eyebrow {
        margin-bottom: var(--space-4);
    }

    .auth-modern__title,
    .auth-modern-page--register .auth-modern__title {
        font-size: clamp(30px, 8.5vw, 40px);
        letter-spacing: -.035em;
    }

    .auth-modern__subtitle {
        font-size: var(--text-sm);
    }
}

@media (max-width: 560px) {
    .auth-modern-page .social-auth {
        grid-template-columns: 1fr;
    }

    .auth-modern-page .social-auth__divider,
    .auth-modern-page .social-auth__button:only-of-type {
        grid-column: auto;
    }

    .auth-modern__two-col {
        grid-template-columns: 1fr;
    }

    .auth-modern-page .field-input {
        height: 52px;
        padding-inline: var(--space-4);
    }

    .auth-modern-page .field-icon-wrap .field-input {
        padding-inline-end: 50px;
    }
}

@media (max-width: 420px) {
    .auth-modern__topbar {
        width: calc(100% - 24px);
    }

    .auth-modern__main {
        width: calc(100% - 24px);
    }

    .auth-modern__switch {
        font-size: var(--text-xs);
    }

    .auth-modern__hero {
        text-align: right;
    }

    .auth-modern__subtitle {
        margin-inline: 0;
    }

    .auth-modern__eyebrow {
        margin-inline-start: auto;
    }

    .auth-modern-page .auth-flow-progress {
        justify-content: space-between;
    }

    .auth-modern-page .auth-flow-progress__item {
        justify-content: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .auth-modern__topbar,
    .auth-modern__eyebrow,
    .auth-modern__title,
    .auth-modern__subtitle,
    .auth-modern__surface,
    .auth-modern-page .auth-flow-step.is-active {
        animation: none;
    }

    .auth-modern-page *,
    .auth-modern-page *::before,
    .auth-modern-page *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
