:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ui-canvas:244 247 250;--ui-surface:255 255 255;--ui-surface-subtle:248 250 252;--ui-surface-muted:238 242 246;--ui-surface-raised:255 255 255;--ui-text-primary:15 23 42;--ui-text-secondary:51 65 85;--ui-text-muted:91 107 128;--ui-text-inverse:255 255 255;--ui-border-default:220 227 234;--ui-border-strong:168 180 194;--ui-border-interactive:124 137 155;--ui-brand-focus:0 121 107;--ui-font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--ui-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ui-header-height:56px;--ui-primary-rail-width:72px;--ui-context-rail-width:260px;--ui-inspector-width:320px;--ui-page-gutter:clamp(16px, 2.2vw, 32px);--ui-page-max:1440px;--dur-instant:80ms;--dur-fast:.15s;--dur-base:.22s;--dur-slow:.36s;--ease-standard:cubic-bezier(.22, 1, .36, 1);--ease-decel:cubic-bezier(.05, .7, .1, 1);--ease-accel:cubic-bezier(.3, 0, 1, 1)}html{min-width:320px;font-family:var(--ui-font-sans);background:rgb(var(--ui-canvas));color:rgb(var(--ui-text-primary))}body,button,input,select,textarea{font-family:inherit}body{background:rgb(var(--ui-canvas));min-width:320px;color:rgb(var(--ui-text-primary));margin:0;font-size:14px;line-height:1.5}:where(a[href],button:not(:disabled),[role=button]:not([aria-disabled=true])){cursor:pointer}code,kbd,pre,samp{font-family:var(--ui-font-mono)}::selection{color:#08413c;background:#d7f5f0}@layer base{:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid rgb(var(--ui-brand-focus));outline-offset:2px}}@keyframes iotlabs-status-pulse{0%,to{box-shadow:0 0 0 0 rgb(var(--ui-brand-focus) / .34)}70%{box-shadow:0 0 0 7px rgb(var(--ui-brand-focus) / 0)}}.iotlabs-status-pulse{animation:iotlabs-status-pulse 1.8s var(--ease-standard) 2}@keyframes iotlabs-ring-ping{0%{opacity:.8;transform:scale(.9)}to{opacity:0;transform:scale(2.2)}}.iotlabs-anomaly-ring{animation:iotlabs-ring-ping 1.8s var(--ease-standard) 2}@keyframes iotlabs-shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.iotlabs-skeleton{background-color:rgb(var(--ui-surface-muted));background-image:linear-gradient(90deg, transparent 0, rgb(var(--ui-surface) / .75) 50%, transparent 100%);background-repeat:no-repeat;background-size:200px 100%;animation:1.6s linear infinite iotlabs-shimmer}.ui-page{width:min(100%, var(--ui-page-max));padding:var(--ui-page-gutter);margin-inline:auto}.ui-control-page{padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}.ui-editor-page{min-width:0;height:100%;padding:24px}.ui-scrollbar{scrollbar-color:rgb(var(--ui-border-strong)) transparent;scrollbar-width:thin}.dashboard-runtime-grid{grid-template-columns:minmax(0,1fr);gap:12px;width:100%;min-width:0;display:grid}.dashboard-runtime-card{width:100%;min-height:144px}.app-nav-shell{width:min(86vw, var(--ui-context-rail-width))}.app-nav-shell[data-collapsed=true]{width:min(86vw, var(--ui-primary-rail-width))}@media (width>=768px){.app-nav-shell{width:var(--ui-context-rail-width)}.app-nav-shell[data-collapsed=true]{width:var(--ui-primary-rail-width)}}@media (width>=1280px){.dashboard-runtime-grid{grid-template-columns:var(--dashboard-grid-columns);grid-template-rows:var(--dashboard-grid-rows);width:max-content;margin-inline:auto}.dashboard-runtime-card{width:auto;min-height:0}}@media (width<=767px){.ui-editor-page{padding:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--radius:10px;--space:24px;--accent:rgb(var(--ui-brand-focus));--line:rgb(var(--ui-border-default));--muted:rgb(var(--ui-text-muted));--surface:rgb(var(--ui-surface));--canvas:rgb(var(--ui-canvas));--ink:rgb(var(--ui-text-primary));--soft:rgb(var(--ui-surface-subtle))}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0}h1{letter-spacing:-.025em;font-size:28px;font-weight:650;line-height:1.25}h2{font-size:17px;font-weight:650}h3{font-size:14px;font-weight:650}p{color:var(--muted)}small{color:var(--muted);font-size:12px}code{font:11px var(--ui-font-mono);overflow-wrap:anywhere}input,select,textarea{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:7px;min-width:0;max-width:100%;padding:9px 11px}input[type=checkbox]{accent-color:var(--accent);cursor:pointer;flex-shrink:0;width:16px;height:16px;padding:0}input[type=file]{width:290px;font-size:12px}input[type=file]::file-selector-button{background:var(--soft);color:var(--ink);cursor:pointer;border:0;margin-right:10px;padding:3px 9px}textarea{font:12px/1.6 var(--ui-font-mono);resize:vertical;width:100%}select{min-height:40px}.action{border:1px solid var(--accent);background:var(--accent);color:rgb(var(--ui-text-inverse));white-space:normal;min-height:40px;transition:filter var(--dur-fast);border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:9px 15px;font-size:13px;font-weight:600;display:inline-flex}.action:hover{filter:brightness(.94)}.action.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.field input,.field select{font-size:14px}.brand{letter-spacing:-.04em;color:var(--ink);align-items:center;gap:10px;font-size:22px;font-weight:700;display:flex}.brand-mark{background:var(--accent);color:var(--surface);letter-spacing:0;border-radius:8px;justify-content:center;align-items:center;width:31px;height:31px;font-size:23px;display:inline-flex}.login{background:var(--surface);border:1px solid var(--line);width:min(440px,100% - 32px);box-shadow:0 12px 32px rgb(var(--ui-text-primary) / .04);border-radius:14px;margin:12vh auto;padding:32px}.login h1{margin-top:32px}.login>p{margin:9px 0 26px}.login form{gap:18px;display:grid}.login>small{border-top:1px solid var(--line);margin-top:28px;padding-top:18px;display:block}.login .action{width:100%}.loading{color:var(--muted);padding:60px}.shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:224px;padding:28px 16px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar .brand{padding:0 12px}.product-name{color:var(--muted);margin:10px 0 32px;padding:0 13px;font-size:13px}.nav-label{letter-spacing:.1em;color:var(--muted);padding:8px 13px;font-size:10px;font-weight:600}.nav-item{text-align:left;color:var(--muted);background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;margin:3px 0;padding:11px 13px;font-size:13px;font-weight:550;display:flex}.nav-item>span{width:22px;font-size:19px;line-height:1}.nav-item small{margin-left:auto;font-size:11px}.nav-item.active{background:rgb(var(--ui-brand-focus) / .08);color:var(--accent)}.sidebar-bottom{border-top:1px solid var(--line);margin-top:auto;padding:20px 12px 0;font-size:12px}.sidebar-bottom p{margin-top:5px;font-size:11px}.live-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.workspace{flex:1;min-width:0;margin-left:224px}.topbar{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;height:64px;padding:0 32px;font-size:12px;display:flex}.slash{color:var(--muted);margin:0 12px}.account{align-items:center;gap:18px;display:flex}.account button{color:var(--muted);background:0 0;border:0;padding:5px;font-size:12px}.account span{font-size:12px;font-weight:550}.content{min-width:0;max-width:1640px;margin:auto;padding:32px}.heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.heading p{margin-top:8px;font-size:13px}.heading select{max-width:350px;font-size:12px}.import-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:24px;padding:20px 24px;display:flex}.import-panel h2{font-size:14px}.import-panel p{margin-top:4px;font-size:11px}.import-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.import-controls select{font-size:12px}.import-controls>input:not([type=file]){width:210px}.summary-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(4,minmax(0,1fr));margin:24px 0;display:grid}.summary-strip>div{border-right:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:2px 8px;padding:18px 24px;display:grid}.summary-strip>div:last-child{border:0}.summary-strip span{color:var(--muted);font-size:12px}.summary-strip strong{letter-spacing:-.04em;grid-row:span 2;font-size:28px;font-weight:600}.summary-strip small{font-size:10px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:24px;overflow:hidden}.panel-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:21px 24px;display:flex}.panel-title p{margin-top:5px;font-size:11px}.panel-title button{color:var(--muted);background:0 0;border:0;font-size:22px}.counter{color:var(--muted);font-size:12px}.filters{gap:10px;padding:16px 24px;display:flex}.filters input{flex:1;min-width:160px}.filters select{max-width:190px;font-size:12px}.table-scroll{max-width:100%;overflow:auto}table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%}th{background:var(--soft);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 16px;font-size:10px;font-weight:600}td{border-bottom:1px solid var(--line);padding:15px 16px;font-size:12px}td:first-child,th:first-child{padding-left:24px}td small,td code{display:block}td small{margin-top:3px;font-size:10px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--soft)}.device-name{color:var(--ink);text-align:left;background:0 0;border:0;margin-bottom:4px;padding:0;font-size:13px;font-weight:600}.device-name:hover{color:var(--accent)}td code{color:var(--muted)}.state{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.state i{background:currentColor;border-radius:50%;width:5px;height:5px}.state.good{color:var(--accent)}.state.bad,.issue{color:rgb(var(--ui-text-primary));text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.row-actions{gap:12px;display:flex}.row-actions button{color:var(--accent);background:0 0;border:0;padding:3px 0;font-size:11px}.row-actions button:last-child,.muted{color:var(--muted)}.selection-bar{border-top:1px solid var(--line);background:var(--soft);flex-direction:column;gap:10px;padding:17px 24px;display:flex}.selection-bar label{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.selection-bar .button-row{margin-top:4px}.selection-bar .action{font-size:12px}.run-config{flex-wrap:wrap;align-items:flex-end;gap:16px;padding:20px 24px;display:flex}.run-config .field{min-width:180px}.run-review{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:20px 24px;display:flex}.run-review p{margin-top:6px;font-size:12px}.run-review code{color:var(--accent)}.run-review small{font-size:10px}.empty{color:var(--muted);text-align:center;padding:32px 24px;font-size:12px}.jobs{border-top:1px solid var(--line);padding:18px 24px}.jobs h3{margin-bottom:10px}.jobs>div{flex-wrap:wrap;align-items:center;gap:14px;padding:5px 0;font-size:12px;display:flex}.error{border:1px solid rgb(var(--ui-border-strong));background:var(--soft);color:var(--ink);overflow-wrap:anywhere;border-radius:8px;justify-content:space-between;gap:16px;margin-bottom:18px;padding:13px 16px;font-size:13px;display:flex}.login .error{margin-top:18px;margin-bottom:0}.error button{color:inherit;background:0 0;border:0}.empty-state{text-align:center;padding:64px 24px}.empty-symbol{color:var(--accent);margin-bottom:16px;font-size:48px}.empty-state p{margin:12px 0}.empty-state ol{text-align:left;color:var(--muted);padding-left:18px;font-size:13px;line-height:2.3;display:inline-block}.feature-panel{padding:24px}.feature-panel p{margin:20px 0;font-size:12px}.feature-list{border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:18px;display:grid;overflow:hidden}.feature-list>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.feature-list span{color:var(--muted);font-size:12px}.feature-list strong{font-size:22px;font-weight:600}.feature-panel details{border-top:1px solid var(--line);padding:14px 0;font-size:12px}.feature-panel pre{max-height:420px;font-size:11px;overflow:auto}.modal-backdrop{background:rgb(var(--ui-text-primary) / .35);z-index:20;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.editor{background:var(--surface);border:1px solid var(--line);width:760px;max-width:100%;max-height:90vh;box-shadow:0 20px 60px rgb(var(--ui-text-primary) / .16);border-radius:12px;padding:24px;overflow:auto}.editor .panel-title{padding:0 0 16px}.editor>p{margin:18px 0;font-size:12px}.editor textarea{margin-bottom:16px}.editor h3{margin:20px 0 12px}.editor td,.editor th{padding:12px;font-size:11px}footer{color:var(--muted);justify-content:space-between;padding:24px 32px;font-size:10px;display:flex}footer span{font-size:10px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=1600px){.sidebar{width:240px}.workspace{margin-left:240px}}@media (width<=1200px){.sidebar{width:190px}.workspace{margin-left:190px}.content{padding:24px}.topbar{padding:0 24px}.import-panel{flex-direction:column;align-items:flex-start;gap:14px}.import-controls{justify-content:flex-start;width:100%}.summary-strip>div{padding:16px}.summary-strip strong{font-size:25px}.filters{flex-wrap:wrap}.filters input{flex-basis:100%}.heading{align-items:flex-start}.heading select{max-width:250px}}@media (width<=800px){.sidebar{width:72px;padding:24px 10px}.sidebar .brand{justify-content:center;padding:0;font-size:0}.brand-mark{font-size:23px}.product-name,.nav-label,.sidebar-bottom{display:none}.nav-item{justify-content:center;margin-top:8px;padding:13px 8px;font-size:0}.nav-item>span{text-align:center;font-size:21px}.nav-item small{display:none}.workspace{margin-left:72px}.content{padding:20px}.heading{flex-direction:column;gap:16px}.heading select{width:100%;max-width:100%}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.summary-strip>div:nth-child(2){border-right:0}.topbar{padding:0 20px}.account{gap:8px}.account>span{display:none}.topbar>span{font-size:11px}.panel-title,.selection-bar,.run-config,.run-review{padding:18px}.run-review{flex-direction:column;align-items:flex-start}.filters{padding:14px 18px}.filters select{flex:1;min-width:110px}.import-panel{padding:18px}.import-controls input[type=file]{flex:1;min-width:150px}.feature-list{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:25px}}@media (width<=480px){.sidebar{width:52px;padding:22px 6px}.sidebar .brand-mark{width:28px;height:28px;font-size:21px}.workspace{margin-left:52px}.content{padding:16px 12px}.topbar{height:54px;padding:0 12px}.slash{margin:0 5px}.account{gap:3px}.account button,.topbar>span{font-size:10px}.summary-strip{margin:16px 0}.summary-strip>div{grid-template-columns:1fr;padding:12px}.summary-strip strong{grid-row:auto;font-size:26px}.summary-strip small{font-size:9px}.summary-strip span{font-size:10px}.panel{margin-top:16px}.panel-title{padding:16px}.panel-title h2{font-size:14px}.panel-title p,.panel-title .counter{font-size:10px}.selection-bar{padding:16px}.selection-bar .action{width:100%}.run-config{grid-template-columns:1fr;padding:16px;display:grid}.run-config .field{min-width:0}.run-review{padding:16px}.run-review .button-row{width:100%}.import-panel p{font-size:10px}.import-controls{gap:8px}.import-controls select{width:100%}.import-controls input[type=file]{flex-basis:100%;width:100%}.import-controls>.action,.import-controls>input:not([type=file]){width:100%}.filters select{min-width:100px}.modal-backdrop{padding:12px}.editor{padding:16px}.login{margin-top:7vh;padding:24px}.login h1{font-size:28px}.feature-panel{padding:16px}.feature-list{grid-template-columns:1fr}footer{flex-direction:column;gap:4px;padding:20px 12px}}.panel:has(.selection-bar)>.table-scroll{max-height:480px;overflow:auto}.panel:has(.selection-bar) th{z-index:1;position:sticky;top:0}
