.auth-viewport {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    display: grid;
    place-items: center;
    background: transparent;
    padding: var(--space-6) var(--space-5);
}

.auth-toggle {
    position: absolute;
    top: var(--space-4);
    right: max(var(--space-5), env(safe-area-inset-right));
}

.login-main {
    width: 100%;
    display: flex;
    justify-content: center;
}

.login-container {
    width: 100%;
    max-width: 26rem;
    padding: var(--space-7);
    background: var(--bg-surface);
    border: var(--border-w) solid var(--border-hairline);
    border-radius: var(--radius-l);
    text-align: left;
    position: relative;
}

.login-container::before {
    content: "LOG IN";
    position: absolute;
    top: -0.65rem;
    left: var(--space-5);
    padding: 0 0.5rem;
    background: linear-gradient(to bottom, var(--bg-canvas) 50%, var(--bg-surface) 50%);
    font-family: var(--font-ui);
    font-size: var(--fs-caption);
    font-weight: 600;
    letter-spacing: var(--tracking-eyebrow);
    color: var(--text-muted);
}

.login-logo {
    height: 1.75rem;
    width: auto;
    margin-bottom: var(--space-6);
    transition: filter var(--t-base) var(--e-standard);
}

[data-theme="dark"] .login-logo {
    filter: brightness(0) invert(1);
}

.login-title {
    font-family: var(--font-display);
    font-size: var(--fs-display-l);
    line-height: var(--lh-display);
    letter-spacing: var(--tracking-display);
    color: var(--text-primary);
    margin-bottom: var(--space-2);
}

.login-subtitle {
    color: var(--text-body);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    margin-bottom: var(--space-5);
}

.google-login-btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    padding: 0.9rem 1.25rem;
    background: var(--ink);
    color: var(--text-inverse);
    border: var(--border-w) solid var(--ink);
    border-radius: var(--radius-pill);
    font-family: var(--font-ui);
    font-size: var(--fs-body);
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: background var(--t-fast) var(--e-standard), transform var(--t-fast) var(--e-standard);
}

.google-login-btn:hover {
    background: var(--navy-darker);
    border-color: var(--navy-darker);
}

.google-login-btn:active {
    transform: translateY(0.5px);
}

.google-login-btn svg {
    width: 1.1rem;
    height: 1.1rem;
}

.login-error {
    margin-top: var(--space-3);
    color: var(--danger);
    font-size: var(--fs-small);
}

.login-info {
    margin-top: var(--space-6);
    padding-top: var(--space-5);
    border-top: var(--border-w) solid var(--border-subtle);
    color: var(--text-muted);
    font-size: var(--fs-small);
    line-height: 1.55;
}

.login-info strong {
    color: var(--text-primary);
    font-weight: 600;
}

.auth-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    text-align: center;
}

.auth-loading .loader-ring {
    width: 1.5rem;
    height: 1.5rem;
    border-width: 2px;
}

.auth-loading-hint {
    font-size: var(--fs-small);
}

.toast-host {
    position: fixed;
    top: calc(var(--topbar-h) + var(--space-4));
    right: max(var(--space-6), env(safe-area-inset-right));
    z-index: var(--z-toast);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-2);
    width: min(24rem, calc(100vw - max(var(--space-6), env(safe-area-inset-left) + env(safe-area-inset-right))));
    pointer-events: none;
}

.confirm-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    margin-top: var(--space-2);
}
