.apteczka-login {
	--apteczka-accent: #0072a5;
	--apteczka-navy: #082f45;
	--apteczka-muted: #516773;
	--apteczka-border: #d8e3ec;
	--apteczka-bg: #153340;
	width: 100%;
	min-height: 100vh;
	display: grid;
	place-items: center;
	padding: clamp(28px, 7vw, 88px) 16px;
	background: var(--apteczka-bg);
	color: var(--apteczka-navy);
	box-sizing: border-box;
}

.apteczka-login *,
.apteczka-login *::before,
.apteczka-login *::after {
	box-sizing: border-box;
}

.apteczka-login__shell {
	width: min(100%, 500px);
}

.apteczka-login__brand {
	display: grid;
	gap: 6px;
	justify-items: center;
	text-align: center;
	margin-bottom: 24px;
}

.apteczka-login__logo {
	display: block;
	width: min(214px, 68vw);
	max-height: 68px;
	object-fit: contain;
	box-shadow: none !important;
	filter: none !important;
}

.apteczka-login .apteczka-login__brand img.apteczka-login__logo {
	box-shadow: none !important;
	filter: none !important;
}

.apteczka-login__site-name {
	font-size: 28px;
	line-height: 1.1;
	color: var(--apteczka-navy);
}

.apteczka-login__eyebrow {
	margin: 0;
	font-size: 12px;
	line-height: 1.3;
	font-weight: 750;
	letter-spacing: .085em;
	text-transform: uppercase;
	color: var(--apteczka-muted);
}

.apteczka-login__subtitle {
	margin: -6px 0 0;
	color: var(--apteczka-muted);
}

.apteczka-login__panel {
	width: 100%;
	padding: clamp(30px, 5vw, 38px) clamp(28px, 5vw, 38px) clamp(28px, 5vw, 34px);
	border: 1px solid var(--apteczka-border);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 14px 30px rgba(8, 47, 69, .10);
}

.apteczka-login__message {
	min-height: 0;
	margin: 10px auto 0;
	max-width: 360px;
	font-size: 12px;
	line-height: 1.35;
	font-weight: 650;
	text-align: center;
	color: var(--apteczka-muted);
}

.apteczka-login__message:not(:empty) {
	margin-top: 12px;
}

.apteczka-login__message.is-error {
	color: #c0392b;
}

.apteczka-login__step[hidden] {
	display: none !important;
}

.apteczka-login form {
	display: grid;
	gap: 10px;
	width: min(100%, 360px);
	margin: 0 auto;
}

.apteczka-login__input,
.apteczka-login__otp input {
	width: 100%;
	min-height: 40px;
	border: 1px solid #cbd8e2;
	border-radius: 3px;
	background: #fff;
	color: var(--apteczka-navy);
	font-size: 13px;
	font-weight: 650;
	outline: none !important;
	transition: border-color .16s ease, box-shadow .16s ease;
}

.apteczka-login__input {
	padding: 0 12px !important;
}

.apteczka-login__input:focus,
.apteczka-login__otp input:focus {
	border-color: var(--apteczka-accent);
	box-shadow: 0 0 0 2px rgba(0, 114, 165, .16) !important;
	outline: none !important;
}

.apteczka-login__otp {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 0 auto 2px;
}

.apteczka-login__otp input {
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	min-height: 42px;
	padding: 0 !important;
	text-align: center;
	font-size: 16px;
	font-weight: 650;
}

.apteczka-login__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 40px;
	padding: 0 14px !important;
	border: 1px solid var(--apteczka-accent);
	border-radius: 6px;
	background: var(--apteczka-accent);
	color: #fff;
	font-size: 13px;
	font-weight: 650;
	cursor: pointer;
	transition: opacity .16s ease, transform .16s ease, background .16s ease;
}

.apteczka-login__button:hover:not(:disabled),
.apteczka-login__button:focus-visible:not(:disabled) {
	background: #005f8a;
}

.apteczka-login__button:disabled {
	opacity: .7;
	cursor: not-allowed;
}

.apteczka-login__button-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 17px;
	height: 17px;
	border-radius: 999px;
	border: 1px solid rgba(255,255,255,.7);
	font-size: 17px;
	line-height: 1;
}

.apteczka-login__panel.is-shaking {
	animation: apteczka-login-shake .26s linear;
}

.apteczka-login__step.is-entering {
	animation: apteczka-login-enter .22s ease-out;
}

@keyframes apteczka-login-shake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-6px); }
	75% { transform: translateX(6px); }
}

@keyframes apteczka-login-enter {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 520px) {
	.apteczka-login {
		padding-inline: 12px;
	}

	.apteczka-login__panel {
		border-radius: 10px;
	}

	.apteczka-login__otp {
		gap: 6px;
	}

	.apteczka-login__otp input {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
		min-height: 38px;
		font-size: 15px;
	}
}
