/* #region STANDARD */
html, body {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	height: 100%; /* full viewport height */
}

a, .btn-link {
	color: #006bb7;
}

.btn-primary {
	color: #fff;
	background-color: #1b6ec2;
	border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
	box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
	padding-top: 1.1rem;
}

h1:focus {
	outline: none;
}

.valid.modified:not([type=checkbox]) {
	outline: 1px solid #26b050;
}

.invalid {
	outline: 1px solid #e50000;
}

.validation-message {
	color: #e50000;
}

#blazor-error-ui {
	background: lightyellow;
	bottom: 0;
	box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
	display: none;
	left: 0;
	padding: 0.6rem 1.25rem 0.7rem 1.25rem;
	position: fixed;
	width: 100%;
	z-index: 1000;
}

	#blazor-error-ui .dismiss {
		cursor: pointer;
		position: absolute;
		right: 0.75rem;
		top: 0.5rem;
	}

.blazor-error-boundary {
	background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
	padding: 1rem 1rem 1rem 3.7rem;
	color: white;
}

	.blazor-error-boundary::after {
		content: "An error has occurred."
	}

.darker-border-checkbox.form-check-input {
	border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
	color: var(--bs-secondary-color);
	text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
	text-align: start;
}
/* #endregion */

/* #region NAVMENU */
.navbar-brand {
	color: white;
	font-family: 'Rowdies', sans-serif;
	font-size: 3.5rem !important;
	padding: 20px;
	text-decoration: none;
}

	.navbar-brand:link, .navbar-brand:visited, .navbar-brand:hover, .navbar-brand:active {
		color: white;
	}

nav.navbar-custom {
	min-height: 4.0rem;
}

.navbar-custom {
	background: #4a4a4a;
	background: -webkit-linear-gradient(45deg, #4a4a4a, #3c3c3c);
	background: linear-gradient(45deg, #4a4a4a, #3c3c3c);
}

@media screen and (max-width: 600px) {
	.navbar-brand {
		font-size: 1.25rem !important;
	}
}
/* #endregion */

/* #region NAVIGATION */
.nav-item {
	font-size: 1.2rem;
	font-weight: bolder;
	margin: 0 5px;
}

.navbar-collapse:not(.show) .nav-spacer {
	display: block;
	height: 3.5rem; /* Match expected nav height */
}

.navbar-collapse.show .nav-spacer {
	display: none;
}

/* See Shared.razor.css for ::deep */
/* #endregion */

/* #region FOOTER */
.navbar-footer {
	color: silver;
	font-family: 'Rowdies', sans-serif;
	font-size: 0.75rem;
}

.navbar-footer-link {
	color: white;
	font-family: 'Rowdies', sans-serif;
	font-size: 1rem;
	text-decoration: none;
}
/* #endregion */

/* #region HOME */
.home {
	font-size: 1.25rem;
}
/* #endregion */

/* #region EMPTY DATAGRID */
.emptygrid {
	color: midnightblue;
	font-size: 1.5rem;
	font-weight: bold;
	line-height: 5rem;
	text-align: center;
	text-transform: uppercase;
}
/* #endregion */

/* #region CONTACTS, VISITS */
.btn-xs {
	width: 24px;
	height: 24px;
	padding: 0;
	margin: 0;
	border: none;
	background: transparent; /* or use a color like #eee */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 16px; /* adjust for icon or glyph size */
	line-height: 1;
	border-radius: 0; /* optional: remove rounding */
}

	.btn-xs:hover {
		background-color: #258cfb;
		border: 1px solid black;
		border-radius: 4px;
		color: white;
	}

	.btn-xs:focus {
		outline: 2px solid #007bff;
		outline-offset: 2px;
	}

@media (prefers-color-scheme: dark) {
	.btn-xs:hover {
		background-color: #333;
	}
}

.message {
	font-weight: 500;
}

.centered-image-cell {
	display: flex;
	align-items: center;
	height: 100%;
}
/* #endregion */

/* #region PASSWORD TOGGLER */
.toggle-eye {
	position: absolute;
	top: 50%;
	right: 1rem;
	transform: translateY(-50%);
	cursor: pointer;
	z-index: 2;
}
/* #endregion */

/* #region FORCE WORD WRAP */
.force-wrap {
	overflow-wrap: break-word;
	word-wrap: break-word;
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
	-ms-hyphens: auto;
	-moz-hyphens: auto;
	-webkit-hyphens: auto;
	hyphens: auto;
}
/* #endregion */

/* #region FLAG IMAGE */
.img-flag {
	width: 16px;
	height: 11px;
	flex-shrink: 0; /* Prevent shrinking in flex containers */
}
/* #endregion */

/* #region FOR EQUAL WIDTH BUTTONS */
.btn-group-wide {
	display: block; /* simple block container */
	width: max-content; /* container width = widest child */
}

	.btn-group-wide .btn {
		display: block; /* ensure block layout */
		width: 100%; /* each button fills container width */
	}

.btn-group-wide-inline {
	display: flex; /* horizontal layout */
	gap: 0.5rem; /* spacing between buttons */
	width: auto; /* shrink-wrap to content */
}

	.btn-group-wide-inline .btn {
		flex: 0 0 auto; /* natural width, no stretching */
		white-space: nowrap; /* keep text on one line */
	}
/* #endregion */

/* #region FOR EQUAL WIDTH BADGES */
.badge-fixed {
	display: inline-block;
	width: 50px;
	text-align: center;
}
/* #endregion */

/* #region SPINNER */
.spinner {
	width: 16px;
	height: 16px;
	border: 3px solid #ccc;
	border-top-color: #0078d4;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}
/* #endregion */

/* #region ARROWS on LEGAL & PRIVACY */
.li-arrow {
	color: red;
	font-size: 1.25rem;
}
/* #endregion */

/* #region SYNTAX COLORING */
/* Outer code block */
.zx-codeblock {
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	margin: 1rem 0;
	overflow: hidden;
}

	/* Header (summary) */
	.zx-codeblock > summary {
		position: relative;
		background: #334155;
		color: #ffffff;
		font-family: Segoe UI, system-ui, sans-serif;
		font-size: 1.1rem;
		font-weight: 600;
		padding: 6px 10px 6px 32px; /* space for chevron */
		cursor: pointer;
		list-style: none;
		border-bottom: 1px solid #334155;
	}

		/* Chevron marker */
		.zx-codeblock > summary::before {
			content: "▸";
			position: absolute;
			left: 10px;
			top: 50%;
			transform: translateY(-50%);
			font-size: 1.75rem;
			opacity: 0.8;
			transition: transform 0.15s ease;
		}

	/* Rotate chevron when open */
	.zx-codeblock[open] > summary::before {
		transform: translateY(-50%) rotate(90deg);
	}

/* --------------------------------------------- */
/* LockedOpen header — visually identical to <summary> */
/* --------------------------------------------- */
.zx-codeblock-open .zx-codeblock-title {
	position: relative;
	background: #334155;
	color: #ffffff;
	font-family: Segoe UI, system-ui, sans-serif;
	font-size: 1.1rem;
	font-weight: 600;
	padding: 6px 10px; /* no extra left padding */
	border-bottom: 1px solid #334155;
	cursor: default;
	user-select: text;
}

	/* --------------------------------------------- */
	/* Remove chevron from LockedOpen version */
	/* --------------------------------------------- */
	.zx-codeblock-open .zx-codeblock-title::before {
		content: none;
	}

/* --------------------------------------------- */
/* Match outer container styling */
/* --------------------------------------------- */
.zx-codeblock-open {
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	margin: 1rem 0;
	overflow: hidden;
}

/* Remove top margin when inside a side-by-side layout */
.side-by-side .zx-codeblock,
.side-by-side .zx-codeblock-open {
	margin-top: 0 !important;
}

/* Description container */
.zx-code-description {
	padding: 10px;
	background: #f1f5f9; /* subtle slate-tinted gray */
	color: #334155; /* matches your header tone */
	font-family: Segoe UI, system-ui, sans-serif;
	font-size: 1rem;
	border-bottom: 1px solid #e2e8f0;
	white-space: pre-wrap !important;
}

/* Code container */
.zx-code {
	padding: 10px;
	background: #ffffff;
}

	/* Code text */
	.zx-code pre,
	.zx-code code {
		margin: 0;
		background: #ffffff;
		color: #000000;
		font-family: Consolas, "Courier New", monospace;
		font-size: 14px;
		white-space: pre;
		tab-size: 4;
	}

	/* Default token */
	.zx-code .tok {
		color: #000000;
	}

	/* --------------------------------------------- */
	/* PowerShell token colors (scoped)              */
	/* --------------------------------------------- */
	.zx-code.lang-powershell .tok-command {
		color: #0000ff;
	}

	.zx-code.lang-powershell .tok-parameter {
		color: #800000;
	}

	.zx-code.lang-powershell .tok-string {
		color: #800000;
	}

	.zx-code.lang-powershell .tok-variable {
		color: #ff4500;
	}

	.zx-code.lang-powershell .tok-comment {
		color: #008000;
	}

	/* --------------------------------------------- */
	/* C# token colors (scoped)                      */
	/* --------------------------------------------- */

	/* C# keyword */
	.zx-code.lang-csharp .tok-kw {
		color: #0000ff;
	}

	/* C# type names */
	.zx-code.lang-csharp .tok-type {
		color: #2b91af;
	}

	/* C# method names */
	.zx-code.lang-csharp .tok-method {
		color: #795e26;
	}

	/* Strings */
	.zx-code.lang-csharp .tok-string {
		color: #a31515;
	}

	/* Comments */
	.zx-code.lang-csharp .tok-comment {
		color: #008000;
		font-style: italic;
	}

	/* Attributes */
	.zx-code.lang-csharp .tok-attr {
		color: #b4009e;
	}

	/* Numbers */
	.zx-code.lang-csharp .tok-number {
		color: #098658;
	}

	/* --------------------------------------------- */
	/* SQL token colors (scoped)                     */
	/* --------------------------------------------- */

	.zx-code.lang-sql .tok-kw {
		color: #0000ff; /* keywords */
	}

	.zx-code.lang-sql .tok-string {
		color: #a31515;
	}

	.zx-code.lang-sql .tok-comment {
		color: #008000;
		font-style: italic;
	}

	.zx-code.lang-sql .tok-number {
		color: #098658;
	}

	.zx-code.lang-sql .tok-table {
		color: #2b91af; /* table names */
	}

	.zx-code.lang-sql .tok-column {
		color: #795e26; /* column names */
	}

/* Footer */
.zx-code-footer {
	display: flex;
	justify-content: flex-start;
	padding: 7px 10px;
	background: #f8fafc;
	border-top: 1px solid #e2e8f0;
}

.zx-settings {
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	margin-bottom: 1rem;
	background: #f8fafc;
}

.zx-settings-summary {
	cursor: pointer;
	font-weight: 600;
	padding: 10px 14px;
	background: #e2e8f0;
	border-bottom: 1px solid #cbd5e1;
	user-select: none;
}

.zx-settings-body {
	padding: 14px;
}

/* #endregion */

/* #region TABS */
/* INACTIVE tabs — style the <a> wrapper */
.zx-tabs .rz-tabview-nav > li:not(.rz-tabview-selected) > a {
	background: #e2e8f0; /* slate-200 */
	color: #475569; /* slate-600 */
	padding: 0.65rem 1.25rem;
	display: block;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

	/* INACTIVE tab label */
	.zx-tabs .rz-tabview-nav > li:not(.rz-tabview-selected) > a > .rz-tabview-title {
		color: inherit;
		font-size: 0.95rem;
		font-weight: 600;
	}

	/* Hover on INACTIVE tabs */
	.zx-tabs .rz-tabview-nav > li:not(.rz-tabview-selected) > a:hover {
		background: #cbd5e1; /* slate-300 */
		color: #1e293b; /* slate-800 */
	}

/* ACTIVE tab — style the <a> wrapper */
.zx-tabs .rz-tabview-nav > li.rz-tabview-selected > a {
	background: #334155; /* Merrens slate-blue */
	color: #ffffff;
	padding: 0.65rem 1.25rem;
	display: block;
	border-bottom: 2px solid #1e293b;
}

	/* ACTIVE tab label */
	.zx-tabs .rz-tabview-nav > li.rz-tabview-selected > a > .rz-tabview-title {
		color: white;
		font-size: 0.95rem;
		font-weight: 600;
	}

/* Code Block */
.zx-tabs .zx-code-block {
	display: inline-block;
	background: #eee;
	border: 1px solid #ccc;
	padding: 0.4rem 0.6rem;
	border-radius: 6px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.9rem;
	color: #222;
}
/* #endregion */

/* #region POCO TO JSON to POCO */
.zx-jsonpoco-container {
	display: grid;
	grid-template-columns: 1fr 300px 1fr;
	gap: 20px;
	padding: 20px;
}

.zx-jsonpoco-section {
	background: var(--Merrens-panel);
	border: 1px solid var(--Merrens-border);
	border-radius: 8px;
	padding: 16px;
}

.zx-jsonpoco-input {
	font-family: var(--Merrens-mono);
	font-size: 14px;
}

.zx-jsonpoco-error {
	border-color: #d9534f !important;
	box-shadow: 0 0 4px rgba(217, 83, 79, 0.4);
}
/* #endregion */

/* #region AUTHORIZEPANNEL */
.zx-settings-disabled {
	opacity: 0.45;
	pointer-events: none;
	filter: grayscale(100%);
}
/* #endregion */

/* #region LOGS */
.zx-global-busy-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.45);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
}

.zx-global-busy-spinner {
	text-align: center;
	color: white;
	font-size: 1.2rem;
}
/* #endregion */

/* #region SCROLL CODE IN DIV */
/* Default (desktop/tablet) */
.scroll-25 {
	max-height: 25rem;
	overflow-y: auto;
}

/* Small screens (≤ 576px) */
@media (max-width: 576px) {
	.scroll-25 {
		max-height: 15rem; /* ~15 lines */
	}
}

/* Extra-small screens (≤ 400px) */
@media (max-width: 400px) {
	.scroll-25 {
		max-height: 10rem; /* ~10 lines */
	}
}
/* #endregion */

/* #region DIAGNOSTICS */
.zx-diagnostics-stack {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	margin-top: 1rem;
}

	.zx-diagnostics-stack .badge {
		font-size: 0.85rem;
		padding: 6px 10px;
		border-radius: 6px;
		width: 100%;
	}

.zx-diagnostics-card {
	padding: 1.5rem;
	/*border-radius: 10px;*/
	background: #ffffff;
	/*box-shadow: 0 2px 6px rgba(0,0,0,0.08);*/
}

.zx-section-title {
	margin-bottom: 1rem;
	font-weight: 600;
}
/* #endregion */

/* #region LINKS */
/* Base link styling */
.links {
	text-decoration: none;
	color: #0056d6;
	padding: 2px 6px 2px 1.6rem; /* space for icon */
	border-radius: 4px;
	position: relative;
	transition: background-color 0.2s ease, color 0.2s ease;
	font-weight: 400;
}

	/* Hover */
	.links:hover {
		background-color: rgba(0, 86, 214, 0.12);
		color: #003c99;
	}

	/* Shared icon styling */
	.links::before {
		font-family: "Material Symbols Outlined";
		font-size: 1.1rem;
		font-weight: normal;
		position: absolute;
		left: 0;
		top: 50%;
		transform: translateY(-55%);
		opacity: 0.85;
		line-height: 1;
	}

	/* PDF marker */
	.links[href$=".pdf"]::before {
		content: "picture_as_pdf";
		color: #d32f2f; /* strong red */
	}

	/* External URL marker (default for http/https) */
	.links[href^="http"]::before {
		content: "open_in_new";
		color: #0288d1; /* bright cyan-blue */
	}

	/* Home Page */
	.links[href^="#"]::before {
		content: "bookmark";
		color: dodgerblue;
		transform: translateY(-45%); /* adjust only this instance */
	}

/* --------------------------------------------- */
/* SECTION-SPECIFIC MARKERS                      */
/* --------------------------------------------- */

/* National Resources */
.national-resources .links[href^="http"]::before {
	content: "public";
	color: #1976d2; /* strong blue */
}

/* Seed Banks */
.seed-banks .links[href^="http"]::before {
	content: "eco";
	color: #2e7d32; /* green */
}

/* Self Defense */
.self-defense .links[href^="http"]::before {
	content: "shield";
	color: #c62828; /* red */
}

/* Survival Supplies */
.survival-supplies .links[href^="http"]::before {
	content: "backpack";
	color: #6d4c41; /* earthy brown */
}
/* #endregion */

/* Hide Header Templates on small devices */
.hide-sm { display: inline; }
.show-sm { display: none; }

@media (max-width: 576px) {
    .hide-sm { display: none !important; }
    .show-sm { display: inline !important; }
}
/* #endregion */

/* Enlarge/bolden fonts on character/location dropdowns */
.dd-select {
	font-size: 1.25rem !important;
	font-weight: 700 !important;
}
/* #endregion */

/* Ensure text aligns to the top of the cell when data wraps in a grid */
.rz-data-grid td {
	vertical-align: top !important;
}
/* #endregion */

/* Badge styles */
.badge-outline-primary {
	color: #333 !important;
	border: 1px solid #0d6efd;
	background: transparent;
}

.badge-outline-success {
	color: #333 !important;
	border: 1px solid #198754;
	background: transparent;
}

.badge-outline-secondary {
	color: #333 !important;
	border: 1px solid #6c757d;
	background: transparent;
}

.badge-outline-danger {
	color: #333 !important;
	border: 1px solid #dc3545;
	background: transparent;
}

.badge-outline-warning {
	color: #333 !important;
	border: 1px solid #ffc107;
	background: transparent;
}

.badge-outline-dark {
	color: #333 !important;
	border: 1px solid #212529;
	background: transparent;
}

.badge[class*="badge-ghost-"] {
	color: #333 !important;
	background: transparent !important;
	border: none !important;
}

.badge[class*="badge-soft-"] {
	color: #333 !important;
	background-color: rgba(0,0,0,0.08) !important;
	border: 1px solid rgba(0,0,0,0.12);
}
/* #endregion */