/* ── UniNotes menu item: hidden by default, shown by JS for hyzen only ───── */
.menu__item--uninotes {
	display: none;
}
.hyzen-user .menu__item--uninotes {
	display: list-item;
}
/* ── TOC: gap between TOC and first content line ────────────────────────── */
.toc {
	margin-bottom: 1.73rem;
}

/* ── TOC: hide phantom empty bullet when post starts with ### (h3) ──────── */
/* Hugo wraps orphaned h3s in a li>ul, leaving an empty li with no direct
   anchor. This hides it without affecting any meaningful TOC entry.         */
#TableOfContents > ul > li:first-child:not(:has(> a)) {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ── UniNotes ───────────────────────────────────────────────────────────── */

.uninotes-breadcrumbs {
	font-size: 0.85rem;
	margin-bottom: 1.4rem;
	color: var(--foreground-color3, #888);
}

.uninotes-breadcrumbs a {
	color: var(--accent-color);
	text-decoration: none;
}

.uninotes-breadcrumbs a:hover {
	text-decoration: underline;
}

.uninotes-list {
	list-style: none;
	padding: 0;
	margin: 1.5rem 0 0 0;
}

.uninotes-list__item {
	margin-bottom: 0.6rem;
	border-left: 3px solid var(--accent-color);
	padding-left: 0.75rem;
}

.uninotes-list__link {
	color: var(--foreground-color);
	text-decoration: none;
	font-size: 1rem;
}

.uninotes-list__link:hover {
	color: var(--accent-color);
	text-decoration: underline;
}

.uninotes-list--subjects .uninotes-list__item {
	border-left-color: var(--accent-color);
}

.uninotes-list--units .uninotes-list__item {
	border-left-color: var(--foreground-color3, #888);
}

.uninotes-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-bottom: 0.75rem;
}

.uninotes-meta__pill {
	display: inline-block;
	font-size: 0.72rem;
	padding: 0.15rem 0.55rem;
	border-radius: 999px;
	border: 1px solid var(--accent-color);
	color: var(--accent-color);
	font-weight: 500;
	letter-spacing: 0.02em;
}

/* ── Menu links ─────────────────────────────────────────────────────────── */
/* Menu links */
.menu__link {
	color: var(--menu-color, var(--accent-color));
}

[data-theme='light'] .menu__link {
	color: var(--menu-color);
}

[data-theme='dark'] .menu__link {
	color: var(--accent-color);
}

.term-list {
	display: block;
	margin-top: 1rem;
}

.term-list__item {
	margin-bottom: 0.5rem;
}

.term-list__link {
	color: inherit;
	text-decoration: none;
}

.term-list__link:hover {
	text-decoration: underline;
}

.posts-list {
	margin-top: 2rem;
}

/* Brand actions */
.brand__actions {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin-left: auto;
	flex-wrap: nowrap;
}

.brand__auth {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	position: relative;
}

/* Auth links base */
.auth-link {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.4rem;
	border-radius: 3px;
	font-size: 0.7rem;
	font-weight: 340;
	text-decoration: none !important;
	line-height: 1.4;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

/* Dropdown toggle — visible on ALL screens */
.brand__auth-check {
	display: none;
}

.brand__auth-toggle,
.brand__auth-user-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 0.355rem 0.5rem;
	border-radius: 3px;
	border: 1px solid #f26522;
	background-color: #f26522;
	color: #fff;
	cursor: pointer;
	font-size: 0.7rem;
	font-weight: 340;
	font-family: inherit;
	line-height: 1.4;
	user-select: none;
	outline: none;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

.brand__auth-toggle:hover,
.brand__auth-user-btn:hover {
	background-color: transparent;
	border-color: #f26522;
	color: #f26522;
}

@media (prefers-color-scheme: dark) {
	.brand__auth-toggle,
	.brand__auth-user-btn {
		background-color: transparent;
		border-color: currentColor;
		color: var(--foreground-color);
	}

	.brand__auth-toggle:hover,
	.brand__auth:focus-within .brand__auth-toggle,
	.brand__auth-user-btn:hover,
	.brand__auth-user.is-open .brand__auth-user-btn {
		background-color: var(--foreground-color) !important;
		border-color: var(--foreground-color) !important;
		color: var(--background-color) !important;
	}
}

/* Dropdown panel — hidden by default, shown on focus-within */
.brand__auth-links {
	display: none;
	position: absolute;
	top: calc(100% + 0.4rem);
	right: 0;
	flex-direction: column;
	gap: 0;
	background-color: var(--background-color);
	border: 1px solid var(--background-color1);
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
	z-index: 100;
	min-width: 110px;
}

.brand__auth:focus-within .brand__auth-links {
	display: flex;
}

.brand__auth-links .auth-link {
	border: none;
	border-radius: 0;
	padding: 0.55rem 1rem;
	font-size: 0.78rem;
	width: 100%;
	justify-content: center;
	background-color: transparent;
	color: var(--foreground-color) !important;
}

.brand__auth-links .auth-link:not(:last-child) {
	border-bottom: 1px solid var(--background-color1);
}

.brand__auth-links .auth-link:hover {
	background-color: var(--background-color1);
	color: var(--foreground-color) !important;
}

/* Mobile */
@media (max-width: 600px) {
	/* Profile button: sit above the subscribe button, right-aligned to it */
	.brand__actions {
		position: relative;
	}

	.brand__auth {
		position: absolute;
		bottom: 100%;
		right: 0;
		margin-bottom: -0.2rem;
	}

	.brand__auth-toggle,
	.brand__auth-user-btn {
		width: 1.75rem;
		height: 1.75rem;
		padding: 0;
	}

	.brand__auth--loggedin .brand__auth-user-btn {
		width: auto;
		padding: 0 0.4rem;
		height: 1.75rem !important;
	}
}

/* ── Subscribe dropdown ── */
.rss-subscribe {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.rss-subscribe__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.2rem;
	padding: 0.2rem 0.4rem;
	border-radius: 3px;
	border: 1px solid #ff3d3d;
	background-color: transparent;
	color: #ff3d3d !important;
	font-size: 0.7rem;
	font-weight: 340;
	font-family: inherit;
	line-height: 1.4;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

.rss-subscribe__btn svg {
	width: 10px;
	height: 10px;
	flex-shrink: 0;
}

.rss-subscribe__btn:hover,
.rss-subscribe__btn:focus {
	border-color: #89808092;
	color: #000000bc !important;
}

[data-theme='dark'] .rss-subscribe__btn {
	background-color: var(--foreground-color);
	border-color: currentColor;
	color: var(--background-color) !important;
}

[data-theme='dark'] .rss-subscribe__btn:hover,
[data-theme='dark'] .rss-subscribe__btn:focus {
	background-color: transparent;
	border-color: var(--foreground-color);
	color: var(--foreground-color) !important;
}

@media (prefers-color-scheme: dark) {
	.rss-subscribe__btn {
		background-color: var(--foreground-color);
		border-color: currentColor;
		color: var(--background-color) !important;
	}
	.rss-subscribe__btn:hover,
	.rss-subscribe__btn:focus {
		background-color: transparent;
		border-color: var(--foreground-color);
		color: var(--foreground-color) !important;
	}
}

[data-theme='light'] .rss-subscribe__btn {
	background-color: transparent;
	border-color: #ff3d3d;
	color: #ff3d3d !important;
}

[data-theme='light'] .rss-subscribe__btn:hover,
[data-theme='light'] .rss-subscribe__btn:focus {
	border-color: #89808092;
	color: #000000bc !important;
}

.rss-subscribe__dropdown {
	display: none;
	position: absolute;
	top: calc(100% + 0.4rem);
	right: 0;
	flex-direction: column;
	background-color: var(--background-color);
	border: 1px solid var(--background-color1);
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
	z-index: 100;
	min-width: 120px;
}

.rss-subscribe.is-open .rss-subscribe__dropdown {
	display: flex;
}

/* Light mode: red border/text matching button */
[data-theme='light'] .rss-subscribe__dropdown {
	border-color: #ff3d3d;
}

.rss-subscribe__item {
	border: none;
	border-radius: 0;
	padding: 0.55rem 1rem;
	font-size: 0.78rem;
	font-family: inherit;
	background-color: transparent;
	color: var(--foreground-color);
	cursor: pointer;
	text-align: center;
	white-space: nowrap;
}

[data-theme='light'] .rss-subscribe__item {
	color: #ff3d3d;
}

.rss-subscribe__item:not(:last-child) {
	border-bottom: 1px solid var(--background-color1);
}

[data-theme='light'] .rss-subscribe__item:not(:last-child) {
	border-bottom-color: #ff3d3d;
}

.rss-subscribe__item:hover {
	background-color: var(--background-color1);
}

[data-theme='light'] .rss-subscribe__item:hover {
	background-color: #fff0f0;
}

/* Mobile subscribe btn: same size as profile button */
@media (max-width: 600px) {
	.rss-subscribe__btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 1.75rem;
		height: 1.75rem;
		padding: 0;
		box-sizing: border-box;
	}

	.rss-subscribe__btn span {
		display: none;
	}

	.rss-subscribe__btn svg {
		width: 14px;
		height: 14px;
	}

	.rss-subscribe__dropdown {
		right: 0;
	}
}

/* ── Theme switcher ── */

/* Force light theme */
[data-theme='light'] {
	--background-color: #fff;
	--background-color1: #777;
	--foreground-color: #000000e1;
	--foreground-color3: #665c54;
	--accent-color: #1133e9c5;
	--menu-color: #000000b4;
}

/* Force dark theme */
[data-theme='dark'] {
	--background-color: #171414;
	--background-color1: #fff;
	--foreground-color: #e3e1db;
	--foreground-color3: #ccc3b3;
	--accent-color: #fff;
}

.theme-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.2rem;
	border: none;
	background: none;
	color: var(--foreground-color);
	cursor: pointer;
	line-height: 1;
	transition: opacity 0.2s ease;
	margin-right: -0.17rem;
}

.theme-toggle:hover {
	opacity: 0.6;
}

.theme-toggle__text--light,
.theme-toggle__text--dark {
	display: none !important;
}

/* Default (system light): moon icon + "Dark" label */
.theme-toggle__sun {
	display: none;
}
.theme-toggle__moon {
	display: block;
}

/* Desktop icon size */
.theme-toggle svg {
	width: 16.5px;
	height: 16.5px;
}
.theme-toggle__text--light {
	display: none;
}
.theme-toggle__text--dark {
	display: inline;
}

/* System dark (no data-theme): sun icon + "Light" label */
@media (prefers-color-scheme: dark) {
	.theme-toggle__sun {
		display: block;
	}
	.theme-toggle__moon {
		display: none;
	}
	.theme-toggle__text--light {
		display: inline;
	}
	.theme-toggle__text--dark {
		display: none;
	}
}

/* Manual dark: sun icon + "Light" label */
[data-theme='dark'] .theme-toggle__sun {
	display: block;
}
[data-theme='dark'] .theme-toggle__moon {
	display: none;
}
[data-theme='dark'] .theme-toggle__text--light {
	display: inline;
}
[data-theme='dark'] .theme-toggle__text--dark {
	display: none;
}

/* Manual light: moon icon + "Dark" label */
[data-theme='light'] .theme-toggle__sun {
	display: none;
}
[data-theme='light'] .theme-toggle__moon {
	display: block;
}
[data-theme='light'] .theme-toggle__text--light {
	display: none;
}
[data-theme='light'] .theme-toggle__text--dark {
	display: inline;
}

/* Match size to other buttons on mobile */
@media (max-width: 600px) {
	.theme-toggle {
		width: 2.3rem;
		height: 2.3rem;
		box-sizing: border-box;
		padding: 0;
		margin-right: -0.5rem;
	}

	.theme-toggle svg {
		width: 16.5px;
		height: 16.5px;
	}

	.theme-toggle__text--light,
	.theme-toggle__text--dark {
		display: none !important;
	}
}

/* ── UniNotes Contents Panel ─────────────────────────────────────────────── */

.uninotes-contents-heading {
	margin-bottom: -15.5px;
}

.uninotes-contents {
	margin: 1.25rem 0 2rem 0;
	border-left: 3px solid var(--accent-color);
	padding-left: 1rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.uninotes-contents__semester {
	display: flex;
	flex-direction: column;
}

.uninotes-contents__sem-link {
	text-transform: uppercase;
	color: var(--foreground-color);
	text-decoration: none;
	font-size: 2rem;
	font-weight: 620;
}

.uninotes-contents__sem-link:hover {
	color: var(--accent-color);
	text-decoration: underline;
}

.uninotes-contents__subject {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	padding-top: 0.3rem;
	padding-left: 1.21rem;
}

.uninotes-contents__subject-link {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--foreground-color);
	text-decoration: none;
	letter-spacing: 0.04rem;
}

.uninotes-contents__subject-link:hover {
	color: var(--accent-color);
	text-decoration: underline;
}

.uninotes-contents__units {
	list-style: none;
	padding: 0.6px;
	margin: 0.15rem 0 0.3rem 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}

.uninotes-contents__unit {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	flex-wrap: wrap;
}

.uninotes-contents__unit-link {
	font-size: 0.94rem;
	color: var(--foreground-color);
	text-decoration: none;
}

.uninotes-contents__unit-link:hover {
	color: var(--accent-color);
	text-decoration: underline;
}

.uninotes-contents__unit-cats {
	display: flex;
	gap: 0.04rem;
}

.uninotes-contents__cat {
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 0.1rem 0.45rem;
	border-radius: 999px;
	border: 1px solid currentColor;
	text-decoration: none;
	text-transform: uppercase;
}

.uninotes-contents__cat--self {
	color: var(--accent-color);
}

.uninotes-contents__cat--self:hover {
	background: var(--accent-color);
	color: var(--background-color, #fff);
}

.uninotes-contents__cat--live {
	color: var(--accent-color);
}

.uninotes-contents__cat--live:hover {
	background: var(--accent-color);
	color: var(--background-color, #fff);
}

.uninotes-contents__cat--na {
	color: var(--foreground-color3, #888);
	opacity: 0.45;
	cursor: not-allowed;
}

/* ── Unit Choice Page (Self / Live) ─────────────────────────────────────── */

.unit-choice__subtitle {
	color: var(--foreground-color3, #888);
	margin-bottom: 1.5rem;
	font-size: 0.95rem;
}

.unit-choice__options {
	display: flex;
	gap: 1.2rem;
	flex-wrap: wrap;
	margin-top: 1rem;
	margin-bottom: 2rem;
}

@media (max-width: 600px) {
	.unit-choice__options {
		flex-direction: column;
		align-items: center;
	}
	.unit-choice__card {
		width: 100%;
		max-width: 260px;
		flex: none;
	}
}

.unit-choice__card {
	flex: 1;
	min-width: 180px;
	max-width: 260px;
	border: 2px solid var(--accent-color);
	border-radius: 12px;
	padding: 1.75rem 1.5rem;
	text-decoration: none;
	color: var(--foreground-color);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	transition:
		background 0.18s ease,
		color 0.18s ease,
		transform 0.15s ease;
	text-align: center;
	cursor: pointer;
}

.unit-choice__card:hover {
	background: var(--accent-color);
	color: var(--background-color, #fff);
	transform: translateY(-2px);
	text-decoration: none;
}

/* .unit-choice__card--live intentionally matches .unit-choice__card — no overrides */

.unit-choice__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 0.3rem;
}

.unit-choice__label {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.01em;
}

.unit-choice__desc {
	font-size: 0.8rem;
	opacity: 0.72;
	line-height: 1.45;
}

/* notecategory pill colour */
.uninotes-meta__pill--self {
	border-color: var(--accent-color);
	color: var(--accent-color);
}

.uninotes-meta__pill--live {
	border-color: var(--accent-color);
	color: var(--accent-color);
}

.unit-choice__card--unavailable {
	border-color: var(--foreground-color3, #888);
	color: var(--foreground-color3, #888);
	cursor: not-allowed;
	opacity: 0.45;
}

.unit-choice__card--unavailable:hover {
	background: transparent;
	color: var(--foreground-color3, #888);
	transform: none;
}

/* ── Logged-in user button in header ───────────────────────────────────────── */

/* Hide the old checkbox toggle + login/signup links when logged in */
.brand__auth--loggedin .brand__auth-check,
.brand__auth--loggedin .brand__auth-toggle,
.brand__auth--loggedin .brand__auth-links {
	display: none !important;
}

.brand__auth-user {
	position: relative;
	display: inline-flex;
	align-items: center;
}

/* Extra properties needed only because the user-btn contains text */
.brand__auth-user-btn {
	white-space: nowrap;
	max-width: 140px;
	overflow: hidden;
	text-overflow: ellipsis;
}

.brand__auth-user-dropdown {
	display: none;
	position: absolute;
	top: calc(100% + 0.4rem);
	right: 0;
	background: var(--background-color);
	border: 1px solid var(--background-color1);
	border-radius: 6px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
	min-width: 110px;
	z-index: 100;
	overflow: hidden;
}

.brand__auth-user.is-open .brand__auth-user-dropdown {
	display: block;
}

.brand__auth-user-logout {
	display: block;
	width: 100%;
	padding: 0.55rem 1rem;
	background: none;
	border: none;
	cursor: pointer;
	text-align: center;
	font-size: 0.78rem;
	font-family: inherit;
	color: var(--foreground-color);
	transition: background 0.12s;
}

.brand__auth-user-logout:hover {
	background: var(--background-color1);
	color: var(--foreground-color);
}

/* Reset native button styles + force subscribe-button dimensions on logged-in user button */
.brand__auth-user-btn {
	-webkit-appearance: none !important;
	appearance: none !important;
	margin: 0 !important;
	min-height: 0 !important;
	height: auto !important;
	vertical-align: middle;
	padding: 0.2rem 0.65rem !important;
	border-radius: 3px !important;
	font-size: 0.7rem !important;
	line-height: 1.4 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.25rem !important;
}

.brand__auth-user-btn svg {
	flex: 0 0 auto;
}
/* ── Comments section ─────────────────────────────────────────────────────── */

.comments {
	margin-top: 1rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--background-color1, #ddd);
}

.comments__title {
	font-size: 1.15rem;
	font-weight: 700;
	margin-bottom: 2rem;
}

.comments__login-msg {
	font-size: 0.9rem;
	margin-bottom: 2.55rem;
	color: var(--foreground-color3, #888);
}

.comments__empty {
	font-size: 0.88rem;
	color: var(--foreground-color3, #888);
}

.comments__error {
	font-size: 0.88rem;
	color: var(--error-color, #c0392b);
}

/* ── Comment form ── */

.comment-form {
	margin-top: 1.7rem;
	margin-bottom: 1.5rem;
}

.comment-form__input {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6rem 0.8rem;
	border: 1px solid var(--background-color1, #ccc);
	border-radius: 4px;
	background: var(--background-color);
	color: var(--foreground-color);
	font: inherit;
	font-size: 0.9rem;
	resize: none;
	min-height: 100px;
	outline: none;
	transition: border-color 0.2s;
}

.comment-form__input:focus {
	border-color: var(--accent-color);
}

.comment-form__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 0.4rem;
}

.comment-form__counter {
	font-size: 0.75rem;
	color: var(--foreground-color3, #999);
}

.comment-form__submit {
	padding: 0.35rem 0.9rem;
	background: #1a73e8;
	color: #fff;
	border: none;
	border-radius: 4px;
	font: inherit;
	font-size: 0.85rem;
	cursor: pointer;
	transition:
		opacity 0.15s,
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

[data-theme='light'] .comment-form__submit {
	background-color: var(--accent-color);
	border: none;
	color: #fff;
}

.comment-form__submit:hover {
	opacity: 0.85;
}
.comment-form__submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

[data-theme='dark'] .comment-form__submit {
	background-color: transparent;
	border: 1px solid var(--foreground-color);
	color: var(--foreground-color);
}

[data-theme='dark'] .comment-form__submit:hover:not(:disabled) {
	background-color: var(--foreground-color);
	border-color: var(--foreground-color);
	color: var(--background-color);
}

@media (prefers-color-scheme: dark) {
	.comment-form__submit {
		background-color: transparent;
		border: 1px solid var(--foreground-color);
		color: var(--foreground-color);
	}

	.comment-form__submit:hover:not(:disabled) {
		background-color: var(--foreground-color);
		border-color: var(--foreground-color);
		color: var(--background-color);
	}
}

.comment-form__error {
	font-size: 0.8rem;
	color: var(--error-color, #c0392b);
	margin-top: 0.3rem;
	min-height: 1rem;
}

/* ── Individual comments ── */

.comment {
	margin-bottom: 0.85rem;
	padding: 0.75rem 0.75rem 0.1rem 0.75rem;
	background: var(--background-color);
	border-left: 1.4px solid var(--foreground-color3);
}

.comment--reply {
	margin-top: 0.7rem;
	margin-left: 1.5rem;
	padding-bottom: 0.3rem;
}

.comment__meta {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.4rem;
	flex-wrap: wrap;
}

.comment__author {
	font-weight: 600;
	font-size: 0.88rem;
}

.comment__time {
	font-size: 0.78rem;
	color: var(--foreground-color3, #999);
}

.comment__actions {
	margin-left: auto;
	display: flex;
	gap: 0.5rem;
}

.comment__action {
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	font-size: 0.78rem;
	cursor: pointer;
	color: var(--foreground-color3, #888);
	text-decoration: underline;
}

.comment__action:hover {
	color: var(--accent-color);
}

.comment__action--delete:hover {
	color: var(--error-color, #c0392b);
}

.comment__body {
	font-size: 0.9rem;
	line-height: 1.55;
	margin: 0;
	white-space: pre-wrap;
	word-break: break-word;
}

.comment__deleted {
	font-size: 0.85rem;
	color: var(--foreground-color3, #aaa);
	font-style: italic;
}

.comment__reply-form {
	margin-top: 0.7rem;
}

.comment__replies {
	margin-top: 0.5rem;
}
/* ── Auth pages (login / signup) ───────────────────────────────────────── */

.auth-page__services {
	margin-top: 0;
	margin-bottom: 0.75rem;
	font-size: 0.78rem;
	line-height: 1.45;
	color: var(--foreground-color);
	display: block;
}

.services-group__title {
	font-size: inherit;
}

.auth-page {
	max-width: 420px;
	margin: 2.5rem auto 0;
	padding: 0 0 3rem;
}

.auth-page__title {
	margin-top: 55.2px;
	margin-bottom: 1.2rem;
	text-align: center;
}

.auth-card {
	border: 1px solid var(--background-color1, #ccc);
	border-radius: 10px;
	padding: 1.25rem 1.75rem 2rem;
	background: var(--background-color);
}

/* Message banner — always in flow; min-height reserves space so the form never shifts */
.auth-message {
	border-radius: 4px;
	font-size: 0.82rem;
	line-height: 1.4;
	min-height: 1.8rem;
	margin-bottom: 0.75rem;
	box-sizing: border-box;
	border: 1px solid transparent;
	background: transparent;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
	padding: 0.25rem 0.7rem;
}

.auth-message.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.auth-message--info {
	background: transparent;
	border-color: transparent;
	color: var(--foreground-color);
}

.auth-message--error {
	background: rgba(255, 61, 61, 0.1);
	border: 1px solid rgba(255, 61, 61, 0.4);
	color: #ff3d3d;
}

[data-theme='dark'] .auth-message--error {
	color: #ff3d3d;
	background: rgba(255, 61, 61, 0.15);
	border-color: rgba(255, 61, 61, 0.5);
}

.auth-message--success {
	background: rgba(39, 174, 96, 0.12);
	border: 1px solid rgba(39, 174, 96, 0.4);
	color: #1e8449;
}

[data-theme='dark'] .auth-message--success {
	color: #58d68d;
	background: rgba(39, 174, 96, 0.18);
	border-color: rgba(39, 174, 96, 0.5);
}

/* Form fields */
.auth-form {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}

.auth-form__group {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.auth-form__label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--foreground-color);
}

.auth-form__group--checkbox {
	flex-direction: row;
	margin-top: 6px;
}

.auth-form__checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--foreground-color);
	cursor: pointer;
}

.footer__copyright-notice a {
	margin-right: 5px;
}

.auth-form__checkbox {
	margin-top: 0.2rem;
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
}

.auth-form__input-wrap {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
}

.auth-form__input-wrap .auth-form__input {
	padding-right: 2.5rem;
}

.auth-form__input {
	width: 100%;
	box-sizing: border-box;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--background-color1, #ccc);
	border-radius: 5px;
	font-size: 0.9rem;
	background: var(--background-color);
	color: var(--foreground-color);
	transition:
		border-color 0.18s ease,
		box-shadow 0.18s ease;
	outline: none;
	font-family: inherit;
}

.auth-form__input:focus {
	border-color: var(--accent-color);
	box-shadow: 0 0 0 2px rgba(var(--accent-color-rgb, 17, 51, 233), 0.15);
}

.auth-form__input::placeholder {
	color: var(--foreground-color3, #888);
	opacity: 0.7;
}

.auth-form__eye {
	position: absolute;
	right: 0.6rem;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--foreground-color3, #888);
	display: inline-flex;
	align-items: center;
	padding: 0.2rem;
	line-height: 1;
	transition: color 0.15s ease;
}

.auth-form__eye:hover {
	color: var(--foreground-color);
}

.auth-form__hint {
	font-size: 0.75rem;
	color: var(--foreground-color3, #888);
}

/* Submit button */
.auth-form__submit {
	margin-top: 0.5rem;
	width: 100%;
	padding: 0.6rem 1rem;
	border: none;
	border-radius: 5px;
	background: var(--accent-color);
	color: var(--background-color, #fff);
	font-size: 0.92rem;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	transition: opacity 0.18s ease;
}

.auth-form__submit:hover:not(:disabled) {
	opacity: 0.85;
}

.auth-form__submit:disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

.auth-form__submit-loader {
	display: inline-flex;
	align-items: center;
}

/* Spinner animation */
@keyframes auth-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.spin {
	animation: auth-spin 0.8s linear infinite;
}

/* Footer link */
.auth-card__footer {
	margin-top: 1.4rem;
	text-align: center;
	font-size: 0.85rem;
	color: var(--foreground-color3, #888);
}

.auth-card__link {
	color: var(--accent-color);
	text-decoration: none;
	font-weight: 600;
}

.auth-card__link:hover {
	text-decoration: underline;
}

/* Light theme override for submit button text */
[data-theme='light'] .auth-form__submit {
	color: #fff;
}

/* ── OTP panel ───────────────────────────────────────────────────────────── */

.otp-panel__hint {
	font-size: 0.87rem;
	line-height: 1.5;
	color: var(--foreground-color);
	margin: 0;
}

.otp-panel__input {
	letter-spacing: 0.25em;
	font-size: 1.15rem;
	text-align: center;
}

.otp-panel__resend {
	font-size: 0.82rem;
	color: var(--foreground-color3, #888);
	text-align: center;
	margin: 0;
}

.otp-panel__resend-btn {
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	font-size: 0.82rem;
	color: var(--accent-color);
	cursor: pointer;
	font-weight: 600;
	text-decoration: underline;
}

.otp-panel__resend-btn:hover {
	opacity: 0.8;
}
/* ── Admin dropdown link ─────────────────────────────────────────────────── */

.brand__auth-user-admin {
	display: block;
	width: 100%;
	padding: 0.5rem 1rem;
	font: inherit;
	font-size: 0.85rem;
	text-align: left;
	color: var(--foreground-color);
	text-decoration: none;
	white-space: nowrap;
}

.brand__auth-user-admin:hover {
	background: var(--background-color1);
	color: var(--accent-color);
}

/* ── Admin user management table ─────────────────────────────────────────── */

.admin-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.88rem;
	margin-top: 1rem;
	background: var(--background-color);
}

.admin-table th,
.admin-table td {
	padding: 0.55rem 0.75rem;
	text-align: left;
	border-bottom: 1px solid var(--background-color1, #e0e0e0);
}

.admin-table__header th {
	font-weight: 700;
	background: var(--background-color);
}

.admin-table tr:last-child td {
	border-bottom: none;
}

.admin-actions {
	white-space: nowrap;
	display: flex;
	gap: 0.4rem;
}

.admin-badge {
	display: inline-block;
	padding: 0.15rem 0.5rem;
	border-radius: 3px;
	font-size: 0.75rem;
	font-weight: 600;
}

.admin-badge--active {
	background: #d4edda;
	color: #155724;
}
.admin-badge--blocked {
	background: #f8d7da;
	color: #721c24;
}

.admin-search {
	display: block;
	max-width: 32rem;
	margin-top: 1rem;
}

.admin-search__label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.88rem;
	font-weight: 600;
}

.admin-search__input {
	box-sizing: border-box;
	width: 100%;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--background-color1, #ccc);
	border-radius: 4px;
	background: var(--background-color);
	color: var(--foreground-color);
	font: inherit;
}

.admin-btn {
	padding: 0.25rem 0.65rem;
	border: none;
	border-radius: 4px;
	font: inherit;
	font-size: 0.78rem;
	cursor: pointer;
	font-weight: 600;
	transition: opacity 0.15s;
}

.admin-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.admin-btn--block {
	background: #ffc107;
	color: #333;
}
.admin-btn--unblock {
	background: #28a745;
	color: #fff;
}
.admin-btn--delete {
	background: #dc3545;
	color: #fff;
}

.admin-btn:not(:disabled):hover {
	opacity: 0.85;
}

.admin-error {
	color: var(--error-color, #c0392b);
	font-size: 0.88rem;
}

@media (max-width: 600px) {
	.admin-table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.admin-table th,
	.admin-table td {
		padding: 0.4rem 0.5rem;
		font-size: 0.78rem;
	}

	.admin-btn {
		padding: 0.2rem 0.45rem;
		font-size: 0.72rem;
	}
}

/* Markdown tables (uninotes, blog posts, etc.): match page background
   and use the normal text color for borders, instead of the theme's
   grey/white box styling meant for blockquotes/code blocks. */
table {
	background-color: var(--background-color);
}

td,
th {
	border: 1px solid var(--foreground-color);
	color: var(--foreground-color);
}
