body.light-theme {
	--font: Verdana, Tahoma, Arial, Helvetica, sans-serif;
	--bg-color: white;
	--text-color: black;
	--border-color: #500000;
	--link-color: orange;
	--link-hover: black;
	--menu-bg: #500000;
	--menu-text: gold;
	--menu-hover: white;
	--header-1234: #FF4444;
	--header-56: #773333;
	--flag-faded: 0.2;
	--table-border: black;
}

body.dark-theme {
	--font: Verdana, Tahoma, Arial, Helvetica, sans-serif;
	--bg-color: black;
	--text-color: #cccccc;
	--border-color: #500000;
	--link-color: gold;
	--link-hover: white;
	--menu-bg: #500000;
	--menu-text: gold;
	--menu-hover: white;
	--header-1234: #FF4444;
	--header-56: #773333;
	--flag-faded: 0.4;
	--table-border: white;
}

@media (prefers-color-scheme: dark) {
	body:not(.light-theme):not(.dark-theme) {
		--font: Verdana, Tahoma, Arial, Helvetica, sans-serif;
		--bg-color: black;
		--text-color: #cccccc;
		--border-color: #500000;
		--link-color: gold;
		--link-hover: white;
		--menu-bg: #500000;
		--menu-text: gold;
		--menu-hover: white;
		--header-1234: #FF4444;
		--header-56: #773333;
		--flag-faded: 0.4;
		--table-border: white;
	}
}

@media (prefers-color-scheme: light) {
	body:not(.light-theme):not(.dark-theme) {
		--font: Verdana, Tahoma, Arial, Helvetica, sans-serif;
		--bg-color: white;
		--text-color: black;
		--border-color: #500000;
		--link-color: orange;
		--link-hover: black;
		--menu-bg: #500000;
		--menu-text: gold;
		--menu-hover: white;
		--header-1234: #FF4444;
		--header-56: #773333;
		--flag-faded: 0.2;
		--table-border: black;
	}
}



*, *::before, *::after {
	box-sizing: border-box;
}

* {
	margin: 0;
	padding: 0;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	font-size: 16px;
	font-family: var(--font);
	line-height: normal;
	background-color: var(--bg-color);
	color: var(--text-color);
}

.roboto-slab-regular {
	font-family: "Roboto Slab", serif;
	/* font-optical-sizing: auto; */
	font-weight: 400;
	font-style: normal;
}

.body-dev * {
	outline: 1px solid rgba(255,0,0,1.0);
}

.logo_title a {
	display: inline-block;
}

.logo_title {
	display: inline-flex;
	align-items: center;
	height: 80px;
}

.logo_title img {
	max-height: 100%;
	height: auto;
	width: auto;
	display: block;
}

.site_title_400 {
	color: gold;
	font-size: 48px;
	font-weight: 400;
	margin-left: 10px;
}

.site_title_900 {
	font-weight: 900;
}

.site_title_200 {
	font-weight: 200;
}

img.flag {
	border: 1px solid var(--border-color);
}

img.flag_not_set {
	opacity: var(--flag-faded);
	border: 1px solid var(--border-color);
}

img.flag_not_set:hover, .flag_set {
	opacity: 1.0;
	border: 1px solid var(--border-color);
}

a {
	text-decoration: none;
	color: var(--link-color);
}

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

a[target="_blank"] {
	text-decoration: underline;
}

div.nav_vertical_menu a {
	display: block;
	font-weight: normal;
	padding-left: 10px;
	text-decoration: none;
	background: var(--menu-bg);
	color: var(--menu-text);
}

div.nav_vertical_menu a[target="_blank"] {
	text-decoration: underline;
}

div.nav_vertical_menu a.level2 {
	padding-left: 30px;
}

div.nav_vertical_menu a.level3 {
	padding-left: 50px;
}

div.nav_vertical_menu a:hover,
div.nav_vertical_menu a.active {
	color: var(--menu-hover);
}

.nav_vertical_overlay {
	position: fixed;
	top: 121px;
	left: 0;
	width: 250px;
	height: calc(100vh - 121px);
	background: var(--menu-bg);
	overflow-y: auto;
	z-index: 2000;
	transform: translateX(-100%);
	transition: transform 0.3s ease-in-out;
	box-shadow: 2px 0 10px rgba(0, 0, 0, 0.5);
	display: block;
}

.nav_vertical_overlay.open {
	transform: translateX(0);
}

.right_overlay {
	position: fixed;
	top: 121px;
	right: 0;
	width: 250px;
	height: calc(100vh - 121px);
	background: var(--menu-bg);
	overflow-y: auto;
	z-index: 2000;
	transform: translateX(100%);
	transition: transform 0.3s ease-in-out;
	box-shadow: -2px 0 10px rgba(0, 0, 0, 0.5);
	display: block;
}

.right_overlay.open {
	transform: translateX(0);
}

.top_nav_scroll_wrapper {
	display: flex;
	align-items: center;
	width: 100%;
}

.top_nav_scrollmenu {
	display: flex;
	flex: 1;
	overflow-x: auto;
	white-space: nowrap;
	scroll-behavior: smooth;
	-ms-overflow-style: none; /* IE 10+ */
	scrollbar-width: none; /* Firefox */
}

.top_nav_scrollmenu::-webkit-scrollbar {
	display: none; /* Chrome, Safari, Opera */
}

.top_nav_scrollmenu a {
	display: inline-block;
	color: var(--link-color);
	text-align: center;
	padding: 10px;
	text-decoration: none;
	text-transform: uppercase;
	flex-shrink: 0;
}

.top_nav_scrollmenu a:hover,
.top_nav_scrollmenu a.active {
	background-color: var(--menu-bg);
}

.menu_toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 9px 10px;
	cursor: pointer;
}

.menu_toggle span {
	display: block;
	width: 20px;
	height: 3px;
	background: white;
	margin: 2px 0;
	transition: 0.3s;
}

.menu_toggle.open span:nth-child(1) {
	transform: rotate(45deg) translate(5px, 5px);
}
.menu_toggle.open span:nth-child(2) {
	opacity: 0;
}
.menu_toggle.open span:nth-child(3) {
	transform: rotate(-45deg) translate(5px, -5px);
}

.menu_toggle_right {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 9px 15px;
	cursor: pointer;
}

.menu_toggle_right span {
	display: block;
	width: 3px;
	height: 3px;
	background: white;
	margin: 2px 0;
}

.home_link {
	color: var(--link-color);
	text-transform: uppercase;
	padding: 10px;
	white-space: nowrap;
	text-decoration: none;
}

.home_link:hover,
.home_link.active {
	background-color: var(--menu-bg);
}

.lock_link {
	padding: 5px 5px;
}

.lock-icon {
	width: 24px;
	height: 24px;
	display: none;
}

.user-logged-in .unlocked {
	display: inline;
	color: green;
}

.user-logged-in .locked {
	display: none;
}

.user-logged-out .locked {
	display: inline;
	color: red;
}

.user-logged-out .unlocked {
	display: none;
}

h1 {
	font-size: 24px;
	font-weight: bold;
	color: var(--header-1234);
	text-align: center;
	text-transform: uppercase;
	margin-top: 5px;
	margin-bottom: 24px;
}

h2 {
	font-size: 20px;
	font-weight: bold;
	color: var(--header-1234);
	text-align: center;
	text-transform: uppercase;
	margin-top: 5px;
	margin-bottom: 20px;
}

h3 {
	font-size: 16px;
	font-weight: bold;
	color: var(--header-1234);
	text-align: center;
	text-transform: uppercase;
	margin-top: 5px;
	margin-bottom: 16px;
}

h4 {
	font-size: 14px;
	font-weight: bold;
	color: var(--header-1234);
	text-align: left;
	/*text-transform:uppercase;*/
	margin-top: 14px;
	margin-bottom: 0px;
}

h5 {
	font-size: 12px;
	font-weight: bold;
	color: var(--header-56);
	text-align: center;
	text-transform: uppercase;
	margin-top: 5px;
	margin-bottom: 12px;
}

h6 {
	font-size: 10px;
	font-weight: bold;
	color: var(--header-56);
	text-align: left;
	text-transform: uppercase;
	margin-top: 10px;
	margin-bottom: 0px;
}

img {
	border: none;
}

p {
	margin: 20px 0px;
}

p.indent {
	text-indent: 2em;
	margin: 0px;
}

table {
	border-collapse: collapse;
}

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

td, th {
	text-align: left;
	padding: 0px 1px;
}

.td_left {
	text-align: left;
}

.td_center {
	text-align: center;
}

.td_right {
	text-align: right;
}

.td_justify {
	text-align: justify;
}

textarea {
	font-family: var(--font);
	font-size: 12px;
	line-height: normal;
}

ul {
	margin:0px;
	padding:0px 15px;
}

div.notification_main {
	margin: 0;
	width: 100%;
	padding: 15px;
	background-color: gold;
	color: black;
	display: none;
}

.container {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-template-rows: auto auto 1fr auto;
	grid-template-areas:
		"header header header header header header header header header header header header"
		"top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav"
		"menu menu content content content content content content content content right right"
		"footer footer footer footer footer footer footer footer footer footer footer footer";
	height: 100vh;
	overflow: hidden;
}

header {
	grid-area: header;
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 0;
	background: var(--bg-color);
	z-index: 1000;
}

.header {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	padding: 0px 10px;
}

.top_nav {
	grid-area: top_nav;
	display: flex;
	align-items: center;
	background: black;
	border-top: 2px solid var(--border-color);
	border-bottom: 2px solid var(--border-color);
	overflow: hidden;
	font-weight: bold;
}

nav, main, aside {
	overflow-y: auto;
}

nav {
	grid-area: menu;
	display: flex;
	flex-direction: column;
	width: 250px;
	background: var(--menu-bg);
}

main {
	grid-area: content;
	padding: 10px;
	text-align: justify;
}

aside {
	grid-area: right;
	padding: 10px;
	background: var(--menu-bg);
	width: 250px;
}

footer {
	grid-area: footer;
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	font-size: 10px;
	text-align: center;
	border-top: 2px solid var(--border-color);
}

.footer_version {
	grid-column: span 2;
	text-align: center;
	padding: 10px;
}

.footer_copyright {
	grid-column: span 8;
	text-align: center;
	padding: 10px;
}

.footer_validate_counter {
	grid-column: span 2;
	text-align: right;
	padding: 10px;
}

/* Responsive design */

@media (max-width: 1200px) {
	.container {
		grid-template-areas:
			"header header header header header header header header header header header header"
			"top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav"
			"menu menu content content content content content content content content content content"
			"footer footer footer footer footer footer footer footer footer footer footer footer";
	}
	
	.menu_toggle_right {
		display: flex;
	}
	
	aside {
		display: none;
	}
	
	div.notification_main {
		display: block;
	}
}

@media (max-width: 992px) {
	.container {
		grid-template-areas:
			"header header header header header header header header header header header header"
			"top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav"
			"content content content content content content content content content content content content"
			"footer footer footer footer footer footer footer footer footer footer footer footer";
		overflow: visible;
		height: auto;
		min-height: 100vh;
		max-height: none;
	}

	.menu_toggle {
		display: flex;
	}
	
	.top_nav_scroll_wrapper {
		flex-direction: row;
	}

	.top_nav_scrollmenu {
		margin-left: auto;
	}
	
	nav {
		display: none;
	}

}

@media (max-width: 768px) {
	.container {
		grid-template-areas:
			"header header header header header header header header header header header header"
			"top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav top_nav"
			"content content content content content content content content content content content content"
			"footer footer footer footer footer footer footer footer footer footer footer footer";
	}
	
	footer
	.footer_version,
	.footer_copyright,
	.footer_validate_counter {
		grid-column: 1 / -1;
		padding: 10px;
	}
}
	
@media (max-width: 500px) {
	main {
		text-align: left;
	}
}

@media (max-width: 325px) {
	.logo_title img {
		max-height: 60px;
	}
	
	.site_title_400 {
		font-size: 36px;
		font-weight: 400;
	}
	
	.site_title_900 {
		font-size: 36px;
		font-weight: 900;
	}
	
	.site_title_200 {
		font-size: 36px;
		font-weight: 200;
	}
}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {

}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {
	
}

/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {
	
}

/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px) {
	
}

/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {
	
}



.accordion {
	cursor: pointer;
	padding-top: 25px;
	width: 100%;
	border: none;
	text-align: left;
	outline: none;
	transition: 0.4s;
	margin-bottom: 2px;
	color: var(--text-color);
	font-size: 20px;
}
.accordion:hover,
.accordion.active {}
.accordion::after {
	/* content: "\002B"; */
	font-weight: bold;
	float: right;
	margin-left: 5px;
}
.accordion.active::after {
	/* content: "\2212"; */
}
.panel {
	padding: 0 18px;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.2s ease-out;
	font-size: 16px;
}
.panel.open {
	max-height: 1000px;
	transition: max-height 0.4s ease-in;
}
.panel > * {
	margin: 10px 0;
}

/* Markdown styling (optional minimal) */
.panel ul {
	padding-left: 20px;
}
.panel li {
	margin-bottom: 4px;
}
.panel h3 {
	margin: 10px 0 4px;
	display: none;
}

.content h3 {
	margin: 10px 0 4px;
	display: none;
}

h3.urgent,
h3.urgent + ul li {
	color: red;
	font-weight: bold;
}

h3.important,
h3.important + ul li {
	color: orange;
}

h3.normal,
h3.normal + ul li {
	color: #d4d400;
}

h3.low,
h3.low + ul li {
	color: silver;
	font-style: italic;
}

h3.added,
h3.added + ul li {
	color: #2e7d32;
	/*color: green;*/
}

h3.changed,
h3.changed + ul li {
	color: #f9a825;
	/*color: orange;*/
}

h3.fixed,
h3.removed,
h3.deprecated,
h3.security,
h3.fixed + ul li,
h3.removed + ul li,
h3.deprecated + ul li,
h3.security + ul li {
	color: #c62828;
	/*color: red;*/
}

.accordion-container hr,
.markdown-body hr {
	display: none;
}

.accordion-controls {
	margin-bottom: 20px;
	display: flex;
	gap: 30px;
}

.accordion-controls button {
	padding: 8px 14px;
	border: none;
	cursor: pointer;
	background-color: #ddd;
	border-radius: 5px;
	transition: background-color 0.2s;
}

.accordion-controls button:hover {
	background-color: #bbb;
}

.panel a,
.markdown-body a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.panel a:focus,
.panel a:focus,
.markdown-body a:hover,
.markdown-body a:focus {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.hidden-changelog {
	display: none;
}


.contact-form {
	max-width: 500px;
	margin: auto;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.contact-form .form-group {
	display: flex;
	flex-direction: column;
}

.contact-form input,
.contact-form textarea {
	padding: 0.5em;
	font-size: 1em;
	width: 100%;
	box-sizing: border-box;
}

.contact-form label {
	margin-bottom: 0.2em;
	font-weight: bold;
}

.contact-form small {
	color: #666;
	font-size: 0.85em;
}

.contact-form button {
	margin-left: auto;
	padding: 0.5em 1.2em;
	font-size: 1em;
}

.contact-form .error {
	color: #b00020;
	font-weight: bold;
}

#form_status {
	margin-left: 1em;
}

.alert {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	padding: 1rem 1.5rem;
	border-radius: 0.5rem;
	background-color: #d4edda;
	color: #155724;
	font-weight: bold;
	box-shadow: 0 0 15px rgba(0, 0, 0, 0.3);
	z-index: 1000;
	opacity: 1;
	transition: opacity 0.5s ease;
	text-align: center;
	max-width: 90%;
}

.alert.hidden {
	opacity: 0;
	pointer-events: none;
}

.alert.error {
	background-color: #f8d7da;
	color: #721c24;
}



.error, .success {
	padding: 1em;
	margin: 1em 0;
	border-radius: 6px;
	font-weight: bold;
	border-left: 5px solid;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.error {
	background-color: #ffeaea;
	color: #a94442;
	border-color: #d9534f;
}

.success {
	background-color: #e6f9ea;
	color: #3c763d;
	border-color: #5cb85c;
}



.profile-table {
	border-collapse: collapse;
	width: 100%;
	max-width: 600px;
	margin-top: 1em;
}

.profile-table th, .profile-table td {
	border: 1px solid var(--table-border);
	padding: 8px;
	text-align: left;
}

.profile-table th {
	width: 30%;
}

.radio-group {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
}
.radio-group label {
	display: inline-flex;
	gap: 1rem;
	align-items: center;
	white-space: nowrap;
	padding-left: 20px;
}

#global-tooltip {
	position: absolute;
	display: none;
	max-width: 500px;
	background: #333;
	color: #fff;
	padding: 6px 10px;
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.3);
	z-index: 9999;
	white-space: normal;
	font-size: 14px;
	line-height: 1.4;
}

@media (max-width: 500px) {
	#global-tooltip {
		max-width: 100%;
	}
}

#global-tooltip .tooltip-arrow {
	position: absolute;
	width: 0;
	height: 0;
	border-style: solid;
	pointer-events: none;
}

#global-tooltip.arrow-down .tooltip-arrow {
	top: 100%;
	border-width: 6px 6px 0 6px;
	border-color: #333 transparent transparent transparent;
	height: 0;
}

#global-tooltip.arrow-up .tooltip-arrow {
	bottom: 100%;
	border-width: 0 6px 6px 6px;
	border-color: transparent transparent #333 transparent;
	height: 0;
}

