@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,300;0,400;0,600;1,400&display=swap');

/*
	Allow angular.js to be loaded in body, hiding cloaked elements until
	templates compile.  The !important is important given that there may be
	other selectors that are more specific or come later and might alter display.
*/
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
	display: none !important;
}


body, * {
	font-family: 'Source Sans 3', sans-serif !important;
}

body {
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

/* LSB-100: Global form element font-size — 16px (Source Sans 3 renders smaller than PT Sans Narrow at same px) */
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]):not([type="image"]):not([type="reset"]),
select,
textarea,
.form-control {
	font-size: 16px;
}

/* LSB-100: Label font-size — 16px for Source Sans 3 parity */
label,
.control-label {
	font-size: 16px;
}

/* LSB-100: .btn-mini — bump from Bootstrap 2 default (10.5px / 0 6px) to match Source Sans 3 at readable size */
.btn-mini {
	font-size: 14px;
	padding: 4px 10px;
}

/* LSB-100: .btn-mini icons — restore vertical centering after size bump */
.btn-mini [class^="icon-"],
.btn-mini [class*=" icon-"] {
	margin-top: 0;
	vertical-align: middle;
}

/* LSB-100: .btn-small — bump from Bootstrap 2 default (11.9px) to match Source Sans 3 */
.btn-small {
	font-size: 15px;
	padding: 4px 10px;
}

/* LSB-100: .btn-small icons — vertical centering after size bump */
.btn-small [class^="icon-"],
.btn-small [class*=" icon-"] {
	margin-top: 0;
	vertical-align: middle;
}



/* ------------------------------------------------------------------------------------------------------------------------------------------------------
 Wells
 ------------------------------------------------------------------------------------------------------------------------------------------------------ */
/*@media (min-width: 1200px) {
	.well .span3 {
		width: 22.45%;
	}
}

@media (max-width: 1199px) and (min-width: 980px) {
	.well .span3 {
		width: 22.9%;
	}
}

@media (max-width: 979px) and (min-width: 768px) {
	.well .span3 {
		width: 22.3%;
	}
}

@media (max-width: 767px) {
	.well .span3 {
		width: 100%;
		margin-bottom: 10px;
	}
}

.well .form-horizontal .control-group {
	margin-bottom: 0;
}

.well .form-horizontal .control-label {
	width: auto;
	margin-right: 10px;
}

.well .form-horizontal .controls {
	margin-left: 0;
}*/

/* ------------------------------------------------------------------------------------------------------------------------------------------------------
 ColdBox Message Box
 ------------------------------------------------------------------------------------------------------------------------------------------------------ */
.cbox_messagebox {
	margin: 0;
	font-size: 13px;
	font-weight: bold;
}

.cbox_messagebox_info,
.cbox_messagebox_warning,
.cbox_messagebox_error {
	padding: 8px 35px 8px 14px;
	margin-bottom: 18px;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	border-width: 1px;
	border-style: solid;
}

.cbox_messagebox_info {
	background-color: #dff0d8;
	border-color: #d6e9c6;
	color: #468847;
}

.cbox_messagebox_info a {
	color: #468847;
}

.cbox_messagebox_info a:hover {
	text-decoration: none;
}

.cbox_messagebox_warning {
	background-color: #fcf8e3;
	border-color: #fbeed5;
	color: #c09853;
}

.cbox_messagebox_warning a {
	color: #c09853;
}

.cbox_messagebox_warning a:hover {
	text-decoration: none;
}

.cbox_messagebox_error {
	background-color: #f2dede;
	border-color: #eed3d7;
	color: #b94a48;
}

.cbox_messagebox_error a {
	color: #b94a48;
}

.cbox_messagebox_error a:hover {
	text-decoration: none;
}

/* ------------------------------------------------------------------------------------------------------------------------------------------------------
 Filter Bar
 ------------------------------------------------------------------------------------------------------------------------------------------------------ */
fieldset.filters {
	border: 1px solid #E5E5E5;
	padding: 7px 0 3px 5px;
	margin-bottom: 10px;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	margin-top: 15px;
	background-color: #FFF;
	min-height: 34px;
}

fieldset.filters legend {
	width: auto;
	font-size: 13px;
	line-height: 1.25em;
	color: #333;
	font-weight: bold;
	border: none;
	padding: 0 2px;
	margin-bottom: 0;
}

fieldset.filters .control-group {
	float: left;
	margin: 0 8px 2px 1px;
}

fieldset.filters .controls {
	line-height: 18px;
}

fieldset.filters .chosen-container {
	top: 0;
	margin-bottom: 0;
	width: auto !important;
	/* min-width: 90px; */
}

fieldset.filters .control-group .control-label {
	width: auto;
	margin-right: 8px;
	float: left;
	padding-top: 5px;
}

fieldset.filters .control-group .controls {
	margin-left: auto;
	float: left;
}

fieldset.filters .btn-mini {
	position: relative;
	top: 4px;
}

fieldset.filters select {
	width: auto;
}

fieldset.filters input[type="checkbox"] {
	position: relative;
	top: 2px;
}

fieldset.filters input,
fieldset.filters select {
	margin-bottom: 0;
	font-size: 16px;
}

fieldset.filters .row-fluid {
	margin-left: 0;
}

fieldset.filters .quick-add-form {
	left: -9px;
	position: relative;
	margin: 0;
}

/*fieldset.filters .form-horizontal [class*="span"] .controls {
	margin-left: 120px;
}


fieldset.filters .form-horizontal [class*="span"] .control-label {
	width: 100px;
}

fieldset.filters .form-horizontal .control-group {
	margin-bottom: 10px;
	margin-left: 0px;
}*/

/*.help-block {
	font-size: .8em;
	color: #666;
	line-height: .8em;
}

.accordion-inner {
	padding: 20px;
}

.accordion-heading .accordion-toggle {
	padding: 12px 8px;
}

.accordion-heading .accordion-toggle .tt-icon {
	position: relative;
	top: -3px;
}

.table th, .table td {
	line-height: 22px;
}*/

/* ------------------------------------------------------------------------------------------------------------------------------------------------------
Form Group
------------------------------------------------------------------------------------------------------------------------------------------------------ */
.mb-none {
	margin-bottom: 0;
}

.form-group {
	position: relative;
	margin: 15px 0;
	padding: 2px 19px;
	background-color: white;
	border: 1px solid #e5e5e5;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	padding-bottom: 19px;
}

.form-group-label {
	position: relative;
	top: -3px;
	left: -20px;
	padding: 5px 7px;
	margin-bottom: 5px;
	font-size: 12px;
	border: 1px solid #e5e5e5;
	color: #333;
	-webkit-border-radius: 4px 0 4px 0;
	-moz-border-radius: 4px 0 4px 0;
	border-radius: 4px 0 4px 0;
	background-color: whiteSmoke;
	display: inline-block;
}

.form-group-label .btn-mini {
	padding: 0 1px 0 2px;
	line-height: 15px;
	position: relative;
	top: -2px;
	margin-left: 3px;
}

.form-group-label .btn-mini i {
	margin-top: 0;
}

/*----------------------------------------------------------------------*/
/* Multi Select
/*----------------------------------------------------------------------*/
div.comboselectbox {
	display: block;
	clear: both;
	min-heigxht: 100px;
	width: 500px;
}

div.comboselectbox div.combowrap {
	-webkit-border-radius: 4px; -moz-border-radius:4px; border-radius:4px;
	-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
	float: left;
	border: 1px solid #CCC;
	width: 210px;
	height: 99%;
	padding: 1% 1% 0 0;
}

div.comboselectbox ul.comboselect {
	overflow: auto;
	height: 96%;
	margin: 0 0 9px 0;
}

div.comboselectbox.searchable div.combowrap:first-child ul.comboselect {
	height: 79%;
}

div.comboselectbox.searchable div.combowrap:first-child input {
	margin: 1% 2% 2% 4%;
	width: 90%;
}

div.comboselectbox ul.comboselect li {
	display: block;
	list-style-type: none;
	float: left;
	margin: 1% 6% 0% 4%;
	width: 91.5%;
	-webkit-border-radius: 4px; -moz-border-radius:4px; border-radius:4px;
	padding: 4px 0 4px 5px;
}

div.comboselectbox ul.comboselect li.hidden {
	display: none;
}

div.comboselectbox ul.comboselect li a {
	font-size: 11px;
	padding: 3px;
	float: left;
	width: 75%;
	cursor: pointer;
	text-decoration: none;
	cursor: pointer;
	text-align: left;
	color: #333;
}

div.comboselectbox ul.comboselect.ui-sortable li.selected a {
	cursor: n-resize;
}

div.comboselectbox ul.comboselect li a.add,
div.comboselectbox ul.comboselect li a.remove{
	width: 18px;
	cursor: pointer;
	position: relative;
}

div.comboselectbox ul.comboselect li a.add{
	left: 15px;
}

div.comboselectbox ul.comboselect li a.remove{
	left: 18px;
}

div.comboselectbox ul.comboselect li.used a {
	text-decoration: line-through;
}

div.comboselectbox ul.comboselect li.selected {
	border-color: rgba(82, 168, 236, 0.8);
	outline: 0;
	-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(82, 168, 236, .6);
	-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(82, 168, 236, .6);
}

div.comboselectbox div.comboselectbuttons {
	max-width: 9%;
	height: 99%;
	width: 40px;
	float: left;
	padding: 0 4px;
}

div.comboselectbox div.comboselectbuttons a {
	margin-bottom: 3px;
}

.dataTables_wrapper {
	position: relative;
	clear: both;
	zoom: 1;
}

.dataTables_processing {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 250px;
	height: 30px;
	margin-left: -125px;
	margin-top: -15px;
	padding: 14px 0 2px 0;
	border: 1px solid #E5E5E5;
	text-align: center;
	color: #FFF;
	font-size: 14px;
	background-color: #162447;
}

.required {
	background: #fff url('../images/red_asterisk.png') no-repeat top right 1px;
	padding-right: 15px;
}

.form-horizontal .form-actions {
	padding-left: 20px;
}

input.error, select.error, textarea.error {
	border: 1px red solid;
}

label.error, .error {
	color: red;
}

label.helper, .helper {
	color: green;
}

/*----------------------------------------------------------------------*/
/* Modals
/*----------------------------------------------------------------------*/
.modal form {
	margin: 0;
}

.modal .row-fluid:last-child .control-group,
.modal .row-fluid:last-child .controls input,
.modal .row-fluid:last-child .controls select,
.modal .row-fluid:last-child .controls textarea {
	margin-bottom: 0;
}

.modal {
	top: 10%;
	left: 5%;
	width: 90%;
	margin: 0;
}

.modal.modal-85 {
	top: 10%;
	left: 7.5%;
	width: 85%;
	margin: 0;
}

.modal.modal-80 {
	top: 10%;
	left: 10%;
	width: 80%;
	margin: 0;
}

.modal.modal-75 {
	top: 10%;
	left: 12.5%;
	width: 75%;
	margin: 0;
}

.modal.modal-70 {
	top: 10%;
	left: 15%;
	width: 70%;
	margin: 0;
}

.modal.modal-60 {
	top: 10%;
	left: 20%;
	width: 60%;
	margin: 0;
}

.modal.modal-50 {
	top: 10%;
	left: 25%;
	width: 50%;
	margin: 0;
}

.modal.modal-45 {
	top: 10%;
	left: 27.5%;
	width: 45%;
	margin: 0;
}

.modal.modal-35 {
	top: 10%;
	left: 32.5%;
	width: 35%;
	margin: 0;
}

.modal #deleteConfirm, .modal #finalizeImportConfirm {
	top: 30%;
	left: 35%;
	width: 30%;
}

.modal h3, .modal div .control-group {
	margin: 0;
}

.modal div .modal-body {
	padding: 9px;
}

.modal div .form-actions {
	margin: 10px -9px -9px -9px;
	padding: 9px;
	border-bottom-right-radius: 6px;
	border-bottom-left-radius: 6px;
}

.modal-body {
	overflow-y: initial;
}

.modal-body.modal-body-scroll {
	overflow-y: auto;
}

.modal.fade.in {
	top: -25%;
}

.modal div .modal-body-buffered {
	padding: 15px;
}

/*----------------------------------------------------------------------*/
/* NG Grid
/*----------------------------------------------------------------------*/
/* grid */
.gridStyle {
	overflow: auto;
	border: 1px solid #E5E5E5;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
}

.gridStyleFullHeight {
	border: 1px solid #E5E5E5;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	overflow: auto;
}

/* header */
.ngTopPanel {
	background: none;
	border-bottom: none;
}

.ngHeaderContainer {
	border-bottom: 1px solid #E5E5E5;
}

.ngHeaderText {
	max-width: 90%;
}

.ngSortButtonDown,
.ngSortButtonUp {
	top: 13px;
	left: inherit;
	right: 7px;
}

/* body */
.ngVerticalBarVisible {
	background-color: #E5E5E5;
}

.ngCellText {
	padding: 11px;
}

.ngRow {
	border-top: 1px solid #E5E5E5;
	border-bottom: 1px solid #E5E5E5;
}

.ngRow.even {
	background-color: #f7f9fc;
}

.gridActions {
	padding: 11px 5px;
}

.gridStyle .btn-mini {
	margin: 0 2px;
	top: -2px;
	position: relative;
}

/* footer */
.ngFooterPanel {
	border-top: 1px solid #E5E5E5;
	background: none;
}

.gridStyleAutoHeight .ngFooterPanel {
	border-top: none;
}

.ngRowCountPicker span {
	margin-right: 5px;
}

.ngFooterTotalItems {
	position: relative;
	top: 8px;
}

.ngPagerFirstBar,
.ngPagerLastBar {
	border-color: #000;
}

.ngPagerFirstTriangle,
.ngPagerPrevTriangle {
	border-color: rgba(0, 0, 0, 0) #000 rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
}

.ngPagerNextTriangle, .ngPagerLastTriangle {
	border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #000;
}

.ngFooterPanel button {
	display: inline-block;
	padding: 4px 12px;
	margin-bottom: 0;
	font-size: 14px;
	line-height: 20px;
	color: #333;
	text-align: center;
	text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
	vertical-align: middle;
	cursor: pointer;
	background-color: #F5F5F5;
	background-image: -moz-linear-gradient(top,#fff,#e6e6e6);
	background-image: -webkit-gradient(linear,0 0,0 100%,from(#FFF),to(#E6E6E6));
	background-image: -webkit-linear-gradient(top,#FFF,#E6E6E6);
	background-image: -o-linear-gradient(top,#fff,#e6e6e6);
	background-image: linear-gradient(to bottom,#FFF,#E6E6E6);
	background-repeat: repeat-x;
	border: 1px solid #BBB;
	border-bottom-color: #A2A2A2;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);
	filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
	-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);
	-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);
	border-color: #C5C5C5;
	border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
}

.ngPagerCurrent {
	display: none !important;
}

.ngRow:hover {
	background-color: #e8f4fc;
}

.ngCells {
	display : table-cell;
	height: auto !important;
	overflow:visible;
	position: static;
}

.ngRows {
	display : table-row;
	height: auto !important;
	position: static;
}

.ngCellTexts{
	height: auto !important;
	white-space: normal;
	overflow:visible;
}

.ngHeaderCell {
	background: linear-gradient(to bottom, #f8f9fa 0%, #e9ecef 100%);
}

.ngHeaderText {
	font-weight: bold;
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: 0.5px;
}

/*----------------------------------------------------------------------*/
/* Chosen Select
/*----------------------------------------------------------------------*/
.chosen-container {
	margin-bottom: 10px;
	font-size: inherit;
}

.chosen-container-single .chosen-single {
	height: 28px;
	border: 1px solid #ccc;
	box-shadow: none;
	padding: 0 0 0 6px;
	background: none;
	line-height: 29px;
	color: #555;
	font-size: 1em;
	border-radius: 4px;
	background-color: #FFF;
	border: 1px solid #CCC;
	-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
	-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.chosen-container-single .chosen-single span, .chosen-container-single .chosen-results {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-size: 16px !important;
}

.chosen-container-single .chosen-single div b {
	background-position: 3px 5px;
}

.chosen-container-active.chosen-with-drop .chosen-single div b {
	background-position: 3px 5px;
}

.chosen-container-active {
	-webkit-transition: border linear .2s,box-shadow linear .2s;
	-moz-transition: border linear .2s,box-shadow linear .2s;
	-o-transition: border linear .2s,box-shadow linear .2s;
	transition: border linear .2s,box-shadow linear .2s;
	-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);
	-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);
}

.chosen-container-active a {
	border-color: rgba(82, 168, 236, 0.8) !important;
}

/* LSB-100: Chosen.js font-size — 16px to match Source Sans 3 rendering parity with prod */
.chosen-container {
	font-size: 16px !important;
}
.chosen-container .chosen-single {
	font-size: 16px !important;
}
.chosen-container .chosen-single span {
	font-size: 16px !important;
}
.chosen-container .chosen-drop .chosen-results li {
	font-size: 16px !important;
}
.chosen-container .chosen-search input {
	font-size: 16px !important;
}

/*----------------------------------------------------------------------*/
/* Nav Bar
/*----------------------------------------------------------------------*/
.navbar {
	color: #fff;
}

.navbar-inner {
	background:#162447 url("../images/bg.jpg") no-repeat 50% 50%;
	-webkit-box-shadow: inset 0px 0px 25px 3px rgba(0,0,0,0.5);
	-moz-box-shadow: inset 0px 0px 25px 3px rgba(0,0,0,0.5);
	box-shadow: inset 0px 0px 25px 3px rgba(0,0,0,0.5);
}

.navbar-fixed-top .navbar-inner,
.navbar-static-top .navbar-inner {
	border-width: 0;
}

.navbar .brand {
	color: #fff;
	text-shadow: none;
	padding-top: 5px;
	padding-bottom: 5px;
	line-height: 30px;
}

.navbar .divider-vertical {
	border-left: none;
	border-right: none;
	margin: 0;
	width: 1px;
	background: rgb(22,36,71); /* Old browsers */
	background: -moz-linear-gradient(top,  rgba(22,36,71,1) 0%, rgba(255,255,255,1) 50%, rgba(22,36,71,1) 100%); /* FF3.6+ */
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(22,36,71,1)), color-stop(50%,rgba(255,255,255,1)), color-stop(100%,rgba(22,36,71,1))); /* Chrome,Safari4+ */
	background: -webkit-linear-gradient(top,  rgba(22,36,71,1) 0%,rgba(255,255,255,1) 50%,rgba(22,36,71,1) 100%); /* Chrome10+,Safari5.1+ */
	background: -o-linear-gradient(top,  rgba(22,36,71,1) 0%,rgba(255,255,255,1) 50%,rgba(22,36,71,1) 100%); /* Opera 11.10+ */
	background: -ms-linear-gradient(top,  rgba(22,36,71,1) 0%,rgba(255,255,255,1) 50%,rgba(22,36,71,1) 100%); /* IE10+ */
	background: linear-gradient(to bottom,  rgba(22,36,71,1) 0%,rgba(255,255,255,1) 50%,rgba(22,36,71,1) 100%); /* W3C */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#162447', endColorstr='#162447',GradientType=0 ); /* IE6-9 */
}

.navbar .nav > li > a {
	color: #fff;
	text-shadow: none;
	padding: 10px 20px 0;
}

.navbar .nav > li > a.dropdown-toggle {
	padding-bottom: 10px;
}

.navbar .nav > li > a:focus,
.navbar .nav > li > a:hover {
	color: #fff;
}

.navbar .nav li.dropdown > a:hover .caret {
	border-top-color: #fff;
	border-bottom-color: #fff;
}

.navbar .nav li.dropdown > .dropdown-toggle .caret {
	border-top-color: #fff;
	border-bottom-color: #fff;
	margin-left: 4px;
}

.navbar .nav li.dropdown.open > .dropdown-toggle,
.navbar .nav li.dropdown.active > .dropdown-toggle,
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
	color: #162447;
	background: rgb(246,248,249); /* Old browsers */
	background: -moz-linear-gradient(top,  rgba(246,248,249,1) 0%, rgba(229,235,238,1) 50%, rgba(215,222,227,1) 51%, rgba(245,247,249,1) 100%); /* FF3.6+ */
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(246,248,249,1)), color-stop(50%,rgba(229,235,238,1)), color-stop(51%,rgba(215,222,227,1)), color-stop(100%,rgba(245,247,249,1))); /* Chrome,Safari4+ */
	background: -webkit-linear-gradient(top,  rgba(246,248,249,1) 0%,rgba(229,235,238,1) 50%,rgba(215,222,227,1) 51%,rgba(245,247,249,1) 100%); /* Chrome10+,Safari5.1+ */
	background: -o-linear-gradient(top,  rgba(246,248,249,1) 0%,rgba(229,235,238,1) 50%,rgba(215,222,227,1) 51%,rgba(245,247,249,1) 100%); /* Opera 11.10+ */
	background: -ms-linear-gradient(top,  rgba(246,248,249,1) 0%,rgba(229,235,238,1) 50%,rgba(215,222,227,1) 51%,rgba(245,247,249,1) 100%); /* IE10+ */
	background: linear-gradient(to bottom,  rgba(246,248,249,1) 0%,rgba(229,235,238,1) 50%,rgba(215,222,227,1) 51%,rgba(245,247,249,1) 100%); /* W3C */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f6f8f9', endColorstr='#f5f7f9',GradientType=0 ); /* IE6-9 */
}

.navbar [class^="icon-"],
.navbar [class*=" icon-"] {
	background-image: url("../images/bootstrap/glyphicons-halflings-white.png");
}

.navbar .dropdown.open [class^="icon-"],
.navbar .dropdown.open [class*=" icon-"] {
	background-image: url("../images/bootstrap/glyphicons-halflings.png");
}

/* .input-append,
.navbar .input-prepend {
	margin-bottom: -1px;
} */

.navbar .btn,
.navbar .btn-group {
	margin-top: 6px;
}

.navbar .input-append .add-on,
.navbar .input-append .btn,
.navbar .input-append .btn-group {
	top: -3px;
}

.navbar .btn-group > .btn:first-child {
	-webkit-border-bottom-left-radius: 0;
	border-bottom-left-radius: 0;
	-webkit-border-top-left-radius: 0;
	border-top-left-radius: 0;
	-moz-border-radius-bottomleft: 0;
	-moz-border-radius-topleft: 0;
}

/*----------------------------------------------------------------------*/
/* Dropdown Menu
/*----------------------------------------------------------------------*/
.dropdown .dropdown-menu .nav-header {
	padding-top: 0;
	padding-bottom: 0;
	background-color: #162447;
	color: #FFF;
	text-shadow: none;
	margin-top: 5px;
	margin-bottom: 2px;
}

.dropdown-menu li>a:hover,
.dropdown-menu li>a:focus,
.dropdown-submenu:hover>a {
	background-color: #162447;
	background-image: none;
}

/*----------------------------------------------------------------------*/
/* Title Controls
/*----------------------------------------------------------------------*/
.title-controls {
	border-bottom: 1px solid #EEE;
}

.title-controls h2 {
	margin: 5px 0 0 0;
	display: inline-block;
}

.title-controls .control-group {
	float: right;
	position: relative;
	top: 10px;
}

.title-controls .control-label {
	float: left;
	width: 30px;
	padding-top: 5px;
	text-align: right;
}

.title-controls .controls {
	margin-left: 40px;
	width: 150px;
}

.title-controls .btn-group {
	top: -6px;
	height: 28px;
}

.title-controls .btn-group .btn-mini .caret {
	margin-top: 8px;
}

/* ------------------------------------------------------------------------------------------------------------------------------------------------------
Page Header (w/ Control)
------------------------------------------------------------------------------------------------------------------------------------------------------ */
.page-header-with-control {
	overflow: hidden;
}

.page-header-with-control h2 {
	float: left;
	display: inline-block;
	line-height: 37px;
}

.page-header-controls {
	float: right;
}

.page-header-controls .btn {
	margin: 0 5px 0 0;
}

.page-header-controls .btn:last-child {
	margin-right: 0;
}

/*----------------------------------------------------------------------*/
/* Page Header
/*----------------------------------------------------------------------*/
.page-header {
	margin: 7px 0 15px 0;
	padding: 0;
}

.page-header h2 {
	margin: 0;
}

.page-header.no-border {
	border-bottom: none;
}

/*----------------------------------------------------------------------*/
/* Form (Vertical Compression)
/*----------------------------------------------------------------------*/
.data-entry select,
.data-entry textarea,
.data-entry input[type="text"],
.data-entry input[type="password"],
.data-entry input[type="datetime"],
.data-entry input[type="datetime-local"],
.data-entry input[type="date"],
.data-entry input[type="month"],
.data-entry input[type="time"],
.data-entry input[type="week"],
.data-entry input[type="number"],
.data-entry input[type="email"],
.data-entry input[type="url"],
.data-entry input[type="search"],
.data-entry input[type="tel"],
.data-entry input[type="color"],
.data-entry .uneditable-input {
	margin-bottom: 0;
	font-size: 16px;
}

/*----------------------------------------------------------------------*/
/* Summary Info (wells used to show summary information)
/*----------------------------------------------------------------------*/
.well.summary-info {
	padding: 10px;
}

.summary-info .nav {
	margin-bottom: 10px;
}

.summary-info .nav-pills > .active > a {
	background-color: #777;
}

.summary-info .nav-pills > li > a {
	padding-top: 4px;
	padding-bottom: 4px;
}

.summary-info .form-group {
	margin: 0;
	background: #fcfcfc;
	padding: 8px 14px;
	font-size: .85em;
}

.summary-info .form-group-label {
	padding: 0 7px;
	margin-bottom: 0;
	top: -9px;
	left: -15px;
	font-size: .9em;
}

.summary-info .form-group p {
	margin: 0;
}

/*----------------------------------------------------------------------*/
/* Quick Switch
/*----------------------------------------------------------------------*/
.quick-switch {
	display: inline-block;
}

.quick-switch .dropdown-menu {
	min-width: inherit;
}

.quick-switch .dropdown-menu li > a {
	padding: 3px 8px;
	cursor: pointer;
}

.input-prepend, .input-append {
	white-space: normal;
}

.form-inline .chosen-container {
	top: 3px;
}

.ngFooterTotalItems span {
	margin-right: 5px;
}

/*----------------------------------------------------------------------*/
/* FlashService
/*----------------------------------------------------------------------*/
.flash-message {
	width: 50%;
	position: absolute;
	top: 40px;
	right: 0;
}

.flash-message.ng-hide-add,
.flash-message.ng-hide-remove {
	-webkit-transition: 1s linear all;
	transition: 1s linear all;

	/* remember to add this */
	display: block !important;
	opacity: 1;
}

.flash-message.ng-hide {
	opacity: 0;
}

.flash-message .alert {
	-webkit-border-top-left-radius: 0;
	-webkit-border-top-right-radius: 0;
	-moz-border-radius-topleft: 0;
	-moz-border-radius-topright: 0;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
	min-height: 22px;
}

/*----------------------------------------------------------------------*/
/* Form Actions
/*----------------------------------------------------------------------*/
.form-actions {
	background-color: #FFF;
	border: 1px solid #E5E5E5;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
}

/*----------------------------------------------------------------------*/
/* Panels
/*----------------------------------------------------------------------*/
.panel {
	margin-bottom: 20px;
	background-color: #fff;
	border: 1px solid transparent;
	border-radius: 4px;
	-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
	box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
}

.panel-body {
	padding: 15px;
}

.panel-heading {
	padding: 0 15px;
	border-bottom: 1px solid transparent;
	border-top-left-radius: 3px;
	border-top-right-radius: 3px;
}

.panel-title {
	margin-top: 0;
	margin-bottom: 0;
	font-size: 16px;
	color: inherit;
}

.panel-footer {
	padding: 10px 15px;
	background-color: #f5f5f5;
	border-top: 1px solid #ddd;
	border-bottom-right-radius: 3px;
	border-bottom-left-radius: 3px;
}

.panel-default {
	border-color: #ddd;
}

.panel-default > .panel-heading {
	color: #333;
	background-color: #f5f5f5;
	border-color: #ddd;
}

/*----------------------------------------------------------------------*/
/* Loading
/*----------------------------------------------------------------------*/
.loading-blur {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-color: #999;
	cursor: progress;
	opacity: .6;
	z-index: 999;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
}

.loading-blur .spinner {
	top: 45%;
}

.modal-blur {
	display: block;
	position: absolute;
	width:100.1%;
	height:100.1%;
	background-color: #999;
	cursor: progress;
	opacity: .8;
	z-index: 999;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
}

.modal-blur .spinner {
	top: 35%;
}

.grid-blur {
	width:inherit;
	height:inherit;
	background-color: #999;
	cursor: progress;
	opacity: .6;
	z-index: 999;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
}

.grid-blur .spinner {
	top: 45%;
}

.spinner {
	height: 60px;
	width: 60px;
	margin: 0 auto;
	position: relative;
	-webkit-animation: rotation .6s infinite linear;
	-moz-animation: rotation .6s infinite linear;
	-o-animation: rotation .6s infinite linear;
	animation: rotation .6s infinite linear;
	border-left: 6px solid rgba(13,31,97,.15);
	border-right: 6px solid rgba(13,31,97,.15);
	border-bottom: 6px solid rgba(13,31,97,.15);
	border-top: 6px solid rgba(13,31,97,.8);
	border-radius: 100%;
}

@-webkit-keyframes rotation {
	from {-webkit-transform: rotate(0deg);}
	to {-webkit-transform: rotate(359deg);}
}
@-moz-keyframes rotation {
	from {-moz-transform: rotate(0deg);}
	to {-moz-transform: rotate(359deg);}
}
@-o-keyframes rotation {
	from {-o-transform: rotate(0deg);}
	to {-o-transform: rotate(359deg);}
}
@keyframes rotation {
	from {transform: rotate(0deg);}
	to {transform: rotate(359deg);}
}

/*----------------------------------------------------------------------*/
/* Forgot Password
/*----------------------------------------------------------------------*/
.forgot-password {
	position: relative;
	top: 2px;
	margin-left: 5px;
	cursor: pointer;
}

/*----------------------------------------------------------------------*/
/* Change Password
/*----------------------------------------------------------------------*/
.change-password {
	position: relative;
	top: 4px;
	margin-left: 8px;
	cursor: pointer;
}

/*----------------------------------------------------------------------*/
/* Select 2
/*----------------------------------------------------------------------*/
.select2-container-multi .select2-choices {
	background-image: none;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	border: 1px solid #CCC;
	-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
	-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
	-webkit-transition: border linear .2s,box-shadow linear .2s;
	-moz-transition: border linear .2s,box-shadow linear .2s;
	-o-transition: border linear .2s,box-shadow linear .2s;
	transition: border linear .2s,box-shadow linear .2s;
	line-height: 20px;
}

.select2-container-multi .select2-choices .select2-search-field input {
	padding: 4px 6px;
	margin: 0;
}

.select2-container-multi .select2-choices .select2-search-choice {
	padding: 4px 5px 3px 18px;
}

.select2-search-choice-close {
	top: 3px;
}

.select2-drop {
	display: none !important;
}

/*----------------------------------------------------------------------*/
/* Reports
/*----------------------------------------------------------------------*/
.reports h4 {
	background-color: #ddd;
	padding: 5px;
	border-bottom: 2px solid #aaa;
}

.reports th {
	background-color: #eee;
	padding: 0 3px;
}

.reports td {
	padding: 0 2px;
	font-size: 15px;
}

.reports th {
	font-size: 15px;
}

.reports .table {
	background-color: #fff;
	width: 100%;
	table-layout: auto;
}

/* Reports: full-width layout with 30px L/R padding, cells wrap freely */
.container.content-wide .reports {
	padding-left: 30px;
	padding-right: 30px;
}

.reports td,
.reports th {
	white-space: normal !important;
	overflow: visible !important;
	text-overflow: unset !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
}

.reports .footer {
	font-size: .8em;
	border-top: 1px solid #aaa;
}

.reports .page-header .issue {
	text-transform: uppercase;
}

.reports .btn {
	position: relative;
	top: 5px;
}

.reports.customer-balances tfoot td {
	font-weight: bold;
	font-size: 14px;
}

.reports .currency {
	text-align: right;
}

/*----------------------------------------------------------------------*/
/* Mailing Labels
/*----------------------------------------------------------------------*/
.mailing-labels {
	overflow: hidden;
	width: 8.5in;
	margin-top: 10px;
}

.mailing-labels .mailing-labels-label {
	float: left;
	border-radius: 4px;
	border: 1px solid #eee;
	page-break-inside: avoid;
	background-color: #fff;
	margin-top: 10px;
}

.mailing-labels .mailing-labels-label p {
	margin: 0;
}

.mailing-labels .mailing-labels-row-first {
	clear: left;
	margin-left: 0 !important;
}

/*----------------------------------------------------------------------*/
/* Pin Associations
/*----------------------------------------------------------------------*/
#pin-associations .county-container {
	overflow: hidden;
}

#pin-associations .document-number-container {
	float: left;
	margin-left: 10px;
}

#pin-associations .document-number {
	display: inline-block;
	font-weight: bold;
}

#pin-associations .pin-number {
	display: inline-block;
}

/*----------------------------------------------------------------------*/
/* Footer
/*----------------------------------------------------------------------*/
footer {
	margin-top: 15px;
	border-top: 1px solid #EEE;
	padding-top: 10px;
}

footer p {
	margin-bottom: 0;
}

/*----------------------------------------------------------------------*/
/* Uploads
/*----------------------------------------------------------------------*/
.upload input[type="file"] {
	height: 21px;
	line-height: 21px;
}

.upload .file-container {
	display: inline-block;
	border: 1px solid #CCC;
	border-bottom-left-radius: 4px;
	border-top-left-radius: 4px;
	padding: 2px 0 0 3px;
	height: 26px;
	margin-right: -4px;
}

.upload .file-container+.btn {
	border-bottom-left-radius: 0;
	border-top-left-radius: 0;
}

#uploads {
	list-style-type: none;
	margin: 15px 0;
}

#uploads .progress {
	height: 15px;
	margin-bottom: 10px;
}

/*----------------------------------------------------------------------*/
/* Imports
/*----------------------------------------------------------------------*/
.import-upload-control .type {
	margin-right: 10px;
}

.import-filter-control {
	float: right;
}

/*----------------------------------------------------------------------*/
/* Buttons
/*----------------------------------------------------------------------*/
.btn-info, .btn-primary {
	background-color: hsl(201, 100%, 13%) !important;
	background-repeat: repeat-x;
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#162447", endColorstr="#162447");
	background-image: -khtml-gradient(linear, left top, left bottom, from(#162447), to(#162447));
	background-image: -moz-linear-gradient(top, #162447, #162447);
	background-image: -ms-linear-gradient(top, #162447, #162447);
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #162447), color-stop(100%, #162447));
	background-image: -webkit-linear-gradient(top, #162447, #162447);
	background-image: -o-linear-gradient(top, #162447, #162447);
	background-image: linear-gradient(#162447, #162447);
	border-color: #162447 #162447 hsl(201, 100%, 13%);
	color: #fff !important;
	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.00);
	-webkit-font-smoothing: antialiased;
}

/*----------------------------------------------------------------------*/
/* Progress Bars
/*----------------------------------------------------------------------*/
.progress .bar {
	background-color: hsl(201, 100%, 13%) !important;
	background-repeat: repeat-x;
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#162447", endColorstr="#162447");
	background-image: -khtml-gradient(linear, left top, left bottom, from(#162447), to(#162447));
	background-image: -moz-linear-gradient(top, #162447, #162447);
	background-image: -ms-linear-gradient(top, #162447, #162447);
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #162447), color-stop(100%, #162447));
	background-image: -webkit-linear-gradient(top, #162447, #162447);
	background-image: -o-linear-gradient(top, #162447, #162447);
	background-image: linear-gradient(#162447, #162447);
	border-color: #162447 #162447 hsl(201, 100%, 13%);
	color: #fff !important;
	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.00);
	-webkit-font-smoothing: antialiased;
}

.tab-content {
	display: block;
	overflow: hidden;
	width: auto;
}

/*----------------------------------------------------------------------*/
/* Search Facets
/*----------------------------------------------------------------------*/
.search-facets {
	padding: 10px;
}

.search-facets .control-group {
	margin-bottom: 0;
}

.search-facets input,
.search-facets select {
	font-size: 16px;
	height: 20px;
	line-height: 20px;
	padding: 2px 6px;
}

.search-facets .btn {
	margin: 10px 0 0 0;
}

.transaction-total {
	font-weight: bold;
}

.account-balance {
	font-weight: bold;
	text-align: right;
}

/*----------------------------------------------------------------------*/
/* Notification
/*----------------------------------------------------------------------*/
.notification {
	text-align: center;
}

/*----------------------------------------------------------------------*/
/* Credit Card Info
/*----------------------------------------------------------------------*/
#credit-card-info .row-fluid {
	position: relative;
}

#credit-card-info .credit-card-actions {
	position: absolute;
	bottom: 0;
}

#credit-card-info a {
	cursor: pointer;
}

/*----------------------------------------------------------------------*/
/* Alerts (Under Title Controls)
/*----------------------------------------------------------------------*/
.title-controls+.alert {
	margin-top: 20px;
}


.title-controls+.alert.alert-block {
	padding: 5px;
}

/*----------------------------------------------------------------------*/
/* Alerts (Under Title Controls)
/*----------------------------------------------------------------------*/
.navbar .btn-navbar {
	padding: 4px 10px 7px 10px;
}

.navbar .btn,
.navbar .btn-group {
	margin-top: 7px;
}

/*----------------------------------------------------------------------*/
/* Media Queries
/*----------------------------------------------------------------------*/
@media (max-width: 979px) {
	body {
		padding-top: 0 !important;
	}

	.navbar .nav li.dropdown > a:hover .caret {
		border-top-color: #555;
		border-bottom-color: #555;
	}

	.navbar .nav > li > a {
		padding: 10px;
	}

	.navbar .nav > li > a:focus,
	.navbar .nav > li > a:hover {
		color: #162447;
	}

	.nav-collapse .nav>li>a,
	.nav-collapse .dropdown-menu a {
		color: #FFF;
		font-weight: normal;
		padding: 5px 10px;
	}

	.nav-collapse .nav>li>a:hover,
	.nav-collapse .dropdown-menu a:hover {
		color: #162447;
	}

	.nav-collapse .nav>li>a:hover [class^="icon-"],
	.nav-collapse .nav>li>a:hover [class*=" icon-"] {
		background-image: url("../images/bootstrap/glyphicons-halflings.png");
	}

	.dropdown .dropdown-menu .nav-header {
		border-bottom: 1px solid #FFF;
		background: none;
		border-radius: 0;
		padding: 0;
	}

	.dropdown .dropdown-menu .nav-header:hover {
		background: none;
	}

	.nav-collapse .nav {
		float: none;
	}
}

#transactionCreditForm #cardReplace {
	margin-top: 30px;
}

.add-subscription-steps {
	list-style-type: none;
	margin: 15px 0 0 0;
	overflow: hidden;
}

.add-subscription-steps li {
	float: left;
	line-height: 1em;
	font-size: 1.1em;
	margin-right: 20px;
	color: #999;
	padding-left: 20px;
	position: relative;
}

.add-subscription-steps li.current {
	color: #000;
	font-weight: bold;
}

.add-subscription-steps li div {
	font-size: 2.4em;
	position: absolute;
	top: 7px;
	left: 0;
	color: #555;
}

label.inline {
	margin-bottom: 0;
	font-weight: bold;
	display: inline-block;
}

#stateSelector {
	position: absolute;
	top: 0px;
	right: 0;
	z-index:100;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	border-width: 1px;
	border-style: solid;
	border-color: #eee;
	padding:15px;
	background-color: #eee;
}

#stateSelector .modal-header {
	border-bottom: none;
}

.searchState {
	color: hsl(201, 100%, 13%) !important;
}

/*----------------------------------------------------------------------*/
/* Importer
/*----------------------------------------------------------------------*/
.import-grid {
	height: 500px;
}

.import-grid-full {
	position: absolute;
	width: 99.9%;
	height: 99.1%;
	top: 0;
	left: 0;
	border-radius: 0;
}

/* Import detail view - fills available viewport */
.import-detail-wrapper {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 5px 10px 0 10px;
	background: #fff;
	overflow: hidden;
}

.import-detail-header {
	height: 30px;
	margin: 0 0 5px 0;
	padding: 0;
}

.import-detail-header h2 {
	margin: 0;
	font-size: 18px;
	line-height: 1.2;
}

.gridStyle.import-grid-detail {
	height: calc(100vh - 40px) !important;
	max-height: calc(100vh - 40px) !important;
	border: 1px solid #e5e5e5;
	border-radius: 0;
}

.import-grid .ngCellText {
	padding: 5px;
	height: 29px;
}

.import-grid .cell-error {
	color: #A94442;
	background-color: #F2DEDE;
}

.ngCellElement:focus .cell-error {
	background-color: #EB7E7E;
}

.import-grid .cell-warning {
	color: #8A6D3B;
	background-color: #FAEBCC;
}

.ngCellElement:focus .cell-warning {
	background-color: #F8CF7B;
}

.import-grid .row-ignore .ngCellText {
	color: #D1D1D1;
	background-color: #E9E9E9;
}

.import-grid .row-ignore .ngCellText a {
	color: #D1D1D1;
}

.ignore-all {
	margin: 10px;
	margin-bottom: 0;
}

.ignore-all input[type=checkbox] {
	vertical-align: middle;
}

/*----------------------------------------------------------------------*/
/* Validation
/*----------------------------------------------------------------------*/
.tooltip.validation-error {
	opacity: 1;
	z-index: 999;
}

.tooltip.validation-error .tooltip-arrow {
	border-right-color: #c60f13;
}

.tooltip.validation-error .tooltip-inner {
	background-color: #c60f13;
}

/*----------------------------------------------------------------------*/
/* Map Glyphs
/*----------------------------------------------------------------------*/
.map-us-il {
	color: #003C7D;
}

.map-us-wi {
	color: #C41E3A;
}

.map-us-in {
	color: #D0B239;
}

.map-us-ia {
	color: #008000;
}

.map-us-mn {
	color: #FFA500;
}

.map-us-nd {
	color: #800080;
}

/*----------------------------------------------------------------------*/
/* Messages
/*----------------------------------------------------------------------*/
.message {
  padding: 8px 14px 8px 14px;
  margin-bottom: 20px;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  background-color: #fcf8e3;
  border: 1px solid #fbeed5;
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
}

.message,
.message h4 {
  color: #c09853;
}

.message h4 {
  margin: 0;
}

.message .close {
  position: relative;
  top: -2px;
  right: -21px;
  line-height: 20px;
}

.message-success {
  color: #468847;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}

.message-success h4 {
  color: #468847;
}

.message-danger,
.message-error {
  color: #b94a48;
  background-color: #f2dede;
  border-color: #eed3d7;
}

.message-danger h4,
.message-error h4 {
  color: #b94a48;
}

.message-info {
  color: #3a87ad;
  background-color: #d9edf7;
  border-color: #bce8f1;
}

.message-info h4 {
  color: #3a87ad;
}

.message-block {
  padding-top: 14px;
  padding-bottom: 14px;
}

.message-block > p,
.message-block > ul {
  margin-bottom: 0;
}

.message-block p + p {
  margin-top: 5px;
}

/*----------------------------------------------------------------------*/
/* Counties Reporting
/*----------------------------------------------------------------------*/
.counties-reporting {
	max-height: 200px;
	overflow-y: auto;
	margin-bottom: 20px;
	width: 200px;
	border: 1px solid #eee;
}

.counties-reporting ul {
	margin: 10px;
	list-style-type: none;
}

.counties-reporting input[type="checkbox"] {
	margin-top: -3px;
}

#toast-container {
	top: 50px;
}


/* -----------------------------------------------------------------------
   LSB-82: Wider layout + column breathing room (data portal)
   Applied: 2026-03-23 by Jethro (subagent)
----------------------------------------------------------------------- */

/* Blow out Bootstrap's fixed 940px container to full-width fluid */
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
    width: auto !important;
    max-width: 1440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
}

/* Import detail page: full width, no max-width constraint */
.container.content-wide {
    max-width: 100% !important;
}

/* Span widths: inherited from Bootstrap row-fluid (no override needed with fluid container) */

/* Tables: allow text to wrap, remove truncation — .table (Bootstrap) only, not bare table (breaks ng-grid) */
.table td,
.table th {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    max-width: none !important;
}

/* Give columns a bit more padding for readability */
.table td,
.table th {
    padding: 4px 8px !important;
}

/* -----------------------------------------------------------------------
   LSB-82: ng-grid — clean overrides (single source of truth)
----------------------------------------------------------------------- */

/* Cells: clip content, no wrapping — standard data grid behaviour */
.ngCell {
    overflow: hidden !important;
}

.ngCellText {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 28px !important;
    padding: 0 6px !important;
}

/* Action buttons cell — reset line-height so icons aren't clipped */
.gridActions.ngCellText {
    line-height: normal !important;
    display: flex !important;
    align-items: center !important;
    height: 28px !important;
    gap: 2px !important;
    padding: 0 4px !important;
}

/* Rows: fixed height must match rowHeight in controller (28px).
   overflow hidden is required for hover highlight to render correctly. */
.ngRow {
    overflow: hidden !important;
}

/* Hover highlight — ng-grid uses .ngRow:hover background */
.ngRow:hover {
    background-color: #f0f4ff !important;
    cursor: pointer;
}


/* LSB-84: list/auto-height grids size to content via JS getTableStyle()
   import-grid-detail uses full-viewport height with internal scroll — excluded here
   height is NOT forced here; JS controls it via min(pageSize, totalServerItems) */
.gridStyle:not(.import-grid-detail),
.gridStyleFullHeight:not(.import-grid-detail),
.gridStyleAutoHeight:not(.import-grid-detail) {
    max-height: none !important;
    overflow: visible !important;
}

/* ng-grid viewport — list grids: let content set the height */
.gridStyle:not(.import-grid-detail) .ngViewport,
.gridStyleFullHeight:not(.import-grid-detail) .ngViewport,
.gridStyleAutoHeight:not(.import-grid-detail) .ngViewport {
    overflow: auto !important;
}

/* Canvas should size to content (non-detail grids) */
.gridStyle:not(.import-grid-detail) .ngCanvas,
.gridStyleFullHeight:not(.import-grid-detail) .ngCanvas,
.gridStyleAutoHeight:not(.import-grid-detail) .ngCanvas {
    position: relative !important;
}

/* Keep footer visible (non-detail grids) */
.gridStyle:not(.import-grid-detail) .ngFooterPanel,
.gridStyleFullHeight:not(.import-grid-detail) .ngFooterPanel,
.gridStyleAutoHeight:not(.import-grid-detail) .ngFooterPanel {
    position: relative !important;
}

/* ============================================================
   AG Grid Prototype Styles (LSB-84 preview)
   ============================================================ */
   
/* Container sizing */
#landSalesAgGrid {
    width: 100%;
    min-height: 200px;
    overflow-x: auto;
    padding-right: 0;
    box-sizing: border-box;
}

/* AG Grid autoHeight clips pinned col — force body wrapper to allow horizontal scroll */
#landSalesAgGrid .ag-body-horizontal-scroll {
    display: block !important;
    overflow-x: auto !important;
}

#landSalesAgGrid .ag-root-wrapper {
    overflow: visible !important;
}

/* Override Alpine theme to match LSB look */
.ag-theme-alpine {
    --ag-font-family: "Source Sans 3", sans-serif;
    --ag-font-size: 14px;
    --ag-row-height: 36px;
    --ag-header-height: 40px;
    --ag-header-background-color: #f8f9fa;
    --ag-odd-row-background-color: #ffffff;
    --ag-row-hover-color: #f0f4ff;
    --ag-border-color: #e5e5e5;
    --ag-header-foreground-color: #333;
}

.ag-theme-alpine .ag-header-cell-label {
    font-weight: 600;
}

.ag-theme-alpine .ag-row {
    border-bottom: 1px solid #e5e5e5;
}

.ag-theme-alpine .ag-row:hover {
    background-color: #f0f4ff !important;
}

/* Action buttons in cells */
.ag-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    height: 100%;
    padding: 0 4px;
}

.ag-actions .btn-mini {
    padding: 4px 8px; /* LSB-100: bumped from 2px 6px for Source Sans 3 readability */
    margin: 0;
}

/* Footer styling */
.ag-grid-footer {
    font-family: "Source Sans 3", sans-serif;
}

.ag-grid-footer select {
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.ag-grid-footer .btn-mini {
    margin: 0 2px;
}

/* AG Grid Pagination Panel - ensure icons display properly */
.ag-theme-alpine .ag-paging-panel {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 8px 12px;
    border-top: 1px solid #e5e5e5;
    font-family: "Source Sans 3", sans-serif;
    font-size: 13px;
}

.ag-theme-alpine .ag-paging-button {
    cursor: pointer;
    padding: 4px 8px;
    margin: 0 2px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: #fff;
    min-width: 28px;
    text-align: center;
}

.ag-theme-alpine .ag-paging-button:hover:not(.ag-disabled) {
    background: #f0f4ff;
    border-color: #999;
}

.ag-theme-alpine .ag-paging-button.ag-disabled {
    opacity: 0.5;
    cursor: default;
}

/* Pagination icons - use text fallback since icon fonts may not load */
.ag-theme-alpine .ag-icon-first::before { content: "«"; }
.ag-theme-alpine .ag-icon-previous::before { content: "‹"; }
.ag-theme-alpine .ag-icon-next::before { content: "›"; }
.ag-theme-alpine .ag-icon-last::before { content: "»"; }

.ag-theme-alpine .ag-paging-page-size-wrapper,
.ag-theme-alpine .ag-paging-row-summary-panel {
    margin-right: 16px;
}

.ag-theme-alpine .ag-paging-page-size-wrapper select {
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-size: 16px;
}

/* Action buttons in cells - LEFT aligned, vertically centered */
/* Sized so 3 buttons always fit: 3 × (icon 14px + 6+6px pad) + 2 × 3px gap + 8px left = ~104px */
.ag-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 3px;
    height: 100%;
    padding: 0 4px;
}

.ag-actions .btn-mini {
    padding: 4px 6px;
    margin: 0;
    flex-shrink: 0;
}

/* LSB-152: fixed-slot spacer — matches btn-mini footprint so slots stay aligned */
.ag-action-spacer {
    display: inline-block;
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}

/* Ensure cell content is vertically centered */
.ag-theme-alpine .ag-cell {
    display: flex;
    align-items: center;
    font-size: 14px !important;
}

.ag-theme-alpine .ag-header-cell-text {
    font-size: 14px !important;
}

/* Action column cell specifically — zero cell padding, let .ag-actions own it */
.ag-theme-alpine .ag-cell[col-id="0"],
.ag-theme-alpine .ag-cell.ag-column-last {
    justify-content: flex-start;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* AG Grid Sort Icons - use Bootstrap Glyphicons */
.ag-theme-alpine .ag-header-cell-sorted-asc .ag-sort-indicator-icon::before,
.ag-theme-alpine .ag-icon-asc::before {
    content: "▲";
    font-size: 10px;
}

.ag-theme-alpine .ag-header-cell-sorted-desc .ag-sort-indicator-icon::before,
.ag-theme-alpine .ag-icon-desc::before {
    content: "▼";
    font-size: 10px;
}

.ag-theme-alpine .ag-sort-indicator-icon {
    margin-left: 4px;
}

/* Ensure sort indicators are visible */
.ag-theme-alpine .ag-header-cell-label {
    display: flex;
    align-items: center;
}

.ag-theme-alpine .ag-sort-indicator-container {
    display: flex;
    align-items: center;
}

/* Action column pinned right - always visible, zero cell padding, left border separator */
.ag-theme-alpine .ag-pinned-right-cols-container .ag-cell {
    background: #fff;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-left: 1px solid #e5e5e5 !important;
}

.ag-theme-alpine .ag-pinned-right-header {
    background: #f8f9fa;
    border-left: 1px solid #e5e5e5 !important;
}

/* ag-grid centered cells */
.ag-theme-alpine .ag-cell.ag-cell-center { text-align: center; justify-content: center; display: flex; align-items: center; }

/* LSB-119: vertically center checkboxes in import grid cells */
.ngCellText input[type="checkbox"] {
    vertical-align: middle;
    margin: 0;
    position: relative;
    top: -1px;
}
