.memory-station {
	margin: var(--margin-md);
	max-width: 980px;
}

.memory-station.shipping-station {
	max-width: 1120px;
}

.memory-station .station-grid {
	display: grid;
	grid-template-columns: minmax(260px, 2fr) minmax(180px, 1fr);
	gap: var(--margin-md);
	align-items: end;
}

.memory-station label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.memory-station .actions {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	flex-wrap: wrap;
}

.unit-actions {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	flex-wrap: wrap;
}

.memory-station .station-panel {
	margin-top: 16px;
	padding: 16px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--fg-color);
}

.scan-workflow.is-locked {
	opacity: 0.58;
}

.scan-fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.scan-field {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 10px;
	position: relative;
	min-height: 132px;
	padding: 14px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--fg-color);
	color: var(--text-color);
	text-align: left;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.scan-field:hover {
	border-color: var(--gray-500);
	box-shadow: var(--shadow-sm);
	transform: translateY(-1px);
}

.scan-index {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	border-radius: 50%;
	background: var(--gray-100);
	font-weight: 700;
}

.scan-field-copy {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 5px;
}

.scan-field-copy strong {
	font-size: 14px;
}

.scan-field-copy small {
	min-height: 34px;
	color: var(--text-muted);
	line-height: 1.45;
}

.scan-value {
	display: -webkit-box;
	overflow: hidden;
	margin-top: auto;
	color: var(--text-muted);
	font-family: var(--font-stack-monospace);
	font-size: 11px;
	line-height: 1.4;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow-wrap: anywhere;
}

.scan-status {
	position: absolute;
	right: 10px;
	top: 10px;
	color: var(--text-muted);
	font-size: 10px;
}

.scan-field.is-complete {
	border-color: var(--green-400);
	background: var(--green-50);
}

.scan-field.is-complete .scan-index {
	background: var(--green-500);
	color: white;
}

.scan-field.is-complete .scan-status {
	color: var(--green-700);
	font-weight: 700;
}

.scan-guard {
	display: grid;
	visibility: hidden;
	position: fixed;
	z-index: 1100;
	inset: 0;
	padding: 24px;
	place-items: center;
	background: rgba(20, 24, 31, 0);
	opacity: 0;
	pointer-events: none;
	transition: background 110ms ease, opacity 110ms ease, visibility 110ms ease;
}

.scan-guard.is-visible {
	visibility: visible;
	background: rgba(20, 24, 31, 0.72);
	opacity: 1;
	pointer-events: auto;
	backdrop-filter: blur(5px);
}

.scan-guard.is-transitioning {
	visibility: visible;
}

.guard-input {
	position: fixed;
	width: 1px;
	height: 1px;
	left: -20px;
	top: -20px;
	opacity: 0;
}

.guard-card {
	position: relative;
	width: min(520px, 100%);
	padding: 24px 28px 28px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 8px;
	background: var(--fg-color);
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
	text-align: center;
	transform: translateY(12px) scale(0.98);
	transition: transform 110ms ease;
}

.scan-guard.is-visible .guard-card {
	transform: translateY(0) scale(1);
}

.guard-close {
	position: absolute;
	right: 12px;
	top: 10px;
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--text-muted);
	font-size: 24px;
	line-height: 1;
}

.guard-progress {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 6px;
	margin: 0 38px 28px;
}

.guard-progress.has-spd-step {
	grid-template-columns: repeat(4, 1fr);
}

.guard-progress.shipping-guard-progress {
	grid-template-columns: repeat(2, 1fr);
}

.guard-progress span {
	height: 4px;
	border-radius: 4px;
	background: var(--gray-200);
	transition: background 180ms ease;
}

.guard-progress span.is-current {
	background: var(--blue-500);
}

.guard-progress span.is-done {
	background: var(--green-500);
}

.scanner-visual {
	position: relative;
	width: 142px;
	height: 142px;
	margin: 0 auto 22px;
	border: 1px solid var(--gray-300);
	border-radius: 8px;
	background:
		linear-gradient(90deg, var(--gray-100) 1px, transparent 1px) 0 0 / 16px 16px,
		linear-gradient(var(--gray-100) 1px, transparent 1px) 0 0 / 16px 16px;
	overflow: hidden;
}

.scanner-corners::before,
.scanner-corners::after {
	content: "";
	position: absolute;
	inset: 10px;
	border: 3px solid var(--blue-500);
	border-top-color: transparent;
	border-bottom-color: transparent;
	border-radius: 6px;
}

.scanner-line {
	position: absolute;
	left: 12px;
	right: 12px;
	top: 14px;
	height: 2px;
	background: var(--blue-500);
	box-shadow: 0 0 12px var(--blue-500);
	animation: scanner-sweep 1.5s ease-in-out infinite alternate;
}

.scanner-success {
	display: grid;
	position: absolute;
	inset: 0;
	place-items: center;
	background: var(--green-500);
	color: white;
	font-size: 68px;
	font-weight: 300;
	opacity: 0;
	transform: scale(0.7);
	transition: opacity 90ms ease, transform 140ms ease;
}

.mobile-camera {
	display: none;
	margin: 0 auto 18px;
}

.mobile-camera-area {
	min-height: 240px;
	border-radius: 8px;
	background: #111;
	overflow: hidden;
}

.mobile-camera-area video {
	width: 100% !important;
	max-height: 50vh;
	object-fit: cover;
}

.mobile-camera-status {
	margin-top: 8px;
	color: var(--text-muted);
	font-size: 12px;
}

.scan-guard.is-success .scanner-success {
	opacity: 1;
	transform: scale(1);
}

.scan-guard.is-success .scanner-line {
	animation-play-state: paused;
}

.scan-guard.is-blocked .guard-card {
	border-color: var(--red-300);
}

.scan-guard.is-blocked .guard-kicker,
.scan-guard.is-blocked .guard-title {
	color: var(--red-600);
}

.scan-guard.is-blocked .guard-progress span.is-current {
	background: var(--red-500);
}

.scan-guard.is-blocked .scanner-corners::before,
.scan-guard.is-blocked .scanner-corners::after {
	border-left-color: var(--red-500);
	border-right-color: var(--red-500);
}

.scan-guard.is-blocked .scanner-line {
	background: var(--red-500);
	box-shadow: 0 0 14px var(--red-500);
	animation-duration: 0.38s;
}

.scan-guard.is-blocked .guard-preview {
	border-color: var(--red-200);
	background: var(--red-50);
	color: var(--red-700);
	font-family: var(--font-stack);
	font-weight: 600;
	text-align: left;
}

.guard-blocked-actions {
	display: none;
	justify-content: center;
	margin-top: 18px;
}

.scan-guard.is-blocked .guard-blocked-actions {
	display: flex;
}

.scan-guard.is-blocked .guard-close {
	display: none;
}

.guard-acknowledge {
	min-width: 128px;
}

.guard-kicker {
	margin-bottom: 6px;
	color: var(--blue-600);
	font-size: 11px;
	font-weight: 700;
}

.guard-title {
	margin: 0;
	font-size: 24px;
}

.guard-hint {
	margin: 10px 0 18px;
	color: var(--text-muted);
	line-height: 1.55;
}

.guard-preview {
	min-height: 42px;
	padding: 10px 12px;
	border: 1px dashed var(--border-color);
	border-radius: 6px;
	background: var(--subtle-fg);
	color: var(--text-muted);
	font-family: var(--font-stack-monospace);
	font-size: 12px;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.guard-preview.has-value {
	border-style: solid;
	color: var(--text-color);
}

.guard-skip {
	display: none;
	margin-top: 14px;
}

.spd-upload-panel {
	display: none;
	margin-top: 8px;
}

.spd-file-input {
	display: none;
}

.spd-upload-status {
	display: flex;
	min-height: 58px;
	margin-top: 12px;
	padding: 12px;
	border: 1px dashed var(--border-color);
	border-radius: 6px;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	background: var(--subtle-fg);
	color: var(--text-muted);
	font-size: 12px;
}

.spd-upload-status strong {
	color: var(--text-color);
}

.scan-guard.is-processing .scanner-line {
	animation-duration: 0.45s;
}

.scan-guard.uses-camera .scanner-visual {
	display: none;
}

.scan-guard.uses-camera .mobile-camera {
	display: block;
}

.scan-guard.uses-camera.is-success .mobile-camera {
	display: none;
}

.scan-guard.uses-camera.is-success .scanner-visual {
	display: block;
}

.guard-card.is-shaking {
	animation: guard-shake 360ms ease;
}

.shipping-warning {
	margin-top: 12px;
}

.shipping-warning-box {
	padding: 10px 12px;
	border: 1px solid var(--orange-300);
	border-radius: 8px;
	color: var(--orange-800);
	background: var(--orange-50);
	font-weight: 600;
}

.shipping-section {
	padding: 18px 0;
	border-bottom: 1px solid var(--border-color);
}

.shipping-section-head,
.shipping-table-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.shipping-section-head h3 {
	margin: 2px 0 0;
	font-size: 18px;
}

.shipping-kicker {
	color: var(--text-muted);
	font-size: 11px;
	font-weight: 700;
}

.shipping-count {
	padding: 6px 10px;
	border: 1px solid var(--border-color);
	border-radius: 6px;
	background: var(--fg-color);
	color: var(--text-muted);
	font-size: 12px;
}

.shipping-batch-summary {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px;
}

.shipping-customer-lock {
	padding: 6px 10px;
	border: 1px solid var(--green-200);
	border-radius: 6px;
	background: var(--green-50);
	color: var(--green-700);
	font-size: 12px;
	font-weight: 700;
}

.shipping-customer-lock.is-empty {
	border-color: var(--border-color);
	background: var(--fg-color);
	color: var(--text-muted);
	font-weight: 600;
}

.memory-station.shipping-station .shipping-batch-grid {
	grid-template-columns: minmax(220px, 1fr) minmax(240px, 1fr) minmax(320px, 2fr);
}

.shipping-batch-grid .span-2 {
	grid-column: span 1;
}

.shipping-batch-placeholder {
	display: flex;
	align-items: center;
	min-height: 38px;
	padding: 6px 10px;
	border: 1px solid var(--border-color);
	border-radius: 6px;
	background: var(--subtle-fg);
	color: var(--text-muted);
	font-weight: 600;
}

.memory-station.shipping-station .shipping-scan-fields {
	grid-template-columns: repeat(2, minmax(240px, 1fr));
}

.shipping-pending-table {
	display: grid;
	gap: 8px;
}

.shipping-pending-row {
	display: grid;
	grid-template-columns: 34px minmax(180px, 1.4fr) minmax(220px, 1.6fr) minmax(140px, 1fr) 64px;
	gap: 10px;
	align-items: center;
	padding: 10px 12px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--control-bg);
}

.shipping-pending-row.has-warning {
	border-color: var(--orange-300);
	background: var(--orange-50);
}

.shipping-pending-index {
	display: grid;
	width: 26px;
	height: 26px;
	place-items: center;
	border-radius: 50%;
	background: var(--gray-100);
	font-weight: 700;
}

.shipping-pending-main,
.shipping-pending-label {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 3px;
}

.shipping-pending-main span,
.shipping-pending-label span,
.shipping-pending-meta {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shipping-pending-label small {
	color: var(--text-muted);
}

.diode-identifier-row {
	display: flex;
	gap: 8px;
	align-items: center;
}

.diode-identifier-row .diode-identifier-input {
	min-width: 0;
	flex: 1 1 auto;
}

.diode-camera-scan-btn {
	display: none;
	width: 40px;
	height: 38px;
	padding: 0;
	flex: 0 0 40px;
	align-items: center;
	justify-content: center;
}

.diode-mobile-sync-row {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 8px;
	min-height: 24px;
}

.diode-mobile-sync-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-weight: 500;
	cursor: pointer;
	user-select: none;
}

.diode-mobile-sync-toggle input {
	margin: 0;
}

.diode-mobile-sync-status {
	font-size: 12px;
	line-height: 1.4;
}

.diode-mobile-sync-mobile-panel {
	display: none;
}

.diode-mobile-sync-mobile-panel:not(.hidden) {
	display: block;
}

.diode-mobile-sync-mobile-head {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	align-items: flex-start;
	margin-bottom: 12px;
}

.diode-mobile-sync-mobile-title {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}

.diode-mobile-sync-mobile-subtitle {
	margin-top: 3px;
	font-size: 13px;
	line-height: 1.4;
}

.diode-mobile-sync-code {
	flex: 0 0 auto;
}

.diode-mobile-sync-camera-area {
	overflow: hidden;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: #05070a;
}

.diode-mobile-sync-camera-feed {
	min-height: 280px;
}

.diode-mobile-sync-camera-feed video,
.diode-mobile-sync-camera-feed canvas {
	width: 100% !important;
	max-width: 100% !important;
}

.diode-mobile-sync-mobile-actions {
	display: flex;
	gap: 8px;
	margin-top: 12px;
	flex-wrap: wrap;
}

.diode-mobile-sync-mobile-status {
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.4;
}

.memory-station .unit-headline {
	display: flex;
	gap: 10px;
	align-items: center;
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 10px;
}

.memory-station .unit-details {
	display: grid;
	grid-template-columns: repeat(2, minmax(160px, 1fr));
	gap: 8px 18px;
}

.memory-station .entry-form {
	margin-top: 16px;
	display: grid;
	grid-template-columns: repeat(2, minmax(180px, 1fr));
	gap: 12px 16px;
}

.memory-station .entry-form .span-2 {
	grid-column: 1 / -1;
}

.memory-station .is-input-shaking {
	animation: memory-input-shake 360ms ease;
	border-color: var(--orange-500);
	box-shadow: 0 0 0 2px rgba(240, 139, 0, 0.14);
}

/* Diagnosis task dispatch: existing ATEx evidence in, repair task out. */
.diagnosis-dispatch {
	--diagnosis-ink: #202629;
	--diagnosis-muted: #69747a;
	--diagnosis-line: #d9dfe2;
	--diagnosis-paper: #fff;
	--diagnosis-canvas: #f3f5f6;
	--diagnosis-amber: #ad6a14;
	--diagnosis-amber-soft: #fff5e6;
	display: grid;
	max-width: 1440px;
	gap: 14px;
	margin: var(--margin-md);
	color: var(--diagnosis-ink);
}

.diagnosis-dispatch-scan,
.diagnosis-dispatch-profile,
.diagnosis-dispatch-source {
	border: 1px solid var(--diagnosis-line);
	border-radius: 12px;
	background: var(--diagnosis-paper);
}

.diagnosis-dispatch-scan {
	display: grid;
	grid-template-columns: minmax(0, 760px) minmax(180px, 1fr);
	align-items: end;
	gap: 7px 18px;
	padding: 14px 16px;
}

.diagnosis-dispatch-scan > label {
	grid-column: 1;
	margin: 0;
	color: var(--diagnosis-ink);
	font-size: 13px;
	font-weight: 800;
}

.diagnosis-dispatch-scan-row {
	display: grid;
	grid-column: 1;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 8px;
}

.diagnosis-dispatch-scan-status {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: center;
	overflow: hidden;
	font-size: 12px;
	line-height: 1.45;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.diagnosis-dispatch-stage {
	display: grid;
	gap: 14px;
	min-width: 0;
}

.diagnosis-dispatch-loading,
.diagnosis-dispatch-empty {
	display: grid;
	min-height: 190px;
	place-content: center;
	gap: 7px;
	padding: 24px;
	border: 1px dashed #cbd2d6;
	border-radius: 12px;
	background: var(--diagnosis-canvas);
	color: var(--diagnosis-muted);
	text-align: center;
}

.diagnosis-dispatch-loading strong,
.diagnosis-dispatch-empty strong {
	color: var(--diagnosis-ink);
	font-size: 18px;
}

.diagnosis-dispatch-empty.is-error {
	border-color: #efb4ae;
	background: #fff7f6;
}

.diagnosis-dispatch-empty.is-record-empty .btn {
	justify-self: center;
	margin-top: 8px;
}

.diagnosis-dispatch-profile {
	padding: 17px 18px;
}

.diagnosis-dispatch-profile-head,
.diagnosis-dispatch-section-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
}

.diagnosis-dispatch-kicker {
	margin-bottom: 2px;
	color: var(--diagnosis-muted);
	font-size: 13px;
	font-weight: 650;
}

.diagnosis-dispatch-title {
	display: block;
	color: var(--diagnosis-ink);
	font-size: clamp(21px, 2.2vw, 28px);
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.diagnosis-dispatch-record-count {
	flex: 0 0 auto;
	padding: 5px 9px;
	border: 1px solid var(--diagnosis-line);
	border-radius: 999px;
	background: var(--diagnosis-canvas);
	color: var(--diagnosis-muted);
	font-size: 13px;
	font-weight: 650;
}

.diagnosis-dispatch-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(180px, 1fr));
	gap: 7px 22px;
	margin-top: 13px;
	padding-top: 12px;
	border-top: 1px solid var(--diagnosis-line);
}

.diagnosis-dispatch-fact {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	align-items: baseline;
	gap: 7px;
	min-width: 0;
	font-size: 14px;
}

.diagnosis-dispatch-fact > span {
	color: var(--diagnosis-muted);
	font-size: 13px;
}

.diagnosis-dispatch-fact > strong {
	min-width: 0;
	color: var(--diagnosis-ink);
	font-weight: 700;
	overflow-wrap: anywhere;
}

.diagnosis-dispatch-fact.is-serial > strong {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: 13px;
	letter-spacing: 0.01em;
}

.diagnosis-dispatch-source {
	padding: 14px 16px 16px;
}

.diagnosis-dispatch-section-head {
	align-items: baseline;
}

.diagnosis-dispatch-section-head h3 {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
}

.diagnosis-dispatch-section-head > span {
	color: var(--diagnosis-muted);
	font-size: 13px;
}

.diagnosis-dispatch-records {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 8px;
	margin-top: 11px;
}

.diagnosis-dispatch-record {
	display: grid;
	grid-template-columns: minmax(62px, auto) auto minmax(0, 1fr);
	align-items: center;
	gap: 5px 10px;
	min-width: 0;
	padding: 10px 11px;
	border: 1px solid var(--diagnosis-line);
	border-radius: 9px;
	background: #fafbfb;
	color: var(--diagnosis-ink);
	text-align: left;
	transition: border-color 140ms ease, background-color 140ms ease;
}

.diagnosis-dispatch-record:hover {
	border-color: #aeb7bc;
	background: #fff;
}

.diagnosis-dispatch-record.is-selected {
	border-color: var(--diagnosis-amber);
	background: var(--diagnosis-amber-soft);
	box-shadow: inset 3px 0 0 var(--diagnosis-amber);
}

.diagnosis-dispatch-record-attempt {
	font-size: 15px;
	font-weight: 700;
}

.diagnosis-dispatch-record time {
	justify-self: end;
	color: var(--diagnosis-muted);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.diagnosis-dispatch-record code {
	grid-column: 1 / -1;
	overflow: hidden;
	color: var(--diagnosis-muted);
	font-size: 13px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.diagnosis-dispatch-composer {
	margin: 0;
}

.diagnosis-dispatch-source-chip {
	display: grid;
	justify-items: end;
	gap: 1px;
	min-width: 0;
}

.diagnosis-dispatch-source-chip span {
	color: var(--diagnosis-muted);
	font-size: 10px;
	font-weight: 700;
}

.diagnosis-dispatch-source-chip strong {
	max-width: 280px;
	overflow: hidden;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.diagnosis-dispatch .diagnosis-repair-board-mount {
	min-height: 330px;
}

.diagnosis-dispatch :where(button, input, textarea):focus-visible {
	outline: 3px solid rgba(173, 106, 20, 0.34);
	outline-offset: 2px;
}

@media (max-width: 900px) {
	.diagnosis-dispatch-scan {
		grid-template-columns: 1fr;
	}

	.diagnosis-dispatch-scan-status {
		grid-column: 1;
		grid-row: auto;
		text-align: left;
	}

	.diagnosis-dispatch-facts {
		grid-template-columns: repeat(2, minmax(150px, 1fr));
	}

	.diagnosis-dispatch-records {
		grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	}
}

@media (max-width: 560px) {
	.diagnosis-dispatch {
		margin: 10px;
	}

	.diagnosis-dispatch-scan-row {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.diagnosis-dispatch-clear {
		grid-column: 1 / -1;
	}

	.diagnosis-dispatch-profile-head,
	.diagnosis-dispatch-section-head {
		align-items: flex-start;
		flex-direction: column;
		gap: 7px;
	}

	.diagnosis-dispatch-facts {
		grid-template-columns: 1fr;
	}

	.diagnosis-dispatch-records {
		grid-template-columns: 1fr;
	}

	.diagnosis-dispatch-source-chip {
		justify-items: start;
	}
}

.diagnosis-history-page {
	margin: var(--margin-md);
}

.diagnosis-history-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 520px);
	gap: var(--margin-md);
	align-items: end;
	margin-bottom: var(--margin-md);
}

.diagnosis-history-search label,
.diagnosis-history-section-title {
	display: block;
	margin-bottom: 6px;
	font-weight: 700;
	color: var(--heading-color);
}

.diagnosis-history-search-row {
	display: flex;
	gap: 8px;
}

.diagnosis-history-search-row .form-control {
	min-width: 0;
}

.diagnosis-history-layout {
	display: grid;
	grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
	gap: var(--margin-md);
	align-items: start;
}

.diagnosis-history-units,
.diagnosis-history-main {
	min-width: 0;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--fg-color);
}

.diagnosis-history-units {
	padding: 12px;
}

.diagnosis-history-main {
	padding: 14px;
}

.diagnosis-history-unit-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.diagnosis-history-unit-row,
.diagnosis-attempt-row {
	width: 100%;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--control-bg);
	color: var(--text-color);
	text-align: left;
	cursor: pointer;
}

.diagnosis-history-unit-row {
	padding: 10px;
}

.diagnosis-history-unit-row:hover,
.diagnosis-history-unit-row.is-selected,
.diagnosis-attempt-row:hover,
.diagnosis-attempt-row.is-selected {
	border-color: var(--primary);
	background: var(--fg-color);
}

.diagnosis-history-unit-top,
.diagnosis-attempt-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-width: 0;
}

.diagnosis-history-unit-name,
.diagnosis-attempt-number,
.diagnosis-history-profile-title {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 700;
}

.diagnosis-attempt-sub {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin-top: 5px;
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.4;
}

.diagnosis-history-unit-count {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 8px;
	border: 1px solid var(--border-color);
	border-radius: 999px;
	background: var(--bg-light-gray);
	color: var(--text-color);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	white-space: nowrap;
}

.diagnosis-history-unit-time {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 3px 7px;
	margin-top: 6px;
	color: var(--text-muted);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
	line-height: 1.45;
}

.diagnosis-history-unit-time-point {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
	white-space: nowrap;
}

.diagnosis-history-unit-time-point b {
	color: var(--text-light);
	font-size: 11px;
	font-weight: 600;
}

.diagnosis-history-unit-time-arrow {
	color: var(--primary);
	font-weight: 800;
}

.diagnosis-history-unit-facts {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 4px;
	margin-top: 7px;
	padding-top: 7px;
	border-top: 1px solid var(--border-color);
}

.diagnosis-history-unit-fact {
	min-width: 0;
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	align-items: baseline;
	gap: 5px;
	font-size: 12px;
	line-height: 1.4;
}

.diagnosis-history-unit-fact-label {
	flex: 0 0 auto;
	color: var(--text-light);
	font-size: 11px;
}

.diagnosis-history-unit-fact-value {
	min-width: 0;
	color: var(--text-color);
	font-weight: 600;
	overflow-wrap: anywhere;
}

.diagnosis-history-unit-fact.is-serial .diagnosis-history-unit-fact-value {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: 11px;
	letter-spacing: 0.01em;
	overflow: hidden;
	overflow-wrap: normal;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.diagnosis-history-profile {
	padding-bottom: 12px;
	border-bottom: 1px solid var(--border-color);
}

.diagnosis-history-profile-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	min-width: 0;
}

.diagnosis-history-profile-title {
	flex: 1 1 auto;
	font-size: 18px;
	line-height: 1.35;
}

.diagnosis-history-profile-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 5px 20px;
	margin-top: 9px;
}

.diagnosis-history-count {
	flex: 0 0 auto;
	color: var(--text-muted);
	font-weight: 600;
}

.diagnosis-history-attempts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 8px;
	margin-top: 12px;
}

.diagnosis-attempt-row {
	padding: 10px 12px;
}

.diagnosis-attempt-time {
	color: var(--text-muted);
	font-size: 12px;
}

.diagnosis-result-pill {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	padding: 2px 7px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
}

.diagnosis-result-pill.is-pass {
	background: #e6f4ea;
	color: #137333;
}

.diagnosis-result-pill.is-fail {
	background: #fce8e6;
	color: #a50e0e;
}

.diagnosis-result-pill.is-warn {
	background: #fef7e0;
	color: #a15c00;
}

.diagnosis-result-pill.is-unknown {
	background: var(--bg-light-gray);
	color: var(--text-muted);
}

.diagnosis-history-log-panel {
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid var(--border-color);
}

.diagnosis-record-action-row {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 10px;
}

.diagnosis-repair-dispatch {
	--dispatch-amber: #c67912;
	--dispatch-amber-dark: #8a5208;
	--dispatch-amber-soft: #fff4df;
	--dispatch-ink: #202426;
	--dispatch-muted: #59646a;
	margin: 10px 0 16px;
	overflow: hidden;
	border: 1px solid #cfd5d8;
	border-radius: 8px;
	background: #fff;
	color: var(--dispatch-ink);
}

.diagnosis-repair-dispatch[hidden] {
	display: none;
}

.diagnosis-repair-dispatch-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 14px 16px;
	border-bottom: 1px solid #e2e6e8;
}

.diagnosis-repair-dispatch-head h3 {
	margin: 0;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.3;
}

.diagnosis-repair-dispatch-head p {
	margin: 3px 0 0;
	color: var(--dispatch-muted);
	font-size: 14px;
	line-height: 1.5;
}

.diagnosis-repair-source-summary {
	display: grid;
	grid-template-columns: auto auto;
	align-items: center;
	gap: 2px 10px;
	min-width: 250px;
	padding-left: 16px;
	border-left: 1px solid #dfe3e5;
}

.diagnosis-repair-source-summary > span:first-child {
	color: var(--dispatch-muted);
	font-size: 13px;
}

.diagnosis-repair-source-summary > strong {
	font-size: 15px;
	font-weight: 700;
}

.diagnosis-repair-source-summary > code {
	grid-column: 1 / -1;
	color: var(--dispatch-muted);
	font-size: 13px;
}

.diagnosis-repair-source-summary .diagnosis-result-pill {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
}

.diagnosis-repair-existing {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 8px 14px;
	align-items: center;
	margin: 0 0 14px;
	padding: 10px 12px;
	border: 1px solid #99d5cd;
	border-left: 4px solid #0f766e;
	border-radius: 8px;
	background: #f0fdfa;
	color: #134e4a;
}

.diagnosis-repair-existing span {
	overflow: hidden;
	color: #3f625f;
	font-family: var(--font-monospace);
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.diagnosis-repair-mode-switch {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
}

.diagnosis-repair-mode-option {
	min-width: 0;
	padding: 9px 8px;
	border: 1px solid #ccd3d6;
	border-radius: 6px;
	background: #fff;
	color: var(--dispatch-ink);
	text-align: center;
	transition:
		border-color 150ms ease,
		box-shadow 150ms ease,
		background-color 150ms ease;
}

.diagnosis-repair-mode-option strong {
	font-size: 15px;
	font-weight: 700;
	white-space: nowrap;
}

.diagnosis-repair-mode-option:hover:not(:disabled) {
	border-color: #9ca8ad;
}

.diagnosis-repair-mode-option.is-selected {
	border-color: var(--dispatch-amber-dark);
	background: var(--dispatch-amber-soft);
	box-shadow: inset 0 -3px 0 var(--dispatch-amber);
}

.diagnosis-repair-mode-option:disabled {
	cursor: not-allowed;
	opacity: 0.48;
}

.diagnosis-repair-dispatch-meta {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 9px 20px;
	border-bottom: 1px solid #e2e6e8;
	background: #f7f8f8;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
}

.diagnosis-repair-dispatch-meta span {
	color: var(--dispatch-muted);
}

.diagnosis-repair-dispatch-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(270px, 310px);
	gap: 16px;
	padding: 14px 16px 16px;
}

.diagnosis-repair-dispatch-fields {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-left: 16px;
	border-left: 1px solid #e1e5e7;
}

.diagnosis-repair-settings-type {
	display: grid;
	gap: 7px;
	padding-bottom: 14px;
	border-bottom: 1px solid #e1e5e7;
}

.diagnosis-repair-settings-type > span {
	color: var(--dispatch-muted);
	font-size: 14px;
	font-weight: 650;
}

.diagnosis-repair-mode-help {
	min-height: 36px;
	color: var(--dispatch-muted);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
}

.diagnosis-repair-dispatch-fields > label:not(.diagnosis-repair-unspecified) {
	display: grid;
	gap: 6px;
	margin: 0;
}

.diagnosis-repair-dispatch-fields > label > span {
	color: var(--dispatch-muted);
	font-size: 14px;
	font-weight: 650;
}

.diagnosis-repair-note-input {
	min-height: 68px;
	resize: vertical;
	font-size: 14px;
}

.diagnosis-repair-note-field small {
	color: var(--dispatch-muted);
	font-size: 13px;
	font-weight: 400;
}

.diagnosis-repair-unspecified {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 12px;
	border: 1px solid #d9dee1;
	border-radius: 6px;
	background: #f6f7f8;
	cursor: pointer;
}

.diagnosis-repair-unspecified input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	accent-color: var(--dispatch-amber-dark);
}

.diagnosis-repair-unspecified span {
	display: grid;
	gap: 2px;
}

.diagnosis-repair-unspecified strong {
	color: var(--dispatch-ink);
	font-size: 15px;
}

.diagnosis-repair-unspecified small {
	color: var(--dispatch-muted);
	font-size: 13px;
	line-height: 1.4;
}

.diagnosis-repair-region-controls,
.diagnosis-repair-component-controls {
	display: grid;
	gap: 14px;
}

.diagnosis-repair-region-controls[hidden],
.diagnosis-repair-component-controls[hidden] {
	display: none;
}

.diagnosis-repair-region-tools {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.diagnosis-repair-component-target {
	display: grid;
	gap: 3px;
	padding: 13px;
	border: 1px solid #c8cfd3;
	border-left: 4px solid var(--dispatch-amber);
	border-radius: 6px;
	background: #fff;
}

.diagnosis-repair-component-target > span,
.diagnosis-repair-component-operation > span {
	color: var(--dispatch-muted);
	font-size: 14px;
	font-weight: 650;
}

.diagnosis-repair-component-name {
	margin-top: 3px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 24px;
	font-weight: 750;
}

.diagnosis-repair-component-meta {
	color: var(--dispatch-muted);
	font-size: 14px;
	line-height: 1.45;
}

.diagnosis-repair-component-operation {
	display: grid;
	gap: 7px;
}

.diagnosis-repair-operation-options {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.diagnosis-repair-operation-option {
	display: grid;
	gap: 2px;
	min-height: 64px;
	padding: 10px;
	border: 1px solid #cfd6d9;
	border-radius: 6px;
	background: #fff;
	color: var(--dispatch-ink);
	text-align: left;
}

.diagnosis-repair-operation-option strong {
	font-size: 16px;
	font-weight: 700;
}

.diagnosis-repair-operation-option span {
	color: var(--dispatch-muted);
	font-size: 13px;
	line-height: 1.3;
}

.diagnosis-repair-operation-option.is-replace.is-selected {
	border-color: #bb4141;
	background: #fff0f0;
	box-shadow: inset 3px 0 0 #bb4141;
}

.diagnosis-repair-operation-option.is-replant.is-selected {
	border-color: #b8641d;
	background: #fff3e4;
	box-shadow: inset 3px 0 0 #b8641d;
}

.diagnosis-repair-board-panel {
	position: relative;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #d8dde0;
	border-radius: 6px;
	background: #f3f5f6;
	transition: border-color 150ms ease, opacity 150ms ease;
}

.diagnosis-repair-board-panel.is-disabled {
	opacity: 0.58;
}

.diagnosis-repair-board-panel.is-attention {
	border-color: var(--dispatch-amber);
	animation: diagnosis-repair-attention 440ms ease;
}

.diagnosis-repair-board-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 12px;
	border-bottom: 1px solid #d8dde0;
	background: rgba(255, 255, 255, 0.9);
}

.diagnosis-repair-board-head > div {
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.diagnosis-repair-board-head span {
	color: var(--dispatch-muted);
	font-size: 14px;
}

.diagnosis-repair-board-head strong {
	font-size: 16px;
}

.diagnosis-repair-selection-count {
	flex: 0 0 auto;
	padding: 3px 8px;
	border: 1px solid rgba(156, 91, 13, 0.3);
	border-radius: 5px;
	background: var(--dispatch-amber-soft);
	color: var(--dispatch-amber-dark) !important;
	font-weight: 800;
}

.diagnosis-repair-board-mount {
	min-height: 280px;
	padding: 12px;
}

.diagnosis-repair-board-mount .rdimm-svg {
	display: block;
	width: 100%;
	height: auto;
	touch-action: none;
}

.diagnosis-repair-board-mount .rdimm-svg.is-repair-region-selector {
	cursor: crosshair;
}

.diagnosis-repair-dispatch[data-dispatch-mode="component"]
	.diagnosis-repair-board-mount
	.rdimm-part.is-dispatch-selected
	.rdimm-shape {
	stroke: var(--dispatch-amber);
	stroke-width: 4px;
	filter: none;
}

.diagnosis-repair-dispatch[data-dispatch-mode="component"]
	.diagnosis-repair-board-mount
	.rdimm-part.is-dispatch-selected
	text {
	fill: #fff;
}

.diagnosis-repair-board-panel.is-disabled .rdimm-svg {
	cursor: not-allowed;
}

.diagnosis-repair-region-box {
	fill: rgba(231, 165, 57, 0.22);
	stroke: #ad6a14;
	stroke-width: 2.4px;
	vector-effect: non-scaling-stroke;
}

.diagnosis-repair-region.is-preview .diagnosis-repair-region-box {
	fill: rgba(231, 165, 57, 0.12);
	stroke-dasharray: 6 4;
}

.diagnosis-repair-region-badge circle {
	fill: #202426;
	stroke: #fff;
	stroke-width: 1.2px;
	vector-effect: non-scaling-stroke;
}

.diagnosis-repair-region-badge text {
	fill: #fff;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 7px;
	font-weight: 900;
	pointer-events: none;
}

.diagnosis-repair-board-empty {
	position: absolute;
	z-index: 2;
	inset: 43px 0 0;
	display: grid;
	place-content: center;
	gap: 5px;
	padding: 18px;
	background: rgba(243, 245, 246, 0.96);
	color: var(--dispatch-muted);
	text-align: center;
}

.diagnosis-repair-board-empty[hidden] {
	display: none;
}

.diagnosis-repair-board-empty strong {
	color: var(--dispatch-ink);
	font-size: 18px;
}

.diagnosis-repair-dispatch-footer {
	position: sticky;
	z-index: 4;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 11px 16px;
	border-top: 1px solid #e2e6e8;
	background: rgba(255, 255, 255, 0.97);
	box-shadow: 0 -4px 12px rgba(31, 36, 38, 0.06);
}

.diagnosis-repair-dispatch-status {
	color: var(--dispatch-muted);
	font-size: 15px;
	line-height: 1.4;
}

.diagnosis-repair-dispatch-footer-actions {
	display: flex;
	flex: 0 0 auto;
	gap: 8px;
}

.diagnosis-repair-dispatch-submit {
	min-height: 40px;
	padding-inline: 18px;
	font-size: 15px;
	font-weight: 650;
}

.diagnosis-repair-dispatch-loading,
.diagnosis-repair-dispatch-error {
	display: grid;
	min-height: 150px;
	place-content: center;
	gap: 9px;
	padding: 20px;
	color: var(--dispatch-muted);
	text-align: center;
}

.diagnosis-repair-dispatch-spinner {
	width: 24px;
	height: 24px;
	margin: 0 auto;
	border: 3px solid #d9dee1;
	border-top-color: var(--dispatch-amber-dark);
	border-radius: 50%;
	animation: diagnosis-repair-spin 700ms linear infinite;
}

.diagnosis-repair-dispatch :where(button, input, textarea):focus-visible,
.diagnosis-repair-dispatch-trigger:focus-visible {
	outline: 3px solid rgba(217, 149, 40, 0.36);
	outline-offset: 2px;
}

@keyframes diagnosis-repair-spin {
	to { transform: rotate(360deg); }
}

@keyframes diagnosis-repair-attention {
	25% { transform: translateX(-4px); }
	75% { transform: translateX(4px); }
}

.diagnosis-log-tabs {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin: 8px 0;
}

.diagnosis-log-tab {
	border: 1px solid var(--border-color);
	border-radius: 6px;
	background: var(--control-bg);
	padding: 5px 9px;
	color: var(--text-color);
	font-size: 12px;
	line-height: 1.4;
}

.diagnosis-log-tab.is-selected {
	border-color: var(--primary);
	background: var(--primary);
	color: #fff;
}

.diagnosis-native-visualization {
	margin: 10px 0;
}

.diagnosis-native-visualization[hidden] {
	display: none;
}

.diagnosis-native-card {
	overflow: hidden;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--fg-color);
}

.diagnosis-native-card-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
	padding: 13px 14px 11px;
	border-bottom: 1px solid var(--border-color);
}

.diagnosis-native-eyebrow {
	margin-bottom: 3px;
	color: var(--text-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-transform: uppercase;
}

.diagnosis-native-card-title,
.diagnosis-native-notice-title {
	color: var(--heading-color);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
}

.diagnosis-native-notice-text,
.diagnosis-native-detected {
	margin-top: 4px;
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.5;
}

.diagnosis-native-status {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 3px 9px;
	border: 1px solid var(--border-color);
	border-radius: 999px;
	background: var(--control-bg);
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
}

.diagnosis-native-status.is-fail {
	border-color: rgba(220, 38, 38, 0.28);
	background: rgba(220, 38, 38, 0.1);
	color: #b91c1c;
}

.diagnosis-native-board-shell {
	padding: 12px 14px;
	background: #f4f6f7;
}

.diagnosis-native-board-mount {
	max-width: 760px;
	margin: 0 auto;
}

.diagnosis-native-board-mount .rdimm-svg {
	width: 100%;
	height: auto;
}

.diagnosis-native-render-error {
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.5;
}

.diagnosis-native-render-error {
	padding: 28px 16px;
	text-align: center;
}

.diagnosis-native-notice {
	padding: 15px 16px;
	border-left: 4px solid var(--border-color);
}

.diagnosis-native-notice.is-danger {
	border-left-color: #dc2626;
	background: rgba(220, 38, 38, 0.04);
}

.diagnosis-native-notice.is-danger .diagnosis-native-notice-title {
	color: #b91c1c;
}

.diagnosis-log-content {
	box-sizing: border-box;
	width: 100%;
	max-height: min(52vh, 620px);
	margin: 0;
	padding: 12px;
	overflow: auto;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: #0b1020;
	color: #d7e3ff;
	font-family: var(--font-stack-monospace);
	font-size: 12px;
	line-height: 1.5;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

.diagnosis-history-empty,
.diagnosis-history-loading {
	padding: 18px;
	text-align: center;
}

@keyframes memory-input-shake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-6px); }
	75% { transform: translateX(6px); }
}

@keyframes scanner-sweep {
	from { transform: translateY(0); }
	to { transform: translateY(112px); }
}

@keyframes guard-shake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-8px); }
	75% { transform: translateX(8px); }
}

@media (max-width: 800px) {
	.scan-fields {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.memory-station .station-grid,
	.memory-station .unit-details,
	.memory-station .entry-form,
	.diagnosis-history-toolbar,
	.diagnosis-history-layout {
		grid-template-columns: 1fr;
	}

	.diagnosis-native-card-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.diagnosis-native-board-shell {
		padding: 8px;
	}

	.diagnosis-repair-dispatch-head,
	.diagnosis-repair-dispatch-footer {
		align-items: stretch;
		flex-direction: column;
	}

	.diagnosis-repair-dispatch-layout {
		grid-template-columns: 1fr;
		padding: 14px;
	}

	.diagnosis-repair-dispatch-fields {
		padding-left: 0;
		border-left: 0;
	}

	.diagnosis-repair-source-summary {
		width: 100%;
		min-width: 0;
		padding-top: 10px;
		padding-left: 0;
		border-top: 1px solid #dfe3e5;
		border-left: 0;
	}

	.diagnosis-repair-dispatch-footer-actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.memory-station.shipping-station .shipping-batch-grid,
	.memory-station.shipping-station .shipping-scan-fields {
		grid-template-columns: 1fr;
	}

	.scan-guard {
		padding: 12px;
	}

	.guard-card {
		max-height: calc(100vh - 24px);
		padding: 20px 16px 22px;
		overflow-y: auto;
	}

	.shipping-section-head,
	.shipping-table-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.shipping-pending-row {
		grid-template-columns: 28px minmax(0, 1fr) 60px;
	}

	.shipping-pending-label,
	.shipping-pending-meta {
		grid-column: 2 / -1;
	}

	.diode-camera-scan-btn.is-available {
		display: inline-flex;
	}

	.diode-mobile-sync-row {
		display: none;
	}

	.diode-mobile-sync-camera-feed {
		min-height: 340px;
	}
}

.layout-side-section .sidebar-image-section .sidebar-standard-image .standard-image {
	box-sizing: border-box;
	height: 100%;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	word-break: keep-all;
	font-size: 28px;
	line-height: 1;
	letter-spacing: 0;
}

.page-title .title-image {
	white-space: nowrap;
	word-break: keep-all;
	letter-spacing: 0;
}

.sidebar-user-button .avatar.avatar-medium-2 {
	width: 28px;
	height: 28px;
	min-width: 28px;
	flex: 0 0 28px;
}

.sidebar-user-button .avatar .standard-image {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	white-space: nowrap;
	word-break: keep-all;
	letter-spacing: 0;
	line-height: 1;
	font-size: 10px;
}

.sidebar-user-button .avatar-name-email {
	min-width: 0;
	max-width: 128px;
	font-size: 12px;
	line-height: 1.2;
}

.sidebar-user-button .avatar-name-email .sidebar-item-label,
.sidebar-user-button .avatar-name-email div {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.desktop-avatar .avatar.avatar-medium {
	width: 36px;
	height: 36px;
	min-width: 36px;
}

.desktop-avatar .avatar .standard-image {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	white-space: nowrap;
	word-break: keep-all;
	letter-spacing: 0;
	line-height: 1;
	font-size: 13px;
}

.result.memory-list-resizable[data-memory-doctype="Memory Unit"] .level-left .list-row-col.label_serial_no,
.result.memory-list-resizable[data-memory-doctype="Memory Unit"] .level-left .list-row-col[data-fieldname="label_serial_no"] {
	overflow: hidden;
}

.memory-label-copy {
	display: inline-flex;
	align-items: center;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
	color: var(--text-color);
	font: inherit;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
}

.memory-label-copy:hover,
.memory-label-copy:focus {
	color: var(--primary);
	outline: none;
}

.memory-label-short {
	display: block;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.memory-readonly-datetime {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--text-muted);
	cursor: default;
}

.memory-label-floating-tooltip {
	position: fixed;
	z-index: 2000;
	display: none;
	width: max-content;
	min-width: 0;
	max-width: min(440px, calc(100vw - 24px));
	padding: 6px 10px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--fg-color);
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18);
	color: var(--text-color);
	font-family: var(--font-stack-monospace);
	font-size: 12px;
	line-height: 1.45;
	white-space: normal;
	overflow-wrap: anywhere;
	pointer-events: none;
}

.memory-label-floating-tooltip.is-visible {
	display: block;
}

body.memory-station-own-user-profile .title-area.editable-title {
	cursor: default;
}

body.memory-station-own-user-profile .title-area .action-icon,
body.memory-station-own-user-profile .form-sidebar .form-title-text .action-icon,
body.memory-station-own-user-profile .form-sidebar .form-stats-likes,
body.memory-station-own-user-profile .form-sidebar .liked-by {
	display: none !important;
}

:root {
	--memory-list-match-control-width: 32px;
	--memory-desk-sidebar-reserved-width: var(--sidebar-width, 220px);
}

/*
 * Native ListView search for Memory Unit and SPD Snapshot. The host is mounted
 * inside Frappe's existing page_form; the table, header, rows, actions, sort,
 * paging and advanced FilterGroup remain untouched below it.
 */
.memory-list-native-search-host .memory-list-aggregate-search-row {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	height: 38px;
}

.memory-list-native-search-host .memory-list-aggregate-search-icon {
	position: absolute;
	top: 50%;
	left: 12px;
	z-index: 2;
	display: inline-flex;
	color: var(--text-muted);
	transform: translateY(-50%);
	pointer-events: none;
}

.memory-list-native-search-host .memory-list-aggregate-search-input {
	box-sizing: border-box;
	width: 100% !important;
	height: 38px !important;
	min-height: 38px;
	padding: 0 42px 0 38px !important;
	border-color: var(--border-color);
	border-radius: var(--border-radius);
	background: var(--control-bg);
	font-size: var(--text-sm);
}

.memory-list-native-search-host .memory-list-aggregate-search-input::-webkit-search-cancel-button {
	display: none;
}

.memory-list-native-search-host .memory-list-aggregate-search-input:focus-visible {
	border-color: var(--primary);
	box-shadow: 0 0 0 2px var(--primary-100);
	outline: none;
}

.memory-list-native-search-host .memory-list-aggregate-search-clear {
	position: absolute;
	top: 1px;
	right: 1px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 36px;
	height: 36px;
	min-width: 36px;
	padding: 0;
	border: 0;
	border-radius: calc(var(--border-radius) - 1px);
	background: transparent;
	color: var(--text-muted);
}

.memory-list-native-search-host .memory-list-aggregate-search-clear:hover {
	background: var(--control-bg-on-gray);
	color: var(--text-color);
}

.memory-list-native-search-host .memory-list-aggregate-search-clear:focus-visible {
	box-shadow: inset 0 0 0 2px var(--primary);
	outline: none;
}

.memory-list-native-search-host .tooltip {
	display: none !important;
}

@media (min-width: 768px) {
	body[data-route^="List/Memory Unit"] .memory-list-native-search-host,
	body[data-route^="List/SPD Snapshot"] .memory-list-native-search-host {
		display: flex !important;
		flex-flow: row wrap !important;
		align-items: center;
		align-content: center;
		box-sizing: border-box;
		width: 100%;
		min-height: 94px;
		padding: 8px 15px !important;
		column-gap: 8px;
		row-gap: 8px;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .memory-list-aggregate-search-row,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .memory-list-aggregate-search-row {
		order: 1;
		flex: 1 0 100%;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row {
		order: 2;
		display: flex !important;
		flex: 1 1 0;
		flex-wrap: nowrap !important;
		align-items: center;
		box-sizing: border-box;
		min-width: 0;
		height: 32px;
		padding: 0 !important;
		gap: 8px;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: thin;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control {
		float: none !important;
		flex: 1 0 140px;
		box-sizing: border-box;
		width: auto !important;
		min-width: 140px !important;
		max-width: 280px !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-memory-list-native-filter="part_number"],
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-memory-list-native-filter="part_number"] {
		flex-basis: 200px;
		min-width: 200px !important;
		max-width: 360px !important;
	}

	/*
	 * SPD has one more business facet than Memory Unit. Give each field a
	 * content-aware basis so all seven controls remain visible at the 1366px
	 * desktop acceptance width without changing the 94px two-row band.
	 */
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control:is(
			[data-memory-list-native-filter="memory_brand"],
			[data-memory-list-native-filter="memory_spec"]
		) {
		flex-basis: 110px;
		min-width: 110px !important;
	}

	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-memory-list-native-filter="part_number"] {
		flex-basis: 150px;
		min-width: 150px !important;
	}

	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control:is(
			[data-memory-list-native-filter="capacity_gb"],
			[data-memory-list-native-filter="speed_mhz"]
		) {
		flex-basis: 82px;
		min-width: 82px !important;
	}

	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-memory-list-native-filter="rank"] {
		flex-basis: 110px;
		min-width: 110px !important;
	}

	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-memory-list-native-filter="module_bus_width"] {
		flex-basis: 112px;
		min-width: 112px !important;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		.form-control,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		.form-control,
	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		.awesomplete,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		.awesomplete,
	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		.input-group,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		.input-group {
		width: 100%;
		min-width: 0;
		height: 32px;
		min-height: 32px;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		.form-control,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		.form-control {
		box-sizing: border-box;
		height: 32px !important;
		min-height: 32px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		padding-left: 12px !important;
		font-family: inherit;
		font-size: var(--text-sm) !important;
		line-height: 30px !important;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		input.form-control,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		input.form-control {
		padding-right: 12px !important;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		select.form-control,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		select.form-control {
		padding-right: 32px !important;
	}

	/* Frappe only-input Selects render their placeholder and icon as absolute siblings. */
	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-fieldtype="Select"]
		> .placeholder.xs,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-fieldtype="Select"]
		> .placeholder.xs {
		top: 50% !important;
		transform: translateY(-50%);
		font-size: var(--text-sm);
		line-height: 30px;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-fieldtype="Select"]
		> .select-icon.xs,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .standard-filter-section.memory-list-native-filter-row
		> .frappe-control[data-fieldtype="Select"]
		> .select-icon.xs {
		top: 50% !important;
		transform: translateY(-50%);
		line-height: 0;
	}

	body[data-route^="List/Memory Unit"]
		.memory-list-native-search-host
		> .filter-section.memory-list-native-actions-row,
	body[data-route^="List/SPD Snapshot"]
		.memory-list-native-search-host
		> .filter-section.memory-list-native-actions-row {
		order: 3;
		flex: 0 0 auto;
		align-items: center;
		box-sizing: border-box;
		width: auto;
		min-width: max-content;
		height: 32px;
		padding: 0 !important;
		margin: 0 !important;
	}
}

@media (max-width: 767px) {
	.memory-list-native-search-host > .memory-list-aggregate-search-row {
		order: -1;
		flex: 0 0 100%;
		margin-bottom: 8px;
	}
}

body[data-route^="List/Memory Unit"]
	.memory-list-native-search-host
	.memory-list-native-filter-row
	.awesomplete
	> [role="listbox"].memory-list-awesomplete-dropdown,
body[data-route^="List/SPD Snapshot"]
	.memory-list-native-search-host
	.memory-list-native-filter-row
	.awesomplete
	> [role="listbox"].memory-list-awesomplete-dropdown {
	position: fixed !important;
	box-sizing: border-box;
	min-width: 0 !important;
	max-width: calc(100vw - 30px) !important;
	margin: 0 !important;
	overflow-x: hidden;
	overflow-y: auto;
	border-color: var(--border-color);
	background: var(--fg-color);
	box-shadow: 0 14px 34px rgba(15, 23, 42, 0.2);
	z-index: 1060 !important;
}

body.memory-desk-sidebar-collapsed {
	--memory-desk-sidebar-reserved-width: 50px;
}

/*
 * The Desk sidebar is created on document-ready, after .main-section has
 * already painted at full width. Reserve the exact persisted sidebar track in
 * the body flex row, then atomically exchange it for Frappe's real sidebar.
 */
@media (min-width: 768px) {
	body:has(> .main-section):not(:has(> .body-sidebar-container))::before {
		display: block;
		box-sizing: border-box;
		width: var(--memory-desk-sidebar-reserved-width);
		min-width: var(--memory-desk-sidebar-reserved-width);
		height: 100vh;
		flex: 0 0 var(--memory-desk-sidebar-reserved-width);
		border-right: 1px solid var(--sidebar-border-color);
		background: var(--surface-menu-bar);
		content: "";
	}
}

body.memory-desk-sidebar-content-pending > .body-sidebar-container .body-sidebar > * {
	visibility: hidden !important;
}

/*
 * Frappe adds the native text-match button 100ms after constructing a standard
 * List filter. Reserve its final slot on the first frame so the input never
 * shrinks when the native input-group arrives. Search behavior remains owned
 * by Frappe; this is geometry only.
 */
.standard-filter-section
	> .frappe-control:is(
		[data-fieldtype="Data"],
		[data-fieldtype="Text"],
		[data-fieldtype="Small Text"],
		[data-fieldtype="Long Text"],
		[data-fieldtype="Code"],
		[data-fieldtype="Phone"],
		[data-fieldtype="Read Only"],
		[data-fieldtype="Barcode"]
	) {
	position: relative;
}

.standard-filter-section
	> .frappe-control:is(
		[data-fieldtype="Data"],
		[data-fieldtype="Text"],
		[data-fieldtype="Small Text"],
		[data-fieldtype="Long Text"],
		[data-fieldtype="Code"],
		[data-fieldtype="Phone"],
		[data-fieldtype="Read Only"],
		[data-fieldtype="Barcode"]
	)
	> input.form-control {
	box-sizing: border-box;
	width: calc(100% - var(--memory-list-match-control-width)) !important;
}

.standard-filter-section
	> .frappe-control:is(
		[data-fieldtype="Data"],
		[data-fieldtype="Text"],
		[data-fieldtype="Small Text"],
		[data-fieldtype="Long Text"],
		[data-fieldtype="Code"],
		[data-fieldtype="Phone"],
		[data-fieldtype="Read Only"],
		[data-fieldtype="Barcode"]
	)::after {
	position: absolute;
	top: 0;
	right: 0;
	box-sizing: border-box;
	width: var(--memory-list-match-control-width);
	height: 28px;
	border: 1px solid var(--border-color);
	border-left: 0;
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
	background: var(--control-bg);
	content: "";
	pointer-events: none;
}

.standard-filter-section > .frappe-control > .input-group {
	position: relative;
	z-index: 1;
	width: 100%;
}

.standard-filter-section .match-type-dropdown-btn {
	box-sizing: border-box;
	width: var(--memory-list-match-control-width);
	min-width: var(--memory-list-match-control-width);
}

@media (min-width: 768px) {
	body[data-route^="List/"] .memory-list-search-layout-host .standard-filter-section,
	body[data-route^="List/"] .list-view .standard-filter-section.memory-list-column-filters {
		display: grid !important;
		grid-template-columns: repeat(
			var(--memory-list-search-count, 1),
			minmax(112px, 1fr)
		);
		gap: 8px;
		flex: 1 1 auto;
		min-width: 0;
		max-width: 100%;
		padding: 4px 0;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: thin;
	}

	body[data-route^="List/"] .memory-list-search-layout-host .standard-filter-section > .frappe-control,
	body[data-route^="List/"] .list-view .standard-filter-section.memory-list-column-filters > .frappe-control {
		float: none !important;
		box-sizing: border-box;
		width: auto !important;
		min-width: 112px !important;
		max-width: none !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	body[data-route^="List/"] .memory-list-search-layout-host .standard-filter-section .form-control,
	body[data-route^="List/"] .memory-list-search-layout-host .standard-filter-section .input-group,
	body[data-route^="List/"] .list-view .standard-filter-section.memory-list-column-filters .form-control,
	body[data-route^="List/"] .list-view .standard-filter-section.memory-list-column-filters .input-group {
		min-width: 0;
	}

	body[data-route^="List/"] .memory-list-search-layout-host .standard-filter-section + .filter-section,
	body[data-route^="List/"] .list-view .standard-filter-section.memory-list-column-filters + .filter-section {
		flex: 0 0 auto;
	}
}

body[data-route^="List/"] .memory-list-stable-text-filter .match-type-dropdown-btn {
	width: var(--memory-list-match-control-width);
	min-width: var(--memory-list-match-control-width);
}

body[data-route^="List/"] .memory-list-stable-text-filter .match-type-dropdown-btn:focus-visible,
body[data-route^="List/"] .memory-list-match-type-dropdown .dropdown-item:focus-visible {
	outline: 2px solid var(--primary);
	outline-offset: 2px;
}

body[data-route^="List/"] .memory-list-column-filters .awesomplete > [role="listbox"].memory-list-awesomplete-dropdown {
	position: fixed !important;
	min-width: 0 !important;
	max-width: calc(100vw - 24px);
	margin: 0 !important;
	overflow-x: hidden;
	overflow-y: auto;
	border-color: var(--border-color);
	background: var(--fg-color);
	box-shadow: 0 14px 34px rgba(15, 23, 42, 0.2);
	z-index: 1060 !important;
}

body[data-route^="List/"] .memory-list-column-filters .match-type-dropdown-menu.memory-list-match-type-dropdown {
	position: fixed !important;
	right: auto !important;
	min-width: 0 !important;
	max-width: calc(100vw - 24px);
	margin: 0 !important;
	transform: none !important;
	overflow-x: hidden;
	overflow-y: auto;
	border-color: var(--border-color);
	background: var(--fg-color);
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.2);
	z-index: 1060 !important;
}

.memory-list-search-feedback {
	position: fixed;
	top: 64px;
	right: 24px;
	z-index: 1050;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 34px;
	max-width: min(360px, calc(100vw - 24px));
	padding: 7px 11px;
	border: 1px solid var(--border-color);
	border-radius: 6px;
	background: var(--fg-color);
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.16);
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.4;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity 140ms ease, transform 140ms ease, visibility 0s linear 140ms;
	pointer-events: none;
}

.memory-list-search-feedback.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition-delay: 0s;
}

.memory-list-search-feedback-indicator {
	box-sizing: border-box;
	flex: 0 0 13px;
	width: 13px;
	height: 13px;
	border: 2px solid var(--border-color);
	border-radius: 50%;
}

.memory-list-search-feedback.is-loading .memory-list-search-feedback-indicator {
	border-top-color: var(--primary);
	animation: memory-list-search-spin 680ms linear infinite;
}

.memory-list-search-feedback.is-success .memory-list-search-feedback-indicator {
	border-color: var(--green-500, #16a34a);
	background: var(--green-500, #16a34a);
}

.memory-list-search-feedback.is-error .memory-list-search-feedback-indicator {
	border-color: var(--red-500, #dc2626);
	background: var(--red-500, #dc2626);
}

body[data-route^="List/"] .list-view .frappe-list {
	position: relative;
}

body[data-route^="List/"] .list-view .frappe-list.memory-list-search-loading::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 8;
	width: 100%;
	height: 2px;
	background-image: linear-gradient(
		90deg,
		transparent 0,
		var(--primary) 45%,
		var(--primary) 55%,
		transparent 100%
	);
	background-position: -45vw 0;
	background-repeat: no-repeat;
	background-size: 38% 100%;
	content: "";
	pointer-events: none;
	animation: memory-list-search-progress 900ms ease-in-out infinite;
}

@keyframes memory-list-search-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes memory-list-search-progress {
	to {
		background-position: 145vw 0;
	}
}

@media (max-width: 767px) {
	.memory-list-search-feedback {
		top: 56px;
		right: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.memory-list-search-feedback,
	.memory-list-search-feedback.is-loading .memory-list-search-feedback-indicator,
	body[data-route^="List/"] .list-view .frappe-list.memory-list-search-loading::before {
		animation: none;
		transition: none;
	}
}

.list-view .frappe-list .result.memory-list-geometry {
	align-content: flex-start;
	min-width: 100%;
	width: var(--memory-list-track-width, 100%);
}

.list-view .frappe-list .result-container.memory-list-geometry-container {
	overflow-x: auto;
	overflow-y: auto;
	scrollbar-gutter: stable;
	-webkit-overflow-scrolling: touch;
}

.list-view .frappe-list .result.memory-list-geometry .list-row-container,
.list-view .frappe-list .result.memory-list-geometry .list-row,
.list-view .frappe-list .result.memory-list-geometry .list-row-head {
	width: var(--memory-list-track-width, 100%);
	min-width: 100%;
}

.list-view .frappe-list .result.memory-list-resizable {
	--memory-list-row-height: 44px;
	align-content: flex-start;
	min-width: 100%;
	width: var(--memory-list-track-width, max-content);
	overflow: visible;
}

.list-view .frappe-list.memory-list-resizable-list,
.list-view .frappe-list.memory-list-resizable-list .result-container.memory-list-resizable-container {
	width: 100%;
	min-width: 0;
	max-width: 100%;
}

.list-view .frappe-list .result-container:has(.result.memory-list-resizable) {
	overflow-x: auto;
	overflow-y: auto;
	scrollbar-gutter: stable;
	-webkit-overflow-scrolling: touch;
}

.list-view .frappe-list .result-container.memory-list-resizable-container {
	overflow-x: auto;
	overflow-y: auto;
	scrollbar-gutter: stable;
	-webkit-overflow-scrolling: touch;
}

.list-view .frappe-list .result-container:has(.result.memory-list-resizable)::-webkit-scrollbar {
	height: 10px;
}

.list-view .frappe-list .result-container.memory-list-resizable-container::-webkit-scrollbar {
	height: 10px;
}

.list-view .frappe-list .result-container:has(.result.memory-list-resizable)::-webkit-scrollbar-thumb {
	border: 2px solid var(--bg-color);
	border-radius: 999px;
	background: rgba(31, 41, 55, 0.28);
}

.list-view .frappe-list .result-container.memory-list-resizable-container::-webkit-scrollbar-thumb {
	border: 2px solid var(--bg-color);
	border-radius: 999px;
	background: rgba(31, 41, 55, 0.28);
}

.list-view .frappe-list .result.memory-list-resizable .list-row-container {
	flex: 0 0 auto;
	width: var(--memory-list-track-width, max-content);
	min-width: 100%;
}

.list-view .frappe-list .result.memory-list-resizable .level-left {
	flex-wrap: nowrap;
	min-width: 0;
}

.list-view .frappe-list .result.memory-list-resizable .list-row > .level-left,
.list-view .frappe-list .result.memory-list-resizable .list-row-head > .list-header-subject {
	align-self: stretch;
	align-items: center;
	flex: 0 0 auto;
	width: auto;
	min-width: max-content;
	min-height: var(--memory-list-row-height);
	padding: 0;
	overflow: visible;
}

.list-view .frappe-list .result.memory-list-resizable .list-row > .level-right,
.list-view .frappe-list .result.memory-list-resizable .list-row-head > .level-right {
	position: static;
	display: flex !important;
	align-self: stretch;
	align-items: center;
	flex: 0 0 184px;
	width: 184px;
	min-height: var(--memory-list-row-height);
	padding: 0 14px 0 16px;
	border-left: 1px solid var(--border-color);
	box-shadow: none !important;
}

.list-view .frappe-list .result.memory-list-resizable .list-header-subject {
	flex-wrap: nowrap;
	min-width: 0;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-head .level-left,
.list-view .frappe-list .result.memory-list-resizable .list-row-head .list-header-subject {
	align-self: stretch;
	align-items: center;
}

.list-view .frappe-list .result.memory-list-resizable .list-row,
.list-view .frappe-list .result.memory-list-resizable .list-row-head {
	width: var(--memory-list-track-width, max-content);
	min-width: 100%;
	min-height: var(--memory-list-row-height);
	align-items: center;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col {
	display: flex;
	align-items: center;
	align-self: stretch;
	min-width: 0;
	min-height: var(--memory-list-row-height);
	margin-right: 12px;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col > .ellipsis,
.list-view .frappe-list .result.memory-list-resizable .list-subject a {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col .indicator-pill {
	max-width: 100%;
}

.list-view .frappe-list .result.memory-list-resizable .level-right .list-row-activity {
	align-self: stretch;
	align-items: center;
	height: auto;
	min-height: var(--memory-list-row-height);
}

.list-view .frappe-list .result.memory-list-resizable .level-right .level-item {
	align-items: center;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-head .level-right .list-count {
	flex: 1 1 auto;
	min-width: 0;
	padding-left: 8px;
	text-align: right;
	white-space: nowrap;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-head .level-right .list-liked-by-me {
	flex: 0 0 auto;
	margin-left: 10px;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	column-gap: 10px;
	align-items: center;
	justify-content: initial;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject > .select-like {
	display: flex;
	align-self: stretch;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 22px;
	min-width: 22px;
	height: 100%;
	min-height: var(--memory-list-row-height);
	padding: 0;
	margin: 0;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject input.list-row-checkbox,
.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject input.list-header-checkbox {
	display: block;
	flex: 0 0 16px;
	box-sizing: border-box;
	aspect-ratio: 1 / 1;
	width: 16px !important;
	min-width: 16px !important;
	max-width: 16px !important;
	height: 16px !important;
	min-height: 16px !important;
	max-height: 16px !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 4px;
	vertical-align: middle;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject input.list-row-checkbox::after,
.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject input.list-header-checkbox::after {
	inset: -6px;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject > :not(.select-like) {
	display: flex;
	align-items: center;
	min-width: 0;
	min-height: var(--memory-list-row-height);
	justify-content: center;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject > :not(.select-like) > .ellipsis,
.list-view .frappe-list .result.memory-list-resizable .list-row-col.list-subject > :not(.select-like) > a {
	text-align: center;
}

.list-view .frappe-list .result.memory-list-resizable .memory-list-resizable-col {
	position: relative;
	padding-right: 18px;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-head .memory-list-resizable-col {
	align-self: stretch;
	min-height: var(--memory-list-row-height);
}

.list-view .frappe-list .result.memory-list-resizable .memory-list-resize-handle {
	position: absolute;
	top: 0;
	right: -1px;
	bottom: 0;
	width: 16px;
	border-right: 0;
	cursor: col-resize;
	z-index: 3;
	touch-action: none;
	opacity: 1;
	transition: background-color 120ms ease;
}

.list-view .frappe-list .result.memory-list-resizable .memory-list-resize-handle::before {
	content: "";
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: 7px;
	width: 1px;
	border-radius: 1px;
	background: rgba(31, 41, 55, 0.24);
}

.list-view .frappe-list .result.memory-list-resizable .memory-list-last-resizable-col > .memory-list-resize-handle::before {
	opacity: 0;
}

.list-view .frappe-list .result.memory-list-resizable .memory-list-resize-handle:hover,
body.memory-list-is-resizing .memory-list-resize-handle {
	background: linear-gradient(
		90deg,
		transparent 0,
		transparent 6px,
		rgba(37, 99, 235, 0.1) 6px,
		rgba(37, 99, 235, 0.1) 9px,
		transparent 9px
	);
}

.list-view .frappe-list .result.memory-list-resizable .memory-list-resize-handle:hover::before,
body.memory-list-is-resizing .memory-list-resize-handle::before {
	background: var(--primary);
	opacity: 1;
}

body.memory-list-is-resizing,
body.memory-list-is-resizing * {
	cursor: col-resize !important;
	user-select: none !important;
}

.memory-grid-geometry,
.memory-grid-resizable {
	--memory-grid-row-height: 40px;
}

.memory-grid-geometry .form-grid-container,
.memory-grid-resizable .form-grid-container {
	overflow-x: auto;
	scrollbar-gutter: stable;
}

.memory-grid-geometry .grid-heading-row .grid-row,
.memory-grid-geometry .grid-body .grid-row .data-row,
.memory-grid-resizable .grid-heading-row .grid-row,
.memory-grid-resizable .grid-body .grid-row .data-row {
	width: max-content;
	min-width: 100%;
	min-height: var(--memory-grid-row-height);
	flex-wrap: nowrap;
	align-items: stretch;
}

.memory-grid-geometry .grid-static-col[data-fieldname],
.memory-grid-resizable .grid-static-col[data-fieldname] {
	position: relative;
	display: flex;
	align-self: stretch;
	align-items: center;
	box-sizing: border-box;
	min-width: 64px;
	min-height: var(--memory-grid-row-height);
	max-width: none;
}

.memory-grid-geometry .grid-heading-row .grid-static-col[data-fieldname] > .static-area,
.memory-grid-geometry .grid-body .data-row .grid-static-col[data-fieldname] > .static-area,
.memory-grid-geometry .grid-body .data-row .grid-static-col[data-fieldname] > .control-value,
.memory-grid-resizable .grid-heading-row .grid-static-col[data-fieldname] > .static-area,
.memory-grid-resizable .grid-body .data-row .grid-static-col[data-fieldname] > .static-area,
.memory-grid-resizable .grid-body .data-row .grid-static-col[data-fieldname] > .control-value {
	display: flex;
	align-items: center;
	width: 100%;
	min-width: 0;
	min-height: var(--memory-grid-row-height);
}

.memory-grid-shipping-batch-items .grid-heading-row .grid-row,
.memory-grid-shipping-batch-items .grid-body .grid-row .data-row {
	min-width: 1010px;
}

.memory-grid-shipping-batch-items .grid-static-col[data-fieldname] {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.memory-grid-shipping-batch-items .grid-static-col[data-fieldname] .static-area,
.memory-grid-shipping-batch-items .grid-static-col[data-fieldname] .control-value,
.memory-grid-shipping-batch-items .grid-static-col[data-fieldname] [data-fieldname] {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.memory-grid-shipping-batch-items .grid-static-col[data-fieldname="label_serial_no"] {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: 12px;
}

.memory-grid-shipping-batch-items .row-index {
	flex: 0 0 54px !important;
	width: 54px !important;
	min-width: 54px !important;
}

.memory-grid-shipping-batch-items .row-check {
	flex: 0 0 42px !important;
	width: 42px !important;
	min-width: 42px !important;
}

.memory-grid-resizable .grid-heading-row .memory-grid-resizable-col {
	padding-right: 18px !important;
}

.memory-grid-resize-handle {
	position: absolute;
	top: 0;
	right: -1px;
	bottom: 0;
	width: 16px;
	cursor: col-resize;
	z-index: 3;
	touch-action: none;
	transition: background-color 120ms ease;
}

.memory-grid-resize-handle::before {
	content: "";
	position: absolute;
	top: 8px;
	bottom: 8px;
	left: 7px;
	width: 1px;
	border-radius: 1px;
	background: rgba(31, 41, 55, 0.24);
}

.memory-grid-last-resizable-col > .memory-grid-resize-handle::before {
	opacity: 0;
}

.memory-grid-resize-handle:hover,
body.memory-grid-is-resizing .memory-grid-resize-handle {
	background: linear-gradient(
		90deg,
		transparent 0,
		transparent 6px,
		rgba(37, 99, 235, 0.1) 6px,
		rgba(37, 99, 235, 0.1) 9px,
		transparent 9px
	);
}

.memory-grid-resize-handle:hover::before,
body.memory-grid-is-resizing .memory-grid-resize-handle::before {
	background: var(--primary);
	opacity: 1;
}

body.memory-grid-is-resizing,
body.memory-grid-is-resizing * {
	cursor: col-resize !important;
	user-select: none !important;
}

.diode-ground-workbench {
	max-width: 1180px;
}

.diode-toolbar {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 14px;
}

.diode-title {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
}

.diode-optional-points-toggle {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	margin: 0;
	padding: 6px 10px;
	border: 1px solid var(--border-color);
	border-radius: 6px;
	background: var(--fg-color);
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 700;
}

.diode-optional-points-toggle input {
	width: 14px;
	height: 14px;
	margin: 0;
}

.diode-optional-points-toggle:has(input:checked) {
	border-color: var(--blue-400);
	color: var(--text-color);
	background: var(--control-bg);
}

.diode-zone-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 12px;
}

.diode-entry-shell {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 14px;
	align-items: start;
	margin-bottom: 16px;
}

.diode-map-card {
	min-width: 0;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--fg-color);
	overflow: hidden;
}

.diode-map-card-single {
	width: 100%;
}

.diode-map-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 10px;
	border-bottom: 1px solid var(--border-color);
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 700;
}

.diode-board-map {
	display: block;
	width: 100%;
	height: clamp(310px, 32vw, 480px);
	min-height: 310px;
	background:
		linear-gradient(rgba(148, 163, 184, 0.055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(148, 163, 184, 0.055) 1px, transparent 1px),
		#0b131c;
	background-size: 6px 6px;
}

.diode-native-map-wrap {
	position: relative;
	width: 100%;
	height: clamp(360px, 36vw, 560px);
	min-height: 360px;
	overflow: hidden;
	background:
		linear-gradient(rgba(115, 135, 152, 0.055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(115, 135, 152, 0.055) 1px, transparent 1px),
		#071014;
	background-size: 24px 24px;
}

.diode-native-board-map {
	display: block;
	width: 100%;
	height: 100%;
	cursor: crosshair;
}

.diode-native-map-hud {
	position: absolute;
	left: 12px;
	bottom: 12px;
	min-width: 84px;
	padding: 7px 10px;
	border: 1px solid rgba(111, 130, 148, 0.32);
	border-radius: 5px;
	background: rgba(9, 14, 19, 0.82);
	color: #8f9daa;
	font-size: 12px;
	font-weight: 700;
	pointer-events: none;
}

.diode-board-profile {
	fill: #121d27;
	stroke: rgba(203, 213, 225, 0.48);
	stroke-width: 0.18;
	vector-effect: non-scaling-stroke;
}

.diode-map-component path {
	fill: rgba(100, 116, 139, 0.16);
	stroke: rgba(148, 163, 184, 0.38);
	stroke-width: 0.14;
	vector-effect: non-scaling-stroke;
}

.diode-map-component.is-dram path {
	fill: rgba(37, 99, 235, 0.18);
	stroke: rgba(147, 197, 253, 0.58);
}

.diode-map-component.is-resistor path,
.diode-map-component.is-measure-component path {
	fill: rgba(245, 158, 11, 0.2);
	stroke: rgba(251, 191, 36, 0.72);
}

.diode-map-component.is-active-component path {
	fill: rgba(239, 68, 68, 0.3);
	stroke: #fecaca;
	stroke-width: 0.34;
}

.diode-map-component.is-pmic path,
.diode-map-component.is-inductor path,
.diode-map-component.is-fuse path {
	fill: rgba(45, 212, 191, 0.14);
	stroke: rgba(94, 234, 212, 0.72);
}

.diode-map-component text {
	fill: rgba(226, 232, 240, 0.8);
	font-size: 1.65px;
	font-weight: 700;
	text-anchor: middle;
	dominant-baseline: middle;
	pointer-events: none;
}

.diode-map-component.is-measure-component text {
	fill: #fde68a;
	font-size: 1.55px;
}

.diode-map-component.is-active-component text {
	fill: #fee2e2;
	font-size: 2px;
}

.diode-map-pin-one {
	fill: #fef3c7;
	stroke: rgba(17, 24, 39, 0.72);
	stroke-width: 0.16;
	vector-effect: non-scaling-stroke;
}

.diode-map-point {
	cursor: pointer;
	outline: none;
}

.diode-map-pad {
	fill: rgba(203, 213, 225, 0.42);
	stroke: rgba(15, 23, 42, 0.62);
	stroke-width: 0.08;
	vector-effect: non-scaling-stroke;
}

.diode-map-pad.is-family-dq,
.diode-map-pad.is-family-dqs {
	fill: rgba(125, 211, 252, 0.66);
}

.diode-map-pad.is-family-power {
	fill: rgba(196, 181, 253, 0.68);
}

.diode-map-pad.is-family-ground {
	fill: rgba(148, 163, 184, 0.54);
}

.diode-map-pad.is-active-pad {
	fill: #ef4444;
	stroke: #fff7ed;
	stroke-width: 0.22;
	filter: drop-shadow(0 0 2px rgba(248, 113, 113, 0.9));
}

.diode-map-focus-marker circle {
	fill: none;
	stroke: rgba(248, 113, 113, 0.62);
	stroke-width: 0.28;
	vector-effect: non-scaling-stroke;
}

.diode-map-point circle {
	fill: #f8fafc;
	stroke: #f59e0b;
	stroke-width: 0.22;
	vector-effect: non-scaling-stroke;
}

.diode-map-point.is-dqs circle {
	stroke: #2dd4bf;
}

.diode-map-point.is-sw circle {
	stroke: #a78bfa;
}

.diode-map-point.is-zone-bottom circle {
	fill: #dbeafe;
}

.diode-map-point text {
	display: none;
	fill: #e5e7eb;
	font-size: 1.55px;
	font-weight: 700;
	paint-order: stroke;
	stroke: rgba(15, 23, 42, 0.94);
	stroke-width: 0.34px;
	pointer-events: none;
}

.diode-map-point.is-active circle {
	fill: #ef4444;
	stroke: #fee2e2;
	stroke-width: 0.34;
	filter: drop-shadow(0 0 2px rgba(248, 113, 113, 0.9));
}

.diode-map-point:hover text,
.diode-map-point.is-active text {
	display: block;
	fill: #fee2e2;
	font-size: 1.35px;
}

.diode-map-empty {
	margin-bottom: 12px;
	padding: 10px;
	border: 1px dashed var(--border-color);
	border-radius: 8px;
}

.diode-current-card {
	display: grid;
	gap: 10px;
	padding: 14px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: var(--fg-color);
}

.diode-current-topline,
.diode-current-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 700;
}

.diode-current-title {
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
}

.diode-current-value-input {
	height: 46px;
	font-size: 22px;
	font-weight: 700;
	text-align: center;
}

.diode-current-check {
	display: flex;
	gap: 8px;
	align-items: center;
	margin: 0;
	color: var(--text-muted);
	font-weight: 600;
}

.diode-current-check input {
	width: 16px;
	height: 16px;
	margin: 0;
}

.diode-point-table {
	display: grid;
	gap: 0;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	overflow-x: auto;
}

.diode-point-head,
.diode-point-row {
	display: grid;
	grid-template-columns: 64px minmax(130px, 1fr) minmax(150px, 1.2fr) 110px 120px minmax(150px, 1fr);
	align-items: center;
	min-width: 820px;
}

.diode-point-head {
	background: var(--subtle-fg);
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 700;
}

.diode-point-head > span,
.diode-point-row > span {
	min-width: 0;
	padding: 8px 10px;
	border-bottom: 1px solid var(--border-color);
}

.diode-point-row:last-child > span {
	border-bottom: 0;
}

.diode-point-row.is-active > span {
	background: rgba(245, 158, 11, 0.12);
}

.diode-point-row.is-optional > span {
	background: color-mix(in srgb, var(--control-bg) 72%, transparent);
}

.diode-point-row.is-optional.is-active > span {
	background: rgba(14, 165, 233, 0.14);
}

.diode-point-row b,
.diode-point-row em {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.diode-point-row em {
	color: var(--text-muted);
	font-style: normal;
	font-size: 12px;
}

.diode-save-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	align-items: end;
	margin-top: 14px;
}

.diode-empty {
	color: var(--text-muted);
}

.diode-empty ul {
	margin: 8px 0 0;
	padding-left: 18px;
}

.rdimm-repair-map-page {
	--rdimm-map-shell-bg: var(--bg-color);
	--rdimm-map-frame-bg: var(--bg-color);
	background: var(--rdimm-map-shell-bg);
	overflow: hidden;
	overscroll-behavior: none;
}

.rdimm-repair-map-page[data-map-theme="dark"] {
	--rdimm-map-shell-bg: #0b1014;
	--rdimm-map-frame-bg: #0b1014;
}

.rdimm-repair-map-page .page-body,
.rdimm-repair-map-page .layout-main,
.rdimm-repair-map-page .layout-main-section-wrapper,
.rdimm-repair-map-page .layout-main-section,
.rdimm-repair-map-page .page-content {
	min-height: 0;
	background: var(--rdimm-map-shell-bg);
	overflow: hidden;
	overscroll-behavior: none;
}

.rdimm-repair-map-page .layout-main-section-wrapper,
.rdimm-repair-map-page .layout-main-section {
	width: 100%;
	flex: 1 1 auto;
}

.rdimm-repair-map-page .page-content {
	margin: 0;
	padding: 0;
	max-height: 100%;
}

.rdimm-repair-map-shell {
	height: calc(100dvh - var(--navbar-height, 60px) - var(--page-head-height, 48px));
	min-height: 420px;
	margin: 0;
	background: var(--rdimm-map-shell-bg);
	overflow: hidden;
	overscroll-behavior: none;
}

.rdimm-repair-map-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: var(--rdimm-map-frame-bg);
	overscroll-behavior: none;
}

@media (max-width: 700px) {
	.diode-toolbar,
	.diode-save-row {
		grid-template-columns: 1fr;
		display: grid;
	}

	.diode-entry-shell {
		grid-template-columns: 1fr;
	}

	.diode-native-map-wrap {
		height: min(72vh, 620px);
		min-height: 430px;
	}

	.diode-native-board-map {
		touch-action: manipulation;
	}

	.rdimm-repair-map-shell {
		height: calc(100dvh - 110px);
		min-height: 420px;
	}
}

.memory-station.repair-workbench {
	display: grid;
	gap: 14px;
	max-width: 1280px;
	padding-bottom: 24px;
}

.repair-scan-panel,
.repair-context-grid,
.repair-main-grid,
.repair-code-grid,
.repair-save-row {
	display: grid;
	gap: 12px;
	align-items: end;
}

.memory-station .repair-scan-panel {
	grid-template-columns: minmax(260px, 1fr) auto auto;
	margin-top: 0;
}

.repair-context-grid {
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
}

.repair-main-grid {
	grid-template-columns: minmax(520px, 1.35fr) minmax(320px, 0.65fr);
	align-items: stretch;
}

.repair-code-grid {
	grid-template-columns: minmax(120px, 1fr) 96px;
}

.repair-save-row {
	grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.4fr) auto auto;
}

.repair-panel-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
	font-weight: 700;
}

.repair-unit-title {
	font-size: 22px;
	font-weight: 800;
	line-height: 1.2;
	margin-bottom: 8px;
}

.repair-unit-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	color: var(--text-muted);
	font-size: 13px;
}

.repair-history-row {
	display: grid;
	grid-template-columns: minmax(120px, 1fr) minmax(100px, 0.8fr) minmax(140px, 1fr);
	gap: 8px;
	padding: 7px 0;
	border-top: 1px solid var(--border-color);
	font-size: 13px;
}

.repair-history-row em {
	font-style: normal;
	color: var(--text-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.repair-board {
	min-height: 260px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	padding: 10px;
	background: #f8fafc;
	overflow: auto;
}

.repair-selected-part,
.repair-code-preview {
	margin-top: 10px;
	min-height: 24px;
	font-weight: 700;
}

.repair-cheatsheet {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 12px;
}

.repair-items-table {
	border: 1px solid var(--border-color);
	border-radius: 8px;
	overflow-x: auto;
}

.repair-items-head,
.repair-items-row {
	display: grid;
	grid-template-columns: 56px minmax(160px, 1fr) minmax(120px, 0.9fr) 64px 100px minmax(140px, 1fr) 58px;
	align-items: center;
	min-width: 820px;
}

.repair-items-head {
	background: var(--subtle-fg);
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 800;
}

.repair-items-head > span,
.repair-items-row > span,
.repair-items-row > button {
	margin: 0;
	padding: 8px 10px;
	border-bottom: 1px solid var(--border-color);
	min-width: 0;
}

.repair-items-row:last-child > span,
.repair-items-row:last-child > button {
	border-bottom: 0;
}

.repair-items-row span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 900px) {
	.repair-scan-panel,
	.repair-context-grid,
	.repair-main-grid,
	.repair-save-row {
		grid-template-columns: 1fr;
	}

	.repair-main-grid {
		align-items: stretch;
	}

	.repair-board {
		min-height: 220px;
	}
}

/* Repair workbench: diagnosis-led repair and handling-session history. */
.memory-station.repair-workbench {
	--repair-diagnosis: #dc2626;
	--repair-history: #2563eb;
	--repair-focus: #d97706;
	--repair-pass: #15803d;
	gap: 12px;
	max-width: 1360px;
}

.repair-workbench .station-panel {
	border-color: var(--border-color);
	box-shadow: none;
}

.repair-workbench .repair-section-eyebrow {
	color: var(--text-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	margin-bottom: 5px;
	text-transform: uppercase;
}

.repair-workbench .repair-context-grid {
	grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
	align-items: stretch;
}

.repair-workbench .repair-unit-panel,
.repair-workbench .repair-history-panel {
	min-height: 142px;
}

.repair-workbench .repair-unit-title {
	font-size: 22px;
	margin-bottom: 12px;
}

.repair-workbench .repair-unit-title a {
	color: var(--text-color);
}

.repair-workbench .repair-unit-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 7px 18px;
}

.repair-workbench .repair-unit-fact {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: 8px;
	min-width: 0;
	font-size: 13px;
}

.repair-workbench .repair-unit-fact span {
	color: var(--text-muted);
}

.repair-workbench .repair-unit-fact strong {
	overflow-wrap: anywhere;
}

.repair-workbench .repair-unit-fact.is-serial strong {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 12px;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.repair-workbench .repair-current-session-head,
.repair-workbench .repair-session-row-head,
.repair-workbench .repair-diagnosis-head,
.repair-workbench .repair-diagnosis-evidence-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.repair-workbench .repair-current-handler,
.repair-workbench .repair-diagnosis-title {
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
}

.repair-workbench .repair-current-session-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin-top: 14px;
	color: var(--text-muted);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.repair-workbench .repair-current-session-actions {
	display: flex;
	gap: 8px;
	margin-top: 16px;
}

.repair-workbench .repair-session-empty,
.repair-workbench .repair-diagnosis-empty,
.repair-workbench .repair-items-empty {
	color: var(--text-muted);
	padding: 12px 0;
}

.repair-workbench .repair-session-state,
.repair-workbench .repair-diagnosis-result {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--border-color);
	border-radius: 999px;
	padding: 3px 9px;
	background: var(--subtle-fg);
	color: var(--text-muted);
	font-size: 12px;
	font-weight: 800;
	white-space: nowrap;
}

.repair-workbench .repair-session-state.is-active,
.repair-workbench .repair-diagnosis-result.is-pass {
	border-color: color-mix(in srgb, var(--repair-pass) 24%, transparent);
	background: color-mix(in srgb, var(--repair-pass) 10%, var(--bg-color));
	color: var(--repair-pass);
}

.repair-workbench .repair-diagnosis-result.is-fail {
	border-color: color-mix(in srgb, var(--repair-diagnosis) 24%, transparent);
	background: color-mix(in srgb, var(--repair-diagnosis) 9%, var(--bg-color));
	color: var(--repair-diagnosis);
}

.repair-workbench .repair-diagnosis-panel {
	padding-block: 14px;
}

.repair-workbench .repair-diagnosis-head {
	align-items: end;
}

.repair-workbench .repair-diagnosis-picker {
	display: grid;
	grid-template-columns: max-content minmax(260px, 520px);
	align-items: center;
	gap: 10px;
	margin: 0;
}

.repair-workbench .repair-diagnosis-picker label {
	margin: 0;
}

.repair-workbench .repair-diagnosis-evidence {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--border-color);
}

.repair-workbench .repair-diagnosis-evidence-main {
	justify-content: flex-start;
	flex-wrap: wrap;
	font-size: 13px;
	font-variant-numeric: tabular-nums;
}

.repair-workbench .repair-diagnosis-evidence-main > span:not(.repair-diagnosis-result) {
	color: var(--text-muted);
}

.repair-workbench .repair-diagnosis-faults {
	font-size: 13px;
	font-weight: 700;
}

.repair-workbench .repair-main-grid {
	grid-template-columns: minmax(520px, 1.4fr) minmax(310px, 0.6fr);
	align-items: stretch;
}

.repair-workbench .repair-board-panel {
	min-width: 0;
}

.repair-workbench .repair-board {
	display: grid;
	place-items: center;
	min-height: 292px;
	padding: 12px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: color-mix(in srgb, var(--subtle-fg) 42%, var(--bg-color));
	overflow: hidden;
}

.repair-workbench .repair-board .rdimm-svg {
	width: min(100%, 760px) !important;
	margin-inline: auto;
}

.repair-workbench .repair-history-outline {
	fill: none;
	stroke: var(--repair-history);
	stroke-width: 3;
	vector-effect: non-scaling-stroke;
}

.repair-workbench .repair-board-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: 9px;
	color: var(--text-muted);
	font-size: 12px;
}

.repair-workbench .repair-board-legend span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.repair-workbench .repair-board-legend i {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 3px;
}

.repair-workbench .repair-board-legend .is-diagnosis {
	background: var(--repair-diagnosis);
}

.repair-workbench .repair-board-legend .is-repaired {
	border: 2px solid var(--repair-history);
	background: transparent;
}

.repair-workbench .repair-board-legend .is-focus {
	border: 2px solid var(--repair-focus);
	background: transparent;
}

.repair-workbench .repair-board-notice {
	display: grid;
	gap: 5px;
	width: min(100%, 560px);
	padding: 20px;
	border-left: 3px solid var(--border-color);
	background: var(--bg-color);
	color: var(--text-muted);
}

.repair-workbench .repair-board-notice strong {
	color: var(--text-color);
	font-size: 15px;
}

.repair-workbench .repair-board-notice.is-danger {
	border-left-color: var(--repair-diagnosis);
}

.repair-workbench .repair-card-mismatch {
	margin-top: 8px;
	padding: 8px 10px;
	border-left: 3px solid var(--repair-focus);
	background: color-mix(in srgb, var(--repair-focus) 8%, var(--bg-color));
	color: var(--text-muted);
	font-size: 12px;
}

.repair-workbench .repair-selected-part {
	margin-top: 8px;
	color: var(--repair-focus);
	font-size: 13px;
}

.repair-workbench .repair-session-timeline {
	display: grid;
}

.repair-workbench .repair-session-row {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	gap: 10px;
	position: relative;
	padding-bottom: 16px;
}

.repair-workbench .repair-session-row:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 24px;
	bottom: 0;
	left: 13px;
	width: 1px;
	background: var(--border-color);
}

.repair-workbench .repair-session-marker {
	display: grid;
	place-items: center;
	position: relative;
	z-index: 1;
	width: 28px;
	height: 28px;
	border: 1px solid var(--border-color);
	border-radius: 50%;
	background: var(--bg-color);
	color: var(--text-muted);
	font-size: 11px;
	font-weight: 800;
}

.repair-workbench .repair-session-row.is-current .repair-session-marker {
	border-color: var(--repair-pass);
	color: var(--repair-pass);
}

.repair-workbench .repair-session-body {
	min-width: 0;
	padding: 3px 0 0;
}

.repair-workbench .repair-session-row-head {
	justify-content: flex-start;
}

.repair-workbench .repair-session-time,
.repair-workbench .repair-session-repair-state,
.repair-workbench .repair-session-notes {
	margin-top: 4px;
	color: var(--text-muted);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.repair-workbench .repair-session-repair-state.has-repair {
	color: var(--repair-history);
	font-weight: 700;
}

.repair-workbench .repair-session-notes {
	padding: 7px 9px;
	background: var(--subtle-fg);
	white-space: pre-wrap;
}

.repair-workbench button:focus-visible,
.repair-workbench input:focus-visible,
.repair-workbench select:focus-visible,
.repair-workbench .rdimm-part:focus-visible {
	outline: 2px solid var(--repair-focus);
	outline-offset: 2px;
}

@media (max-width: 1050px) {
	.repair-workbench .repair-context-grid,
	.repair-workbench .repair-main-grid {
		grid-template-columns: 1fr;
	}

	.repair-workbench .repair-board {
		min-height: 260px;
	}
}

@media (max-width: 760px) {
	.memory-station .repair-scan-panel,
	.repair-workbench .repair-context-grid,
	.repair-workbench .repair-save-row {
		grid-template-columns: 1fr;
	}

	.repair-workbench .repair-unit-facts {
		grid-template-columns: 1fr;
	}

	.repair-workbench .repair-diagnosis-head,
	.repair-workbench .repair-diagnosis-evidence {
		display: grid;
		grid-template-columns: 1fr;
	}

	.repair-workbench .repair-diagnosis-picker {
		grid-template-columns: 1fr;
	}

	.repair-workbench .repair-current-session-actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.repair-workbench .repair-board {
		min-height: 210px;
		padding: 6px;
		overflow-x: auto;
	}

	.repair-workbench .repair-items-table {
		margin-inline: -2px;
	}
}

.memory-station.label-replacement-workbench {
	width: min(1180px, calc(100% - 2 * var(--margin-md)));
	max-width: 1180px;
}

.label-replacement-workbench .label-replacement-head,
.label-replacement-workbench .label-panel-head,
.label-replacement-workbench .label-target-title,
.label-replacement-workbench .label-replacement-actions,
.label-replacement-workbench .label-replacement-success,
.label-replacement-workbench .label-success-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.label-replacement-workbench .label-replacement-head h2,
.label-replacement-workbench .label-panel-head h3,
.label-replacement-workbench .label-replacement-success h3 {
	margin: 0;
	letter-spacing: 0;
}

.label-replacement-workbench .label-replacement-head h2 {
	font-size: 22px;
}

.label-replacement-workbench .label-panel-head h3,
.label-replacement-workbench .label-replacement-success h3 {
	font-size: 16px;
}

.label-replacement-kicker {
	margin-bottom: 3px;
	color: var(--text-muted);
	font-size: 11px;
	font-weight: 700;
}

.label-replacement-workbench .label-replacement-policy {
	padding: 5px 9px;
	border: 1px solid var(--green-300);
	border-radius: 6px;
	background: var(--green-50);
	color: var(--green-700);
	font-size: 12px;
	font-weight: 700;
}

.label-replacement-workbench .label-replacement-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 16px;
	border-block: 1px solid var(--border-color);
	background: var(--fg-color);
}

.label-replacement-workbench .label-replacement-steps > div {
	display: flex;
	min-width: 0;
	padding: 11px 14px;
	align-items: center;
	gap: 8px;
	color: var(--text-muted);
	font-size: 12px;
}

.label-replacement-workbench .label-replacement-steps > div + div {
	border-left: 1px solid var(--border-color);
}

.label-replacement-workbench .label-replacement-steps span {
	display: grid;
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	place-items: center;
	border: 1px solid var(--border-color);
	border-radius: 50%;
	font-variant-numeric: tabular-nums;
}

.label-replacement-workbench .label-replacement-steps .is-current {
	color: var(--text-color);
}

.label-replacement-workbench .label-replacement-steps .is-current span {
	border-color: var(--blue-500);
	background: var(--blue-500);
	color: white;
}

.label-replacement-workbench .label-replacement-steps .is-done span {
	border-color: var(--green-500);
	background: var(--green-500);
	color: white;
}

.label-replacement-workbench .label-replacement-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(360px, 0.8fr);
	gap: 16px;
}

.label-replacement-workbench .station-panel {
	min-width: 0;
}

.label-replacement-workbench .label-target-content,
.label-replacement-workbench .new-label-value {
	margin-top: 16px;
}

.label-replacement-workbench .label-target-empty {
	display: grid;
	min-height: 252px;
	place-items: center;
	border: 1px dashed var(--border-color);
	color: var(--text-muted);
	text-align: center;
}

.label-replacement-workbench .label-target-title strong {
	min-width: 0;
	font-family: var(--font-stack-monospace);
	font-size: 17px;
	overflow-wrap: anywhere;
}

.label-replacement-workbench .label-target-title span {
	padding: 4px 8px;
	border: 1px solid var(--border-color);
	border-radius: 6px;
	font-size: 11px;
	font-weight: 700;
}

.label-replacement-workbench .label-target-title span.is-ready {
	border-color: var(--green-300);
	background: var(--green-50);
	color: var(--green-700);
}

.label-replacement-workbench .label-target-title span.is-blocked {
	border-color: var(--red-300);
	background: var(--red-50);
	color: var(--red-700);
}

.label-replacement-workbench .label-target-notice {
	margin-top: 12px;
	padding: 8px 10px;
	border-left: 3px solid var(--orange-400);
	background: var(--orange-50);
	color: var(--orange-800);
	font-size: 12px;
}

.label-replacement-workbench .label-target-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 14px;
	border-top: 1px solid var(--border-color);
	border-left: 1px solid var(--border-color);
}

.label-replacement-workbench .label-target-facts > div {
	display: grid;
	min-width: 0;
	padding: 9px 10px;
	border-right: 1px solid var(--border-color);
	border-bottom: 1px solid var(--border-color);
	gap: 3px;
}

.label-replacement-workbench .label-target-facts span,
.label-replacement-workbench .label-factory-content span {
	color: var(--text-muted);
	font-size: 11px;
}

.label-replacement-workbench .label-target-facts strong {
	min-width: 0;
	font-size: 13px;
	overflow-wrap: anywhere;
}

.label-replacement-workbench .label-factory-content {
	display: grid;
	margin-top: 12px;
	gap: 5px;
}

.label-replacement-workbench .label-factory-content code {
	display: block;
	max-height: 82px;
	padding: 9px 10px;
	background: var(--subtle-fg);
	color: var(--text-color);
	font-size: 11px;
	line-height: 1.5;
	overflow: auto;
	overflow-wrap: anywhere;
	white-space: pre-wrap;
}

.label-replacement-workbench .new-label-value {
	display: flex;
	min-height: 62px;
	padding: 12px;
	align-items: center;
	border: 1px solid var(--green-300);
	background: var(--green-50);
	color: var(--text-color);
	font-family: var(--font-stack-monospace);
	font-size: 15px;
	font-weight: 700;
	overflow-wrap: anywhere;
}

.label-replacement-workbench .new-label-value.is-empty {
	border-style: dashed;
	border-color: var(--border-color);
	background: var(--subtle-fg);
	color: var(--text-muted);
	font-family: var(--font-stack);
	font-weight: 400;
}

.label-replacement-workbench .label-reason-fields {
	display: grid;
	margin-top: 16px;
	gap: 12px;
}

.label-replacement-workbench .reason-details-field.is-required label::after {
	content: " *";
	color: var(--red-500);
}

.label-replacement-workbench .label-replacement-actions {
	justify-content: flex-start;
	margin-top: 16px;
	flex-wrap: wrap;
}

.label-replacement-workbench .label-replacement-success {
	margin-top: 16px;
	padding: 22px;
	justify-content: flex-start;
	border: 1px solid var(--green-300);
	background: var(--fg-color);
}

.label-replacement-workbench .label-replacement-success p {
	margin: 5px 0 0;
	color: var(--text-muted);
}

.label-replacement-workbench .label-success-mark {
	display: grid;
	width: 54px;
	height: 54px;
	flex: 0 0 54px;
	place-items: center;
	border-radius: 50%;
	background: var(--green-500);
	color: white;
	font-size: 30px;
}

.label-replacement-workbench .label-success-actions {
	margin-left: auto;
	justify-content: flex-end;
	flex-wrap: wrap;
}

.label-replacement-guard .label-replacement-guard-progress {
	grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 900px) {
	.label-replacement-workbench .label-replacement-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 620px) {
	.memory-station.label-replacement-workbench {
		width: auto;
	}

	.label-replacement-workbench .label-replacement-head,
	.label-replacement-workbench .label-panel-head,
	.label-replacement-workbench .label-replacement-success {
		align-items: flex-start;
		flex-direction: column;
	}

	.label-replacement-workbench .label-replacement-steps > div {
		padding: 9px 7px;
		flex-direction: column;
		text-align: center;
	}

	.label-replacement-workbench .label-target-facts {
		grid-template-columns: 1fr;
	}

	.label-replacement-workbench .label-success-actions {
		width: 100%;
		margin-left: 0;
		justify-content: flex-start;
	}
}

/* Repair task station: deliberately isolated from the legacy pricing workbench. */
body.repair-task-kiosk-active .layout-side-section,
body.repair-task-kiosk-active .standard-sidebar,
body.repair-task-kiosk-active .desk-sidebar {
	display: none !important;
}

body.repair-task-kiosk-active .layout-main,
body.repair-task-kiosk-active .page-body,
body.repair-task-kiosk-active .page-content,
body.repair-task-kiosk-active .layout-main-section-wrapper,
body.repair-task-kiosk-active .layout-main-section {
	min-width: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

.repair-task-workbench {
	--task-ink: #171a1c;
	--task-muted: #657077;
	--task-line: #d9dee1;
	--task-surface: #ffffff;
	--task-canvas: #f4f6f7;
	--task-replant: #f2a65a;
	--task-flywire: #98dce6;
	--task-replace: #ef7b7b;
	--task-resolder: #8ed0b0;
	--task-add-part: #e8cf63;
	position: relative;
	container: repair-task-shell / inline-size;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	min-height: calc(100vh - 112px);
	padding: 16px 18px var(--task-action-reserve, 116px);
	overflow-x: hidden;
	background:
		linear-gradient(rgba(23, 26, 28, 0.035) 1px, transparent 1px),
		var(--task-canvas);
	background-size: 100% 36px;
	color: var(--task-ink);
}

.repair-task-scan-status {
	display: flex;
	min-height: 38px;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
	padding: 7px 12px;
	border: 1px solid var(--task-line);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.88);
	color: var(--task-muted);
	font-size: 14px;
}

.repair-task-scan-status kbd,
.repair-task-help kbd {
	border: 1px solid #c8ced2;
	border-bottom-width: 2px;
	border-radius: 5px;
	background: #fff;
	box-shadow: none;
	color: var(--task-ink);
}

.repair-task-scan-status kbd {
	margin-left: auto;
}

.repair-task-scan-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #9aa4a9;
}

.repair-task-scan-status.is-loading .repair-task-scan-dot {
	background: var(--task-replant);
}

.repair-task-scan-status.is-ready .repair-task-scan-dot {
	background: #44a36f;
}

.repair-task-scan-status.is-error {
	border-color: #e49393;
	color: #a33333;
}

.repair-task-scan-status.is-error .repair-task-scan-dot {
	background: #cf4f4f;
}

.repair-task-top-grid {
	display: grid;
	grid-template-columns:
		minmax(350px, 1.08fr)
		minmax(380px, 1.45fr)
		minmax(245px, 0.86fr);
	gap: 12px;
	min-height: 212px;
}

.repair-task-identity,
.repair-task-unit-facts,
.repair-task-operation {
	min-width: 0;
	padding: 16px 18px;
	border: 1px solid var(--task-line);
	border-radius: 16px;
	background: var(--task-surface);
	box-shadow: 0 8px 22px rgba(23, 26, 28, 0.06);
}

.repair-task-identity {
	display: grid;
	container-type: inline-size;
	align-content: center;
	border: 2px solid var(--task-ink);
	background: var(--task-ink);
	color: #fff;
	animation: repair-task-id-pulse 3.2s ease-in-out infinite;
}

.repair-task-workbench.is-confirming .repair-task-identity,
.repair-task-workbench.is-waiting-qc .repair-task-identity {
	background: #171a1c;
	color: #fff;
	animation: none;
}

.repair-task-workbench.is-waiting-qc .repair-task-operation {
	animation: none;
}

.repair-task-top-label {
	margin-bottom: 7px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	opacity: 0.72;
	text-transform: uppercase;
}

.repair-task-unit-facts-head {
	display: flex;
	min-height: 24px;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.repair-task-spd-modified {
	flex: 0 0 auto;
	padding: 3px 9px;
	border: 1px solid #cbd1d4;
	border-radius: 999px;
	background: #eef1f2;
	color: #657077;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.02em;
	line-height: 1.25;
	white-space: nowrap;
}

.repair-task-spd-modified[hidden] {
	display: none;
}

.repair-task-internal-id {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: clamp(25px, 7.6cqi, 40px);
	font-weight: 900;
	letter-spacing: -0.045em;
	line-height: 1.06;
	overflow-wrap: anywhere;
	word-break: normal;
}

.repair-task-internal-id.is-long-identifier {
	font-size: clamp(21px, 6.1cqi, 31px);
	letter-spacing: -0.035em;
}

.repair-task-internal-id.is-extra-long-identifier {
	font-size: clamp(19px, 5.25cqi, 27px);
	letter-spacing: -0.025em;
}

.repair-task-identity-footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 14px;
	min-height: 104px;
	margin-top: 12px;
}

.repair-task-progress {
	align-self: center;
	margin: 0;
	font-size: 15px;
	font-weight: 650;
	opacity: 0.78;
}

.repair-task-datamatrix-plate {
	display: grid;
	box-sizing: border-box;
	width: 104px;
	height: 104px;
	place-items: center;
	flex: 0 0 auto;
	padding: 4px;
	border: 1px solid rgba(23, 26, 28, 0.22);
	border-radius: 9px;
	background: #fff;
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.18);
	isolation: isolate;
}

.repair-task-datamatrix-plate[hidden] {
	display: none !important;
}

.repair-task-datamatrix {
	display: block;
	width: auto;
	height: auto;
	max-width: 96px;
	max-height: 96px;
	background: #fff;
	image-rendering: pixelated;
}

.repair-task-fact-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 16px;
}

.repair-task-fact {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	align-items: baseline;
	gap: 8px;
	min-width: 0;
}

.repair-task-fact span {
	color: var(--task-muted);
	font-size: 13px;
}

.repair-task-fact strong {
	overflow: hidden;
	font-size: 16px;
	font-weight: 750;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.repair-task-operation {
	display: flex;
	flex-direction: column;
	justify-content: center;
	border-width: 2px;
	transition: background-color 140ms ease, border-color 140ms ease;
	animation: repair-task-action-pulse 2.8s ease-in-out infinite;
}

.repair-task-operation.is-replant {
	border-color: #c8762c;
	background: var(--task-replant);
}

.repair-task-operation.is-flywire {
	border-color: #4eabb8;
	background: var(--task-flywire);
}

.repair-task-operation.is-replace {
	border-color: #c64e4e;
	background: var(--task-replace);
}

.repair-task-operation.is-resolder {
	border-color: #4d9f77;
	background: var(--task-resolder);
}

.repair-task-operation.is-add-part {
	border-color: #b69c29;
	background: var(--task-add-part);
}

.repair-task-operation.is-neutral,
.repair-task-operation.is-idle,
.repair-task-operation.is-waiting-qc {
	border-color: var(--task-line);
	background: #eef1f2;
	animation: none;
}

.repair-task-operation.is-waiting-qc {
	border-color: #6ab288;
	background: #ddefe4;
}

.repair-task-operation-name {
	font-size: clamp(31px, 3.3vw, 52px);
	font-weight: 950;
	letter-spacing: -0.04em;
	line-height: 1;
}

.repair-task-operation-position {
	margin-top: 12px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: clamp(20px, 2vw, 30px);
	font-weight: 800;
}

.repair-task-operation-note {
	margin-top: 8px;
	overflow: hidden;
	font-size: clamp(14px, 1.2vw, 19px);
	font-weight: 700;
	line-height: 1.25;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.repair-task-operation-note:empty {
	display: none;
}

@keyframes repair-task-id-pulse {
	0%,
	100% {
		background: #171a1c;
		color: #fff;
	}
	50% {
		background: #fff;
		color: #171a1c;
	}
}

@keyframes repair-task-action-pulse {
	0%,
	100% {
		filter: saturate(0.88) brightness(1);
	}
	50% {
		filter: saturate(1.08) brightness(1.07);
	}
}

.repair-task-diagnosis-strip {
	margin-top: 12px;
	padding: 10px 12px;
	border: 1px solid var(--task-line);
	border-radius: 12px;
	background: var(--task-surface);
}

.repair-task-diagnosis-title {
	margin-bottom: 7px;
	font-weight: 800;
}

.repair-task-diagnosis-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 7px;
}

.repair-task-diagnosis-item {
	display: grid;
	grid-template-columns: auto auto minmax(0, 1fr);
	gap: 8px;
	padding: 7px 9px;
	border-radius: 8px;
	background: #f1f3f4;
	font-size: 13px;
}

.repair-task-diagnosis-item time {
	overflow: hidden;
	color: var(--task-muted);
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.repair-task-board-shell,
.repair-task-workbench .repair-task-self-board {
	--task-board-ink: #171a1c;
	--task-board-line: #d9dee1;
	position: relative;
	display: grid;
	width: 100%;
	min-height: 388px;
	margin-top: 12px;
	place-items: center;
	overflow: hidden;
	border: 1px solid var(--task-board-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(23, 26, 28, 0.05);
}

.repair-task-board {
	width: 100%;
	padding: 12px 18px;
}

.repair-task-board > svg,
.repair-task-board .rdimm-root,
.repair-task-workbench .repair-task-self-board > svg,
.repair-task-workbench .repair-task-self-board .rdimm-root {
	display: block;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	max-height: 520px;
	margin: 0 auto;
}

.repair-task-board-empty {
	display: grid;
	position: absolute;
	z-index: 2;
	inset: 0;
	place-content: center;
	gap: 8px;
	background:
		linear-gradient(135deg, rgba(244, 246, 247, 0.96), rgba(255, 255, 255, 0.96));
	color: var(--task-muted);
	text-align: center;
}

.repair-task-board-empty[hidden] {
	display: none;
}

.repair-task-board-empty strong {
	color: var(--task-ink);
	font-size: 25px;
}

.repair-task-location-outline {
	fill: none;
	stroke: #e8cf63;
	stroke-width: 4px;
	vector-effect: non-scaling-stroke;
}

.repair-task-focus-outline {
	fill: rgba(242, 166, 90, 0.22);
	stroke: #df6d2c;
	stroke-width: 7px;
	vector-effect: non-scaling-stroke;
}

.repair-task-region-outline .repair-task-region-shape {
	fill: none !important;
	fill-opacity: 0 !important;
	stroke: #b69c29;
	stroke-width: 3px;
	vector-effect: non-scaling-stroke;
	filter: none !important;
	animation: repair-task-region-beacon 1.05s ease-in-out infinite;
}

.repair-task-region-focus .repair-task-region-shape {
	fill: none !important;
	fill-opacity: 0 !important;
	stroke: #c8621f;
	stroke-width: 5px;
	vector-effect: non-scaling-stroke;
	filter: none !important;
	animation: repair-task-region-focus-beacon 1.05s ease-in-out infinite;
}

.repair-task-region-badge circle {
	fill: #171a1c;
	stroke: #fff;
	stroke-width: 1.4px;
	vector-effect: non-scaling-stroke;
}

.repair-task-region-focus .repair-task-region-badge circle {
	fill: #c8621f;
}

.repair-task-region-badge text {
	fill: #fff;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 8px;
	font-weight: 950;
	pointer-events: none;
}

@keyframes repair-task-region-beacon {
	0%,
	100% {
		stroke: #8d6b00;
		stroke-width: 3px;
	}
	50% {
		stroke: #fff;
		stroke-width: 6px;
	}
}

@keyframes repair-task-region-focus-beacon {
	0%,
	100% {
		stroke: #b84b16;
		stroke-width: 5px;
	}
	50% {
		stroke: #fff;
		stroke-width: 7px;
	}
}

.repair-task-position-status {
	min-height: 34px;
	padding: 8px 4px 3px;
	color: var(--task-muted);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 16px;
	font-weight: 750;
	text-align: center;
}

.repair-task-position-controls,
.repair-task-confirm-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.repair-task-position-controls {
	margin: 10px 0;
}

.repair-task-control {
	min-height: 44px;
	padding: 8px 16px;
	border: 2px solid var(--task-line);
	border-radius: 10px;
	background: #fff;
	color: var(--task-ink);
	font-size: 16px;
	font-weight: 750;
}

.repair-task-control[hidden] {
	display: none;
}

.repair-task-workbench button:not(:disabled) {
	cursor: pointer;
}

.repair-task-workbench button:disabled {
	cursor: not-allowed;
}

.repair-task-workbench button:focus-visible {
	outline: 3px solid #2879bd;
	outline-offset: 3px;
}

.repair-task-control:not(:disabled):hover,
.repair-task-action:not(:disabled):hover {
	box-shadow: inset 0 0 0 2px var(--task-ink);
}

.repair-task-control:disabled {
	opacity: 0.38;
}

.repair-task-action-rail {
	position: fixed;
	z-index: 100;
	left: var(--task-action-left, 18px);
	right: var(--task-action-right, 18px);
	bottom: 12px;
	visibility: hidden;
	transition: none;
	padding: 8px;
	border: 1px solid var(--task-line);
	border-radius: 14px;
	background: var(--task-canvas);
	box-shadow: 0 -4px 18px rgba(23, 26, 28, 0.08);
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 9px;
	margin-top: 6px;
}

.repair-task-workbench.is-action-rail-ready .repair-task-action-rail {
	visibility: visible;
	transition: left 200ms ease-out, right 200ms ease-out;
}

.repair-task-action {
	display: flex;
	min-width: 0;
	flex-wrap: wrap;
	padding: 10px 12px;
	line-height: 1.4;
	white-space: normal;
	min-height: 62px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 2px solid transparent;
	border-radius: 12px;
	background: #e8ecee;
	color: var(--task-ink);
	font-size: clamp(14px, 1.5cqw, 18px);
	font-weight: 800;
}

.repair-task-action.is-selected {
	border-color: var(--task-ink);
	background: #fff;
	box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--task-ink);
}

.repair-task-action.is-on {
	background: #f7dda8;
}

.repair-task-action:disabled {
	opacity: 0.38;
}

.repair-task-action b {
	padding: 3px 7px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.7);
	font-size: 13px;
}

.repair-task-help {
	display: flex;
	justify-content: center;
	gap: 28px;
	padding: 10px 0 0;
	color: var(--task-muted);
}

.repair-task-help span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.repair-task-confirm,
.repair-task-map-overlay {
	position: fixed;
	z-index: 1100;
	inset: 0;
}

.repair-task-confirm {
	display: grid;
	place-items: center;
	background: rgba(23, 26, 28, 0.74);
}

.repair-task-confirm[hidden],
.repair-task-map-overlay[hidden] {
	display: none;
}

.repair-task-confirm-card {
	width: min(620px, 80vw);
	padding: 34px;
	border: 3px solid #fff;
	border-radius: 20px;
	background: #171a1c;
	box-shadow: 0 28px 80px rgba(0, 0, 0, 0.34);
	color: #fff;
	text-align: center;
}

.repair-task-confirm-actions {
	margin-top: 24px;
}

.repair-task-confirm-actions .repair-task-control {
	min-width: 144px;
}

.repair-task-confirm-actions .is-primary {
	border-color: #f7dda8;
	background: #f7dda8;
}

.repair-task-confirm-kicker {
	margin-bottom: 12px;
	color: #cfd5d8;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.repair-task-confirm-title {
	margin-bottom: 15px;
	font-size: 40px;
	font-weight: 950;
}

.repair-task-map-overlay {
	display: grid;
	grid-template-rows: auto 1fr;
	background: #f4f6f7;
	cursor: default;
	pointer-events: auto;
}

.repair-task-map-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 18px;
	border-bottom: 1px solid var(--task-line);
	background: #fff;
	font-size: 20px;
}

.repair-task-map-return {
	min-height: 46px;
	padding: 0 18px;
	border: 2px solid #171a1c;
	border-radius: 10px;
	background: #fff;
	color: #171a1c;
	font-weight: 800;
	pointer-events: auto;
}

.repair-task-map-frame {
	width: 100%;
	height: 100%;
	border: 0;
	background: #fff;
	pointer-events: auto;
}

/* Repair-task QC is a separate review surface, not the existing technical QC page. */
.repair-task-qc {
	min-height: calc(100vh - 112px);
	padding: 20px;
	background: #f4f6f7;
	color: #171a1c;
}

.repair-task-qc-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 18px 20px;
	border: 1px solid #d9dee1;
	border-radius: 14px;
	background: #fff;
}

.repair-task-qc-head h2 {
	margin: 3px 0 0;
	font-size: 24px;
}

.repair-task-qc-kicker {
	color: #657077;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.repair-task-qc-summary {
	padding: 14px 2px 9px;
	color: #657077;
	font-weight: 800;
}

.repair-task-qc-list {
	display: grid;
	gap: 12px;
}

.repair-task-qc-card {
	display: grid;
	grid-template-columns: minmax(260px, 0.9fr) minmax(420px, 1.6fr) minmax(260px, 0.9fr);
	gap: 18px;
	padding: 18px;
	border: 1px solid #d9dee1;
	border-left: 5px solid #8ed0b0;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(23, 26, 28, 0.05);
}

.repair-task-qc-card.is-submitting {
	opacity: 0.58;
}

.repair-task-qc-card-main {
	min-width: 0;
}

.repair-task-qc-id {
	overflow: hidden;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 20px;
	font-weight: 900;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.repair-task-qc-operation {
	margin-top: 15px;
	font-size: 31px;
	font-weight: 950;
	line-height: 1;
}

.repair-task-qc-position {
	margin-top: 8px;
	color: #657077;
	font-size: 16px;
	font-weight: 800;
}

.repair-task-qc-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px 16px;
}

.repair-task-qc-facts > div {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.repair-task-qc-facts .is-wide {
	grid-column: 1 / -1;
}

.repair-task-qc-facts span {
	color: #657077;
	font-size: 12px;
}

.repair-task-qc-facts strong {
	overflow-wrap: anywhere;
}

.repair-task-qc-controls {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 14px;
}

.repair-task-qc-overage {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	padding: 9px 11px;
	border-radius: 9px;
	background: #f7dda8;
	font-weight: 800;
}

.repair-task-qc-overage input {
	width: 19px;
	height: 19px;
}

.repair-task-qc-no-overage {
	color: #657077;
}

.repair-task-qc-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.repair-task-qc-empty {
	display: grid;
	min-height: 180px;
	place-content: center;
	gap: 7px;
	border: 1px dashed #c9d0d4;
	border-radius: 14px;
	background: #fff;
	color: #657077;
	text-align: center;
}

.repair-task-qc-empty strong {
	color: #171a1c;
	font-size: 20px;
}

@media (max-width: 1100px) {
	.repair-task-qc-card {
		grid-template-columns: 1fr 1.5fr;
	}

	.repair-task-qc-controls {
		grid-column: 1 / -1;
	}
}

@container repair-task-shell (max-width: 998px) {
	.repair-task-top-grid {
		grid-template-columns: minmax(350px, 0.92fr) minmax(380px, 1.35fr);
	}

	.repair-task-operation {
		grid-column: 1 / -1;
		min-height: 138px;
	}
}

@container repair-task-shell (max-width: 760px) {
	.repair-task-top-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.repair-task-operation {
		grid-column: auto;
	}

	.repair-task-fact-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.repair-task-workbench.is-action-rail-ready .repair-task-action-rail {
		transition: none;
	}

	.diagnosis-repair-dispatch-spinner,
	.diagnosis-repair-board-panel.is-attention,
	.repair-task-identity,
	.repair-task-operation,
	.repair-task-region-outline .repair-task-region-shape,
	.repair-task-region-focus .repair-task-region-shape {
		animation: none !important;
	}

	.repair-task-region-outline .repair-task-region-shape,
	.repair-task-region-focus .repair-task-region-shape {
		fill: none !important;
		fill-opacity: 0 !important;
		stroke: #9d1717;
		stroke-width: 6px;
		filter: none !important;
	}
}


/* Repair QC task queue: the single active QC workflow. */
.qc-workbench-stack {
	display: grid;
	gap: 16px;
	padding: 16px;
	background: var(--bg-color, #f4f6f7);
	color: var(--text-color, #171a1c);
}

.qc-workbench-task-lane {
	min-width: 0;
}

.qc-workbench-task-placeholder {
	display: grid;
	height: 360px;
	place-content: center;
	justify-items: center;
	gap: 9px;
	border: 1px solid var(--border-color, #d9dee1);
	border-radius: 12px;
	background: var(--card-bg, var(--fg-color, #fff));
	color: var(--text-muted, #657077);
}

.qc-workbench-task-placeholder-spinner {
	width: 22px;
	height: 22px;
	border: 3px solid var(--gray-300, #d5dade);
	border-top-color: var(--primary, #3976aa);
	border-radius: 50%;
	animation: repair-task-qc-spin 0.8s linear infinite;
}

.repair-task-qc {
	--qc-ink: var(--text-color, #171a1c);
	--qc-muted: var(--text-muted, #657077);
	--qc-line: var(--border-color, #d9dee1);
	--qc-paper: var(--card-bg, var(--fg-color, #fff));
	--qc-canvas: var(--bg-color, #f4f6f7);
	--qc-control: var(--control-bg, #f1f3f4);
	--qc-focus: var(--primary, #1f6feb);
	display: grid;
	min-height: calc(100vh - 112px);
	gap: 10px;
	padding: 18px;
	background: var(--qc-canvas);
	color: var(--qc-ink);
}

.repair-task-qc.is-embedded {
	min-height: 0;
	padding: 0;
	background: transparent;
}

.repair-task-qc-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	padding: 14px 16px;
	border: 1px solid var(--qc-line);
	border-radius: 12px;
	background: var(--qc-paper);
}

.repair-task-qc-head h2 {
	margin: 2px 0 0;
	font-size: 22px;
	line-height: 1.25;
}

.repair-task-qc-head p {
	max-width: 680px;
	margin: 4px 0 0;
	color: var(--qc-muted);
	font-size: 13px;
	line-height: 1.45;
}

.repair-task-qc-head > .btn {
	min-height: 44px;
}

.repair-task-qc-kicker {
	color: var(--qc-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.repair-task-qc-toolbar {
	display: grid;
	grid-template-columns: auto minmax(280px, 1fr) minmax(150px, 190px);
	align-items: end;
	gap: 10px;
	padding: 10px;
	border: 1px solid var(--qc-line);
	border-radius: 12px;
	background: var(--qc-paper);
}

.repair-task-qc-tabs {
	display: flex;
	gap: 3px;
	padding: 3px;
	border: 1px solid var(--qc-line);
	border-radius: 9px;
	background: var(--qc-control);
}

.repair-task-qc-tabs [role="tab"] {
	min-height: 44px;
	padding: 0 12px;
	border: 0;
	border-radius: 7px;
	background: transparent;
	color: var(--qc-muted);
	font-weight: 750;
	white-space: nowrap;
}

.repair-task-qc-tabs [role="tab"][aria-selected="true"] {
	background: var(--qc-paper);
	color: var(--qc-ink);
	box-shadow: 0 1px 3px rgba(23, 26, 28, 0.14);
}

.repair-task-qc-search,
.repair-task-qc-status-field {
	display: grid;
	gap: 4px;
	margin: 0;
	color: var(--qc-muted);
	font-size: 12px;
	font-weight: 700;
}

.repair-task-qc-search-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 6px;
}

.repair-task-qc-search-row .form-control,
.repair-task-qc-search-row .btn,
.repair-task-qc-status-field .form-control {
	min-height: 44px;
}

.repair-task-qc-summary {
	min-height: 24px;
	padding: 2px 3px;
	color: var(--qc-muted);
	font-size: 13px;
	font-weight: 750;
}

.repair-task-qc-list {
	display: grid;
	gap: 9px;
	min-width: 0;
}

.repair-task-qc-card {
	display: grid;
	grid-template-columns: minmax(210px, 0.75fr) minmax(360px, 1.6fr) minmax(230px, 0.8fr);
	gap: 14px;
	min-width: 0;
	padding: 13px 14px;
	border: 1px solid var(--qc-line);
	border-left: 4px solid var(--green-500, #50a47b);
	border-radius: 12px;
	background: var(--qc-paper);
	box-shadow: 0 3px 10px rgba(23, 26, 28, 0.045);
}

.repair-task-qc-card.is-history {
	border-left-color: var(--gray-500, #8b96a0);
}

.repair-task-qc-card.is-submitting {
	opacity: 0.58;
}

.repair-task-qc-card-main,
.repair-task-qc-facts,
.repair-task-qc-controls {
	min-width: 0;
}

.repair-task-qc-id {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 44px;
	overflow: hidden;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--qc-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 17px;
	font-weight: 900;
	text-align: left;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.repair-task-qc-operation {
	margin-top: 5px;
	font-size: 25px;
	font-weight: 900;
	line-height: 1.05;
	overflow-wrap: anywhere;
}

.repair-task-qc-position {
	margin-top: 5px;
	color: var(--qc-muted);
	font-size: 14px;
	font-weight: 750;
	overflow-wrap: anywhere;
}

.repair-task-qc-status-pill {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	margin-top: 8px;
	padding: 2px 8px;
	border: 1px solid var(--qc-line);
	border-radius: 999px;
	background: var(--qc-control);
	color: var(--qc-muted);
	font-size: 12px;
	font-weight: 750;
}

.repair-task-qc-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-content: start;
	gap: 7px 14px;
}

.repair-task-qc-facts > div {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.repair-task-qc-facts .is-wide {
	grid-column: 1 / -1;
}

.repair-task-qc-facts span,
.repair-task-qc-review-result span {
	color: var(--qc-muted);
	font-size: 11px;
}

.repair-task-qc-facts strong {
	font-size: 13px;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.repair-task-qc-controls {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 9px;
}

.repair-task-qc-controls > .btn,
.repair-task-qc-buttons .btn,
.repair-task-qc-pagination .btn {
	min-height: 44px;
}

.repair-task-qc-overage {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 8px 10px;
	border-radius: 8px;
	background: var(--orange-50, #fff1d6);
	font-size: 13px;
	font-weight: 750;
}

.repair-task-qc-overage input {
	width: 20px;
	height: 20px;
	margin: 0;
}

.repair-task-qc-no-overage {
	color: var(--qc-muted);
	font-size: 12px;
}

.repair-task-qc-buttons {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 5px;
}

.repair-task-qc-readonly,
.repair-task-qc-review-result {
	padding: 9px 10px;
	border: 1px solid var(--qc-line);
	border-radius: 8px;
	background: var(--qc-control);
	color: var(--qc-muted);
	font-size: 12px;
	line-height: 1.4;
}

.repair-task-qc-review-result {
	display: grid;
	gap: 3px;
}

.repair-task-qc-review-result strong {
	color: var(--qc-ink);
	font-size: 15px;
}

.repair-task-qc-empty {
	display: grid;
	min-height: 150px;
	place-content: center;
	justify-items: center;
	gap: 6px;
	padding: 22px;
	border: 1px dashed var(--qc-line, #c9d0d4);
	border-radius: 12px;
	background: var(--qc-paper);
	color: var(--qc-muted);
	text-align: center;
}

.repair-task-qc-empty.is-error {
	border-color: var(--red-200, #e4aaa4);
	background: var(--red-50, #fff8f7);
}

.repair-task-qc-empty strong {
	color: var(--qc-ink);
	font-size: 18px;
}

.repair-task-qc-empty .btn {
	min-height: 44px;
	margin-top: 4px;
}

.repair-task-qc-spinner {
	width: 22px;
	height: 22px;
	border: 3px solid var(--gray-300, #d5dade);
	border-top-color: var(--primary, #3976aa);
	border-radius: 50%;
	animation: repair-task-qc-spin 0.8s linear infinite;
}

.repair-task-qc-pagination {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 9px;
	min-height: 44px;
}

.repair-task-qc-page-info {
	min-width: 100px;
	color: var(--qc-muted);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
	text-align: center;
}

.repair-task-qc button:focus-visible,
.repair-task-qc input:focus-visible,
.repair-task-qc select:focus-visible {
	outline: 3px solid var(--qc-focus);
	outline-offset: 2px;
}

@keyframes repair-task-qc-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (max-width: 1180px) {
	.repair-task-qc-toolbar {
		grid-template-columns: minmax(0, 1fr) minmax(260px, 1.2fr);
	}

	.repair-task-qc-status-field,
	.repair-task-qc-controls {
		grid-column: 1 / -1;
	}

	.repair-task-qc-card {
		grid-template-columns: minmax(190px, 0.75fr) minmax(320px, 1.45fr);
	}
}

@media (max-width: 760px) {
	.qc-workbench-stack,
	.repair-task-qc {
		padding: 10px;
	}

	.repair-task-qc.is-embedded {
		padding: 0;
	}

	.repair-task-qc-head {
		display: grid;
	}

	.repair-task-qc-toolbar,
	.repair-task-qc-card,
	.repair-task-qc-facts,
	.repair-task-qc-buttons {
		grid-template-columns: minmax(0, 1fr);
	}

	.repair-task-qc-status-field {
		grid-column: auto;
	}

	.repair-task-qc-tabs {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.repair-task-qc-tabs [role="tab"] {
		padding-inline: 6px;
		white-space: normal;
	}

	.repair-task-qc-facts .is-wide {
		grid-column: auto;
	}

	.repair-task-qc-pagination {
		justify-content: space-between;
	}
}

@media (prefers-reduced-motion: reduce) {
	.qc-workbench-task-placeholder-spinner,
	.repair-task-qc-spinner {
		animation: none;
	}
}

/* Task drafting uses the same theme surfaces as the surrounding workbench. */
.repair-task-workbench .repair-task-self-editor,
.repair-task-workbench .repair-task-multiplier-editor {
 margin: 14px 0; padding: clamp(16px, 1.5vw, 24px); border: 1px solid var(--border-color, #d9dee1);
 border-radius: 16px; background: var(--fg-color, #fff); color: var(--text-color, #171a1c); min-width: 0;
}
.repair-task-workbench.is-self-repair > .repair-task-board-shell,
.repair-task-workbench.is-self-repair > .repair-task-position-status { display: none; }
.repair-task-workbench .repair-task-self-heading,
.repair-task-workbench .repair-task-self-submit,
.repair-task-workbench .repair-task-self-discard,
.repair-task-workbench .repair-task-self-rows article { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.repair-task-workbench .repair-task-self-heading strong { font-size: 20px; }
.repair-task-workbench .repair-task-self-editor p,
.repair-task-workbench .repair-task-multiplier-editor p { margin: 5px 0 10px; color: var(--text-muted, #657077); font-size: 14px; line-height: 1.55; }
.repair-task-workbench .repair-task-self-editor p:empty { display: none; }
.repair-task-workbench .repair-task-self-editor label,
.repair-task-workbench .repair-task-multiplier-editor label { display: grid; gap: 6px; font-size: 14px; color: var(--text-color, #171a1c); min-width: 0; }
.repair-task-workbench .repair-task-self-editor input,
.repair-task-workbench .repair-task-self-editor select,
.repair-task-workbench .repair-task-multiplier-editor input,
.repair-task-workbench .repair-task-multiplier-editor select {
 width: 100%; min-height: 42px; padding: 9px 12px; border: 1px solid var(--border-color, #d9dee1);
 border-radius: 8px; background: var(--control-bg, #f3f3f3); color: var(--text-color, #171a1c); font: inherit;
}
.repair-task-workbench .repair-task-self-editor input::placeholder,
.repair-task-workbench .repair-task-multiplier-editor input::placeholder { color: var(--text-muted, #657077); }
.repair-task-workbench .repair-task-self-editor :focus-visible,
.repair-task-workbench .repair-task-multiplier-editor :focus-visible { outline: 2px solid var(--text-color, #171a1c); outline-offset: 3px; }
.repair-task-workbench .repair-task-self-fields { border: 0; padding: 0; margin: 14px 0; min-width: 0; }
.repair-task-workbench .repair-task-self-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 12px; margin-bottom: 12px; align-items: end; }
.repair-task-workbench .repair-task-self-board-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; margin-bottom:12px; align-items:start; }
.repair-task-workbench .repair-task-self-board-block { display:grid; align-content:start; gap:8px; min-width:0; }
.repair-task-workbench .repair-task-self-board-block > label { margin:0; }
.repair-task-workbench .repair-task-self-board-support { display:grid; gap:6px; min-width:0; color:var(--text-muted, #657077); font-size:14px; line-height:1.55; overflow-wrap:anywhere; }
.repair-task-workbench .repair-task-self-board-support > span { display:block; }
.repair-task-workbench .repair-task-self-board-support details { min-width:0; }
.repair-task-workbench .repair-task-self-board-support summary { margin:0; color:var(--text-color, #171a1c); }
.repair-task-workbench .repair-task-self-board-support details[open] > summary { margin-bottom:6px; }
.repair-task-workbench .repair-task-self-board-meta > .repair-task-self-board-conflict { grid-column:1 / -1; margin:0; }
@media(max-width:700px) { .repair-task-workbench .repair-task-self-board-meta { grid-template-columns:1fr; gap:16px; } }
.repair-task-workbench .repair-task-self-board {
	/* Match the task board's width through the editor's nested padding. */
	box-sizing: border-box;
	width: 100cqw;
	min-width: 0;
	margin-inline: calc((100% - 100cqw) / 2);
	margin-bottom: 12px;
	padding: 12px 18px;
}
.repair-task-workbench .repair-task-self-board:empty { display: none; }
.repair-task-workbench .repair-task-self-board .is-self-selectable { cursor: pointer; pointer-events: all; }
.repair-task-workbench .repair-task-self-board .is-self-selectable:focus-visible { outline-color: var(--task-board-ink); }
.repair-task-workbench .repair-task-self-positions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.repair-task-workbench .repair-task-self-editor .repair-task-control,
.repair-task-workbench .repair-task-multiplier-editor .repair-task-control { min-height: 42px; border-width: 1px; border-color: var(--border-color, #d9dee1); background: var(--fg-color, #fff); color: var(--text-color, #171a1c); white-space: normal; }
.repair-task-workbench .repair-task-self-editor .repair-task-control.is-primary,
.repair-task-workbench .repair-task-multiplier-editor .repair-task-control.is-primary { background: var(--btn-primary, #171a1c); border-color: var(--btn-primary, #171a1c); color: var(--neutral, #fff); }
.repair-task-workbench .repair-task-self-editor .repair-task-control:disabled,
.repair-task-workbench .repair-task-multiplier-editor .repair-task-control:disabled { opacity: 1; background: var(--control-bg, #f3f3f3); border-color: var(--border-color, #d9dee1); color: var(--text-muted, #657077); }
.repair-task-workbench .repair-task-self-rows article { padding: 12px 0; border-top: 1px solid var(--border-color, #d9dee1); }
.repair-task-workbench .repair-task-self-rows article > div { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.repair-task-workbench .repair-task-self-rows > h4 { color: inherit; font-size: 16px; margin: 12px 0; }
.repair-task-workbench .repair-task-self-discard { padding: 14px; border: 1px solid var(--border-color, #d9dee1); border-radius: 10px; margin: 12px 0; background: var(--control-bg, #f3f3f3); }
.repair-task-workbench .repair-task-self-editor .repair-task-self-error,
.repair-task-workbench .repair-task-multiplier-editor .repair-task-self-error { color: var(--text-on-red, #a33333); background: var(--bg-red, #fff1f1); border-radius: 8px; padding: 10px 12px; }
.repair-task-workbench .repair-task-self-submit { justify-content: flex-end; border-top: 1px solid var(--border-color, #d9dee1); padding: 14px 0 0; position: sticky; bottom: 0; background: var(--fg-color, #fff); z-index: 3; }

.repair-task-qc-card .repair-task-qc-board-details { grid-column: 1 / -1; min-width: 0; }
.repair-task-qc-card .repair-task-qc-board { width: 100%; max-width: 680px; }
.repair-task-qc-card .repair-task-qc-board-details > summary { cursor: pointer; margin: 8px 0; }

.repair-task-self-editor details > summary { cursor: pointer; margin: 10px 0; }
.repair-task-self-editor .repair-task-self-optional { margin: 14px 0; }

/* Selection and final confirmation retain their separate actions. */
.repair-task-workbench .repair-task-customer { margin:14px 0; padding:16px 0; border:0; border-top:1px solid var(--border-color, #d9dee1); border-bottom:1px solid var(--border-color, #d9dee1); background:transparent; color:var(--text-color, #171a1c); }
.repair-task-workbench .repair-task-customer h4 { margin:0 0 6px; font-size:16px; }
.repair-task-workbench .repair-task-customer p { max-width:76ch; color:var(--text-muted, #657077); }
.repair-task-workbench .repair-task-customer small { display:block; margin-top:3px; font-size:13px; color:var(--text-muted, #657077); }
.repair-task-workbench .repair-task-customer.is-confirmed { display:flex; gap:16px; justify-content:space-between; align-items:center; padding:12px 0; }
.repair-task-workbench .repair-task-customer-search { display:flex; gap:12px; align-items:end; margin-bottom:14px; }
.repair-task-workbench .repair-task-customer-search label { flex:1; max-width:520px; }
.repair-task-workbench .repair-task-customer-search input { display:block; width:100%; min-height:44px; margin-top:0; }
.repair-task-workbench .repair-task-customer-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:10px; }
.repair-task-workbench .repair-task-customer > [data-self-action="confirm-customer"] { margin-top:12px; }
.repair-task-workbench .repair-task-customer-option { display:flex; align-items:center; gap:12px; min-height:74px; padding:12px 14px; border:1px solid var(--border-color, #d9dee1); border-radius:10px; background:var(--fg-color, #fff); text-align:left; color:var(--text-color, #171a1c); }
.repair-task-workbench .repair-task-customer-option.is-selected { border-color:var(--btn-primary, #171a1c); box-shadow:inset 0 0 0 1px var(--btn-primary, #171a1c); background:var(--control-bg, #f3f3f3); }
.repair-task-workbench .repair-task-customer-check { width:22px; height:22px; flex:0 0 22px; border:1px solid var(--text-muted, #657077); border-radius:5px; text-align:center; line-height:20px; color:var(--neutral, #fff); }
.repair-task-workbench .repair-task-customer-option.is-selected .repair-task-customer-check { background:var(--btn-primary, #171a1c); border-color:var(--btn-primary, #171a1c); }
.repair-task-workbench .repair-task-customer-selected-label { margin-left:auto; font-size:13px; color:var(--text-muted, #657077); }
.repair-task-workbench .repair-task-customer-option:focus-visible { outline:2px solid var(--text-color, #171a1c); outline-offset:3px; }
.repair-task-workbench .repair-task-direct-confirm { padding:0; border:0; background:transparent; color:var(--text-color, #171a1c); margin:0; }
.repair-task-workbench .repair-task-direct-confirm h3 { margin:0 0 20px; font-size:22px; }
.repair-task-workbench .repair-task-direct-confirm dl { display:grid; grid-template-columns:95px minmax(0,1fr); gap:12px 16px; margin:0; }
.repair-task-workbench .repair-task-direct-confirm dt { color:var(--text-muted, #657077); font-weight:500; }
.repair-task-workbench .repair-task-direct-confirm dd { margin:0; overflow-wrap:anywhere; }
.repair-task-workbench .repair-task-direct-confirm ol { list-style:none; padding:0; margin:20px 0; border-top:1px solid var(--border-color, #d9dee1); border-bottom:1px solid var(--border-color, #d9dee1); }
.repair-task-workbench .repair-task-direct-confirm li { display:grid; grid-template-columns:minmax(0,320px) 80px; align-items:baseline; gap:8px 20px; padding:14px 0; }
.repair-task-workbench .repair-task-direct-confirm li + li { border-top:1px solid var(--border-color, #d9dee1); }
.repair-task-workbench .repair-task-direct-confirm li span { margin-left:0; }
.repair-task-workbench .repair-task-direct-confirm li p { grid-column:1 / -1; margin:0; }
.repair-task-workbench .repair-task-direct-confirm > strong { display:block; font-size:20px; }
.repair-task-workbench .repair-task-direct-confirm > div { display:flex; justify-content:flex-end; gap:12px; flex-wrap:wrap; margin-top:20px; }
.repair-task-workbench .repair-task-scan-original { white-space:pre-wrap; }
.repair-task-workbench .repair-task-multiplier-choices { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.repair-task-workbench .repair-task-multiplier-choices > span { width:100%; font-size:14px; }
.repair-workload-review button:focus-visible,.repair-workload-review a:focus-visible { outline:3px solid var(--text-color); outline-offset:3px; }
.repair-workload-review { color:var(--text-color); background:var(--fg-color); padding:20px; }
.repair-workload-review h1,.repair-workload-review h2,.repair-workload-review h3,.repair-workload-review label,.repair-workload-review th,.repair-workload-review td { color:var(--text-color); }
.repair-workload-review-intro { max-width:76ch; }
.repair-workload-review-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:18px 0; }
.repair-workload-review-filters label { min-width:150px; flex:1; }
.repair-workload-review input,.repair-workload-review select,.repair-workload-review textarea { display:block; width:100%; border:1px solid var(--border-color); border-radius:4px; padding:9px; min-height:44px; margin-top:5px; color:var(--text-color); background:var(--control-bg); }
.repair-workload-review button,.repair-workload-review a.btn { min-height:44px; padding:10px 15px; }
.repair-workload-review-totals { display:flex; flex-wrap:wrap; gap:24px; border-top:1px solid var(--border-color); border-bottom:1px solid var(--border-color); padding:14px 0; margin:14px 0; }
.repair-workload-review-totals strong { display:block; font-size:22px; }
.repair-workload-review-table { overflow-x:auto; }
.repair-workload-review table { width:100%; border-collapse:collapse; }
.repair-workload-review th,.repair-workload-review td { border-bottom:1px solid var(--border-color); padding:12px 10px; vertical-align:top; text-align:left; }
.repair-workload-review td small { display:block; margin-top:4px; color:var(--text-muted); }
.repair-workload-review-status { display:inline-block; padding:3px 7px; border:1px solid var(--border-color); }
.repair-workload-review-status.is-rejected { color:#991b1b; border-color:#b91c1c; background:#fff1f2; }
.repair-workload-review-pages { display:flex; justify-content:space-between; gap:16px; margin-top:16px; }
.repair-workload-review-detail { border-left:4px solid var(--text-muted); padding:15px; background:var(--control-bg); color:var(--text-color); margin:16px 0; }
.repair-workload-review-reject { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(23,43,77,.4); padding:20px; z-index:1050; }
.repair-workload-review-reject[hidden] { display:none; }
.repair-workload-review-reject>section { width:min(650px,100%); max-height:85vh; overflow:auto; background:var(--fg-color); color:var(--text-color); border:2px solid #b91c1c; padding:24px; }
.repair-workload-review-reject-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.repair-workload-review .is-danger { background:#b91c1c; color:#fff; border:1px solid #991b1b; }
@media(max-width:700px) { .repair-task-customer-search,.repair-task-customer.is-confirmed { align-items:stretch; flex-direction:column; } .repair-task-customer-grid { grid-template-columns:1fr; } .repair-workload-review { padding:10px; } }

/* Drafting has one document scroll, while scan/task execution keeps its existing rail. */
.repair-task-workbench.is-self-repair > .repair-task-action-rail,
.repair-task-workbench.is-self-repair > .repair-task-help,
.repair-task-workbench.is-self-repair > .repair-task-position-controls { display:none; }
.repair-task-workbench.is-self-repair { --task-ink:var(--text-color, #171a1c); --task-muted:var(--text-muted, #657077); --task-line:var(--border-color, #d9dee1); --task-surface:var(--fg-color, #fff); --task-canvas:var(--bg-color, #f4f6f7); padding-bottom:18px; }
.repair-task-workbench.is-self-repair .repair-task-scan-status { background:var(--fg-color, #fff); }
.repair-task-workbench.is-self-repair .repair-task-scan-status kbd { background:var(--control-bg, #f3f3f3); color:var(--text-color, #171a1c); border-color:var(--border-color, #d9dee1); }
.repair-task-workbench.is-self-repair .repair-task-scan-status.is-error { background:var(--bg-red, #fff1f1); color:var(--text-on-red, #a33333); }
.repair-task-workbench.is-direct-workload.is-self-repair .repair-task-top-grid { min-height:128px; }
.repair-task-workbench.is-self-repair .repair-task-identity { background:var(--fg-color, #fff); color:var(--text-color, #171a1c); border:1px solid var(--border-color, #d9dee1); animation:none; }
.repair-task-workbench.is-direct-workload.is-self-repair .repair-task-internal-id { font-size:clamp(18px,1.4vw,24px); line-height:1.4; font-weight:750; overflow-wrap:anywhere; white-space:pre-wrap; }
.repair-task-workbench.is-direct-workload.is-self-repair .repair-task-identity-footer { min-height:0; margin-top:8px; }
.repair-task-workbench.is-self-repair .repair-task-operation { animation:none; background:var(--control-bg, #f3f3f3); color:var(--text-color, #171a1c); }
.repair-task-workbench.is-direct-workload.is-self-repair .repair-task-operation-name { font-size:clamp(24px,2vw,34px); }
.repair-task-workbench.is-direct-workload.is-self-repair .repair-task-operation-position { font-size:20px; margin-top:8px; }
.repair-task-workbench.is-direct-workload.is-self-repair .repair-task-self-editor { max-height:none; overflow:visible; }
.repair-task-workbench.is-direct-workload .repair-task-internal-id { overflow-wrap:anywhere; white-space:pre-wrap; }
@media(max-width:700px) {
 .repair-task-workbench .repair-task-customer-search,.repair-task-workbench .repair-task-customer.is-confirmed { align-items:stretch; flex-direction:column; }
 .repair-task-workbench .repair-task-customer-grid { grid-template-columns:1fr; }
 .repair-task-workbench .repair-task-direct-confirm dl { grid-template-columns:1fr; gap:4px; }
 .repair-task-workbench .repair-task-direct-confirm li { grid-template-columns:minmax(0,1fr) 64px; }
 .repair-task-workbench .repair-task-direct-confirm dd { margin-bottom:12px; }
 .repair-task-workbench .repair-task-self-submit > button { flex:1; }
 .repair-task-workbench .repair-task-self-submit { padding-bottom:8px; }
}

.repair-workload-review-feedback[role="alert"] { color:var(--text-color); background:var(--control-bg); border-left:3px solid #b91c1c; padding:10px 12px; margin:12px 0; }
.repair-workload-review input[aria-invalid="true"] { border-color:#b91c1c; }

/* Independent internal work operations follow their reference board in document flow. */
.repair-task-workbench.is-internal-workload .repair-task-self-submit { position:static; bottom:auto; top:auto; margin-top:16px; }
.repair-task-workbench.is-internal-workload .repair-task-self-submit > div { margin-right:auto; }
.repair-task-workbench.is-internal-workload .repair-task-self-submit p { margin:5px 0 0; }
.repair-task-internal-buttons { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.repair-task-internal-board-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; }
.repair-task-workbench .repair-task-internal-rows { display:grid; gap:10px; margin-top:18px; }
.repair-task-workbench .repair-task-internal-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; padding:12px; border:1px solid var(--border-color,#d9dee1); border-radius:12px; min-width:0; }
.repair-task-workbench .repair-task-internal-row.is-active { border-color:var(--text-color,#171a1c); box-shadow:inset 0 0 0 1px var(--text-color,#171a1c); background:var(--control-bg,#f5f7f8); }
.repair-task-internal-row-label { display:grid; min-width:88px; gap:2px; padding:3px 4px; border:0; background:transparent; color:inherit; text-align:left; }
.repair-task-internal-row-label small { color:var(--text-muted,#657077); }
.repair-task-workbench .repair-task-self-editor .repair-task-internal-icon { display:inline-grid; place-items:center; width:42px; min-width:42px; padding:10px; }
.repair-task-internal-icon svg { width:20px; height:20px; pointer-events:none; }
.repair-task-workbench .repair-task-self-editor .repair-task-internal-label-down { display:inline-flex; align-items:center; gap:7px; }
.repair-task-internal-label-down svg { width:18px; height:18px; pointer-events:none; }
.repair-task-workbench .repair-task-self-editor .repair-task-internal-label-down[aria-checked="true"],.repair-task-internal-label-tag { background:#155e75; color:#fff; border-color:#155e75; }
.repair-task-internal-label-tag { display:inline-block; padding:2px 7px; border-radius:5px; font-size:13px; }
.repair-task-internal-note summary { cursor:pointer; margin-top:8px; color:var(--text-muted,#657077); }
.repair-task-internal-note input { margin-top:6px; }
.repair-task-internal-marks { display:flex; flex-wrap:wrap; gap:8px; }
.repair-task-internal-marks > span { display:inline-flex; align-items:center; gap:7px; padding:3px 7px 3px 10px; border:1px solid var(--border-color,#d9dee1); border-radius:8px; }
.repair-task-workbench .repair-task-self-editor .repair-task-internal-marks .repair-task-internal-icon { min-height:28px; min-width:28px; width:28px; padding:4px; }
.repair-task-internal-region { fill:rgba(232,207,99,.18); stroke:#9b6a13; stroke-width:2px; vector-effect:non-scaling-stroke; }
.repair-task-internal-region.is-draft { stroke-dasharray:5 4; fill:rgba(232,207,99,.1); }
.repair-task-workbench.is-internal-workload .repair-task-self-board { touch-action:none; user-select:none; }
@media(max-width:1000px) { .repair-task-internal-row-label { flex-basis:100%; } }
@media(max-width:560px) { .repair-task-workbench .repair-task-internal-row { gap:8px; padding:10px; } .repair-task-workbench .repair-task-internal-row .repair-task-control { padding-inline:8px; } }

/*
 * Cross-device typography and first-paint geometry stability:
 * Bind the self-hosted InterVariable font with font-display: block so pages
 * never paint a frame with OS fallback metrics and then resize on font swap,
 * while preserving identical Latin/numeric metrics across macOS and Windows.
 */
@font-face {
	font-family: "MemoryInterVariable";
	font-style: normal;
	font-weight: 100 900;
	font-display: block;
	src: url("/assets/frappe/css/fonts/inter/InterVariable.woff2") format("woff2");
}

@font-face {
	font-family: "MemoryInterVariable";
	font-style: italic;
	font-weight: 100 900;
	font-display: block;
	src: url("/assets/frappe/css/fonts/inter/InterVariable-Italic.woff2") format("woff2");
}

html:root,
html[data-theme="light"],
html[data-theme="dark"],
html[data-theme-mode="light"],
html[data-theme-mode="dark"] {
	--font-stack: "MemoryInterVariable", "InterVariable", "Inter", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}

html,
html body {
	font-family: var(--font-stack);
}

body .page-card-head img.app-logo {
	width: 32px;
	height: 32px;
	min-width: 32px;
	min-height: 32px;
	aspect-ratio: 1 / 1;
	display: block;
}

.memory-label-copy-spd-fallback {
	gap: 5px;
}

.memory-spd-fallback-badge {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 18px;
	padding: 0 5px;
	border-radius: 4px;
	background: rgba(37, 99, 235, 0.1);
	border: 1px solid rgba(37, 99, 235, 0.24);
	color: #1d4ed8;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.03em;
	line-height: 1;
}

.memory-label-copy-spd-fallback > .memory-label-short {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
}

.memory-list-search-layout-host .tooltip {
	display: none !important;
}

.memory-label-copy {
	box-sizing: border-box;
	width: fit-content;
	max-width: 100%;
	padding: 1px 6px;
	margin: -1px 0;
	border-radius: 5px;
	transition: background-color 120ms ease, color 120ms ease, box-shadow 120ms ease;
}

.memory-label-copy:hover,
.memory-label-copy:focus-visible {
	background-color: rgba(37, 99, 235, 0.09);
	color: var(--primary);
	box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.22);
	outline: none;
}

.memory-label-copy:active {
	background-color: rgba(37, 99, 235, 0.16);
}

.frappe-control.is-select-dropdown-open select.form-control {
	border-color: var(--primary) !important;
	box-shadow: 0 0 0 2px var(--primary-100);
	outline: none;
}

.memory-list-select-dropdown {
	position: fixed;
	z-index: 1060;
	display: none;
	box-sizing: border-box;
	min-width: 0;
	max-width: calc(100vw - 30px);
	padding: 4px;
	margin: 0;
	overflow-x: hidden;
	overflow-y: auto;
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius, 8px);
	background: var(--fg-color, #ffffff);
	box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18);
}

.memory-list-select-dropdown.is-open {
	display: block;
}

.memory-list-select-dropdown-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	box-sizing: border-box;
	width: 100%;
	min-height: 30px;
	padding: 5px 10px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--text-color);
	font-family: var(--font-stack);
	font-size: var(--text-sm, 13px);
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
}

.memory-list-select-dropdown-item.is-blank .memory-list-select-dropdown-label {
	color: var(--text-muted);
}

.memory-list-select-dropdown-item:hover,
.memory-list-select-dropdown-item.is-active {
	background: var(--bg-light-gray, rgba(15, 23, 42, 0.05));
}

.memory-list-select-dropdown-item.is-selected {
	background: rgba(37, 99, 235, 0.08);
	color: var(--primary);
	font-weight: 600;
}

.memory-list-select-dropdown-item.is-selected.is-blank .memory-list-select-dropdown-label {
	color: var(--primary);
}

.memory-list-select-dropdown-label {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.memory-list-select-dropdown-check {
	flex: 0 0 14px;
	color: var(--primary);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-container {
	box-sizing: border-box;
	padding-inline: 0 !important;
}

.list-view .frappe-list .result.memory-list-resizable .list-row,
.list-view .frappe-list .result.memory-list-resizable .list-row-head {
	box-sizing: border-box;
	width: var(--memory-list-track-width, max-content) !important;
	min-width: 100% !important;
	padding-inline: var(--padding-sm, 8px) !important;
}

.list-view .frappe-list .result.memory-list-resizable .list-row > .level-right,
.list-view .frappe-list .result.memory-list-resizable .list-row-head > .level-right {
	box-sizing: border-box;
	flex: 0 0 332px !important;
	width: 332px !important;
	min-width: 332px !important;
	max-width: 332px !important;
	margin-left: auto !important;
	padding: 0 14px 0 16px !important;
	border-left: 1px solid var(--border-color) !important;
	overflow: hidden;
}

.list-view .frappe-list .result.memory-list-resizable .level-right .list-row-activity {
	display: flex !important;
	width: 100%;
	min-width: 0;
	justify-content: flex-start !important;
	align-items: center;
}

.list-view .frappe-list .result.memory-list-resizable .level-right .list-row-activity .modified {
	display: inline-flex;
	align-items: center;
	margin-right: auto !important;
	min-width: 0;
	white-space: nowrap;
}

.memory-modified-timestamp,
.memory-modified-standard,
.memory-modified-relative {
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	font-variant-numeric: normal !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
	color: var(--text-muted) !important;
	white-space: nowrap;
}

.memory-modified-timestamp {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-head > .level-right .memory-list-modified-header {
	flex: 0 0 auto;
	margin-right: auto;
	color: var(--text-muted);
	font: inherit;
	white-space: nowrap;
	cursor: pointer;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-head > .level-right .memory-list-modified-header:hover {
	color: var(--text-color);
	text-decoration: underline;
}

.list-view .frappe-list .result.memory-list-resizable .list-row-col:is([data-fieldname="status"], .status) a.filterable,
.list-view .frappe-list .result.memory-list-resizable .list-row-col:is([data-fieldname="status"], .status) a.filterable:hover {
	text-decoration: none !important;
}

.memory-unit-status-pill {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 22px;
	max-width: 100%;
	padding: 0 9px;
	border: 1px solid #dcdee0;
	border-radius: 999px;
	background-color: #f2f3f4;
	color: #4b535c;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	vertical-align: middle;
	transition: filter 120ms ease, box-shadow 120ms ease;
}

.memory-unit-status-pill .memory-unit-status-dot {
	flex: 0 0 6px;
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background-color: #6e7781;
}

.memory-unit-status-pill .memory-unit-status-label {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* PANTONE 16-0220 TCX (Mistletoe / 鼠尾草松绿) */
.memory-unit-status-pill.is-in-stock {
	border-color: #c4dec9;
	background-color: #ecf4ee;
	color: #1f5138;
}

.memory-unit-status-pill.is-in-stock .memory-unit-status-dot {
	background-color: #2e6f4e;
}

/* PANTONE 16-1342 TCX (Autumn Glaze / 赤陶琥珀橙) */
.memory-unit-status-pill.is-shipped {
	border-color: #f3d1b8;
	background-color: #fdf1e8;
	color: #944315;
}

.memory-unit-status-pill.is-shipped .memory-unit-status-dot {
	background-color: #c86428;
}

/* PANTONE 17-4028 TCX (Riverside / 雾霾灰蓝) */
.memory-unit-status-pill.is-repairing {
	border-color: #cbdceb;
	background-color: #eef3f8;
	color: #264b6e;
}

.memory-unit-status-pill.is-repairing .memory-unit-status-dot {
	background-color: #3b6e9c;
}

/* PANTONE 16-3815 TCX (Lavender Fog / 鼠尾草灰紫) */
.memory-unit-status-pill.is-reserved {
	border-color: #dcd3ec;
	background-color: #f3f0f8;
	color: #4e3a70;
}

.memory-unit-status-pill.is-reserved .memory-unit-status-dot {
	background-color: #6e5696;
}

a.filterable:hover .memory-unit-status-pill,
.memory-unit-status-pill:hover {
	filter: brightness(0.97);
}




