/* ============================================
   ZnoteAAC — Modern Premium Dark Theme
   ============================================ */

/* --- Google Fonts Import --- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* ============================================
   1. DESIGN TOKENS (CSS Variables)
   ============================================ */
:root {
	/* Backgrounds */
	--primary: #1e2128;
	--primary-hover: #252830;
	--secondary: #181a20;
	--tertiary: #141620;
	--surface: #22252e;
	--surface-hover: #2a2d38;
	--border: rgba(255, 255, 255, 0.06);
	--border-strong: rgba(255, 255, 255, 0.1);

	/* Brand accent — gold */
	--accent: #d4a843;
	--accent-hover: #e8be5a;
	--accent-dim: rgba(212, 168, 67, 0.15);
	--accent-glow: rgba(212, 168, 67, 0.25);

	/* Text */
	--font-color: #b0b8c8;
	--font-muted: #6b7280;
	--font-bright: #e2e6ed;
	--font-heading: #d1d5de;

	/* Links */
	--anchor: #c9a04e;
	--anchor-hover: #e8be5a;

	/* Status colors */
	--bg-danger: #2d1219;
	--color-danger: #e87c7c;
	--border-danger: #5c2020;

	--bg-warning: #2d2412;
	--color-warning: #e8b84c;
	--border-warning: #5c4a1a;

	--bg-info: #122030;
	--color-info: #5fa8d4;
	--border-info: #1a3a5c;

	--bg-success: #122d1a;
	--color-success: #5cd47a;
	--border-success: #1a5c2a;

	--bg-default: #14161c;
	--color-default: #c9a04e;
	--border-default: rgba(255, 255, 255, 0.06);

	/* Spacing scale */
	--space-xs: 4px;
	--space-sm: 8px;
	--space-md: 16px;
	--space-lg: 24px;
	--space-xl: 32px;
	--space-2xl: 48px;

	/* Border radius */
	--radius-sm: 6px;
	--radius-md: 10px;
	--radius-lg: 14px;
	--radius-xl: 20px;

	/* Shadows */
	--shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);
	--shadow-md: 0 4px 16px rgba(0, 0, 0, 0.25);
	--shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.35);
	--shadow-glow: 0 0 20px rgba(212, 168, 67, 0.08);

	/* Font */
	--font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}


/* ============================================
   2. RESET & BASE
   ============================================ */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body {
	font-family: var(--font-family);
	color: var(--font-color);
	background: var(--tertiary);
	line-height: 1.6;
	font-size: 14px;
}

ul { margin: 0; padding: 0; }
li { list-style: none; }

a {
	text-decoration: none;
	color: var(--anchor);
	transition: color 0.3s ease;
}
a:hover {
	color: var(--anchor-hover);
}
a:hover, button:hover, input[type="submit"]:hover {
	cursor: pointer;
}

/* Custom selection */
::selection {
	background: var(--accent-dim);
	color: var(--font-bright);
}

/* Custom scrollbar */
::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}
::-webkit-scrollbar-track {
	background: var(--secondary);
}
::-webkit-scrollbar-thumb {
	background: var(--surface);
	border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
	background: var(--primary-hover);
}


/* ============================================
   3. LAYOUT
   ============================================ */
.main {
	width: 1240px;
	max-width: 96%;
	margin: 0 auto;
	padding: var(--space-lg) 0;
	position: relative;
	z-index: 1;
}

.feedContainer {
	margin-top: var(--space-lg);
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-lg);
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
}

.topPane {
	width: 100%;
	margin-bottom: 0;
	background: var(--primary);
	border-radius: var(--radius-lg);
	border: 1px solid var(--border);
	padding: var(--space-md);
}

.leftPane {
	flex: 1;
	min-width: 0;
}

.rightPane {
	width: 320px;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
}

.body {
	padding: var(--space-md) 0;
}

.pull-left { float: left; }
.pull-right { float: right; }
.preventCollapse { overflow: hidden; }
.centralizeContent { text-align: center; }

.ellipsis {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}


/* ============================================
   4. NAVIGATION
   ============================================ */
nav {
	background: rgba(30, 33, 40, 0.85);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	position: relative;
	z-index: 100;
}

nav .container {
	padding: 0 var(--space-md);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

nav .container > div > ul > li {
	display: inline-block;
	position: relative;
}

nav .container > div > ul > li > a {
	display: block;
	padding: var(--space-md) var(--space-lg);
	color: var(--font-color);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0.3px;
	transition: color 0.3s ease, background 0.3s ease;
	border-radius: var(--radius-sm);
}

nav .container > div > ul > li > a:hover {
	color: var(--accent-hover);
	background: rgba(212, 168, 67, 0.06);
}

nav .container > div > ul > li > a i {
	margin-right: 6px;
	font-size: 14px;
	opacity: 0.7;
}

/* Dropdown menus */
nav .container > div > ul > li > ul {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	width: 220px;
	background: var(--primary);
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
	padding: var(--space-xs) 0;
	z-index: 200;
	animation: dropdownSlide 0.25s ease;
}

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

nav .container > div > ul > li:hover > ul {
	display: block;
}

nav .container > div > ul > li > ul > li > a {
	display: block;
	padding: var(--space-sm) var(--space-lg);
	color: var(--font-color);
	font-size: 13px;
	transition: all 0.25s ease;
}

nav .container > div > ul > li > ul > li > a:hover {
	background: var(--accent-dim);
	color: var(--accent-hover);
	padding-left: var(--space-xl);
}

/* Lock/Unlock icon toggle */
.modIcon > i:nth-child(2) { display: none; }
.modIcon:hover > i:nth-child(1) { display: none; }
.modIcon:hover > i:nth-child(2) { display: inline-block; }

/* Mobile menu toggle (hidden by default) */
.mobile-menu-toggle {
	display: none;
	background: transparent;
	border: 1px solid var(--border-strong);
	color: var(--font-color);
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--radius-sm);
	font-size: 18px;
	cursor: pointer;
	transition: all 0.3s ease;
}
.mobile-menu-toggle:hover {
	color: var(--accent);
	border-color: var(--accent-dim);
}


/* ============================================
   5. BANNER / HERO
   ============================================ */
.banner {
	background: url("../img/header.png");
	height: 240px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	margin-top: var(--space-lg);
	border-radius: var(--radius-lg);
	border: 1px solid var(--border);
	position: relative;
	overflow: hidden;
	box-shadow: var(--shadow-md);
}

.banner::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		transparent 40%,
		rgba(20, 22, 32, 0.6) 100%
	);
	pointer-events: none;
}


/* ============================================
   6. CARDS / WIDGETS / WELLS
   ============================================ */
.well {
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	overflow: hidden;
}

.widget,
.well.loginContainer,
.well.search_widget {
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.widget:hover,
.well.loginContainer:hover,
.well.search_widget:hover {
	box-shadow: var(--shadow-md), var(--shadow-glow);
	border-color: var(--border-strong);
}

.header {
	color: var(--accent);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	padding: var(--space-md) var(--space-lg);
	background: linear-gradient(135deg, rgba(212, 168, 67, 0.08) 0%, transparent 100%);
	border-bottom: 1px solid var(--border);
	width: auto;
}

.widget .body,
.search_widget .body {
	padding: var(--space-md);
}

.widget,
.widget .body,
.search_widget,
.search_widget .body {
	padding-bottom: 0;
}

.widget center {
	margin: auto;
}

.widget h3 {
	margin-bottom: 0;
}

/* News post holders */
.postHolder {
	margin-bottom: var(--space-lg);
}

.postHolder .well {
	box-shadow: var(--shadow-sm);
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.postHolder .well:hover {
	box-shadow: var(--shadow-md);
	border-color: var(--border-strong);
}

.postHolder iframe {
	display: block;
	margin: auto;
}


/* ============================================
   7. TABLES
   ============================================ */
table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--radius-md);
	overflow: hidden;
}

td, th {
	padding: var(--space-sm) var(--space-md);
	text-align: left;
}

th {
	font-weight: 600;
	color: var(--font-heading);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

tr:nth-child(2n+1) {
	background: rgba(255, 255, 255, 0.02);
}

tr:nth-child(2n) {
	background: transparent;
}

tr:hover {
	background: rgba(212, 168, 67, 0.04);
}

tr.yellow td,
td.zheadline {
	background: linear-gradient(135deg, rgba(212, 168, 67, 0.1) 0%, rgba(212, 168, 67, 0.03) 100%);
	color: var(--accent);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.3px;
	border-bottom: 1px solid var(--border);
}

/* News table */
#news,
#changelogTable {
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	margin-bottom: var(--space-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
}

table .header,
table .well {
	padding: var(--space-md);
}


/* ============================================
   8. FORMS & INPUTS
   ============================================ */
input, select, textarea {
	font-family: var(--font-family);
}

input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) {
	background: var(--secondary);
	color: var(--font-bright);
	height: 42px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	font-size: 14px;
	padding: 0 var(--space-md);
	transition: all 0.3s ease;
	outline: none;
}

input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus {
	border-color: var(--accent);
	box-shadow: 0 0 0 3px var(--accent-dim);
}

input:not([type="submit"]):not([type="checkbox"]):not([type="radio"])::placeholder {
	color: var(--font-muted);
}

select {
	background: var(--secondary);
	color: var(--font-color);
	height: 42px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	font-size: 14px;
	padding: 0 var(--space-md);
	cursor: pointer;
	transition: all 0.3s ease;
	outline: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 36px;
}

select:focus {
	border-color: var(--accent);
	box-shadow: 0 0 0 3px var(--accent-dim);
}

/* Submit buttons */
input[type="submit"],
button[type="submit"],
.submitButton {
	background: linear-gradient(135deg, var(--accent) 0%, #b8922e 100%);
	color: #1a1a1a;
	height: 44px;
	border: none;
	border-radius: var(--radius-sm);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.5px;
	padding: 0 var(--space-xl);
	cursor: pointer;
	transition: all 0.3s ease;
	text-transform: uppercase;
	box-shadow: 0 2px 8px rgba(212, 168, 67, 0.2);
}

input[type="submit"]:hover,
button[type="submit"]:hover,
.submitButton:hover {
	background: linear-gradient(135deg, var(--accent-hover) 0%, var(--accent) 100%);
	transform: translateY(-1px);
	box-shadow: 0 4px 16px rgba(212, 168, 67, 0.3);
}

input[type="submit"]:active,
button[type="submit"]:active,
.submitButton:active {
	transform: translateY(0);
	box-shadow: 0 2px 8px rgba(212, 168, 67, 0.15);
}


/* ============================================
   9. LOGIN FORM (Sidebar Widget)
   ============================================ */
.loginForm {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}

.loginForm .well {
	width: 100%;
	background: transparent;
	border: none;
	border-radius: 0;
	padding: var(--space-xs) 0;
}

.loginForm label {
	display: block;
	margin-bottom: var(--space-xs);
	color: var(--font-muted);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.loginForm input:not([type="submit"]) {
	width: 100%;
	height: 38px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	background: var(--secondary);
}

.loginForm button,
.loginForm input[type="submit"] {
	width: 100%;
	margin-top: var(--space-sm);
}

.loginForm button:hover {
	background: linear-gradient(135deg, var(--accent-hover) 0%, var(--accent) 100%);
}

#loginContainer li {
	text-align: right;
}

/* Login widget links */
.loginContainer center {
	padding: var(--space-md) 0;
}

.loginContainer center h3 {
	margin-bottom: var(--space-xs);
}

.loginContainer center h3 a {
	font-size: 15px;
	font-weight: 600;
}

.loginContainer center p {
	font-size: 12px;
	color: var(--font-muted);
}


/* ============================================
   10. SEARCH FORM / WIDGET
   ============================================ */
.searchForm {
	width: 220px;
}

.searchForm input {
	width: 100%;
	height: 36px;
	font-size: 13px;
}

.search_widget form {
	margin: auto;
}

.search_widget input {
	width: calc(100% - 70px);
	float: left;
}

.search_widget label {
	padding: 10px;
	float: left;
	color: var(--font-muted);
	font-size: 12px;
	font-weight: 500;
}

.search_widget form:after {
	display: block;
	content: '';
	clear: both;
}

div.relative {
	position: relative;
}

.search_widget #name_suggestion {
	position: absolute;
	width: 100%;
	left: 0;
	top: 100%;
	display: none;
	z-index: 50;
	background: var(--primary);
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
	margin-top: var(--space-xs);
	overflow: hidden;
}

.search_widget #name_suggestion.show {
	display: block;
}

.search_widget .sname {
	text-align: right;
}

.search_widget .sname a {
	display: block;
	background-color: transparent;
	padding: var(--space-sm) var(--space-md);
	border-bottom: 1px solid var(--border);
	transition: all 0.2s ease;
	text-align: left;
}

.search_widget .sname a:hover {
	background: var(--accent-dim);
	color: var(--accent-hover);
}

.search_widget .sname:last-child a {
	border-bottom: none;
}


/* ============================================
   11. COUNTDOWN TIMER
   ============================================ */
#countDownTimer {
	line-height: 2.3;
	padding: 0 var(--space-md);
	color: #5fa8d4;
	font-weight: 500;
	font-size: 14px;
}


/* ============================================
   12. ALERT BOXES
   ============================================ */
.alert-box {
	max-width: 500px;
	font-size: 14px;
	border-radius: var(--radius-md);
	border: 1px solid var(--border);
	margin: 0 auto;
	margin-bottom: var(--space-md);
	text-align: center;
	padding: var(--space-sm) var(--space-md);
	border-left-width: 4px;
}

.alert-default {
	background: var(--bg-default);
	color: var(--color-default);
	border-color: var(--border-default);
	border-left-color: var(--color-default);
}
.alert-info {
	background: var(--bg-info);
	color: var(--color-info);
	border-color: var(--border-info);
	border-left-color: var(--color-info);
}
.alert-success {
	background: var(--bg-success);
	color: var(--color-success);
	border-color: var(--border-success);
	border-left-color: var(--color-success);
}
.alert-warning {
	background: var(--bg-warning);
	color: var(--color-warning);
	border-color: var(--border-warning);
	border-left-color: var(--color-warning);
}
.alert-danger {
	background: var(--bg-danger);
	color: var(--color-danger);
	border-color: var(--border-danger);
	border-left-color: var(--color-danger);
}

.alert-collapse { display: inline-block; }
.alert-size1 { font-size: 12px; }
.alert-size2 { font-size: 15px; }
.alert-size3 { font-size: 18px; }
.alert-size4 { font-size: 20px; }


/* ============================================
   13. SOCIAL MEDIA
   ============================================ */
.smedia {
	font-size: 2em;
}

.smedia a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--radius-md);
	transition: all 0.3s ease;
	color: var(--font-color);
}

.smedia a:hover {
	background: var(--accent-dim);
	color: var(--accent-hover);
	transform: translateY(-2px);
}

.smedia td {
	padding: var(--space-xs);
}


/* ============================================
   14. LINK BUTTONS
   ============================================ */
ul.linkbuttons {
	margin-top: var(--space-sm);
	padding: 0 var(--space-sm);
}

ul.linkbuttons li {
	border: 1px solid var(--accent-dim);
	border-radius: var(--radius-sm);
	width: calc(50% - 12px);
	float: left;
	margin-bottom: var(--space-md);
	text-align: center;
	transition: all 0.3s ease;
}

ul.linkbuttons li:hover {
	border-color: var(--accent);
	box-shadow: 0 0 12px var(--accent-dim);
}

ul.linkbuttons li:nth-child(odd) {
	margin-right: var(--space-md);
}

ul.linkbuttons li a {
	padding: var(--space-sm) 0;
	display: inline-block;
	width: 100%;
	text-align: center;
	font-weight: 500;
	font-size: 13px;
}

ul.linkbuttons:after {
	content: '';
	display: block;
	clear: both;
}


/* ============================================
   15. FOOTER
   ============================================ */
footer {
	background: var(--primary) !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-lg);
	margin-top: var(--space-lg);
	padding: var(--space-lg) var(--space-xl) !important;
	box-shadow: var(--shadow-sm);
}

footer p {
	font-size: 12px;
	color: var(--font-muted);
	line-height: 1.8;
}

footer a {
	color: var(--accent);
	font-weight: 500;
}

footer a:hover {
	color: var(--accent-hover);
}


/* ============================================
   16. HEADINGS & TYPOGRAPHY
   ============================================ */
h1 {
	font-size: clamp(22px, 2.5vw, 28px);
	font-weight: 700;
	color: var(--font-heading);
	margin-bottom: var(--space-lg);
	letter-spacing: -0.3px;
}

h2 {
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 600;
	color: var(--font-heading);
	margin-bottom: var(--space-md);
}

h3 {
	font-size: 16px;
	font-weight: 600;
	color: var(--font-heading);
}

p {
	margin-bottom: var(--space-sm);
	line-height: 1.7;
}


/* ============================================
   17. PAGE-SPECIFIC STYLES
   ============================================ */

/* Character Profile */
.page_characterprofile #characterProfileTable thead th:first-of-type {
	position: relative;
	width: 28%;
}

.page_characterprofile #characterProfileTable thead th:last-of-type {
	text-align: left;
	padding-left: var(--space-md);
}

.page_characterprofile .outfit {
	position: absolute;
	top: 0;
	left: 0;
}

.page_characterprofile .flag {
	position: absolute;
	top: var(--space-md);
	right: var(--space-md);
}

/* Credits page */
.page_credits .feedContainer .pull-left.leftPane {
	box-sizing: border-box;
	padding-left: var(--space-sm);
	padding-right: var(--space-sm);
}

/* Znote AAC */
.leftPane img {
	max-width: 100%;
	border-radius: var(--radius-sm);
}

/* YouTube embeds */
.youtube {
	margin: var(--space-md) 0;
}

.aspectratio {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}

.aspectratio iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: var(--radius-sm);
}

/* Server info widget */
.widget ul {
	padding: 0;
}

.widget li {
	padding: var(--space-xs) 0;
	font-size: 13px;
}


/* ============================================
   18. REGISTER / FORM PAGES
   ============================================ */
form ul {
	padding: 0;
}

form ul li {
	margin-bottom: var(--space-md);
	font-size: 14px;
	color: var(--font-color);
}

form ul li input:not([type="submit"]) {
	margin-top: var(--space-xs);
}


/* ============================================
   19. NEWS PAGE SELECT
   ============================================ */
select[name="newspage"] {
	margin-top: var(--space-md);
	min-width: 120px;
}


/* ============================================
   20. UTILITY CLASSES
   ============================================ */
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-muted { color: var(--font-muted); }

/* Smooth fade-in animation */
@keyframes fadeIn {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

.widget,
.postHolder .well,
#news,
#changelogTable {
	animation: fadeIn 0.4s ease;
}

/* Table wrapper for overflow on mobile */
.table-responsive {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: var(--radius-md);
}


/* ============================================
   21. ENHANCED BODY BACKGROUND
   ============================================ */
body {
	background: linear-gradient(180deg, #0f1118 0%, var(--tertiary) 300px);
	background-attachment: fixed;
}


/* ============================================
   22. TEXTAREAS
   ============================================ */
textarea {
	background: var(--secondary);
	color: var(--font-bright);
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	font-size: 14px;
	font-family: var(--font-family);
	padding: var(--space-md);
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
	outline: none;
	resize: vertical;
	line-height: 1.6;
	width: 100%;
	max-width: 100%;
	min-height: 120px;
}

textarea:focus {
	border-color: var(--accent);
	box-shadow: 0 0 0 3px var(--accent-dim);
}


/* ============================================
   23. FORUM STYLES
   ============================================ */

/* Forum tables */
.znoteTable,
.ThreadTable {
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	margin-bottom: var(--space-md);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
}

/* Avatar cell in forum posts */
td.avatar {
	width: 140px;
	text-align: center;
	vertical-align: top;
	padding: var(--space-md);
	background: rgba(0, 0, 0, 0.1);
	border-right: 1px solid var(--border);
}

td.avatar a {
	font-weight: 600;
	font-size: 13px;
}

td.avatar img {
	display: block;
	margin: var(--space-sm) auto;
	border-radius: var(--radius-sm);
}

td.avatar span {
	display: block;
	font-size: 11px;
	color: var(--font-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-top: var(--space-xs);
}

/* Forum reply textarea */
.forumReply {
	width: 100% !important;
	max-width: 100% !important;
	min-height: 150px;
}

/* Forum cooldown warning */
.forumCooldown {
	color: var(--color-danger) !important;
	font-size: 13px;
	font-weight: 500;
}

/* Forum admin table */
.adminTable {
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	margin-bottom: var(--space-md);
}

.adminTable td {
	padding: var(--space-xs);
}

/* Edit thread table */
.editThread {
	margin-bottom: var(--space-md);
}

/* Update table (admin edit forms) */
.updateTable {
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	margin-bottom: var(--space-lg);
}

.updateTable label {
	font-weight: 500;
	color: var(--font-muted);
	font-size: 13px;
}

/* Forum linkmap / breadcrumb */
font {
	font-size: 13px;
	line-height: 2;
}

/* BB code hint bar */
.forumReply + select,
.forumReply ~ select {
	margin-top: var(--space-sm);
}

/* Post action buttons */
.postButton {
	display: inline-block;
	margin-right: var(--space-sm);
	margin-bottom: var(--space-sm);
}

.postButton input[type="submit"] {
	height: 34px;
	font-size: 12px;
	padding: 0 var(--space-md);
}


/* ============================================
   24. SHOP STYLES
   ============================================ */

/* Category navigator tabs */
#categoryNavigator {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-bottom: var(--space-lg);
	padding: var(--space-sm);
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
}

#categoryNavigator .nav_link {
	display: inline-flex;
	align-items: center;
	padding: var(--space-sm) var(--space-lg);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: var(--font-color);
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	transition: all 0.3s ease;
}

#categoryNavigator .nav_link:hover {
	color: var(--accent-hover);
	background: var(--accent-dim);
	border-color: var(--accent);
}

/* Shop show/hide tables */
table.show {
	display: table;
}

table.hide {
	display: none;
}

/* Purchase buttons */
.needconfirmation {
	height: 36px !important;
	font-size: 12px !important;
	padding: 0 var(--space-md) !important;
	letter-spacing: 0.8px;
}

/* Outfit images in shop / tables */
.outfitColumn img,
td img[alt="img"] {
	border-radius: var(--radius-sm);
}


/* ============================================
   25. HORIZONTAL RULES / SEPARATORS
   ============================================ */
hr {
	border: none;
	height: 1px;
	background: var(--border);
	margin: var(--space-md) 0;
}

hr.bighr {
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--border-strong), transparent);
	margin: var(--space-lg) 0;
}


/* ============================================
   26. VOTE WIDGET
   ============================================ */
.vote_widget .body {
	padding: var(--space-md);
}

.vote_widget .body form {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	align-items: flex-start;
}

.vote_widget .body form input[type="submit"] {
	width: 100%;
}


/* ============================================
   27. INLINE FONT-COLOR FIXES
   ============================================ */

/* Legacy font tags with color attributes — give them proper styling */
font[color="red"] {
	color: var(--color-danger) !important;
	font-weight: 500;
}

font[color="green"] {
	color: var(--color-success) !important;
	font-weight: 500;
}

/* Error/success messages within content */
.leftPane font[size="4"] {
	display: block;
	padding: var(--space-md);
	border-radius: var(--radius-md);
	margin-bottom: var(--space-md);
	line-height: 1.7;
}

.leftPane font[color="red"][size="4"] {
	background: var(--bg-danger);
	border: 1px solid var(--border-danger);
}

.leftPane font[color="green"][size="4"] {
	background: var(--bg-success);
	border: 1px solid var(--border-success);
}


/* ============================================
   28. PAGINATION / SELECTS IN CONTENT
   ============================================ */
form select + select {
	margin-left: var(--space-sm);
}

form select + input[type="submit"] {
	margin-left: var(--space-sm);
}


/* ============================================
   29. CHECKBOX & RADIO ENHANCEMENT
   ============================================ */
input[type="checkbox"],
input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: var(--accent);
	cursor: pointer;
	vertical-align: middle;
}


/* ============================================
   30. NAV ACCENT LINE
   ============================================ */
nav::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60%;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--accent), transparent);
	border-radius: 0 0 2px 2px;
	opacity: 0.4;
}


/* ============================================
   31. WIDGET BODY PADDING FIX
   ============================================ */
.widget .body,
.vote_widget .body,
.myaccount_widget .body {
	padding: var(--space-md);
	padding-top: var(--space-sm);
}


/* ============================================
   32. GENERAL LABEL STYLING
   ============================================ */
label {
	display: inline-block;
	margin-bottom: var(--space-xs);
	color: var(--font-muted);
	font-size: 13px;
	font-weight: 500;
}

/* Labels within table cells (admin forms, etc.) */
td label {
	margin-bottom: 0;
}


/* ============================================
   33. BOOTSTRAP COMPATIBILITY CLASSES
   ============================================ */
.btn {
	display: inline-block;
	padding: var(--space-sm) var(--space-lg);
	font-size: 13px;
	font-weight: 600;
	border: none;
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: all 0.3s ease;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-family: var(--font-family);
}

.btn-primary {
	background: linear-gradient(135deg, #3b82f6, #2563eb);
	color: #fff;
}

.btn-primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.btn-success {
	background: linear-gradient(135deg, #22c55e, #16a34a);
	color: #fff;
}

.btn-success:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);
}

.btn-warning {
	background: linear-gradient(135deg, #eab308, #ca8a04);
	color: #1a1a1a;
}

.btn-warning:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(234, 179, 8, 0.3);
}

.btn-danger {
	background: linear-gradient(135deg, #ef4444, #dc2626);
	color: #fff;
}

.btn-danger:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.btn-info {
	background: linear-gradient(135deg, #06b6d4, #0891b2);
	color: #fff;
}

.btn-info:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(6, 182, 212, 0.3);
}


/* ============================================
   34. GALLERY PAGE
   ============================================ */
.gallery-container img {
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	max-width: 100%;
}

.gallery-container img:hover {
	transform: scale(1.02);
	box-shadow: var(--shadow-md);
}


/* ============================================
   35. LOADING STATE SHIMMER
   ============================================ */
@keyframes shimmer {
	0% { background-position: -200% 0; }
	100% { background-position: 200% 0; }
}

.loading-placeholder {
	background: linear-gradient(90deg,
		var(--surface) 25%,
		var(--surface-hover) 50%,
		var(--surface) 75%
	);
	background-size: 200% 100%;
	animation: shimmer 1.5s infinite;
	border-radius: var(--radius-sm);
}
