html{scroll-behavior:smooth;scroll-padding-top:96px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html body[data-landing]{font-variant-numeric:tabular-nums;font-size:17px;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--blue-dark)}h1,h2,h3,h4{letter-spacing:-.045em;text-wrap:balance;margin:0;font-family:Space,sans-serif;font-weight:500;line-height:1.08}h1{overflow-wrap:break-word}h3{font-size:1.7rem;line-height:1.2}p{margin:0 0 1.2rem}body:has(.iot-site){--paper:#0b1114;--ink:#e6f1f3;--muted:#a6c4cb;--line:#24343b;--border-soft:#1b282e;--blue:#38d6e8;--blue-dark:#8beaf4;--lime:#38d6e8;--white:#111a1e;--dark:#070c0e;--soft:#16232a;color:#e6f1f3;-webkit-tap-highlight-color:#38d6e833;background:#0b1114}body:has(.iot-site) .footer{background:#070c0e;border-top:1px solid #1b282e}body:has(.iot-site) .header{border-bottom-color:#1b282e}.iot-site{--iot-bg:#0b1114;--iot-panel:#111a1e;--iot-panel-2:#16232a;--iot-line:#e6f1f31a;--iot-line-2:#e6f1f329;--iot-ink:#e6f1f3;--iot-muted:#a6c4cb;--iot-dim:#86a3aa;--iot-signal:#38d6e8;--iot-signal-soft:#38d6e81f;--iot-warn:#ffb020;--iot-warn-soft:#ffb02021;--iot-alarm:#ff6b6b;--iot-alarm-soft:#ff5d5d24;--iot-mono:JetBrainsMono,JetBrainsMonoFallback,ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--iot-sans:Space,DM,system-ui,sans-serif;--iot-shadow:0 1px 0 #ffffff08 inset,0 1px 2px #00080a80,0 18px 40px -18px #000a0ecc;--iot-gutter:max(16px,env(safe-area-inset-left));--iot-spill:radial-gradient(closest-side at 60% 45%,#38d6e82e,#38d6e80f 55%,transparent);--iot-frame-shadow:0 1px 0 #ffffff0d inset,0 30px 60px -30px #000000e6,0 0 140px -40px #38d6e873;background:var(--iot-bg);color:var(--iot-ink);font-variant-numeric:tabular-nums;color-scheme:dark;font-family:DM,system-ui,sans-serif;font-size:16px;line-height:1.6}.iot-site *,.iot-site :before,.iot-site :after{box-sizing:border-box}.iot-site :where(h1,h2,h3,h4){font-family:var(--iot-sans);letter-spacing:-.02em;text-wrap:balance;color:var(--iot-ink);margin:0;font-weight:500;line-height:1.1}.iot-site :where(p){margin:0}.iot-site :where(a){color:inherit}.iot-site :is(a,button,summary,select,[tabindex]):focus-visible{outline:2px solid var(--iot-signal);outline-offset:2px;border-radius:4px}.iot-site button,.iot-site select{font:inherit;touch-action:manipulation}.iot-site .sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.iot-mono,.iot-site code{font-family:var(--iot-mono);font-variant-numeric:tabular-nums slashed-zero;letter-spacing:0}.iot-in{max-width:1240px;padding-left:var(--iot-gutter);padding-right:max(16px,env(safe-area-inset-right));margin:0 auto}@media (width>=720px){.iot-in{padding-left:max(32px,env(safe-area-inset-left));padding-right:max(32px,env(safe-area-inset-right))}}.iot-site [id]{scroll-margin-top:88px}body:has(.iot-site)>.header{display:none}.iot-top{z-index:30;-webkit-backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--iot-line);padding-top:env(safe-area-inset-top);background:#0b1114e0;position:sticky;top:0}.iot-top-in{max-width:1240px;min-height:60px;padding:6px max(16px,env(safe-area-inset-right)) 6px var(--iot-gutter);justify-content:space-between;align-items:center;gap:12px;margin:0 auto;display:flex}@media (width>=720px){.iot-top-in{padding-left:max(32px,env(safe-area-inset-left));padding-right:max(32px,env(safe-area-inset-right));gap:24px}}.iot-lockup{align-items:center;gap:12px;min-width:0;display:flex}.iot-top-mark{min-width:44px;min-height:44px;color:var(--iot-ink);border-radius:6px;flex:none;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.iot-top-logo{flex:none;width:26px;height:26px}.iot-top-word{font-family:var(--iot-sans);letter-spacing:.01em;white-space:nowrap;color:var(--iot-muted);font-size:.92rem}.iot-top-word b{color:var(--iot-ink);font-weight:600}.iot-top-sep{background:var(--iot-line-2);flex:none;width:1px;height:22px}.iot-top-name{min-width:0;min-height:44px;color:var(--iot-ink);font-family:var(--iot-sans);letter-spacing:-.01em;border-radius:6px;align-items:center;gap:8px;font-size:1rem;font-weight:500;line-height:1.15;text-decoration:none;display:inline-flex}.iot-top-name svg{color:var(--iot-signal);flex:none}.iot-top-name span{min-width:0}.iot-top-name:hover{color:var(--iot-signal)}.iot-top-actions{flex:none;align-items:center;gap:8px;display:flex}.iot-top-lang{border:1px solid var(--iot-line-2);min-width:44px;min-height:44px;font-family:var(--iot-mono);color:var(--iot-ink);border-radius:5px;justify-content:center;align-items:center;padding:0 10px;font-size:.78rem;text-decoration:none;display:inline-flex}.iot-top-lang:hover{border-color:var(--iot-signal);color:var(--iot-signal)}.iot-top .account-link{border-color:var(--iot-line-2);color:var(--iot-ink)}.iot-top .account-link:hover{border-color:var(--iot-signal);color:var(--iot-signal)}.iot-cta-short{display:none}@media (width<=899px){.iot-top-word,.iot-top-sep{display:none}.iot-lockup{gap:6px}.iot-top-mark{justify-content:center;min-width:40px}}@media (width<=639px){.iot-cta-long{display:none}.iot-cta-short{display:inline}.iot-top-cta.iot-btn-sm{min-height:44px;padding:8px 12px;font-size:.84rem}.iot-top-in{gap:6px;min-height:56px}.iot-top-actions{gap:6px}.iot-top-name{font-size:.94rem}}@media (width<=400px){.iot-top-logo{width:22px;height:22px}.iot-top-mark{min-width:26px}.iot-top-name{gap:6px;font-size:.84rem}.iot-top-cta.iot-btn-sm{padding:8px 10px;font-size:.8rem}.iot-top-name svg{display:none}.iot-top-lang{min-width:36px;padding:0 6px}.iot-top .account-link{min-width:40px;padding:10px 9px}.iot-top-actions{gap:5px}}.iot-btn{background:var(--iot-signal);color:#04181c;min-height:48px;font-family:var(--iot-sans);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:12px;padding:12px 20px;font-size:.95rem;font-weight:500;line-height:1.25;text-decoration:none;transition:background-color .15s,transform .15s;display:inline-flex;box-shadow:0 0 0 1px #38d6e84d,0 8px 24px -10px #38d6e899}.iot-btn:hover{color:#04181c;background:#7fe7f2;transform:translateY(-1px)}.iot-btn:active{transform:translateY(0)}.iot-btn-ghost{color:var(--iot-ink);border-color:var(--iot-line-2);box-shadow:none;background:0 0}.iot-btn-ghost:hover{background:var(--iot-panel-2);color:var(--iot-ink);border-color:var(--iot-signal)}.iot-btn-sm{border-radius:6px;min-height:40px;padding:8px 14px;font-size:.86rem}.iot-btn-alarm{color:var(--iot-warn);box-shadow:none;background:0 0;border-color:#ffb02073;min-height:44px;padding:8px 14px;font-size:.86rem}.iot-btn-alarm:hover{background:var(--iot-warn-soft);color:#ffc75a;border-color:var(--iot-warn)}.iot-btn-alarm .run{display:none}.iot-wall.is-running .iot-btn-alarm .lbl{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.iot-wall.is-running .iot-btn-alarm .run{align-items:center;gap:8px;display:inline-flex}.iot-wall.is-running .iot-btn-alarm .run:before{content:"";border:2px solid;border-top-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite iot-spin}.iot-btn:disabled,.iot-btn[aria-disabled=true]{cursor:progress;opacity:.85}.iot-btn[aria-disabled=true]:hover{transform:none}@keyframes iot-spin{to{transform:rotate(360deg)}}.iot-link{min-height:44px;color:var(--iot-signal);align-items:center;gap:8px;font-size:.92rem;font-weight:500;text-decoration:none;display:inline-flex}.iot-link span[aria-hidden]{transition:transform .15s}.iot-link:hover{color:#8beaf4}.iot-link:hover span[aria-hidden]{transform:translate(3px)}.iot-tag{font-family:var(--iot-mono);letter-spacing:.02em;color:var(--iot-muted);border:1px solid var(--iot-line-2);white-space:nowrap;border-radius:4px;align-items:center;gap:6px;padding:2px 7px;font-size:.7rem;line-height:1.5;display:inline-flex}.iot-eyebrow{font-family:var(--iot-mono);color:var(--iot-signal);letter-spacing:.01em;align-items:center;gap:10px;margin-bottom:16px;font-size:.78rem;display:flex}.iot-rx{background:var(--iot-signal);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 3px #38d6e82e}.iot-hero{background-image:linear-gradient(#e6f1f309 1px,#0000 1px),linear-gradient(90deg,#e6f1f309 1px,#0000 1px);background-position:-1px -1px;background-size:24px 24px;padding:56px 0 24px;position:relative}.iot-hero:after{content:"";background:linear-gradient(transparent,var(--iot-bg));pointer-events:none;height:160px;position:absolute;inset:auto 0 0}.iot-hero>*{z-index:1;position:relative}.iot-hero-grid{grid-template-areas:"copy""wall""act";align-items:center;gap:28px;display:grid}.iot-hero-copy{grid-area:copy;min-width:0}.iot-wall-col{grid-area:wall}.iot-hero-act{grid-area:act;min-width:0}.iot-hero-act .iot-actions{margin-top:0}.iot-hero h1{letter-spacing:-.03em;max-width:18ch;font-size:clamp(1.625rem,1rem + 3.4vw,3.5rem);line-height:1.06}.iot-lede{color:var(--iot-muted);max-width:58ch;margin-top:22px;font-size:1.06rem;line-height:1.65}.iot-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:30px;display:flex}.iot-reassure{color:var(--iot-dim);max-width:52ch;margin-top:18px;font-size:.82rem}@media (width<=719px){.iot-hero{padding:28px 0 20px}.iot-lede{margin-top:16px;font-size:1rem}}@media (width>=1024px){.iot-hero{padding:72px 0 32px}.iot-hero-grid{grid-template-columns:minmax(0,6fr) minmax(0,6fr);grid-template-areas:"copy wall""act wall";gap:30px 48px}.iot-hero-copy{align-self:end}.iot-hero-act{align-self:start}}@media (width>=1280px){.iot-hero-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:56px}}.iot-wall{border:1px solid var(--iot-line-2);box-shadow:var(--iot-shadow),0 0 0 6px #111a1e99;background:linear-gradient(#121c21,#0e171b);border-radius:12px;justify-self:end;width:100%;max-width:760px;position:relative;overflow:hidden}.iot-wall-bar,.iot-dash-bar{border-bottom:1px solid var(--iot-line);font-family:var(--iot-mono);color:var(--iot-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:.78rem;display:flex}.iot-wall-title{color:var(--iot-ink);align-items:center;gap:9px;display:inline-flex}.iot-wall-meta{align-items:center;gap:10px;display:inline-flex}.iot-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:12px;list-style:none;display:grid}.iot-tile{background:var(--iot-panel);border:1px solid var(--iot-line);border-radius:8px;flex-direction:column;min-width:0;padding:11px 12px 10px;display:flex;position:relative}.iot-tile:after{content:"";border:1px solid var(--iot-alarm);opacity:0;pointer-events:none;border-radius:8px;transition:opacity .25s;position:absolute;inset:-1px;box-shadow:0 0 0 3px #ff5d5d1f,inset 0 0 24px #ff5d5d14}.iot-tile.is-wide{grid-column:1/-1}.iot-tile-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.iot-tile-id{font-family:var(--iot-mono);color:var(--iot-dim);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.7rem;overflow:hidden}.iot-tile-label{color:var(--iot-muted);min-height:2.6em;margin-top:6px;font-size:.78rem;line-height:1.3}.iot-tile-val{font-family:var(--iot-mono);letter-spacing:-.02em;white-space:nowrap;margin-top:4px;font-size:clamp(1.15rem,4.6vw,1.6rem);font-weight:500;line-height:1.15}.iot-tile-meta{font-family:var(--iot-mono);color:var(--iot-dim);margin-top:6px;font-size:.68rem;line-height:1.4}.iot-spark{width:100%;height:30px;margin-top:6px;display:block;overflow:visible}.iot-site svg .ln{fill:none;stroke:var(--iot-signal);stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.iot-site svg .ln.hot{stroke:var(--iot-alarm)}.iot-site svg .th{stroke:var(--iot-warn);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;opacity:.85}.iot-site svg .grid{stroke:#e6f1f30f;stroke-width:1px;vector-effect:non-scaling-stroke}.iot-site svg .band{fill:#38d6e812}.iot-chip{font-family:var(--iot-mono);white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;gap:5px;padding:2px 6px;font-size:.66rem;font-weight:500;line-height:1.3;display:inline-flex}.iot-chip[data-s=ok],.iot-chip[data-s=online]{color:var(--iot-signal);background:var(--iot-signal-soft)}.iot-chip[data-s=warn],.iot-chip[data-s=over]{color:var(--iot-warn);background:var(--iot-warn-soft)}.iot-chip[data-s=alarm]{color:#ff8a8a;background:var(--iot-alarm-soft);border-color:#ff5d5d66}.iot-chip[data-s=ack]{color:var(--iot-ink);border-color:var(--iot-line-2);background:#e6f1f314}.iot-leds{font-family:var(--iot-mono);color:var(--iot-dim);gap:10px;margin-top:10px;font-size:.62rem;display:flex}.iot-leds span{align-items:center;gap:4px;display:inline-flex}.iot-leds i,.iot-gw-leds i{background:var(--iot-signal);border-radius:50%;width:7px;height:7px;box-shadow:0 0 6px #38d6e8b3}.iot-leds i.off{box-shadow:none;background:#2a3a40}.iot-dq-bar{background:#e6f1f314;border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.iot-dq-bar i{background:linear-gradient(90deg,var(--iot-signal),#7fe7f2);transform-origin:0;border-radius:3px;height:100%;display:block}.iot-wall-foot{border-top:1px solid var(--iot-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 12px 16px;display:flex}.iot-recv{color:var(--iot-muted);align-items:center;gap:9px;font-size:.74rem;display:inline-flex}@media (width>=640px){.iot-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.iot-tile.is-wide{grid-column:auto}}@media (width>=1024px) and (width<=1279px){.iot-tile-label{font-size:.74rem}.iot-spark{height:24px}}.iot-swap{justify-items:start;display:inline-grid}.iot-tile-top .iot-swap{justify-items:end}.iot-swap>*{grid-area:1/1;transition:opacity .2s,visibility .2s}.iot-swap>.alt-on,.iot-swap>.alt-ack{opacity:0;visibility:hidden}.iot-tile-meta .alt-on{display:none}.iot-spark .alt-on{opacity:0;transition:opacity .35s}.iot-spark .alt-ok{transition:opacity .35s}.iot-wall.is-a [data-alt=a] .alt-ok,.iot-wall.is-b [data-alt=b] .alt-ok{opacity:0;visibility:hidden}.iot-wall.is-a [data-alt=a] .alt-on,.iot-wall.is-b [data-alt=b] .alt-on{opacity:1;visibility:visible}.iot-wall.is-a [data-alt=a] .iot-tile-meta .alt-on,.iot-wall.is-b [data-alt=b] .iot-tile-meta .alt-on{display:inline}.iot-wall.is-b [data-alt=b]:after{opacity:1}.iot-wall.is-a [data-alt=a]:after{opacity:.6;border-color:var(--iot-warn);box-shadow:0 0 0 3px #ffb0201a}.iot-wall.is-a [data-alt=a] .iot-tile-val .alt-on{color:var(--iot-warn)}.iot-wall.is-b [data-alt=b] .iot-tile-val .alt-on{color:#ff8a8a}.iot-wall.is-ack [data-alt] .iot-chip.alt-on{opacity:0;visibility:hidden}.iot-wall.is-ack [data-alt] .iot-chip.alt-ack{opacity:1;visibility:visible}.iot-wall.is-ack [data-alt]:after{opacity:.35}.iot-wall.is-ack .iot-drawer .alt-ok{opacity:0;visibility:hidden}.iot-wall.is-ack .iot-drawer .alt-ack{opacity:1;visibility:visible}.iot-push{border:1px solid var(--iot-line-2);opacity:0;visibility:hidden;z-index:3;background:#16232af7;border-radius:14px;width:min(320px,100% - 24px);padding:12px 14px;transition:opacity .24s,transform .24s,visibility .24s;position:absolute;top:52px;right:12px;transform:translateY(-12px);box-shadow:0 24px 50px -20px #000000e6,0 2px 6px #0006}.iot-push-head{color:var(--iot-muted);justify-content:space-between;margin-bottom:6px;font-size:.7rem;display:flex}.iot-push-app{font-family:var(--iot-mono)}.iot-push-app:before{content:"■";color:var(--iot-alarm);margin-right:6px}.iot-push-body{font-size:.84rem;line-height:1.45}.iot-push-link{color:var(--iot-signal)}.iot-push-meta{font-family:var(--iot-mono);color:var(--iot-dim);margin-top:6px;font-size:.66rem}.iot-wall.is-c .iot-push{opacity:1;visibility:visible;transform:none}.iot-wall.is-d .iot-push{opacity:0;visibility:hidden}.iot-drawer{z-index:4;border:1px solid var(--iot-line-2);overscroll-behavior:contain;opacity:0;visibility:hidden;background:#0f191d;border-radius:14px 14px 0 0;max-height:85%;padding:16px;transition:opacity .24s,transform .24s,visibility .24s;position:absolute;inset:auto 0 0;overflow:auto;transform:translateY(24px);box-shadow:-24px 0 60px -20px #000000e6}@media (width>=900px){.iot-drawer{border-width:0 0 0 1px;border-radius:0;width:min(360px,60%);max-height:none;inset:0 0 0 auto;transform:translate(24px)}}.iot-wall.is-d .iot-drawer{opacity:1;visibility:visible;transition:opacity .24s,transform .24s,visibility;transform:none}.iot-drawer-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.iot-drawer h2{letter-spacing:-.01em;font-size:1.08rem;line-height:1.25}.iot-drawer h2:focus-visible{outline:2px solid var(--iot-signal);outline-offset:4px}.iot-x{border:1px solid var(--iot-line-2);width:36px;height:36px;color:var(--iot-ink);cursor:pointer;background:0 0;border-radius:6px;flex:none;place-items:center;display:grid}.iot-x:hover{border-color:var(--iot-signal)}.iot-wo{border-top:1px solid var(--iot-line);gap:0;margin:0;display:grid}.iot-wo>div{border-bottom:1px solid var(--iot-line);grid-template-columns:96px minmax(0,1fr);gap:10px;padding:7px 0;font-size:.8rem;display:grid}.iot-wo dt{color:var(--iot-dim);font-size:.74rem}.iot-wo dd{font-family:var(--iot-mono);overflow-wrap:anywhere;margin:0;font-size:.76rem}.iot-pri{color:var(--iot-warn)}.iot-drawer-actions{flex-wrap:wrap;gap:8px;margin:14px 0 10px;display:flex}.iot-foot-note{color:var(--iot-dim);font-size:.72rem;line-height:1.5}.iot-wall-col{justify-items:end;gap:12px;min-width:0;display:grid}.iot-story{border:1px solid var(--iot-line);background:#111a1e99;border-radius:10px;width:100%;max-width:760px}.iot-story summary{cursor:pointer;min-height:44px;color:var(--iot-muted);align-items:center;gap:10px;padding:12px 16px;font-size:.88rem;list-style:none;display:flex}.iot-story summary::-webkit-details-marker{display:none}.iot-story summary:before{content:"+";font-family:var(--iot-mono);color:var(--iot-signal)}.iot-story[open] summary:before{content:"−"}.iot-story ol{color:var(--iot-muted);margin:0;padding:0 16px 8px 40px;font-size:.88rem}.iot-story li{padding:4px 0}.iot-story .iot-foot-note{padding:0 16px 14px}.iot-rail{border-top:1px solid var(--iot-line);border-bottom:1px solid var(--iot-line);background:#0d1518}.iot-rail ul{font-family:var(--iot-mono);color:var(--iot-muted);flex-wrap:wrap;gap:6px 0;margin:0 auto;padding-top:14px;padding-bottom:14px;font-size:.78rem;list-style:none;display:flex}.iot-rail li{white-space:nowrap}.iot-rail li+li:before{content:"·";color:var(--iot-signal);margin:0 12px}@media (width<=639px){.iot-rail ul{gap:6px}.iot-rail li{border:1px solid var(--iot-line-2);border-radius:4px;padding:3px 8px}.iot-rail li+li:before{content:none}}.iot-sec{padding:88px 0}.iot-sec-alt{border-top:1px solid var(--iot-line);border-bottom:1px solid var(--iot-line);background:#101c21}.iot-sec-raised{border-top:1px solid var(--iot-line-2);border-bottom:1px solid var(--iot-line-2);background-color:#0f181c;background-image:linear-gradient(#e6f1f308 1px,#0000 1px),linear-gradient(90deg,#e6f1f308 1px,#0000 1px);background-size:24px 24px;box-shadow:inset 0 1px #38d6e814}.iot-sec-raised .iot-hub-pipe span{background:#0f181c}.iot-head{max-width:760px;margin-bottom:40px}.iot-head h2{letter-spacing:-.025em;font-size:clamp(1.65rem,1.1rem + 2.2vw,2.75rem)}.iot-intro{color:var(--iot-muted);max-width:62ch;margin-top:16px;font-size:1.02rem}.iot-after{color:var(--iot-muted);flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:28px;font-size:.94rem;display:flex}.iot-split{gap:40px;display:grid}@media (width>=1024px){.iot-split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:64px}.iot-split .iot-head{margin-bottom:0;position:sticky;top:96px}}@media (width<=719px){.iot-sec{padding:60px 0}.iot-head{margin-bottom:28px}}.iot-tabs{border:1px solid var(--iot-line);background:var(--iot-panel);border-radius:10px;flex-wrap:wrap;gap:6px;width:fit-content;max-width:100%;margin-bottom:16px;padding:4px;display:flex}.iot-tabs [role=tab]{min-height:44px;color:var(--iot-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:8px 16px;font-size:.9rem;transition:background-color .15s,color .15s}.iot-tabs [role=tab]:hover{color:var(--iot-ink);background:var(--iot-panel-2)}.iot-tabs [role=tab][aria-selected=true]{background:var(--iot-panel-2);color:var(--iot-ink);border-color:var(--iot-line-2);box-shadow:inset 0 -2px 0 var(--iot-signal)}.iot-panel{gap:16px;display:grid}.iot-panel[hidden]{display:none}@keyframes iot-fade{0%{opacity:0}to{opacity:1}}@media (width>=1024px){.iot-panel{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}}.iot-dash>*,.iot-dash-body>*{min-width:0}.iot-dash,.iot-dq{background:var(--iot-panel);border:1px solid var(--iot-line-2);box-shadow:var(--iot-shadow);border-radius:12px;min-width:0;overflow:hidden}.iot-dash-body{gap:16px;padding:16px;display:grid}.iot-dash-note{color:var(--iot-dim);margin-top:-6px;font-size:.76rem}.iot-tbl{border-collapse:collapse;width:100%;font-size:.82rem}.iot-tbl caption{text-align:left;font-family:var(--iot-mono);color:var(--iot-dim);padding:0 0 8px;font-size:.72rem}.iot-tbl th,.iot-tbl td{text-align:right;border-bottom:1px solid var(--iot-line);white-space:nowrap;padding:8px 10px}.iot-tbl thead th{font-family:var(--iot-mono);color:var(--iot-dim);border-bottom-color:var(--iot-line-2);font-size:.68rem;font-weight:400}.iot-tbl th:first-child,.iot-tbl td:first-child{text-align:left;padding-left:0}.iot-tbl tbody th{color:var(--iot-ink);font-weight:400}.iot-tbl td{font-family:var(--iot-mono);font-size:.8rem}.iot-st{font-family:var(--iot-mono);font-size:.72rem}.iot-st.ok{color:var(--iot-signal)}.iot-st.warn{color:var(--iot-warn)}.iot-st.alarm{color:#ff8a8a}.iot-chart{background:var(--iot-bg);border:1px solid var(--iot-line);border-radius:8px;margin:0;padding:12px 12px 8px}.iot-chart figcaption,.iot-bars figcaption{font-family:var(--iot-mono);color:var(--iot-muted);margin-bottom:8px;font-size:.72rem}.iot-chart svg{aspect-ratio:480/150;width:100%;height:auto;display:block}.iot-axis{font-family:var(--iot-mono);color:var(--iot-dim);justify-content:space-between;margin-top:4px;font-size:.64rem;display:flex}.iot-export{border:1px dashed var(--iot-line-2);color:var(--iot-muted);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:.82rem;display:flex}.iot-export .iot-mono{color:var(--iot-signal);font-size:.76rem}.iot-export.is-warn{background:var(--iot-warn-soft);color:var(--iot-ink);border-style:solid;border-color:#ffb02059}.iot-export.is-warn .iot-mono,.iot-export.is-warn span[aria-hidden]{color:var(--iot-warn)}.iot-kw{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.iot-kw>div{background:var(--iot-bg);border:1px solid var(--iot-line);border-radius:8px;min-width:0;padding:10px 12px}.iot-kw span{color:var(--iot-muted);font-size:.74rem;display:block}.iot-kw strong{font-family:var(--iot-mono);white-space:nowrap;font-size:1.25rem;font-weight:500}@media (width>=640px){.iot-kw{grid-template-columns:repeat(4,minmax(0,1fr))}}.iot-bars{background:var(--iot-bg);border:1px solid var(--iot-line);border-radius:8px;margin:0;padding:12px}.iot-bars-grid{border-bottom:1px solid var(--iot-line-2);grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px;height:150px;display:grid}.iot-bar-col{flex-direction:column;align-items:center;gap:6px;min-width:0;height:100%;display:flex}.iot-bar-col>span{color:var(--iot-dim);white-space:nowrap;text-overflow:ellipsis;order:2;max-width:100%;font-size:.68rem;overflow:hidden;transform:translateY(22px)}.iot-bar-pair{flex:1;justify-content:center;align-items:flex-end;gap:4px;width:100%;display:flex}.iot-bar-pair i{transform-origin:bottom;border-radius:3px 3px 0 0;width:min(28px,40%);height:100%;display:block}.iot-bar-pair i.now{background:var(--iot-signal)}.iot-bar-pair i.last{background:0 0;border:1px solid #9db3b980;border-bottom:0}.iot-bars{padding-bottom:32px}.iot-legend{color:var(--iot-dim);font-size:.7rem;font-family:var(--iot-mono);align-items:center;gap:8px;margin-top:26px;display:flex}.iot-legend .k{border-radius:2px;width:10px;height:10px;display:inline-block}.iot-legend .k.now{background:var(--iot-signal)}.iot-legend .k.last{border:1px solid #9db3b999;margin-left:10px}.iot-astable summary{cursor:pointer;color:var(--iot-signal);align-items:center;min-height:44px;font-size:.82rem;display:inline-flex}.iot-heat td[data-h="1"]{background:#38d6e80d}.iot-heat td[data-h="2"]{background:#ffb02014}.iot-heat td[data-h="3"]{color:#ffd27a;background:#ffb02033}.iot-dash-body>.iot-tbl,.iot-scroll{overflow-x:auto}.iot-dash-body{min-width:0}@media (width<=400px){.iot-dash-body .iot-tbl tbody th{white-space:nowrap!important}.iot-dash-body .iot-tbl th,.iot-dash-body .iot-tbl td{padding-left:4px!important;padding-right:4px!important}.iot-dash-body .iot-tbl th:first-child{padding-left:0!important}}@media (width<=639px){.iot-dash-body .iot-tbl th,.iot-dash-body .iot-tbl td{padding:7px 6px;font-size:.72rem}.iot-dash-body .iot-tbl thead th{white-space:normal;font-size:.6rem}.iot-dash-body .iot-tbl tbody th{white-space:normal}}.iot-specard{background:var(--iot-panel);border:1px solid var(--iot-line-2);border-radius:12px;flex-direction:column;align-self:start;gap:14px;padding:20px;display:flex}.iot-specard-line{font-family:var(--iot-sans);letter-spacing:-.01em;font-size:1.12rem;line-height:1.35}.iot-specard dl{border-top:1px solid var(--iot-line);margin:0}.iot-specard dl>div{border-bottom:1px solid var(--iot-line);gap:2px;padding:9px 0;display:grid}.iot-specard dt{font-family:var(--iot-mono);color:var(--iot-signal);font-size:.68rem}.iot-specard dd{color:var(--iot-ink);margin:0;font-size:.86rem}.iot-specard .iot-link{margin-top:auto}.iot-selector{border:1px solid var(--iot-line-2);background:linear-gradient(#0f181c,#0d1518);border-radius:12px;gap:16px;margin-top:28px;padding:20px;display:grid}.iot-sel-title{font-family:var(--iot-sans);letter-spacing:-.01em;grid-column:1/-1;font-size:1.12rem}.iot-sel-fields{align-content:start;gap:14px;display:grid}.iot-field{gap:6px;min-width:0;display:grid}.iot-field label{color:var(--iot-muted);font-size:.82rem}.iot-field select{-webkit-appearance:none;appearance:none;color:#e6f1f3;border:1px solid var(--iot-line-2);cursor:pointer;background-color:#0b1114;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%2338d6e8' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;border-radius:8px;width:100%;min-height:48px;padding:10px 40px 10px 12px;font-size:16px}.iot-field select:hover{border-color:var(--iot-signal)}.iot-field option{color:#e6f1f3;background:#0b1114}.iot-sel-result{background:var(--iot-panel);border:1px solid var(--iot-line);border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.iot-sel-result .iot-tag{color:var(--iot-signal);border-color:#38d6e859;align-self:flex-start}.iot-sel-result dl{gap:10px;margin:0;display:grid}.iot-sel-result dt{font-family:var(--iot-mono);color:var(--iot-dim);font-size:.68rem}.iot-sel-result dd{margin:2px 0 0;font-size:.92rem}.iot-sel-result .iot-btn{align-self:flex-start}@media (width>=900px){.iot-selector{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px;padding:24px}.iot-sel-fields{grid-template-columns:1fr 1fr}.iot-sel-fields .iot-field:first-of-type{grid-column:1/-1}.iot-sel-result dl{grid-template-columns:repeat(3,minmax(0,1fr))}}.iot-arch{gap:32px;display:grid}@media (width>=1024px){.iot-arch{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:56px}}.iot-acc{border-top:1px solid var(--iot-line)}.iot-acc-item{border-bottom:1px solid var(--iot-line)}.iot-acc h3{font-size:inherit}.iot-acc button{width:100%;min-height:56px;color:var(--iot-ink);text-align:left;cursor:pointer;font-family:var(--iot-sans);letter-spacing:-.01em;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:16px 4px;font-size:1.15rem;display:grid}.iot-acc button:hover .iot-acc-h{color:#fff}.iot-acc-n{font-family:var(--iot-mono);color:var(--iot-signal);width:2.2em;font-size:.76rem}.iot-acc-tag{font-family:var(--iot-mono);color:var(--iot-dim);white-space:nowrap;font-size:.68rem}.iot-chev{color:var(--iot-muted);transition:transform .2s}.iot-acc button[aria-expanded=true] .iot-chev{transform:rotate(180deg)}.iot-acc button[aria-expanded=true] .iot-acc-n{color:var(--iot-ink);background:var(--iot-signal-soft);text-align:center;border-radius:4px}.iot-acc-body{gap:16px;padding:0 4px 20px calc(2.2em + 18px);animation:.2s iot-fade;display:grid}.iot-acc-body[hidden]{display:none}.iot-acc-body p{color:var(--iot-muted);font-size:.94rem}.iot-acc-body .iot-k{font-family:var(--iot-mono);color:var(--iot-signal);margin-bottom:4px;font-size:.68rem}@media (width>=640px){.iot-acc-body{grid-template-columns:1fr 1fr;gap:24px}}@media (width<=639px){.iot-acc-tag{display:none}.iot-acc button{grid-template-columns:auto minmax(0,1fr) auto;font-size:1.04rem}.iot-acc-body{padding-left:4px}}.iot-stack{display:none;position:relative}.iot-stack svg{width:100%;max-width:480px;height:auto;margin:0 auto;display:block}.iot-stack .slab .top{fill:#16232ae6;stroke:#e6f1f32e;stroke-width:1px;transition:fill .2s,stroke .2s}.iot-stack .slab .side{fill:#0f191d;stroke:#e6f1f31a}.iot-stack .slab .side2{fill:#0c1417;stroke:#e6f1f31a}.iot-stack .slab text{font-family:var(--iot-mono);fill:var(--iot-dim);font-size:11px;transition:fill .2s}.iot-stack-cap{font-family:var(--iot-mono);color:var(--iot-dim);justify-content:center;align-items:center;gap:9px;margin-top:8px;font-size:.72rem;display:flex}.iot-arch[data-layer="0"] .slab[data-i="0"] .top,.iot-arch[data-layer="1"] .slab[data-i="1"] .top,.iot-arch[data-layer="2"] .slab[data-i="2"] .top,.iot-arch[data-layer="3"] .slab[data-i="3"] .top,.iot-arch[data-layer="4"] .slab[data-i="4"] .top,.iot-arch[data-layer="5"] .slab[data-i="5"] .top,.iot-arch[data-layer="6"] .slab[data-i="6"] .top{fill:#38d6e829;stroke:var(--iot-signal);stroke-width:1.5px}.iot-arch[data-layer="0"] .slab[data-i="0"] text,.iot-arch[data-layer="1"] .slab[data-i="1"] text,.iot-arch[data-layer="2"] .slab[data-i="2"] text,.iot-arch[data-layer="3"] .slab[data-i="3"] text,.iot-arch[data-layer="4"] .slab[data-i="4"] text,.iot-arch[data-layer="5"] .slab[data-i="5"] text,.iot-arch[data-layer="6"] .slab[data-i="6"] text{fill:var(--iot-signal)}@media (width>=1024px){.iot-stack{display:block;position:sticky;top:100px}}.iot-hw{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=640px){.iot-hw{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.iot-hw{grid-template-columns:repeat(3,minmax(0,1fr))}}.iot-dev{background:var(--iot-panel);border:1px solid var(--iot-line-2);border-radius:12px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.iot-dev.is-gw{border-color:#38d6e880;box-shadow:0 0 0 1px #38d6e826,0 20px 50px -30px #38d6e880}.iot-dev-art{background:var(--iot-panel-2);aspect-ratio:4/3;border-bottom:1px solid var(--iot-line);background-image:radial-gradient(#e6f1f30f 1px,#0000 1px);background-size:14px 14px;position:relative}.iot-dev-art svg{width:100%;height:100%;display:block}.iot-dev-art .ctx{fill:none;stroke:#9db3b952;stroke-width:1px}.iot-dev-art .ctx.rail{stroke:#9db3b980;stroke-width:1.5px}.iot-dev-art .ctx.dash{stroke-dasharray:3 3}.iot-dev-art .ctx.fin{stroke:#9db3b92e}.iot-dev-art .ctx-t{font-family:var(--iot-mono);fill:#9db3b999;letter-spacing:.04em;font-size:8px}.iot-dev-art .dev{fill:#0b111499;stroke:var(--iot-signal);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round}.iot-dev-art .dev.thin{stroke-width:1px;fill:none}.iot-dev-art .dev.wave,.iot-dev-art path.dev:not([d*=z]):not([d*=Z]){fill:none}.iot-dev-art .dev.tip{stroke-width:3px}.iot-dev-art .dev-d{fill:#0a1013;stroke:#38d6e880;stroke-width:1px}.iot-dev-art .lcd{font-family:var(--iot-mono);fill:var(--iot-signal);font-size:10px}.iot-dev-art .lcd.big{font-size:18px}.iot-dev-art .led{fill:var(--iot-signal)}.iot-dev-id{font-family:var(--iot-mono);color:var(--iot-signal);background:#0b1114d9;border:1px solid #38d6e859;border-radius:4px;padding:2px 7px;font-size:.7rem;position:absolute;top:10px;left:10px}.iot-dev-body{flex-direction:column;flex:1;gap:12px;padding:16px 18px 18px;display:flex}.iot-dev-body h3{letter-spacing:-.01em;font-size:1.12rem}.iot-dev-body dl{border-top:1px solid var(--iot-line);margin:0;display:grid}.iot-dev-body dl>div{border-bottom:1px solid var(--iot-line);grid-template-columns:minmax(84px,30%) minmax(0,1fr);gap:10px;padding:7px 0;display:grid}.iot-dev-body dt{font-family:var(--iot-mono);color:var(--iot-dim);padding-top:2px;font-size:.66rem}.iot-dev-body dd{color:var(--iot-ink);overflow-wrap:break-word;min-width:0;margin:0;font-size:.84rem}.iot-hw{align-items:stretch}.iot-gw{background:linear-gradient(90deg,#38d6e812,var(--iot-panel) 60%);border:1px solid #38d6e866;border-radius:12px;align-items:center;gap:20px;margin-top:16px;padding:22px;display:grid}.iot-gw-copy{gap:10px;display:grid}.iot-gw-copy .iot-tag{color:var(--iot-signal);border-color:#38d6e859;justify-self:start}.iot-gw-copy h3{font-size:1.25rem}.iot-gw-copy p:last-child{color:var(--iot-muted);max-width:60ch;font-size:.92rem}.iot-gw-panel{background:var(--iot-bg);border:1px solid var(--iot-line);border-radius:8px;gap:10px;padding:14px 16px;display:grid}@media (width>=900px){.iot-gw{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px}}.iot-gw-leds{font-family:var(--iot-mono);color:var(--iot-muted);gap:14px;font-size:.68rem;display:flex}.iot-gw-leds span{align-items:center;gap:6px;display:inline-flex}.iot-gw-leds i.buf{box-shadow:none;background:#2a3a40}.iot-gw-state{color:var(--iot-signal);font-size:.76rem}.iot-gw .iot-btn{justify-self:start}.iot-site [data-gw=down] .iot-gw-leds i.net{background:var(--iot-alarm);box-shadow:0 0 6px #ff5d5db3}.iot-site [data-gw=down] .iot-gw-leds i.buf{background:var(--iot-warn);box-shadow:0 0 6px #ffb020b3}.iot-site [data-gw=down] .iot-gw-state{color:var(--iot-warn)}.iot-site [data-gw=down] .iot-gw-state .alt-ok{opacity:0;visibility:hidden}.iot-site [data-gw=down] .iot-gw-state .alt-on{opacity:1;visibility:visible}.iot-site [data-gw=down] .led.net{fill:var(--iot-alarm)}.iot-site [data-gw=down] .led.buf{fill:var(--iot-warn)}.iot-dev-art .led.buf{fill:#2a3a40}.iot-flow-wrap{position:relative}.iot-flow-tag{position:absolute;top:-34px;right:0}.iot-flow{gap:12px;margin:0;padding:0;list-style:none;display:grid;position:relative}.iot-flow li{background:var(--iot-panel);border:1px solid var(--iot-line-2);border-radius:10px;min-width:0;padding:16px 16px 18px;position:relative}.iot-flow li.is-hot{background:linear-gradient(180deg,#14262c,var(--iot-panel));border-color:#38d6e880}.iot-flow-n{font-family:var(--iot-mono);color:var(--iot-signal);background:var(--iot-bg);border:1px solid #38d6e866;border-radius:4px;justify-content:center;align-items:center;width:30px;height:22px;font-size:.72rem;display:inline-flex}.iot-flow h3{margin:12px 0 8px;font-size:1.08rem}.iot-flow code{color:var(--iot-warn);background:var(--iot-bg);border:1px solid var(--iot-line);overflow-wrap:anywhere;border-radius:6px;margin-bottom:10px;padding:6px 8px;font-size:.74rem;display:block}.iot-flow p{color:var(--iot-muted);font-size:.86rem}@media (width>=1024px){.iot-flow{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.iot-flow:before{content:"";background:linear-gradient(90deg,var(--iot-signal),#38d6e840);z-index:0;height:1px;position:absolute;top:27px;left:24px;right:24px}.iot-flow li{z-index:1}}@media (width<=1023px){.iot-flow{padding-left:22px}.iot-flow:before{content:"";background:linear-gradient(var(--iot-signal),#38d6e840);width:1px;position:absolute;top:18px;bottom:18px;left:6px}.iot-flow li:before{content:"";background:var(--iot-bg);border:1.5px solid var(--iot-signal);border-radius:50%;width:9px;height:9px;position:absolute;top:22px;left:-20px}}@media (width<=639px){.iot-flow-tag{margin-bottom:12px;position:static}}.iot-mobile{border-top:1px solid var(--iot-line);align-items:center;gap:40px;margin-top:72px;padding-top:56px;display:grid}.iot-mobile h3{letter-spacing:-.02em;font-size:clamp(1.4rem,1rem + 1.4vw,2rem)}.iot-checks{gap:12px;margin:22px 0 0;padding:0;list-style:none;display:grid}.iot-checks li{color:var(--iot-muted);padding-left:26px;font-size:.95rem;position:relative}.iot-checks li:before{content:"";border-left:1.5px solid var(--iot-signal);border-bottom:1.5px solid var(--iot-signal);width:10px;height:6px;position:absolute;top:.55em;left:2px;transform:rotate(-45deg)}.iot-links{flex-wrap:wrap;gap:4px 22px;margin-top:16px;display:flex}@media (width>=1024px){.iot-mobile{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px}}.iot-phone{aspect-ratio:300/580;background:linear-gradient(145deg,#2a383e,#11191c);border-radius:44px;justify-self:center;width:100%;max-width:300px;padding:10px;box-shadow:0 0 0 1px #e6f1f31f,0 40px 80px -30px #000000e6,0 0 80px -30px #38d6e84d}@media (width<=1023px){.iot-phone{order:-1}}.iot-phone-screen{background:var(--iot-bg);border-radius:35px;flex-direction:column;gap:10px;height:100%;padding:44px 14px 14px;display:flex;position:relative;overflow:hidden}.iot-phone-notch{background:#000;border-radius:14px;width:92px;height:24px;margin-left:-46px;position:absolute;top:10px;left:50%}.iot-phone-top{font-family:var(--iot-sans);justify-content:space-between;align-items:center;gap:6px;font-size:.92rem;display:flex}.iot-phone-top .iot-tag{padding:1px 5px;font-size:.56rem}.iot-phone-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.iot-phone-list li{background:var(--iot-panel);border:1px solid var(--iot-line);border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:3px 8px;padding:8px 10px;font-size:.7rem;display:grid}.iot-phone-list li.is-open{border-color:#ff5d5d73}.iot-phone-list .iot-mono{color:var(--iot-dim);font-size:.64rem}.iot-phone-list .iot-chip{justify-self:start;font-size:.58rem}.iot-phone-list b{font-family:var(--iot-mono);grid-column:1/-1;font-size:.78rem;font-weight:500}.iot-phone-list small{color:var(--iot-muted);grid-column:1/-1;font-size:.64rem}.iot-phone-detail{background:var(--iot-panel);border:1px solid var(--iot-line);border-radius:12px;gap:8px;padding:10px;display:grid}.iot-phone-detail p{color:var(--iot-muted);font-size:.68rem;font-family:var(--iot-mono)}.iot-phone-detail svg{width:100%;height:56px;display:block}.iot-phone-btn{background:var(--iot-signal);color:#04181c;border-radius:9px;justify-content:center;align-items:center;min-height:36px;font-size:.8rem;font-weight:500;display:flex}.iot-phone-detail small{color:var(--iot-dim);text-align:center;font-size:.6rem}.iot-phone-tabs{border-top:1px solid var(--iot-line);color:var(--iot-dim);text-align:center;grid-template-columns:repeat(3,1fr);margin-top:auto;padding-top:8px;font-size:.62rem;display:grid}.iot-phone-tabs .on{color:var(--iot-signal)}.iot-phone-tabs span:before{content:"";opacity:.6;background:currentColor;border-radius:2px;width:16px;height:3px;margin:0 auto 5px;display:block}.iot-dq-keys{gap:8px;margin:22px 0 14px;padding:0;list-style:none;display:grid}.iot-dq-keys li{color:var(--iot-muted);align-items:center;gap:10px;font-size:.9rem;display:flex}.iot-dq-keys b{color:var(--iot-ink);font-weight:500}.iot-dq-keys .iot-st{border:1px solid var(--iot-line-2);background:var(--iot-panel);border-radius:6px;flex:none;place-items:center;width:26px;height:26px;font-size:.82rem;display:grid}.iot-scroll{padding:16px}.iot-dq-tbl td.flag{color:var(--iot-warn)}.iot-dq-tbl thead th:last-child{text-align:left}.iot-dq-tbl td.why{white-space:normal;text-align:left;color:var(--iot-muted);min-width:160px;max-width:280px;font-family:DM,system-ui,sans-serif;font-size:.78rem}.iot-dq-tbl td.why.none{color:var(--iot-dim)}@media (width<=639px){.iot-scroll{padding:12px}.iot-dq-tbl,.iot-dq-tbl tbody{display:block}.iot-dq-tbl caption{padding-bottom:10px;display:block}.iot-dq-tbl thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.iot-dq-tbl tr{border:1px solid var(--iot-line);background:var(--iot-bg);border-radius:8px;flex-wrap:wrap;gap:6px;margin-top:8px;padding:12px;display:flex}.iot-dq-tbl tr:first-child{margin-top:0}.iot-dq-tbl th,.iot-dq-tbl td{text-align:left;border:0;padding:0}.iot-dq-tbl tbody th{font-family:var(--iot-mono);flex:1 0 100%;padding:0 0 2px;font-size:.86rem}.iot-dq-tbl td.n{border:1px solid var(--iot-line-2);color:var(--iot-ink);border-radius:4px;align-items:center;gap:6px;padding:3px 8px;font-size:.72rem;display:inline-flex}.iot-dq-tbl td.n:before{content:attr(data-l);color:var(--iot-dim);font-family:DM,system-ui,sans-serif}.iot-dq-tbl td.n.sub{color:var(--iot-muted);border-style:dashed}.iot-dq-tbl td.n.flag{background:var(--iot-warn-soft);color:var(--iot-warn);border-color:#ffb02073}.iot-dq-tbl td.why{flex:1 0 100%;min-width:0;max-width:none;padding-top:4px;font-size:.84rem}}.iot-cards6{grid-template-columns:minmax(0,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.iot-cards6{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.iot-cards6{grid-template-columns:repeat(3,minmax(0,1fr))}}.iot-cards6 li{background:var(--iot-panel);border:1px solid var(--iot-line-2);border-radius:12px;align-content:start;gap:10px;padding:20px;display:grid}.iot-card-top{color:var(--iot-signal);justify-content:space-between;align-items:center;display:flex}.iot-card-top .iot-mono{color:var(--iot-dim);font-size:.7rem}.iot-cards6 h3{margin-top:6px;font-size:1.12rem}.iot-cards6 p{color:var(--iot-muted);font-size:.9rem}.iot-hub{justify-items:center;gap:0;display:grid}.iot-hub-row{grid-template-columns:minmax(0,1fr);gap:12px;width:100%;display:grid}@media (width>=720px){.iot-hub-row{grid-template-columns:repeat(3,minmax(0,1fr))}.iot-hub-row.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:66%}}.iot-hub-g{background:var(--iot-panel);border:1px solid var(--iot-line-2);border-radius:12px;min-width:0;padding:16px 18px}.iot-hub-g h3{font-family:var(--iot-mono);color:var(--iot-signal);letter-spacing:0;margin-bottom:10px;font-size:.74rem;font-weight:400}.iot-hub-g ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.iot-hub-g li{font-family:var(--iot-mono);border:1px solid var(--iot-line-2);background:var(--iot-bg);color:var(--iot-ink);border-radius:5px;padding:4px 9px;font-size:.78rem}.iot-hub-pipe{font-family:var(--iot-mono);justify-content:center;gap:28px;width:100%;padding:22px 0;font-size:.72rem;display:flex;position:relative}.iot-hub-pipe:before{content:"";background:linear-gradient(var(--iot-signal),#38d6e833);width:1px;position:absolute;top:0;bottom:0;left:50%}.iot-hub-pipe span{border:1px solid var(--iot-line);background:#0b1114;border-radius:4px;padding:2px 8px;position:relative}.iot-hub-pipe .in{color:var(--iot-signal)}.iot-hub-pipe .out{color:var(--iot-warn)}.iot-hub-core{text-align:center;background:radial-gradient(circle at 50% 0,#38d6e829,var(--iot-panel) 70%);color:var(--iot-signal);border:1px solid #38d6e88c;border-radius:14px;justify-items:center;gap:6px;width:100%;max-width:420px;padding:22px 28px;display:grid;box-shadow:0 0 0 6px #38d6e80d,0 30px 60px -30px #38d6e880}.iot-hub-core p{font-family:var(--iot-sans);color:var(--iot-ink);letter-spacing:-.01em;font-size:1.2rem}.iot-hub-core .iot-mono{color:var(--iot-muted);font-size:.7rem}.iot-suite{grid-template-columns:minmax(0,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.iot-suite{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.iot-suite{grid-template-columns:repeat(5,minmax(0,1fr))}}.iot-suite a{border:1px solid var(--iot-line-2);background:var(--iot-panel);border-radius:12px;flex-direction:column;gap:10px;height:100%;min-height:44px;padding:18px;text-decoration:none;transition:border-color .15s,background-color .15s;display:flex}.iot-suite a:hover{border-color:var(--iot-signal);background:var(--iot-panel-2)}.iot-suite-k{font-family:var(--iot-sans);color:var(--iot-muted);gap:4px;font-size:.82rem;display:grid}.iot-suite-k .iot-mono{color:var(--iot-signal);font-size:.7rem}.iot-suite-k b{color:var(--iot-ink);letter-spacing:-.01em;font-size:1.15rem;font-weight:500;display:block}.iot-suite-p{color:var(--iot-muted);font-size:.86rem}.iot-suite-go{color:var(--iot-signal);margin-top:auto;padding-top:6px;font-size:.88rem;font-weight:500}.iot-suite-go span{margin-left:6px;transition:transform .15s;display:inline-block}.iot-suite a:hover .iot-suite-go span{transform:translate(4px)}.iot-suite a:hover .iot-suite-p{color:var(--iot-ink)}.iot-steps{gap:12px;margin:0;padding:0;list-style:none;display:grid;position:relative}.iot-steps li{border:1px solid var(--iot-line-2);background:var(--iot-panel);border-radius:12px;flex-direction:column;gap:10px;min-width:0;padding:20px;display:flex;position:relative}.iot-step-n{font-family:var(--iot-mono);color:var(--iot-bg);background:var(--iot-signal);border-radius:4px;align-self:flex-start;padding:1px 7px;font-size:.74rem}.iot-steps h3{font-size:1.15rem}.iot-steps p{color:var(--iot-muted);font-size:.9rem}.iot-step-out{font-family:var(--iot-mono);border-top:1px dashed var(--iot-line-2);padding-top:10px;color:var(--iot-signal)!important;margin-top:auto!important;font-size:.72rem!important}@media (width>=640px){.iot-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.iot-steps{grid-template-columns:repeat(4,minmax(0,1fr))}}.iot-sub{margin:52px 0 18px;font-size:1.35rem}.iot-starts{gap:12px;margin:0;padding:0;list-style:none;display:grid}.iot-starts li{border:1px dashed var(--iot-line-2);border-radius:12px;flex-direction:column;gap:8px;padding:20px;display:flex}.iot-starts h4{font-size:1.1rem}.iot-starts p{color:var(--iot-muted);font-size:.9rem}.iot-starts .iot-link{margin-top:auto}@media (width>=900px){.iot-starts{grid-template-columns:repeat(3,minmax(0,1fr))}}.iot-price{border:1px solid var(--iot-line-2);background:var(--iot-panel);border-radius:12px;grid-template-columns:minmax(0,1fr);gap:0;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.iot-price li{border-bottom:1px solid var(--iot-line);flex-direction:column;gap:10px;padding:22px;display:flex}.iot-price .iot-mono{color:var(--iot-signal);font-size:.72rem}.iot-price h3{font-size:1.15rem}.iot-price p{color:var(--iot-muted);font-size:.9rem}@media (width>=640px){.iot-price{grid-template-columns:repeat(2,minmax(0,1fr))}.iot-price li:nth-child(odd){border-right:1px solid var(--iot-line)}}@media (width>=1024px){.iot-price{grid-template-columns:repeat(4,minmax(0,1fr))}.iot-price li{border-bottom:0;border-right:1px solid var(--iot-line)}.iot-price li:last-child{border-right:0}}.iot-incl{gap:16px;margin-top:16px;display:grid}.iot-incl>div{border:1px solid var(--iot-line);background:#111a1e80;border-radius:12px;padding:22px}.iot-incl h3{font-size:1.05rem}.iot-incl .iot-checks{gap:10px;margin-top:14px}.iot-incl .iot-checks li{font-size:.9rem}@media (width>=900px){.iot-incl{grid-template-columns:1fr 1fr}}.iot-guides{gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=900px){.iot-guides{grid-template-columns:repeat(3,minmax(0,1fr))}}.iot-guides a{border:1px solid var(--iot-line-2);background:var(--iot-panel);border-radius:12px;flex-direction:column;gap:10px;height:100%;padding:22px;text-decoration:none;transition:border-color .15s;display:flex}.iot-guides a:hover{border-color:var(--iot-signal)}.iot-guides .iot-mono{color:var(--iot-signal);font-size:.7rem}.iot-guides h3{font-size:1.14rem;line-height:1.25}.iot-guides p{color:var(--iot-muted);font-size:.88rem}.iot-guides .iot-link{min-height:auto;margin-top:auto}.iot-faq{border-top:1px solid var(--iot-line)}.iot-faq details{border-bottom:1px solid var(--iot-line)}.iot-faq summary{cursor:pointer;min-height:56px;font-family:var(--iot-sans);letter-spacing:-.01em;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:1.06rem;list-style:none;display:flex}.iot-faq summary::-webkit-details-marker{display:none}.iot-faq summary:after{content:"+";font-family:var(--iot-mono);color:var(--iot-signal);border:1px solid var(--iot-line-2);border-radius:6px;flex:none;place-items:center;width:28px;height:28px;font-size:1.1rem;display:grid}.iot-faq details[open] summary:after{content:"−"}.iot-faq summary:hover{color:#fff}.iot-faq details p{color:var(--iot-muted);padding:0 44px 20px 0;font-size:.95rem}.iot-final{border-top:1px solid var(--iot-line);background-image:linear-gradient(#e6f1f309 1px,#0000 1px),linear-gradient(90deg,#e6f1f309 1px,#0000 1px);background-size:24px 24px;padding:88px 0;position:relative;overflow:hidden}.iot-final-grid{align-items:center;gap:40px;display:grid}.iot-final-copy{min-width:0}.iot-final h2{letter-spacing:-.03em;text-wrap:balance;max-width:20ch;font-size:clamp(1.75rem,1.1rem + 2.8vw,3rem);line-height:1.08}.iot-final-copy>p:not(.iot-eyebrow){max-width:54ch;color:var(--iot-muted);margin-top:18px;font-size:1.04rem}.iot-final .iot-actions{gap:12px 24px}.iot-final-tile{border:1px solid var(--iot-line-2);background:var(--iot-panel);width:min(100%,300px);box-shadow:var(--iot-shadow);border-radius:10px;justify-self:start;gap:6px;margin:0;padding:16px;display:grid}.iot-final-tile-top{color:var(--iot-dim);justify-content:space-between;align-items:center;gap:8px;font-size:.72rem;display:flex}.iot-final-tile-label{color:var(--iot-muted);font-size:.86rem}.iot-final-tile-val{font-variant-numeric:tabular-nums;color:var(--iot-ink);font-size:2rem;line-height:1.1}.iot-final-tile-spark{width:100%;height:40px;display:block}.iot-final-tile-spark path{fill:none;stroke:var(--iot-signal);stroke-width:1.6px;vector-effect:non-scaling-stroke}.iot-final-tile-spark .th{stroke:var(--iot-warn);stroke-dasharray:3 3;stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.7}.iot-final-tile-meta{color:var(--iot-dim);flex-wrap:wrap;align-items:center;gap:8px;font-size:.74rem;display:flex}@media (width>=900px){.iot-final-grid{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:64px}.iot-final-tile{justify-self:end}}@media (width<=719px){.iot-final{padding:64px 0}}@media (prefers-reduced-motion:reduce){.iot-site *,.iot-site :before,.iot-site :after{transition:none!important;animation:none!important}.iot-wall.is-running .iot-btn-alarm .run:before{opacity:.6;border-top-color:currentColor}}.iot-tile-top .iot-swap{display:inline-block;position:relative}.iot-tile-top .iot-swap>.alt-on,.iot-tile-top .iot-swap>.alt-ack{position:absolute;top:0;right:0}.iot-wall [data-alt=a] .ln.hot{stroke:var(--iot-warn)}.iot-top .iot-btn-sm{white-space:nowrap}@media (width<=420px){.iot-tile-top{flex-direction:column;align-items:flex-start;gap:4px}.iot-tile-top .iot-swap>.alt-on,.iot-tile-top .iot-swap>.alt-ack{left:0;right:auto}}@media (width<=639px){.iot-x{width:44px;height:44px}.iot-btn-sm,.iot-btn-alarm{min-height:44px}.iot-dev-art{aspect-ratio:16/10}}@media (width>=421px){.iot-tile[data-alt] .iot-tile-top{flex-wrap:wrap}.iot-tile[data-alt] .iot-tile-id{flex:none;overflow:visible}.iot-tile[data-alt] .iot-tile-top .iot-swap{flex:none;justify-items:end;margin-left:auto;display:inline-grid}.iot-tile[data-alt] .iot-tile-top .iot-swap>.alt-on,.iot-tile[data-alt] .iot-tile-top .iot-swap>.alt-ack{position:static}}.iot-hero{background-color:var(--iot-bg);background-image:radial-gradient(80% 60% at 85% 0,#38d6e81a,#0000 60%),linear-gradient(#e6f1f309 1px,#0000 1px),linear-gradient(90deg,#e6f1f309 1px,#0000 1px);background-position:0 0,-1px -1px,-1px -1px;background-size:auto,24px 24px,24px 24px}.iot-hero .iot-in{max-width:1440px}@media (width>=1024px){.iot-hero .iot-in{padding-left:max(32px,50% - 588px)}}.iot-hero h1{letter-spacing:-.035em;font-size:clamp(2rem,1.1rem + 3.4vw,3.85rem);line-height:1.03}.iot-hero h1:after{content:"";background:linear-gradient(90deg,var(--iot-signal),#38d6e800);border-radius:2px;width:72px;height:3px;margin-top:22px;display:block}.iot-wall-col{position:relative}.iot-wall-col:before{content:"";background:var(--iot-spill);pointer-events:none;z-index:-1;position:absolute;inset:-18% -12% -10% -18%}.iot-wall,.iot-story{max-width:880px}.iot-wall{box-shadow:var(--iot-frame-shadow);background:linear-gradient(#131f25,#0e171b);border-color:#e6f1f324;border-radius:20px}.iot-wall-bar{background:#111a1e;padding:12px 16px 12px 14px}.iot-dots{flex:none;gap:6px;display:inline-flex}.iot-dots i{background:#2c3c43;border-radius:50%;width:9px;height:9px}.iot-dots i:first-child{background:#ff6b6bb3}.iot-dots i:nth-child(2){background:#ffb020b3}.iot-dots i:last-child{background:#38d6e8b3}.iot-wall-title{margin-right:auto}.iot-host{color:var(--iot-dim);background:var(--iot-bg);border:1px solid var(--iot-line);border-radius:999px;padding:3px 10px;font-size:.72rem;display:none}@media (width>=1100px){.iot-host{display:inline-flex}}.iot-tiles{gap:10px;padding:14px}.iot-tile{background:linear-gradient(#132025,#10191d);border-radius:12px}.iot-tile:after{border-radius:12px}@media (width>=1280px){.iot-tile-val{font-size:1.75rem}.iot-tiles{gap:12px;padding:18px}.iot-tile{padding:14px 14px 12px}}.iot-wall-more{display:none}@supports (animation-timeline:scroll()){@media (width>=1280px) and (prefers-reduced-motion:no-preference){.iot-wall-col{perspective:1600px}.iot-wall{transform-origin:50% 100%;animation:linear both iot-settle scroll(root);animation-range:0 360px}}}@keyframes iot-settle{0%{transform:rotateX(3deg)scale(.985)}to{transform:none}}@media (width<=1023px){.iot-hero-grid{grid-template-areas:"copy""act""wall"}}@media (width<=639px){.iot-hero-act .iot-actions{flex-direction:column;align-items:stretch;gap:8px}.iot-hero-act .iot-btn{width:100%;min-height:52px}.iot-hero-act .iot-btn-ghost{color:var(--iot-signal);border-color:#0000;min-height:48px}.iot-wall{border-radius:16px}.iot-wall-bar{flex-wrap:nowrap}.iot-wall-title .iot-rx{display:none}.iot-wall-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.iot-clock,.iot-wall:not(.is-all) .iot-tile:not([data-core]){display:none}.iot-wall:not(.is-all) .iot-tile[data-core]:nth-child(8){grid-column:1/-1}.iot-wall-more{border:1px dashed var(--iot-line-2);width:calc(100% - 28px);min-height:44px;color:var(--iot-signal);font-family:var(--iot-mono);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin:0 14px 12px;font-size:.8rem;display:flex}.iot-wall-more:before{content:"+";font-size:1rem}.iot-wall-more[aria-expanded=true]:before{content:"−"}.iot-wall-more .lbl-less,.iot-wall-more[aria-expanded=true] .lbl-more{display:none}.iot-wall-more[aria-expanded=true] .lbl-less{display:inline}}.iot-sec-raised#alarm-flow{background-color:var(--iot-bg);background-image:radial-gradient(55% 45% at 0 0,#ffb02017,#0000 70%),linear-gradient(#e6f1f306 1px,#0000 1px),linear-gradient(90deg,#e6f1f306 1px,#0000 1px);background-size:auto,24px 24px,24px 24px;border-color:#ffb0202e;box-shadow:inset 0 1px #ffb0201f}#alarm-flow .iot-head h2:before{content:"";background:var(--iot-warn);border-radius:1px;width:56px;height:2px;margin-bottom:20px;display:block}#alarm-flow .iot-head .iot-eyebrow{color:var(--iot-warn)}#alarm-flow .iot-mobile,#alarm-flow .iot-phone{position:relative}#alarm-flow .iot-mobile:before{content:"";background:var(--iot-spill);pointer-events:none;position:absolute;inset:0 -10% -10% 30%}#alarm-flow .iot-mobile>*{position:relative}.iot-final{background-color:var(--iot-signal);color:#04181c;padding-bottom:max(88px,calc(64px + env(safe-area-inset-bottom)));background-image:radial-gradient(70% 90% at 100% 0,#a0f4fc8c,#0000 60%),linear-gradient(#04181c0f 1px,#0000 1px),linear-gradient(90deg,#04181c0f 1px,#0000 1px);background-size:auto,24px 24px,24px 24px;border-top:0}.iot-final h2{color:#04181c;font-size:clamp(2rem,1.1rem + 3.4vw,3.75rem)}.iot-final .iot-eyebrow{color:#04181c}.iot-final .iot-eyebrow .iot-rx{background:#04181c;box-shadow:0 0 0 3px #04181c2e}.iot-final-copy>p:not(.iot-eyebrow){color:#0a3138}.iot-final .iot-btn{color:#e6f1f3;background:#04181c;box-shadow:0 18px 40px -18px #04181ccc}.iot-final .iot-btn:hover{color:#fff;background:#0b2a30}.iot-final :is(a,button):focus-visible{outline-offset:2px;outline:2px solid #04181c}.iot-final-tile{background:#0b1114;border-color:#04181c80;border-radius:16px;width:min(100%,340px);padding:20px;box-shadow:inset 0 1px #ffffff0f,0 40px 80px -30px #04181cbf,0 10px 24px -12px #04181c80}@media (width<=899px){.iot-final .iot-btn{width:100%;min-height:52px}.iot-final-tile{width:min(100%,360px)}}.iot-dash,.iot-dq{box-shadow:var(--iot-frame-shadow);background:linear-gradient(#121d22,#0f181c);border-color:#e6f1f324;border-radius:18px}.iot-dash-bar{background:#111a1e;justify-content:flex-start}.iot-dash-bar .iot-dash-title{min-width:0;margin-right:auto}.iot-dash-body{padding:20px}.iot-chart{border-radius:12px;padding:16px 16px 10px}.iot-specard{background:linear-gradient(#132026,#10191d);border-radius:18px}#use-cases>.iot-in{position:relative}#use-cases>.iot-in:before{content:"";background:var(--iot-spill);pointer-events:none;height:780px;position:absolute;top:280px;left:10%;right:-10%}#use-cases>.iot-in>*{position:relative}@media (width>=1280px){#use-cases .iot-selector{margin-inline:calc(50% + min(1376px,100vw - 64px)/-2)}#use-cases .iot-panel{grid-template-columns:minmax(0,8.5fr) minmax(0,3.5fr);gap:20px;margin-inline:calc(50% + min(1376px,100vw - 64px)/-2)}.iot-dash-body{gap:20px;padding:24px}.iot-tbl{font-size:.88rem}.iot-arch{grid-template-columns:minmax(0,6fr) minmax(0,6fr)}.iot-stack svg{max-width:540px}}.iot-arch[data-layer] .slab .top{transition:fill .2s,stroke .2s}.iot-arch[data-layer="0"] .slab[data-i="0"] .top,.iot-arch[data-layer="1"] .slab[data-i="1"] .top,.iot-arch[data-layer="2"] .slab[data-i="2"] .top,.iot-arch[data-layer="3"] .slab[data-i="3"] .top,.iot-arch[data-layer="4"] .slab[data-i="4"] .top,.iot-arch[data-layer="5"] .slab[data-i="5"] .top,.iot-arch[data-layer="6"] .slab[data-i="6"] .top{fill:#38d6e83d;stroke-width:2px}.iot-stack:before{content:"";background:var(--iot-spill);pointer-events:none;position:absolute;inset:0 -10%}.iot-stack svg,.iot-stack-cap{position:relative}@media (width>=1024px){.iot-phone{max-width:340px}}@media (width<=1023px){.iot-phone{max-width:360px}}.iot-dev,.iot-cards6 li,.iot-suite a,.iot-steps li,.iot-guides a,.iot-hub-g{border-radius:16px}.iot-dev{box-shadow:var(--iot-shadow)}.iot-cards6 li,.iot-guides a,.iot-suite a{background:linear-gradient(#132026,#10191d)}.iot-guides a:hover,.iot-suite a:hover,.iot-cards6 li:hover{border-color:#38d6e899}.iot-sec .iot-head h2{letter-spacing:-.03em;font-size:clamp(1.75rem,1.1rem + 2.6vw,3.25rem)}.iot-railctl{display:none}@media (width<=639px){.iot-rail ul{scroll-snap-type:x proximity;scrollbar-width:none;flex-wrap:nowrap;padding-right:40px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.iot-rail ul::-webkit-scrollbar{display:none}.iot-rail li{scroll-snap-align:start;flex:none}.iot-tabs{scroll-snap-type:x proximity;scrollbar-width:none;flex-wrap:nowrap;width:auto;overflow-x:auto}.iot-tabs::-webkit-scrollbar{display:none}.iot-tabs [role=tab]{scroll-snap-align:start;white-space:nowrap;flex:none}#use-cases .iot-dash{margin-inline:calc(-1 * var(--iot-gutter));border-left:0;border-right:0;border-radius:0}.iot-dash-body{padding:16px}.iot-dash-bar,.iot-dq .iot-dash-bar{flex-wrap:nowrap}.iot-dash-bar .iot-dash-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.iot-tabs{-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.iot-hw,.iot-suite{scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1 * var(--iot-gutter));padding:4px var(--iot-gutter) 8px;scroll-padding-inline:var(--iot-gutter);overscroll-behavior-x:contain;gap:12px;display:flex;overflow-x:auto}.iot-hw::-webkit-scrollbar,.iot-suite::-webkit-scrollbar{display:none}.iot-hw>*,.iot-suite>*{scroll-snap-align:start;flex:none;width:85%}.iot-railctl:not([hidden]){justify-content:flex-end;align-items:center;gap:10px;margin-top:8px;display:flex}.iot-railctl [data-rail-count]{color:var(--iot-muted);text-align:center;min-width:4.5em;font-size:.8rem}.iot-railbtn{border:1px solid var(--iot-line-2);background:var(--iot-panel);width:44px;height:44px;color:var(--iot-ink);cursor:pointer;border-radius:10px;place-items:center;display:grid}.iot-railbtn:hover{border-color:var(--iot-signal);color:var(--iot-signal)}.iot-cards6,.iot-guides,.iot-steps{gap:16px}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){#use-cases .iot-panel:not([hidden]){animation:linear both iot-arrive view();animation-range:entry entry 60%}.iot-hw>*,.iot-cards6>li,.iot-steps>li,.iot-guides>li{animation:linear both iot-rise view();animation-range:entry entry 45%}.iot-flow{view-timeline-name:--iot-flow}.iot-flow:before{transform-origin:0;animation:linear both iot-draw-x --iot-flow;animation-range:cover 10% cover 55%}.iot-flow>li{animation:linear both iot-rise view();animation-range:entry entry 50%}.iot-dq-tbl tbody tr{animation:linear both iot-fadein view();animation-range:entry entry 80%}.iot-final-tile{animation:linear both iot-rise24 view();animation-range:entry entry 70%}.iot-phone{animation:linear both iot-arrive view();animation-range:entry entry 60%}}@media (prefers-reduced-motion:no-preference) and (width<=1023px){.iot-flow:before{transform-origin:top;animation-name:iot-draw-y}}@media (prefers-reduced-motion:no-preference) and (width<=639px){.iot-hw>*,.iot-suite>*{animation:none}}}@keyframes iot-arrive{0%{opacity:.4;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes iot-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes iot-rise24{0%{transform:translateY(24px)}to{transform:none}}@keyframes iot-fadein{0%{opacity:0}to{opacity:1}}@keyframes iot-draw-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes iot-draw-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.iot-sec-alt{background-color:#10202a;border-color:#38d6e81a}#architecture.iot-sec-alt{background-color:#062a33;background-image:radial-gradient(60% 55% at 78% 38%,#38d6e838,#0000 68%),radial-gradient(50% 40% at 0 100%,#38d6e814,#0000 70%),linear-gradient(#06303a 0%,#082731 55%,#0b1a20 100%);border-top:1px solid #38d6e847;border-bottom:0}#architecture .iot-acc,#architecture .iot-acc-item{border-color:#a6e4ec29}#architecture .iot-acc-body p{color:#b4d3d9}#architecture .iot-acc-tag{color:#93b7be}#architecture .iot-stack .slab .top{fill:#08343eeb;stroke:#a6e4ec47}#architecture .iot-stack .slab .side{fill:#06252c}#architecture .iot-stack .slab .side2{fill:#041c22}#architecture .iot-stack .slab text{fill:#93b7be}#architecture .iot-stack-cap{color:#93b7be}.iot-sec-raised#alarm-flow{box-shadow:none;background-color:#120f0a;background-image:radial-gradient(60% 50% at 0 0,#ffb0202e,#0000 70%),radial-gradient(45% 40% at 100% 85%,#ff783c1a,#0000 70%),linear-gradient(#ffecd206 1px,#0000 1px),linear-gradient(90deg,#ffecd206 1px,#0000 1px);background-size:auto,auto,24px 24px,24px 24px;border-top:0;border-bottom:1px solid #ffb02038;position:relative;overflow-x:clip}#alarm-flow:before{content:"";background:linear-gradient(90deg,var(--iot-warn),#ff7a3c 45%,#ffb02059);pointer-events:none;height:6px;position:absolute;inset:0 0 auto}#alarm-flow .iot-intro,#alarm-flow .iot-checks li{color:#d6c7b0}#alarm-flow .iot-flow li{background:linear-gradient(#1a1610,#14110c);border-color:#ffc87829}#alarm-flow .iot-flow p{color:#cbbda6}#alarm-flow .iot-flow code{background:#0d0b07;border-color:#ffc87824}#alarm-flow .iot-flow li.is-hot{background:linear-gradient(#10262b,#14110c);border-color:#38d6e88c}#alarm-flow .iot-flow-n{background:#0d0b07}#alarm-flow .iot-mobile{border-top-color:#ffc87824}#alarm-flow .iot-mobile:before{display:none}.iot-stage{min-width:0;position:relative}.iot-stage-dash{background:linear-gradient(#121d22,#0e171b);border:1px solid #e6f1f324;border-radius:18px;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 50px 90px -40px #000000f2,0 12px 30px -12px #0009,0 0 160px -40px #ffb02059}.iot-stage-body{gap:14px;padding:18px;display:grid}.iot-stage-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.iot-stage-kpis>div{background:var(--iot-bg);border:1px solid var(--iot-line);border-radius:10px;gap:2px;min-width:0;padding:10px 12px;display:grid}.iot-stage-kpis span{font-family:var(--iot-mono);color:var(--iot-dim);font-size:.68rem}.iot-stage-kpis strong{font-family:var(--iot-mono);white-space:nowrap;text-overflow:ellipsis;color:var(--iot-ink);font-size:clamp(1rem,.7rem + .7vw,1.4rem);font-weight:500;overflow:hidden}.iot-stage-kpis small{color:var(--iot-muted);font-size:.68rem;line-height:1.3}.iot-stage-kpis .is-alarm{border-color:#ff5d5d80;box-shadow:inset 0 0 24px #ff5d5d14}.iot-stage-kpis .is-alarm strong{color:#ff8a8a}.iot-stage-kpis .is-warn strong{color:var(--iot-warn)}.iot-stage-log{border-top:1px solid var(--iot-line);margin:0;padding:0;list-style:none;display:grid}.iot-stage-log li{border-bottom:1px solid var(--iot-line);color:var(--iot-muted);grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;padding:8px 0;font-size:.78rem;display:grid}.iot-stage-log .iot-mono{color:var(--iot-dim);font-size:.7rem}.iot-phone-sites{border:1px solid var(--iot-line);background:var(--iot-panel);color:var(--iot-muted);border-radius:12px;grid-template-columns:1fr auto;gap:5px 8px;padding:10px;font-size:.66rem;display:grid}.iot-phone-sites b{font-family:var(--iot-mono);color:var(--iot-ink);text-align:right;font-weight:500}.iot-phone-sites b.hot{color:#ff8a8a}.iot-wt-short{display:none}@media (width<=639px){.iot-wt-long{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.iot-wt-short{display:inline}.iot-stage-dash,.iot-mhide{display:none}}@media (width<=1023px){.iot-stage{order:-1;justify-items:center;display:grid}.iot-phone{order:0}}@media (width>=640px) and (width<=1023px){.iot-stage-dash{width:100%}#alarm-flow .iot-stage .iot-phone{z-index:2;max-width:300px;margin-top:-160px}}@media (width>=1024px){.iot-mobile{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px}.iot-stage{perspective:1800px;align-items:center;min-height:720px;margin-right:calc(-1*max(32px,50vw - 588px));padding:40px 0 40px 200px;display:flex}.iot-stage-dash{transform-origin:0%;border-right:0;border-radius:20px 0 0 20px;transform:rotateY(-9deg)rotateX(3deg)}#alarm-flow .iot-stage .iot-phone{z-index:2;width:340px;max-width:none;position:absolute;top:calc(50% - 329px);left:0;box-shadow:0 0 0 1px #e6f1f324,0 60px 100px -30px #000000f2,0 20px 40px -20px #000000b3,0 0 90px -30px #38d6e859}.iot-stage-body{padding:22px 22px 22px 170px}}@media (width>=1280px){.iot-stage{min-height:780px;padding-left:220px}#alarm-flow .iot-stage .iot-phone{width:372px;top:calc(50% - 360px)}.iot-stage-dash{width:100%}.iot-stage-body{padding-left:176px}}.iot-stack .slab .glow{fill:#38d6e852;stroke:var(--iot-signal);stroke-width:2px;opacity:0;pointer-events:none}.iot-stack .slab{transform-box:fill-box;transform-origin:50%}.iot-acc-item{position:relative}@supports (timeline-scope:--a) and (animation-timeline:view()){@media (width>=1024px) and (prefers-reduced-motion:no-preference){.iot-arch.is-scene{timeline-scope:--iot-l0,--iot-l1,--iot-l2,--iot-l3,--iot-l4,--iot-l5,--iot-l6}.iot-arch.is-scene .iot-acc-item:first-child{view-timeline-name:--iot-l0}.iot-arch.is-scene .iot-acc-item:nth-child(2){view-timeline-name:--iot-l1}.iot-arch.is-scene .iot-acc-item:nth-child(3){view-timeline-name:--iot-l2}.iot-arch.is-scene .iot-acc-item:nth-child(4){view-timeline-name:--iot-l3}.iot-arch.is-scene .iot-acc-item:nth-child(5){view-timeline-name:--iot-l4}.iot-arch.is-scene .iot-acc-item:nth-child(6){view-timeline-name:--iot-l5}.iot-arch.is-scene .iot-acc-item:nth-child(7){view-timeline-name:--iot-l6}.iot-arch.is-scene .slab .glow,.iot-arch.is-scene .slab{animation-timing-function:linear;animation-fill-mode:both;animation-range:cover 28% cover 62%}.iot-arch.is-scene .slab .glow{animation-name:iot-glow}.iot-arch.is-scene .slab{animation-name:iot-lift}.iot-arch.is-scene .slab[data-i="0"],.iot-arch.is-scene .slab[data-i="0"] .glow{animation-timeline:--iot-l0}.iot-arch.is-scene .slab[data-i="1"],.iot-arch.is-scene .slab[data-i="1"] .glow{animation-timeline:--iot-l1}.iot-arch.is-scene .slab[data-i="2"],.iot-arch.is-scene .slab[data-i="2"] .glow{animation-timeline:--iot-l2}.iot-arch.is-scene .slab[data-i="3"],.iot-arch.is-scene .slab[data-i="3"] .glow{animation-timeline:--iot-l3}.iot-arch.is-scene .slab[data-i="4"],.iot-arch.is-scene .slab[data-i="4"] .glow{animation-timeline:--iot-l4}.iot-arch.is-scene .slab[data-i="5"],.iot-arch.is-scene .slab[data-i="5"] .glow{animation-timeline:--iot-l5}.iot-arch.is-scene .slab[data-i="6"],.iot-arch.is-scene .slab[data-i="6"] .glow{animation-timeline:--iot-l6}.iot-arch.is-scene .iot-acc-item:before{content:"";background:var(--iot-signal);opacity:0;border-radius:1px;width:2px;animation:linear both iot-glow view();animation-range:cover 28% cover 62%;position:absolute;top:12px;bottom:12px;left:-14px}.iot-arch.is-scene .iot-acc-body{padding-bottom:28px}.iot-arch.is-scene .iot-stack{top:calc(50vh - 260px)}}}@keyframes iot-glow{0%,to{opacity:0}30%,70%{opacity:1}}@keyframes iot-lift{0%,to{transform:none}30%,70%{transform:translate(10px)}}@supports (animation-timeline:view()){@media (width>=1024px) and (prefers-reduced-motion:no-preference){.iot-flow:before{animation-range:cover 12% cover 52%}.iot-flow>li{animation:linear both iot-light --iot-flow}.iot-flow>li:first-child{animation-range:cover 10% cover 18%}.iot-flow>li:nth-child(2){animation-range:cover 18% cover 26%}.iot-flow>li:nth-child(3){animation-range:cover 26% cover 34%}.iot-flow>li:nth-child(4){animation-range:cover 34% cover 42%}.iot-flow>li:nth-child(5){animation-range:cover 42% cover 50%}}@media (width<=639px) and (prefers-reduced-motion:no-preference){.iot-cards6>li,.iot-steps>li,.iot-guides>li,.iot-starts>li{animation:none}}}@keyframes iot-light{0%{opacity:.22;transform:translateY(14px)}to{opacity:1;transform:none}}.iot-incl-d{margin-top:16px}.iot-incl-d>summary{cursor:pointer;min-height:44px;color:var(--iot-signal);border-radius:6px;align-items:center;gap:10px;font-size:.92rem;list-style:none;display:flex}.iot-incl-d>summary::-webkit-details-marker{display:none}.iot-incl-d>summary:before{content:"+";font-family:var(--iot-mono);border:1px solid var(--iot-line-2);border-radius:6px;place-items:center;width:24px;height:24px;display:grid}.iot-incl-d[open]>summary:before{content:"−"}.iot-incl-d .iot-incl{margin-top:8px}@media (width<=639px){.iot-cards6,.iot-steps,.iot-starts,.iot-guides{scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1 * var(--iot-gutter));padding:4px var(--iot-gutter) 8px;scroll-padding-inline:var(--iot-gutter);overscroll-behavior-x:contain;grid-template-columns:none;gap:12px;display:flex;overflow-x:auto}.iot-cards6::-webkit-scrollbar,.iot-steps::-webkit-scrollbar,.iot-starts::-webkit-scrollbar,.iot-guides::-webkit-scrollbar{display:none}.iot-cards6>*,.iot-steps>*,.iot-starts>*,.iot-guides>*{scroll-snap-align:start;flex:none;width:82%;position:relative}.iot-sub{margin-top:36px}.iot-price li{gap:6px;padding:16px 18px}.iot-dq-tbl tr.is-clean{display:none}.iot-dq-keys{margin:16px 0 10px}.iot-intro{font-size:.96rem}.iot-sec{padding:44px 0}.iot-gw-copy p:last-child{display:none}.iot-mobile{margin-top:48px;padding-top:40px}}.iot-spec-d>summary,.iot-sel-d>summary{cursor:pointer;border-radius:6px;align-items:center;gap:10px;min-height:44px;list-style:none;display:flex}.iot-spec-d>summary::-webkit-details-marker,.iot-sel-d>summary::-webkit-details-marker{display:none}.iot-spec-d>summary{font-family:var(--iot-mono);color:var(--iot-signal);font-size:.74rem}.iot-spec-d>summary:after,.iot-sel-d>summary:after{content:"+";font-family:var(--iot-mono);border:1px solid var(--iot-line-2);width:24px;height:24px;color:var(--iot-signal);border-radius:6px;flex:none;place-items:center;margin-left:auto;display:grid}.iot-spec-d[open]>summary:after,.iot-sel-d[open]>summary:after{content:"−"}.iot-sel-d{border:1px solid var(--iot-line-2);background:linear-gradient(#0f181c,#0d1518);border-radius:16px;margin-top:28px}.iot-sel-d>summary{font-family:var(--iot-sans);letter-spacing:-.01em;color:var(--iot-ink);padding:14px 20px;font-size:1.12rem}.iot-sel-d .iot-selector{background:0 0;border:0;margin-top:0;padding-top:4px}@media (width>=900px){.iot-sel-d>summary{padding:18px 24px 4px}}@media (width<=639px){.iot-flow,.iot-price{scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1 * var(--iot-gutter));padding:4px var(--iot-gutter) 8px;scroll-padding-inline:var(--iot-gutter);overscroll-behavior-x:contain;gap:12px;display:flex;overflow-x:auto}.iot-flow::-webkit-scrollbar,.iot-price::-webkit-scrollbar{display:none}.iot-flow>li,.iot-price>li{scroll-snap-align:start;flex:none;width:80%;position:relative}.iot-flow:before,.iot-flow li:before{content:none;display:none}.iot-price{background:0 0;border:0;border-radius:0;overflow-y:hidden}.iot-price li{background:var(--iot-panel);border-radius:14px;border:1px solid var(--iot-line-2)!important}.iot-dq-keys{display:none}.iot-phone{max-width:280px}.iot-hub-pipe{padding:10px 0}.iot-hub-g{padding:12px 14px}.iot-hub-core{padding:16px 20px}.iot-hub-row{gap:8px}.iot-dev-art{aspect-ratio:2}.iot-gw{gap:14px;padding:16px}.iot-sel-d>summary{padding:12px 16px;font-size:1rem}.iot-sel-d .iot-selector{padding:4px 16px 16px}.iot-specard{gap:10px;padding:16px}}@supports (animation-timeline:view()){@media (width<=639px) and (prefers-reduced-motion:no-preference){.iot-flow>li,.iot-price>li{animation:none}}}@media (width>=1024px){.iot-stage-dash .iot-dash-bar{padding-left:176px}}@media (width<=639px){.iot-phone{max-width:290px}.iot-phone-list li:nth-child(3){display:none}}.account-link[data-astro-cid-cxt7wjin]{border:1px solid var(--line);white-space:nowrap;min-width:44px;min-height:44px;color:var(--ink);border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;line-height:1.4;display:inline-flex}.account-link[data-astro-cid-cxt7wjin]:hover{color:var(--blue);border-color:var(--blue)}@media (width<=760px){.account-link-compact[data-astro-cid-cxt7wjin]{padding:10px}.account-link-compact[data-astro-cid-cxt7wjin] span[data-astro-cid-cxt7wjin]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}
