:root{--accent-base: #0b7a75;--accent-strong-base: #075f5b;--accent-highlight-base: #2cb7c9;--accent-soft-base: #e8f5f2;--header-base: #0b2e3c;--accent: var(--accent-base);--accent-strong: var(--accent-strong-base);--accent-highlight: var(--accent-highlight-base);--accent-soft: var(--accent-soft-base);--accent-control: var(--accent);--accent-readable: var(--accent);--header: var(--header-base);--surface: #ffffff;--background: #f4f8f7;--text: #15343c;--text-muted: #637a7f;--border: #d9e5e3;--text-scale: 1;--deep: var(--header);--river: var(--accent-readable);--cyan: var(--accent-highlight);--mist: var(--background);--paper: var(--surface);--ink: var(--text);--muted: var(--text-muted);--line: var(--border);--amber: #b56b13;--danger: #b33a3a;--success: #267044;--status-ok-bg: #e8f5ec;--status-ok-fg: #155b36;--status-warning-bg: #fff1d6;--status-warning-fg: #744000;--status-danger-bg: #fdebec;--status-danger-fg: #842029;--status-card-muted: #4b6267;--plot-ph: #087d78;--plot-turbidity: #a45b17;--plot-chlorine: #276bae;--plot-color: #ad456b;--plot-conductivity: #7448aa;--plot-solids: #49762e;--plot-temperature: #ac4c3c;--font-display: "Avenir Next", "Trebuchet MS", ui-sans-serif, sans-serif;font-family:Avenir Next,Segoe UI,ui-sans-serif,sans-serif;color:var(--ink);background:var(--mist);font-synthesis:none;font-size:calc(100% * var(--text-scale))}:root[data-theme=dark]{color-scheme:dark;--surface:#18181b;--background:#09090b;--text:#f4f4f5;--text-muted:#a1a1aa;--border:#63636e;--accent-soft:#27272a;--accent-readable:var(--accent-highlight);--deep:#111113;--amber:#e1a44f;--danger:#e06b6b;--success:#65c98d;--status-ok-bg:#123321;--status-ok-fg:#9fe3b7;--status-warning-bg:#3b280d;--status-warning-fg:#ffd28a;--status-danger-bg:#401d23;--status-danger-fg:#ffb3b8;--status-card-muted:#a1a1aa}@media(prefers-color-scheme:dark){:root[data-theme=system]{color-scheme:dark;--surface:#18181b;--background:#09090b;--text:#f4f4f5;--text-muted:#a1a1aa;--border:#63636e;--accent-soft:#27272a;--accent-readable:var(--accent-highlight);--deep:#111113;--amber:#e1a44f;--danger:#e06b6b;--success:#65c98d;--status-ok-bg:#123321;--status-ok-fg:#9fe3b7;--status-warning-bg:#3b280d;--status-warning-fg:#ffd28a;--status-danger-bg:#401d23;--status-danger-fg:#ffb3b8;--status-card-muted:#a1a1aa}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--mist)}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid var(--cyan)!important;outline-offset:3px}.brand-mark{width:37px;height:37px;border:2px solid var(--cyan);border-radius:50% 50% 48% 52%/64% 64% 36% 36%;position:relative;transform:rotate(45deg)}.brand-mark:before,.brand-mark:after,.brand-mark span{content:"";position:absolute;height:2px;background:var(--cyan);left:6px;right:6px;transform:rotate(-45deg)}.brand-mark:before{top:12px}.brand-mark:after{top:18px}.brand-mark span{top:24px}.auth-art{width:min(48vw,760px);min-height:100vh;background:var(--deep);position:relative;overflow:hidden}.auth-art:after{content:"";position:absolute;width:680px;height:680px;right:-360px;bottom:-230px;border-radius:50%;border:1px solid rgba(44,183,201,.35);box-shadow:0 0 0 80px #2cb7c90d,0 0 0 160px #2cb7c909;pointer-events:none}.auth-panel{background:var(--paper);border:1px solid var(--line);padding:clamp(26px,5vw,48px);box-shadow:0 24px 70px #0b2e3c14}.auth-panel .form-stack{grid-template-columns:minmax(0,1fr)}.theme-toggle{min-height:44px!important;flex:0 0 auto;border-color:var(--line)!important;color:var(--ink)!important;background:var(--paper)!important}.theme-toggle:hover{background:var(--accent-soft)!important;border-color:var(--river)!important}.theme-toggle-icon{font-size:20px;line-height:1}.theme-toggle-label{font-size:13px;font-weight:700}.eyebrow,.panel-kicker{color:var(--river);text-transform:uppercase;letter-spacing:.15em;font-size:11px;font-weight:800}.page-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.045em;line-height:1;margin-top:8px}.form-stack{display:grid;gap:18px}.form-stack input,.form-stack textarea{border-color:var(--line);background:var(--paper);color:var(--ink)}.primary-button{background:var(--accent-control)!important;color:#fff!important;min-height:44px;font-weight:800!important}.primary-button:hover{background:var(--accent-strong)!important}.form-error,.form-success{padding:11px 13px;font-size:13px;border-left:3px solid}.form-error{color:#8d2828;background:#fff1f0;border-color:var(--danger)}.form-success{color:#08605c;background:#edf9f6;border-color:var(--river)}.mfa-qr{width:210px;max-width:100%;margin:0 auto;border:10px solid white;box-shadow:0 8px 26px #0b2e3c1f}.mfa-form{margin-top:24px}.nav-link{color:#ffffffab;text-decoration:none;padding:11px 15px 13px;font-size:13px;font-weight:700;border-bottom:3px solid transparent}.nav-link:hover{color:#fff}.nav-link.active{color:#fff;border-color:var(--cyan)}.panel{background:var(--paper);border:1px solid var(--line);padding:clamp(20px,3vw,30px);box-shadow:0 9px 30px #0b2e3c0a}.status-hero{min-width:230px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--river);padding:16px 20px}.coverage-panel{background:linear-gradient(150deg,var(--paper) 55%,var(--accent-soft))}.coverage-track{height:7px;background:var(--line);overflow:hidden;border-radius:9px}.coverage-track span{display:block;height:100%;min-width:2px;background:var(--cyan);border-radius:inherit}.coverage-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.coverage-metrics>div{min-width:0;padding:12px;background:var(--paper)}.coverage-metrics p{color:var(--muted);font-size:10px;font-weight:800;min-height:30px}.coverage-metrics strong{display:block;font-family:var(--font-display);font-size:22px}.coverage-metrics span{display:block;color:var(--muted);font-size:9px;min-height:24px}.coverage-metrics .coverage-track{margin-top:8px;height:4px}.regulation-note{border-top:1px solid var(--line);padding-top:16px}.empty-plot{background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:38px 38px;color:var(--muted)}.native-select{appearance:none;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23637a7f' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:9px 36px 9px 12px;min-height:44px}.native-select.compact{padding-block:5px;min-height:32px;font-size:13px}.company-switcher{max-width:240px;border-color:#ffffff57}.company-selector-rail{width:min(44vw,650px);min-height:100vh;background:var(--deep);color:#fff;position:relative;overflow:hidden}.company-selector-rail:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(44,183,201,.28);border-radius:48% 52% 46% 54%;right:-300px;bottom:-220px;box-shadow:0 0 0 70px #2cb7c90a,0 0 0 140px #2cb7c906;pointer-events:none}.company-choice-list{display:grid;gap:12px}.company-choice{width:100%;border:1px solid var(--line);border-left:4px solid var(--river);background:var(--paper);color:var(--ink);padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:24px;text-align:left;cursor:pointer;box-shadow:0 8px 24px #0b2e3c0a}.company-choice:hover{border-left-color:var(--cyan);background:var(--accent-soft)}.company-choice strong,.company-choice small{display:block}.company-choice strong{font-family:var(--font-display);font-size:18px}.company-choice small{color:var(--muted);margin-top:5px}.company-choice-action{color:var(--river);font-size:12px;font-weight:800}.parameter-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));border:1px solid var(--line);background:var(--line);gap:1px}.parameter-cell{--parameter-state:var(--line);padding:16px 20px 20px;min-width:155px;border-top:4px solid var(--parameter-state);background:var(--paper);color:var(--ink)}.parameter-cell>p:first-child{color:var(--status-card-muted);min-height:32px}.parameter-cell [role=status]{margin-top:7px}.parameter-within_range{--parameter-state:var(--status-ok-fg);background:var(--status-ok-bg)}.parameter-warning{--parameter-state:var(--status-warning-fg);background:var(--status-warning-bg)}.parameter-out_of_range{--parameter-state:var(--status-danger-fg);background:var(--status-danger-bg)}.reading-status{color:var(--muted)}.reading-status-within_range{color:var(--status-ok-fg)}.reading-status-warning{color:var(--status-warning-fg)}.reading-status-out_of_range{color:var(--status-danger-fg)}.status-symbol{display:grid;place-items:center;flex:0 0 auto;border:1px solid currentColor;border-radius:50%;font-weight:900;line-height:1}.table-panel th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.table-panel td{color:var(--ink)}.audit-groups{display:grid;gap:12px}.audit-group{border:1px solid var(--line)}.audit-group-header{width:100%;border:0;background:var(--mist);color:var(--ink);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer}.audit-group-header:hover{background:var(--accent-soft)}.audit-chevron{color:var(--river);font-size:24px;line-height:1;transition:transform .16s ease}.audit-group-header[aria-expanded=false] .audit-chevron{transform:rotate(-90deg)}.audit-group-body{border-top:1px solid var(--line)}.audit-pagination{border-top:1px solid var(--line);padding-top:18px}.alert-count{display:grid;place-items:center;background:#fff0ed;color:var(--danger);font-weight:800;width:34px;height:34px;border-radius:50%}.alert-list{display:grid;gap:10px}.alert-item{border-left:3px solid var(--amber);background:#fbf8f2;padding:14px}.severity{text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:900;height:fit-content}.severity.critical{color:var(--danger)}.severity.warning{color:var(--amber)}.empty-row{text-align:center;color:var(--muted);padding:34px 10px}.secret-box{background:#fff8e9;border:1px solid #edcf9d;padding:16px}.settings-stack{display:grid}.settings-list{border-top:1px solid var(--line)}.settings-list-row{border-bottom:1px solid var(--line);padding:8px 0;min-height:54px}.settings-list-row button{min-width:44px;min-height:44px}.check-control{display:flex;align-items:center;gap:11px;min-height:44px;cursor:pointer;color:var(--ink)}.check-control input{width:20px;height:20px;accent-color:var(--river);flex:0 0 auto}.check-control small{display:block;color:var(--muted)}.color-choice{width:44px;height:44px;display:grid;place-items:center;border:2px solid transparent;background:transparent;cursor:pointer;border-radius:50%}.color-choice span{width:28px;height:28px;border-radius:50%;background:var(--swatch);border:1px solid rgba(0,0,0,.16);display:grid;place-items:center}.color-choice.selected{border-color:var(--ink)}.color-choice.selected span:after{content:"✓";color:#fff;font-size:17px;font-weight:900;line-height:1}.color-choice:disabled{cursor:not-allowed;opacity:.35}.company-logo{display:block;width:36px;height:36px;object-fit:contain;background:#fff;border:1px solid rgba(255,255,255,.35)}.notification-button{position:relative;min-width:44px!important;min-height:44px!important}.header-action{min-height:44px!important}.notification-badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;display:grid;place-items:center;background:var(--danger);color:#fff;font-size:10px;font-weight:900}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.dashboard-status,.dashboard-parameters{grid-column:span 12}.dashboard-trend,.dashboard-readings{grid-column:span 8}.dashboard-coverage,.dashboard-alerts{grid-column:span 4}.dashboard-module{min-width:0}.dashboard-trend{align-self:start}.sensor-selector{width:100%;max-width:100%}.field-caption{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:7px}.text-link{color:var(--accent-readable);font-weight:700;text-decoration:underline;text-underline-offset:3px}.device-manage-link{display:inline-flex;min-height:44px;align-items:center;white-space:nowrap}.device-summary{display:flex;align-items:center;gap:16px 28px;flex-wrap:wrap;padding:18px 22px;background:var(--paper);border:1px solid var(--line)}.device-summary strong{font-size:22px;margin-right:5px;font-family:var(--font-display)}.device-state{align-self:start;padding:5px 10px;border:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:700;border-radius:4px}.device-state.online{color:var(--success)}.parameter-tag{padding:5px 10px;background:var(--mist);border:1px solid var(--line);font-size:12px}.parameter-options{border:0;padding:0;min-width:0;display:grid;gap:5px}.parameter-options legend{margin-bottom:10px;font-weight:700;font-size:14px}.parameter-options label{display:flex;align-items:center;min-height:44px;gap:12px;cursor:pointer}.parameter-options input{width:18px;height:18px;accent-color:var(--accent)}.parameter-options small{display:block;color:var(--muted);font-size:11px}.parameter-option-group{padding:10px 0;border-top:1px solid var(--line)}.parameter-option-group>p{color:var(--muted);font-size:11px;font-weight:800;margin-bottom:4px}.parameter-options input:disabled+span{opacity:.45}.device-secret{display:block;font-family:monospace;overflow-wrap:anywhere;padding:14px;background:var(--mist);border:1px solid var(--line);-webkit-user-select:all;user-select:all}.parameter-age{color:var(--status-card-muted)}.chart-tooltip{padding:12px 14px;border:1px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:0 5px 18px #0b2e3c1f;max-width:min(300px,80vw)}.coverage-checklist{list-style:none;padding:0;margin-top:12px;display:grid;gap:9px;font-size:12px}.coverage-details summary{cursor:pointer;min-height:44px;font-size:14px;font-weight:800;padding-block:10px}.coverage-checklist li{display:flex;justify-content:space-between;gap:12px}.coverage-checklist li span:last-child{color:var(--muted);text-align:right}.coverage-disclaimer{padding:14px;background:var(--mist);border-left:3px solid var(--accent-readable)}.coverage-disclaimer a{display:inline-block;margin-top:12px;font-size:12px}.reading-details{padding:22px;background:var(--mist);max-width:min(1100px,calc(100vw - 100px))}.reading-range-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.reading-range{padding:18px;background:var(--paper);border:1px solid var(--line);min-width:0}.range-rail{height:10px;position:relative;background:var(--line);border-radius:8px;margin:0 6px}.range-band,.range-warning{position:absolute;height:100%;background:color-mix(in srgb,var(--success) 35%,var(--line))}.range-warning{background:color-mix(in srgb,var(--amber) 60%,var(--line))}.range-boundary{position:absolute;height:24px;width:3px;top:-7px;background:var(--ink);transform:translate(-50%);border-radius:2px}.range-marker{position:absolute;width:14px;height:14px;top:-2px;transform:translate(-50%);border:2px solid var(--paper);border-radius:50%;background:var(--accent-readable);box-shadow:0 0 0 2px var(--paper)}.range-marker.warning{background:var(--status-warning-fg)}.range-marker.out_of_range{background:var(--status-danger-fg)}:root[data-theme=dark]{--plot-ph:#59c6ba;--plot-turbidity:#e6ac67;--plot-chlorine:#75b8ed;--plot-color:#ec94b5;--plot-conductivity:#b59ae7;--plot-solids:#add188;--plot-temperature:#e79b84}@media(prefers-color-scheme:dark){:root[data-theme=system]{--plot-ph:#59c6ba;--plot-turbidity:#e6ac67;--plot-chlorine:#75b8ed;--plot-color:#ec94b5;--plot-conductivity:#b59ae7;--plot-solids:#add188;--plot-temperature:#e79b84}}:root[data-density=compact] .panel{padding:clamp(16px,2vw,22px)}:root[data-density=compact] .form-stack{gap:12px}:root[data-theme=dark] .alert-item{background:#32291d}:root[data-theme=dark] .alert-count{background:#42262a}:root[data-theme=dark] .secret-box{background:#332b1f;border-color:#655234}@media(prefers-color-scheme:dark){:root[data-theme=system] .alert-item{background:#32291d}:root[data-theme=system] .alert-count{background:#42262a}:root[data-theme=system] .secret-box{background:#332b1f;border-color:#655234}}.header-theme-toggle{gap:7px!important}.header-theme-icon{width:18px;font-size:18px;line-height:1}@media(max-width:860px){.auth-art{display:none!important}.auth-panel{box-shadow:none}.audit-pagination{align-items:stretch;flex-direction:column}.audit-pagination>div{justify-content:space-between}.company-selector-rail{width:100%;min-height:auto}.company-switcher{max-width:150px}.company-logo{display:none}.dashboard-module{grid-column:1 / -1}}@media(max-width:600px){.brand-copy,.header-action-label{display:none}.header-action{min-width:44px!important;padding-inline:0!important}.company-switcher{max-width:110px}.coverage-metrics{grid-template-columns:1fr}.coverage-metrics p,.coverage-metrics span{min-height:0}}@media(max-width:380px){.theme-toggle{min-width:44px!important;padding-inline:0!important}.theme-toggle-label{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.iot-page{min-width:0}.iot-page h2:not(.page-title){font-size:18px;font-weight:800;margin:5px 0 10px}.iot-page h3{font-size:14px;font-weight:800}.iot-caption{color:var(--muted);font-size:12px;line-height:1.7;margin:12px 0}.iot-target{padding:15px 20px;border-left:4px solid var(--cyan);background:var(--deep);color:#fff}.iot-target span{display:block;font-size:11px;color:#c4dce2}.iot-target strong{display:block;font-size:32px;font-family:var(--font-display)}.iot-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:16px 20px;margin-bottom:20px;background:var(--paper);border:1px solid var(--line)}.iot-levels{display:flex;gap:5px}.iot-levels button{min-width:112px;min-height:58px;padding:8px 16px;border:1px solid var(--line);font-weight:800}.iot-levels button small{display:block;font-size:11px;font-weight:500;margin-top:3px}.iot-levels button.active{background:var(--deep);color:#fff;border-color:var(--deep)}.iot-level-change{max-width:520px;font-size:13px;color:var(--muted);line-height:1.6}.iot-workbench{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}.iot-bom,.iot-blueprint,.iot-inspector,.iot-coverage{background:var(--paper);border:1px solid var(--line);padding:22px;min-width:0}.iot-bom-list{display:grid;gap:8px;margin-top:18px}.iot-bom-list>button{padding:13px;border:1px solid var(--line);background:var(--mist);text-align:left}.iot-bom-list>button.active{border-color:var(--accent-readable);box-shadow:inset 3px 0 var(--accent-readable);background:color-mix(in srgb,var(--accent-readable) 8%,var(--paper))}.iot-bom-list>button>span{display:block;font-weight:800;font-size:13px}.iot-bom-list small{display:block;font-size:11px;color:var(--muted);margin:8px 0}.iot-bom-list strong{font-size:11px;color:var(--accent-readable)}.iot-parameter-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.iot-parameter-tags span{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:3px 6px;font-size:10px}.iot-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:10px;color:var(--muted)}.iot-legend span:before{content:"";display:inline-block;vertical-align:middle;width:22px;border-top:3px solid #258abe;margin-right:6px}.iot-legend .signal:before{border-color:#24876a}.iot-legend .integration:before{border-color:#b78038;border-top-style:dashed}.iot-canvas-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:14px 0 8px;font-size:11px;color:var(--muted)}.iot-canvas-tools>div{display:flex;align-items:center;gap:5px}.iot-canvas-tools button{min-width:36px;min-height:44px;padding:0 10px;border:1px solid var(--line);color:var(--ink)}.iot-canvas-tools output{min-width:38px;text-align:center}.iot-canvas-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);background:var(--mist);overscroll-behavior:contain}.iot-stage{position:relative;transform-origin:top left;background-color:#eff3f3;background-image:radial-gradient(#b4c5cb 1px,transparent 1px);background-size:20px 20px;color:#234450}:root[data-theme=dark] .iot-stage{background-color:#15272e;background-image:radial-gradient(#324b54 1px,transparent 1px);color:#c1d5dd}.iot-lane-labels{position:absolute;top:16px;left:18px;right:18px;display:grid;grid-template-columns:217px 260px 265px 1fr;font:700 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.7px}.iot-wiring{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.iot-edge{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke:#258abe;opacity:.72}.iot-edge.signal{stroke:#24876a}.iot-edge.integration{stroke:#b78038;stroke-dasharray:7 6}.iot-edge.related{stroke-width:4;opacity:1}.iot-wire-shadow{fill:none;stroke:#a7bcc5;stroke-opacity:.15;stroke-width:7;stroke-linejoin:round}.iot-port{fill:#258abe;stroke:var(--paper);stroke-width:1}.iot-port.signal{fill:#24876a}.iot-port.integration{fill:#b78038}.iot-node{position:absolute;display:flex;flex-direction:column;padding:0;border:1px solid #b6c8ce;border-radius:8px;background:#fdfefe;color:#26404b;box-shadow:0 4px 9px #09253116;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;z-index:1;overflow:hidden}.iot-node:active{cursor:grabbing;z-index:2}.iot-node.selected{outline:2px solid var(--accent-readable);outline-offset:3px;z-index:2}.iot-node:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}.iot-node-title{display:flex;align-items:center;justify-content:space-between;padding:7px 9px 2px;font-size:11px;font-weight:800}.iot-node-title>span{color:#879da7;font-size:16px}.iot-device-art{display:flex;align-items:center;gap:2px;flex:1;min-height:0;padding:0 5px}.iot-device-art svg{width:84px;height:62px;flex-shrink:0;filter:drop-shadow(0 2px 1px #142c341a)}.iot-device-art small{font-size:10px;line-height:1.45;text-align:left;padding:0 5px}.iot-node-port{display:block;width:100%;padding:6px 3px;border-top:1px solid #d6e0e4;background:#eef4f4;font:9px ui-monospace,monospace;color:#526e79}.iot-node.kind-controller{border-top:3px solid #24876a}.iot-node.kind-gateway,.iot-node.kind-cloud{border-top:3px solid #b78038}.iot-node.simulating{box-shadow:0 0 0 6px #20b8c733}.iot-stage-note{position:absolute;left:22px;bottom:15px;right:22px;font-size:11px;color:inherit}.iot-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px}.iot-controls button{min-height:44px}.iot-controls>span{font-size:11px;color:var(--muted);flex:1;min-width:190px;padding-left:7px}.iot-pending{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.iot-pending>p{font-size:12px;color:var(--muted);margin:7px 0 12px}.iot-pending>div{display:flex;flex-wrap:wrap;gap:6px}.iot-pending button{display:flex;align-items:center;gap:8px;min-height:44px;padding:7px 10px;border:1px dashed var(--line);font-size:12px;background:var(--mist)}.iot-pending button small{color:var(--muted);font-size:9px}.iot-pending button.selected{border-color:var(--accent-readable)}.iot-inspector{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:28px;margin-top:20px;border-top:3px solid var(--accent-readable)}.iot-inspector p{font-size:12px;line-height:1.75;color:var(--muted)}.iot-inspector a{display:block;padding:12px 0;color:var(--accent-readable);font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.iot-specs>div{padding:9px 0;border-bottom:1px solid var(--line)}.iot-specs dt{font-size:10px;font-weight:800;color:var(--muted)}.iot-specs dd{font-size:12px;line-height:1.65;margin-top:4px}.iot-connections>div{padding:10px 0;border-bottom:1px solid var(--line)}.iot-connections strong{font-size:12px}.iot-connections p{margin-top:5px}.iot-coverage{margin-top:20px}.iot-coverage>div>strong{color:var(--accent-readable);font-size:13px}.iot-coverage-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-top:15px}.iot-coverage-items button{display:grid;gap:6px;padding:14px;text-align:left;background:var(--mist);border:1px solid var(--line);border-left:3px solid var(--line)}.iot-coverage-items .identified{border-left-color:var(--accent-readable)}.iot-coverage-items strong{font-size:13px}.iot-coverage-items span{font-size:12px}.iot-coverage-items small{font-size:10px;color:var(--muted)}.iot-coverage-items button[aria-pressed=true]{outline:2px solid var(--accent-readable)}@media(max-width:1100px){.iot-workbench{grid-template-columns:220px minmax(0,1fr)}.iot-blueprint,.iot-bom{padding:16px}.iot-inspector{grid-template-columns:1fr 1fr}.iot-connections{grid-column:1 / -1}}@media(max-width:760px){.iot-workbench{display:flex;flex-direction:column}.iot-blueprint{order:0;width:100%}.iot-bom{order:1;width:100%}.iot-bom-list{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.iot-toolbar{align-items:stretch;flex-direction:column}.iot-levels button{min-width:0;flex:1;padding-inline:4px;font-size:12px;white-space:nowrap}.iot-inspector{display:block}.iot-inspector>div,.iot-inspector>dl{margin-bottom:18px}.iot-canvas-tools{align-items:start}.iot-target{width:100%}}
