.auth-page {
	min-height: 100vh;
	display: grid;
	place-items: center;
	padding: 32px 20px;
	background:
		radial-gradient(900px 500px at 8% 10%, color-mix(in srgb, var(--primary-500) 22%, transparent), transparent 70%),
		radial-gradient(750px 450px at 92% 80%, color-mix(in srgb, var(--surface-4) 70%, transparent), transparent 70%),
		var(--surface-1);
}

.auth-shell {
	width: min(460px, 100%);
}

.auth-title {
	margin: 0 0 10px;
	font-size: clamp(28px, 4vw, 36px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--text-primary);
	text-align: center;
}


.auth-card {
	background: var(--surface-2);
	border: 1px solid var(--divider);
	border-radius: 16px;
	padding: 28px;
	box-shadow: var(--shadow-sm);
}

.auth-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.auth-form .form-label {
	margin-top: 2px;
}

.auth-submit {
	margin-top: 6px;
	width: 100%;
	height: 40px;
	font-weight: 600;
}

.auth-hint {
	margin: 2px 0 0;
	font-size: 12px;
	color: var(--text-muted);
}

.auth-message {
	margin: 4px 0 0;
	padding: 10px 12px;
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	font-size: 13px;
	line-height: 1.4;
}

.auth-message.is-success {
	color: var(--secondary-500);
	background: color-mix(in srgb, var(--secondary-500) 13%, transparent);
	border-color: color-mix(in srgb, var(--secondary-500) 24%, transparent);
}

.auth-message.is-error {
	color: var(--danger-500);
	background: color-mix(in srgb, var(--danger-500) 13%, transparent);
	border-color: color-mix(in srgb, var(--danger-500) 24%, transparent);
}
.auth-message.is-neutral {
color: var(--primary-500);
    background: color-mix(in srgb, var(--primary-500) 10%, transparent);
    border-color: color-mix(in srgb, var(--primary-500) 20%, transparent);
    animation: auth-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes auth-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

@media (max-width: 860px) {
	.auth-card {
		padding: 22px;
	}
}

/* ── Inline link inside auth forms ── */
.auth-link {
	color: var(--primary-500);
	text-decoration: none;
	font-weight: 500;
	transition: opacity 0.15s ease;
}
.auth-link:hover {
	opacity: 0.75;
}

/* ── Pending-approval & Invalid-tenant shared card enhancements ── */
.auth-pending-card,
.auth-invalid-tenant-card {
	text-align: center;
}

.auth-pending-icon,
.auth-invalid-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 68px;
	height: 68px;
	margin: 0 auto;
	border-radius: 50%;
}

.auth-pending-icon {
	color: var(--primary-500);
	background: color-mix(in srgb, var(--primary-500) 13%, transparent);
}

.auth-invalid-icon {
	color: var(--danger-500);
	background: color-mix(in srgb, var(--danger-500) 13%, transparent);
}

.auth-pending-text {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--text-secondary);
}

 .password-group {
        display: flex;
        flex-direction: column;
        max-height: 0;
        gap: 14px;
        opacity: 0;
        overflow: hidden;
        margin-top: -14px;
        transition: max-height 0.35s ease, opacity 0.35s ease, margin-top 0.35s ease;
    }

    .password-group.is-visible {
        max-height: 100px;
        opacity: 1;
        margin-top: 0;
    }

    .mode-toggle {
        background: transparent;
        border: none;
        color: var(--text-muted);
        font-size: 13px;
        font-weight: 500;
        cursor: pointer;
        padding: 8px;
        margin: 4px auto 0;
        display: flex;
        justify-content: center;
        width: 100%;
        transition: color 0.2s ease;
    }

    .mode-toggle:hover {
        color: var(--text-primary);
    }

    .auth-submit-icon {
        margin-right: 8px;
        vertical-align: middle;
    }
