:root {
	--xiunos-mobile-header-height: 3.4375rem;
	--xiunos-surface: #f7f9fc;
	--xiunos-surface-rgb: 247, 249, 252;
	--xiunos-panel-rgb: 255, 255, 255;
	--xiunos-text: #172033;
	--xiunos-muted: #667085;
	--xiunos-border: rgba(23, 32, 51, 0.12);
	--xiunos-brand: #4f46e5;
	--xiunos-brand-strong: #3730a3;
	--xiunos-radius-sm: 0.5rem;
	--xiunos-radius: 0.75rem;
	--xiunos-radius-lg: 1rem;
	--xiunos-shadow: 0 1.25rem 3rem rgba(31, 41, 55, 0.12);
}

[data-bs-theme="dark"] {
	--xiunos-surface: #0f172a;
	--xiunos-surface-rgb: 15, 23, 42;
	--xiunos-panel-rgb: 24, 34, 55;
	--xiunos-text: #e5e7eb;
	--xiunos-muted: #a8b0bf;
	--xiunos-border: rgba(255, 255, 255, 0.14);
	--xiunos-brand: #818cf8;
	--xiunos-brand-strong: #a5b4fc;
	--xiunos-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.34);
}

.xiunos-modern {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	color: var(--xiunos-text);
	background: var(--xiunos-surface);
}

.xiunos-modern .btn:not(.btn-close),
.xiunos-modern button:not(.btn-close) {
	background-image: none !important;
}

.xiunos-surface {
	background-color: rgb(var(--xiunos-panel-rgb));
	border: 1px solid var(--xiunos-border);
	box-shadow: var(--xiunos-shadow);
}

.xiunos-panel {
	border-radius: var(--xiunos-radius);
}

.xiunos-modern a { text-decoration: none; }
.xiunos-modern a:hover { text-decoration: underline; }

.xiunos-skip-link {
	position: fixed;
	inset-block-start: 0.5rem;
	inset-inline-start: 0.5rem;
	z-index: 2000;
	padding: 0.75rem 1rem;
	color: #fff;
	background: #312e81;
	border: 0.125rem solid currentColor;
	border-radius: var(--xiunos-radius-sm);
	box-shadow: var(--xiunos-shadow);
	transform: translateY(calc(-100% - 1rem));
	transition: transform 0.12s ease;
}

.xiunos-skip-link:focus,
.xiunos-skip-link:focus-visible {
	color: #fff;
	text-decoration: none;
	transform: translateY(0);
}

#body:focus-visible {
	outline: 0.1875rem solid var(--xiunos-brand);
	outline-offset: -0.1875rem;
}

.xiunos-navbar {
	z-index: 1050;
	padding-block: 0.3125rem;
	border-width: 0 0 1px;
	box-shadow: 0 0.5rem 1.5rem rgba(31, 41, 55, 0.08);
}

.xiunos-navbar .navbar-brand,
.xiunos-navbar .nav-link {
	color: var(--xiunos-text);
}

.xiunos-navbar .nav-link:hover,
.xiunos-navbar .nav-link:focus,
.xiunos-navbar .nav-item.active > .nav-link,
.xiunos-navbar .nav-link.active {
	color: var(--xiunos-brand-strong);
	text-decoration: none;
}

.xiunos-navbar .navbar-toggler {
	min-block-size: 44px;
	min-inline-size: 44px;
	border-color: var(--xiunos-border);
}

.xiunos-navbar .xiunos-mobile-header-action {
	display: inline-flex;
	flex: 0 0 44px;
	align-items: center;
	justify-content: center;
	inline-size: 44px;
	block-size: 44px;
	margin: 0;
	padding: 0;
	line-height: 1;
}

.xiunos-navbar .xiunos-menu-toggle {
	font-size: 1.45rem;
	color: var(--xiunos-text);
	background: transparent;
	border-color: transparent;
}

.xiunos-navbar .xiunos-menu-toggle:hover,
.xiunos-navbar .xiunos-menu-toggle:focus:not(:focus-visible) {
	color: var(--xiunos-text);
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

.xiunos-navbar .xiunos-menu-toggle:focus-visible {
	outline: 2px solid var(--xiunos-brand);
	outline-offset: 2px;
}

.xiunos-navbar .navbar-brand,
.xiunos-navbar .nav-link {
	min-block-size: 44px;
}

.xiunos-navbar .nav-link {
	display: flex;
	align-items: center;
	gap: 0.3rem;
}

.xiunos-navbar button.nav-link {
	line-height: inherit;
}

.xiunos-navbar .navbar-brand {
	min-inline-size: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.xiunos-nav-drawer {
	--bs-offcanvas-width: min(84vw, 20rem);
	color: var(--xiunos-text);
	background-color: rgb(var(--xiunos-panel-rgb));
	border-color: var(--xiunos-border);
}

.xiunos-nav-drawer .offcanvas-body {
	min-width: 0;
}

.xiunos-brand-logo {
	height: 1.8rem;
}

[data-bs-theme="dark"] .xiunos-brand-logo {
	filter: invert(1) hue-rotate(180deg);
}

.xiunos-theme-light,
.xiunos-theme-dark,
.xiunos-theme-auto { display: none; }
[data-xiunos-theme="light"] .xiunos-theme-light,
[data-xiunos-theme="dark"] .xiunos-theme-dark,
[data-xiunos-theme="auto"] .xiunos-theme-auto { display: inline-block; }

.xiunos-avatar-xs,
.xiunos-avatar-md,
.xiunos-avatar-xl {
	flex: 0 0 auto;
	object-fit: cover;
	border-radius: 50%;
}

.xiunos-avatar-xs { width: 1.3rem; height: 1.3rem; }
.xiunos-avatar-md { width: 2.4rem; height: 2.4rem; }
.xiunos-avatar-xl { width: 6rem; height: 6rem; }

.xiunos-forum-logo {
	width: 6rem;
	height: 6rem;
	object-fit: cover;
}

.xiunos-leading-loose { line-height: 2; }
.xiunos-break-anywhere { overflow-wrap: anywhere; word-break: break-word; }

.icon.filetype {
	--xiunos-filetype-size: 16px;
	display: inline-block;
	width: var(--xiunos-filetype-size);
	height: var(--xiunos-filetype-size);
	vertical-align: middle;
	background-image: url("../img/filetype.png");
	background-repeat: no-repeat;
	background-size: var(--xiunos-filetype-size);
}

.icon.filetype::before { content: ""; }
.icon.filetype.big { --xiunos-filetype-size: 24px; }
.icon.filetype.video { background-position: 0 0; }
.icon.filetype.music { background-position: 0 calc(-1 * var(--xiunos-filetype-size)); }
.icon.filetype.exe { background-position: 0 calc(-2 * var(--xiunos-filetype-size)); }
.icon.filetype.flash { background-position: 0 calc(-3 * var(--xiunos-filetype-size)); }
.icon.filetype.image { background-position: 0 calc(-4 * var(--xiunos-filetype-size)); }
.icon.filetype.office { background-position: 0 calc(-5 * var(--xiunos-filetype-size)); }
.icon.filetype.pdf { background-position: 0 calc(-6 * var(--xiunos-filetype-size)); }
.icon.filetype.text { background-position: 0 calc(-7 * var(--xiunos-filetype-size)); }
.icon.filetype.unknown { background-position: 0 calc(-8 * var(--xiunos-filetype-size)); }
.icon.filetype.zip { background-position: 0 calc(-9 * var(--xiunos-filetype-size)); }
.icon.filetype.other { background-position: 0 calc(-10 * var(--xiunos-filetype-size)); }
.icon.filetype.book { background-position: 0 calc(-11 * var(--xiunos-filetype-size)); }
.icon.filetype.torrent { background-position: 0 calc(-12 * var(--xiunos-filetype-size)); }
.icon.filetype.font { background-position: 0 calc(-13 * var(--xiunos-filetype-size)); }

.xiunos-navbar .dropdown-menu {
	min-width: 12rem;
	padding: 0.5rem;
	border-radius: var(--xiunos-radius-sm);
}

.xiunos-footer {
	border-width: 1px 0 0;
	box-shadow: 0 -0.5rem 1.5rem rgba(31, 41, 55, 0.08);
}

.xiunos-message {
	border-radius: var(--xiunos-radius);
}

.xiunos-modern .card {
	color: var(--xiunos-text);
	background: rgb(var(--xiunos-panel-rgb));
	border-color: var(--xiunos-border);
	box-shadow: 0 0.5rem 1.5rem rgba(31, 41, 55, 0.08);
}

.xiunos-modern .card > .card-header,
.xiunos-modern .breadcrumb,
.xiunos-modern .blockquote,
.xiunos-modern li.quote {
	color: var(--xiunos-text);
	background-color: var(--bs-tertiary-bg) !important;
	background-image: none;
	border-color: var(--xiunos-border);
}

.xiunos-modern .card-header-tabs .nav-link:hover:not(.active) {
	border-color: var(--xiunos-border);
}

.xiunos-tabs-header {
	padding-block: var(--bs-card-cap-padding-y);
}

.xiunos-breadcrumb {
	align-items: center;
	min-height: 3rem;
	padding: 0.75rem 1rem;
	margin-bottom: 1rem;
	border: 1px solid var(--xiunos-border);
	border-radius: var(--bs-border-radius);
	box-shadow: 1px 1px 2px color-mix(in srgb, var(--xiunos-border) 25%, transparent);
}

.xiunos-breadcrumb .breadcrumb-item {
	display: inline-flex;
	align-items: center;
	min-width: 0;
}

.xiunos-breadcrumb .breadcrumb-item > a,
.xiunos-breadcrumb .breadcrumb-item.active {
	min-width: 0;
	max-width: 25rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.xiunos-breadcrumb .breadcrumb-item > a {
	display: inline-flex;
	align-items: center;
}

.xiunos-modern .card-header-tabs .nav-link.active,
.xiunos-modern .nav-tabs .nav-link.active {
	color: var(--xiunos-text);
	background-color: rgb(var(--xiunos-panel-rgb));
	background-image: none;
	border-color: var(--xiunos-border);
	border-bottom-color: rgb(var(--xiunos-panel-rgb));
}

.xiunos-modern .thread:hover {
	background-color: color-mix(in srgb, var(--xiunos-brand) 7%, transparent);
}

.xiunos-thread-row {
	min-width: 0;
	padding-inline: 0.25rem;
	border-color: var(--xiunos-border);
	transition: background-color 0.15s ease;
}

.xiunos-thread-content,
.xiunos-thread-row .subject,
.xiunos-thread-meta {
	min-width: 0;
}

.xiunos-thread-row .subject > a {
	color: var(--xiunos-text);
	font-weight: 600;
}

.xiunos-thread-meta {
	color: var(--xiunos-muted);
}

.xiunos-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(4.5rem, 1fr));
	text-align: center;
}

.xiunos-stats-grid > div {
	padding: 0.35rem 0.25rem;
}

.card-site-info .xiunos-stats-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.card-site-info .xiunos-stats-grid dt {
	white-space: nowrap;
}

.xiunos-site-nav .nav-link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	padding: 0.8rem 1rem;
	color: var(--xiunos-text);
	border-radius: var(--xiunos-radius-sm);
}

.xiunos-site-nav .nav-link:hover {
	color: var(--xiunos-brand-strong);
	background-color: color-mix(in srgb, var(--xiunos-brand) 7%, transparent);
	text-decoration: none;
}

.xiunos-site-nav .nav-link.active {
	color: var(--xiunos-brand);
	background-color: color-mix(in srgb, var(--xiunos-brand) 11%, rgb(var(--xiunos-panel-rgb)));
}

.xiunos-site-nav .nav-link .icon-fw {
	flex: 0 0 1.3rem;
}

.xiunos-site-nav .xiunos-forum-section {
	margin-top: 0.25rem;
}

.xiunos-forum-section-title {
	color: var(--bs-secondary-color);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.xiunos-site-nav .xiunos-forum-section-title {
	padding: 0.35rem 1rem 0.4rem;
}

.xiunos-drawer-forum-section {
	margin-top: 0.45rem;
}

.xiunos-drawer-forum-section > .xiunos-forum-section-title {
	padding: 0.45rem 0.8rem;
}

.xiunos-drawer-forum-section .navbar-nav {
	padding-inline-start: 0.35rem;
}

.xiunos-forum-nav-icon {
	flex: 0 0 1.5rem;
	width: 1.5rem;
	height: 1.5rem;
	object-fit: cover;
	border-radius: 0.375rem;
}

.xiunos-pagination .pagination {
	flex-wrap: wrap;
	gap: 0.375rem;
}

.xiunos-pagination .page-link {
	min-width: 2.4rem;
	text-align: center;
	border-radius: var(--xiunos-radius-sm);
}

.xiunos-pagination .page-item:first-child .page-link,
.xiunos-pagination .page-item:last-child .page-link {
	border-radius: var(--xiunos-radius-sm);
}

.xiunos-auth-shell {
	max-width: 42rem;
}

.xiunos-auth-card,
.xiunos-account-card,
.xiunos-account-aside .card {
	border-radius: var(--xiunos-radius);
	overflow: hidden;
}

.xiunos-auth-card .input-group-text {
	min-width: 3rem;
	justify-content: center;
}

.xiunos-modern :where(.form-control, .form-select, .input-group-text) {
	border-radius: var(--bs-border-radius);
}

.xiunos-modern .input-group {
	border-radius: var(--bs-border-radius);
}

.xiunos-modern .input-group > :where(.form-control, .form-select, .input-group-text, .btn):nth-last-child(2) {
	border-start-end-radius: var(--bs-border-radius) !important;
	border-end-end-radius: var(--bs-border-radius) !important;
}

.xiunos-modern .invalid-feedback:not(:empty) {
	display: block;
}

.xiunos-modern .progress-bar-striped {
	background-image: none;
}

.xiunos-form-message:empty {
	display: none;
}

.xiunos-account-layout {
	align-items: flex-start;
}

.xiunos-account-avatar {
	width: 6rem;
	height: 6rem;
	object-fit: cover;
	border: 0.25rem solid rgba(var(--xiunos-panel-rgb), 0.92);
	box-shadow: 0 0.5rem 1.5rem rgba(31, 41, 55, 0.14);
}

.xiunos-profile-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: 1rem;
}

.xiunos-profile-grid > div {
	padding: 0.85rem 1rem;
	background: var(--bs-tertiary-bg);
	border: 1px solid var(--xiunos-border);
	border-radius: var(--xiunos-radius-sm);
}

.xiunos-profile-grid dd {
	margin-bottom: 0;
	font-weight: 600;
	word-break: break-word;
}

.xiunos-avatar-preview {
	width: 8rem;
	height: 8rem;
	object-fit: cover;
	border-radius: 50%;
	box-shadow: var(--xiunos-shadow);
}

.min-w-0 {
	min-width: 0;
}

.xiunos-browser-panel {
	max-width: 44rem;
}

.xiunos-compose-card,
.xiunos-thread-card,
.xiunos-postlist-card {
	border-radius: var(--xiunos-radius);
	overflow: hidden;
}

.xiunos-compose-editor {
	height: 18.75rem;
	min-height: 3.125rem;
	max-height: 36rem;
	resize: vertical;
}

.xiunos-compose-classification :where(.form-select) {
	width: 100%;
}

.xiunos-attachment-manager {
	min-width: 0;
}

.xiunos-attachment-manager .progress {
	max-width: 28rem;
	height: 0.65rem;
}

.xiunos-attachments {
	margin: 0.5rem 0 0;
	padding: 0.75rem 1rem;
	border: 1px solid var(--xiunos-border);
	border-radius: var(--xiunos-radius-sm);
	background: var(--bs-tertiary-bg);
}

.xiunos-attachments legend {
	float: none;
	width: auto;
	margin: 0;
	padding: 0 0.35rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--xiunos-muted);
}

.xiunos-attachments .attachlist {
	display: grid;
	gap: 0.45rem;
}

.xiunos-post {
	display: flex;
	gap: 1rem;
	padding: 1rem 0;
	border-top: 1px solid var(--xiunos-border);
}

.xiunos-post:first-child {
	border-top: 0;
}

.xiunos-post.quote {
	margin-inline: -0.75rem;
	padding-inline: 0.75rem;
	border-radius: var(--xiunos-radius-sm);
}

.xiunos-post-content,
.xiunos-thread-message,
.xiunos-post .message {
	min-width: 0;
	max-width: 100%;
}

.xiunos-post a[aria-label],
.xiunos-post button[aria-label],
.xiunos-post-action-area a[aria-label],
.xiunos-post-action-area button[aria-label] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
}

.xiunos-post-action-area,
.xiunos-post-actions {
	display: flex;
	align-items: center;
}

.xiunos-post-action-area {
	justify-content: flex-end;
	gap: 1rem;
	margin-inline-start: auto;
}

.xiunos-post-actions {
	gap: 1rem;
}

.xiunos-post-actions-first {
	gap: 0.5rem;
}

.xiunos-post-actions a,
.xiunos-post-actions button {
	border-radius: var(--bs-border-radius);
	text-decoration: none !important;
}

.xiunos-post-actions a:hover,
.xiunos-post-actions a:focus-visible,
.xiunos-post-actions button:hover,
.xiunos-post-actions button:focus-visible {
	background-color: var(--bs-tertiary-bg);
	text-decoration: none !important;
}

.xiunos-post-action-delete:hover,
.xiunos-post-action-delete:focus-visible {
	color: var(--bs-danger) !important;
}

.xiunos-nested-replies {
	margin-top: 1rem;
}

.xiunos-nested-replies-controls {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding-top: 0.625rem;
}

.xiunos-nested-text-button {
	padding: 0;
	border: 0;
	background: none;
	color: var(--bs-secondary-color);
	font: inherit;
	font-size: 0.875rem;
	line-height: 1.5;
	cursor: pointer;
}

.xiunos-nested-text-button:hover,
.xiunos-nested-text-button:focus-visible {
	color: var(--xiunos-brand);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.xiunos-nested-reply {
	display: flex;
	gap: 0.75rem;
	padding-block: 0.75rem;
	border-top: 1px solid var(--xiunos-border);
}

.xiunos-nested-reply:first-child {
	border-top: 0;
}

.xiunos-inline-reply-form {
	margin-top: 0.75rem;
	padding: 0.75rem;
	background-color: var(--bs-tertiary-bg);
	border: 1px solid var(--xiunos-border);
	border-radius: var(--bs-border-radius);
}

.xiunos-thread-message :where(img, video, embed),
.xiunos-post .message :where(img, video, embed) {
	max-width: 100%;
	height: auto;
}

.xiunos-thread-message iframe,
.xiunos-post .message iframe {
	max-width: 100%;
}

.xiunos-quick-reply-editor {
	min-height: 4.5rem;
	resize: vertical;
	transition: min-height 0.15s ease;
}

.xiunos-quick-reply-editor:focus {
	min-height: 8rem;
}

.xiunos-moderation-bar .btn-group {
	flex-wrap: wrap;
}

.xiunos-focus-ring:focus-visible,
.xiunos-modern :where(a, button, input, select, textarea):focus-visible {
	outline: 0.1875rem solid rgba(79, 70, 229, 0.55);
	outline: 0.1875rem solid color-mix(in srgb, var(--xiunos-brand) 65%, transparent);
	outline-offset: 0.1875rem;
}

@media (max-width: 991.98px) {
	.xiunos-thread-row[data-xiunos-row-link] {
		cursor: pointer;
	}

	.xiunos-navbar.navbar-expand-lg {
		background-color: rgb(var(--xiunos-panel-rgb));
	}

	.xiunos-navbar .offcanvas-lg.xiunos-nav-drawer {
		inset-block-start: var(--xiunos-mobile-header-height);
		inset-block-end: auto;
		block-size: calc(100dvh - var(--xiunos-mobile-header-height));
		padding: 0;
		box-shadow: var(--xiunos-shadow);
	}

	#nav.xiunos-nav-drawer {
		padding: 0;
	}

	.offcanvas-backdrop {
		inset-block-start: var(--xiunos-mobile-header-height);
		block-size: calc(100dvh - var(--xiunos-mobile-header-height));
	}

	.xiunos-navbar .offcanvas-lg .offcanvas-body {
		display: flex; flex-direction: column; padding: 0.9rem;
	}

	.xiunos-navbar .offcanvas-lg .xiunos-drawer-home {
		margin-bottom: 0.7rem;
		padding-bottom: 0.9rem;
		border-bottom: 1px solid var(--xiunos-border);
	}

	.xiunos-navbar .offcanvas-lg .nav-link {
		padding: 0.7rem 0.8rem;
		border-radius: var(--xiunos-radius-sm);
	}

	.xiunos-navbar .offcanvas-lg .nav-item + .nav-item {
		margin-top: 0.2rem;
	}

	.xiunos-navbar .offcanvas-lg .nav-item.active > .nav-link,
	.xiunos-navbar .offcanvas-lg .nav-link[aria-current="page"] {
		background-color: color-mix(in srgb, var(--xiunos-brand) 12%, transparent);
		box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--xiunos-brand) 22%, transparent);
	}

	.xiunos-navbar .offcanvas-lg .xiunos-drawer-account {
		margin-top: auto; padding-top: 0.9rem;
		border-top: 1px solid var(--xiunos-border);
	}

	.xiunos-navbar .offcanvas-lg .dropdown-menu {
		position: static !important;
		inset: auto !important;
		transform: none !important;
		width: 100%;
		margin: 0 0 0.5rem;
		box-shadow: none;
	}

	.xiunos-navbar .offcanvas-lg button.nav-link {
		width: 100%;
		text-align: start;
	}
}

@media (min-width: 992px) {
	.xiunos-navbar .offcanvas-lg .xiunos-drawer-section {
		display: contents;
	}

	.xiunos-navbar .offcanvas-lg .xiunos-drawer-icon {
		display: none;
	}
}

@media (max-width: 575.98px) {
	#body > .container {
		--bs-gutter-x: 1rem;
	}

	.xiunos-thread-row {
		gap: 0.75rem !important;
	}

	.xiunos-thread-meta {
		display: block !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.xiunos-modern *,
	.xiunos-modern *::before,
	.xiunos-modern *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media (prefers-contrast: more) {
	:root {
		--xiunos-border: currentColor;
		--xiunos-shadow: none;
	}

	.xiunos-surface {
		background-color: rgb(var(--xiunos-panel-rgb));
	}

	.xiunos-modern a:not(.btn):not(.nav-link):not(.dropdown-item) {
		text-decoration: underline;
	}
}

@media (forced-colors: active) {
	.xiunos-surface,
	.xiunos-modern .card {
		color: CanvasText;
		background: Canvas;
		border-color: CanvasText;
		box-shadow: none;
	}

	.xiunos-focus-ring:focus-visible,
	.xiunos-modern :where(a, button, input, select, textarea):focus-visible {
		outline-color: Highlight;
	}
}
