	.admin-shell {
		background:
			radial-gradient(circle at 12% 8%, rgba(13, 110, 253, .13), transparent 26%),
			radial-gradient(circle at 88% 16%, rgba(25, 135, 84, .12), transparent 30%);
		margin-left: calc(-0.5 * var(--bs-gutter-x));
		margin-right: calc(-0.5 * var(--bs-gutter-x));
		padding-left: calc(0.5 * var(--bs-gutter-x));
		padding-right: calc(0.5 * var(--bs-gutter-x));
	}
	.admin-card {
		border: 1px solid rgba(0,0,0,.08);
		border-radius: 20px;
		background: var(--bs-body-bg);
		box-shadow: 0 18px 48px rgba(30, 41, 59, .08);
	}
	[data-bs-theme="dark"] .admin-card {
		border-color: rgba(255,255,255,.1);
		box-shadow: 0 18px 48px rgba(0,0,0,.25);
	}
	.machine-quick-list {
		display: grid;
		/* auto-fill + 固定上限 220px:單機時不撐滿,多機時自動換行 */
		grid-template-columns: repeat(auto-fill, minmax(180px, 220px));
		gap: .75rem;
	}
	.machine-quick-card {
		border: 1px solid rgba(13, 110, 253, .16);
		border-radius: 16px;
		padding: .85rem;
		background: linear-gradient(135deg, rgba(13,110,253,.08), rgba(25,135,84,.08));
		cursor: pointer;
	}
	.machine-quick-card.active {
		border-color: var(--bs-primary);
		box-shadow: 0 0 0 2px rgba(13,110,253,.15);
	}
	.machine-thumb {
		width: 100%;
		aspect-ratio: 16 / 9;
		object-fit: cover;
		border-radius: 12px;
		margin-bottom: .6rem;
		background: rgba(108,117,125,.12);
	}
	.machine-thumb-placeholder {
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--bs-secondary-color);
		font-size: .82rem;
		font-weight: 650;
		line-height: 1.25;
		padding: .75rem;
		text-align: center;
	}
	/* archive 卡片內的截圖縮略圖 — 比 machine-thumb 略小,在 lab-result-card 列表內 */
	.archive-thumb {
		width: 100%;
		max-width: 280px;
		aspect-ratio: 16 / 9;
		object-fit: cover;
		border-radius: 8px;
		margin-bottom: .5rem;
		background: rgba(108,117,125,.12);
		display: block;
	}
	.archive-thumb-placeholder {
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--bs-secondary-color);
		font-size: .75rem;
		font-weight: 600;
		line-height: 1.2;
		padding: .5rem;
		text-align: center;
	}
	/* student history modal 內的縮略圖條:橫向排列,每張更小 */
	.archive-thumb-strip {
		width: 140px;
		max-width: 140px;
		aspect-ratio: 16 / 9;
		margin-bottom: 0;
	}
	.machine-quick-card .status-dot {
		width: .65rem;
		height: .65rem;
		border-radius: 999px;
		display: inline-block;
		margin-right: .35rem;
		background: #adb5bd;
	}
	.machine-quick-card .status-dot.online {
		background: #198754;
		box-shadow: 0 0 0 4px rgba(25,135,84,.12);
	}
	.status-chip-row {
		display: flex;
		flex-wrap: wrap;
		gap: .3rem;
		margin-top: .35rem;
	}
	.status-chip {
		display: inline-flex;
		align-items: center;
		max-width: 100%;
		border-radius: 999px;
		padding: .12rem .5rem;
		background: rgba(108,117,125,.12);
		color: var(--bs-secondary-color);
		font-size: .72rem;
		font-weight: 650;
	}
	.status-chip-ok {
		background: rgba(25,135,84,.13);
		color: #198754;
	}
	.status-chip-warn {
		background: rgba(255,193,7,.18);
		color: #8a6400;
	}
	.status-chip-danger {
		background: rgba(220,53,69,.14);
		color: var(--bs-danger);
	}
	[data-bs-theme="dark"] .status-chip-warn {
		color: #ffd666;
	}
	.safe-id-value {
		font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
		font-weight: 700;
	}
	.logout-link {
		color: var(--bs-danger);
		font-size: .75rem;
		text-decoration: none;
	}
	.logout-link:hover {
		color: var(--bs-danger);
		text-decoration: underline;
	}
	.toast-host {
		position: fixed;
		top: 1rem;
		right: 1rem;
		z-index: 1080;
		display: grid;
		gap: .5rem;
	}
	.admin-toast {
		min-width: 260px;
		border-radius: 14px;
		padding: .85rem 1rem;
		color: #fff;
		background: #198754;
		box-shadow: 0 18px 48px rgba(30, 41, 59, .22);
	}
	.admin-toast.error {
		background: #dc3545;
	}
	.feedback-banner {
		border-radius: 16px;
		padding: 1rem;
		border: 1px solid rgba(13,110,253,.16);
		background: rgba(13,110,253,.08);
	}
	.feedback-banner.error {
		border-color: rgba(220,53,69,.24);
		background: rgba(220,53,69,.1);
	}
	.school-required-banner {
		grid-column: 1 / -1;
		border: 1px dashed rgba(13,110,253,.35);
		border-radius: 18px;
		padding: 2rem;
		text-align: center;
		background: linear-gradient(135deg, rgba(13,110,253,.08), rgba(255,193,7,.12));
	}
	.tooo-page-header {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		justify-content: space-between;
		gap: 1rem;
		margin-bottom: 1rem;
	}
	.tooo-breadcrumb a {
		color: var(--bs-secondary-color);
		font-size: .85rem;
		text-decoration: none;
	}
	.tooo-breadcrumb a:hover {
		color: var(--bs-primary);
		text-decoration: underline;
	}
	.tooo-id-chip {
		display: inline-flex;
		align-items: center;
		border-radius: 999px;
		padding: .12rem .55rem;
		background: rgba(108,117,125,.12);
		color: var(--bs-secondary-color);
		font-size: .72rem;
		font-weight: 700;
	}
	.tooo-id-chip.pending {
		background: rgba(255,193,7,.18);
		color: #8a6400;
	}
	[data-bs-theme="dark"] .tooo-id-chip.pending {
		color: #ffd666;
	}
	.tooo-school-grid,
	.tooo-module-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
		gap: 1rem;
	}
	.tooo-school-card,
	.tooo-module-card {
		border: 1px solid rgba(0,0,0,.08);
		border-radius: 18px;
		padding: 1rem;
		background: var(--bs-body-bg);
		color: inherit;
		text-align: left;
		text-decoration: none;
		transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
	}
	.tooo-school-card:hover,
	.tooo-module-card:hover {
		border-color: rgba(13,110,253,.35);
		box-shadow: 0 16px 40px rgba(30,41,59,.10);
		transform: translateY(-1px);
	}
	.tooo-module-card .icon {
		width: 2.3rem;
		height: 2.3rem;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border-radius: 14px;
		margin-bottom: .8rem;
		background: linear-gradient(135deg, rgba(13,110,253,.14), rgba(25,135,84,.12));
		color: var(--bs-primary);
		font-weight: 800;
	}
	.tooo-module-card .title,
	.tooo-school-card .name {
		font-size: 1rem;
		font-weight: 800;
	}
	.tooo-module-card .sub,
	.tooo-school-card .stat {
		margin-top: .35rem;
		color: var(--bs-secondary-color);
		font-size: .82rem;
	}
	.tooo-module-header {
		border: 1px solid rgba(13,110,253,.14);
		border-radius: 18px;
		padding: 1rem;
		margin-bottom: 1rem;
		background: linear-gradient(135deg, rgba(13,110,253,.07), rgba(25,135,84,.06));
	}
	.tooo-icon-btn {
		border: 0;
		border-radius: 999px;
		padding: .2rem .55rem;
		color: var(--bs-primary);
		background: rgba(13,110,253,.1);
	}
	.tooo-icon-btn:hover {
		background: rgba(13,110,253,.16);
	}
	.tooo-icon-btn svg {
		width: 1rem;
		height: 1rem;
		display: block;
	}
	.tooo-modal-backdrop {
		position: fixed;
		inset: 0;
		z-index: 1070;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 1rem;
		background: rgba(15,23,42,.46);
	}
	.tooo-modal-card {
		width: min(760px, 100%);
		max-height: calc(100vh - 2rem);
		overflow: auto;
		border: 1px solid rgba(255,255,255,.18);
		border-radius: 22px;
		background: var(--bs-body-bg);
		box-shadow: 0 28px 70px rgba(0,0,0,.28);
		padding: 1.25rem;
	}
	.machine-quick-list.is-disabled .machine-quick-card {
		pointer-events: none;
		opacity: .45;
	}
	[data-bs-theme="dark"] .tooo-school-card,
	[data-bs-theme="dark"] .tooo-module-card {
		border-color: rgba(255,255,255,.12);
	}
	.form-label {
		font-weight: 600;
		font-size: .85rem;
	}
	.lab-result-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
		gap: .75rem;
	}
	.lab-result-card {
		border: 1px solid rgba(0,0,0,.08);
		border-radius: 14px;
		padding: .85rem;
		background: var(--bs-body-bg);
	}
	[data-bs-theme="dark"] .lab-result-card {
		border-color: rgba(255,255,255,.12);
	}
	.lab-result-card pre {
		margin: .35rem 0 0;
		white-space: pre-wrap;
		word-break: break-word;
		font-size: .75rem;
	}
	.lab-stat-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
		gap: .75rem;
	}
	.lab-stat-card {
		border: 1px solid rgba(13,110,253,.14);
		border-radius: 14px;
		padding: .85rem;
		background: linear-gradient(135deg, rgba(13,110,253,.08), rgba(25,135,84,.06));
	}
	.risk-pill {
		display: inline-flex;
		align-items: center;
		border-radius: 999px;
		padding: .1rem .5rem;
		font-size: .72rem;
		font-weight: 700;
		background: rgba(108,117,125,.12);
		color: var(--bs-secondary-color);
	}
	.risk-pill.risk-low { background: rgba(13,110,253,.12); color: var(--bs-primary); }
	.risk-pill.risk-medium { background: rgba(255,193,7,.18); color: #8a6400; }
	.risk-pill.risk-high,
	.risk-pill.risk-critical { background: rgba(220,53,69,.14); color: var(--bs-danger); }
	[data-bs-theme="dark"] .risk-pill.risk-medium { color: #ffd666; }
