.main_container {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 6ch 0.4rem;
	border: 1px solid oklab(from rgb(190, 189, 189) l a b);
	border-radius: 1rem;
	box-shadow: 0 1px rgb(0 0 0 / 0.05);
	max-width: 45ch;
	padding: 1.1rem 1.5rem;

	> section {
		display: flex;
		flex-direction: column;
		width: 100%;

		> header {
			text-align: center;

			> h1 {
				display: block;
				font-size: xx-large;
				font-weight: bold;
			}
		}
		> section {
			margin-top: 20px;

			> button {
				display: inline-flex;
				justify-content: center;
				align-items: center;
				column-gap: 8px;
				font-size: small;
				font-weight: 500;
				border-radius: 0.5rem;
				border: 1px solid oklch(0.93 0.01 265);
				background-color: white;
				color: oklch(0.28 0.03 257);
				box-shadow: 0 1px rgb(0 0 0 / 0.05);
				width: 100%;
				padding: 12px 16px;

				&:hover {
					background-color: oklch(0.98 0 248);
				}
				&:focus {
					outline: hidden;
					background-color: oklch(0.98 0 248);
				}
				&:disabled {
					opacity: 0.5;
					pointer-events: none;
				}

				> svg {
					width: 16px;
					height: auto;
				}
			}
			> div {
				padding-block: 12px;
				display: flex;
				align-items: center;
				justify-content: center;
				font-size: smaller;
				color: oklch(0.71 0.02 261);
				text-transform: uppercase;

				&::before,
				&::after {
					content: "";
					flex: 1;
					border: 1px solid oklch(0.93 0.01 265);
					margin-inline-end: 24px;
				}
				&::after {
					margin-inline-start: 24px;
				}
			}

			form {
				div {
					display: grid;
					row-gap: 16px;
					width: 100%;

					/* Shared label style */
					label {
						display: block;
						font-size: small;
						margin-bottom: 8px;
					}

					/* Shared input field styles */
					input[type="email"],
					input[type="password"],
					input[type="text"],
					input[type="number"] {
						display: block;
						padding: 10px 16px;
						width: 100%;
						border: 1px solid oklch(0.93 0.01 265);
						border-radius: 0.5rem;

						&:focus {
							outline: 1px solid oklch(0.62 0.19 260);
							border: 1px solid oklch(0.62 0.19 260);
						}

						&:disabled {
							opacity: 0.5;
							pointer-events: none;
						}
					}

					/* Error/help text */
					p {
						display: none;
						font-size: smaller;
						color: oklch(0.58 0.22 27);
						margin-top: 8px;
					}

					/* Input wrapper with icon slot */
					.input_wrapper {
						position: relative;

						.icon {
							display: none;
							position: absolute;
							inset-block: 0;
							inset-inline-end: 0;
							pointer-events: none;
							padding-inline-end: 12px;

							svg {
								width: 20px;
								height: 20px;
								color: oklch(0.64 0.21 25);
							}
						}
					}

					/* Checkbox group */
					.checkbox_group {
						display: flex;
						align-items: center;

						div {
							display: inline-flex;
						}
						input[type="checkbox"] {
							flex-shrink: 0;
							margin-top: 2px;
							border: 1px solid oklch(0.93 0.01 265);
							border-radius: 0.25rem;
							color: oklch(0.55 0.22 263);

							&:focus {
								outline: 1px solid oklch(0.62 0.19 260);
							}
						}

						label {
							margin-inline-start: 12px;
							font-size: small;
						}
					}
				}

				.forgot_wrapper {
					display: flex;
					flex-wrap: wrap;
					justify-content: space-between;
					align-items: center;
					gap: 8px;

					label {
						display: block;
						font-size: small;
						margin-bottom: 8px;
					}
					a {
						display: inline-flex;
						align-items: center;
						justify-content: space-between;
						column-gap: 4px;
						font-size: small;
						color: oklch(0.55 0.22 263);
						text-decoration-thickness: 8px;
						&:hover {
							text-decoration: underline;
						}
						&:focus {
							outline: hidden;
							text-decoration: underline;
						}
					}
				}
				/* Button */
				button {
					width: 100%;
					padding-block: 12px;
					padding-inline: 16px;
					display: inline-flex;
					justify-content: center;
					align-items: center;
					column-gap: 8px;
					font-size: small;
					border-radius: 0.5rem;
					border: 1px solid transparent;
					background-color: oklch(0.55 0.22 263);
					color: white;

					&:hover,
					&:focus {
						background-color: oklch(0.49 0.22 264);
					}

					&:focus {
						outline: hidden;
					}

					&:disabled {
						opacity: 0.5;
						pointer-events: none;
					}
				}
			}
			.switcher {
				display: flex;
				margin-top: 8px;
				align-items: center;
				p {
					margin: 8px 0;
					font-size: small;
				}
				a {
					color: oklch(0.55 0.22 263);
					text-decoration-thickness: 8px;
					font-size: medium;
					cursor: pointer;

					&:hover {
						text-decoration: underline;
					}
					&:focus {
						outline: hidden;
						text-decoration: underline;
					}
				}
			}
		}
	}
}

@media (min-width: 450px) {
	.main_container {
		margin: 6ch auto;
	}
}
