/*
 * Bootstrap 4 -> 5.3 compatibility layer.
 * Keeps Bootstrap 4 class names and default look working on top of Bootstrap 5.3.8,
 * and maps the theme's DataTables 1.x styling onto DataTables 2.x markup.
 * Load order: bootstrap.min.css -> select2 / dataTables css -> this file -> style.css
 */

/* ---------- Theme colours (Bootstrap 4 palette for text-*, bg-*, border-* utilities) ---------- */
:root {
	--bs-primary: #007bff;
	--bs-primary-rgb: 0, 123, 255;
	--bs-success: #28a745;
	--bs-success-rgb: 40, 167, 69;
	--bs-info: #17a2b8;
	--bs-info-rgb: 23, 162, 184;
	--bs-dark: #343a40;
	--bs-dark-rgb: 52, 58, 64;
	--bs-link-color: #007bff;
	--bs-link-color-rgb: 0, 123, 255;
	--bs-link-hover-color: #0056b3;
	--bs-link-hover-color-rgb: 0, 86, 179;
}

/* ---------- Reboot ---------- */
a {
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}
label {
	margin-bottom: .5rem;
}
h1, .h1 { font-size: 2.5rem; }
h2, .h2 { font-size: 2rem; }
h3, .h3 { font-size: 1.75rem; }
h4, .h4 { font-size: 1.5rem; }
.text-muted {
	color: #6c757d !important;
}

/* ---------- Grid (Bootstrap 4 used 30px gutters, max container 1140px) ---------- */
.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl,
.row {
	--bs-gutter-x: 30px;
}
@media (min-width: 1400px) {
	.container,
	.container-sm,
	.container-md,
	.container-lg,
	.container-xl,
	.container-xxl {
		max-width: 1140px;
	}
}
/* Bootstrap 5 sizes every direct child of .row; Bootstrap 4 only sized .col* children */
.row > :where(:not(.col, [class^="col-"], [class*=" col-"])) {
	flex-shrink: 1;
	width: auto;
	max-width: none;
	padding-right: 0;
	padding-left: 0;
}
.no-gutters {
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

/* ---------- Spacing ---------- */
.ml-0 { margin-left: 0 !important; }
.ml-1 { margin-left: .25rem !important; }
.ml-2 { margin-left: .5rem !important; }
.ml-3 { margin-left: 1rem !important; }
.ml-4 { margin-left: 1.5rem !important; }
.ml-5 { margin-left: 3rem !important; }
.ml-auto { margin-left: auto !important; }
.mr-0 { margin-right: 0 !important; }
.mr-1 { margin-right: .25rem !important; }
.mr-2 { margin-right: .5rem !important; }
.mr-3 { margin-right: 1rem !important; }
.mr-4 { margin-right: 1.5rem !important; }
.mr-5 { margin-right: 3rem !important; }
.mr-auto { margin-right: auto !important; }
.pl-0 { padding-left: 0 !important; }
.pl-1 { padding-left: .25rem !important; }
.pl-2 { padding-left: .5rem !important; }
.pl-3 { padding-left: 1rem !important; }
.pl-4 { padding-left: 1.5rem !important; }
.pl-5 { padding-left: 3rem !important; }
.pr-0 { padding-right: 0 !important; }
.pr-1 { padding-right: .25rem !important; }
.pr-2 { padding-right: .5rem !important; }
.pr-3 { padding-right: 1rem !important; }
.pr-4 { padding-right: 1.5rem !important; }
.pr-5 { padding-right: 3rem !important; }

@media (min-width: 576px) {
	.ml-sm-0 { margin-left: 0 !important; }
	.ml-sm-1 { margin-left: .25rem !important; }
	.ml-sm-2 { margin-left: .5rem !important; }
	.ml-sm-3 { margin-left: 1rem !important; }
	.ml-sm-4 { margin-left: 1.5rem !important; }
	.ml-sm-5 { margin-left: 3rem !important; }
	.ml-sm-auto { margin-left: auto !important; }
	.mr-sm-0 { margin-right: 0 !important; }
	.mr-sm-1 { margin-right: .25rem !important; }
	.mr-sm-2 { margin-right: .5rem !important; }
	.mr-sm-3 { margin-right: 1rem !important; }
	.mr-sm-4 { margin-right: 1.5rem !important; }
	.mr-sm-5 { margin-right: 3rem !important; }
	.mr-sm-auto { margin-right: auto !important; }
	.pl-sm-0 { padding-left: 0 !important; }
	.pl-sm-1 { padding-left: .25rem !important; }
	.pl-sm-2 { padding-left: .5rem !important; }
	.pl-sm-3 { padding-left: 1rem !important; }
	.pl-sm-4 { padding-left: 1.5rem !important; }
	.pl-sm-5 { padding-left: 3rem !important; }
	.pr-sm-0 { padding-right: 0 !important; }
	.pr-sm-1 { padding-right: .25rem !important; }
	.pr-sm-2 { padding-right: .5rem !important; }
	.pr-sm-3 { padding-right: 1rem !important; }
	.pr-sm-4 { padding-right: 1.5rem !important; }
	.pr-sm-5 { padding-right: 3rem !important; }
	.float-sm-left { float: left !important; }
	.float-sm-right { float: right !important; }
	.text-sm-left { text-align: left !important; }
	.text-sm-right { text-align: right !important; }
}

@media (min-width: 768px) {
	.ml-md-0 { margin-left: 0 !important; }
	.ml-md-1 { margin-left: .25rem !important; }
	.ml-md-2 { margin-left: .5rem !important; }
	.ml-md-3 { margin-left: 1rem !important; }
	.ml-md-4 { margin-left: 1.5rem !important; }
	.ml-md-5 { margin-left: 3rem !important; }
	.ml-md-auto { margin-left: auto !important; }
	.mr-md-0 { margin-right: 0 !important; }
	.mr-md-1 { margin-right: .25rem !important; }
	.mr-md-2 { margin-right: .5rem !important; }
	.mr-md-3 { margin-right: 1rem !important; }
	.mr-md-4 { margin-right: 1.5rem !important; }
	.mr-md-5 { margin-right: 3rem !important; }
	.mr-md-auto { margin-right: auto !important; }
	.pl-md-0 { padding-left: 0 !important; }
	.pl-md-1 { padding-left: .25rem !important; }
	.pl-md-2 { padding-left: .5rem !important; }
	.pl-md-3 { padding-left: 1rem !important; }
	.pl-md-4 { padding-left: 1.5rem !important; }
	.pl-md-5 { padding-left: 3rem !important; }
	.pr-md-0 { padding-right: 0 !important; }
	.pr-md-1 { padding-right: .25rem !important; }
	.pr-md-2 { padding-right: .5rem !important; }
	.pr-md-3 { padding-right: 1rem !important; }
	.pr-md-4 { padding-right: 1.5rem !important; }
	.pr-md-5 { padding-right: 3rem !important; }
	.float-md-left { float: left !important; }
	.float-md-right { float: right !important; }
	.text-md-left { text-align: left !important; }
	.text-md-right { text-align: right !important; }
}

@media (min-width: 992px) {
	.ml-lg-0 { margin-left: 0 !important; }
	.ml-lg-1 { margin-left: .25rem !important; }
	.ml-lg-2 { margin-left: .5rem !important; }
	.ml-lg-3 { margin-left: 1rem !important; }
	.ml-lg-4 { margin-left: 1.5rem !important; }
	.ml-lg-5 { margin-left: 3rem !important; }
	.ml-lg-auto { margin-left: auto !important; }
	.mr-lg-0 { margin-right: 0 !important; }
	.mr-lg-1 { margin-right: .25rem !important; }
	.mr-lg-2 { margin-right: .5rem !important; }
	.mr-lg-3 { margin-right: 1rem !important; }
	.mr-lg-4 { margin-right: 1.5rem !important; }
	.mr-lg-5 { margin-right: 3rem !important; }
	.mr-lg-auto { margin-right: auto !important; }
	.pl-lg-0 { padding-left: 0 !important; }
	.pl-lg-1 { padding-left: .25rem !important; }
	.pl-lg-2 { padding-left: .5rem !important; }
	.pl-lg-3 { padding-left: 1rem !important; }
	.pl-lg-4 { padding-left: 1.5rem !important; }
	.pl-lg-5 { padding-left: 3rem !important; }
	.pr-lg-0 { padding-right: 0 !important; }
	.pr-lg-1 { padding-right: .25rem !important; }
	.pr-lg-2 { padding-right: .5rem !important; }
	.pr-lg-3 { padding-right: 1rem !important; }
	.pr-lg-4 { padding-right: 1.5rem !important; }
	.pr-lg-5 { padding-right: 3rem !important; }
	.float-lg-left { float: left !important; }
	.float-lg-right { float: right !important; }
	.text-lg-left { text-align: left !important; }
	.text-lg-right { text-align: right !important; }
}

@media (min-width: 1200px) {
	.ml-xl-0 { margin-left: 0 !important; }
	.ml-xl-1 { margin-left: .25rem !important; }
	.ml-xl-2 { margin-left: .5rem !important; }
	.ml-xl-3 { margin-left: 1rem !important; }
	.ml-xl-4 { margin-left: 1.5rem !important; }
	.ml-xl-5 { margin-left: 3rem !important; }
	.ml-xl-auto { margin-left: auto !important; }
	.mr-xl-0 { margin-right: 0 !important; }
	.mr-xl-1 { margin-right: .25rem !important; }
	.mr-xl-2 { margin-right: .5rem !important; }
	.mr-xl-3 { margin-right: 1rem !important; }
	.mr-xl-4 { margin-right: 1.5rem !important; }
	.mr-xl-5 { margin-right: 3rem !important; }
	.mr-xl-auto { margin-right: auto !important; }
	.pl-xl-0 { padding-left: 0 !important; }
	.pl-xl-1 { padding-left: .25rem !important; }
	.pl-xl-2 { padding-left: .5rem !important; }
	.pl-xl-3 { padding-left: 1rem !important; }
	.pl-xl-4 { padding-left: 1.5rem !important; }
	.pl-xl-5 { padding-left: 3rem !important; }
	.pr-xl-0 { padding-right: 0 !important; }
	.pr-xl-1 { padding-right: .25rem !important; }
	.pr-xl-2 { padding-right: .5rem !important; }
	.pr-xl-3 { padding-right: 1rem !important; }
	.pr-xl-4 { padding-right: 1.5rem !important; }
	.pr-xl-5 { padding-right: 3rem !important; }
	.float-xl-left { float: left !important; }
	.float-xl-right { float: right !important; }
	.text-xl-left { text-align: left !important; }
	.text-xl-right { text-align: right !important; }
}

/* ---------- Text, float, borders ---------- */
.float-left { float: left !important; }
.float-right { float: right !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.font-weight-light { font-weight: 300 !important; }
.font-weight-lighter { font-weight: lighter !important; }
.font-weight-normal { font-weight: 400 !important; }
.font-weight-bold { font-weight: 700 !important; }
.font-weight-bolder { font-weight: bolder !important; }
.font-italic { font-style: italic !important; }
.text-monospace { font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; }
.border-left { border-left: 1px solid #dee2e6 !important; }
.border-right { border-right: 1px solid #dee2e6 !important; }
.border-left-0 { border-left: 0 !important; }
.border-right-0 { border-right: 0 !important; }
.rounded-left { border-top-left-radius: .25rem !important; border-bottom-left-radius: .25rem !important; }
.rounded-right { border-top-right-radius: .25rem !important; border-bottom-right-radius: .25rem !important; }
.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ---------- Forms ---------- */
.form-group {
	margin-bottom: 1rem;
}
/* Legacy forms place label.col-* / div.col-* directly inside .form-group.col-* without a .row */
.form-group[class*="col-"]:has(> [class*="col-"]) {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	padding-right: 15px;
	padding-left: 15px;
}
.form-group[class*="col-"]:has(> [class*="col-"]) > [class*="col-"] {
	flex-shrink: 0;
	padding-right: 15px;
	padding-left: 15px;
}
.form-group[class*="col-"]:has(> [class*="col-"]) > label[class*="col-"] {
	margin-bottom: 0;
	padding-top: 8px;
}
.form-row {
	display: flex;
	flex-wrap: wrap;
	margin-right: -5px;
	margin-left: -5px;
}
.form-row > .col,
.form-row > [class*="col-"] {
	padding-right: 5px;
	padding-left: 5px;
}
.form-text {
	display: block;
}
select.form-control {
	-webkit-appearance: auto;
	-moz-appearance: auto;
	appearance: auto;
}
.form-control[readonly] {
	background-color: #e9ecef;
	opacity: 1;
}
.input-group-append,
.input-group-prepend {
	display: flex;
}
.input-group-append {
	margin-left: -1px;
}
.input-group-prepend {
	margin-right: -1px;
}
.input-group-append .btn,
.input-group-prepend .btn {
	position: relative;
	z-index: 2;
}
.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

/* ---------- Buttons ---------- */
.btn-link {
	text-decoration: none;
}
.btn-link:hover {
	text-decoration: underline;
}
.btn-block {
	display: block;
	width: 100%;
}
.btn-block + .btn-block {
	margin-top: .5rem;
}
.close {
	float: right;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	color: #000;
	text-shadow: 0 1px 0 #fff;
	opacity: .5;
}
.close:hover {
	color: #000;
	text-decoration: none;
	opacity: .75;
}
button.close {
	padding: 0;
	background-color: transparent;
	border: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
.modal-header .close {
	padding: 1rem;
	margin: -1rem -1rem -1rem auto;
}
.alert-dismissible .close {
	position: absolute;
	top: 0;
	right: 0;
	padding: .75rem 1.25rem;
	color: inherit;
}

/* ---------- Badges ---------- */
.badge {
	--bs-badge-padding-x: .4em;
	--bs-badge-padding-y: .25em;
}
.badge-pill {
	padding-right: .6em;
	padding-left: .6em;
	border-radius: 10rem;
}
.badge-primary { color: #fff; background-color: #007bff; }
.badge-secondary { color: #fff; background-color: #6c757d; }
.badge-success { color: #fff; background-color: #28a745; }
.badge-danger { color: #fff; background-color: #dc3545; }
.badge-warning { color: #212529; background-color: #ffc107; }
.badge-info { color: #fff; background-color: #17a2b8; }
.badge-light { color: #212529; background-color: #f8f9fa; }
.badge-dark { color: #fff; background-color: #343a40; }

/* ---------- Dropdowns ---------- */
.dropdown-menu-right {
	--bs-position: end;
}
.dropdown-menu-right[data-bs-popper] {
	right: 0;
	left: auto;
}
.dropdown-menu-left {
	--bs-position: start;
}
.dropdown-menu-left[data-bs-popper] {
	right: auto;
	left: 0;
}

/* ---------- Tables (Bootstrap 4 cells were transparent and inherited colour) ---------- */
.table {
	--bs-table-bg: transparent;
	--bs-table-color: currentColor;
}
.table > :not(caption) > * > * {
	padding: .75rem;
}
.table-sm > :not(caption) > * > * {
	padding: .3rem;
}
.table .thead-dark th {
	color: #fff;
	background-color: #343a40;
	border-color: #454d55;
}
.table .thead-light th {
	color: #495057;
	background-color: #e9ecef;
	border-color: #dee2e6;
}

/* ---------- Cards, alerts ---------- */
.card {
	--bs-card-spacer-y: 1.25rem;
	--bs-card-spacer-x: 1.25rem;
	--bs-card-cap-padding-y: .75rem;
	--bs-card-cap-padding-x: 1.25rem;
}
.alert {
	--bs-alert-padding-x: 1.25rem;
	--bs-alert-padding-y: .75rem;
}

/* ---------- Media object ---------- */
.media {
	display: flex;
	align-items: flex-start;
}
.media-body {
	flex: 1;
}

/* ---------- DataTables 2.x: keep DataTables 1.x look ---------- */
table.dataTable th.dt-type-numeric,
table.dataTable th.dt-type-date,
table.dataTable td.dt-type-numeric,
table.dataTable td.dt-type-date {
	text-align: left;
}
.dt-container .dt-length select,
.dt-container .dt-search input {
	padding: 5px 11px;
	border-radius: 4px;
	border: 1px solid #aaa;
}
.dt-container .dt-paging {
	margin-top: 10px;
	margin-bottom: 10px;
}
.dt-container .dt-paging nav {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 3px;
}
.placeTable .dt-container .dt-paging .dt-paging-button {
	position: relative;
	display: block !important;
	margin-left: -1px !important;
	line-height: 1.25 !important;
	background-color: #fff !important;
	border: 1px solid #dee2e6 !important;
	font-size: 12px;
}
.placeTable .dt-container .dt-paging .dt-paging-button.current {
	background: #1a1549 !important;
	color: #fff !important;
}
.placeTable .dt-container .dt-paging .dt-paging-button.disabled {
	color: #aaa !important;
}
