:root {
	--heading-blue: #1e40af;
	--heading-blue-dark: #173083;
	--panel-bg: #bbe1f6;
	--border-color: #80a0f0;
	--shadow-sm: 0 1px 2px rgba(15,23,42,0.06), 0 1px 3px rgba(15,23,42,0.08);
	--error-red: #bc1010;
	--error-bg: #ffe0e0;
	--error-border: #c08585;
	--font-body: "Segoe UI", Tahoma, Arial, sans-serif;
}
html {
	scrollbar-color:#1e40af #bbe1f6;
	scrollbar-color:var(--heading-blue) var(--panel-bg);
	scrollbar-width:thin;
}
::-webkit-scrollbar {
	width:10px;
	height:10px;
}
::-webkit-scrollbar-track {
	background-color:#bbe1f6;
	background-color:var(--panel-bg);
}
::-webkit-scrollbar-thumb {
	background-color:#1e40af;
	background-color:var(--heading-blue);
	border-color:#bbe1f6;
	border:2px solid var(--panel-bg);
	border-radius:8px;
}
::-webkit-scrollbar-thumb:hover {
	background-color:#1d4ed8;
}
body {
	background-color:#dcefff;
	-webkit-font-smoothing:antialiased;
}
form {
	font-family:"Arial";
	font-family:var(--font-body);
	height:100%;
	padding:0px;
	margin-left:10px;
	margin-right:10px;
}
a {
	color:#2563eb;
}
a:visited {
	color:#7c3aed;
}
a:hover, a:focus {
	color:#1d4ed8;
	text-decoration:underline;
}
a:focus {
	outline:2px solid #1d4ed8;
	outline-offset:1px;
}
input[type="text"],
input[type="password"],
select {
	background-color:white;
	border:1px solid #80a0f0;
	border-color:var(--border-color);
	border-radius:6px;
	box-sizing:border-box;
	padding:3px 6px;
	transition:border-color 0.15s ease, box-shadow 0.15s ease;
}
input[type="text"]:focus,
input[type="password"]:focus,
select:focus {
	border-color:#173083;
	border-color:var(--heading-blue-dark);
	box-shadow:0 0 0 4px rgba(23,48,131,0.15);
	outline:none;
}
input[type="submit"],
input[type="button"] {
	border-radius:6px;
	box-sizing:border-box;
	cursor:pointer;
	font-family:"Arial";
	font-family:var(--font-body);
	font-weight:600;
	padding:3px 3px;
	transition:background-color 0.15s ease, box-shadow 0.15s ease;
}
input[type="submit"] {
	background-color:#1e40af;
	background-color:var(--heading-blue);
	border:1px solid transparent;
	color:white;
}
input[type="button"] {
	background-color:#bbe1f6;
	background-color:var(--panel-bg);
	border:1px solid #80a0f0;
	border-color:var(--border-color);
	color:black;
}
input[type="submit"]:hover,
input[type="button"]:hover {
	background-color:#1d4ed8;
	color:white;
}
input[type="submit"]:focus,
input[type="button"]:focus {
	outline:2px solid #1d4ed8;
	outline-offset:2px;
}
input[type="submit"]:disabled,
input[type="button"]:disabled {
	background-color:#94a3b8;
	color:#f1f5f9;
	cursor:not-allowed;
}
.HdrTable,.FtrTable {
	background-color:white;
	border:1px solid #80a0f0;
	border-color:var(--border-color);
	border-radius:10px;
	border-spacing:0px; /* cellspacing */
	box-shadow:0 1px 2px rgba(15,23,42,0.06), 0 1px 3px rgba(15,23,42,0.08);
	box-shadow:var(--shadow-sm);
	width:100%;
}
#header {
	width:90%;
}
.centered-full-table {
	border:0px;
	border-spacing:0px;
	margin-left:auto;
	margin-right:auto;
	width:100%;
}
.new-rpt-tbl {
	padding:0px 14px;
}
.output-opt-table {
	padding:5px 0px;
}
#session-row > td
{
	border-spacing:0px;
	min-height:20px;
}
#session-row td
{
	border-spacing:0px;
	font-family:"Arial";
	font-family:var(--font-body);
	font-size:0.8rem;
	vertical-align:top;
}
#session-row .colon-sep
{
	width:5px;
}
#session-row p
{
	text-align:center;
}
#session_title
{
	color:#1e40af;
	color:var(--heading-blue);
	font-size:140%;
	font-weight:600;
	margin:0px;
	text-align:center;
}
.arrow-img {
	display:flex;
	height:32px;
	width:32px;
}
.arrow-col1 {
	width:40px;
}
.arrow-col2 {
	font-weight:600;
	width:65%;
	vertical-align:middle;
}
.arrow-col3 {
	text-align:center;
	width:30%;
}
#ddlReports {
	width:100%;
}
#rptOutputCol,
#rptOptions {
	border:0px;
	padding-left:61px;
	padding-right:14px;
}
#rptOutputCol {
	text-align:left;
	white-space:nowrap;
}
#columnOutOpts {
	min-height:96px;
	padding:5px 0px;
	width:100%;
}
#columnOutOpts .chkBoxList td {
	border-collapse:separate;
	border-spacing:4px;
	padding:1px;
	width:240px;
}
#rptOptTbl {
	text-align:left;
}
#rptOptTbl .valSummary {
	color:#bc1010;
	color:var(--error-red);
	background-color:#ffe0e0;
	background-color:var(--error-bg);
	border:1px solid #c08585;
	border-color:var(--error-border);
	border-radius:10px;
	padding:5px 0px 0px 5px;
}
.valsummary-title {
	color:#bc1010;
	color:var(--error-red);
	font-size:1.3em;
	font-weight:600;
	margin:inherit;
}
.error-text {
	color:#bc1010;
	color:var(--error-red);
}
.login-error-msg {
	color:#bc1010;
	color:var(--error-red);
	font-size:12px;
}
#rptOptions #dateRestrictTbl td,
#rptOptions #dateRestrictTbl th {
	padding:1px 0px;
}
#rptOptions #dateRestrictOpts {
	padding:5px 0px;
}
#rptOptions #dateRestrictOpts td,
#rptOptions #dateRestrictOpts th {
	padding:5px;
}
.containerTbl {
	border:0px;
	border-spacing:0px; /* cellspacing */
	text-align:left;
	width:100%;
}
.containerTbl td, .containerTbl th {
	padding:0px; /* cellpad-0 */
}
#rptOptions input.date-input {
	background-image:url(images/calendar.png);
	background-position:right 6px center;
	background-repeat:no-repeat;
	background-size:16px 16px;
	cursor:pointer;
	padding-right:26px;
	position:relative;
	bottom:-10px;
}
.flatpickr-calendar {
	background-color:#dcefff;
	border:1px solid #1e40af;
	border-color:var(--heading-blue);
	font-family:"Arial";
	font-family:var(--font-body);
	font-weight:600;
	width:251.875px !important;
	min-width:251.875px !important;
	max-width:251.875px !important;
}
span.flatpickr-weekday {
	color:#1e40af;
	color:var(--heading-blue);
}
.flatpickr-days,
.dayContainer {
	width:251.875px !important;
	min-width:251.875px !important;
	max-width:251.875px !important;
}
.flatpickr-day {
	font-weight:600;
	height:25px;
	line-height:25px;
	max-width:35px;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
	background:#1e40af;
	background:var(--heading-blue);
	border-color:#1e40af;
	border-color:var(--heading-blue);
}
.flatpickr-day.today {
	border-color:#1e40af;
	border-color:var(--heading-blue);
}
/* ---- Shared alignment utilities ---- */
.text-left {
	text-align:left;
}
.text-right {
	text-align:right;
}
.text-center {
	text-align:center;
}
.valign-top {
	vertical-align:top;
}
.valign-middle {
	vertical-align:middle;
}
.no-wrap {
	white-space:nowrap;
}

/* ---- Report parameter panel patterns (Controls/*Options.ascx) ---- */
.restriction-box {
	background-color:#bbe1f6;
	background-color:var(--panel-bg);
	border:1px solid #80a0f0;
	border-color:var(--border-color);
	border-radius:10px;
	border-spacing:0px; /* cellspacing */
	box-shadow:0 1px 2px rgba(15,23,42,0.06), 0 1px 3px rgba(15,23,42,0.08);
	box-shadow:var(--shadow-sm);
	margin-left:auto;
	margin-right:auto;
	text-align:left;
	width:100%;
}
.restriction-box td, .restriction-box th {
	padding:5px; /* cellpad-5 */
}
.section-heading {
	color:#1e40af;
	color:var(--heading-blue);
	font-size:1.3em;
	font-weight:600;
	margin:0px;
	padding:5px 0px 0px 0px;
}
p.section-heading {
	display:inline;
}
.toggle-restrictions-btn {
	background-color:#bbe1f6;
	margin-left:8px;
}
/* Marks a table's content row as the one NewReport.aspx's
   toggleRestrictRows() hides/shows via display:none. */
.restriction-tbl-row {
	display:none;
}
.subsection-heading {
	color:#1e40af;
	color:var(--heading-blue);
	font-weight:600;
	margin:0px;
	padding:0px 0px 2px 0px;
	text-align:center;
}
#subsection_heading_row td,
#subsection_heading_row th {
	padding:0px;
}
.date-lbl-col {
	width:216px;
	min-height:32px;
	vertical-align:middle;
}
.date-slot-col {
	width:30%;
	min-height:32px;
}
.date-slot-col input[type="text"] {
	width:80%;
}
.col-from-label {
	width:35px;
	text-align:right;
	vertical-align:bottom;
}
.col-to-label {
	width:35px;
	vertical-align:bottom;
	text-align:right;
}
.col-spacer-5pct {
	width:5%;
}
.col-dash-5 {
	width:5px;
}
.w-45pct {
	width:45%;
}
.w-50pct {
	width:50%;
}
.w-55pct {
	width:55%;
}
.w-60pct {
	width:60%;
}
.w-70pct {
	width:70%;
}
.w-75pct {
	width:75%;
}
.w-100pct {
	width:100%;
}
.h-6px {
	height:6px;
}
.h-40px {
	min-height:40px;
}
.w-80px {
	width:80px;
}
.w-25pct {
	width:25%;
}
.w-130px {
	width:130px;
}
.w-300px {
	width:300px;
}
.inline-input-nudge {
	position:relative;
	right:7px;
	width:100%;
}
.hidden-row {
	display:none;
}
.hint-text {
	color:#64748b;
	font-size:0.75rem;
}
.underline-label {
	text-decoration:underline;
}

/* ---- Header / Footer controls ---- */
.chrome-table {
	width:90%;
	margin-left:auto;
	margin-right:auto;
	border:0px;
}
.footer-table {
	text-align:center;
}
.header-font {
	font-family:"Arial";
	font-family:var(--font-body);
}
.footer-font {
	color:#64748b;
	font-family:"Arial";
	font-family:var(--font-body);
	font-size:0.65rem;
}
.header-logo-img {
	width:200px;
	height:80px;
}
.footer-logo-img {
	width:120px;
	height:30px;
}

/* ---- GeneralOptions / OutputOptions rows ---- */
.opt-label-col {
	width:17.68%;
	font-weight:600;
}
.opt-row-tall {
	min-height:35px;
}
.opt-heading-color {
	color:#1e40af;
	color:var(--heading-blue);
}
.col-label-100 {
	width:100px;
	font-weight:600;
}

/* ---- ReportPage.aspx ---- */
/* Companion stylesheet: see MSRS.css for rules targeting the Microsoft
   ReportViewer control's own generated DOM inside .report-viewer-cell. */
html.report-page,
body.report-page {
	width:100%;
	height:100%;
	padding:0px;
	margin:0px;
}
body.report-page {
	background-color:white;
}
.report-table-wrapper {
	display:table;
	border-spacing:0px; /* cellspacing */
}
.report-viewer-cell {
	height:100%;
	width:100%;
}
.ms-report-viewer-control {
	visibility:visible;
}

/* ---- Logon.aspx ---- */
.login-table {
	border:0px;
	border-spacing:0px; /* cellspacing */
	margin-left:auto;
	margin-right:auto;
	width:90%;
}
.login-label-col {
	white-space:nowrap;
	width:10%;
}
.login-field-col {
	width:90%;
}
.login-field-col input {
	width:100%;
}

/* ---- NewReport.aspx ---- */
.indent {
	padding:0px;
	width:5px;
}
.h-sep {
	width:10px;
}
.v-sep {
	height:10px;
}
.row-spacer-45 {
	width:45px;
}
.action-button-cell {
	width:100%;
	text-align:center;
}
.new-rpt-btn {
	width:100px;
}

/* ---- AJAX busy indicator (UpdateProgress, NewReport.aspx) ---- */
.page-busy-overlay {
	background-color:rgba(15,23,42,0.5);
	bottom:0px;
	left:0px;
	position:fixed;
	right:0px;
	top:0px;
	z-index:9999;
}
.page-busy-dialog {
	background-color:#bbe1f6;
	background-color:var(--panel-bg);
	border:1px solid #80a0f0;
	border-color:var(--border-color);
	border-radius:10px;
	box-shadow:0 8px 24px rgba(15,23,42,0.2);
	color:#1e40af;
	color:var(--heading-blue);
	font-family:"Arial";
	font-family:var(--font-body);
	font-size:2.0rem;
	left:50%;
	padding:8px 16px;
	position:absolute;
	text-align:center;
	top:50%;
	transform:translate(-50%, -50%);
}
.ajax-busy-spinner {
	animation:ajax-busy-spin 0.8s linear infinite;
	border:2px solid #80a0f0;
	background-color:#80a0f0;
	background-color:var(--border-color);
	border-color:var(--border-color);
	border-top-color:#1e40af;
	border-top-color:var(--heading-blue);
	border-radius:50%;
	display:inline-block;
	height:14px;
	margin-right:6px;
	vertical-align:middle;
	width:14px;
}
@keyframes ajax-busy-spin {
	100% { transform:rotate(360deg); }
}

/* ---- Cellpadding migration (replaces HTML table cellpadding="N" attribute) ---- */
.cellpad-0 td, .cellpad-0 th {
	padding:0px;
}
.cellpad-5 td, .cellpad-5 th {
	padding:5px;
}
