html.ioh-page-loading{background:#fff}html.dark.ioh-page-loading{background:#111827}.ioh-page-loading body{visibility:hidden}#ioh-page-loader{visibility:visible;position:fixed;inset:0;z-index:2147483647;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:#fff;opacity:1;transition:opacity .1s linear}#ioh-page-loader.ioh-page-loader--fade{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){#ioh-page-loader{transition:none}}.dark #ioh-page-loader{background:#111827}#ioh-page-loader img{width:min(220px,60vw);height:80px;object-fit:contain}#ioh-page-loader progress{appearance:none;border:0;border-radius:4px;overflow:hidden;width:min(240px,64vw);height:4px;background:#e5e7eb}#ioh-page-loader progress::-webkit-progress-bar{background:transparent}#ioh-page-loader progress:indeterminate{background:linear-gradient(90deg,transparent 0 35%,#3b82f6 35% 65%,transparent 65%) #e5e7eb;background-size:250% 100%;animation:ioh-page-progress 1.4s ease-in-out infinite alternate}#ioh-page-loader progress::-moz-progress-bar{background:#3b82f6}@keyframes ioh-page-progress{0%{background-position:100% 0}to{background-position:0 0}}@media(prefers-reduced-motion:reduce){#ioh-page-loader progress:indeterminate{animation:none}}option:disabled{color:#6b7280;font-weight:300}.ioh-modal{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;background:#0009}[data-ioh-temp-configured="0"]:not([data-ioh-temp-shown="1"]){display:none}.ioh-temp-inline{display:flex;align-items:flex-start;gap:var(--ioh-control-gap)}.ioh-temp-inline .form-control{flex:1 1 auto;min-width:0}.ioh-temp-inline .btn{flex:0 0 auto}.ioh-temp-inline[data-ioh-temp-empty="1"] .form-control{display:none}.ioh-modal-body{display:flex;flex-direction:column;gap:var(--ioh-content-gap)}.ioh-modal-body .ioh-card-lead,.ioh-modal-body .ioh-settings-group-title{margin:0}.ioh-temp-step{display:flex;flex-direction:column;gap:var(--ioh-control-gap)}.ioh-temp-off-lead{margin-right:auto}.ioh-modal-box{background:var(--card-bg);border-radius:12px;padding:1.5rem;max-width:500px;width:90%;max-height:88vh;overflow:auto;border:1px solid rgba(255,255,255,.1)}.ioh-dropdown{display:none;position:absolute;right:0;top:calc(100% + 4px);background:var(--card-bg);border:1px solid rgba(255,255,255,.1);border-radius:8px;min-width:180px;z-index:200;box-shadow:0 4px 24px #0006;overflow:hidden}.ioh-dropdown a{display:block;padding:.625rem 1rem;font-size:.8125rem;color:inherit;text-decoration:none;white-space:nowrap}.ioh-dropdown a:hover{background:#ffffff0f}.ioh-root-output-link{display:block;width:100%}.ioh-root-output-link-locked{pointer-events:none;cursor:default}.ioh-root-output-btn{border:0 solid transparent!important;box-shadow:none;transition:border-color .18s ease,background-color .18s ease,color .18s ease}.ioh-root-output-btn-live{border-width:1px!important;border-style:solid!important;border-color:#ffffff24!important}.ioh-root-output-btn-locked{border-width:1px!important;border-style:solid!important;opacity:1!important}html.light .ioh-root-output-btn-live{border-color:#0f172a29!important}.col-lg-2{width:100%}@media(min-width:992px){.col-lg-2{width:16.666667%}}.auth-page{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-main);color:#fff;font-family:Nunito,ui-sans-serif,system-ui,sans-serif}.auth-shell{width:100%;max-width:560px;padding:1.5rem}.auth-logo-wrap{text-align:center;margin:1rem 0 .5rem}.auth-logo{display:block;width:70%;max-width:350px;height:auto;margin:0 auto;object-fit:contain}.auth-card{background:var(--card-bg);border-radius:20px;padding:2rem;border:1px solid rgba(255,255,255,.05)}.auth-title{font-size:1.25rem;font-weight:700;text-align:center;margin:0 0 .25rem}.auth-subtitle{font-size:.875rem;color:var(--text-muted);text-align:center;margin:0 0 1.5rem}.auth-form{display:block}.auth-field{margin-bottom:1rem}.auth-field:last-of-type{margin-bottom:1.5rem}.auth-label{display:block;font-size:.625rem;color:var(--text-muted);text-transform:uppercase;font-weight:700;letter-spacing:.05em;margin-bottom:.375rem}.auth-submit{width:100%;padding:.75rem;font-size:.875rem}.auth-hint{font-size:.75rem;color:var(--text-muted);text-align:center;margin-top:1rem}html.light .auth-page{color:#1e293b}html.light .auth-card{border-color:#00000014}@media(max-width:560px){.auth-shell{padding:1rem}.auth-logo{width:70%;max-width:300px}.auth-card{padding:1.25rem}}html.dark .form-control{color-scheme:dark}html.dark select.form-control option{background:#111827;color:#e5e7eb}html.dark select.form-control option:checked{background:#2563eb;color:#fff}html.light body{color:#0f172a}html.light .text-muted,html.light .ioh-settings-grid>.form-group label{color:#475569!important}html.light .sidebar-item,html.light .ioh-sidebar .nav-sub a{color:#334155}html.light .sidebar-item.active{background:linear-gradient(90deg,rgba(29,78,216,.14) 0%,transparent 100%);border-left-color:#1d4ed8;color:#1d4ed8}html.light .card,html.light .tz-card,html.light .status-grid-card,html.light .ioh-settings-grid>.form-group{border-color:#0f172a1f}html.light .form-control,html.light .field-input{color-scheme:light;background:#fff;color:#0f172a;border-color:#0f172a33}html.light .form-control:focus,html.light .field-input:focus{border-color:#1d4ed88c;box-shadow:0 0 0 2px #1d4ed833}html.light select.form-control option{background:#fff;color:#0f172a}html.light select.form-control option:checked{background:#1d4ed8;color:#fff}html.light .btn-secondary,html.light .btn-dark{background:#0f172a0f;border-color:#0f172a29;color:#1e293b}input[type=file]{display:block;width:100%;max-width:560px;padding:.5rem;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#e2e8f0;font-size:.875rem}input[type=file]::file-selector-button{margin-right:.75rem;padding:.5rem .85rem;border:1px solid rgba(44,69,252,.45);border-radius:8px;background:var(--accent-blue);color:#fff;font-weight:700;cursor:pointer;transition:filter .15s}input[type=file]::file-selector-button:hover{filter:brightness(1.08)}input[type=file]::-webkit-file-upload-button{margin-right:.75rem;padding:.5rem .85rem;border:1px solid rgba(44,69,252,.45);border-radius:8px;background:var(--accent-blue);color:#fff;font-weight:700;cursor:pointer}html.light input[type=file]{background:#fff;color:#0f172a;border-color:#0f172a33}html.light input[type=file]::file-selector-button,html.light input[type=file]::-webkit-file-upload-button{border-color:#1d4ed88c;background:#1d4ed8}input[type=submit]{margin-top:.75rem;padding:.6rem 1.1rem;border-radius:8px;border:1px solid transparent;background:var(--accent-blue);color:#fff;font-size:.875rem;font-weight:700;cursor:pointer}input[type=submit]:hover{opacity:.92}input[type=time]{color-scheme:dark}input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.2);opacity:.9;cursor:pointer}html.light input[type=time]{color-scheme:light}html.light input[type=time]::-webkit-calendar-picker-indicator{filter:none;opacity:.75}body[data-ioh-page=ionet-settings]:not([data-ioh-static-text-ready="1"]) .ioh-settings-page,body[data-ioh-page=ionet_settings_page]:not([data-ioh-static-text-ready="1"]) .ioh-settings-page{visibility:hidden}.ioh-settings-grid>.form-group.form-check{display:block}.ioh-settings-grid>.form-group.form-check label{margin:0;text-transform:none;letter-spacing:0;font-size:inherit;font-weight:inherit;color:inherit}.ioh-settings-grid>.form-group .form-check-row{display:flex;align-items:flex-start;gap:var(--ioh-control-gap)}.ioh-settings-grid>.form-group .form-check-input{margin:.15rem 0 0;flex:0 0 auto}.ioh-settings-grid>.form-group .form-check-label{margin:0;display:block;font-size:.875rem;font-weight:700;line-height:1.25;text-transform:none;letter-spacing:0;color:inherit}.ioh-settings-grid>.form-group .form-check-hint{display:block;margin-top:var(--ioh-space-1);font-size:.75rem;font-weight:500;line-height:1.3;color:var(--text-muted)}.ioh-device-card-title{min-width:0;flex:1 1 auto;padding-right:0;line-height:1.25;overflow-wrap:anywhere}.ioh-device-order-actions{display:flex;flex:0 0 auto;align-items:center;gap:var(--ioh-control-gap);margin-left:auto}.ioh-device-order-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid rgba(148,163,184,.22);border-radius:8px;background:#ffffff0f;color:var(--text-muted);text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.ioh-device-order-btn:hover{border-color:#60a5fa8c;background:#3b82f629;color:#bfdbfe;text-decoration:none}.ioh-device-order-btn.is-disabled{pointer-events:none;cursor:not-allowed;opacity:.36}.ioh-device-order-icon{display:block;width:16px;height:16px}html.light .ioh-device-order-btn{border-color:#0f172a24;background:#0f172a0a;color:#475569}html.light .ioh-device-order-btn:hover{border-color:#1d4ed873;background:#1d4ed81a;color:#1d4ed8}.form-check{display:block}.form-check-label{display:block;font-size:.875rem;cursor:pointer}.form-check-hint{display:block;font-size:.75rem;color:var(--text-muted)}html.light .ioh-settings-grid>.form-group .form-check-label{color:#0f172a!important}html.light .ioh-settings-grid>.form-group .form-check-hint{color:#64748b!important}:root{--tz-info-value-strong:#e2e8f0}html.light{--tz-info-value-strong:#0f172a}html.light .tz-info-line .iv{color:#0f172a}html.light .tz-modes a.active{background:var(--accent-blue);color:#fff;border-color:#0000}html.light .tz-modes a.warn{background:#d9770633;color:#b45309;border-color:#b453094d}html.light .bg-primary{background:#1d4ed8!important}html.light .bg-success{background:#059669!important}html.light .bg-danger{background:#dc2626!important}html.light .bg-warning{background:#d97706!important}html.light .bg-info{background:#2563eb!important}html.light .bg-secondary{background:#475569!important}html.light .bg-dark{background:#334155!important}html.light .bg-primary.text-white,html.light .bg-success.text-white,html.light .bg-danger.text-white,html.light .bg-warning.text-white,html.light .bg-info.text-white,html.light .bg-secondary.text-white,html.light .bg-dark.text-white{color:#fff!important}html.light .badge-success{background:#05966926;color:#047857}html.light .badge-danger{background:#dc26261f;color:#b91c1c}html.light .badge-warning{background:#d9770626!important;color:#92400e!important;border:1px solid rgba(180,83,9,.2)}html.light .badge-info{background:#2563eb1f;color:#1d4ed8}html.light .badge-primary{background:#1d4ed81f;color:#1e40af}html.light .text-primary{color:#1d4ed8!important}html.light .text-success{color:#059669!important}html.light .text-danger{color:#dc2626!important}html.light .text-warning{color:#d97706!important}html.light .text-info{color:#2563eb!important}html.light .text-gray-800{color:#0f172a}html.light .btn-success{background:#05966924;border-color:#0596694d;color:#047857}html.light .btn-warning{background:#d9770624;border-color:#d977064d;color:#92400e}html.light .btn-info{background:#2563eb1f;border-color:#2563eb40;color:#1d4ed8}html.light .progress{background:#00000014}.ioh-update-progress{display:block;width:100%;height:.5rem;appearance:none;border:0;border-radius:9999px;overflow:hidden;background:#ffffff14;color:var(--accent-blue);accent-color:var(--accent-blue)}html.light .ioh-update-progress{background:#00000014}.ioh-update-progress::-webkit-progress-bar{background:transparent;border-radius:inherit}.ioh-update-progress::-webkit-progress-value{background:var(--accent-blue);border-radius:inherit}.ioh-update-progress::-moz-progress-bar{background:var(--accent-blue);border-radius:inherit}.ioh-upload-progress__percent{font-variant-numeric:tabular-nums}html.light .border-left-primary{border-left-color:#1d4ed8}html.light .border-left-success{border-left-color:#059669}html.light .border-left-danger{border-left-color:#dc2626}html.light .border-left-warning{border-left-color:#d97706}html.light .border-left-info{border-left-color:#2563eb}html.light .card{border-color:#0000001a;box-shadow:0 2px 8px #00000014}html.light .ioh-modal-box{border-color:#0000001a;box-shadow:0 8px 32px #00000026}html.light .ioh-dropdown{border-color:#0000001a;box-shadow:0 4px 16px #0000001f}html.light .ioh-dropdown a:hover{background:#0000000d}.tz-head-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:var(--ioh-control-gap);flex-wrap:nowrap}.tz-state-pill{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:var(--ioh-space-1) var(--ioh-space-3);font-size:.78rem;font-weight:700;white-space:nowrap;border-radius:6px}.tz-power-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:var(--ioh-space-1) var(--ioh-space-3);margin:0!important}@media(max-width:560px){.tz-head-actions{gap:var(--ioh-control-gap)}.tz-state-pill{min-height:44px;padding:var(--ioh-space-1) var(--ioh-space-2);font-size:.72rem}.tz-power-btn{min-height:44px;padding:var(--ioh-space-1) var(--ioh-space-2)}}.rb-wrap{max-width:640px;margin:1.25rem auto 0}.rb-card{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.25rem}.rb-title{margin:0;font-size:1.35rem;font-weight:800;color:#e2e8f0;text-align:center}.rb-sub{margin:0;color:var(--text-muted);font-size:.92rem;text-align:center}.rb-timer{position:relative;width:150px;height:150px;display:grid;place-items:center}.rb-ring-svg{width:150px;height:150px;transform:rotate(-90deg)}.rb-ring-bg{fill:none;stroke:#94a3b838;stroke-width:10}.rb-ring{fill:none;stroke:#2c45fc;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .85s ease;filter:drop-shadow(0 0 8px #2c45fc73)}.rb-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.rb-seconds{font-size:2.15rem;line-height:1;font-weight:900;color:#f8fafc;animation:rbPulse 1s ease-in-out infinite}.rb-unit{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-top:.2rem}.rb-status{margin:0;color:#cbd5e1;font-size:.95rem;text-align:center}@keyframes rbPulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@media(max-width:640px){.rb-wrap{margin-top:.75rem}.rb-title{font-size:1.1rem}.rb-timer,.rb-ring-svg{width:132px;height:132px}}html.light .rb-title,html.light .rb-seconds{color:#0f172a}html.light .rb-status{color:#334155}html.light .rb-ring{stroke:var(--accent-blue);filter:drop-shadow(0 0 8px rgba(29,78,216,.45))}html.light .rb-ring-bg{stroke:#0f172a1f}.card-top-state-on{border-top:4px solid #10b981!important}.card-top-state-off{border-top:4px solid #94a3b88c!important}html.light .card-top-state-off{border-top-color:#94a3b8!important}.border-left-breathe{animation:border-left-breathe 3.8s ease-in-out infinite}@keyframes border-left-breathe{0%,to{border-left-color:#10b98173;box-shadow:inset 4px 0 #10b98159}50%{border-left-color:#10b981;box-shadow:inset 4px 0 #10b981f2,0 0 10px #10b98133}}.tz-power-btn.tz-power-switch{display:inline-flex;align-items:center;justify-content:center;flex:0 0 76px;width:76px;min-width:76px;height:44px;min-height:44px;padding:0;margin:0;border:0;border-radius:999px;background:transparent;box-shadow:none;color:inherit;cursor:pointer;text-decoration:none;appearance:none}.tz-power-switch .tz-power-track{position:relative;display:block;width:76px;height:36px;box-sizing:border-box;border:1px solid #858e9d;border-radius:999px;background:#a1a8b3;box-shadow:inset 0 1px 3px #0f172a20;transition:background-color .18s ease,border-color .18s ease}.tz-power-thumb{position:absolute;left:2px;top:2px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;box-sizing:border-box;border:1px solid #ffffffd9;border-radius:50%;background:linear-gradient(180deg,#fff,#e8edf4);color:#334155;box-shadow:0 2px 4px #0f172a40,inset 0 1px #fff;transform:translate(0);transition:transform .18s ease,color .18s ease}.tz-power-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round}.tz-power-switch[aria-checked=true] .tz-power-track{background:var(--accent-blue);border-color:var(--accent-blue)}.tz-power-switch[aria-checked=true] .tz-power-thumb{transform:translate(40px);color:#059669}html.dark .tz-power-switch[aria-checked=false] .tz-power-track{background:#526075;border-color:#65738a}.tz-power-switch:disabled,.tz-power-switch[aria-disabled=true]{cursor:default}.tz-power-switch:disabled .tz-power-track,.tz-power-switch[aria-disabled=true] .tz-power-track{background:#a1a8b3;border-color:#858e9d;opacity:.55}.tz-power-switch:focus-visible{outline:3px solid var(--accent-blue);outline-offset:3px}.tz-power-switch.ioh-pending{animation:none;box-shadow:none;border-radius:999px}.tz-power-switch.ioh-pending .tz-power-track{animation:ioh-glow .9s ease-in-out infinite}.tz-state-pill.badge{justify-content:flex-start;gap:var(--ioh-control-gap);min-height:0;margin-top:var(--ioh-space-1);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--text-muted);font-size:.75rem;line-height:1.5;white-space:normal;cursor:default}.tz-state-pill:before{content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:currentColor}.tz-state-pill.badge-success{color:var(--accent-green)}.tz-state-pill.badge-warning{color:var(--accent-amber)}#ioh-factory-restore{display:flex;flex-direction:column;gap:var(--ioh-content-gap)}#ioh-factory-restore>*{margin-block:0}@media(prefers-reduced-motion:reduce){.tz-power-track,.tz-power-thumb{transition:none!important}.tz-power-switch.ioh-pending .tz-power-track{animation:none}}.ioh-pending-lock{pointer-events:none!important}.ioh-pending{opacity:.75;animation:ioh-glow .9s ease-in-out infinite;border-radius:4px}.ioh-pending.btn{border-radius:.25rem}@keyframes ioh-glow{0%,to{box-shadow:0 0 3px #2c45fc59!important}50%{box-shadow:0 0 14px #2c45fcd9,0 0 4px #2c45fc80!important}}.tz-ai-model{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ioh-control-gap);margin:0}.tz-ai-cell{min-width:0;min-height:72px;padding:var(--ioh-space-2);border:1px solid #94a3b829;border-radius:12px;background:#94a3b80a;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--ioh-space-1);color:#e2e8f0}.tz-ai-label{font-size:10px;letter-spacing:.04em;color:#94a3b8}.tz-ai-cell strong{font-size:12px;font-weight:600;line-height:1.3;text-align:center;margin:auto 0;overflow-wrap:anywhere}.tz-ai-detail{min-height:12px;font-size:10px;color:#94a3b8;text-align:center}.tz-ai-trends{width:100%;height:40px;overflow:visible}.tz-ai-zero{stroke:#94a3b84d;stroke-width:1}.tz-ai-point{fill:#94a3b8}.tz-ai-point.rising{fill:#fb7185}.tz-ai-point.falling{fill:#60a5fa}.tz-ai-point.missing{fill:none;stroke:#94a3b8;stroke-dasharray:2 2}.tz-ai-cell.ok strong{color:#4ade80}.tz-ai-cell.limiting strong{color:#fbbf24}.tz-ai-cell.alarm strong{color:#fb7185}html.light .tz-ai-cell{color:#334155;background:#f8fafc;border-color:#e2e8f0}html.light .tz-ai-label,html.light .tz-ai-detail{color:#64748b}html.light .tz-ai-point.rising{fill:#e11d48}html.light .tz-ai-point.falling{fill:#2563eb}html.light .tz-ai-cell.ok strong{color:#15803d}html.light .tz-ai-cell.limiting strong{color:#a16207}html.light .tz-ai-cell.alarm strong{color:#be123c}.tz-status-item.tz-valve-outputs{display:contents}.ioh-conn-panel__hint{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.conn-test-switch{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 0 auto;white-space:nowrap;cursor:pointer}.conn-test-switch input{position:absolute;opacity:0;width:1px;height:1px}.conn-test-switch__track{width:2.25rem;height:1.25rem;border-radius:1rem;background:#64748b;position:relative}.conn-test-switch__track:after{content:"";position:absolute;top:.125rem;left:.125rem;width:1rem;height:1rem;border-radius:50%;background:#fff;transition:transform .15s}.conn-test-switch input:checked+.conn-test-switch__track{background:#dc2626}.conn-test-switch input:checked+.conn-test-switch__track:after{transform:translate(1rem)}.conn-test-switch input:focus-visible+.conn-test-switch__track{outline:2px solid #3b82f6;outline-offset:3px}.conn-test-switch input:disabled+.conn-test-switch__track{opacity:.5}.ioh-conn-panel--testing [id^=conn-out-chip-],.ioh-conn-panel--testing [id^=conn-out-pin-],.ioh-conn-panel--testing [id^=conn-map-tag-],.ioh-conn-panel--testing [data-conn-out-mirror]{cursor:pointer}.ioh-conn-panel--testing [role=button]:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.ioh-conn-panel--testing .conn-test-pending{opacity:.55;stroke:#f59e0b;stroke-width:2px;outline:2px solid #f59e0b}#conn-test-error{color:#dc2626;margin-top:.5rem}#conn-test-error:empty{display:none}.root-testing-banner{padding:.8rem 1rem;background:#fef3c7;color:#92400e;font-weight:700;text-align:center}.root-testing-disabled{opacity:.45;pointer-events:none;user-select:none}.dark .root-testing-banner{background:#78350f;color:#fef3c7}.ioh-status-row--stack{grid-template-columns:minmax(0,1fr)}.ioh-status-row--stack .ioh-status-row__value{text-align:left;font-weight:600}.ioh-crash-addresses{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.45;overflow-wrap:anywhere}
