:root,:root[data-theme=light]{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef2f6;color:#142033;--bg: #eef2f6;--surface: #ffffff;--surface-muted: #f5f7fa;--surface-hover: #edf4fb;--surface-raised: #ffffff;--border: #d7dee8;--border-strong: #aeb9c9;--text: #142033;--muted: #667085;--muted-strong: #475467;--accent: #1f8a70;--accent-strong: #176d59;--accent-soft: #dff5ee;--info-bg: #e0f2fe;--info-text: #075985;--success-bg: #dcfce7;--success-text: #166534;--warning-bg: #fef3c7;--warning-text: #92400e;--danger-bg: #ffe4e6;--danger-text: #be123c;--shadow: 0 16px 36px rgb(15 23 42 / .08);--focus: 0 0 0 3px rgb(31 138 112 / .24)}:root[data-theme=dark]{color-scheme:dark;background:#0f131a;color:#edf2f7;--bg: #0f131a;--surface: #151b24;--surface-muted: #1c2530;--surface-hover: #232f3d;--surface-raised: #111720;--border: #2b3746;--border-strong: #435266;--text: #edf2f7;--muted: #9aa7b7;--muted-strong: #c3ccd8;--accent: #41b89c;--accent-strong: #6ee7c8;--accent-soft: #12382f;--info-bg: #112d40;--info-text: #7dd3fc;--success-bg: #11351f;--success-text: #86efac;--warning-bg: #3c2e10;--warning-text: #fde68a;--danger-bg: #431b24;--danger-text: #fda4af;--shadow: 0 20px 48px rgb(0 0 0 / .28);--focus: 0 0 0 3px rgb(65 184 156 / .28)}*{box-sizing:border-box}body{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-muted) 42%,transparent),transparent 280px),var(--bg);color:var(--text);margin:0;min-width:320px}button,input{font:inherit}button{align-items:center;background:var(--accent);border:1px solid transparent;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-weight:800;justify-content:center;min-height:40px;padding:0 14px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease}button:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px)}button:focus-visible,input:focus-visible{box-shadow:var(--focus);outline:none}button:disabled{cursor:not-allowed;opacity:.55}input{background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);min-height:40px;padding:0 10px}input[aria-invalid=true]{border-color:var(--danger-text)}.app-shell{margin:0 auto;max-width:1440px;min-height:100vh;padding:24px}.topbar{align-items:center;display:flex;gap:20px;justify-content:space-between;margin-bottom:18px}.brand-block{min-width:0}.title-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.topbar h1{font-size:28px;line-height:1.05;margin:0}.topbar-subtitle,.panel-heading p{color:var(--muted);font-size:13px;margin:7px 0 0}.topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.protocol-badge,.count-pill,.connection-pill,.status-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;gap:7px;line-height:1;padding:7px 10px;text-transform:uppercase;white-space:nowrap}.protocol-badge{background:var(--info-bg);color:var(--info-text)}.connection-pill,.status-badge{background:var(--warning-bg);color:var(--warning-text)}.connection-pill:before,.status-badge:before{background:currentColor;border-radius:999px;content:"";height:7px;width:7px}.connection-pill[data-connected=true],.status-badge[data-status=online],.status-badge[data-status=accepted],.status-badge[data-status=success],.status-badge[data-status=normal]{background:var(--success-bg);color:var(--success-text)}.connection-pill[data-connected=false],.status-badge[data-status=offline],.status-badge[data-status=rejected],.status-badge[data-status=failed],.status-badge[data-status=error],.status-badge[data-status=danger]{background:var(--danger-bg);color:var(--danger-text)}.status-badge[data-status=pending],.status-badge[data-status=sent],.status-badge[data-status=warning]{background:var(--warning-bg);color:var(--warning-text)}.status-badge[data-status=unknown]{background:var(--surface-muted);color:var(--muted-strong)}.count-pill{background:var(--surface-muted);border:1px solid var(--border);color:var(--muted-strong)}.refresh-meta{background:var(--surface);border:1px solid var(--border);border-radius:8px;display:grid;gap:3px;min-height:46px;min-width:180px;padding:7px 10px}.refresh-meta span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.refresh-meta strong{color:var(--text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-toggle{background:var(--surface);border-color:var(--border);color:var(--muted-strong);min-width:46px;padding:0;width:46px}.theme-toggle:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong);color:var(--text)}.theme-toggle svg{fill:none;height:19px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:19px}.error-banner{background:var(--danger-bg);border:1px solid color-mix(in srgb,var(--danger-text) 34%,transparent);border-radius:8px;color:var(--danger-text);font-weight:800;margin-bottom:14px;padding:12px 14px}.dashboard-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.details-column{display:grid;gap:16px;min-width:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:16px}.device-list{position:sticky;top:18px}.panel-heading,.section-heading{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.panel-heading h2,.section-heading h3{font-size:17px;line-height:1.2;margin:0}.section-heading{margin-top:18px}.section-heading span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.state-block,.empty-state{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;color:var(--muted-strong);padding:14px}.empty-state{display:grid;min-height:220px;place-content:center;text-align:center}.empty-state h2{font-size:22px;margin:0 0 8px}.empty-state p{color:var(--muted);margin:0}.device-stack{display:grid;gap:10px}.device-card{align-items:stretch;background:var(--surface-muted);border-color:var(--border);color:var(--text);display:grid;gap:12px;justify-content:stretch;min-height:92px;padding:12px;text-align:left;width:100%}.device-card:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong);color:var(--text)}.device-card[data-selected=true]{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.device-card-main,.device-card-meta{align-items:center;display:flex;gap:10px;justify-content:space-between;min-width:0}.device-card strong{overflow-wrap:anywhere}.device-card-meta{color:var(--muted);font-size:13px}.device-card-meta strong{color:var(--muted-strong);font-size:13px}.selected-device-header{align-items:start;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);margin-bottom:14px;padding:14px}.selected-device-header h2{font-size:23px;margin:9px 0 0;overflow-wrap:anywhere}.device-summary-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.device-summary-grid div{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;padding:10px}.device-summary-grid dt{color:var(--muted);font-size:11px;font-weight:800;margin-bottom:6px;text-transform:uppercase}.device-summary-grid dd{font-size:15px;font-weight:800;margin:0;overflow-wrap:anywhere}.metric-grid,.trend-grid{display:grid;gap:12px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.trend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card,.trend-card{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;min-width:0;padding:13px}.metric-card{border-left:4px solid var(--accent);min-height:112px}.metric-card[data-tone=warning],.trend-card[data-tone=warning]{border-color:color-mix(in srgb,var(--warning-text) 52%,var(--border))}.metric-card[data-tone=warning]{border-left-color:var(--warning-text)}.metric-card[data-tone=danger],.trend-card[data-tone=danger]{border-color:color-mix(in srgb,var(--danger-text) 58%,var(--border))}.metric-card[data-tone=danger]{border-left-color:var(--danger-text)}.metric-card span,.trend-card-heading span{color:var(--muted);display:block;font-size:12px;font-weight:800;margin-bottom:8px;text-transform:uppercase}.metric-card strong{display:block;font-size:25px;line-height:1.15;overflow-wrap:anywhere}.metric-card small{color:var(--muted);display:block;font-size:12px;line-height:1.35;margin-top:8px}.trend-card{min-height:162px}.trend-card-heading{align-items:start;display:flex;gap:12px;justify-content:space-between}.trend-card-heading strong{font-size:18px}.trend-chart{display:block;height:92px;margin-top:10px;width:100%}.trend-chart polyline{fill:none;stroke:var(--accent-strong);stroke-linecap:round;stroke-linejoin:round;stroke-width:3;vector-effect:non-scaling-stroke}.trend-card[data-tone=warning] .trend-chart polyline{stroke:var(--warning-text)}.trend-card[data-tone=danger] .trend-chart polyline{stroke:var(--danger-text)}.chart-empty{align-items:center;border:1px dashed var(--border-strong);border-radius:8px;color:var(--muted);display:flex;height:92px;justify-content:center;margin-top:10px}.table-wrap{border:1px solid var(--border);border-radius:8px;overflow:auto}.readings-window{max-height:420px}table{border-collapse:collapse;min-width:760px;width:100%}th,td{border-bottom:1px solid var(--border);font-size:14px;padding:11px 12px;text-align:left;vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-muted)}th{background:var(--surface);color:var(--muted);font-size:12px;font-weight:800;position:sticky;text-transform:uppercase;top:0;z-index:1}.json-detail-row td{background:var(--surface-raised);padding:0}pre{color:var(--muted-strong);font-size:12px;line-height:1.5;margin:0;max-height:260px;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.text-button{background:transparent;border-color:var(--border);color:var(--accent-strong);min-height:32px;padding:0 10px}.text-button:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.command-panel{overflow:hidden}.command-layout{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(240px,320px)}.quick-actions{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.command-button{align-items:start;display:grid;gap:5px;justify-items:start;min-height:74px;padding:12px;text-align:left}.command-button small{color:color-mix(in srgb,currentColor 78%,transparent);font-size:12px;font-weight:700}.command-button.secondary{background:var(--surface-muted);border-color:var(--border);color:var(--text)}.command-button.secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.interval-form{display:grid;gap:8px}.interval-form label{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.interval-control{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.field-error,.field-hint{font-size:12px;font-weight:700;margin:0}.field-error{color:var(--danger-text)}.field-hint{color:var(--muted)}@media(max-width:1100px){.dashboard-grid{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}.selected-device-header,.command-layout{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.app-shell{padding:18px}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{justify-content:flex-start;width:100%}.dashboard-grid{grid-template-columns:1fr}.device-list{position:static}.device-summary-grid,.trend-grid{grid-template-columns:1fr}table{min-width:680px}}@media(max-width:560px){.app-shell,.panel{padding:14px}.topbar-actions,.refresh-meta,.theme-toggle{width:100%}.metric-grid,.quick-actions,.interval-control{grid-template-columns:1fr}.interval-control button{width:100%}}
