/* Public forms: login, registration and future account recovery. */
.aic-auth-page {
	margin: 0;
	min-height: 100vh;
	min-height: 100svh;
	font-family: var(--aic-font-family);
	color: var(--aic-text);
	background: var(--aic-surface-soft);
}

.aic-auth-surface {
	position: relative;
	min-width: 0;
	padding: var(--aic-space-5);
	border: 0;
	border-radius: var(--aic-radius-lg);
	background: var(--aic-surface);
	box-shadow: none;
}

.aic-auth-header {
	margin-bottom: var(--aic-space-6);
}

.aic-auth-title {
	margin: 0;
	color: var(--aic-text-strong);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.aic-auth-description {
	margin: var(--aic-space-2) 0 0;
	color: var(--aic-text-muted);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;
}

.aic-auth-form {
	--aic-text-control-height: var(--aic-control-lg);
	--aic-text-control-font-size: 16px;
	--aic-button-height: var(--aic-control-lg);
	display: grid;
	gap: var(--aic-space-5);
	margin: 0;
}

.aic-auth-form .aic-field-group {
	margin: 0;
}

.aic-auth-form .aic-label {
	color: var(--aic-text);
	font-weight: 500;
}

.aic-auth-form .aic-btn {
	max-width: 100%;
	height: auto;
	min-height: var(--aic-button-height);
	padding-block: var(--aic-space-2);
	white-space: normal;
	overflow-wrap: anywhere;
	line-height: 1.4;
}

.aic-auth-input {
	position: relative;
	min-width: 0;
}

.aic-auth-input .aic-field {
	padding-inline-start: var(--aic-space-10);
}

.aic-auth-input:has(.aic-auth-input__action) .aic-field {
	padding-inline-end: var(--aic-space-10);
}

.aic-auth-input__icon {
	position: absolute;
	inset-inline-start: var(--aic-space-3);
	top: 50%;
	width: var(--aic-space-5);
	height: var(--aic-space-5);
	transform: translateY(-50%);
	color: var(--aic-text-muted);
	pointer-events: none;
}

.aic-auth-input__action {
	position: absolute;
	inset-inline-end: var(--aic-space-1);
	top: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--aic-control-md);
	height: var(--aic-control-md);
	padding: 0;
	border: 0;
	border-radius: var(--aic-radius-sm);
	background: transparent;
	color: var(--aic-text-muted);
	transform: translateY(-50%);
	cursor: pointer;
}

.aic-auth-input__action svg {
	width: var(--aic-space-5);
	height: var(--aic-space-5);
}

.aic-auth-input__action:hover:not(:disabled) {
	background: var(--aic-accent-050);
	color: var(--aic-accent-700);
}

.aic-auth-input__action:focus-visible {
	outline: 2px solid var(--aic-focus-color);
	outline-offset: -2px;
	box-shadow: none;
}

.aic-auth-input__action:disabled {
	color: var(--aic-text-disabled);
	cursor: not-allowed;
}

.aic-auth-links {
	display: grid;
	gap: var(--aic-space-2);
	font-size: 14px;
	line-height: 1.5;
	text-align: center;
}

.aic-auth-links p {
	margin: 0;
	color: var(--aic-text-muted);
}

.aic-auth-link {
	color: var(--aic-accent-700);
	font-weight: 500;
	text-decoration: none;
}

.aic-auth-link:hover {
	color: var(--aic-accent-800);
	text-decoration: underline;
}

.aic-auth-link:focus-visible {
	outline: 2px solid var(--aic-focus-color);
	outline-offset: 2px;
}

@media (min-width: 641px) {
	.aic-auth-title {
		font-size: 24px;
	}

	.aic-auth-surface {
		padding: var(--aic-space-8);
	}

	.aic-auth-form {
		--aic-text-control-height: var(--aic-control-action);
		--aic-text-control-font-size: 14px;
		--aic-button-height: var(--aic-control-action);
	}
}
