.login {
	height: 100%;
	min-height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow-y: auto;
	background: var(--color-background-gray-subtler);
}

.login-shell {
	display: flex;
	width: 100%;
	max-width: 1040px;
	min-height: 600px;
	border-radius: var(--radius-8);

	background: var(--color-surface-white);
	box-shadow: 0 12px 32px var(--color-alpha-shadow1);
	overflow: hidden;
}

.login-brand {
	position: relative;
	flex: 1.15;
	overflow: hidden;
	padding: var(--padding-24) var(--padding-40);
}

.login-brand::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.login-brand__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left top;
}

.login-panel {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: var(--padding-40);
	background: var(--color-surface-white);
}

.login-panel__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--gap-20);
	margin-bottom: var(--gap-40);
}

.login-brand__copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: end;
	gap: var(--gap-12);
	height: 100%;
}
.login-brand__copy img {
	width: 89px;
	height: auto;
}
.login-brand__copy h4 {
	font-weight: var(--typo-font-weight-semibold);
	line-height: 1.2;
}

.login-panel__header p {
	font-size: var(--font-size-body-md);
	color: var(--color-text-disabled-on);
}

.login-form {
	display: flex;
	flex-direction: column;
	gap: var(--gap-20);
}

.login-form__password-field {
	position: relative;
}

.login-form__password-field .hp-input {
	padding-right: 44px;
}

.login-form__password-toggle {
	position: absolute;
	top: 50%;
	right: var(--padding-8);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: var(--radius-4);
	background: transparent;
	color: var(--color-text-subtle);
	cursor: pointer;
	font-size: 20px;
	transform: translateY(-50%);
	transition:
		color 0.2s ease,
		background-color 0.2s ease;
}

.login-form__password-toggle .ms-icon {
	font-size: 20px;
}

.login-form__password-toggle:hover {
	color: var(--color-text-basic);
	background: var(--color-action-gray-hover);
}

.login-form__password-toggle:focus-visible {
	outline: 2px solid var(--color-border-primary);
	outline-offset: 1px;
}

.login-form__options {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--gap-12);
}

.login-remember {
	display: inline-flex;
	align-items: center;
	gap: var(--gap-8);
	font-size: var(--font-size-body-sm);
	cursor: pointer;
	user-select: none;
}

.login-form__submit {
	width: 100%;
}

.login-panel__footer {
	margin-top: var(--gap-32);
	padding-top: var(--gap-24);
	border-top: 1px solid var(--color-border-gray-light);
	color: var(--color-text-disabled-on);
	text-align: center;
	font-size: var(--font-size-body-sm);
}

@media (max-width: 768px) {
	body:has(.login) {
		min-height: 100%;
		overflow: auto;
		--webkit-overflow-scrolling: touch;
	}

	.login {
		align-items: stretch;
		justify-content: flex-start;
		min-height: 100dvh;
		height: auto;
		padding: 0;
	}

	.login-shell {
		flex-direction: column;
		width: 100%;
		max-width: none;
		min-height: 100dvh;
		border-radius: 0;
		box-shadow: none;
	}

	.login-brand {
		display: none;
	}

	.login-panel {
		flex: 1;
		padding: var(--padding-24) var(--padding-20);
		padding-bottom: max(var(--padding-32), env(safe-area-inset-bottom, 0px));
	}

	.login-panel__header {
		margin-bottom: var(--gap-24);
	}

	.login-panel__footer {
		margin-top: var(--gap-24);
		padding-top: var(--gap-20);
	}
}
