html {
	font-size: 14px;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: Inter, Arial, sans-serif;
}

:root {
	--reip-body-color: #1f2a37;
	--reip-body-bg: color-mix(in srgb, var(--reip-primary) 5%, white);
	--reip-border-radius: 2rem;
	--reip-page-bg: #ffffff;
	--reip-card-bg: color-mix(in srgb, var(--reip-body-bg) 45%, white);
	--reip-btn-bg: color-mix(in srgb, var(--reip-primary) 90%, white);
	--reip-btn-border-color: color-mix(in srgb, var(--reip-primary) 90%, white);
	--reip-btn-hover-bg: var(--reip-primary);
	--reip-btn-hover-border-color: var(--reip-primary);
	--reip-paragraph-color: #6b7280;
}

/* 🌙 Dark mode auto */
@media (prefers-color-scheme: dark) {
	:root {
		--reip-body-color: #e5e7eb;
		--reip-body-bg: color-mix(in srgb, var(--reip-primary) 35%, black);
		--reip-page-bg: oklch(from var(--reip-primary) 0.20 calc(c * 0.2385) h);
		--reip-paragraph-color: #ffffff;
	}
}

body {
	display: flex;
	min-height: 100vh;
	color: var(--reip-body-color);
	background-color: var(--reip-body-bg);
}

.page {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding: 2.5rem;
	background-color: var(--reip-page-bg);
	box-shadow: 0 15px 40px rgba(0,0,0,0.1);
	animation: fadeIn 0.6s ease-out;
	.page-header {
		display: flex;
		justify-content: space-between;
		&:not(:empty) {
			margin-bottom: 1rem;
		}
	}
	.page-content {
		flex: 1;
		display: flex;
		.sidebar {}
		.sidebar-left {}
		.main {
			flex: 1;
		}
		.sidebar-right {}
	}
	.page-footer {}
	&.page--oauth {
		width: fit-content;
		min-height: fit-content;
		margin-top: auto;
		margin-bottom: auto;
		.page-content {
			.main {
				min-width: 400px;
			}
		}
	}
}

.page--oauth {
	.company-link {
		min-height: 100px;
		padding: .5rem;
		text-decoration: none;
		transition:
			opacity 0.25s ease,
			transform 0.25s ease;
		img {
			max-width: 190px;
			max-height: 80px;
			width: auto;
			height: auto;
		}
		&:hover {
			opacity: 0.55;
			transform: translateY(-3px);
		}
	}
	@media (prefers-reduced-motion: reduce) {
		.company-link {
			transition: none;
		}
	}
}

form {
	container-type: inline-size;
	padding: 1.5rem;
	background-color: var(--reip-card-bg);
	border-radius: 15px;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.03),
		0 4px 12px rgba(0, 0, 0, 0.04);
	.row {
		margin-bottom: 1rem;
		> label {
			max-width: 144px;
			&+ div {
				max-width: 432px;
				.text-danger {
					padding-right: 1rem;
					padding-left: 1rem;
					> span {
						display : block;
					}
				}
			}
		}
	}
	button[type="submit"] {
		margin-top: 1rem;
	}
}

h1 {
	color: var(--reip-primary);
}

p {
	color: var(--reip-paragraph-color);
}

.tabular-nums {
	font-variant-numeric: tabular-nums;
}

.reip-form-logout {
	container-type: unset;
	margin-left: auto;
	padding: 0;
	background: none;
	box-shadow: none;
}

.reip-form-control {
	border-radius: var(--reip-border-radius);
}

.reip-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;

	.reip-btn-label {
		display: grid;
		> span {
			grid-area: 1 / 1;
		}
		&::after {
			content: attr(data-text);
			grid-area: 1 / 1;
			font-weight: 500;
			visibility: hidden;
		}
	}
	&:hover {
		.reip-btn-label {
			> span {
				font-weight: 500;
			}
		}
	}

	--bs-btn-border-radius: var(--reip-border-radius);
}

.reip-btn-primary {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--reip-btn-bg);
	--bs-btn-border-color: var(--reip-btn-border-color);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: var(--reip-btn-hover-bg);
	--bs-btn-hover-border-color: var(--reip-btn-hover-border-color);
}

.reip-btn-outline-primary {
	--bs-btn-color: var(--reip-btn-bg);
	--bs-btn-bg: #fff;
	--bs-btn-border-color: var(--reip-btn-border-color);
	--bs-btn-hover-color: var(--reip-btn-hover-bg);
	--bs-btn-hover-bg: var(--reip-card-bg);
	--bs-btn-hover-border-color: var(--reip-btn-hover-border-color);

	&:hover {
		padding: calc(var(--bs-btn-padding-y) - 1px) calc(var(--bs-btn-padding-x) - 1px);
		border-width: calc(var(--bs-btn-border-width) + 1px);
	}
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
