/* Further optimized and minified CSS */
body {
	background: url("/images/sbz-api-back.jpg") no-repeat fixed center/cover;
	color: #000;
	font-family: 'Geologica', sans-serif;
	font-size: 14px;
	font-weight: 400;
	text-rendering: optimizeLegibility;
}

h1,
.h1 {
	color: #274dc8;
	font-size: 28px;
	font-weight: 600;
}

h2,
.h2 {
	color: #274dc8;
	font-size: 22px;
	font-weight: 600;
}

a {
	color: #274dc8;
}

em {
	font-style: normal;
}

.form-group-half {
	float: left;
	margin: 10px 5px;
	width: 48%;
}

.dropdown-menu {
	border-radius: 15px 5px 5px 15px/5px 15px 15px 5px;
	box-shadow: 0 3px 3px 0 rgb(0 0 0 / 20%);
	margin-top: 7px;
}

.wrapper,
.wrapper-center,
.wrapper-center-login,
.wrapper-center-settings {
	background: #fff;
	box-shadow: 0 3px 3px 0 rgb(0 0 0 / 20%);
	margin: 0 auto;
	padding: 20px;
	text-align: center;
}

.wrapper {
	max-width: 360px;
}

.wrapper-center,
.wrapper-center-login,
.wrapper-center-settings {
	border-radius: 45px 10px 45px 10px;
}

.wrapper-center {
	max-width: 660px;
}

.wrapper-center-login {
	max-width: 460px;
}

/* Center the login wrapper vertically and horizontally on larger viewports */
.login-container {
	display: flex;
	align-items: center;
	/* vertical centering */
	justify-content: center;
	/* horizontal centering */
	min-height: calc(100vh - 40px);
	/* account for potential top/bottom spacing */
	padding: 20px 0;
	/* keep some breathing room on small screens */
}

/* Desktop improvements: make the login box look more polished on larger screens */
.login-container {
	box-sizing: border-box;
	/* Reduce min-height a bit to avoid forcing page scrollbars on some viewports */
	min-height: calc(100vh - 60px);
}

.wrapper-center-login {
	transition: transform 180ms ease, box-shadow 180ms ease;
	will-change: transform, box-shadow;
	/* Avoid forcing internal scrollbars; let the page scroll naturally */
	max-height: none;
	overflow: visible;
}

/* When JS sets an inline min-height on the wrapper to preserve size during interactions,
   ensure the element respects that and keeps internal layout consistent. */
.wrapper-center-login[style*="min-height"] {
	box-sizing: border-box;
	/* keep padding and border included in the min-height calculation */
	overflow: visible;
}

.wrapper-center-login:hover,
.wrapper-center-login:focus-within {
	transform: translateY(-4px);
	box-shadow: 0 12px 30px rgba(39, 77, 200, 0.12);
}

/* Ensure consistent inner spacing for desktop */
.wrapper-center-login .form-group {
	margin-bottom: 12px;
}

.wrapper-center-settings {
	max-width: 800px;
}

.wrapper-lang-selector {
	height: 40px;
	margin: 0 auto 20px;
	max-width: 300px;
}

.copyright-wrapper {
	font-size: 12px;
	padding-bottom: 20px;
	max-width: 460px;
	text-align: center;
	margin: 0 auto 70px;
}

.form-control,
.sticky-doclist-navbar-form input {
	border-radius: 15px 5px 15px 5px/5px 15px 5px 15px;
	box-shadow: 0 3px 3px 0 rgb(0 0 0 / 20%);
}

.sticky-doclist-navbar-form input {
	background: #fff;
	border: 1px solid #1435a1;
	color: #274dc8;
	padding: 5px 15px;
	max-width: 180px;
}

.dropdown {
	float: right;
	margin-left: 5px;
}

.dropdown-item {
	font-size: 14px;
}

.dropdown-item:focus,
.dropdown-item:hover {
	background-color: #ced4da;
}

.dropdown img,
.dropdown-menu img {
	border: 1px solid #b9b9b9;
	border-radius: 5px;
	margin-right: 7px;
}

.sticky-top {
	background: #f5f7ff;
	box-shadow: 0 0 3px #ccc;
	min-height: 70px;
	width: 100%;
}

.sticky-top-inner {
	padding: 20px;
}

.sticky-top-navbar {
	color: #274dc8;
}

.logo {
	float: left;
	margin-right: 40px;
}

.logo img {
	margin-top: -10px;
	max-width: 110px;
}

.sticky-top-welcome {
	float: left;
	margin-right: 20px;
}

.sticky-top-username {
	float: left;
	line-height: 30px;
}

.sticky-top-buttons {
	float: right;
}

.sticky-doclist-navbar {
	background: #274dc8;
	box-shadow: 0 0 3px #ccc;
	color: #fff;
	padding: 20px;
	position: fixed;
	width: 100%;
	height: 70px;
}

.sticky-doclist-navbar-form {
	float: left;
}

.sticky-doclist-navbar-buttons {
	float: right;
}

.table {
	background: #fff;
	border: 1px solid #b9b9b9;
	box-shadow: 0 3px 3px 0 rgb(0 0 0 / 20%);
}

.table td,
.table th {
	border-top: 1px solid #b9b9b9;
	border-right: 1px solid #b9b9b9;
}

.table .thead-dark th {
	background: #e3e3e3;
	border: 1px solid #b9b9b9;
	color: #274dc8;
}

.btn,
.btn-primary,
.btn-action,
.btn-secondary,
.btn-third {
	border-radius: 15px 5px 15px 5px/5px 15px 5px 15px;
	box-shadow: 0 3px 3px 0 rgb(0 0 0 / 20%);
	padding: 5px 15px;
}

.btn-primary {
	background-color: #274dc8;
	border-color: #274dc8;
}

.btn-primary:hover {
	background-color: #4e73eb;
	border-color: #4e73eb;
}

.btn-action {
	background-color: #ff6600;
	border-color: #ff6600;
	color: #fff;
}

.btn-action:hover {
	background-color: #f2863e;
	border-color: #f2863e;
}

.btn-secondary {
	background-color: #979797;
	border-color: #979797;
	color: #fff;
}

.btn-secondary:hover {
	background-color: #6a6969;
	border-color: #6a6969;
}

.btn-third {
	background-color: #fff;
	border-color: #ced4da;
	color: #495057;
}

.btn-third:hover {
	background-color: #ced4da;
	border-color: #ced4da;
}

.btn:hover {
	box-shadow: 0 3px 3px 0 rgb(0 0 0 / 20%);
}

.btn-action i,
.btn-primary i,
.btn-secondary i,
.btn-third i,
.dropdown-item i {
	margin-right: 7px;
}

.login-logo {
	text-align: center;
}

.login-logo img {
	margin-bottom: 30px;
	max-width: 120px;
}

#rightcolumn {
	text-align: right;
}

#leftcolumn {
	text-align: left;
}

#centercolumn,
#centercolumn-var {
	text-align: center;
}

.g-recaptcha {
	margin: 20px 0;
}

.g-recaptcha>div {
	margin-top: 1em;
	text-align: center;
	width: auto !important;
	height: auto !important;
}

.required {
	color: red;
}

.recaptcha-feedback {
	color: #dc3545;
	font-size: 80%;
	margin-top: .25rem;
}

input[type=checkbox] {
	margin-right: 7px !important;
}

.agreement {
	font-size: 90%;
}

.successtext {
	border: 1px solid #0ebb12;
	border-radius: 15px 5px 15px 5px/5px 15px 5px 15px;
	box-shadow: 0 3px 3px 0 rgb(0 0 0 / 20%);
	color: #0ebb12;
	margin-top: 20px;
	padding: 5px;
}

.successtext i {
	margin-left: 7px;
}

.bg-dark {
	background-color: #343a40 !important;
	justify-content: left;
}

.fieldgroup-wrapper {
	display: grid;
}

.pdocrud-cancel-btn {
	visibility: hidden;
}

.panel-title {
	visibility: hidden;
	height: 0;
}

.form-group {
	margin-bottom: 0;
}

p {
	margin-top: revert;
	margin-bottom: 0;
}

.pdo-search-cols.form-group {
	width: 320px;
}

.pdo-search-cols.no-padding {
	width: 120px;
}

.form-text.with-errors {
	color: red;
}

.menu-icon {
	display: inline-block;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	max-width: 80px;

}


.wrapper-center-login .form-inline .btn {
	margin-left: .25rem;
}

.col-2.col-sm-2.text-center {
	width: auto;
}

.wrapper-center-login #forgotForm.show {
	display: block !important;
	margin-top: 10px;
}

/* aria-hidden elements should remain in flow hidden but not affect layout when we use inline display:none */
[aria-hidden="true"] {
	display: none !important;
}


.menu-icon {
	display: inline-block;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	max-width: 80px;

}

.cf-turnstile {
	margin-top: 10px;
}

/* Moved from inline styles in login.php: ensure full-height layout and center the login container */
html,
body {
	height: 100%;
}

.container {
	min-height: 100vh;
	/* full viewport height */
	display: flex;
	align-items: center;
	/* vertical center */
	justify-content: center;
	/* horizontal center */
	padding-top: 20px;
	/* small padding for very small viewports */
	padding-bottom: 20px;
}

.wrapper-center-login {
	width: 100%;
	max-width: 480px;
	/* sensible max width for the card */
	margin: 0 auto;
}



@media only screen and (max-width: 1024px) {
	.container {
		align-items: flex-start;
		padding-top: 30px;
		padding-bottom: 30px;
	}

	body {
		padding-top: 80px;
	}

	/* Adjust login container on smaller screens: keep horizontal centering, align near top to avoid large vertical gaps */
	.login-container {
		display: flex;
		flex-direction: column;
		/* stack content vertically */
		align-items: center;
		/* center horizontally */
		justify-content: flex-start;
		/* align toward the top */
		min-height: calc(100vh - 80px);
		/* allow for the sticky header */
		padding: 20px 10px 40px;
		/* extra bottom padding for keyboard and small screens */
	}

	/* Ensure the login box narrows a bit and has a small top margin to separate from header */
	.wrapper-center-login {
		width: 96%;
		max-width: 460px;
		margin-top: 12px;
		padding: 12px;
	}

	.form-group-half,
	.sticky-doclist-navbar-form,
	.sticky-doclist-navbar-buttons,
	.wrapper-center,
	.wrapper-center-login,
	.wrapper-center-settings {
		width: 98%;
		max-width: 98%;
	}


	.sticky-doclist-navbar-form input {
		max-width: 100%;
		width: 100%;
	}

	.sticky-doclist-navbar {
		height: auto;
		padding: 15px 10px;
	}

	.sticky-top-inner {
		padding: 10px;
	}

	.sticky-top-navbar {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	.logo {
		margin-right: 0;
		margin-bottom: 10px;
		float: none;
	}

	.logo img {
		max-width: 90px;
	}

	.sticky-top-welcome {

		margin-right: 0;
		float: none;
		width: 100%;
		text-align: left;
	}

	.sticky-top-username {
		display: none;
	}

	.sticky-top-buttons {

		width: 100%;
		float: none;
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
		justify-content: flex-start;
	}

	.dropdown {
		margin-left: 0;
	}

	.menu-icon {
		display: inline-block;
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
		max-width: 70px;

	}



	.col-2.col-sm-2.text-center {
		width: 17%;
		margin-left: 0px;
		padding-left: 0px;
	}





	.wrapper,
	.wrapper-center,
	.wrapper-center-login,
	.wrapper-center-settings {
		padding: 10px;
	}

	/* Make dropdown menus full width on mobile */
	.dropdown-menu {
		min-width: 180px;
		width: 100vw;
		left: 0 !important;
		border-radius: 0 0 10px 10px;
	}


	/* Improve tap targets */
	.btn,
	.btn-primary,
	.btn-action,
	.btn-secondary,
	.btn-third {
		padding: 10px 20px;
		font-size: 16px;
	}

	/* Reduce table padding for small screens */
	.table td,
	.table th {
		padding: 6px 4px;
		font-size: 13px;
	}


	h2,
	.h2 {
		font-size: 18PX;
	}


	/* Show only icons for profile and language dropdowns */
	.dropdown-profile span,
	.dropdown-profile .dropdown-text,
	.dropdown-lang span,
	.dropdown-lang .dropdown-text {
		display: none !important;
	}

	.dropdown-profile,
	.dropdown-lang {
		min-width: 40px;
		padding: 0 8px;
	}

	.sticky-top {
		position: fixed !important;
		top: 0;
		left: 0;
		width: 100vw;
		z-index: 1050;
		box-shadow: 0 2px 8px #ccc;
	}

	.sticky-top-buttons {
		position: absolute;
		top: 10px;
		right: 10px;
		width: auto;
		display: flex;
		gap: 8px;
		float: none;
		z-index: 10;
		padding: 0;
	}

	.dropdown-profile,
	.dropdown-lang {
		min-width: 0;
		padding: 0;
	}

	.dropdown-profile button,
	.dropdown-lang button {
		padding: 4px 6px;
		font-size: 18px;
		min-width: 32px;
		min-height: 32px;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.dropdown-profile i,
	.dropdown-lang i {
		font-size: 18px;
		margin: 0;
	}

	/* bootstrap.min.css | https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css */

	.mt-2 {
		margin-top: .5rem !important;
	}

	.container,
	.container-fluid,
	.container-lg,
	.container-md,
	.container-sm,
	.container-xl,
	.container-xxl {
		--bs-gutter-x: 1rem;
	}

	.table {
		margin-bottom: 0.5rem;
	}








}