/* ============================================
   Lumimon - Modern Light Theme (override)
   Loaded after style.css to re-skin the site
   without touching the original stylesheet.
   ============================================ */

:root {
	/* backgrounds */
	--primary: #ffffff;
	--secondary: #f4f6fb;
	--third: #d8dee9;
	--border: #e2e6ee;

	/* text */
	--font-color: #3a4257;

	/* Links / anchors */
	--anchor: #2f6fed;
	--anchor-hover: #ef4444;

	/* buttons or alert boxes with different colors */
	--bg-danger: #fdecec;
	--color-danger: #c0392b;
	--border-danger: #f3b7b0;

	--bg-warning: #fff6e0;
	--color-warning: #a9720b;
	--border-warning: #f2dca0;

	--bg-info: #e7f1ff;
	--color-info: #1c5cc9;
	--border-info: #bcd7ff;

	--bg-success: #e7f9ee;
	--color-success: #1c9a4b;
	--border-success: #b8ecca;

	--bg-default: #f4f6fb;
	--color-default: #5c6580;
	--border-default: #e2e6ee;

	/* new accents used below */
	--accent: #2f6fed;
	--accent-soft: #eaf1ff;
	--shadow: 0 4px 16px rgba(30, 41, 76, 0.08);
	--shadow-soft: 0 2px 8px rgba(30, 41, 76, 0.06);
	--radius: 14px;
	--radius-sm: 8px;

	/* spacing scale - use these instead of one-off px values */
	--sp-1: 4px;
	--sp-2: 8px;
	--sp-3: 12px;
	--sp-4: 16px;
	--sp-5: 24px;
	--sp-6: 32px;

	/* typography scale */
	--fs-sm: 0.85rem;
	--fs-base: 0.95rem;
	--fs-lg: 1.1rem;
	--fs-h3: 1.25rem;
	--fs-h2: 1.5rem;
	--fs-h1: 1.9rem;
}

body {
	font-family: 'Segoe UI', 'Poppins', system-ui, -apple-system, Roboto, Arial, sans-serif;
	background: linear-gradient(160deg, #eaf1ff 0%, #f4f6fb 35%, #fff8ea 100%) !important;
	color: var(--font-color);
	font-size: var(--fs-base);
	line-height: 1.55;
	min-height: 100vh;
}

/* ---------- Typography scale ---------- */
h1 { font-size: var(--fs-h1); font-weight: 700; margin: 0 0 var(--sp-4); }
h2 { font-size: var(--fs-h2); font-weight: 700; margin: 0 0 var(--sp-3); }
h3 { font-size: var(--fs-h3); font-weight: 700; margin: 0 0 var(--sp-3); }
p { margin: 0 0 var(--sp-3); }

a { color: var(--anchor); }
a:hover { color: var(--anchor-hover); }

/* Keep padding/border from ever pushing elements past their set width (fixes leftPane/rightPane wrapping) */
*, *::before, *::after { box-sizing: border-box; }

/* ---------- Navigation ---------- */
nav {
	position: relative;
	z-index: 40;
	border: none;
	background: var(--primary);
	box-shadow: var(--shadow-soft);
	border-radius: 0 0 var(--radius) var(--radius);
	margin-bottom: 1rem;
}
nav .container {
	background: transparent !important;
	border-bottom: none !important;
}
nav .container > div > ul > li > a {
	color: var(--font-color);
	font-weight: 600;
	transition: color 0.15s ease;
}
nav .container > div > ul > li > a:hover {
	color: var(--accent);
}
nav .container > div > ul > li > ul {
	background: var(--primary) !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	overflow: hidden;
	margin-top: 0;
	padding-top: 4px;
	z-index: 50;
}
nav .container > div > ul > li > ul > li > a:hover {
	background: var(--accent-soft) !important;
	color: var(--accent);
}

/* Language switcher (flags) */
.langSwitcher {
	display: inline-flex !important;
	align-items: center;
	vertical-align: middle;
	gap: 2px;
	padding: 0 !important;
	margin-right: var(--sp-2);
}
.langSwitcher a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 6px !important;
	font-size: 1.15rem;
	line-height: 1;
	border-radius: 999px;
	opacity: 0.4;
	filter: grayscale(60%);
	transition: opacity 0.15s ease, background 0.15s ease, filter 0.15s ease;
}
.langSwitcher a:hover {
	opacity: 0.75;
	filter: grayscale(0%);
	background: var(--secondary) !important;
}
.langSwitcher a.langActive {
	opacity: 1;
	filter: grayscale(0%);
	background: var(--accent-soft) !important;
}

/* ---------- Layout panes / cards ---------- */
.leftPane, .rightPane, .topPane,
.feedContainer, footer, .well, table {
	background: var(--primary) !important;
	border: 1px solid var(--border);
	border-radius: var(--radius) !important;
	box-shadow: var(--shadow-soft);
}

.header {
	color: var(--accent) !important;
	font-weight: 700;
	border-bottom: 1px solid var(--border);
}

/* Colored top accent stripe on cards for a bit more life */
.leftPane, .rightPane, .topPane, .feedContainer, .widget {
	border-top: 3px solid var(--accent) !important;
}
footer { border-top: 3px solid #ef4444 !important; }

/* Section header rendered as a colored chip instead of plain text */
.header, .widget > .header {
	display: inline-flex;
	align-items: center;
	background: var(--accent-soft);
	color: var(--accent) !important;
	padding: var(--sp-1) var(--sp-3);
	border-radius: 999px;
	border-bottom: none;
	font-size: var(--fs-sm);
	text-transform: uppercase;
	letter-spacing: 0.4px;
}

tr:nth-child(2n+1) {
	background: var(--secondary) !important;
}

footer, .feedContainer, nav .container, .topPane {
	border-bottom: 1px solid var(--border) !important;
}

/* ---------- Forms / inputs ---------- */
input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
select, textarea, .searchForm input, .loginForm input {
	background: var(--primary) !important;
	color: var(--font-color) !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-sm);
	padding: 0 var(--sp-3);
	height: 38px;
	font-size: var(--fs-base);
	box-sizing: border-box;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
textarea { height: auto; padding: var(--sp-2) var(--sp-3); }
input::placeholder, textarea::placeholder { color: #9aa3b8; }

input:not([type="submit"]):not([type="button"]):focus,
select:focus, textarea:focus {
	outline: none;
	border-color: var(--accent) !important;
	box-shadow: 0 0 0 3px var(--accent-soft);
}

/* Consistent vertical rhythm for stacked form fields (label + input pairs) */
.loginForm .well, form > .well {
	margin-bottom: var(--sp-3);
}
label {
	display: inline-block;
	margin-bottom: var(--sp-1);
	font-size: var(--fs-sm);
	font-weight: 600;
	color: var(--font-color);
}

/* ---------- Buttons (all variants funneled into one look) ---------- */
button,
input[type="submit"],
input[type="button"],
.loginForm button,
.btn,
.submitButton {
	background: var(--accent) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--radius-sm) !important;
	font-weight: 600;
	font-size: var(--fs-base);
	letter-spacing: 0.2px;
	height: 38px;
	padding: 0 var(--sp-4);
	cursor: pointer;
	transition: background 0.15s ease, transform 0.05s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
button:hover, input[type="submit"]:hover, input[type="button"]:hover,
.loginForm button:hover, .btn:hover, .submitButton:hover {
	background: #1f5ad9 !important;
}
button:active, input[type="submit"]:active, .btn:active {
	transform: translateY(1px);
}

/* Secondary / neutral button */
.btn-default, .btn-secondary {
	background: var(--secondary) !important;
	color: var(--font-color) !important;
	border: 1px solid var(--border) !important;
}
.btn-default:hover, .btn-secondary:hover {
	background: var(--third) !important;
}

/* ---------- Alert boxes ---------- */
.alert-box {
	border-radius: 10px;
	border-width: 1px;
	font-weight: 500;
	padding: var(--sp-3) var(--sp-4);
}

/* ---------- Misc polish: consistent card padding + spacing between blocks ---------- */
.feedContainer, footer, .leftPane, .rightPane, .topPane, .well {
	padding: var(--sp-4);
}
.widget .header, .leftPane > .header, .rightPane > .header {
	padding-bottom: var(--sp-2);
	margin-bottom: var(--sp-3);
}
table td, table th { padding: var(--sp-2) var(--sp-3); }
.postHolder, .widget { margin-bottom: var(--sp-4); }

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--secondary); }
::-webkit-scrollbar-thumb { background: var(--third); border-radius: 8px; }

/* ============================================
   Pokemon-flavored touches
   ============================================ */

/* Subtle pokeball watermark layered on top of the gradient set on body earlier */
body {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Ccircle cx='60' cy='60' r='34' fill='none' stroke='%232f6fed' stroke-opacity='0.05' stroke-width='3'/%3E%3Cline x1='26' y1='60' x2='94' y2='60' stroke='%232f6fed' stroke-opacity='0.05' stroke-width='3'/%3E%3Ccircle cx='60' cy='60' r='8' fill='none' stroke='%232f6fed' stroke-opacity='0.06' stroke-width='3'/%3E%3C/svg%3E"),
		linear-gradient(160deg, #eaf1ff 0%, #f4f6fb 35%, #fff8ea 100%) !important;
	background-repeat: repeat, no-repeat !important;
	background-size: 120px 120px, cover !important;
	background-attachment: scroll, fixed !important;
}

/* Hero banner strip (the empty .well.banner slot rendered on every page) */
.well.banner {
	position: relative;
	z-index: 1;
	min-height: 120px;
	overflow: hidden;
	background: linear-gradient(120deg, #eef3ff 0%, #ffffff 55%, #fdecec 100%) !important;
	border: 1px solid var(--border);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.well.banner::before {
	content: "";
	position: absolute;
	top: 50%;
	right: -40px;
	width: 220px;
	height: 220px;
	transform: translateY(-50%);
	opacity: 0.9;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='%23fdecec' stroke='%23ef4444' stroke-width='2'/%3E%3Cpath d='M4 50a46 46 0 0 1 92 0Z' fill='%23f9d3d3'/%3E%3Crect x='4' y='47' width='92' height='6' fill='%233a4257'/%3E%3Ccircle cx='50' cy='50' r='14' fill='%23ffffff' stroke='%233a4257' stroke-width='4'/%3E%3Ccircle cx='50' cy='50' r='6' fill='%23eaf1ff' stroke='%233a4257' stroke-width='3'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: none;
}
.well.banner::after {
	content: "Lumimon - A luz que desperta o selvagem.";
	position: relative;
	z-index: 1;
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--font-color);
	padding: 0 240px 0 24px;
	max-width: 100%;
}
@media (max-width: 700px) {
	.well.banner::before { display: none; }
	.well.banner::after { padding: 0 20px; font-size: 1.1rem; }
}

/* Pokeball bullet before section headers */
.header::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 8px;
	vertical-align: middle;
	border-radius: 50%;
	background:
		linear-gradient(#ef4444 50%, #fff 50%),
		radial-gradient(circle, #fff 3px, #3a4257 3px, #3a4257 4px, transparent 4px);
	border: 1.5px solid #3a4257;
	box-sizing: border-box;
}

/* ---------- Shop Offers page ---------- */
.shopHero {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	background: linear-gradient(120deg, #eaf1ff 0%, #ffffff 60%);
	border: 1px solid var(--border);
	border-top: 3px solid var(--accent) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-4);
}
.shopHero-icon { font-size: 2.6rem; line-height: 1; }

.shopGrid.show {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: var(--sp-4);
	margin-bottom: var(--sp-5);
}
.shopGrid.hide {
	display: none !important;
}
.shopCard {
	background: var(--primary);
	border: 1px solid var(--border);
	border-top: 3px solid #f5a623 !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-2);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.shopCard:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow);
}
.shopCard-icon { font-size: 2.4rem; line-height: 1; }
.shopCard-name { font-weight: 700; min-height: 2.4em; display: flex; align-items: center; }
.shopCard-meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-2);
	font-size: var(--fs-sm);
}
.shopCard-qty {
	background: var(--secondary);
	color: var(--color-default);
	padding: 2px var(--sp-2);
	border-radius: 999px;
}
.shopCard-points {
	background: var(--accent-soft);
	color: var(--accent);
	font-weight: 700;
	padding: 2px var(--sp-2);
	border-radius: 999px;
}
.shopCard form { width: 100%; margin-top: var(--sp-1); }
.shopCard input[type="submit"] {
	width: 100%;
	background: linear-gradient(#1c9a4b, #16803e) !important;
}
.shopCard input[type="submit"]:hover { background: #136a34 !important; }

#categoryNavigator {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-bottom: var(--sp-4);
}
#categoryNavigator .nav_link {
	display: inline-block;
	padding: var(--sp-2) var(--sp-4);
	border-radius: 999px;
	background: var(--primary);
	border: 1px solid var(--border);
	color: var(--font-color) !important;
	font-weight: 600;
	font-size: var(--fs-sm);
	text-transform: uppercase;
	letter-spacing: 0.4px;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
#categoryNavigator .nav_link:hover {
	background: var(--accent-soft);
	border-color: var(--accent);
	color: var(--accent) !important;
}

table#cat_itemids, table#cat_premium, table#cat_outfits, table#cat_mounts, table#cat_misc {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0 var(--sp-2);
	margin-bottom: var(--sp-4);
	box-shadow: none !important;
	border: none !important;
}
table#cat_itemids tr.yellow, table#cat_premium tr.yellow, table#cat_outfits tr.yellow, table#cat_mounts tr.yellow, table#cat_misc tr.yellow {
	background: transparent !important;
	color: var(--color-default);
	font-size: var(--fs-sm);
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
table#cat_itemids tr.special, table#cat_premium tr.special, table#cat_outfits tr.special, table#cat_mounts tr.special, table#cat_misc tr.special {
	background: var(--primary) !important;
	border: 1px solid var(--border);
	border-left: 4px solid #f5a623 !important;
	box-shadow: var(--shadow-soft);
}
table#cat_itemids tr.special td, table#cat_premium tr.special td, table#cat_outfits tr.special td, table#cat_mounts tr.special td, table#cat_misc tr.special td {
	padding: var(--sp-3) var(--sp-3);
	vertical-align: middle;
}
table#cat_itemids tr.special td:first-child, table#cat_premium tr.special td:first-child, table#cat_outfits tr.special td:first-child, table#cat_mounts tr.special td:first-child, table#cat_misc tr.special td:first-child {
	font-weight: 700;
}
table .needconfirmation {
	background: linear-gradient(#1c9a4b, #16803e) !important;
	white-space: nowrap;
}
table .needconfirmation:hover { background: #136a34 !important; }
table#cat_itemids img, table#cat_premium img, table#cat_misc img { width: 32px; height: 32px; image-rendering: pixelated; }

/* ---------- Buy Diamonds page ---------- */
.diamondsHero {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	background: linear-gradient(120deg, #fff8ea 0%, #ffffff 60%);
	border: 1px solid var(--border);
	border-top: 3px solid #f5a623 !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-4);
}
.diamondsHero-icon { font-size: 2.6rem; line-height: 1; }

.diamondsForm {
	background: var(--primary);
	border: 1px solid var(--border);
	border-top: 3px solid var(--accent) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-5);
	max-width: 640px;
}
.diamondsForm label { display: block; margin-top: var(--sp-4); }
.diamondsForm label:first-child { margin-top: 0; }
.diamondsForm input[type="number"], .diamondsForm input[type="text"] { width: 100%; max-width: 300px; }
.diamondsForm button { margin-top: var(--sp-4); width: 100%; max-width: 300px; height: 44px; font-size: var(--fs-lg); }

.formRow {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-4);
}
.formRow > div { flex: 1 1 220px; }
.formRow label { margin-top: 0; }
.formRow > div > label { display: block; }
.formRow > div > input, .formRow > div > select, .formRow > div > textarea {
	display: block;
	width: 100%;
}

.diamondPackages {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: var(--sp-3);
	margin-top: var(--sp-2);
}
.diamondPackage {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: var(--sp-3) var(--sp-2);
	border: 2px solid var(--border);
	border-radius: var(--radius-sm);
	cursor: pointer;
	text-align: center;
	transition: border-color 0.15s ease, background 0.15s ease;
	margin-top: 0 !important;
}
.diamondPackage input { position: absolute; opacity: 0; pointer-events: none; }
.diamondPackage:has(input:checked) {
	border-color: #f5a623;
	background: #fff8ea;
}
.diamondPackage-amount { font-weight: 700; font-size: var(--fs-lg); }
.diamondPackage-price { color: var(--accent); font-weight: 600; font-size: var(--fs-sm); }
.diamondPackage-points { color: var(--color-default); font-size: var(--fs-sm); }

.pixResultCard {
	background: var(--primary);
	border: 1px solid var(--border);
	border-top: 3px solid #1c9a4b !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-5);
	max-width: 480px;
	text-align: center;
}
.pixResultCard .pixQr { width: 220px; height: 220px; margin: var(--sp-3) auto; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.pixResultCard textarea#pixCopyPaste {
	width: 100%;
	height: 70px;
	font-family: monospace;
	font-size: var(--fs-sm);
	resize: none;
}
.pixStatus { margin-top: var(--sp-3); font-weight: 600; color: var(--color-warning); }
.pixStatus-ok { color: var(--color-success); }

/* ---------- My Account page ---------- */
.accountHero {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	background: linear-gradient(120deg, #eaf1ff 0%, #ffffff 60%);
	border: 1px solid var(--border);
	border-top: 3px solid var(--accent) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-4);
}
.accountHero-icon { font-size: 2.6rem; line-height: 1; }
.accountHero-premium {
	display: inline-block;
	margin-top: var(--sp-2);
	background: var(--accent-soft);
	color: var(--accent);
	font-weight: 700;
	font-size: var(--fs-sm);
	padding: 2px var(--sp-2);
	border-radius: 999px;
}

.accountSectionTitle {
	margin: var(--sp-5) 0 var(--sp-3);
	font-size: var(--fs-lg);
}

.accountCharGrid {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	margin-bottom: var(--sp-5);
}
.charCard {
	background: var(--primary);
	border: 1px solid var(--border);
	border-left: 3px solid #f5a623 !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-3) var(--sp-4);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-2) var(--sp-4);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.charCard:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow);
}
.charCard-name {
	font-weight: 700;
	font-size: var(--fs-lg);
	white-space: nowrap;
}
.charCard-name a { color: var(--font-color) !important; }
.charCard-status {
	font-size: var(--fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	padding: 2px var(--sp-2);
	border-radius: 999px;
	white-space: nowrap;
}
.charCard-status.online { background: #e3f6ea; color: #16803e; }
.charCard-status.offline { background: var(--secondary); color: var(--color-default); }
.charCard-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-1) var(--sp-4);
	font-size: var(--fs-sm);
	color: var(--color-default);
	flex: 1 1 auto;
}
.charCard-meta strong { color: var(--font-color); font-weight: 600; }
.charCard-hidden {
	font-size: var(--fs-sm);
	color: var(--color-default);
	font-style: italic;
	white-space: nowrap;
}

.accountActionsCard {
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-5);
}
.accountActionsCard .formRow { align-items: flex-end; }
.accountActionsCard .formRow > div { flex: 1 1 200px; }
.accountActionsCard label { margin-top: 0; }
.accountActionsCard button, .accountActionsCard input[type="submit"] {
	background: linear-gradient(#1c9a4b, #16803e) !important;
	width: 100%;
}
.accountActionsCard button:hover, .accountActionsCard input[type="submit"]:hover { background: #136a34 !important; }

/* ---------- Register page ---------- */
.registerHero {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	background: linear-gradient(120deg, #eaf1ff 0%, #ffffff 60%);
	border: 1px solid var(--border);
	border-top: 3px solid var(--accent) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-4);
}
.registerHero-icon { font-size: 2.6rem; line-height: 1; }

.registerCard {
	background: var(--primary);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-5);
	max-width: 640px;
}
.registerCard .formRow > div { flex: 1 1 220px; }
.registerCard label { margin-top: 0; }

.registerRulesNote {
	background: var(--secondary);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: var(--sp-3) var(--sp-4);
	margin: var(--sp-3) 0;
}
.registerRulesNote h3 { margin: 0 0 var(--sp-1); font-size: var(--fs-lg); }
.registerRulesNote p { margin: 0; font-size: var(--fs-sm); color: var(--color-default); }

.registerAgree {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	margin: var(--sp-3) 0;
	font-size: var(--fs-sm);
}
.registerAgree input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

.registerCard button[type="submit"], .registerCard input[type="submit"] {
	background: linear-gradient(#1c9a4b, #16803e) !important;
	width: 100%;
	margin-top: var(--sp-2);
}
.registerCard button[type="submit"]:hover, .registerCard input[type="submit"]:hover { background: #136a34 !important; }

.registerAgree #agreeHint {
	font-style: italic;
	color: var(--color-warning);
	font-weight: 400;
}

.termsModalOverlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(20, 24, 40, 0.55);
	z-index: 1000;
	align-items: center;
	justify-content: center;
	padding: var(--sp-4);
}
.termsModalOverlay.show { display: flex; }
.termsModal {
	background: var(--primary);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	width: 100%;
	max-width: 560px;
	max-height: 80vh;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.termsModal-header {
	padding: var(--sp-4) var(--sp-5);
	border-bottom: 1px solid var(--border);
}
.termsModal-header h3 { margin: 0; }
.termsModal-body {
	padding: var(--sp-4) var(--sp-5);
	overflow-y: auto;
	flex: 1 1 auto;
	font-size: var(--fs-sm);
	color: var(--color-default);
}
.termsModal-body h4 { margin: var(--sp-3) 0 var(--sp-1); font-size: var(--fs-base); color: var(--font-color); }
.termsModal-body h4:first-child { margin-top: 0; }
.termsModal-body p { margin: 0 0 var(--sp-2); }
.termsModal-footer {
	padding: var(--sp-3) var(--sp-5);
	border-top: 1px solid var(--border);
	display: flex;
	align-items: center;
	gap: var(--sp-3);
}
.termsModal-footer button {
	background: linear-gradient(#1c9a4b, #16803e) !important;
	flex: 0 0 auto;
}
.termsModal-footer button:disabled {
	background: var(--secondary) !important;
	color: var(--color-default) !important;
	cursor: not-allowed;
}
.termsModal-hint {
	font-size: var(--fs-sm);
	color: var(--color-default);
	font-style: italic;
}

/* ---------- Protected page ---------- */
.protectedHero {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	background: linear-gradient(120deg, #eaf1ff 0%, #ffffff 60%);
	border: 1px solid var(--border);
	border-top: 3px solid var(--accent) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-4);
}
.protectedHero-stop {
	background: linear-gradient(120deg, #fdeaea 0%, #ffffff 60%);
	border-top: 3px solid #ef4444 !important;
}
.protectedHero-icon { font-size: 2.6rem; line-height: 1; }
.protectedHero-cta {
	display: inline-block;
	margin-top: var(--sp-3);
	background: linear-gradient(#1c9a4b, #16803e) !important;
	color: #fff !important;
	font-weight: 600;
	padding: var(--sp-2) var(--sp-4);
	border-radius: var(--radius-sm);
}
.protectedHero-cta:hover { background: #136a34 !important; }

footer .footer-lumimon {
	margin-top: var(--sp-1);
	font-weight: 600;
	font-size: var(--fs-sm);
	color: var(--color-default);
}

/* ---------- Admin pages ---------- */
.adminHero {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	background: linear-gradient(120deg, #eaf1ff 0%, #ffffff 60%);
	border: 1px solid var(--border);
	border-top: 3px solid var(--accent) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-4);
}
.adminHero-icon { font-size: 2.6rem; line-height: 1; }
.adminHero-meta { margin-top: var(--sp-1); font-size: var(--fs-sm); color: var(--color-default); }

.adminSection {
	background: var(--primary);
	border: 1px solid var(--border);
	border-left: 3px solid var(--accent) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-4) var(--sp-5);
	margin-bottom: var(--sp-4);
}
.adminSection.adminSection-danger { border-left-color: #ef4444 !important; }
.adminSection h3 { margin: 0 0 var(--sp-1); font-size: var(--fs-lg); }
.adminSection .adminSection-hint { margin: 0 0 var(--sp-3); font-size: var(--fs-sm); color: var(--color-default); }
.adminSection .formRow { margin-bottom: var(--sp-3); }
.adminSection .formRow:last-child { margin-bottom: 0; }
.adminSection label { display: block; margin: 0 0 var(--sp-1); font-size: var(--fs-sm); font-weight: 600; }
.adminSection button[type="submit"], .adminSection input[type="submit"] {
	background: linear-gradient(#1c9a4b, #16803e) !important;
	margin-top: var(--sp-2);
}
.adminSection button[type="submit"]:hover, .adminSection input[type="submit"]:hover { background: #136a34 !important; }
.adminSection.adminSection-danger button[type="submit"], .adminSection.adminSection-danger input[type="submit"] {
	background: linear-gradient(#ef4444, #d32f2f) !important;
}
.adminSection.adminSection-danger button[type="submit"]:hover, .adminSection.adminSection-danger input[type="submit"]:hover { background: #b91c1c !important; }
.adminSection table { width: 100%; }
.adminSection table td { padding: var(--sp-1) var(--sp-2) var(--sp-1) 0; vertical-align: middle; }

.adminTable {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0 var(--sp-2);
	margin-bottom: var(--sp-4);
}
.adminTable th {
	text-align: left;
	font-size: var(--fs-sm);
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: var(--color-default);
	padding: 0 var(--sp-3) var(--sp-1);
}
.adminTable td {
	background: var(--primary);
	border: 1px solid var(--border);
	padding: var(--sp-2) var(--sp-3);
	vertical-align: middle;
}
.adminTable tr td:first-child { border-radius: var(--radius-sm) 0 0 var(--radius-sm); border-right: none; }
.adminTable tr td:last-child { border-radius: 0 var(--radius-sm) var(--radius-sm) 0; border-left: none; }

.adminGalleryGrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--sp-4);
	margin-bottom: var(--sp-5);
}
.adminGalleryCard {
	background: var(--primary);
	border: 1px solid var(--border);
	border-top: 3px solid #f5a623 !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	padding: var(--sp-3);
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}
.adminGalleryCard-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-2);
	flex-wrap: wrap;
}
.adminGalleryCard-title { font-weight: 700; }
.adminGalleryCard-actions { display: flex; gap: var(--sp-2); }
.adminGalleryCard-actions form { display: inline; }
.adminGalleryCard-actions input[type="submit"] {
	background: linear-gradient(#1c9a4b, #16803e) !important;
	font-size: var(--fs-sm);
	padding: 4px var(--sp-2) !important;
	height: auto !important;
}
.adminGalleryCard-actions input[value*="Delete" i], .adminGalleryCard-actions input[value*="Remove" i], .adminGalleryCard-actions input[value*="Excluir" i], .adminGalleryCard-actions input[value*="Remover" i] {
	background: linear-gradient(#ef4444, #d32f2f) !important;
}
.adminGalleryCard img { max-width: 100%; border-radius: var(--radius-sm); }
.adminGalleryCard-desc { font-size: var(--fs-sm); color: var(--color-default); margin: 0; }
.adminEmptyState { color: var(--color-default); font-style: italic; margin-bottom: var(--sp-4); }

.adminTicketMsg {
	background: var(--primary);
	border: 1px solid var(--border);
	border-left: 3px solid var(--accent) !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	margin-bottom: var(--sp-3);
	overflow: hidden;
}
.adminTicketMsg-meta {
	background: var(--secondary);
	padding: var(--sp-2) var(--sp-3);
	font-size: var(--fs-sm);
	font-weight: 600;
	color: var(--color-default);
}
.adminTicketMsg-body { padding: var(--sp-3); }
.adminTicketMsg-body p { margin: 0; }
.adminTicketActions { display: flex; gap: var(--sp-3); margin-bottom: var(--sp-4); }
.adminTicketActions form { margin: 0; }
.adminTicketActions input[type="submit"] { background: linear-gradient(#1c9a4b, #16803e) !important; }
.adminTicketActions input[name="admin_ticket_delete"] { background: linear-gradient(#ef4444, #d32f2f) !important; }
.adminReplyBox textarea {
	width: 100%;
	min-height: 120px;
	margin-bottom: var(--sp-2);
}

/* nicEdit rich text editor (admin news) - make it fill its container and be taller */
.nicEdit-panelContain {
	width: 100% !important;
	box-sizing: border-box;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}
.nicEdit-main {
	width: 100% !important;
	max-width: 100% !important;
	min-height: 320px !important;
	box-sizing: border-box;
	border: 1px solid var(--border) !important;
	border-top: none !important;
	border-radius: 0 0 var(--radius-sm) var(--radius-sm);
	padding: var(--sp-2) var(--sp-3);
}

/* News post header: the generic .header chip style doesn't fit a compound
   date/author/title line, so opt this one back out of the pill treatment. */
.postHolder .well > .header.newsPostHeader {
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--sp-2);
	background: var(--secondary) !important;
	color: var(--font-color) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	border-radius: var(--radius-sm) var(--radius-sm) 0 0;
	padding: var(--sp-2) var(--sp-3);
	font-size: var(--fs-sm);
}
.newsPostHeader-id { color: var(--color-default) !important; }
.newsPostHeader-date { color: var(--color-default); white-space: nowrap; }
.newsPostHeader-by { color: var(--color-default); }
.newsPostHeader-title {
	color: var(--font-color);
	font-size: var(--fs-base);
	flex-basis: 100%;
}

/* Pokeball-red accent for primary call-to-action buttons */
.topDownloadButton, a.btn-danger, .btn-danger {
	background: linear-gradient(#ef4444, #d32f2f) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 8px !important;
	font-weight: 600;
	padding: 8px 16px !important;
	height: auto !important;
	width: auto !important;
	line-height: normal !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
}
/* The legacy inline "width: 53px" wrapper around the top Baixar button was sized
   for the old plain-text link - let it grow to fit the new padded button, and
   center it against the taller social icons sitting in the same row. */
div:has(> .topDownloadButton) {
	width: auto !important;
	height: 53px !important;
	margin-top: 0 !important;
	display: flex !important;
	align-items: center;
}
.topDownloadButton:hover, a.btn-danger:hover, .btn-danger:hover {
	background: linear-gradient(#d32f2f, #b71c1c) !important;
	color: #fff !important;
}
