body {
	margin: 0;
	font-family: Arial, Helvetica, sans-serif;
	background: #f4f6f8;
	color: #222;
}

a {
	color: var(--ops-home-color, #174f7f);
}

.header {
	background: var(--ops-home-color, #1f4f7a);
	color: white;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 18px;
	border-bottom: solid var(--ops-accent-color, #f4b942) 4px;
}

.brand-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
}

.site-logo {
	max-height: 48px;
	max-width: 180px;
	background: white;
	border-radius: 4px;
	padding: 4px;
	object-fit: contain;
}

.header h1 {
	font-size: 24px;
	margin: 0;
	letter-spacing: 0;
}

.tagline {
	font-size: 12px;
	margin-top: 2px;
}

.header-right {
	text-align: right;
	font-size: 12px;
}

.nav {
	background: #ffffff;
	border-bottom: solid #cccccc 1px;
	padding: 8px 12px;
}

.nav a {
	display: inline-block;
	margin-right: 14px;
	text-decoration: none;
	font-weight: bold;
}

.content {
	padding: 14px;
}

.desktop-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 12px;
	align-items: start;
}

.panel {
	background: white;
	border: solid #cccccc 1px;
	border-radius: 4px;
	padding: 12px;
	box-shadow: 0 1px 2px rgba(0,0,0,0.06);
}

.wide-panel {
	grid-column: 1 / -1;
}

.panel h2,
.panel h3 {
	margin-top: 0;
	letter-spacing: 0;
}

.hero-panel {
	border-top: solid var(--ops-home-color, #1f4f7a) 4px;
}

.button-row {
	margin-top: 12px;
}

.button {
	display: inline-block;
	background: var(--ops-home-color, #1f4f7a);
	color: white;
	text-decoration: none;
	padding: 8px 10px;
	border-radius: 4px;
	margin-right: 8px;
	margin-bottom: 8px;
}

.data-table {
	width: 100%;
	border-collapse: collapse;
}

.data-table th,
.data-table td {
	border: solid #cccccc 1px;
	padding: 6px;
	text-align: left;
	vertical-align: top;
}

.data-table th {
	background: #eef3f7;
}

.table-scroll {
	overflow-x: auto;
}

.status-good {
	background: #d9f7d9;
	border: solid #5ca65c 1px;
	padding: 6px;
	margin-bottom: 8px;
	font-weight: bold;
}

.status-warn {
	background: #fff3cd;
	border: solid #d6a100 1px;
	padding: 6px;
	margin-bottom: 8px;
	font-weight: bold;
}

.footer {
	color: #666666;
	font-size: 11px;
	padding: 18px;
	text-align: center;
}

.login-page {
	min-height: 85vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

.login-card {
	background: white;
	border: solid #cccccc 1px;
	border-top: solid var(--ops-home-color, #1f4f7a) 5px;
	border-radius: 4px;
	padding: 18px;
	width: 340px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.12);
}

.login-card h1 {
	margin-top: 0;
	letter-spacing: 0;
}

.login-card label {
	display: block;
	font-weight: bold;
	margin-top: 10px;
}

.login-card input {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	margin-top: 4px;
	border: solid #bbbbbb 1px;
}

.login-card button {
	margin-top: 14px;
	width: 100%;
	background: var(--ops-home-color, #1f4f7a);
	color: white;
	border: 0;
	padding: 9px;
	font-weight: bold;
	cursor: pointer;
}

.login-message {
	background: #fff3cd;
	border: solid #d6a100 1px;
	padding: 8px;
	margin: 10px 0;
}

.local-password-card p {
	margin-bottom: 10px;
}

.local-password-scope {
	color: #666666;
}

.local-password-message {
	margin-bottom: 10px;
}

.local-password-form label {
	display: block;
	font-weight: bold;
	margin-top: 10px;
}

.local-password-form input[type="password"] {
	border: solid #bbbbbb 1px;
	box-sizing: border-box;
	margin-top: 4px;
	padding: 8px;
	width: 100%;
}

.local-password-form small {
	color: #666666;
	display: block;
	margin-top: 4px;
}

.local-password-form button {
	margin-top: 14px;
	width: 100%;
}

.form-table input[type="text"],
.form-table input[type="password"],
.form-table textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 7px;
	border: solid #bbbbbb 1px;
	font-family: Arial, Helvetica, sans-serif;
}

.form-table input[type="color"] {
	width: 70px;
	height: 34px;
	border: solid #bbbbbb 1px;
}

button {
	background: var(--ops-home-color, #1f4f7a);
	color: white;
	border: 0;
	padding: 8px 11px;
	border-radius: 4px;
	font-weight: bold;
	cursor: pointer;
}

.admin-logo-preview {
	max-width: 260px;
	max-height: 110px;
	object-fit: contain;
	border: solid #cccccc 1px;
	background: white;
	padding: 6px;
}

.admin-favicon-preview {
	width: 32px;
	height: 32px;
	object-fit: contain;
	border: solid #cccccc 1px;
	background: white;
	padding: 4px;
}

.metric-value {
	font-weight: bold;
	font-size: 18px;
}

.labor-summary-grid {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.labor-summary-card {
	text-align: center;
}

.labor-summary-card .data-table {
	margin-top: 10px;
	text-align: left;
}

.labor-summary-efficiency {
	border-radius: 4px;
	display: inline-block;
	font-size: 28px;
	font-weight: bold;
	min-width: 150px;
	padding: 10px 14px;
}

.efficiency-badge {
	border-radius: 12px;
	display: inline-block;
	font-weight: bold;
	min-width: 72px;
	padding: 4px 8px;
	text-align: center;
}

.efficiency-good {
	background: #d9f7d9;
	color: #245c24;
}

.efficiency-warning {
	background: #fff3cd;
	color: #715600;
}

.efficiency-low {
	background: #f8d7da;
	color: #842029;
}

.efficiency-unavailable {
	background: #e9ecef;
	color: #555555;
}

.labor-location-heading {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 10px;
}

.labor-location-heading h2 {
	margin-bottom: 0;
}

.labor-location-heading span {
	color: #666666;
	font-size: 13px;
	font-weight: bold;
}

.labor-efficiency-table {
	min-width: 980px;
}

.number-cell {
	text-align: right !important;
	white-space: nowrap;
}

.hours-under {
	color: #245c24;
	font-weight: bold;
}

.hours-over {
	color: #842029;
	font-weight: bold;
}

.labor-efficiency-note {
	color: #555555;
}

.labor-efficiency-filters {
	align-items: end;
	background: #eef3f7;
	border: solid #cccccc 1px;
	border-radius: 4px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
	padding: 10px;
}

.labor-efficiency-filters label {
	font-weight: bold;
	width: 100%;
}

.labor-efficiency-filters select {
	background: white;
	border: solid #bbbbbb 1px;
	border-radius: 4px;
	min-width: 290px;
	padding: 8px;
}

@media (max-width: 600px) {
	.labor-efficiency-filters select,
	.labor-efficiency-filters button {
		width: 100%;
	}
}

.labor-report-filters {
	align-items: end;
	background: #eef3f7;
	border: solid #cccccc 1px;
	border-radius: 4px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
	padding: 10px;
}

.labor-report-filters div {
	min-width: 180px;
}

.labor-report-filters label {
	display: block;
	font-weight: bold;
	margin-bottom: 4px;
}

.labor-report-filters input,
.labor-report-filters select {
	background: white;
	border: solid #bbbbbb 1px;
	border-radius: 4px;
	box-sizing: border-box;
	padding: 8px;
	width: 100%;
}

.labor-category-location {
	padding-bottom: 2px;
}

.labor-category-job {
	border: solid #cccccc 1px;
	border-radius: 4px;
	margin-bottom: 10px;
	overflow: hidden;
}

.labor-category-job-summary {
	align-items: center;
	background: #eef3f7;
	cursor: pointer;
	display: grid;
	gap: 12px;
	grid-template-columns: minmax(220px, 2fr) repeat(4, minmax(100px, 1fr));
	list-style-position: inside;
	padding: 10px;
}

.labor-category-job-summary > span {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.labor-category-job-summary small {
	color: #666666;
	font-size: 11px;
}

.labor-category-job-name b {
	font-size: 16px;
}

.labor-category-job-body {
	background: white;
	padding: 10px;
}

.labor-category-job-meta {
	color: #555555;
	font-size: 12px;
	margin-bottom: 8px;
}

.labor-category-table {
	min-width: 720px;
}

.labor-category-summary-row td {
	background: #f4f7fa;
	border-top: solid #c6d3de 2px;
}

.labor-category-row-level {
	color: #66727c;
	display: block;
	font-size: 10px;
	font-weight: normal;
	margin-top: 2px;
	text-transform: uppercase;
}

.labor-subcategory-row td {
	background: #fcfcfc;
}

.labor-subcategory-row td:first-child {
	border-left: solid #d7e1e9 3px;
}

.labor-subcategory-name {
	display: block;
	padding-left: 24px;
	position: relative;
}

.labor-subcategory-name::before {
	color: #71808d;
	content: "\21B3";
	left: 7px;
	position: absolute;
}

.labor-category-total-row td {
	background: #eef3f7;
	border-top: solid var(--ops-home-color, #1f4f7a) 2px;
}

.labor-trend-grid {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.labor-trend-card {
	background: #fafafa;
	border: solid #cccccc 1px;
	border-left-width: 5px;
	border-radius: 4px;
	padding: 12px;
}

.labor-trend-card h3 {
	margin-bottom: 8px;
}

.labor-trend-card ul {
	margin: 8px 0 0 18px;
	padding: 0;
}

.labor-trend-card li {
	margin-bottom: 6px;
}

.labor-trend-overall {
	border-left-color: var(--ops-home-color, #1f4f7a);
}

.labor-trend-positive {
	border-left-color: #5ca65c;
}

.labor-trend-negative {
	border-left-color: #b02a37;
}

.labor-trend-efficiency {
	border-radius: 4px;
	display: inline-block;
	font-size: 22px;
	font-weight: bold;
	padding: 7px 10px;
}

.labor-hours-impact-summary {
	display: grid;
	gap: 7px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 12px;
}

.labor-hours-impact-summary > div {
	border: solid #d8d8d8 1px;
	border-radius: 4px;
	padding: 8px;
	text-align: center;
}

.labor-hours-impact-summary small {
	display: block;
	font-size: 11px;
	line-height: 1.2;
}

.labor-hours-impact-summary b {
	display: block;
	font-size: 18px;
	margin-top: 3px;
}

.labor-hours-gained {
	background: #e8f4e8;
	color: #245c24;
}

.labor-hours-lost {
	background: #f8e7e9;
	color: #842029;
}

.labor-hours-neutral {
	background: #eeeeee;
	color: #444444;
}

.labor-hours-impact-note {
	display: block;
	line-height: 1.35;
	margin-top: 7px;
}

.labor-category-chart-intro {
	color: #555555;
	font-size: 13px;
	margin: 0 0 10px;
}

.labor-category-performance-list {
	display: grid;
	gap: 10px;
}

.labor-category-performance-item {
	background: #ffffff;
	border: solid #d8d8d8 1px;
	border-radius: 4px;
	padding: 10px;
}

.labor-category-performance-heading {
	align-items: center;
	display: flex;
	gap: 8px;
	justify-content: space-between;
}

.labor-category-performance-heading > b {
	align-items: center;
	display: flex;
	gap: 6px;
}

.labor-category-rank {
	align-items: center;
	background: #e7edf2;
	border-radius: 50%;
	display: inline-flex;
	font-size: 11px;
	height: 22px;
	justify-content: center;
	min-width: 22px;
}

.labor-category-hours-impact {
	font-size: 13px;
	font-weight: bold;
	white-space: nowrap;
}

.labor-category-performance-positive .labor-category-hours-impact {
	color: #245c24;
}

.labor-category-performance-negative .labor-category-hours-impact {
	color: #842029;
}

.labor-category-impact-bar {
	background: #e6e6e6;
	border-radius: 5px;
	height: 10px;
	margin-top: 8px;
	overflow: hidden;
}

.labor-category-impact-bar span {
	display: block;
	height: 100%;
}

.labor-category-performance-positive .labor-category-impact-bar span {
	background: #5ca65c;
}

.labor-category-performance-negative .labor-category-impact-bar span {
	background: #b02a37;
}

.labor-category-performance-metrics {
	display: grid;
	font-size: 12px;
	gap: 5px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 8px;
}

.labor-category-performance-metrics span {
	background: #f4f4f4;
	border-radius: 3px;
	padding: 5px;
	text-align: center;
}

.labor-category-performance-metrics b {
	display: block;
	font-size: 13px;
	margin-top: 2px;
}

.labor-category-suggestion {
	border-top: solid #e1e1e1 1px;
	font-size: 12px;
	line-height: 1.4;
	margin: 9px 0 0;
	padding-top: 8px;
}

.labor-category-chart-caption {
	display: block;
	margin-top: 7px;
}

.labor-main-category-charts-section {
	border-top: solid #d4dce3 1px;
	margin-top: 14px;
	padding-top: 12px;
}

.labor-main-category-charts-section > h3 {
	font-size: 15px;
	margin: 0 0 7px;
}

.labor-main-category-chart-grid {
	align-items: start;
	display: grid;
	gap: 6px;
	grid-template-columns: repeat(auto-fill, minmax(210px, 260px));
}

.labor-main-category-chart {
	background: #fafafa;
	border: solid #cccccc 1px;
	border-radius: 4px;
	box-sizing: border-box;
	padding: 6px;
}

.labor-main-category-chart > header {
	align-items: center;
	border-bottom: solid #d8e0e6 1px;
	display: flex;
	gap: 6px;
	justify-content: space-between;
	margin-bottom: 2px;
	padding-bottom: 4px;
}

.labor-main-category-chart h4 {
	font-size: 12px;
	margin: 0;
}

.labor-main-category-efficiency {
	flex-shrink: 0;
	font-size: 9px;
	min-width: 52px;
	padding: 2px 5px;
}

.manpower-comparison-bars.labor-main-category-comparison-bars {
	min-width: 0;
}

.manpower-comparison-bars.labor-main-category-comparison-bars > div {
	gap: 4px;
	grid-template-columns: 46px minmax(60px, 1fr) 38px;
	margin-bottom: 3px;
}

.labor-main-category-comparison-bars strong {
	font-size: 9px;
	text-align: right;
}

.labor-main-category-estimate-bar {
	background: #4f81bd;
}

.labor-main-category-actual-within {
	background: #5ca65c;
}

.labor-main-category-actual-over {
	background: #c0504d;
}

@media print {
	.labor-main-category-chart {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.labor-main-category-chart-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.manpower-report-filters {
	align-items: end;
	background: #eef3f7;
	border: solid #cccccc 1px;
	border-radius: 4px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
	padding: 10px;
}

.manpower-report-filters div {
	min-width: 180px;
}

.manpower-report-filters label {
	display: block;
	font-weight: bold;
	margin-bottom: 4px;
}

.manpower-report-filters input,
.manpower-report-filters select {
	background: #ffffff;
	border: solid #bbbbbb 1px;
	border-radius: 4px;
	box-sizing: border-box;
	padding: 8px;
	width: 100%;
}

.manpower-summary-grid {
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.manpower-summary-card {
	text-align: center;
}

.manpower-summary-card .data-table {
	margin-top: 10px;
	text-align: left;
}

.manpower-summary-load {
	border-radius: 4px;
	display: inline-block;
	font-size: 22px;
	font-weight: bold;
	min-width: 145px;
	padding: 8px 12px;
}

.manpower-overbooked {
	background: #f8d7da !important;
	color: #842029 !important;
	font-weight: bold;
}

.manpower-underbooked {
	background: #d1e7dd !important;
	color: #245c24 !important;
	font-weight: bold;
}

.manpower-balanced {
	background: #fff3cd !important;
	color: #664d03 !important;
	font-weight: bold;
}

.manpower-capacity-missing {
	background: #eeeeee !important;
	color: #555555 !important;
	font-weight: bold;
}

.manpower-location-chart-grid {
	align-items: start;
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(520px, 1fr));
	margin-top: 14px;
}

.manpower-location-chart {
	margin: 0 auto;
	max-width: 760px;
	min-width: 0;
	width: 100%;
}

.manpower-location-chart h3 {
	margin: 0 0 6px;
	text-align: center;
}

.manpower-location-chart-scroll {
	overflow-x: auto;
	width: 100%;
}

.manpower-location-chart-svg {
	display: block;
	height: auto;
	width: 100%;
}

.manpower-location-chart-gridline {
	stroke: #d7d7d7;
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
}

.manpower-location-chart-axis {
	stroke: #666666;
	stroke-width: 1.5;
	vector-effect: non-scaling-stroke;
}

.manpower-location-chart-axis-label {
	fill: #555555;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 16px;
}

.manpower-location-chart-axis-title {
	fill: #444444;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 16px;
	font-weight: bold;
}

.manpower-location-chart-series {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 3;
	vector-effect: non-scaling-stroke;
}

.manpower-location-chart-series.manpower-location-chart-booked {
	stroke: #b02a37;
}

.manpower-location-chart-bar {
	shape-rendering: crispEdges;
}

.manpower-location-chart-bar.manpower-location-chart-available {
	fill: #4f81bd;
}

.manpower-location-chart-bar.manpower-location-chart-labor {
	fill: #5ca65c;
}

.manpower-location-chart-marker {
	stroke: #ffffff;
	stroke-width: 1.5;
	vector-effect: non-scaling-stroke;
}

.manpower-location-chart-marker.manpower-location-chart-booked {
	fill: #b02a37;
}

.manpower-location-chart-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
	justify-content: center;
	margin-top: 8px;
}

.manpower-location-chart-legend span {
	align-items: center;
	display: inline-flex;
	font-size: 12px;
	gap: 6px;
}

.manpower-location-chart-legend-swatch {
	background: #4f81bd;
	display: inline-block;
	height: 9px;
	width: 24px;
}

.manpower-location-chart-legend-swatch.manpower-location-chart-labor {
	background: #5ca65c;
}

.manpower-location-chart-legend-swatch.manpower-location-chart-booked {
	background: transparent;
	border-top: solid #b02a37 3px;
	height: 0;
}

.manpower-trend-grid {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.manpower-trend-card {
	background: #fafafa;
	border: solid #cccccc 1px;
	border-left: solid var(--ops-home-color, #1f4f7a) 5px;
	border-radius: 4px;
	padding: 12px;
}

.manpower-trend-card ul {
	margin: 10px 0 10px 18px;
	padding: 0;
}

.manpower-trend-card li {
	margin-bottom: 6px;
}

.manpower-trend-direction {
	border-radius: 4px;
	display: inline-block;
	margin-top: 6px;
	padding: 6px 8px;
}

.manpower-location-heading {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin-bottom: 10px;
}

.manpower-location-heading h2 {
	margin: 0;
}

.manpower-location-heading span {
	color: #555555;
	font-size: 13px;
}

.manpower-monthly-table {
	min-width: 1040px;
}

.manpower-capacity-source,
.manpower-heavy-jobs-table td small {
	color: #666666;
	display: block;
	font-size: 11px;
	font-weight: normal;
	margin-top: 3px;
}

.manpower-load-badge,
.manpower-heavy-badge {
	border-radius: 12px;
	display: inline-block;
	font-size: 12px;
	font-weight: bold;
	min-width: 70px;
	padding: 4px 7px;
	text-align: center;
}

.manpower-comparison-bars {
	min-width: 190px;
}

.manpower-comparison-bars > div {
	align-items: center;
	display: grid;
	gap: 6px;
	grid-template-columns: 55px 1fr;
	margin-bottom: 4px;
}

.manpower-comparison-bars small {
	font-size: 10px;
	text-align: right;
}

.manpower-comparison-bars span {
	background: #e6e6e6;
	border-radius: 4px;
	display: block;
	height: 9px;
	overflow: hidden;
}

.manpower-comparison-bars i {
	display: block;
	height: 100%;
}

.manpower-available-bar {
	background: #4f81bd;
}

.manpower-labor-bar {
	background: #c0504d;
}

.manpower-heavy-jobs-grid {
	display: grid;
	gap: 12px;
}

.manpower-heavy-jobs-card {
	background: #fafafa;
	border: solid #cccccc 1px;
	border-radius: 4px;
	box-sizing: border-box;
	margin: 0;
	padding: 12px;
}

.manpower-heavy-jobs-table {
	min-width: 900px;
}

.manpower-heavy-high {
	background: #f8d7da;
	color: #842029;
}

.manpower-heavy-moderate {
	background: #fff3cd;
	color: #664d03;
}

.manpower-heavy-distributed {
	background: #e7edf2;
	color: #34495e;
}

.employee-review-filters {
	align-items: end;
	background: #eef3f7;
	border: solid #cccccc 1px;
	border-radius: 4px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
	padding: 10px;
}

.employee-review-filters div {
	flex: 1 1 185px;
	min-width: 170px;
}

.employee-review-filters div:nth-of-type(2) {
	flex-basis: 240px;
}

.employee-review-filters label {
	display: block;
	font-weight: bold;
	margin-bottom: 4px;
}

.employee-review-filters input,
.employee-review-filters select {
	background: #ffffff;
	border: solid #bbbbbb 1px;
	border-radius: 4px;
	box-sizing: border-box;
	padding: 8px;
	width: 100%;
}

.employee-review-filters .secondary-button {
	background: #687681;
	margin: 0;
	padding: 8px 11px;
}

.employee-review-location-panel {
	padding-bottom: 16px;
}

.employee-review-location-heading {
	align-items: center;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin-bottom: 14px;
}

.employee-review-location-heading h2 {
	margin: 0;
}

.employee-review-location-heading > div > span {
	color: #666666;
	font-size: 12px;
}

.employee-review-location-summary {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(4, minmax(86px, 1fr));
}

.employee-review-location-summary > span {
	background: #eef3f7;
	border: solid #d5dde4 1px;
	border-radius: 4px;
	min-width: 80px;
	padding: 7px 9px;
	text-align: center;
}

.employee-review-location-summary small,
.employee-review-location-summary b {
	display: block;
}

.employee-review-location-summary small {
	color: #666666;
	font-size: 10px;
	margin-bottom: 2px;
}

.employee-review-card-list {
	display: grid;
	gap: 16px;
}

.employee-review-card {
	background: #ffffff;
	border: solid #c8d0d7 1px;
	border-radius: 5px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
	overflow: hidden;
}

.employee-review-card-heading {
	align-items: center;
	background: #eef3f7;
	border-bottom: solid #c8d0d7 1px;
	display: flex;
	gap: 14px;
	justify-content: space-between;
	padding: 12px 14px;
}

.employee-review-card-heading h3 {
	margin: 0 0 2px;
}

.employee-review-card-heading span {
	color: #555555;
	font-size: 12px;
}

.employee-review-location {
	display: flex;
	flex-direction: column;
	text-align: right;
}

.employee-review-assignment-grid {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(4, minmax(145px, 1fr));
	background: #d6dde3;
	border-bottom: solid #d6dde3 1px;
}

.employee-review-assignment-grid > div {
	background: #ffffff;
	padding: 10px 12px;
}

.employee-review-assignment-grid small,
.employee-review-assignment-grid b {
	display: block;
}

.employee-review-assignment-grid small {
	color: #666666;
	font-size: 10px;
	margin-bottom: 3px;
	text-transform: uppercase;
}

.employee-review-metric-grid {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(5, minmax(150px, 1fr));
	padding: 14px;
}

.employee-review-metric {
	background: #f8f9fa;
	border: solid #d9dfe4 1px;
	border-left: solid var(--ops-home-color, #1f4f7a) 4px;
	border-radius: 4px;
	padding: 10px;
}

.employee-review-metric small,
.employee-review-metric b,
.employee-review-metric span {
	display: block;
}

.employee-review-metric small {
	color: #555555;
	font-size: 11px;
	font-weight: bold;
}

.employee-review-metric b {
	font-size: 22px;
	margin: 4px 0;
}

.employee-review-metric span {
	color: #666666;
	font-size: 10px;
	line-height: 1.35;
}

.employee-review-metric.metric-good {
	background: #eef8ef;
	border-left-color: #2f7d32;
}

.employee-review-metric.metric-caution {
	background: #fff8e5;
	border-left-color: #b78300;
}

.employee-review-metric.metric-bad {
	background: #fcebec;
	border-left-color: #b02a37;
}

.employee-review-metric.metric-neutral {
	border-left-color: #687681;
}

.employee-review-subsection {
	border-top: solid #d6dde3 1px;
	padding: 12px 14px 14px;
}

.employee-review-subsection h4 {
	margin: 0 0 9px;
}

.employee-review-data-note {
	background: #eaf3fb;
	border: solid #9fc4e0 1px;
	border-radius: 4px;
	color: #2b536f;
	font-size: 11px;
	margin-bottom: 8px;
	padding: 7px 9px;
}

.employee-review-empty {
	font-size: 12px;
	font-weight: normal;
	margin: 0;
}

.employee-review-detail-table {
	font-size: 12px;
	min-width: 650px;
}

.employee-review-detail-table th {
	white-space: nowrap;
}

.status-good-inline,
.status-warn-inline {
	border-radius: 10px;
	display: inline-block;
	font-size: 11px;
	font-weight: bold;
	padding: 3px 7px;
}

.status-good-inline {
	background: #d9f7d9;
	color: #2f6f32;
}

.status-warn-inline {
	background: #fff3cd;
	color: #7a5b00;
}

.employee-review-x-ray-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 8px;
}

.employee-review-x-ray-summary span {
	background: #eef3f7;
	border: solid #d5dde4 1px;
	border-radius: 4px;
	font-size: 11px;
	padding: 6px 8px;
}

.employee-review-monthly-charts {
	border-top: solid #d6dde3 1px;
	padding: 12px 14px 14px;
}

.employee-review-monthly-charts > h4 {
	margin: 0 0 9px;
}

.employee-review-monthly-chart-grid {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
}

.employee-review-monthly-chart {
	background: #f8f9fa;
	border: solid #d9dfe4 1px;
	border-radius: 4px;
	box-sizing: border-box;
	min-width: 0;
	padding: 10px;
}

.employee-review-monthly-chart h5 {
	margin: 0 0 6px;
}

.employee-review-chart-empty {
	font-size: 12px;
	font-weight: normal;
	margin: 0;
}

.employee-review-chart-scroll {
	overflow-x: auto;
	overflow-y: hidden;
}

.employee-review-chart-canvas {
	min-width: 100%;
}

.employee-review-chart-svg {
	display: block;
	height: auto;
	width: 100%;
}

.employee-review-chart-gridline {
	stroke: #d8dde2;
	stroke-width: 1;
}

.employee-review-chart-axis {
	stroke: #65727d;
	stroke-width: 1;
}

.employee-review-chart-axis-label {
	fill: #59656f;
	font-size: 10px;
}

.employee-review-chart-axis-title {
	fill: #3f4a53;
	font-size: 11px;
	font-weight: bold;
}

.employee-review-chart-bar {
	shape-rendering: crispEdges;
}

.employee-review-chart-total {
	fill: #0b73b9;
}

.employee-review-chart-failed {
	fill: #08a84b;
}

.employee-review-chart-value-label {
	fill: #30383e;
	font-size: 9px;
	font-weight: bold;
}

.employee-review-chart-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 4px;
}

.employee-review-chart-legend span {
	align-items: center;
	display: inline-flex;
	font-size: 10px;
	gap: 5px;
}

.employee-review-chart-legend-swatch {
	background: #0b73b9;
	display: inline-block;
	height: 9px;
	width: 14px;
}

.employee-review-chart-legend-failed {
	background: #08a84b;
}

.x-ray-passed {
	background: #eef8ef;
	color: #2f6f32;
	font-weight: bold;
}

.x-ray-failed {
	background: #fcebec;
	color: #842029;
	font-weight: bold;
}

.employee-review-warning {
	font-size: 12px;
}

.employee-review-method-note {
	color: #555555;
	line-height: 1.45;
}

.xray-dashboard-filters {
	align-items: end;
	background: #eef3f7;
	border: solid #cccccc 1px;
	border-radius: 4px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
	padding: 10px;
}

.xray-dashboard-filters div {
	flex: 1 1 185px;
	min-width: 170px;
}

.xray-dashboard-filters label {
	display: block;
	font-weight: bold;
	margin-bottom: 4px;
}

.xray-dashboard-filters input,
.xray-dashboard-filters select {
	background: #ffffff;
	border: solid #bbbbbb 1px;
	border-radius: 4px;
	box-sizing: border-box;
	padding: 8px;
	width: 100%;
}

.xray-dashboard-filters .xray-dashboard-reset-button {
	background: #687681;
	margin: 0;
	padding: 8px 11px;
}

.xray-dashboard-heading {
	align-items: center;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin-bottom: 14px;
}

.xray-dashboard-heading h2 {
	margin: 0;
}

.xray-dashboard-heading > div > span {
	color: #666666;
	font-size: 12px;
}

.xray-dashboard-metrics {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(3, minmax(125px, 1fr));
}

.xray-dashboard-metrics > span {
	background: #eef3f7;
	border: solid #d5dde4 1px;
	border-radius: 4px;
	min-width: 110px;
	padding: 7px 10px;
	text-align: center;
}

.xray-dashboard-metrics small,
.xray-dashboard-metrics b {
	display: block;
}

.xray-dashboard-metrics small {
	color: #666666;
	font-size: 10px;
	margin-bottom: 2px;
}

.xray-dashboard-metrics b {
	font-size: 20px;
}

.xray-dashboard-table {
	min-width: 580px;
}

.xray-dashboard-table th:not(:first-child),
.xray-dashboard-table td:not(:first-child) {
	text-align: center;
}

.xray-rate-badge {
	border-radius: 12px;
	display: inline-block;
	font-size: 11px;
	font-weight: bold;
	min-width: 58px;
	padding: 4px 7px;
	text-align: center;
}

.xray-rate-good {
	color: #2f6f32;
}

.xray-rate-badge.xray-rate-good {
	background: #d9f7d9;
}

.xray-rate-caution {
	color: #7a5b00;
}

.xray-rate-badge.xray-rate-caution {
	background: #fff3cd;
}

.xray-rate-bad {
	color: #842029;
}

.xray-rate-badge.xray-rate-bad {
	background: #f8d7da;
}

.xray-rate-neutral {
	color: #46535d;
}

.xray-rate-badge.xray-rate-neutral {
	background: #e7edf2;
}

.xray-dashboard-warning {
	font-size: 12px;
}

.xray-dashboard-method-note {
	color: #555555;
	line-height: 1.45;
}

.xray-dashboard-chart-empty {
	font-weight: normal;
	margin: 0 0 14px;
}

.xray-monthly-chart {
	background: #ffffff;
	border: solid #d5dde4 1px;
	border-radius: 5px;
	margin: 0 0 16px;
	padding: 12px;
}

.xray-monthly-chart h3 {
	margin: 0;
	text-align: center;
}

.xray-monthly-chart > p {
	color: #666666;
	font-size: 11px;
	margin: 4px 0 8px;
	text-align: center;
}

.xray-monthly-chart-scroll {
	overflow-x: auto;
	width: 100%;
}

.xray-monthly-chart-canvas {
	margin: 0 auto;
	width: 100%;
}

.xray-monthly-chart-svg {
	display: block;
	height: auto;
	width: 100%;
}

.xray-monthly-chart-gridline {
	stroke: #d7d7d7;
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
}

.xray-monthly-chart-axis {
	stroke: #666666;
	stroke-width: 1.5;
	vector-effect: non-scaling-stroke;
}

.xray-monthly-chart-axis-label {
	fill: #555555;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
}

.xray-monthly-chart-axis-title {
	fill: #444444;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13px;
	font-weight: bold;
}

.xray-monthly-chart-bar {
	shape-rendering: crispEdges;
}

.xray-monthly-chart-bar.xray-monthly-chart-total {
	fill: #4f81bd;
}

.xray-monthly-chart-bar.xray-monthly-chart-failed {
	fill: #5ca65c;
}

.xray-monthly-chart-line {
	fill: none;
	stroke: #b02a37;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 3;
	vector-effect: non-scaling-stroke;
}

.xray-monthly-chart-marker {
	fill: #b02a37;
	stroke: #ffffff;
	stroke-width: 1.5;
	vector-effect: non-scaling-stroke;
}

.xray-monthly-chart-value-label,
.xray-monthly-chart-rate-label {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: bold;
}

.xray-monthly-chart-value-label {
	fill: #3f4b54;
}

.xray-monthly-chart-rate-label {
	fill: #842029;
}

.xray-monthly-chart-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
	justify-content: center;
	margin-top: 8px;
}

.xray-monthly-chart-legend span {
	align-items: center;
	display: inline-flex;
	font-size: 12px;
	gap: 6px;
}

.xray-monthly-chart-legend-swatch {
	background: #4f81bd;
	display: inline-block;
	height: 9px;
	width: 24px;
}

.xray-monthly-chart-legend-swatch.xray-monthly-chart-failed {
	background: #5ca65c;
}

.xray-monthly-chart-legend-swatch.xray-monthly-chart-rate {
	background: transparent;
	border-top: solid #b02a37 3px;
	height: 0;
}

.qc-dashboard-filters {
	align-items: end;
	background: #eef3f7;
	border: solid #cccccc 1px;
	border-radius: 4px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
	padding: 10px;
}

.qc-dashboard-filters div {
	flex: 1 1 185px;
	min-width: 170px;
}

.qc-dashboard-filters div:nth-of-type(2) {
	flex-basis: 230px;
}

.qc-dashboard-filters label {
	display: block;
	font-weight: bold;
	margin-bottom: 4px;
}

.qc-dashboard-filters input,
.qc-dashboard-filters select {
	background: #ffffff;
	border: solid #bbbbbb 1px;
	border-radius: 4px;
	box-sizing: border-box;
	padding: 8px;
	width: 100%;
}

.qc-dashboard-filters .qc-dashboard-reset-button {
	background: #687681;
	margin: 0;
	padding: 8px 11px;
}

.qc-location-panel {
	padding-bottom: 16px;
	scroll-margin-top: 10px;
}

.qc-location-heading {
	align-items: center;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin-bottom: 14px;
}

.qc-location-heading h2 {
	margin: 0;
}

.qc-location-heading > div > span {
	color: #666666;
	font-size: 12px;
}

.qc-location-metrics {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(3, minmax(125px, 1fr));
}

.qc-location-metrics > span {
	background: #eef3f7;
	border: solid #d5dde4 1px;
	border-radius: 4px;
	min-width: 110px;
	padding: 7px 10px;
	text-align: center;
}

.qc-location-metrics small,
.qc-location-metrics b,
.qc-location-metrics em {
	display: block;
}

.qc-location-metrics small {
	color: #666666;
	font-size: 10px;
	margin-bottom: 2px;
}

.qc-location-metrics b {
	font-size: 20px;
}

.qc-location-metrics em {
	color: #666666;
	font-size: 10px;
	font-style: normal;
}

.qc-monthly-chart {
	background: #ffffff;
	border: solid #d5dde4 1px;
	border-radius: 5px;
	margin: 0 0 16px;
	padding: 12px;
}

.qc-monthly-chart h3 {
	margin: 0;
	text-align: center;
}

.qc-monthly-chart > p {
	color: #666666;
	font-size: 11px;
	margin: 4px 0 8px;
	text-align: center;
}

.qc-monthly-chart-scroll {
	overflow-x: auto;
	width: 100%;
}

.qc-monthly-chart-canvas {
	margin: 0 auto;
	width: 100%;
}

.qc-monthly-chart-svg {
	display: block;
	height: auto;
	width: 100%;
}

.qc-monthly-chart-gridline {
	stroke: #d7d7d7;
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
}

.qc-monthly-chart-axis {
	stroke: #666666;
	stroke-width: 1.5;
	vector-effect: non-scaling-stroke;
}

.qc-monthly-chart-axis-label {
	fill: #555555;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
}

.qc-monthly-chart-axis-title {
	fill: #444444;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13px;
	font-weight: bold;
}

.qc-monthly-chart-bar {
	shape-rendering: crispEdges;
}

.qc-monthly-chart-bar.qc-monthly-chart-total {
	fill: #4f81bd;
}

.qc-monthly-chart-bar.qc-monthly-chart-failed {
	fill: #5ca65c;
}

.qc-monthly-chart-line {
	fill: none;
	stroke: #b02a37;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 3;
	vector-effect: non-scaling-stroke;
}

.qc-monthly-chart-marker {
	fill: #b02a37;
	stroke: #ffffff;
	stroke-width: 1.5;
	vector-effect: non-scaling-stroke;
}

.qc-monthly-chart-value-label,
.qc-monthly-chart-rate-label {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: bold;
}

.qc-monthly-chart-value-label {
	fill: #3f4b54;
}

.qc-monthly-chart-rate-label {
	fill: #842029;
}

.qc-monthly-chart-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
	justify-content: center;
	margin-top: 8px;
}

.qc-monthly-chart-legend span {
	align-items: center;
	display: inline-flex;
	font-size: 12px;
	gap: 6px;
}

.qc-monthly-chart-legend-swatch {
	background: #4f81bd;
	display: inline-block;
	height: 9px;
	width: 24px;
}

.qc-monthly-chart-legend-swatch.qc-monthly-chart-failed {
	background: #5ca65c;
}

.qc-monthly-chart-legend-swatch.qc-monthly-chart-rate {
	background: transparent;
	border-top: solid #b02a37 3px;
	height: 0;
}

.qc-analysis-chart {
	background: #ffffff;
	border: solid #d5dde4 1px;
	border-radius: 5px;
	margin: 0 0 16px;
	padding: 12px;
}

.qc-analysis-chart h3 {
	margin: 0;
	text-align: center;
}

.qc-analysis-chart > p {
	color: #666666;
	font-size: 11px;
	margin: 4px 0 12px;
	text-align: center;
}

.qc-category-trend-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.qc-category-ranking {
	min-width: 0;
}

.qc-category-ranking h4 {
	margin: 0 0 10px;
	text-align: center;
}

.qc-category-rank-row {
	align-items: center;
	display: grid;
	gap: 10px;
	grid-template-columns: minmax(115px, .7fr) minmax(180px, 1.3fr);
	margin-top: 10px;
}

.qc-category-rank-row + .qc-category-rank-row {
	border-top: solid #e0e5e9 1px;
	padding-top: 10px;
}

.qc-category-rank-name {
	font-size: 11px;
	font-weight: bold;
	line-height: 1.25;
	text-align: right;
}

.qc-category-rank-track {
	background: #e4e9ed;
	border-radius: 3px;
	display: block;
	height: 11px;
	overflow: hidden;
}

.qc-category-rank-metrics {
	display: grid;
	gap: 5px;
}

.qc-category-rank-metric {
	align-items: center;
	display: grid;
	gap: 5px;
	grid-template-columns: 43px minmax(80px, 1fr) 34px;
}

.qc-category-rank-metric small {
	font-size: 10px;
}

.qc-category-rank-bar {
	display: block;
	height: 100%;
	min-width: 2px;
}

.qc-category-rank-total {
	background: #4f81bd;
}

.qc-category-rank-passed {
	background: #198754;
}

.qc-category-rank-failed {
	background: #b02a37;
}

.qc-category-rank-metric > b {
	font-size: 11px;
	text-align: right;
}

.qc-category-rank-empty {
	font-size: 11px;
	font-weight: normal;
	margin: 0;
}

.qc-operator-chart-canvas {
	margin: 0 auto;
}

.qc-operator-chart-bar {
	shape-rendering: crispEdges;
}

.qc-operator-chart-total {
	fill: #198754;
}

.qc-operator-chart-failed {
	fill: #b02a37;
}

.qc-operator-chart-legend-swatch {
	display: inline-block;
	height: 9px;
	width: 24px;
}

.qc-operator-chart-total-swatch {
	background: #198754;
}

.qc-operator-chart-failed-swatch {
	background: #b02a37;
}

.qc-inspector-summary-table {
	min-width: 930px;
}

.qc-inspector-summary-table th:not(:first-child),
.qc-inspector-summary-table td.number-cell {
	text-align: center;
}

.qc-rate-badge {
	border-radius: 12px;
	display: inline-block;
	font-size: 11px;
	font-weight: bold;
	min-width: 58px;
	padding: 4px 7px;
	text-align: center;
}

.qc-rate-good {
	background: #d9f7d9;
	color: #2f6f32;
}

.qc-rate-caution {
	background: #fff3cd;
	color: #7a5b00;
}

.qc-rate-bad {
	background: #f8d7da;
	color: #842029;
}

.qc-rate-neutral {
	background: #e7edf2;
	color: #46535d;
}

.qc-detail-link {
	color: var(--ops-home-color, #1f4f7a);
	font-size: 11px;
	font-weight: bold;
	white-space: nowrap;
}

.qc-no-exceptions,
.qc-muted {
	color: #6b747b;
	font-size: 11px;
}

.qc-exception-list {
	display: grid;
	gap: 14px;
	margin-top: 16px;
}

.qc-exception-group {
	border: solid #c8d0d7 1px;
	border-radius: 5px;
	overflow: hidden;
	scroll-margin-top: 10px;
}

.qc-exception-group > header {
	align-items: center;
	background: #eef3f7;
	border-bottom: solid #c8d0d7 1px;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	padding: 10px 12px;
}

.qc-exception-group > header h3 {
	margin: 0;
}

.qc-exception-group > header span {
	color: #666666;
	font-size: 11px;
}

.qc-exception-group > header a {
	color: var(--ops-home-color, #1f4f7a);
	font-size: 11px;
	font-weight: bold;
	white-space: nowrap;
}

.qc-exception-table {
	font-size: 12px;
	min-width: 1220px;
}

.qc-exception-table td > small {
	color: #666666;
	display: block;
	font-size: 10px;
	margin-top: 3px;
}

.qc-exception-table td:nth-child(1) {
	min-width: 135px;
}

.qc-exception-table td:nth-child(2),
.qc-exception-table td:nth-child(3),
.qc-exception-table td:nth-child(4) {
	min-width: 145px;
}

.qc-exception-table td:nth-child(7) {
	min-width: 230px;
}

.qc-status-list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	min-width: 90px;
}

.qc-status-badge {
	border-radius: 10px;
	display: inline-block;
	font-size: 10px;
	font-weight: bold;
	padding: 3px 6px;
	white-space: nowrap;
}

.qc-status-problem {
	background: #fff3cd;
	color: #7a5b00;
}

.qc-status-failed {
	background: #f8d7da;
	color: #842029;
}

.qc-status-inspector {
	background: #e9d8fd;
	color: #5d3185;
}

.qc-exception-notes {
	font-size: 11px;
	line-height: 1.4;
}

.qc-exception-notes > div + div {
	border-top: solid #e1e5e8 1px;
	margin-top: 5px;
	padding-top: 5px;
}

.qc-dashboard-warning,
.qc-no-exception-message {
	font-size: 12px;
}

.qc-no-exception-message {
	font-weight: normal;
	margin: 0;
}

.qc-dashboard-method-note {
	color: #555555;
	line-height: 1.45;
}

@media (max-width: 900px) {
	.labor-category-job-summary {
		grid-template-columns: repeat(2, minmax(130px, 1fr));
	}

	.labor-category-job-name {
		grid-column: 1 / -1;
	}

	.employee-review-location-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.employee-review-assignment-grid {
		grid-template-columns: repeat(2, minmax(145px, 1fr));
	}

	.employee-review-metric-grid {
		grid-template-columns: repeat(2, minmax(150px, 1fr));
	}

	.qc-location-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.qc-category-trend-grid {
		grid-template-columns: 1fr;
	}

	.xray-dashboard-heading {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 600px) {
	.labor-trend-grid {
		grid-template-columns: 1fr;
	}

	.manpower-location-chart-grid {
		grid-template-columns: 1fr;
	}

	.manpower-location-chart-canvas {
		min-width: 620px;
	}

	.manpower-report-filters div,
	.manpower-report-filters button {
		width: 100%;
	}

	.manpower-location-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.labor-hours-impact-summary,
	.labor-category-performance-metrics {
		grid-template-columns: 1fr;
	}

	.labor-category-performance-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.labor-main-category-chart-grid {
		grid-template-columns: 1fr;
	}

	.labor-report-filters div,
	.labor-report-filters button {
		width: 100%;
	}

	.labor-category-job-summary {
		grid-template-columns: 1fr;
	}

	.labor-category-job-name {
		grid-column: auto;
	}

	.employee-review-filters div,
	.employee-review-filters button,
	.employee-review-filters .secondary-button {
		width: 100%;
	}

	.employee-review-location-summary,
	.employee-review-assignment-grid,
	.employee-review-metric-grid {
		grid-template-columns: 1fr;
		width: 100%;
	}

	.employee-review-monthly-chart-grid {
		grid-template-columns: 1fr;
	}

	.qc-category-rank-row {
		gap: 6px;
		grid-template-columns: minmax(85px, .7fr) minmax(160px, 1.3fr);
	}

	.employee-review-card-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.employee-review-location {
		text-align: left;
	}

	.qc-dashboard-filters div,
	.qc-dashboard-filters button,
	.qc-dashboard-filters .qc-dashboard-reset-button {
		width: 100%;
	}

	.xray-dashboard-filters div,
	.xray-dashboard-filters button,
	.xray-dashboard-filters .xray-dashboard-reset-button {
		width: 100%;
	}

	.qc-location-metrics {
		grid-template-columns: 1fr;
		width: 100%;
	}

	.xray-dashboard-metrics {
		grid-template-columns: 1fr;
		width: 100%;
	}

	.qc-exception-group > header {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media print {
	.employee-review-filters {
		display: none;
	}

	.employee-review-card {
		box-shadow: none;
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.employee-review-monthly-chart {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.employee-review-chart-canvas {
		min-width: 0 !important;
		width: 100% !important;
	}

	.qc-dashboard-filters {
		display: none;
	}

	.qc-analysis-chart {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.xray-dashboard-filters {
		display: none;
	}

	.xray-dashboard-report {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.xray-monthly-chart {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.xray-monthly-chart-canvas {
		min-width: 0 !important;
		width: 100% !important;
	}

	.qc-monthly-chart {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.qc-monthly-chart-canvas {
		min-width: 0 !important;
		width: 100% !important;
	}

	.qc-exception-group {
		break-inside: avoid;
		page-break-inside: avoid;
	}
}

.job-materials-manpower-filters {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

.job-materials-manpower-filters > div {
	min-width: 165px;
}

.job-materials-manpower-filters label {
	display: block;
	font-size: 11px;
	font-weight: bold;
	margin-bottom: 4px;
}

.job-materials-manpower-filters input,
.job-materials-manpower-filters select {
	box-sizing: border-box;
	min-height: 38px;
	width: 100%;
}

.job-materials-manpower-filters button,
.job-materials-manpower-reset {
	align-items: center;
	display: inline-flex;
	gap: 6px;
	justify-content: center;
	min-height: 38px;
}

.job-materials-manpower-summary {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(5, minmax(135px, 1fr));
}

.job-materials-manpower-summary > span {
	background: #ffffff;
	border: solid #d9e0e5 1px;
	border-radius: 6px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .08);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 78px;
	padding: 12px 14px;
}

.job-materials-manpower-summary small {
	color: #626b73;
	font-size: 10px;
	font-weight: bold;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.job-materials-manpower-summary b {
	color: #243746;
	font-size: 22px;
	margin-top: 3px;
}

.job-materials-manpower-summary em {
	color: #626b73;
	font-size: 10px;
	font-style: normal;
	margin-top: 2px;
}

.job-materials-manpower-summary .job-materials-summary-risk {
	background: #fff3f3;
	border-color: #e1a4a9;
}

.job-materials-manpower-summary .job-materials-summary-risk b {
	color: #9b1c27;
}

.job-materials-report-heading {
	align-items: flex-start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-bottom: 12px;
}

.job-materials-report-heading h2 {
	margin-bottom: 2px;
}

.job-materials-report-heading > div > span {
	color: #626b73;
	font-size: 11px;
}

.job-materials-risk-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	justify-content: flex-end;
}

.job-materials-risk-badge {
	border-radius: 11px;
	display: inline-block;
	font-size: 10px;
	font-weight: bold;
	padding: 4px 8px;
	white-space: nowrap;
}

.job-materials-risk-at-risk {
	background: #b02a37;
	color: #ffffff;
}

.job-materials-risk-review {
	background: #ffd43b;
	color: #4b3b00;
}

.job-materials-risk-ready {
	background: #198754;
	color: #ffffff;
}

.job-materials-manpower-table {
	font-size: 11px;
	min-width: 1780px;
}

.job-materials-manpower-table td {
	vertical-align: top;
}

.job-materials-manpower-table td > small,
.job-materials-manpower-table td > b + small,
.job-materials-manpower-table td small {
	display: block;
	font-size: 10px;
	line-height: 1.35;
	margin-top: 3px;
}

.job-materials-manpower-table td:nth-child(1) {
	min-width: 88px;
}

.job-materials-manpower-table td:nth-child(2),
.job-materials-manpower-table td:nth-child(3) {
	min-width: 145px;
}

.job-materials-manpower-table td:nth-child(4) {
	min-width: 310px;
}

.job-materials-manpower-table td:nth-child(5) {
	min-width: 170px;
}

.job-materials-manpower-table td:nth-child(6) {
	min-width: 285px;
}

.job-materials-manpower-table td:nth-child(7),
.job-materials-manpower-table td:nth-child(8) {
	min-width: 180px;
}

.job-materials-manpower-table td:nth-child(9) {
	min-width: 275px;
}

.job-materials-month-hours {
	min-width: 280px;
}

.job-materials-manpower-total {
	align-items: center;
	border-bottom: solid #d9e0e5 1px;
	display: flex;
	justify-content: space-between;
	margin-bottom: 6px;
	padding-bottom: 5px;
}

.job-materials-manpower-total span {
	font-size: 10px;
	font-weight: bold;
	text-transform: uppercase;
}

.job-materials-manpower-total b {
	color: #0b69b7;
	font-size: 14px;
}

.job-materials-manpower-bars {
	display: grid;
	gap: 4px;
}

.job-materials-manpower-bar-row {
	align-items: center;
	display: grid;
	gap: 6px;
	grid-template-columns: 55px minmax(135px, 1fr) 54px;
}

.job-materials-manpower-bar-row > span {
	font-size: 9px;
	white-space: nowrap;
}

.job-materials-manpower-bar-row > i {
	background: #e4eaee;
	border-radius: 3px;
	display: block;
	height: 12px;
	overflow: hidden;
}

.job-materials-manpower-bar-row > i > em {
	background: #0b72c4;
	border-radius: 3px;
	display: block;
	height: 100%;
}

.job-materials-manpower-bar-row > b {
	font-size: 10px;
	text-align: right;
}

.job-materials-product-forms {
	display: grid;
	gap: 6px;
}

.job-materials-product-form {
	border: solid #d7dde2 1px;
	border-left-width: 4px;
	border-radius: 4px;
	padding: 6px 7px;
}

.job-materials-product-form > div {
	align-items: center;
	display: flex;
	gap: 8px;
	justify-content: space-between;
}

.job-materials-product-form-at-risk {
	background: #fff5f5;
	border-left-color: #b02a37;
}

.job-materials-product-form-review {
	background: #fffbea;
	border-left-color: #e1ad01;
}

.job-materials-product-form-ready {
	color: #0f6a3f;
	font-weight: bold;
	line-height: 1.4;
}

.job-materials-alert-text {
	color: #a51d2a;
	font-weight: bold;
}

.job-materials-muted {
	color: #747d85;
	font-style: italic;
}

.job-materials-risk-reasons ul {
	margin: 0;
	padding-left: 16px;
}

.job-materials-risk-reasons li + li {
	margin-top: 4px;
}

.job-materials-method-note {
	color: #555555;
	line-height: 1.5;
}

.job-materials-method-note h3 {
	margin-bottom: 5px;
}

.job-materials-warning {
	font-size: 12px;
	margin-bottom: 10px;
}

@media (max-width: 900px) {
	.job-materials-manpower-summary {
		grid-template-columns: repeat(2, minmax(145px, 1fr));
	}

	.job-materials-report-heading {
		flex-direction: column;
	}

	.job-materials-risk-legend {
		justify-content: flex-start;
	}
}

@media (max-width: 600px) {
	.job-materials-manpower-filters > div,
	.job-materials-manpower-filters button,
	.job-materials-manpower-reset {
		width: 100%;
	}

	.job-materials-manpower-summary {
		grid-template-columns: 1fr;
	}
}

@media print {
	.job-materials-manpower-filters {
		display: none;
	}

	.job-materials-manpower-summary,
	.job-materials-method-note {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.job-materials-manpower-table {
		font-size: 9px;
		min-width: 0;
	}
}

.material-purchasing-filters {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

.material-purchasing-filters > div {
	min-width: 170px;
}

.material-purchasing-filters label {
	display: block;
	font-size: 11px;
	font-weight: bold;
	margin-bottom: 4px;
}

.material-purchasing-filters input,
.material-purchasing-filters select {
	box-sizing: border-box;
	min-height: 38px;
	width: 100%;
}

.material-purchasing-filters button,
.material-purchasing-reset {
	align-items: center;
	display: inline-flex;
	gap: 6px;
	justify-content: center;
	min-height: 38px;
}

.material-purchasing-filters .material-purchasing-checkboxes {
	display: grid;
	gap: 7px;
	min-width: 230px;
}

.material-purchasing-filters .material-purchasing-checkboxes label {
	align-items: center;
	display: flex;
	font-size: 11px;
	font-weight: normal;
	gap: 7px;
	margin: 0;
	white-space: nowrap;
}

.material-purchasing-filters .material-purchasing-checkboxes input {
	flex: 0 0 auto;
	min-height: 0;
	width: auto;
}

.material-purchasing-summary {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(4, minmax(145px, 1fr));
}

.material-purchasing-summary > span {
	background: #ffffff;
	border: solid #d9e0e5 1px;
	border-radius: 6px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .08);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 78px;
	padding: 12px 14px;
}

.material-purchasing-summary small {
	color: #626b73;
	font-size: 10px;
	font-weight: bold;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.material-purchasing-summary b {
	color: #243746;
	font-size: 22px;
	margin-top: 3px;
}

.material-purchasing-report-heading {
	align-items: flex-start;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin-bottom: 12px;
}

.material-purchasing-report-heading h2 {
	margin-bottom: 2px;
}

.material-purchasing-report-heading span {
	color: #626b73;
	font-size: 11px;
}

.material-purchasing-table {
	font-size: 12px;
	min-width: 1120px;
}

.material-purchasing-table td {
	vertical-align: top;
}

.material-purchasing-table td small {
	color: #69727a;
	display: block;
	font-size: 10px;
	margin-top: 3px;
}

.material-purchasing-table td:nth-child(1) {
	min-width: 200px;
}

.material-purchasing-table td:nth-child(2) {
	min-width: 135px;
}

.material-purchasing-table td:nth-child(3) {
	min-width: 115px;
}

.material-purchasing-table td:nth-child(4),
.material-purchasing-table td:nth-child(5) {
	min-width: 105px;
}

.material-purchasing-table td:nth-child(6) {
	min-width: 220px;
}

.material-purchasing-table td:nth-child(7) {
	min-width: 125px;
}

.material-purchasing-sort-link {
	color: inherit;
	text-decoration: none;
}

.material-purchasing-sort-link:hover {
	text-decoration: underline;
}

.material-purchasing-jobs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.material-purchasing-jobs span {
	background: #e8f1f8;
	border-radius: 10px;
	color: #244a68;
	display: inline-block;
	font-size: 10px;
	font-weight: bold;
	padding: 3px 7px;
	white-space: nowrap;
}

.material-purchasing-jobs .material-purchasing-no-job {
	background: #f1f2f3;
	color: #6b7379;
	font-weight: normal;
}

.material-purchasing-pdf-link {
	align-items: center;
	display: inline-flex;
	gap: 5px;
	justify-content: center;
	white-space: nowrap;
}

.material-purchasing-pdf-link i {
	color: #b02a37;
}

.material-purchasing-combined-pdf {
	align-items: center;
	display: inline-flex;
	gap: 6px;
	justify-content: center;
	white-space: nowrap;
}

.material-purchasing-combined-pdf i {
	color: #b02a37;
}

.material-purchasing-combined-pdf-disabled {
	cursor: not-allowed;
	opacity: .55;
}

.material-purchasing-warning {
	font-size: 12px;
	margin-bottom: 10px;
}

@media (max-width: 900px) {
	.material-purchasing-summary {
		grid-template-columns: repeat(2, minmax(145px, 1fr));
	}

	.material-purchasing-report-heading {
		flex-direction: column;
	}
}

@media (max-width: 600px) {
	.material-purchasing-filters > div,
	.material-purchasing-filters button,
	.material-purchasing-reset {
		width: 100%;
	}

	.material-purchasing-filters .material-purchasing-checkboxes label {
		white-space: normal;
	}

	.material-purchasing-summary {
		grid-template-columns: 1fr;
	}
}

@media print {
	.material-purchasing-filters {
		display: none;
	}

	.material-purchasing-combined-pdf {
		display: none;
	}

	.material-purchasing-summary {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.material-purchasing-table {
		font-size: 9px;
		min-width: 0;
	}

	.material-purchasing-table th:last-child,
	.material-purchasing-table td:last-child {
		display: none;
	}
}

.job-review-filters {
	background: #eef3f7;
	border: solid #cccccc 1px;
	border-radius: 4px;
	margin-top: 14px;
	padding: 10px;
}

.job-review-filters label {
	display: block;
	font-size: 11px;
	font-weight: bold;
	margin-bottom: 3px;
}

.job-review-location-filter {
	max-width: 280px;
}

.job-review-location-filter select,
.job-review-job-input-grid input {
	box-sizing: border-box;
	width: 100%;
}

.job-review-job-filter-heading {
	margin-top: 10px;
}

.job-review-job-filter-heading b,
.job-review-job-filter-heading small {
	display: block;
}

.job-review-job-filter-heading small {
	color: #555555;
	font-size: 11px;
	margin-top: 2px;
}

.job-review-job-input-grid {
	display: grid;
	gap: 7px;
	grid-template-columns: repeat(5, minmax(130px, 1fr));
	margin-top: 7px;
}

.job-review-filter-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 10px;
}

.job-review-report-heading {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 12px;
}

.job-review-report-heading h2 {
	margin: 0;
}

.job-review-report-heading span {
	background: #eef3f7;
	border-radius: 12px;
	font-size: 12px;
	font-weight: bold;
	padding: 5px 9px;
}

.job-review-summary-panel h2,
.job-review-detail-section > h2 {
	margin-top: 0;
}

.job-review-summary-table {
	min-width: 1180px;
}

.job-review-summary-table th {
	text-align: center;
}

.job-review-summary-table td:first-child b,
.job-review-summary-table td:first-child small {
	display: block;
}

.job-review-summary-table td:first-child small {
	color: #555555;
	font-size: 10px;
	margin-top: 2px;
}

.job-review-rate-badge {
	border-radius: 12px;
	display: inline-block;
	font-size: 11px;
	font-weight: bold;
	min-width: 58px;
	padding: 3px 6px;
	text-align: center;
}

.job-review-rate-good {
	background: #d9f7d9;
	color: #245c24;
}

.job-review-rate-bad {
	background: #f8d7da;
	color: #842029;
}

.job-review-rate-neutral {
	background: #e9ecef;
	color: #555555;
}

.job-review-job-detail {
	margin-bottom: 8px;
	padding: 0;
}

.job-review-job-detail > summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	padding: 10px 12px;
}

.job-review-job-detail > summary span:first-child b,
.job-review-job-detail > summary span:first-child small {
	display: block;
}

.job-review-job-detail > summary span:first-child small {
	color: #555555;
	font-size: 11px;
	margin-top: 2px;
}

.job-review-job-detail[open] > summary {
	border-bottom: solid #cccccc 1px;
}

.job-review-job-detail > .table-scroll {
	padding: 10px;
}

.job-review-labor-table {
	min-width: 900px;
}

.job-review-labor-table td:first-child small {
	color: #66717a;
	display: block;
	font-size: 9px;
	margin-top: 2px;
	text-transform: uppercase;
}

.job-review-main-category-row {
	background: #eef3f7;
	font-weight: bold;
}

.job-review-subcategory-row {
	background: #ffffff;
}

.job-review-subcategory-name {
	display: inline-block;
	padding-left: 18px;
	position: relative;
}

.job-review-subcategory-name::before {
	color: #7a8791;
	content: "\21B3";
	left: 3px;
	position: absolute;
}

.job-review-hours-good {
	color: #245c24;
	font-weight: bold;
}

.job-review-hours-bad {
	color: #842029;
	font-weight: bold;
}

.manpower-comparison-bars.job-review-labor-bars {
	min-width: 170px;
}

.manpower-comparison-bars.job-review-labor-bars > div {
	gap: 5px;
	grid-template-columns: 42px minmax(100px, 1fr);
	margin-bottom: 3px;
}

.job-review-estimate-bar {
	background: #4f81bd;
}

.job-review-actual-within {
	background: #5ca65c;
}

.job-review-actual-over {
	background: #c0504d;
}

.job-review-empty-state {
	text-align: center;
}

.job-review-method-note {
	margin-top: 12px;
}

@media (max-width: 900px) {
	.job-review-job-input-grid {
		grid-template-columns: repeat(2, minmax(130px, 1fr));
	}
}

@media (max-width: 600px) {
	.job-review-job-input-grid {
		grid-template-columns: 1fr;
	}

	.job-review-location-filter,
	.job-review-filter-actions > * {
		width: 100%;
	}

	.job-review-report-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 7px;
	}
}

@media print {
	.job-review-filters {
		display: none;
	}

	.job-review-job-detail {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.job-review-summary-table,
	.job-review-labor-table {
		font-size: 8px;
		min-width: 0;
	}
}
