:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef2f5;color:#17212b;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{border:1px solid #bac6d1;background:#fff;color:#17212b;border-radius:7px;min-height:38px;padding:0 12px;cursor:pointer}button:hover:not(:disabled){border-color:#55718b;background:#f6f9fb}button:disabled{cursor:not-allowed;opacity:.55}input,select{width:100%;min-height:38px;border:1px solid #b8c6d2;border-radius:7px;padding:0 10px;background:#fff;color:#17212b}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{border-bottom:1px solid #d8e0e7;padding:10px 8px;text-align:left;vertical-align:top}th{color:#526879;font-size:.78rem;text-transform:uppercase}.console-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:#1b2a34;color:#f6fbff;padding:18px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;margin-bottom:22px}.brand svg{width:30px;height:30px;color:#95d5b2}.brand span,.eyebrow{display:block;color:#90a7b7;font-size:.78rem;text-transform:uppercase}.device-select{display:grid;gap:8px;margin-bottom:18px;color:#c6d3de;font-size:.8rem;text-transform:uppercase}.sidebar nav{display:grid;gap:7px}.sidebar nav button{justify-content:flex-start;display:flex;align-items:center;gap:9px;background:transparent;border-color:transparent;color:#dce7ef}.sidebar nav button.active,.sidebar nav button:hover{background:#2c3e4b;border-color:#50697d}main{min-width:0;padding:18px}.dev-banner,.topbar,.error-strip,.hero-strip,.panel,.status-card,.json-panel{background:#fff;border:1px solid #d7e0e8;border-radius:8px}.dev-banner{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;color:#5d4600;background:#fff5d7;border-color:#e5ca72}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;margin-bottom:16px}.topbar h2{margin:0}.topbar__meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.error-strip{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:10px 14px;margin-bottom:14px;color:#842b2b;border-color:#e4a1a1;background:#fff1f1}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:16px}.page-grid{display:grid;gap:16px}.hero-strip{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:18px}.hero-strip h1{margin:0 0 4px;font-size:1.45rem}.hero-strip p,.muted{color:#64788a;margin:0}.status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.status-card{padding:14px;position:relative;min-height:118px}.status-card__label{color:#607588;font-size:.78rem;text-transform:uppercase}.status-card__value{overflow-wrap:anywhere;margin-top:8px;font-size:1.1rem;font-weight:700}.status-card__detail{color:#607588;margin-top:7px;font-size:.88rem}.card-icon{position:absolute;right:12px;bottom:12px;width:22px;height:22px;color:#6e8799}.panel,.json-panel{padding:16px}.panel__header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.panel__header h2,.json-panel h3{margin:0;font-size:1rem}.panel__header span{color:#64788a;font-size:.82rem}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}.form-grid label{display:grid;gap:6px;color:#526879;font-size:.82rem}.command-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#234b63;color:#fff;border-color:#234b63}.command-button:hover:not(:disabled){background:#2d607e;border-color:#2d607e}.icon{width:17px;height:17px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status-pill,.connection-badge{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:0 10px;font-size:.78rem;font-weight:700;background:#eef3f7;color:#40586b}.tone-good{border-color:#95c7aa;background:#eefaf2;color:#1e6b3a}.tone-warning,.connection-badge.connecting,.connection-badge.reconnecting{border-color:#e5ca72;background:#fff8df;color:#6e5400}.tone-bad,.connection-badge.error,.connection-badge.closed{border-color:#e2a5a5;background:#fff0f0;color:#8d2d2d}.timeline-list,.stepper{list-style:none;padding:0;margin:0;display:grid;gap:10px}.timeline-item,.stepper__item{border:1px solid #d7e0e8;border-radius:8px;padding:10px;display:grid;gap:7px}.timeline-item .mono{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;color:#64788a;overflow-wrap:anywhere}.timeline-item__status{display:flex;justify-content:space-between;gap:8px;align-items:center}.timeline-item__error{color:#8d2d2d;font-size:.82rem;display:grid;gap:3px}.sensor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.sensor-row{border:1px solid #d7e0e8;border-radius:8px;padding:12px}.sensor-row h3{margin:0 0 4px}.sensor-row dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 0}.sensor-row dt{color:#64788a;font-size:.75rem}.sensor-row dd{margin:0;overflow-wrap:anywhere}.json-panel pre{overflow:auto;max-height:280px;margin:12px 0 0;padding:12px;border-radius:8px;background:#17212b;color:#eaf2f8}.warning-text{color:#8d2d2d}.drill-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.drill-list button.selected{border-color:#234b63;background:#e7f2f8;color:#183849}.disabled-actions{display:flex;gap:10px;flex-wrap:wrap}.workflow-summary{display:flex;justify-content:space-between;margin-bottom:12px}.stepper__item{grid-template-columns:42px 1fr;align-items:center}.stepper__index{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef3f7}.calibration-console{display:grid;gap:16px}.calibration-topline{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:18px;border:1px solid #d7e0e8;border-radius:8px;background:#fff}.calibration-topline h1{margin:0 0 4px;font-size:1.45rem}.calibration-topline p{margin:0;color:#64788a}.calibration-topline__actions,.chart-legend,.warning-panel,.calibration-sensor-card__head{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.calibration-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}.calibration-stepper{position:sticky;top:16px;display:grid;gap:8px}.calibration-stepper button{display:grid;grid-template-columns:28px 1fr;gap:3px 9px;align-items:center;min-height:62px;text-align:left}.calibration-stepper button.active{border-color:#234b63;background:#e7f2f8}.calibration-stepper button span{grid-row:span 2;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef3f7;color:#40586b;font-weight:700}.calibration-stepper button small{color:#64788a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calibration-graphs{min-width:0}.calibration-step-detail{display:grid;gap:12px}.chart-panel{min-width:0;border:1px solid #d7e0e8;border-radius:8px;padding:12px;background:#fbfdff}.chart-panel__header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.chart-panel__header h3,.warning-panel h3,.report-split h3{margin:0;font-size:.95rem}.chart-panel__header span,.chart-legend,.compact-table{color:#64788a;font-size:.82rem}.line-chart{width:100%;height:170px;display:block;overflow:visible}.line-chart line{stroke:#cbd8e3;stroke-width:1}.line-chart polyline{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.line-chart text{fill:#64788a;font-size:11px}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend i{width:10px;height:10px;border-radius:999px;display:inline-block}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric-tile,.metric-bar,.calibration-sensor-card{border:1px solid #d7e0e8;border-radius:8px;padding:11px;background:#fff}.metric-tile{display:grid;gap:5px}.metric-tile span,.metric-bar span,.detail-list dt{color:#64788a;font-size:.76rem;text-transform:uppercase}.metric-tile strong{overflow-wrap:anywhere}.metric-tile small{color:#64788a}.metric-bar{display:grid;gap:8px}.metric-bar>div:first-child{display:flex;justify-content:space-between;gap:8px}.metric-bar__track{height:8px;border-radius:999px;background:#e5edf3;overflow:hidden}.metric-bar__track span{display:block;height:100%;border-radius:inherit;background:#55718b}.metric-bar__track span.tone-good{background:#2f855a}.metric-bar__track span.tone-warning{background:#b7791f}.metric-bar__track span.tone-bad{background:#c53030}.warning-panel{align-items:flex-start;border:1px solid #d7e0e8;border-radius:8px;padding:12px}.warning-panel h3{width:100%}.calibration-sensor-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.calibration-sensor-card{min-width:0;display:grid;gap:10px}.calibration-sensor-card__head{justify-content:space-between}.calibration-sensor-card h3{margin:0}.calibration-sensor-card dl,.detail-list{display:grid;gap:8px;margin:0}.calibration-sensor-card dt,.detail-list dt{margin-bottom:2px}.calibration-sensor-card dd,.detail-list dd{margin:0;overflow-wrap:anywhere}.compact-table{font-size:.82rem}.compact-table th,.compact-table td{padding:7px 6px}.report-split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px;margin:14px 0}.event-matrix{max-height:320px;display:block;overflow:auto}.calibration-command-panel .command-button:nth-of-type(3){background:#8d2d2d;border-color:#8d2d2d}@media(max-width:1180px){.content-grid{grid-template-columns:1fr}.status-grid,.calibration-sensor-grid,.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calibration-layout{grid-template-columns:1fr}.calibration-stepper{position:static}}@media(max-width:760px){.console-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav,.form-grid,.sensor-grid,.calibration-sensor-grid,.metric-grid,.report-split,.status-grid,.drill-list{grid-template-columns:1fr}.topbar,.hero-strip,.calibration-topline,.workflow-summary{align-items:flex-start;flex-direction:column}}
