.sensor-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sensor-kpi{background:#fff;border:1px solid #d3dfda;padding:16px}.sensor-kpi b{font-size:30px;display:block;line-height:1.4}.sensor-kpi small{font-size:11px;color:#5b716a}.sensor-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.sensor-buttons button{background:#dfe9df;color:#214a3c}.sensor-buttons button[data-scenario=excursion]{background:#fff0df;color:#8d4a1b}.sensor-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sensor-card{text-align:left;color:#183a38;background:#f1f5ef;border:1px solid #c2d4c7;border-top:4px solid #6b8e7b;padding:15px;overflow-wrap:anywhere}.sensor-card[aria-pressed=true]{outline:2px solid #007b69;outline-offset:3px}.sensor-card b,.sensor-card small{display:block}.sensor-card .sensor-value{font-size:26px;margin:12px 0 4px}.sensor-card small{font-size:11px;color:#5b716a}.sensor-card.OUT_OF_RANGE{border-top-color:#bc531d;background:#fff2e8}.sensor-card.DATA_STALE,.sensor-card.DATA_INVALID,.sensor-card.DATA_MISSING{border-top-color:#ad843e;background:#faf3e7}.sensor-status{display:inline-block;padding:3px 6px;font-size:11px;margin:7px 0;background:#e6efdf;color:#28553d}.sensor-status.OUT_OF_RANGE{background:#fbe4d2;color:#94400f}.sensor-status.DATA_STALE,.sensor-status.DATA_INVALID,.sensor-status.DATA_MISSING{background:#f4e7c8;color:#795717}.sensor-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sensor-detail-grid section{margin-bottom:0}.sensor-alert{padding:12px;border-left:3px solid #ad843e;background:#faf3e7;margin:8px 0;font-size:12px;overflow-wrap:anywhere}.sensor-alert.OUT_OF_RANGE{border-color:#bc531d;background:#fff2e8}.sensor-detail dl{display:grid;grid-template-columns:110px minmax(0,1fr);font-size:12px;gap:8px;margin:0}.sensor-detail dt{color:#5b716a}.sensor-detail dd{margin:0;overflow-wrap:anywhere}.sensor-controls .toolbar{margin-top:16px}#sensor-message{color:#8d4a1b}#sensor-scope{margin-bottom:0}.sensor-history-current{background:#e7f2e7}@media(max-width:1000px){.sensor-cards,.sensor-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-detail-grid{display:block}}@media(max-width:550px){.sensor-cards,.sensor-kpis{grid-template-columns:1fr}.sensor-detail dl{grid-template-columns:95px minmax(0,1fr)}}
.sensor-controls{padding:14px;margin:14px 0}.sensor-controls p{margin:6px 0}.sensor-controls .section-heading h2{margin-bottom:6px}.sensor-controls .sensor-buttons{margin:10px 0}.sensor-controls .toolbar{margin-top:10px}.sensor-kpi{padding:12px}.sensor-card .sensor-value{display:block}
.sensor-temporal-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.sensor-temporal-kpis .sensor-kpi{border-left:3px solid #ab692f}.sensor-temporal-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start}.sample-chart{width:100%;display:block;background:#f7f9f5;border:1px solid #d3dfda;margin-top:10px}.sample-chart text{font-size:12px;fill:#52695d}.sample-range{fill:#e3eedf}.sample-bound{stroke:#8ca98a;stroke-dasharray:4 4;stroke-width:1}.sample-line{stroke:#547c6a;stroke-width:2}.sample-point{fill:#007b69;stroke:white;stroke-width:2}.sample-point.OUT_OF_RANGE{fill:#bd571f}.sample-chart .sample-missing{fill:#a4752a;font-size:20px}.sample-chart.uncertain{opacity:.6}.sensor-pattern{border-left:3px solid #becbbb;padding:10px;background:#f3f6f0;margin-bottom:8px}.sensor-pattern.DETECTED{border-color:#bd571f;background:#fff2e8}.sensor-pattern.UNVERIFIABLE{border-color:#ad843e;background:#faf3e7}.sensor-pattern span{display:block;font-size:11px;color:#5b716a}.sensor-pattern p{margin:4px 0}.sensor-pattern button{font-size:12px;padding:6px 10px}.sample-legend{margin:8px 0}.review-event details{margin:6px 0}#review-target-summary table{background:white}@media(max-width:1000px){.sensor-temporal-grid{grid-template-columns:1fr}}@media(max-width:550px){.sensor-temporal-kpis{grid-template-columns:1fr}}
.sensor-batch-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sensor-batch-card{padding:12px;background:#edf3ed;border:1px solid #d0ddd3;overflow-wrap:anywhere}.sensor-batch-card small,.review-history-item small{font-size:11px;color:#5b716a}.sensor-batch-card p{margin:8px 0}#sensor-review-form{align-items:flex-end;gap:12px}#sensor-review-form .review-target-field{flex:1;min-width:240px}#sensor-review-form .review-note-field{flex:1;min-width:260px}#sensor-review-form input,#sensor-review-form select{width:100%}#review-refresh{background:#dfe9df;color:#214a3c}#review-target-summary{padding:10px;background:#eef3eb;margin-top:14px;overflow-wrap:anywhere}#review-target-summary p{margin:0}#review-draft-status,#review-message{color:#8d4a1b}.review-history-item{padding:12px;background:#f3f6f1;margin:12px 0;overflow-wrap:anywhere}.review-event{padding:10px;border-left:3px solid #618d79;background:white;margin:8px 0;font-size:12px}.review-event summary{cursor:pointer;margin-top:6px;color:#007b69}@media(max-width:1000px){.sensor-batch-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.sensor-batch-cards{grid-template-columns:1fr}}
.sensor-context-heading{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.sensor-context-heading p{margin:6px 0}.sensor-context-scope,.sensor-context-clocks{overflow-wrap:anywhere}.sensor-batch-card{min-width:0}.sensor-batch-card details{margin:12px 0}.sensor-batch-card details summary{cursor:pointer}.sensor-context-tasks{min-width:640px}.sensor-context-tasks td{vertical-align:top;max-width:220px;overflow-wrap:anywhere}.sensor-context-links{display:flex;gap:8px 16px;flex-wrap:wrap;margin-top:12px}.sensor-context-links a{overflow-wrap:anywhere}.review-event .sensor-batch-cards{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:700px){.review-event .sensor-batch-cards{grid-template-columns:1fr}}
