.iotsim{--bg:#f8fafc;--card:#fff;--ink:#0f172a;--mut:#64748b;--line:#e2e8f0;--sky:#eef6ff;--soil:#b9936c;--soil-wet:#4a3320;--ok:#16a34a;--dry:#ea580c;--wet:#0284c7;--bad:#dc2626;--pipe:#94a3b8;--box:#1e293b;--boxink:#e2e8f0}@media (prefers-color-scheme:dark){.iotsim{--bg:#0b1220;--card:#111a2e;--ink:#e5edf8;--mut:#93a4bd;--line:#26334d;--sky:#0f1b33;--soil:#6d5238;--soil-wet:#2a1c10;--pipe:#64748b}}.iotsim{color:var(--ink)}.iotsim .is-panel{background:var(--card);border:1px solid var(--line);border-radius:1rem}.iotsim .is-scene-wrap{background:var(--sky);border:1px solid var(--line);border-radius:1rem;overflow-x:auto}.iotsim .is-scene{width:100%;min-width:620px;height:auto;display:block}.iotsim svg text{fill:var(--ink);font-family:inherit}.iotsim .t-m{fill:var(--mut)!important}.iotsim .t-halo{paint-order:stroke;stroke:var(--soil);stroke-width:3px;stroke-linejoin:round;font-weight:700;fill:#fff!important}.iotsim .t-box{fill:var(--boxink)!important}.iotsim .wire{fill:none;stroke:var(--pipe);stroke-width:1.6px;opacity:.7}.iotsim .ctl{stroke-dasharray:3 4}.iotsim .pipe{fill:none;stroke:var(--pipe);stroke-width:7px;stroke-linecap:round}.iotsim .flow{fill:none;stroke:#38bdf8;stroke-width:3.4px;stroke-linecap:round;stroke-dasharray:7 9;opacity:0;transition:opacity .2s}.iotsim .flow.on{opacity:1;animation:.7s linear infinite isflow}@keyframes isflow{to{stroke-dashoffset:-16px}}.iotsim .led{fill:#334155;stroke:#0f172a;stroke-width:1px}.iotsim .led.g{fill:#22c55e}.iotsim .led.b{fill:#38bdf8}.iotsim .led.r{fill:#ef4444}.iotsim .led.blink{animation:1s step-end infinite isblink}@keyframes isblink{50%{opacity:.2}}.iotsim .cloud-link.off{stroke:var(--bad);stroke-dasharray:5 5}.iotsim .is-idle .flow.on,.iotsim .is-idle .led.blink{animation-play-state:paused}.iotsim .valve{fill:var(--card);stroke:var(--pipe);stroke-width:3px}.iotsim .valve.open{fill:#38bdf8;stroke:#0284c7}.iotsim .pump{fill:var(--card);stroke:var(--pipe);stroke-width:3px}.iotsim .pump.on{fill:#38bdf8;stroke:#0284c7}.iotsim .btn{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--ink);cursor:pointer;border-radius:.75rem;padding:.55rem .95rem;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s}.iotsim .btn:hover{border-color:#10b981}.iotsim .btn:focus-visible{outline-offset:2px;outline:3px solid #10b981}.iotsim .btn[aria-pressed=true]{color:#fff;background:#059669;border-color:#059669}.iotsim .btn.warn[aria-pressed=true]{background:var(--bad);border-color:var(--bad)}.iotsim .btn.off[aria-pressed=true]{background:#475569;border-color:#475569}.iotsim .phone{background:#0f172a;border-radius:2rem;width:100%;max-width:300px;margin-inline:auto;padding:.55rem;box-shadow:0 12px 30px #0f172a40}.iotsim .screen{color:#0f172a;background:#f1f5f9;border-radius:1.55rem;min-height:470px;padding:.8rem .7rem 1rem;position:relative;overflow:hidden}.iotsim .pill{color:#166534;background:#dcfce7;border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:700}.iotsim .pill.off{color:#991b1b;background:#fee2e2}.iotsim .pill.sync{color:#92400e;background:#fef3c7}.iotsim .zcard{border-left:5px solid var(--ok);background:#fff;border-radius:1rem;margin-top:.6rem;padding:.7rem;box-shadow:0 1px 2px #0f172a14}.iotsim .zcard[data-cond=dry]{border-left-color:var(--dry)}.iotsim .zcard[data-cond=wet]{border-left-color:var(--wet)}.iotsim .zcard[data-cond=bad]{border-left-color:var(--bad)}.iotsim .zcard.stale{opacity:.6}.iotsim .bar{background:#e2e8f0;border-radius:99px;height:8px;margin:.45rem 0;position:relative}.iotsim .bar i{background:var(--ok);border-radius:99px;height:100%;transition:width .3s;display:block}.iotsim .zcard[data-cond=dry] .bar i{background:var(--dry)}.iotsim .zcard[data-cond=wet] .bar i{background:var(--wet)}.iotsim .bar b{opacity:.5;background:#0f172a;width:2px;height:14px;position:absolute;top:-3px}.iotsim .zbtn{color:#fff;cursor:pointer;background:#0284c7;border:0;border-radius:.7rem;width:100%;min-height:44px;margin-top:.45rem;font-size:.85rem;font-weight:700}.iotsim .zbtn:hover{background:#0369a1}.iotsim .zbtn:focus-visible{outline-offset:2px;outline:3px solid #10b981}.iotsim .toast{z-index:3;color:#fff;opacity:0;pointer-events:none;background:#0f172a;border-radius:.9rem;padding:.65rem .8rem;font-size:.78rem;line-height:1.35;transition:transform .35s,opacity .35s;position:absolute;top:.5rem;left:.5rem;right:.5rem;transform:translateY(-130%);box-shadow:0 8px 20px #0000004d}.iotsim .toast.show{opacity:1;transform:none}.iotsim .chips{flex-wrap:wrap;gap:.25rem;margin-top:.35rem;display:flex}.iotsim .chip{color:#475569;background:#e2e8f0;border-radius:99px;padding:.12rem .45rem;font-size:.66rem;font-weight:600}.iotsim .chip.on{color:#fff;background:#0284c7}.iotsim .chip.bad{background:var(--bad);color:#fff}.iotsim .sm{flex-wrap:wrap;gap:.3rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.iotsim .sm li{background:var(--bg);border:1px solid var(--line);color:var(--mut);border-radius:.5rem;padding:.2rem .55rem;font-size:.7rem;font-weight:700}.iotsim .sm li[aria-current=step]{color:#fff;background:#0284c7;border-color:#0284c7}.iotsim .sm li.cool[aria-current=step]{background:#7c3aed;border-color:#7c3aed}.iotsim .log{font-variant-numeric:tabular-nums;max-height:210px;margin:0;padding:.5rem .75rem;font-size:.8rem;line-height:1.5;list-style:none;overflow:auto}.iotsim .log li{border-bottom:1px dashed var(--line);padding:.15rem 0}.iotsim .log time{color:var(--mut);margin-right:.5rem;font-weight:600}@media (prefers-reduced-motion:reduce){.iotsim *{transition:none!important;animation:none!important}.iotsim .flow.on{stroke-dasharray:none}}.iotsim .leaf{fill:var(--leaf,#16a34a);stroke:#00000026;stroke-width:.6px}.iotsim .drop{pointer-events:none}.iotsim .is-swipe-hint{color:var(--muted,#64748b);margin:0 0 .4rem;font-size:.8rem;font-weight:600;display:none}@media (width<=700px){.iotsim .is-swipe-hint{display:block}}.iotsim .wcard{background:#e0f2fe;border-radius:.8rem;margin-top:.6rem;padding:.5rem .65rem}.iotsim .sgcard{background:#fef3c7;border:1px solid #f59e0b;border-radius:.9rem;margin-top:.6rem;padding:.6rem}.iotsim .sgcard[hidden],.iotsim .wcard [hidden]{display:none}.iotsim .sgb{margin-top:0;padding:.3rem;font-size:.78rem}.iotsim .sgb.alt{background:#475569}.iotsim .sgb.alt:hover{background:#334155}
