:root {
	--bs-red:#c92a2a !important;
	--bs-cyan:#49afcd !important;
	--bs-yellow:#faa732 !important;
	--bs-green:#2e7d32 !important;
	--bs-blue:#005cbf !important;
	--bs-green-hover:#1b5e20 !important;

	--bs-info:#49afcd !important;

	--bs-font-sans-serif: "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--bs-body-font-family: var(--bs-font-sans-serif) !important;
	--bs-body-font-size: 0.85rem !important;
	--bs-body-font-weight: 400 !important;
	--bs-btn-font-size: 0.85rem !important;
}

.input-group .btn {
	z-index:0 !important;
}

.btn{
	--bs-btn-font-size: 0.85rem !important;
	--bs-btn-font-weight: 400 !important
}

.form-control, .form-select {
	font-size: .85rem !important;
	font-weight: 400;
}

.btn {
	background-image: var(--bs-gradient);
}


.form-check-input[type=radio] {
	--bs-border-color: #000000 !important;
}

.checkboxContainer {
	vertical-align: baseline;
}

.checkboxContainer .form-check-input {
	width: 20px !important; 
	height: 20px !important; 
	border: 1px solid #685f5f !important;
}


.btn-primary {
	--bs-btn-color:#fff;
	background-image: var(--bs-gradient);
	--bs-btn-hover-color:#fff;
	--bs-btn-border-color: var(--bs-blue);
	background-color: var(--bs-blue);
}

.btn-warning {
	--bs-btn-color:#fff;
	background-image: var(--bs-gradient);
	--bs-btn-hover-color:#fff;
	background-color: var(--bs-yellow);
	--bs-btn-border-color: var(--bs-yellow);
	--bs-btn-hover-bg:#f89406;
	--bs-btn-hover-border-color:#f89406;
	--bs-btn-active-color:#fff;
	--bs-btn-active-bg:#f89406;
	--bs-btn-active-border-color:#f89406;

}

.btn-info{
	--bs-btn-color:#fff;
	background-image: var(--bs-gradient);
	--bs-btn-hover-color:#fff;
	background-color: var(--bs-info);
	--bs-btn-border-color: var(--bs-info);
	--bs-btn-hover-bg:#0a9fbd;
	--bs-btn-hover-border-color:#0a9fbd;
	--bs-btn-active-color:#fff;
	--bs-btn-active-bg:#0a9fbd;
	--bs-btn-active-border-color:#0a9fbd;
}

.btn-success{
	--bs-btn-hover-border-color: var(--bs-green-hover) !important;
	--bs-btn-color:#fff;
	background-image: var(--bs-gradient);
	background-color: var(--bs-green);
	--bs-btn-hover-color:#fff;
	--bs-btn-border-color: var(--bs-green);
	--bs-btn-hover-bg:var(--bs-green-hover);
}

.btn-danger{
	--bs-btn-color:#fff;
	background-image: var(--bs-gradient);
	--bs-btn-hover-color:#fff;
	--bs-btn-border-color: var(--bs-red);
	background-color: var(--bs-red);
}

.btn-secondary{
	--bs-btn-color:#fff;
	background-image: var(--bs-gradient);
	--bs-btn-hover-color:#fff;
	background-color: #5a6268;
	border-color: #545b62;
}

.badge {
	--bs-badge-font-size: 0.7rem !important;
	--bs-badge-font-weight: 400 !important;
}

.text-bg-info{
	background-color: var(--bs-info) !important;
	background-image: var(--bs-gradient) !important;
	color: #fff !important
}

.text-bg-primary{
	background-color: var(--bs-blue) !important;
	background-image: var(--bs-gradient) !important;
	color: #fff !important
}

.text-bg-warning{
	background-color: var(--bs-yellow) !important;
	background-image: var(--bs-gradient) !important;
	color: #fff !important
}

.text-bg-success{
	background-color: var(--bs-green) !important;
	background-image: var(--bs-gradient) !important;
	color: #fff !important
}

.text-bg-danger{
	background-color: var(--bs-red) !important;
	background-image: var(--bs-gradient) !important;
	color: #fff !important
}

.form-check-input {
	--bs-form-control-bg:#eaeaea !important;
}

.error{
	color: #991f23 !important; /* 508 Contrast Compliance against light bg */
}

span.questionNumber {
    width: 20px !important;
    display: inline-block;
    text-align: end;
}
.surveyQuestionLabel{
	min-width: 40px;
	display: inline-block;
}
/* Gijgo overwrite style */
.gj-datepicker.gj-datepicker-bootstrap.mb-3{
	margin-bottom: 0 !important;
}

.modal-open ul.typeahead.dropdown-menu {
    z-index: 1056;
}

#permitSelectorDiv label.radio{
	display: block;
	margin-bottom: 0.5rem;
}

::placeholder {
	color: #555555;
	opacity: 1;
}

.required::placeholder {
	color: #5B1315;
	opacity: 1; /* Ensure placeholder opacity does not lower contrast */
}

.well {
    min-height: 20px;
    padding: 19px;
    margin-bottom: 20px;
    background-color: #f5f5f5;
    border: 1px solid #eee;
    border: 1px solid rgba(0, 0, 0, 0.05);
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 5%);
    -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
    box-shadow: inset 0 1px 1px rgb(0 0 0 / 5%);
}

.wrapper-signature-pad {
    position: relative;
    width: 476px;
    height: 181px;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.signature-img {
    position: absolute;
    left: 0;
    top: 0;
}
.signature-pad {
    position: absolute;
    left: 0;
    top: 0;
    width: 476px;
    height: 181px;
    cursor: url(/assets/images/full_pen.cur), crosshair;
    cursor: url(/assets/images/full_pen.cur) 2 26, crosshair;
}
input[readonly], input[readonly]:focus {
	color: #212529;
	background-color: #eeeeee;
	cursor: not-allowed;
}
.worker-table.table-sm>:not(caption)>*>*{
	font-size: 0.7rem;
}

#backgroundCheckDiv{
	height: 35vh;
    overflow: auto;
    max-height: 700px;
}

@media all and (max-width:1200px){
	#backgroundCheckDiv{
		height: 280px;
	}
}

.rightnav.rightnav-siteconfig {
	margin-top: 40px;
	top: 65px;
}

.navbar.navbar-expand-lg.navbar-dark.sticky-top {
	z-index: 12000;
}

/* 508 / 1194.21(b) Accessibility Contrast Compliance Overrides */

/* Modal/close button: >= 4.5:1 against modal background */
.close, .btn-close {
    opacity: 0.6 !important;
    color: #000000 !important;
}
.close:hover,
.close:focus,
.btn-close:hover,
.btn-close:focus {
    opacity: 0.9 !important;
    color: #000000 !important;
}

/* Nav: Inactive nav link text >= 4.5:1 on nav background */
.navbar-light .navbar-nav .nav-link,
.navbar-light .nav-link {
    color: #555555 !important; /* Default inactive link for light background */
}
.navbar-dark .navbar-nav .nav-link,
.navbar-dark .nav-link {
    color: #dfdfdf !important; /* Default inactive link for dark background */
}

/* Links on #CFE2FF/alert-info: darker link color to meet 4.5:1 */
.alert-info a {
    color: #002C85 !important;
    text-decoration: underline !important;
}

/* Add Files button (.btn-success): meet 4.5:1 */
.btn-success.fileinput-button {
    background-color: #2b7830 !important;
    border-color: #2b7830 !important;
    color: #ffffff !important;
}
.btn-success.fileinput-button:hover,
.btn-success.fileinput-button:focus,
.btn-success.fileinput-button:active {
    background-color: #246328 !important;
    color: #ffffff !important;
}

/* Signature & Consent Text: meet 4.5:1 */
.signature-consent,
#signatureDialog,
.external-sig-page {
	color: #333333 !important;
}

/* General Danger/Error Text override for contrast */
.text-danger, .invalid-feedback {
    color: #991f23 !important;
}

/* 508 1194.21(f): Visible focus for custom controls */
[role="button"]:focus-visible,
[role="button"]:focus {
    outline: 3px solid #005fcc !important;
    outline-offset: 2px !important;
}
[role="button"]:focus:not(:focus-visible) {
    outline: none !important;
}

.loader {
  border: 16px solid #f3f3f3; /* Light grey */
  border-top: 16px solid #3498db; /* Blue */
  border-radius: 50%;
  width: 120px;
  height: 120px;
  animation: spin 2s linear infinite;
  margin: auto;
  margin-top: 40vh;
}
.loaderContainer{
  position: fixed;
  width: 100%;
  left: 0;
  top: 0;
  bottom: 0;
  z-index: 9999;
  background: black;
  opacity: 0.7;
}
.azdpsText{
  white-space: pre;
  font-size: 12px;
  font-weight: 500;
  display: block;
  unicode-bidi: embed;
  font-family: monospace;
}
.bg-nohit{
  background-color: green;
  color: white;
  font-weight: 600;
}
.bg-hit{
  background-color: red;
  color: white;
  font-weight: bold;
}
.bgcheck-hit{
  font-weight: 600;
  color:red !important;
}
.bgcheck-no-hit{
  color:green !important;
  font-weight: 600;
}
.bgcheck-inconclusive{
	color:orange !important;
	font-weight: 600;
  }
.bgcheck-pending{
  color:#3498db !important;
  font-weight: 600;
}
.bgcheck-review-recommended{
	color:#0d6efd !important;
	font-weight: 600;
  }
.incomplete-request{
	background-color: yellow;
	display: inline-block;
    padding: 0.25rem;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.btn-check-all {
	padding: 2px;
	border-width: 1px !important;
	border-color: transparent !important;
	border-style: solid;
}

.btn-group .dropdown-toggle:active {
	border: none;
}

.btn-check-all:active, .btn-check-all:hover {
    border-width: 1px;
    border-style: solid;
    border-color: black !important;
    border-image: initial;
}

.btn-group .dropdown-toggle .show {
	border-color: transparent !important;
}

.btn-group:active, .btn-group:hover{
	border: 1px solid #eeeeee;
}


.custom-page-header p{
	margin-bottom: 0;
}

.alert-primary a:not(.btn) {
	color: #003e80 !important;
	text-decoration: underline;
}

/* WCAG 1.4.1 (Level A) and Section 508 1194.21(d): Links must not rely solely on color */
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.navbar-brand):not(.page-link):not(.list-group-item):not(.stretched-link):not(.card-link):not([class*="btn-"]):not(.close):not(.btn-close) {
    text-decoration: underline !important;
}

/* Accessibility: Skip to Main Content Link */
.skip-link {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    white-space: nowrap;
    background: #000;
    color: #fff;
    z-index: 100000;
    text-decoration: none;
    font-weight: bold;
}

.skip-link:focus {
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
    padding: 8px;
    margin: 0;
    top: 0;
    left: 0;
    outline: 3px solid #0d6efd;
    outline-offset: 2px;
}

/* WCAG 2.1 - 1.4.10 Reflow Adjustments */
@media (max-width: 480px) {
	/* Signature Pad Scaling */
	.wrapper-signature-pad, .signature-pad {
		width: 100% !important;
		max-width: 100% !important;
	}
}

@media (max-width: 320px) {
	
	/* Modals Reflow */
	.modal {
		width: 100% !important;
		margin-left: 0 !important;
		left: 0 !important;
		top: 0 !important;
	}
	.modal-body {
		padding: 10px !important;
		overflow-x: hidden !important;
	}
	
	/* Tables Reflow */
	table.table {
		display: block;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	
	/* Form Controls */
	input, select, textarea, .form-control {
		max-width: 100% !important;
	}
	
	/* Datepicker / Calendar Pickers */
	.datepicker {
		max-width: 100%;
		overflow: hidden;
	}

    /* General layout overflow prevention */
    body {
        overflow-x: hidden;
    }
}

/* WCAG 2.1 Level AA - 1.4.11 Non-text Contrast */
input:not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), 
select, 
textarea, 
.form-control {
    border: 1px solid #767676 !important; /* Ensures at least 3:1 ratio against white background for input borders */
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.btn:focus-visible,
.close:focus-visible {
    outline: 3px solid #005fcc !important; /* Non-text contrast ratio passes well over 3:1 against white/grey/black */
    outline-offset: 2px !important;
}
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible),
.btn:focus:not(:focus-visible),
.close:focus:not(:focus-visible) {
    outline: none !important;
}

.add-on i, 
.icon-envelope, 
.icon-calendar, 
[class^="icon-"], 
[class*=" icon-"] {
    color: #444444 !important; /* Ensures icons have adequate contrast */
}