/* Lab workspace: shared fields and external CSS, including SVG chart colors. */
.lab-workspace.lab-v2 { min-width:0; margin:0 0 110px; padding:0; border:0; background:transparent; }
.lab-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; align-items:start; gap:18px; }
.lab-form-panel,.lab-side-panel,.lab-history { background:var(--paper); border:1px solid var(--line); border-radius:14px; min-width:0; }
.lab-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 20px; border-bottom:1px solid var(--line); }
.lab-heading h3,.lab-side-panel h3,.lab-history-heading h3 { margin:0; font-size:1rem; }
.lab-heading>span { font-size:.76rem; color:var(--muted); }
.lab-v2 fieldset { border:0; margin:0; padding:20px 20px 0; min-width:0; }
.lab-meta { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1.2fr) minmax(0,1.2fr) max-content; gap:10px; align-items:start; }
.lab-name-field { min-width:0; }
.lab-name-field>.btn { margin-top:6px; font-size:.72rem; }
.lab-doc { align-self:end; background:var(--deck); color:var(--deck-ink); border-radius:10px; padding:8px 12px; }
.lab-doc .ui-metric { flex-direction:column-reverse; gap:0; }
.lab-doc .ui-metric>span { color:var(--deck-muted); font-size:.68rem; }
.lab-doc .ui-metric>strong { color:var(--g); line-height:1.1; font-size:1.9rem; }
:root[data-theme="dark"] .lab-doc { background:color-mix(in srgb,var(--accent) 22%,var(--paper)); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 65%,var(--line)); }
:root[data-theme="dark"] .lab-doc .ui-metric>span { color:var(--ink); }
:root[data-theme="dark"] .lab-doc .ui-metric>strong { color:var(--accent); }
.lab-v2 .ui-field>label { font-size:.78rem; }
.lab-instructions { font-size:.76rem; line-height:1.65; background:var(--field); color:var(--muted); padding:12px; border-radius:10px; margin:16px 0; }
.lab-group { border:1px solid var(--line); border-radius:12px; margin:14px 0; background:var(--paper); }
.lab-group>header { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:10px 12px; border-bottom:1px solid var(--line); background:var(--field); border-radius:11px 11px 0 0; }
.lab-group h3 { margin:0; font-size:.9rem; }
.lab-group>header>span { font-size:.69rem; color:var(--ok); background:var(--ok-bg); border-radius:20px; padding:2px 8px; }
.lab-group>header>.btn { margin-left:auto; font-size:.69rem; padding:5px 8px; min-height:32px; }
.lab-column-head,.lab-input { display:grid; grid-template-columns:minmax(110px,1fr) minmax(190px,1.05fr) minmax(76px,.6fr); gap:10px; align-items:center; padding:8px 12px; }
.lab-column-head { font-size:.67rem; color:var(--muted); padding-bottom:5px; }
.lab-input { border-top:1px solid var(--line); }
.lab-input-title { display:block; font-size:.83rem; font-weight:600; min-width:0; }
.lab-input-title small { display:block; font-weight:400; font-size:.67rem; color:var(--muted); line-height:1.5; }
.lab-number-row { display:grid; grid-template-columns:minmax(65px,1fr) auto minmax(92px,.9fr); align-items:start; gap:5px; min-width:0; }
.lab-number-row>.ui-field { min-width:0; }
.lab-number-row>span { font-size:.72rem; color:var(--accent); white-space:nowrap; padding-top:11px; font-weight:600; }
.lab-number-row input { width:100%; padding-right:6px; padding-left:9px; }
.lab-number-row .ui-select-trigger { padding-left:7px; padding-right:6px; font-size:.78rem; }
.lab-result { min-width:0; font-size:.78rem; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.lab-result small { display:block; font-size:.65rem; }
.lab-result>span { font-weight:600; }
.lab-note { margin:18px 0; }
.lab-form-footer { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:8px; padding:16px 20px; border-top:1px solid var(--line); background:var(--field); border-radius:0 0 13px 13px; }
.lab-form-panel .ui-alert { margin:12px 20px; }
.lab-sidebar { display:grid; gap:16px; min-width:0; }
.lab-side-panel { padding:16px; }
.lab-sidebar .lab-latest { margin:0; }
.lab-side-caption { font-size:.73rem; color:var(--muted); margin:6px 0 12px; }
.lab-metric-grid { display:grid; gap:8px; }
.lab-metric-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.lab-metric { border-radius:8px; padding:9px; min-width:0; }
.lab-metric>span { display:block; font-size:.7rem; }
.lab-metric strong { display:block; font-size:1.2rem; line-height:1.5; font-variant-numeric:tabular-nums; }
.lab-metric small { display:block; font-size:.65rem; }
.lab-tone-ok { color:var(--ok); background:var(--ok-bg); }
.lab-tone-warn { color:var(--warn); background:var(--warn-bg); }
.lab-tone-bad { color:var(--bad); background:var(--bad-bg); }
.lab-tone-none { color:var(--muted); background:var(--field); }
.lab-thresholds p { font-size:.74rem; color:var(--muted); line-height:1.7; margin:10px 0; }
.lab-thresholds>small,.lab-trend>small { display:block; font-size:.67rem; color:var(--muted); line-height:1.7; }
.lab-trend-plot { position:relative; }
.lab-trend svg { width:100%; height:auto; display:block; overflow:visible; }
.lab-chart-baseline { stroke:var(--line); stroke-width:1; }
.lab-chart-limit { fill:none; stroke-width:1; stroke-dasharray:3 3; }
.lab-chart-limit-normal { stroke:var(--ok); fill:var(--ok); }
.lab-chart-limit-warning { stroke:var(--bad); fill:var(--bad); }
.lab-chart-label { stroke:none; font-size:12px; font-family:var(--font-numeric); font-weight:600; }
.lab-chart-sample { cursor:pointer; outline:none; }
.lab-chart-bar { fill:currentColor; }
.lab-chart-hit { fill:transparent; pointer-events:all; }
.lab-chart-sample[data-selected] .lab-chart-hit { fill:var(--accent); fill-opacity:.08; }
.lab-chart-sample:focus-visible .lab-chart-hit { stroke:var(--accent); stroke-width:1; }
.lab-chart-date,.lab-chart-axis-label { fill:var(--muted); font-family:var(--font-body); font-size:12px; }
.lab-chart-exponent { font-size:9px; }
.lab-chart-missing { fill:var(--field); stroke:currentColor; }
.lab-chart-zero { fill:currentColor; font-family:var(--font-body); font-size:11px; }
.lab-chart-details { min-height:118px; margin:4px 0 8px; }
.lab-chart-readout { display:flex; align-items:center; min-height:100px; padding:0 12px; border:1px dashed var(--line); border-radius:10px; font-size:.7rem; color:var(--muted); margin:0; }
.lab-chart-tooltip { display:grid; gap:4px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--field); color:var(--ink); font-size:.76rem; overflow-wrap:anywhere; }
.lab-chart-tooltip>strong { font-size:.74rem; }
.lab-chart-tooltip>small { color:var(--muted); font-size:.68rem; }
.lab-chart-status { justify-self:start; padding:2px 7px; border-radius:6px; font-size:.72rem; }
.lab-history { margin-top:18px; overflow:hidden; }
.lab-history-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:16px 20px; border-bottom:1px solid var(--line); }
.lab-history-heading>.btn { margin-left:auto; }
.lab-history-heading .ui-segment { flex-wrap:wrap; }
.lab-history>.lab-legend { padding:10px 16px; margin:0; }
.lab-compact-table { font-size:.78rem; white-space:nowrap; }
.lab-compact-table th,.lab-compact-table td { padding:10px 12px; text-align:center; }
.lab-compact-table th:first-child,.lab-compact-table td:nth-child(2),.lab-compact-table td:nth-child(4) { text-align:left; }
.lab-compact-table small { display:block; font-size:.67rem; font-weight:400; color:var(--muted); }
.lab-compact-table tbody tr { cursor:pointer; }
.lab-compact-table tbody tr:hover { background:var(--field); }
.lab-record-link { appearance:none; border:0; background:none; color:var(--ink); font:inherit; font-weight:600; cursor:pointer; text-align:left; padding:7px 0; }
.lab-record-link:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }
.lab-cell-value { display:inline-block; padding:4px 8px; border-radius:6px; font-weight:600; }
.lab-cell-value small { color:inherit; }
.lab-all-latest { padding:12px 20px; border-bottom:1px solid var(--line); }
.lab-all-latest>summary { cursor:pointer; color:var(--accent); font-size:.82rem; }
.lab-detail .ui-dialog-header { padding:12px 16px; align-items:center; }
.lab-detail .ui-dialog-header>div { min-width:0; }
.lab-detail .ui-dialog-header h2 { font-size:1.05rem; }
.lab-detail .ui-dialog-header p { display:flex; align-items:center; flex-wrap:wrap; gap:4px 8px; margin:4px 0 0; font-size:.78rem; }
.lab-detail-cycle { padding:2px 8px; font-size:.72rem; color:var(--accent); background:var(--ok-bg); white-space:nowrap; }
.lab-detail .ui-dialog-body { padding:12px 16px; }
.lab-detail .ui-dialog-footer { padding:10px 16px; }
.lab-detail-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 14px; margin:0 0 12px; }
.lab-detail dt { font-size:.76rem; color:var(--muted); }
.lab-detail dd { margin:2px 0 0; font-size:.85rem; font-weight:600; overflow-wrap:anywhere; }
.lab-detail-group { border:1px solid var(--line); border-radius:10px; margin:8px 0; }
.lab-detail-group h3 { margin:0; padding:6px 10px; background:var(--field); font-size:.82rem; border-radius:9px 9px 0 0; }
.lab-detail-group h3 small { color:var(--muted); font-weight:400; }
.lab-detail-group dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; }
.lab-detail-group dl>div { padding:7px 10px; border-top:1px solid var(--line); }
.lab-detail-group dd small { display:block; font-size:.7rem; font-weight:400; color:var(--muted); }
.lab-detail-note h3 { font-size:.82rem; margin:10px 0 4px; }
.lab-detail-note p { margin:0; font-size:.82rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.lab-detail>.ui-dialog-body>.lab-legend { margin:8px 0 0; font-size:.72rem; }
.lab-latest { margin: 20px 0; }
.lab-latest h3 { font-size: .95rem; }
.lab-latest .ui-table { white-space: nowrap; }
.lab-table { white-space: nowrap; }
.lab-table th, .lab-table td { text-align: center; }
.lab-table small, .lab-latest small { display: block; font-size: .72em; font-weight: 400; }
.lab-table .lab-cell-ok { background: var(--ok-bg); color: var(--ok); }
.lab-table .lab-cell-warn { background: var(--warn-bg); color: var(--warn); }
.lab-table .lab-cell-bad { background: var(--bad-bg); color: var(--bad); }
.lab-row-actions { display: flex; gap: 6px; }
.lab-note-cell { min-width: 180px; max-width: 400px; white-space: pre-wrap; overflow-wrap: anywhere; }
.lab-legend { font-size: .8rem; color: var(--muted); }

@media(min-width:1201px) {
 .lab-doc .ui-metric>span { white-space:nowrap; }
}
@media(max-width:1200px) {
 .lab-layout { grid-template-columns:minmax(0,1fr) 250px; gap:14px; }
 .lab-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .lab-doc { align-self:end; }
 .lab-column-head,.lab-input { grid-template-columns:minmax(90px,.8fr) minmax(185px,1.2fr) minmax(65px,.55fr); gap:8px; padding-left:10px; padding-right:10px; }
}
@media(max-width:1050px) {
 .lab-layout { grid-template-columns:minmax(0,1fr); }
 .lab-sidebar { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .lab-side-panel { padding:14px; }
}
@media(max-width:700px) {
 .lab-workspace.lab-v2 { margin-bottom:150px; }
 .lab-heading { padding:14px; gap:8px; }
 .lab-heading h3 { font-size:.9rem; }
 .lab-heading>span { font-size:.68rem; }
 .lab-v2 fieldset { padding:14px 12px 0; }
 .lab-meta { gap:12px; }
 .lab-sidebar { grid-template-columns:minmax(0,1fr); }
 .lab-column-head { display:none; }
 .lab-input { grid-template-columns:minmax(0,1fr) 80px; padding:12px; gap:7px 10px; }
 .lab-input-title { grid-column:1/-1; }
 .lab-number-row { grid-template-columns:minmax(52px,1fr) auto minmax(80px,.95fr); gap:4px; }
 .lab-number-row .ui-select-trigger { font-size:.74rem; }
 .lab-input-title small { font-size:.7rem; }
 .lab-result { font-size:.75rem; }
 .lab-group>header { padding:10px; gap:6px; }
 .lab-group>header>.btn { min-height:40px; padding:6px; font-size:.67rem; }
 .lab-group h3 { font-size:.84rem; }
 .lab-group>header>span { font-size:.64rem; padding:2px 5px; }
 .lab-form-footer { padding:14px 12px; }
 .lab-history-heading { padding:14px; gap:10px; }
 .lab-history-heading h3 { flex:1; }
 .lab-history-heading .ui-segment { order:2; width:100%; }
 .lab-history-heading .ui-segment button { flex:1; padding:8px; font-size:.76rem; }
 .lab-detail-meta,.lab-detail-group dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .lab-detail .ui-dialog-footer { flex-wrap:wrap; }
}
@media(max-width:370px) {
 .lab-meta { grid-template-columns:minmax(0,1fr); }
 .lab-input { grid-template-columns:minmax(0,1fr); }
 .lab-result { display:flex; align-items:baseline; gap:8px; }
 .lab-group>header>.btn { margin-left:0; }
}
@media print {
 .lab-print .lab-table { font-size: 6pt; table-layout: auto; min-width: 0; }
 .lab-print .lab-table th, .lab-print .lab-table td { padding: 3px 2px; }
 .lab-print .lab-table td > span { white-space: nowrap; }
 .lab-print .lab-note-cell { min-width: 0; max-width: 32mm; }
 .lab-print .ui-badge { white-space: normal; padding: 2px; font-size: inherit; }
 .lab-print .ui-badge svg { width: 9px; height: 9px; }
 .lab-print .lab-table tr > :nth-child(4), .lab-print .lab-table tr > :nth-child(5) { white-space: nowrap; }
 .lab-print .lab-legend { font-size: 7pt; }
}
