:root{--ch-control-height: 40px;--ch-control-compact-height: 36px;--ch-control-medium-height: 38px;--ch-icon-button-size: 30px;--ch-icon-size: 16px;--ch-switch-width: 44px;--ch-switch-height: 24px;--ch-list-row-height: 46px;--ch-field-gap: 12px;--ch-action-gap: 6px;--ch-control-radius: 8px;--ch-modal-close-size: 40px;--ch-modal-close-icon-size: 18px;--ch-modal-close-radius: 10px}:root{--bg:#e9eee9;--surf:#f8faf6;--ink:#16252b;--mute:#5d6e72;--line:#d1d9d2;--on:#0d7a66;--heat:#c4561f;--sun:#d99a00;--night:#dfe6ea;--ring:#0d7a66}html[data-theme=dark]{--bg:#10191c;--surf:#172327;--ink:#e6eeec;--mute:#93a5a8;--line:#27373b;--on:#3cc3a6;--heat:#f08a55;--sun:#f1b82d;--night:#0c1417;--ring:#3cc3a6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.45 Golos Text,system-ui,sans-serif}main{max-width:1040px;margin:0 auto;padding:20px 16px 64px}header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}h1{font-size:22px;margin:0;font-weight:700;letter-spacing:-.01em}h2{font-size:18px;margin:32px 0 10px;font-weight:600}.status{display:flex;align-items:center;gap:8px;color:var(--mute);font-size:14px}.dot{width:9px;height:9px;border-radius:50%;background:var(--heat)}.dot.ok{background:var(--on)}button,select,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.hero{background:var(--surf);border:1px solid var(--line);border-radius:18px;padding:20px 20px 16px}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.hero h2{margin:0;font-size:24px}.sub{color:var(--mute);font-size:14px;margin-top:2px}.ctl{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.arc{width:100%;height:auto;display:block;margin:6px 0 0}.arc text{fill:var(--mute);font-size:12px;font-family:inherit}.list{background:var(--surf);border:1px solid var(--line);border-radius:14px;overflow:hidden}.row{border-top:1px solid var(--line)}.row:first-child{border-top:0}.row-head{display:flex;align-items:center;gap:12px;padding:14px 16px}.name{flex:1;min-width:0;background:none;border:0;text-align:left;padding:0;font-weight:500}.name small{display:block;color:var(--mute);font-weight:400;font-size:13px}.badge{font-size:13px;color:var(--mute);border:1px solid var(--line);border-radius:99px;padding:2px 10px;background:none}.badge.has{color:var(--ink);border-color:var(--mute)}.sw{width:52px;height:30px;border-radius:99px;border:0;background:var(--line);position:relative;flex:none;transition:background .15s}.sw:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--surf);box-shadow:0 1px 2px #0003;transition:transform .15s}.sw[aria-checked=true]{background:var(--on)}.heat .sw[aria-checked=true]{background:var(--heat)}.sw[aria-checked=true]:after{transform:translate(22px)}.sw[aria-checked=mixed]{opacity:.5}.panel{padding:4px 16px 18px;display:grid;gap:16px}.timer{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.timer b{font-weight:600}.timer span{display:block;color:var(--mute);font-size:13px}.btn{border:1px solid var(--line);background:none;border-radius:10px;padding:8px 14px;font-weight:500}.btn:hover{border-color:var(--mute)}.btn.pri{background:var(--on);border-color:var(--on);color:#fff}.heat .btn.pri{background:var(--heat);border-color:var(--heat)}.btn.warn{color:var(--heat)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{border:0;background:none;padding:7px 14px}.seg button[aria-pressed=true]{background:var(--ink);color:var(--surf)}.form{display:grid;gap:12px;padding:14px;border:1px dashed var(--line);border-radius:12px}.fields{display:flex;gap:12px;flex-wrap:wrap;align-items:end}label{display:grid;gap:4px;font-size:13px;color:var(--mute)}input,select{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:0}input[type=number]{width:96px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:none;border-radius:99px;padding:3px 11px;font-size:13px}.chip:hover{border-color:var(--mute)}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:14px;max-width:90vw}.toast[hidden]{display:none}.empty{color:var(--mute);font-size:14px;margin:0}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.theme-toggle{background:var(--surf);border:1px solid var(--line);border-radius:9px;padding:6px 10px;font-size:13px;white-space:nowrap}.theme-toggle:hover{border-color:var(--mute)}.login-main{min-height:100vh;display:flex;flex-direction:column;justify-content:center;max-width:440px;padding:24px 16px 70px}.login-header{margin-bottom:24px}.login-card{background:var(--surf);border:1px solid var(--line);border-radius:18px;padding:30px}.login-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--bg);color:var(--on);font-size:32px}.login-card h2{margin:18px 0 4px;font-size:24px}.login-form{display:grid;gap:18px;margin-top:28px}.login-form label{font-size:14px;gap:7px}.login-form input{width:100%;padding:12px 13px;background:var(--bg)}.login-submit{padding:12px 16px}.login-submit:disabled{opacity:.6;cursor:wait}.login-error{margin:0;color:var(--heat);font-size:14px}.theme-toggle[id=theme-toggle],.theme-toggle[id=login-theme]{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;padding:0;font-size:18px;line-height:1;cursor:pointer}.login-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-bottom:24px}.login-header h1{margin:0}.login-header #login-theme{flex:0 0 34px}.login-card h2{margin-top:0}.location-nav{display:inline-flex;align-items:center;gap:3px;padding:3px;background:var(--surf);border:1px solid var(--line);border-radius:11px}.location-choice{background:transparent;border:0;border-radius:8px;padding:5px 14px;font-size:15px;font-weight:600;min-height:32px}.location-choice[aria-pressed=true]{background:var(--on);color:#fff}.location-choice:not([aria-pressed=true]):hover{background:var(--bg)}.home-panel{background:var(--surf);border:1px solid var(--line);border-radius:18px;padding:24px}.home-panel h2{margin:0 0 10px;font-size:24px}.home-panel p{margin:0 0 12px}#home-view[hidden],#app[hidden]{display:none}@media(max-width:540px){header{flex-wrap:wrap}.status{margin-left:auto}.location-choice{padding:5px 12px}}.brand-title{font-size:22px;margin:0 14px 0 0;white-space:nowrap}@media(max-width:650px){.brand-title{width:100%;margin-bottom:6px}}.camera-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.camera-heading h2{margin:0;font-size:24px}.camera-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.camera-card{min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:13px;overflow:hidden}.camera-card-head{padding:12px 14px;display:flex;justify-content:space-between;gap:10px;align-items:center}.camera-indicator{color:var(--mute);font-size:12px}.camera-video{width:100%;aspect-ratio:16/9;display:block;background:#0d171a;object-fit:contain}.camera-message{color:var(--mute);font-size:12px;margin:0;padding:8px 14px}.camera-off{display:grid;place-items:center;min-height:170px;background:#152024;color:#dce5e4;font-size:13px;padding:16px;text-align:center}@media(max-width:700px){.camera-grid{grid-template-columns:1fr}}.camera-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.camera-settings{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px;background:var(--bg)}.camera-settings[hidden]{display:none!important}.camera-settings>label{display:inline-flex;align-items:center;gap:8px;margin:0 16px 10px 0;font-size:14px}.camera-settings select{border:1px solid var(--line);border-radius:8px;padding:7px;background:var(--bg);color:inherit}.camera-settings-hint{font-size:12px;color:var(--mute);margin:2px 0 12px}.camera-visibility{display:flex;flex-wrap:wrap;gap:8px 15px;margin-bottom:12px}.camera-visibility label{display:flex;align-items:center;gap:5px;font-size:13px;cursor:pointer}.camera-grid{grid-template-columns:repeat(var(--camera-cols,2),minmax(0,1fr))}.camera-grid .camera-video{aspect-ratio:var(--camera-ratio,16/9)}.camera-grid .camera-card-head{cursor:grab;user-select:none}.camera-grid .camera-card-head:active{cursor:grabbing}.camera-card.dragging{opacity:.45}.camera-card.drag-over{outline:2px dashed #0b8c7c;outline-offset:-3px}@media(max-width:700px){.camera-grid{grid-template-columns:repeat(var(--camera-cols,2),minmax(0,1fr))}}#mikrotik-view[hidden]{display:none}.mt-toolbar,.mt-queue,.mt-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.mt-toolbar{justify-content:space-between;padding:14px;border:1px solid var(--line);border-radius:12px}.mt-toolbar select,.mt-controls select{padding:8px;border-radius:8px;background:var(--bg);color:inherit;border:1px solid var(--line)}.mt-queues{display:grid;gap:8px}.mt-queue{justify-content:space-between;padding:12px 14px;border:1px solid var(--line);border-radius:10px}.mt-queue small{display:block;color:var(--mute);margin-top:4px}.mt-danger{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.mt-error{color:#d45a5a}.mt-overview{display:grid;grid-template-columns:minmax(160px,2fr) repeat(3,minmax(90px,1fr));gap:10px;margin-bottom:22px}.mt-identity,.mt-metric{border:1px solid var(--line);border-radius:11px;padding:13px 15px;min-width:0;display:flex;flex-direction:column;gap:6px}.mt-identity strong,.mt-metric strong{overflow-wrap:anywhere;font-size:16px}.mt-identity small,.mt-metric small,.mt-section-head small{color:var(--mute);font-size:12px}.mt-metric strong{font-size:19px}.mt-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.mt-section-head h3{margin:0 0 4px}.mt-searchbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}.mt-searchbar input{flex:1 1 220px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:inherit}.mt-filters{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px}.mt-filter{border:0;background:transparent;color:inherit;padding:7px 11px;border-radius:7px;cursor:pointer;font-size:13px}.mt-filter.selected{background:var(--line);font-weight:600}.mt-table{border:1px solid var(--line);border-radius:11px;overflow:hidden}.mt-table-head,.mt-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 105px;align-items:center;gap:12px;padding:9px 13px}.mt-table-head{font-size:12px;color:var(--mute);background:#7878780f}.mt-row{border-top:1px solid var(--line);min-height:53px}.mt-row[hidden]{display:none}.mt-row-info{min-width:0;display:flex;flex-direction:column;gap:3px}.mt-row-info strong{font-size:14px}.mt-row-info small{font-size:11px;color:var(--mute);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mt-status{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;white-space:nowrap}.mt-status i{display:inline-block;flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:#dc2626}.mt-status.on i{background:#16a34a}.mt-status.off i{background:#dc2626}.mt-action{box-sizing:border-box;min-height:32px;height:32px;padding:0 10px!important;border-radius:var(--ch-control-radius,8px);font-size:13px!important;line-height:1.2;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%}.mt-empty{color:var(--mute);padding:14px;margin:0}.mt-details{border:1px solid var(--line);border-radius:10px;margin-top:14px;overflow:hidden}.mt-details summary{cursor:pointer;padding:13px 15px;font-weight:600}.mt-count{font-size:12px;color:var(--mute)}.mt-timer,.mt-log{padding:10px 14px;border-top:1px solid var(--line);font-size:13px}.mt-timer{display:flex;justify-content:space-between;align-items:center;gap:12px}.mt-dialog{border:1px solid var(--line);border-radius:14px;padding:24px;max-width:min(420px,calc(100vw - 32px));width:100%;background:var(--bg);color:inherit;box-shadow:0 18px 65px #0004}.mt-dialog::backdrop{background:#0007}.mt-dialog form{display:grid;gap:14px}.mt-dialog h3,.mt-dialog p{margin:0}.mt-dialog label{font-size:13px}.mt-dialog select{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:inherit}.mt-dialog-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}@media(max-width:650px){.mt-overview{grid-template-columns:repeat(3,minmax(0,1fr))}.mt-identity{grid-column:1/-1}.mt-table-head,.mt-row{grid-template-columns:minmax(0,1fr) 80px 85px;gap:6px;padding:9px 8px}.mt-status{font-size:15px;gap:5px}.mt-action{padding:0 8px!important}.mt-searchbar{align-items:stretch}.mt-filters{width:100%}.mt-filter{flex:1}}.mt-overview{grid-template-columns:minmax(190px,2fr) minmax(80px,.75fr) minmax(160px,1.25fr) minmax(80px,.75fr);column-gap:10px;row-gap:10px;margin-bottom:16px;align-items:stretch}.mt-identity,.mt-metric{padding:9px 12px;border-radius:9px;gap:3px;min-height:62px;box-sizing:border-box;justify-content:center}.mt-identity strong{font-size:14px;overflow-wrap:normal;word-break:normal}.mt-metric strong{font-size:17px;line-height:1.2;overflow-wrap:normal;word-break:normal}.mt-metric small,.mt-identity small{font-size:11px}@media(max-width:650px){.mt-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.mt-identity{grid-column:1/-1}.mt-metric{min-width:0}}.mt-tabs{display:flex;gap:6px;overflow-x:auto;padding:0 0 10px;margin:0 0 14px;border-bottom:1px solid var(--line);scrollbar-width:thin}.mt-tab{flex:0 0 auto;cursor:pointer;padding:9px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:13px;white-space:nowrap}.mt-tab:hover{background:#78787814}.mt-tab.active{border-color:var(--line);background:#7878781f;font-weight:600}.mt-tab:focus-visible{outline:2px solid currentColor;outline-offset:2px}.mt-tab-content[hidden]{display:none!important}.mt-placeholder{padding:22px 16px;border:1px dashed var(--line);border-radius:10px;color:var(--mute)}.mt-placeholder h3{margin:0 0 8px;color:inherit}.mt-placeholder p{margin:0}#mt-office-section:not([hidden]){display:block;margin-top:28px}#mt-office-section[hidden]{display:none!important}.schedule-custom{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px;border:1px solid var(--line, #888);border-radius:8px}.schedule-days{display:flex;flex-wrap:wrap;gap:8px}.schedule-days label{display:flex;align-items:center;gap:4px}.backup-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;box-sizing:border-box;padding:0;color:inherit;text-decoration:none;vertical-align:middle;cursor:pointer}.backup-icon:hover{border-color:var(--mute)}.backup-icon:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.backup-icon[hidden]{display:none!important}.backup-icon svg{display:block;flex-shrink:0;width:22px;height:22px}#office-printer-section[hidden]{display:none!important}.printer-panel{margin-top:28px}.printer-heading{margin-bottom:16px}.printer-title,.printer-actions{display:flex;align-items:center;gap:12px}.printer-title h2{font-size:21px;margin:0}.printer-title .sub{margin:3px 0 0}.printer-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--on)}.printer-status{display:inline-flex;align-items:center;gap:7px;color:var(--mute);font-size:13px;white-space:nowrap}.printer-status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mute)}.printer-status.online:before{background:var(--on)}.printer-status.offline:before{background:var(--heat)}.printer-toner{border:1px solid var(--line);border-radius:12px;padding:15px 16px;background:var(--bg);margin-bottom:12px}.printer-toner-top{display:flex;justify-content:space-between;gap:12px;font-size:14px}.printer-toner-top strong{font-size:18px}.printer-toner-track{height:9px;background:var(--line);border-radius:999px;overflow:hidden;margin-top:12px}.printer-toner-fill{height:100%;width:0;background:var(--on);border-radius:999px;transition:width .2s}.printer-toner.low .printer-toner-fill{background:var(--heat)}.printer-toner.low .printer-toner-top strong{color:var(--heat)}.printer-hint{font-size:11px;color:var(--mute);margin:8px 0 0!important}.printer-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.printer-metric{display:flex;flex-direction:column;gap:6px;min-width:0;border:1px solid var(--line);border-radius:11px;padding:12px 14px}.printer-metric span{color:var(--mute);font-size:12px}.printer-metric strong{font-size:16px;overflow-wrap:anywhere}.printer-details{margin-top:13px;border:1px solid var(--line);border-radius:10px}.printer-details summary{cursor:pointer;padding:12px 14px;font-size:13px;font-weight:600}.printer-details dl{margin:0;padding:0 14px 12px}.printer-details dl>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:9px 0;font-size:13px}.printer-details dt{color:var(--mute)}.printer-details dd{margin:0;text-align:right;overflow-wrap:anywhere}.printer-message{margin:12px 0 0!important;color:var(--heat);font-size:13px}.printer-message:empty{display:none}.printer-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;color:var(--mute);font-size:12px}.printer-web{color:var(--ink);text-decoration:none;font-size:13px}@media(max-width:720px){.printer-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.printer-metrics{grid-template-columns:1fr}.printer-heading{align-items:flex-start}.printer-actions{flex-wrap:wrap}.printer-title h2{font-size:18px}}.smart-panel{margin-top:20px}.smart-summary{font-size:13px;opacity:.8;margin:12px 0 16px}.smart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:12px}.smart-device{display:flex;flex-direction:column;gap:12px;padding:17px;border:1px solid var(--border,rgba(125,125,125,.24));border-radius:14px;background:var(--card,rgba(127,127,127,.06));min-width:0}.smart-device-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.smart-device-icon{font-size:25px}.smart-device-state,.smart-device-source{font-size:12px;opacity:.75}.smart-device strong{overflow-wrap:anywhere}.smart-power{margin-top:auto}.smart-integration{margin-top:18px;padding:12px;border:1px solid var(--border,rgba(125,125,125,.24));border-radius:10px}.smart-integration summary{cursor:pointer;font-weight:600}.smart-integration p{margin-bottom:0;line-height:1.5}.smart-empty{display:flex;align-items:center;gap:16px;padding:20px;border:1px dashed var(--border,rgba(125,125,125,.3));border-radius:14px;background:#7f7f7f09}.smart-empty>span{font-size:32px;opacity:.6}.smart-empty strong{display:block;margin-bottom:5px}.smart-empty p{margin:0;line-height:1.5}.smart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:16px 0}.smart-device{border:1px solid var(--border,#d4d9d5);border-radius:14px;padding:16px;background:#7f7f7f0b;display:flex;flex-direction:column;gap:12px}.smart-device-head{display:flex;justify-content:space-between;align-items:center}.smart-device .btn{margin-top:auto}.smart-scenarios{display:flex;flex-wrap:wrap;gap:8px}.smart-scenarios h3{width:100%;margin:8px 0}.smart-token-form{display:flex;gap:8px;flex-wrap:wrap}.smart-token-form input{flex:1;min-width:200px;padding:10px;border-radius:8px;border:1px solid #aaa}.smart-integration{margin-top:16px}.smart-household{padding:9px;max-width:100%}.gb-actions,.gb-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:12px 0}.gb-field{display:flex;flex-direction:column;gap:5px;min-width:160px}.gb-form input,.gb-form select,.gb-actions select{padding:8px;border:1px solid #8886;border-radius:7px;background:var(--card-bg,transparent);color:inherit}.gb-day{display:grid;grid-template-columns:55px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid #8883}.gb-range{display:inline-flex;gap:6px;align-items:center;margin:2px 7px 2px 0;padding:5px 9px;border:1px solid #8885;border-radius:8px}.gb-range button{background:transparent;color:inherit;border:0;cursor:pointer;font-size:18px}#gb-message{margin:8px 0}#gb-smtp-details{margin-top:20px}.gb-games-list{display:grid;gap:8px;max-height:440px;overflow:auto;margin:12px 0}.gb-game-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px;border:1px solid var(--border,#ccc);border-radius:8px}.gb-game-row small{flex:1;min-width:180px;overflow-wrap:anywhere}.gb-game-row .btn{padding:5px 9px}.gb-modal[hidden],.gb-modal section[hidden]{display:none!important}.gb-modal{position:fixed;inset:0;z-index:10000;background:#000000a6;display:grid;place-items:center;padding:env(safe-area-inset-top,12px) env(safe-area-inset-right,12px) env(safe-area-inset-bottom,12px) env(safe-area-inset-left,12px)}.gb-modal-panel{background:var(--bg,#fff);color:var(--text,inherit);border:1px solid var(--border,#aaa);border-radius:14px;width:min(100%,1050px);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;min-width:0;overflow:hidden}.gb-modal-head{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;gap:12px}.gb-modal-head h3{margin:0;font-size:1.15rem}.gb-tabs{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-inline:contain;padding:8px 16px;border-bottom:1px solid var(--border,#8885);scrollbar-width:thin;flex-shrink:0}.gb-tabs .btn{white-space:nowrap;min-height:44px}.gb-tabs .gb-active{outline:2px solid currentColor;outline-offset:-3px}.gb-modal-body{padding:16px;overflow-y:auto;min-height:0;overflow-wrap:anywhere}.gb-modal-body .gb-field{min-width:min(100%,220px);flex:1}.gb-modal-body input,.gb-modal-body select{max-width:100%;min-height:44px}.gb-modal-body .gb-form{align-items:end}.gb-actions select,.gb-actions .btn{min-height:44px}.gb-day,.gb-game-row{min-width:0}@media(max-width:600px){.gb-modal{padding:0}.gb-modal-panel{height:100dvh;max-height:100dvh;border-radius:0}.gb-modal-head,.gb-modal-body{padding:12px}.gb-tabs{padding:6px 10px}.gb-form{align-items:stretch}.gb-form .gb-field{width:100%;min-width:0}.gb-day{grid-template-columns:40px minmax(0,1fr)}.gb-game-row{display:grid;grid-template-columns:1fr 1fr}.gb-game-row label,.gb-game-row small{grid-column:1/-1;min-width:0}.gb-actions{align-items:stretch}.gb-actions label{flex:1;min-width:0}.gb-actions select{max-width:100%}}@media(min-width:700px)and (max-width:1100px){.gb-modal-panel{width:min(96vw,1000px)}}@media(horizontal-viewport-segments:2){.gb-modal-panel{max-width:calc(env(viewport-segment-width 0 0,100vw) - 24px)}}.gb-log-list{max-height:55vh;overflow:auto;overflow-wrap:anywhere}.gb-log-row{display:grid;grid-template-columns:155px 110px 110px minmax(0,1fr);gap:8px;padding:9px;border-bottom:1px solid #8883;font-size:13px}.gb-log-row time{white-space:nowrap}@media(max-width:700px){.gb-log-row{grid-template-columns:1fr 1fr}.gb-log-row span:last-child{grid-column:1/-1}}.gb-modal-panel{width:min(100%,980px)}.gb-modal-head{padding:12px 16px}.gb-modal-head h3{font-size:1rem}.gb-tabs{gap:3px;padding:6px 14px}.gb-tabs .btn{min-height:34px;padding:6px 11px;font-size:13px;border-radius:7px}.gb-modal-body{padding:14px 16px}.gb-modal-body h4{margin:2px 0 12px;font-size:14px}.gb-modal-body .gb-form{gap:10px;margin:10px 0;align-items:end}.gb-modal-body .gb-field{min-width:145px;flex:0 1 240px;font-size:12px}.gb-modal-body input:not([type=checkbox]),.gb-modal-body select{min-height:36px;padding:6px 9px;font-size:13px}.gb-modal-body input[type=checkbox]{appearance:auto!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;margin:0 6px 0 0;vertical-align:middle;accent-color:#1675da;flex:none}.gb-modal-body .btn{min-height:34px;padding:6px 11px;font-size:13px;border-radius:7px}.gb-modal-body .gb-icon-btn{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;display:inline-grid;place-items:center;font-size:16px}.gb-games-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.gb-games-list{display:block;max-height:min(48vh,480px);overflow:auto;margin:0;border:1px solid var(--border,#8885);border-radius:9px}.gb-game-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:43px;padding:4px 10px;border:0;border-bottom:1px solid var(--border,#8883);border-radius:0;flex-wrap:nowrap}.gb-game-row:last-child{border-bottom:0}.gb-game-check{display:flex;align-items:center;margin:0}.gb-game-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gb-game-actions{display:flex;align-items:center;gap:4px}.gb-edit-panel{border:1px solid var(--border,#8885);border-radius:9px;padding:12px;margin:12px 0}.gb-edit-panel h5{margin:0 0 10px;font-size:13px}.gb-computers-list{margin:12px 0;border:1px solid var(--border,#8885);border-radius:9px}.gb-computer-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px solid var(--border,#8883);font-size:13px}.gb-computer-row:last-child{border:0}.gb-computer-row small{display:block;font-size:11px;opacity:.7}@media(max-width:600px){.gb-modal-body{padding:12px}.gb-modal-body .gb-field{flex:1 1 100%;min-width:0}.gb-modal-body .gb-form{align-items:stretch}.gb-game-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:6px;padding:5px 7px}.gb-game-row .gb-game-check,.gb-game-row .gb-game-name,.gb-game-actions{grid-column:auto}.gb-modal-body .gb-icon-btn{min-width:40px;min-height:40px;width:40px;height:40px}.gb-tabs .btn{min-height:38px}}.gb-game-overlay{position:fixed;inset:0;z-index:11000;background:#0009;display:grid;place-items:center;padding:16px}.gb-game-dialog{width:min(100%,620px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden;background:var(--bg,#fff);color:var(--text,inherit);border:1px solid var(--border,#aaa);border-radius:12px;box-shadow:0 16px 50px #0004}.gb-game-dialog-header,.gb-game-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border,#8885)}.gb-game-dialog-header h4{margin:0}.gb-game-dialog-footer{justify-content:flex-end;border-bottom:0;border-top:1px solid var(--border,#8885)}.gb-game-dialog-body{overflow:auto;padding:16px 18px;min-height:0}.gb-game-dialog-body h5{margin:20px 0 10px}.gb-game-dialog-body .gb-field{display:grid;gap:6px}.gb-process-list{display:grid;gap:8px;margin-bottom:10px}.gb-process-row{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:8px;align-items:center}.gb-process-row input{width:100%;min-width:0}.gb-game-dialog .btn{min-height:34px;font-size:13px}.gb-game-dialog .gb-icon-btn{width:34px;min-width:34px;padding:0}.gb-game-dialog input{min-height:36px;padding:7px 9px;font-size:13px}@media(max-width:600px){.gb-game-overlay{padding:0}.gb-game-dialog{width:100%;height:100dvh;max-height:100dvh;border-radius:0}.gb-game-dialog-body,.gb-game-dialog-header,.gb-game-dialog-footer{padding:12px}}#gameblocker-section .camera-heading h2{display:flex;align-items:center;gap:10px}.gb-title-icon{flex:none;vertical-align:middle}.gb-main-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:12px 0;margin:0 0 8px;border-bottom:1px solid var(--border,#8884)}.gb-main-toolbar label{display:flex;flex-direction:column;gap:5px;font-size:12px;flex:1;max-width:360px}.gb-main-toolbar select{width:100%;font-size:14px}.gb-main-toolbar .btn{white-space:nowrap}.gb-token-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.gb-token-panel{border:1px solid var(--border,#8885);border-radius:10px;padding:14px;margin-top:12px;display:grid;gap:9px;max-width:700px}.gb-token-panel p{margin:0}.gb-token-value{display:flex;gap:8px;min-width:0}.gb-token-value input{min-width:0;flex:1;font-family:monospace;font-size:12px}@media(max-width:480px){.gb-main-toolbar{flex-wrap:wrap}.gb-main-toolbar label{max-width:none;flex-basis:100%}.gb-token-value{flex-wrap:wrap}.gb-token-value input{flex-basis:100%}}.gb-heating-list{border:1px solid var(--border,#8885);border-radius:14px;overflow:hidden;margin:16px 0 0;background:var(--card-bg,transparent)}.gb-heating-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;min-height:70px;border-bottom:1px solid var(--border,#8884)}.gb-heating-row:last-child{border-bottom:0}.gb-heating-info{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.gb-heating-info strong{font-size:15px;font-weight:650;overflow-wrap:anywhere}.gb-agent-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted,#78838a)}.gb-status-dot{width:8px;height:8px;border-radius:50%;background:#9aa1a5;flex:none}.gb-agent-online .gb-status-dot{background:#259b66}.gb-agent-online{color:#259b66}.gb-schedule-button{white-space:nowrap;padding:6px 13px;min-height:32px;border-radius:18px;font-size:13px}#gameblocker-root>.gb-form,#gameblocker-root>.gb-days{margin-left:12px;margin-right:12px}@media(max-width:480px){.gb-heating-row{padding:12px;gap:8px}.gb-schedule-button{min-height:40px}.gb-heating-info strong{font-size:14px}}.gb-heating-expanded{padding:12px 16px 18px;border-bottom:1px solid var(--border,#8884);background:var(--card-bg,transparent)}.gb-heating-expanded[hidden]{display:none}.gb-heating-info{flex-direction:row;align-items:center;gap:9px}.gb-agent-status{display:inline-flex;align-items:center;justify-content:center;line-height:1}.gb-status-dot{display:block;width:9px;height:9px;background:#dc4545}.gb-agent-offline .gb-status-dot{background:#dc4545}.gb-agent-online .gb-status-dot{background:#20a464}.gb-row-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.gb-toggle{position:relative;display:inline-flex;align-items:center;width:52px;height:30px;cursor:pointer;flex-shrink:0}.gb-toggle input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}.gb-toggle-track{width:52px;height:30px;border-radius:99px;background:#e2e8e4;position:relative;transition:background .16s ease}.gb-toggle-track:before{content:"";position:absolute;top:4px;left:4px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .16s ease}.gb-toggle input:checked+.gb-toggle-track{background:#26a36a}.gb-toggle input:checked+.gb-toggle-track:before{transform:translate(22px)}.gb-toggle input:focus-visible+.gb-toggle-track{outline:2px solid #3478f6;outline-offset:3px}.gb-toggle input:disabled+.gb-toggle-track{opacity:.5;cursor:not-allowed}@media(max-width:480px){.gb-row-actions{gap:8px}.gb-toggle,.gb-toggle-track{width:48px}.gb-toggle input:checked+.gb-toggle-track:before{transform:translate(18px)}}#gameblocker-root #gb-inline-schedule .gb-field:has(#gb-email){width:min(100%,460px);max-width:100%;flex:0 1 460px}#gameblocker-root #gb-inline-schedule #gb-email{width:100%;min-width:0;box-sizing:border-box}.gb-heating-row{min-height:54px;padding:8px 14px;gap:10px}.gb-heating-info{gap:7px}.gb-row-actions{gap:10px}@media(max-width:480px){.gb-heating-row{min-height:54px;padding:8px 12px;gap:8px}.gb-row-actions{gap:8px}}:root{--ring:#788b8c}html[data-theme=dark]{--ring:#a3b1b3}:where(input,select,textarea,button,[tabindex]):focus-visible{outline:1.5px solid var(--ring);outline-offset:2px}:where(input,select,textarea):focus{border-color:var(--ring);box-shadow:none}.gb-toggle input:focus-visible+.gb-toggle-track{outline:1.5px solid var(--ring);outline-offset:2px}.gb-time-picker{border:0;padding:0;margin:0;min-width:0}.gb-time-picker legend{font-size:13px;color:var(--mute);padding:0;margin-bottom:5px}.gb-time-parts{display:flex;align-items:center;gap:6px}.gb-time-parts select{width:66px;min-width:0;padding:8px 9px;appearance:auto}.gb-time-parts span{font-weight:600;color:var(--mute)}@media(max-width:480px){.gb-time-parts select{width:58px;padding:8px 5px}}#gameblocker-root .gb-schedule-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:16px}#gameblocker-root .gb-schedule-controls .gb-day-picker{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--mute);width:76px;flex:0 0 76px}#gameblocker-root .gb-schedule-controls .gb-day-picker select{width:100%;box-sizing:border-box}#gameblocker-root .gb-schedule-controls .gb-time-picker{display:flex;flex-direction:column;gap:5px;width:174px;flex:0 0 174px}#gameblocker-root .gb-schedule-controls .gb-time-picker legend{display:contents;font-size:13px;color:var(--mute)}#gameblocker-root .gb-schedule-controls .gb-time-parts{display:grid;grid-template-columns:minmax(0,1fr) 8px minmax(0,1fr);gap:4px;width:100%;align-items:center}#gameblocker-root .gb-schedule-controls .gb-time-parts select{width:100%;min-width:0;box-sizing:border-box;padding:8px 6px}#gameblocker-root .gb-schedule-controls .gb-time-parts span{text-align:center}#gameblocker-root .gb-schedule-controls select,#gameblocker-root .gb-schedule-controls>.btn{height:var(--ch-control-height);min-height:var(--ch-control-height);box-sizing:border-box}#gameblocker-root .gb-schedule-controls>.btn{white-space:nowrap}@media(max-width:520px){#gameblocker-root .gb-schedule-controls{gap:10px}#gameblocker-root .gb-schedule-controls .gb-time-picker{width:calc((100% - 10px)/2);flex:1 1 calc((100% - 10px)/2)}#gameblocker-root .gb-schedule-controls .gb-day-picker{width:100%;flex:1 1 100%}#gameblocker-root .gb-schedule-controls>.btn{flex:1 1 auto}}.gb-smtp-section{max-width:850px;margin-inline:auto}.gb-smtp-title{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;width:100%}.gb-smtp-title h4{margin:0!important}.gb-smtp-group{padding:17px 0;border-bottom:1px solid var(--border,#8883)}.gb-smtp-group h5{margin:0 0 13px;font-size:13px}.gb-smtp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;align-items:end}.gb-smtp-grid .gb-field{min-width:0!important;width:100%;max-width:none;flex:auto}.gb-smtp-grid .gb-field input,.gb-smtp-grid .gb-field select{width:100%;box-sizing:border-box}.gb-smtp-connection{grid-template-columns:minmax(0,2fr) minmax(90px,.7fr) minmax(140px,1.2fr)}.gb-smtp-credentials .gb-field:last-child{grid-column:1/-1}.gb-smtp-test{grid-template-columns:minmax(0,1fr) auto}.gb-smtp-test .btn{white-space:normal}.gb-smtp-group .sub{margin:10px 0 0}.gb-smtp-footer{display:flex;justify-content:flex-end;padding-top:16px}.gb-smtp-switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;font-size:12px;position:relative}.gb-smtp-switch input{position:absolute;opacity:0;width:1px!important;height:1px!important}.gb-smtp-track{display:inline-flex;align-items:center;width:42px;height:24px;border-radius:99px;background:#9aa4a0;transition:background .15s;padding:3px;box-sizing:border-box}.gb-smtp-track:before{content:"";width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}.gb-smtp-switch input:checked+.gb-smtp-track{background:#239b69}.gb-smtp-switch input:checked+.gb-smtp-track:before{transform:translate(18px)}.gb-smtp-switch input:focus-visible+.gb-smtp-track{outline:2px solid currentColor;outline-offset:3px}@media(max-width:650px){.gb-smtp-connection,.gb-smtp-credentials,.gb-smtp-test{grid-template-columns:minmax(0,1fr)}.gb-smtp-credentials .gb-field:last-child{grid-column:auto}.gb-smtp-test .btn{justify-self:start}.gb-smtp-group{padding:14px 0}}.gb-notifications-section{max-width:900px;margin:12px auto 0}.gb-notify-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto;align-items:center;gap:24px;padding:22px 20px;border:1px solid var(--border,#8883);border-radius:12px;background:var(--card-bg,transparent)}.gb-notify-option,.gb-notify-interval{min-width:0}.gb-notify-interval,.gb-notify-save{border-left:1px solid var(--border,#8883);padding-left:24px}.gb-notify-check{display:flex;align-items:center;gap:10px;font-weight:650;font-size:14px;cursor:pointer}.gb-modal-body .gb-notify-check input[type=checkbox]{margin:0;flex:none}.gb-notify-interval>label{display:block;font-weight:600;font-size:13px;margin-bottom:10px}.gb-notify-input-row{display:flex;align-items:center;gap:12px}.gb-modal-body .gb-notify-input-row input{width:105px;min-width:0}.gb-notify-input-row span{font-size:13px}.gb-notify-hint{font-size:12px;color:var(--muted,#708087);margin:9px 0 0;line-height:1.5}.gb-notify-option .gb-notify-hint{padding-left:26px}.gb-notify-save .btn{white-space:nowrap}.gb-notify-info{display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;border-radius:10px;background:#7391b417;color:var(--muted,#60727c);font-size:13px;line-height:1.5}.gb-notify-info>span:first-child{font-size:19px;flex:none}@media(max-width:720px){.gb-notify-card{grid-template-columns:minmax(0,1fr);gap:18px;padding:18px}.gb-notify-interval,.gb-notify-save{border-left:0;border-top:1px solid var(--border,#8883);padding-left:0;padding-top:18px}.gb-notify-save{display:flex;justify-content:flex-end}}#ban-strikes .ban-setting-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:14px;padding:7px 0;border-bottom:1px solid #e5e9ec}#ban-strikes .ban-setting-row input{width:100%;padding:9px;border:1px solid #ccd5da;border-radius:8px;background:#fff;color:#202a31}.admin-dialog #ban-strikes .ban-setting-row{display:grid!important;grid-template-columns:minmax(0,1fr) 150px 38px!important;gap:10px!important;align-items:center!important;padding:7px 0!important;border-bottom:1px solid #e5e9ec!important}.admin-dialog #ban-strikes .ban-setting-row input{min-width:0;width:100%!important;box-sizing:border-box}.admin-dialog #ban-strikes .ban-remove-strike{height:38px;width:38px;padding:0!important;display:grid;place-items:center;color:#b42318;border:1px solid #e7b6b0;border-radius:8px;background:#fff;cursor:pointer}.admin-dialog #ban-strikes .ban-remove-strike:disabled{opacity:.35;cursor:not-allowed}.admin-dialog .ban-strikes-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 8px}.admin-dialog .ban-strikes-heading h4{margin:0}.admin-dialog label.ban-check{display:flex!important;flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:16px!important;width:100%;min-height:52px;box-sizing:border-box;position:relative;cursor:pointer}.admin-dialog label.ban-check .ban-check-label{flex:1;min-width:0;color:#25333b;font-size:14px;font-weight:600}.admin-dialog label.ban-check input.ban-toggle-input{position:absolute!important;right:0!important;top:50%!important;width:46px!important;height:26px!important;transform:translateY(-50%);opacity:0!important;margin:0!important;cursor:pointer;z-index:2}.admin-dialog label.ban-check .ban-toggle-track{display:block!important;flex:none;width:46px;height:26px;border-radius:99px;background:#aeb8bd;position:relative;transition:background .15s;pointer-events:none}.admin-dialog label.ban-check .ban-toggle-track:after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .15s}.admin-dialog label.ban-check input.ban-toggle-input:checked+.ban-toggle-track{background:#078575}.admin-dialog label.ban-check input.ban-toggle-input:checked+.ban-toggle-track:after{transform:translate(20px)}.admin-dialog label.ban-check input.ban-toggle-input:focus-visible+.ban-toggle-track{outline:3px solid #75b8ee;outline-offset:2px}@media(max-width:570px){.admin-dialog #ban-strikes .ban-setting-row{grid-template-columns:minmax(0,1fr) 100px 34px!important;gap:7px!important}.admin-dialog #ban-strikes .ban-remove-strike{width:34px;height:34px}.admin-dialog .ban-strike-label{font-size:12px}}.admin-dialog #ban-settings-panel label.ban-check .ban-toggle-track{display:block!important;position:relative!important;flex:0 0 44px!important;width:44px!important;height:24px!important;min-width:44px!important;margin:0!important;padding:0!important;border:0!important;border-radius:999px!important;background:#aab5ba!important;box-sizing:border-box!important;overflow:visible!important}.admin-dialog #ban-settings-panel label.ban-check input.ban-toggle-input:checked+.ban-toggle-track{background:#078779!important}.admin-dialog #ban-settings-panel label.ban-check .ban-toggle-track:after{content:none!important;display:none!important}.admin-dialog #ban-settings-panel label.ban-check .ban-toggle-track:before{content:""!important;display:block!important;position:absolute!important;inset:3px auto auto 3px!important;width:18px!important;height:18px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1px 3px #0003!important;box-sizing:border-box!important;transform:translate(0)!important;transition:transform .15s ease!important}.admin-dialog #ban-settings-panel label.ban-check input.ban-toggle-input:checked+.ban-toggle-track:before{transform:translate(20px)!important}.admin-dialog #ban-settings-panel label.ban-check input.ban-toggle-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;clip-path:inset(50%)!important;pointer-events:none!important}.module-list{max-height:48vh;overflow:auto;margin:12px 0}.module-row{display:flex;align-items:center;gap:9px;padding:9px 3px;border-bottom:1px solid var(--border,#ddd);flex-wrap:wrap}.module-row strong,.module-row>span{flex:1;min-width:135px}.module-row label{display:flex;align-items:center;gap:6px;font-size:13px}.module-row input{width:16px;height:16px}.admin-dialog #admin-modules-tab{padding:8px 16px 12px;box-sizing:border-box}.admin-dialog #admin-modules-tab[hidden],.admin-dialog #module-create[hidden]{display:none!important}.admin-dialog #admin-modules-tab h3{margin:8px 0}.admin-dialog #admin-modules-tab .sub{margin:0 0 16px}.admin-dialog #admin-modules-tab .admin-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.admin-dialog #admin-modules-tab .admin-toolbar label{flex:1;max-width:350px;min-width:170px}.admin-dialog #admin-modules-tab .admin-toolbar select{width:100%}.admin-dialog #admin-modules-tab #module-create{margin:10px 0 16px;padding:14px;border:1px solid var(--border,#d6dfe3);border-radius:10px}.admin-dialog #admin-modules-tab .module-list{max-height:44vh;overflow-y:auto;overflow-x:hidden;margin:12px 0;padding:0 2px}.admin-dialog #admin-modules-tab .module-list h4{margin:14px 0 8px;font-size:14px}.admin-dialog #admin-modules-tab .module-row{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;padding:11px 8px;border-bottom:1px solid var(--border,#d6dfe3);min-height:54px;box-sizing:border-box}.admin-dialog #admin-modules-tab .module-row strong,.admin-dialog #admin-modules-tab .module-row>span{flex:1 1 auto;min-width:0;font-size:14px}.admin-dialog #admin-modules-tab .module-controls{display:flex;align-items:center;gap:8px;flex:0 0 auto}.admin-dialog #admin-modules-tab .module-move{width:36px;min-width:36px;height:36px;padding:0!important}.admin-dialog #admin-modules-tab label.module-switch{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;position:relative;min-width:70px;margin:0;cursor:pointer}.admin-dialog #admin-modules-tab .module-switch-caption{font-size:11px;line-height:14px;color:var(--muted,#61717b)}.admin-dialog #admin-modules-tab label.module-switch input[type=checkbox]{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;clip-path:inset(50%)!important;margin:0!important;pointer-events:none!important}.admin-dialog #admin-modules-tab .module-switch-track{display:block!important;position:relative!important;width:44px!important;height:24px!important;min-width:44px!important;box-sizing:border-box!important;border-radius:99px!important;background:#aab4b9!important;transition:background .15s;box-shadow:none!important}.admin-dialog #admin-modules-tab .module-switch-track:before{content:""!important;display:block!important;position:absolute!important;left:3px!important;top:3px!important;width:18px!important;height:18px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1px 3px #0003!important;transform:translate(0)!important;transition:transform .15s!important}.admin-dialog #admin-modules-tab .module-switch-track:after{content:none!important;display:none!important}.admin-dialog #admin-modules-tab .module-switch input:checked+.module-switch-track{background:#078779!important}.admin-dialog #admin-modules-tab .module-switch input:checked+.module-switch-track:before{transform:translate(20px)!important}.admin-dialog #admin-modules-tab .module-switch input:focus-visible+.module-switch-track{outline:2px solid #438cc9;outline-offset:3px}@media(max-width:570px){.admin-dialog #admin-modules-tab{padding:8px}.admin-dialog #admin-modules-tab .module-row{gap:6px;padding:9px 2px}.admin-dialog #admin-modules-tab .module-controls{gap:4px}.admin-dialog #admin-modules-tab .module-move{width:30px;min-width:30px;height:32px}.admin-dialog #admin-modules-tab label.module-switch{min-width:54px}.admin-dialog #admin-modules-tab .module-row strong{font-size:12px}}.admin-dialog #admin-modules-tab .module-list .module-row>strong,.admin-dialog #admin-modules-tab .module-list .module-row>span{color:#263238!important;font-weight:400!important;font-size:14px!important}.admin-dialog #admin-modules-tab .module-list{margin:7px 0;max-height:44vh}.admin-dialog #admin-modules-tab .module-list h4{margin:9px 0 5px}.admin-dialog #admin-modules-tab .module-row{min-height:var(--ch-list-row-height);height:var(--ch-list-row-height);padding:3px 8px;gap:8px}.admin-dialog #admin-modules-tab .module-controls{gap:var(--ch-action-gap)}.admin-dialog #admin-modules-tab .module-move{width:var(--ch-icon-button-size);min-width:var(--ch-icon-button-size);height:var(--ch-icon-button-size);min-height:var(--ch-icon-button-size);padding:0!important;line-height:1}.admin-dialog #admin-modules-tab .module-controls>.btn:not(.module-move),.admin-dialog #admin-modules-tab .module-row>.btn{height:var(--ch-icon-button-size);min-height:var(--ch-icon-button-size);padding:3px 10px;font-size:13px;line-height:20px}.admin-dialog #admin-modules-tab label.module-switch{min-width:66px;gap:1px}.admin-dialog #admin-modules-tab .module-switch-caption{font-size:10px;line-height:11px}@media(max-width:570px){.admin-dialog #admin-modules-tab .module-row{height:var(--ch-list-row-height);min-height:var(--ch-list-row-height);padding:3px 2px;gap:5px}.admin-dialog #admin-modules-tab .module-controls{gap:4px}.admin-dialog #admin-modules-tab label.module-switch{min-width:52px}}.admin-dialog #admin-proxy-tab .proxy-switch{display:flex;align-items:center;justify-content:space-between;min-height:44px;gap:16px;font-size:14px;color:#263238}.admin-dialog #admin-proxy-tab .proxy-switch input{width:18px;height:18px;accent-color:#12a89b}.admin-dialog #admin-proxy-tab .proxy-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ch-field-gap);margin:12px 0}.admin-dialog #admin-proxy-tab .proxy-fields label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:13px;color:#263238}.admin-dialog #admin-proxy-tab .proxy-fields input,.admin-dialog #admin-proxy-tab .proxy-fields select{box-sizing:border-box;width:100%;height:var(--ch-control-compact-height);padding:6px 10px;border:1px solid #d5dfe2;border-radius:var(--ch-control-radius);background:#fff;color:#263238;font:inherit}@media(max-width:560px){.admin-dialog #admin-proxy-tab .proxy-fields{grid-template-columns:1fr}}.admin-dialog #admin-proxy-tab .proxy-fields .proxy-clear{display:flex;flex-direction:row;align-items:center;gap:var(--ch-action-gap);font-size:12px;color:#63747c}.admin-dialog #admin-proxy-tab .proxy-fields .proxy-clear input{width:14px;height:14px;accent-color:#12a89b}.admin-dialog #admin-proxy-tab{box-sizing:border-box;padding:12px 16px 0;min-width:0}.admin-dialog #admin-proxy-tab[hidden]{display:none!important}.admin-dialog #admin-proxy-tab .proxy-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}.admin-dialog #admin-proxy-tab .proxy-head h3{margin:0}.admin-dialog #admin-proxy-tab .proxy-fields{margin:0 0 8px;gap:10px 14px}.admin-dialog #admin-proxy-tab .proxy-fields label{font-weight:500}.admin-dialog #admin-proxy-tab .proxy-clear{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#60727a;cursor:pointer;margin:0 0 8px}.admin-dialog #admin-proxy-tab .proxy-clear input{accent-color:#078779}.admin-dialog #admin-proxy-tab .proxy-modules-heading{font-size:14px;margin:10px 0 5px}.admin-dialog #admin-proxy-tab .proxy-modules{border-top:1px solid #d6dfe3;max-height:205px;overflow-y:auto}.admin-dialog #admin-proxy-tab .proxy-module-row{min-height:42px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #d6dfe3;padding:2px 8px;font-size:14px;color:#263238}.admin-dialog #admin-proxy-tab .proxy-module-row small{color:#63747c;font-size:11px}.admin-dialog #admin-proxy-tab .proxy-hint{font-size:12px;line-height:1.4;color:#63747c;margin:10px 0}.admin-dialog #admin-proxy-tab .proxy-toggle{display:inline-flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex-direction:row!important;position:relative;cursor:pointer;font-size:13px;font-weight:500;white-space:nowrap}.admin-dialog #admin-proxy-tab .proxy-toggle input{position:absolute!important;right:0;top:0;width:44px!important;height:24px!important;opacity:0!important;z-index:1;cursor:pointer;margin:0}.admin-dialog #admin-proxy-tab .proxy-track{width:44px;height:24px;flex:none;border-radius:20px;background:#aeb8bd;position:relative;display:block}.admin-dialog #admin-proxy-tab .proxy-track:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}.admin-dialog #admin-proxy-tab .proxy-toggle input:checked+.proxy-track{background:#078779}.admin-dialog #admin-proxy-tab .proxy-toggle input:checked+.proxy-track:before{transform:translate(20px)}.admin-dialog #admin-proxy-tab .proxy-toggle input:focus-visible+.proxy-track{outline:2px solid #438cc9;outline-offset:3px}.admin-dialog #admin-proxy-tab .proxy-toggle input:disabled+.proxy-track{opacity:.4;cursor:not-allowed}@media(max-width:570px){.admin-dialog #admin-proxy-tab{padding:10px 14px 0}.admin-dialog #admin-proxy-tab .proxy-head{flex-wrap:wrap}}.admin-dialog #admin-proxy-tab .proxy-fields{grid-template-columns:128px minmax(0,1fr)}.admin-dialog #admin-proxy-tab .proxy-fields label:has(#proxy-password){grid-column:1 / -1;max-width:376px}@media(max-width:560px){.admin-dialog #admin-proxy-tab .proxy-fields{grid-template-columns:128px minmax(0,1fr)}}@media(max-width:380px){.admin-dialog #admin-proxy-tab .proxy-fields{grid-template-columns:1fr}.admin-dialog #admin-proxy-tab .proxy-fields label:has(#proxy-password){grid-column:auto}}.admin-dialog #admin-proxy-tab .proxy-fields{display:flex;flex-direction:column;gap:10px}.admin-dialog #admin-proxy-tab .proxy-fields-top{display:grid;grid-template-columns:128px minmax(0,300px) 128px;gap:14px;align-items:end}.admin-dialog #admin-proxy-tab .proxy-fields-credentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:584px}.admin-dialog #admin-proxy-tab .proxy-fields label{min-width:0;max-width:none!important;grid-column:auto!important}.admin-dialog #admin-proxy-tab .proxy-fields input,.admin-dialog #admin-proxy-tab .proxy-fields select{width:100%;box-sizing:border-box}@media(max-width:690px){.admin-dialog #admin-proxy-tab .proxy-fields-top{grid-template-columns:128px minmax(0,1fr) 100px;gap:10px}.admin-dialog #admin-proxy-tab .proxy-fields-credentials{max-width:none;gap:10px}}@media(max-width:460px){.admin-dialog #admin-proxy-tab .proxy-fields-top{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dialog #admin-proxy-tab .proxy-fields-top label:has(#proxy-host){grid-column:2}.admin-dialog #admin-proxy-tab .proxy-fields-top label:has(#proxy-port){grid-column:1}.admin-dialog #admin-proxy-tab .proxy-fields-credentials{grid-template-columns:1fr}}.controlhub-modules{display:flex;flex-direction:column;gap:20px}.controlhub-modules>*{flex:0 0 auto;margin:0!important;min-width:0}.controlhub-modules>[hidden],.controlhub-modules>:empty{display:none!important}#home-view>.home-panel,#office-camera-view>.home-panel,#office-camera-view>.camera-module{margin:0!important}#home-view,#office-camera-view{display:flex;flex-direction:column;gap:20px}#home-view[hidden],#office-camera-view[hidden]{display:none!important}#office-camera-view>.camera-module{margin:0}.admin-dialog #admin-mikrotik-tab{padding:10px 16px 0;box-sizing:border-box;min-width:0}.admin-dialog #admin-mikrotik-tab[hidden]{display:none!important}.admin-dialog #admin-mikrotik-tab h3{margin:2px 0 12px}.admin-dialog #admin-mikrotik-tab .admin-toolbar{display:flex;justify-content:space-between;align-items:end;gap:var(--ch-field-gap);margin-bottom:12px}.admin-dialog #admin-mikrotik-tab .admin-toolbar label{width:min(340px,60%);flex:none}.admin-dialog #admin-mikrotik-tab label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:500;color:#35434c;min-width:0}.admin-dialog #admin-mikrotik-tab input:not([type=checkbox]),.admin-dialog #admin-mikrotik-tab select{height:var(--ch-control-medium-height);width:100%;box-sizing:border-box;border:1px solid #cbd8de;border-radius:var(--ch-control-radius);background:#fff;padding:7px 10px;color:#263238;font:inherit}.admin-dialog #admin-mikrotik-tab .mt-admin-list{max-height:48vh;overflow-y:auto;overflow-x:hidden;padding:0 3px 2px 0}.admin-dialog #admin-mikrotik-tab .mt-router-picker{max-width:340px;margin-bottom:14px}.admin-dialog #admin-mikrotik-tab .mt-admin-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ch-field-gap) 14px}.admin-dialog #admin-mikrotik-tab .mt-admin-fields .mt-name{grid-column:1/-1}.admin-dialog #admin-mikrotik-tab .mt-toggle-list{margin-top:12px;border-top:1px solid #d8e0e3}.admin-dialog #admin-mikrotik-tab label.mt-toggle{display:flex!important;flex-direction:row!important;justify-content:space-between;align-items:center;position:relative;min-height:43px;border-bottom:1px solid #d8e0e3;cursor:pointer}.admin-dialog #admin-mikrotik-tab .mt-toggle input{position:absolute!important;right:0;width:44px!important;height:24px!important;opacity:0!important;cursor:pointer;z-index:2;margin:0}.admin-dialog #admin-mikrotik-tab .mt-toggle-track{width:44px;height:24px;flex:none;border-radius:99px;background:#aab4b9;position:relative}.admin-dialog #admin-mikrotik-tab .mt-toggle-track:before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .15s}.admin-dialog #admin-mikrotik-tab .mt-toggle input:checked+.mt-toggle-track{background:#078779}.admin-dialog #admin-mikrotik-tab .mt-toggle input:checked+.mt-toggle-track:before{transform:translate(20px)}.admin-dialog #admin-mikrotik-tab .mt-toggle input:focus-visible+.mt-toggle-track{outline:2px solid #438cc9;outline-offset:2px}.admin-dialog #admin-mikrotik-tab .mt-router-actions{display:flex;justify-content:space-between;gap:10px;margin-top:14px}@media(max-width:560px){.admin-dialog #admin-mikrotik-tab{padding:8px}.admin-dialog #admin-mikrotik-tab .mt-admin-fields{grid-template-columns:1fr}.admin-dialog #admin-mikrotik-tab .admin-toolbar label{width:55%}}.module-settings-overlay[hidden]{display:none!important}.module-settings-overlay{position:fixed;inset:0;z-index:11000;background:#0008;display:flex;align-items:center;justify-content:center;padding:14px;box-sizing:border-box}.module-settings-dialog{width:min(800px,100%);max-height:calc(100dvh - 28px);display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:16px;box-sizing:border-box}.module-settings-dialog #module-settings-content{overflow-y:auto;min-height:0;flex:1}.module-settings-dialog #admin-mikrotik-tab,.module-settings-dialog #admin-cameras-tab{display:block;overflow:visible;max-height:none}.module-settings-dialog #admin-mikrotik-tab[hidden],.module-settings-dialog #admin-cameras-tab[hidden]{display:none!important}.module-settings-open{overflow:hidden}.admin-dialog #admin-modules-tab .module-settings-button{font-size:19px;line-height:1}@media(max-width:570px){.module-settings-overlay{padding:7px}.module-settings-dialog{max-height:calc(100dvh - 14px)}}.module-settings-overlay .module-settings-dialog{height:auto;min-height:0;max-height:calc(100dvh - 28px)}.module-settings-overlay .module-settings-dialog .admin-top{flex:none}.module-settings-overlay .module-settings-dialog #module-settings-content{padding-bottom:16px}.module-settings-dialog .module-editor-form{padding:16px 24px 22px;display:grid;gap:14px}.module-settings-dialog .module-editor-form label{display:grid;gap:7px;font-size:13px;font-weight:600}.module-settings-dialog .module-editor-form input{width:100%;box-sizing:border-box;height:var(--ch-control-height);border:1px solid #cbd8de;border-radius:var(--ch-control-radius);padding:8px 12px}.module-settings-dialog .module-editor-actions{display:flex;justify-content:flex-end}.module-settings-dialog .smart-integration{margin:16px 24px}#proxy-port::-webkit-inner-spin-button,#proxy-port::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#proxy-port{-moz-appearance:textfield;appearance:textfield}#admin-settings-open{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;box-sizing:border-box;padding:0;line-height:1;cursor:pointer;flex:0 0 34px}#admin-settings-open svg{display:block;width:18px;height:18px;flex:none}#admin-settings-open[hidden]{display:none!important}.module-settings-dialog .printer-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.module-settings-dialog .module-editor-form select{height:var(--ch-control-height);border:1px solid #cbd8de;border-radius:var(--ch-control-radius);padding:8px 12px;background:#fff;color:inherit;width:100%;box-sizing:border-box}.module-settings-dialog .module-editor-form .printer-refresh{max-width:200px}.module-settings-dialog .printer-refresh input::-webkit-inner-spin-button,.module-settings-dialog .printer-refresh input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.module-settings-dialog .printer-refresh input{-moz-appearance:textfield;appearance:textfield}.module-settings-dialog .module-editor-form label.printer-enabled{display:flex;flex-direction:row;align-items:center;justify-content:space-between;position:relative;border-top:1px solid #d5dedf;border-bottom:1px solid #d5dedf;min-height:44px;cursor:pointer}.module-settings-dialog .printer-enabled input{position:absolute;right:0;width:var(--ch-switch-width);height:var(--ch-switch-height);opacity:0;cursor:pointer;z-index:1}.module-settings-dialog .printer-toggle-track{width:var(--ch-switch-width);height:var(--ch-switch-height);border-radius:99px;background:#aab5b9;position:relative;flex:none}.module-settings-dialog .printer-toggle-track:before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}.module-settings-dialog .printer-enabled input:checked+.printer-toggle-track{background:#078779}.module-settings-dialog .printer-enabled input:checked+.printer-toggle-track:before{transform:translate(20px)}.module-settings-dialog .printer-enabled input:focus-visible+.printer-toggle-track{outline:2px solid #438cc9;outline-offset:2px}@media(max-width:520px){.module-settings-dialog .printer-editor-grid{grid-template-columns:1fr}}.mqtt-device-group{margin:10px 0;border:1px solid var(--border,#d1dbe0);border-radius:10px;padding:12px}.mqtt-device-group summary{font-weight:700;cursor:pointer}.mqtt-device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}.mqtt-device-card{border:1px solid #cdd8dd;border-radius:9px;padding:12px;display:flex;flex-direction:column;align-items:flex-start;gap:9px}.mqtt-device-toolbar,.mqtt-editor-controls{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.mqtt-editor-row,.mqtt-editor-device{border-bottom:1px solid #d3dce0;padding:10px 0}.mqtt-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mqtt-device-editor label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}.mqtt-device-editor input:not([type=checkbox]),.mqtt-device-editor select{width:100%;min-width:0;border:1px solid #c9d5dd;border-radius:8px;padding:9px;background:var(--panel,#fff);color:inherit}@media(max-width:560px){.mqtt-editor-grid{grid-template-columns:1fr}}.module-settings-dialog .mqtt-device-editor{padding:16px 24px 22px;box-sizing:border-box;width:100%}.module-settings-dialog .mqtt-editor-sections{display:grid;gap:20px}.module-settings-dialog .mqtt-editor-section{min-width:0}.module-settings-dialog .mqtt-editor-section+.mqtt-editor-section{border-top:1px solid #d5dedf;padding-top:18px}.module-settings-dialog .mqtt-editor-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--ch-field-gap);margin-bottom:12px}.module-settings-dialog .mqtt-editor-section-head h4{margin:0;font-size:15px;font-weight:700;color:#27343d}.module-settings-dialog .mqtt-editor-section-head .btn{white-space:nowrap}.module-settings-dialog .mqtt-editor-empty{margin:0;padding:19px 12px;border:1px dashed #d5dedf;border-radius:var(--ch-control-radius);background:#f8fafb;color:#70808a;text-align:center;font-size:13px}.module-settings-dialog .mqtt-editor-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ch-field-gap);border-top:1px solid #d5dedf;margin-top:20px;padding-top:16px;min-height:40px}.module-settings-dialog .mqtt-editor-footer [role=status]{margin:0 auto 0 0;font-size:13px}.module-settings-dialog .mqtt-editor-row,.module-settings-dialog .mqtt-editor-device{border:1px solid #d5dedf;border-radius:9px;padding:14px;margin-top:10px;background:#fff;min-width:0}.module-settings-dialog .mqtt-editor-row{display:flex;align-items:end;gap:var(--ch-field-gap);flex-wrap:wrap}.module-settings-dialog .mqtt-editor-row>label{flex:1;min-width:180px}.module-settings-dialog .mqtt-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ch-field-gap)}.module-settings-dialog .mqtt-editor-row label,.module-settings-dialog .mqtt-editor-grid label{display:grid;gap:var(--ch-action-gap);font-size:13px;font-weight:600;color:#53636e;min-width:0}.module-settings-dialog .mqtt-editor-row input,.module-settings-dialog .mqtt-editor-grid input:not([type=checkbox]),.module-settings-dialog .mqtt-editor-grid select{width:100%;height:var(--ch-control-height);box-sizing:border-box;border:1px solid #cbd8de;border-radius:var(--ch-control-radius);padding:8px 12px;background:#fff;color:#27343d}.module-settings-dialog .mqtt-editor-grid input[type=checkbox]{width:18px;height:18px;accent-color:#078779}.module-settings-dialog .mqtt-editor-controls{display:flex;justify-content:flex-end;gap:7px;margin-top:12px}.module-settings-dialog .mqtt-editor-row .mqtt-editor-controls{margin-top:0}@media(max-width:570px){.module-settings-dialog .mqtt-device-editor{padding:14px 16px 18px}.module-settings-dialog .mqtt-editor-grid{grid-template-columns:1fr}.module-settings-dialog .mqtt-editor-section-head{flex-wrap:wrap}}.mqtt-editor-topics{margin:12px 0;padding:12px;border:1px solid var(--line,#334155);border-radius:10px}.mqtt-editor-topic-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(180px,2fr) auto;gap:8px;align-items:end;margin:8px 0}.mqtt-editor-topic-row label{min-width:0}.mqtt-editor-topic-row input,.mqtt-editor-topic-row select{width:100%}@media(max-width:650px){.mqtt-editor-topic-row{grid-template-columns:1fr}.mqtt-editor-topic-row button{justify-self:end}}.mqtt-device-group{margin:10px 0;border:1px solid var(--border,#d1dbe0);border-radius:10px;padding:10px 12px}.mqtt-device-group>summary{font-weight:700;cursor:pointer;padding:3px 0}.mqtt-device-list{margin-top:8px}.mqtt-device-row{display:flex;align-items:center;justify-content:space-between;gap:var(--ch-field-gap);padding:10px 0;border-top:1px solid var(--border,#d1dbe0);min-width:0}.mqtt-device-identity{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.mqtt-device-identity small{font-size:12px;color:var(--muted,#687a84)}.mqtt-device-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-shrink:0;margin-left:auto}.mqtt-device-switch{position:relative;display:block;flex-shrink:0;width:44px;height:25px;border:0;border-radius:30px;background:#adb8bd;cursor:pointer;padding:0}.mqtt-device-switch:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;transition:transform .15s}.mqtt-device-switch[aria-checked=true]{background:#078b7b}.mqtt-device-switch[aria-checked=true]:after{transform:translate(19px)}.mqtt-device-switch:disabled{opacity:.55;cursor:wait}.mqtt-timer-overlay{position:fixed;inset:0;background:#0000008c;z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}.mqtt-timer-dialog{background:var(--panel,#fff);color:var(--text,#243039);border-radius:14px;width:min(720px,100%);max-height:90vh;overflow-y:auto;padding:22px 24px;box-shadow:0 16px 48px #0003}.mqtt-timer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--ch-field-gap);border-bottom:1px solid var(--border,#d1dbe0);padding-bottom:14px}.mqtt-timer-head h2{margin:0;font-size:21px}.mqtt-timer-close{font-size:22px;line-height:1;padding:5px 12px}.mqtt-timer-list{margin:10px 0 16px}.mqtt-timer-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--border,#d1dbe0)}.mqtt-timer-description{display:flex;flex-direction:column;gap:5px}.mqtt-timer-description small{color:var(--muted,#687a84)}.mqtt-timer-line-actions{display:flex;gap:var(--ch-action-gap);flex-shrink:0}.mqtt-timer-empty{color:var(--muted,#687a84);text-align:center;padding:15px}.mqtt-timer-form{border-top:1px solid var(--border,#d1dbe0);padding-top:12px}.mqtt-timer-form h3{margin:6px 0 14px;font-size:16px}.mqtt-timer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ch-field-gap)}.mqtt-timer-field{display:flex;flex-direction:column;gap:var(--ch-action-gap);font-size:13px;font-weight:600}.mqtt-timer-field .input{width:100%;min-width:0;border:1px solid var(--border,#c9d5dd);border-radius:var(--ch-control-radius);padding:9px;background:var(--panel,#fff);color:inherit}.mqtt-timer-custom{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.mqtt-timer-custom>div:first-child,.mqtt-timer-days{grid-column:1/-1}.mqtt-timer-days{display:flex;flex-wrap:wrap;gap:var(--ch-field-gap)}.mqtt-timer-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}@media(max-width:560px){.mqtt-device-row{gap:8px}.mqtt-device-actions{gap:6px}.mqtt-timer-dialog{padding:16px}.mqtt-timer-fields{grid-template-columns:1fr}.mqtt-timer-line{align-items:flex-start;flex-direction:column}}.mqtt-config-device-row{display:flex;align-items:center;gap:var(--ch-field-gap);border-bottom:1px solid var(--border,#d5dedf);padding:10px 0}.mqtt-config-device-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.mqtt-config-device-name small{color:var(--muted,#71808a)}.mqtt-config-device-actions{display:flex;align-items:center;gap:7px}.mqtt-config-device-actions .btn{padding:7px 10px}.mqtt-config-device-actions .mqtt-device-switch{margin-left:5px}.mqtt-config-overlay{position:fixed;inset:0;background:#0009;z-index:100000;display:flex;justify-content:center;align-items:center;padding:16px}.mqtt-config-dialog{width:min(760px,100%);max-height:90vh;overflow:auto;background:var(--panel,#fff);color:var(--text,#26323a);border-radius:15px;box-shadow:0 15px 50px #0004}.mqtt-config-head,.mqtt-config-foot{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--border,#d5dedf)}.mqtt-config-head h3{margin:0;font-size:20px}.mqtt-config-body{padding:20px;display:grid;gap:18px}.mqtt-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mqtt-config-field{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:13px;font-weight:600}.mqtt-config-field input,.mqtt-config-field select,.mqtt-config-preset select{width:100%;box-sizing:border-box;min-width:0;padding:10px;border:1px solid var(--border,#cbd8de);border-radius:8px;background:var(--panel,#fff);color:inherit}.mqtt-config-preset{display:flex;align-items:center;gap:10px}.mqtt-config-preset select{flex:1}.mqtt-config-topic{display:grid;grid-template-columns:1fr 2fr auto;gap:10px;align-items:end;margin:8px 0}.mqtt-config-foot{border-top:1px solid var(--border,#d5dedf);border-bottom:0;justify-content:flex-end}.mqtt-editor-message{margin-right:auto}.mqtt-device-editor .mqtt-editor-section+.mqtt-editor-section{margin-top:16px}@media(max-width:650px){.mqtt-config-grid,.mqtt-config-topic{grid-template-columns:1fr}.mqtt-config-device-row{flex-wrap:wrap}.mqtt-config-device-actions{width:100%;justify-content:flex-end}.mqtt-config-preset{flex-wrap:wrap}}.mqtt-config-device-actions .mqtt-device-delete,.mqtt-config-device-actions .mqtt-device-settings{width:38px;height:38px;min-width:38px;display:inline-flex;align-items:center;justify-content:center;padding:0!important}.mqtt-config-device-actions .mqtt-device-delete{color:#d33b42}.mqtt-config-device-actions .mqtt-device-delete:hover{background:#d33b421a;border-color:#d33b42}.mqtt-config-device-actions .mqtt-device-delete svg,.mqtt-config-device-actions .mqtt-device-settings svg{display:block;pointer-events:none}.module-settings-dialog .mqtt-config-device-actions,.module-settings-dialog .mqtt-editor-row .mqtt-editor-controls{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;flex-shrink:0}.module-settings-dialog .mqtt-config-device-actions>button:not(.mqtt-device-switch),.module-settings-dialog .mqtt-editor-row .mqtt-editor-controls>button{box-sizing:border-box;flex:0 0 40px!important;width:40px!important;min-width:40px!important;max-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;display:inline-flex;align-items:center;justify-content:center;line-height:1}.module-settings-dialog .mqtt-config-device-actions .mqtt-device-delete,.module-settings-dialog .mqtt-config-device-actions .mqtt-device-settings{flex:0 0 40px!important;width:40px!important;min-width:40px!important;height:40px!important}.module-settings-dialog .mqtt-config-device-actions svg,.module-settings-dialog .mqtt-editor-row .mqtt-editor-controls svg{width:16px;height:16px;flex-shrink:0}.module-settings-dialog .mqtt-config-device-actions .mqtt-device-switch{flex:0 0 44px;margin-left:4px}.module-settings-dialog .mqtt-config-device-name,.module-settings-dialog .mqtt-config-device-row{min-width:0}.module-settings-dialog .mqtt-editor-row .mqtt-editor-controls .mqtt-group-delete{color:#d33b42}.module-settings-dialog .mqtt-editor-row .mqtt-editor-controls .mqtt-group-delete:hover{background:#d33b421a;border-color:#d33b42}@media(max-width:650px){.module-settings-dialog .mqtt-config-device-actions{width:auto;max-width:100%;margin-left:auto}.module-settings-dialog .mqtt-config-device-row{flex-wrap:wrap}}.module-settings-dialog .mqtt-config-device-actions .mqtt-device-delete,.mqtt-config-device-actions .mqtt-device-delete{color:#dc3545!important}.module-settings-dialog .mqtt-config-device-actions .mqtt-device-delete svg,.mqtt-config-device-actions .mqtt-device-delete svg{stroke:#dc3545!important;width:16px;height:16px}.module-settings-dialog .mqtt-config-device-actions .mqtt-device-settings svg,.mqtt-config-device-actions .mqtt-device-settings svg{width:16px;height:16px}.module-settings-dialog .mqtt-config-device-actions .mqtt-device-settings svg,.mqtt-config-device-actions .mqtt-device-settings svg{width:20px!important;height:20px!important;display:block;flex:none}.module-settings-dialog .mqtt-config-device-actions .mqtt-device-delete svg,.module-settings-dialog .mqtt-config-device-actions .mqtt-device-settings svg,.mqtt-config-device-actions .mqtt-device-delete svg,.mqtt-config-device-actions .mqtt-device-settings svg{width:18px!important;height:18px!important;min-width:18px;min-height:18px;stroke-width:2;display:block;flex:none}.admin-dialog #admin-modules-tab .module-controls .module-remove-button{width:var(--ch-icon-button-size)!important;min-width:var(--ch-icon-button-size)!important;height:var(--ch-icon-button-size)!important;min-height:var(--ch-icon-button-size)!important;padding:0!important;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;color:#dc3545!important;line-height:1}.admin-dialog #admin-modules-tab .module-controls .module-remove-button svg{display:block;width:16px;height:16px;stroke:currentColor;flex-shrink:0}.admin-dialog #admin-modules-tab .module-controls .module-remove-button:hover{background:#dc354517!important;border-color:#dc3545!important}.admin-dialog #admin-modules-tab .module-controls{margin-left:auto}.admin-dialog #admin-modules-tab .module-controls>label.module-switch{min-width:44px!important;width:44px!important;flex:0 0 44px!important;margin-left:2px!important}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-row{box-sizing:border-box;min-height:var(--ch-list-row-height);padding:3px 8px;gap:8px;flex-wrap:nowrap;border-bottom:1px solid var(--border,#d6dfe3)}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-name{gap:1px;min-width:0;flex:1 1 auto}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-name strong{font-size:14px;line-height:18px}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-name small{font-size:11px;line-height:14px}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-actions{width:auto;max-width:none;gap:var(--ch-action-gap);margin-left:auto;flex:0 0 auto;justify-content:flex-end}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-actions>button:not(.mqtt-device-switch),.module-settings-dialog .mqtt-device-editor .mqtt-editor-row .mqtt-editor-controls>button{box-sizing:border-box;flex:0 0 var(--ch-icon-button-size)!important;width:var(--ch-icon-button-size)!important;min-width:var(--ch-icon-button-size)!important;max-width:var(--ch-icon-button-size)!important;height:var(--ch-icon-button-size)!important;min-height:var(--ch-icon-button-size)!important;padding:0!important;display:inline-flex;align-items:center;justify-content:center}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-actions .mqtt-device-delete,.module-settings-dialog .mqtt-device-editor .mqtt-config-device-actions .mqtt-device-settings{flex:0 0 var(--ch-icon-button-size)!important;width:var(--ch-icon-button-size)!important;min-width:var(--ch-icon-button-size)!important;height:var(--ch-icon-button-size)!important}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-actions .mqtt-device-delete svg,.module-settings-dialog .mqtt-device-editor .mqtt-config-device-actions .mqtt-device-settings svg{width:var(--ch-icon-size)!important;height:var(--ch-icon-size)!important;min-width:var(--ch-icon-size)!important;min-height:var(--ch-icon-size)!important}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-actions .mqtt-device-switch{flex:0 0 var(--ch-switch-width)!important;width:var(--ch-switch-width)!important;min-width:var(--ch-switch-width)!important;margin-left:2px!important}.module-settings-dialog .mqtt-device-editor .mqtt-editor-row{box-sizing:border-box;display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-height:var(--ch-list-row-height);padding:4px 8px;margin:0;border:0;border-bottom:1px solid var(--border,#d6dfe3);border-radius:0;background:transparent}.module-settings-dialog .mqtt-device-editor .mqtt-editor-row>label{min-width:0;flex:1 1 auto}.module-settings-dialog .mqtt-device-editor .mqtt-editor-row input{height:var(--ch-icon-button-size)!important;min-height:var(--ch-icon-button-size)!important}.module-settings-dialog .mqtt-device-editor .mqtt-editor-row .mqtt-editor-controls{gap:var(--ch-action-gap);margin:0;flex:0 0 auto}@media(max-width:560px){.module-settings-dialog .mqtt-device-editor .mqtt-config-device-row{gap:5px;padding:3px 2px}.module-settings-dialog .mqtt-device-editor .mqtt-config-device-actions{gap:4px}.module-settings-dialog .mqtt-device-editor .mqtt-editor-row{gap:5px;padding:4px 2px}}.module-settings-dialog .mqtt-device-editor .mqtt-editor-row.mqtt-group-row{display:flex;align-items:center;flex-wrap:nowrap;gap:8px;box-sizing:border-box;height:var(--ch-list-row-height);min-height:var(--ch-list-row-height);margin:0;padding:4px 8px;border:0;border-bottom:1px solid var(--border,#d6dfe3);border-radius:0;background:transparent}.module-settings-dialog .mqtt-device-editor .mqtt-group-row .mqtt-group-name{display:block;flex:1 1 auto;min-width:0;width:100%;height:var(--ch-icon-button-size)!important;min-height:var(--ch-icon-button-size)!important;margin:0;box-sizing:border-box;font-size:14px}.module-settings-dialog .mqtt-device-editor .mqtt-group-row .mqtt-editor-controls{display:flex;align-items:center;flex:0 0 auto;gap:var(--ch-action-gap);margin:0}.module-settings-dialog .mqtt-device-editor .mqtt-group-row .mqtt-editor-controls>button{box-sizing:border-box;flex:0 0 var(--ch-icon-button-size)!important;width:var(--ch-icon-button-size)!important;min-width:var(--ch-icon-button-size)!important;max-width:var(--ch-icon-button-size)!important;height:var(--ch-icon-button-size)!important;min-height:var(--ch-icon-button-size)!important;padding:0!important}.mqtt-config-dialog .mqtt-config-field input,.mqtt-config-dialog .mqtt-config-field select,.mqtt-config-dialog .mqtt-config-preset select,.mqtt-config-dialog .mqtt-config-preset button,.mqtt-config-dialog .mqtt-config-topic button,.mqtt-config-dialog .mqtt-config-body>div>button,.mqtt-config-dialog .mqtt-config-foot button{box-sizing:border-box;height:var(--ch-control-height);min-height:var(--ch-control-height);max-height:var(--ch-control-height);padding:0 14px;line-height:normal;font-size:14px;border-radius:var(--ch-control-radius);vertical-align:middle}.mqtt-config-dialog .mqtt-config-field input,.mqtt-config-dialog .mqtt-config-field select,.mqtt-config-dialog .mqtt-config-preset select{display:block}.mqtt-config-dialog .mqtt-config-preset button,.mqtt-config-dialog .mqtt-config-topic button,.mqtt-config-dialog .mqtt-config-body>div>button,.mqtt-config-dialog .mqtt-config-foot button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex-shrink:0}.mqtt-config-dialog .mqtt-config-preset select{min-width:0;flex:1 1 auto}.mqtt-config-dialog .mqtt-config-field{gap:5px}.mqtt-config-dialog .mqtt-config-grid{align-items:end}.mqtt-config-dialog .mqtt-config-field select,.mqtt-config-dialog .mqtt-config-preset select{-webkit-appearance:none;appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23596973' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px}.ch-modal-close.btn{box-sizing:border-box;flex:0 0 var(--ch-modal-close-size);width:var(--ch-modal-close-size);height:var(--ch-modal-close-size);min-width:var(--ch-modal-close-size);min-height:var(--ch-modal-close-size);display:inline-flex;align-items:center;justify-content:center;position:relative;padding:0;border:1px solid var(--border,#cbd8de);border-radius:var(--ch-modal-close-radius);background:var(--panel,#fff);color:var(--text,#27343d);font-size:0;line-height:0;cursor:pointer}.ch-modal-close.btn:before{content:"";display:block;width:var(--ch-modal-close-icon-size);height:var(--ch-modal-close-icon-size);flex:none;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 6 6 18M6 6l12 12' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 6 6 18M6 6l12 12' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") center/contain no-repeat}.ch-modal-close.btn:hover{background:var(--hover,#f2f6f7)}.ch-modal-close.btn:focus-visible{outline:2px solid #087f72;outline-offset:2px}#admin-cameras-tab .ch-camera-list{margin-top:14px}#admin-cameras-tab .ch-camera-row{display:flex;align-items:center;justify-content:space-between;height:var(--ch-list-row-height,46px);min-height:var(--ch-list-row-height,46px);box-sizing:border-box;gap:12px;border-bottom:1px solid var(--line,#d5e0e5);padding:5px 8px}#admin-cameras-tab .ch-camera-name{min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px}#admin-cameras-tab .ch-camera-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#admin-cameras-tab .ch-camera-name small{font-size:11px;color:var(--mute,#71808a)}#admin-cameras-tab .ch-camera-actions{display:flex;align-items:center;gap:var(--ch-action-gap,6px);flex-shrink:0}#admin-cameras-tab .ch-camera-action{display:grid;place-items:center;width:var(--ch-icon-button-size,30px);height:var(--ch-icon-button-size,30px);padding:0;border:1px solid var(--line,#cbd8de);border-radius:8px;background:transparent;color:inherit;font-size:17px;cursor:pointer}#admin-cameras-tab .ch-camera-action:disabled{opacity:.35;cursor:default}#admin-cameras-tab .ch-camera-delete{color:#dc3545;font-size:14px}#admin-cameras-tab .ch-camera-editor{margin-top:18px;padding:16px;border:1px solid var(--line,#cbd8de);border-radius:10px}#admin-cameras-tab .ch-camera-editor[hidden]{display:none}#admin-cameras-tab .ch-camera-editor-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}#admin-cameras-tab .ch-camera-editor .cam-fields input{box-sizing:border-box;min-height:var(--ch-control-height,40px)}#admin-cameras-tab #cam-admin-editor-done{margin-left:8px}@media(max-width:520px){#admin-cameras-tab .ch-camera-row{padding:6px 0;gap:5px}#admin-cameras-tab .ch-camera-actions{gap:3px}#admin-cameras-tab .ch-camera-action{width:28px;height:28px}}#admin-cameras-tab .ch-camera-actions .ch-camera-action{display:inline-flex;align-items:center;justify-content:center;width:var(--ch-icon-button-size,30px);min-width:var(--ch-icon-button-size,30px);height:var(--ch-icon-button-size,30px);min-height:var(--ch-icon-button-size,30px);padding:0!important;box-sizing:border-box;border:1px solid var(--border,#cbd8de);border-radius:8px;background:transparent;color:inherit;line-height:1;font-size:16px}#admin-cameras-tab .ch-camera-actions .module-settings-button{font-size:19px;line-height:1}#admin-cameras-tab .ch-camera-actions .module-remove-button{color:#dc3545!important}#admin-cameras-tab .ch-camera-actions .module-remove-button svg{display:block;width:16px;height:16px;stroke:currentColor;flex-shrink:0}#admin-cameras-tab .ch-camera-actions .module-remove-button:hover{background:#dc354517!important;border-color:#dc3545!important}#admin-cameras-tab .ch-camera-actions .ch-camera-action:disabled{opacity:.35;cursor:default}#admin-cameras-tab .ch-camera-actions{gap:var(--ch-action-gap,6px)}@media(max-width:520px){#admin-cameras-tab .ch-camera-actions .ch-camera-action{width:var(--ch-icon-button-size,30px);min-width:var(--ch-icon-button-size,30px);height:var(--ch-icon-button-size,30px)}}#admin-cameras-tab .ch-camera-actions label.module-switch{display:flex;align-items:center;justify-content:center;position:relative;flex:0 0 44px;width:44px;min-width:44px;height:30px;margin:0;cursor:pointer}#admin-cameras-tab .ch-camera-actions label.module-switch input[type=checkbox]{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;clip-path:inset(50%)!important;margin:0!important;pointer-events:none!important}#admin-cameras-tab .ch-camera-actions .module-switch-track{display:block!important;position:relative!important;width:44px!important;height:24px!important;min-width:44px!important;box-sizing:border-box!important;border-radius:99px!important;background:#aab4b9!important;transition:background .15s;box-shadow:none!important}#admin-cameras-tab .ch-camera-actions .module-switch-track:before{content:""!important;display:block!important;position:absolute!important;left:3px!important;top:3px!important;width:18px!important;height:18px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1px 3px #0003!important;transform:translate(0)!important;transition:transform .15s!important}#admin-cameras-tab .ch-camera-actions .module-switch-track:after{content:none!important;display:none!important}#admin-cameras-tab .ch-camera-actions .module-switch input:checked+.module-switch-track{background:#078779!important}#admin-cameras-tab .ch-camera-actions .module-switch input:checked+.module-switch-track:before{transform:translate(20px)!important}#admin-cameras-tab .ch-camera-actions .module-switch input:focus-visible+.module-switch-track{outline:2px solid #438cc9;outline-offset:3px}:root{--ch-card-action-height:32px;--ch-card-action-mobile-height:36px}.home-panel .ch-card-action,.mqtt-devices-panel .ch-card-action,.mqtt-devices-panel .mqtt-device-actions>button:not(.mqtt-device-switch){box-sizing:border-box;min-height:var(--ch-card-action-height);height:var(--ch-card-action-height);padding:0 10px;border-radius:var(--ch-control-radius,8px);font-size:13px;line-height:1.2;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.home-panel .camera-actions,.mqtt-devices-panel .mqtt-device-actions{gap:var(--ch-action-gap,6px)}@media(max-width:600px){.home-panel .ch-card-action,.mqtt-devices-panel .ch-card-action,.mqtt-devices-panel .mqtt-device-actions>button:not(.mqtt-device-switch){min-height:var(--ch-card-action-mobile-height);height:var(--ch-card-action-mobile-height)}.home-panel .camera-heading{flex-wrap:wrap;row-gap:10px}.home-panel .camera-heading>.camera-actions{margin-left:auto;max-width:100%;justify-content:flex-end}.mqtt-devices-panel .mqtt-device-row{flex-wrap:wrap;row-gap:8px}.mqtt-devices-panel .mqtt-device-actions{flex-wrap:wrap;max-width:100%;margin-left:auto}}@media(max-width:380px){.home-panel .camera-heading>.camera-actions{width:100%;justify-content:flex-end}.mqtt-devices-panel .mqtt-device-identity{flex-basis:100%}}html[data-theme=winter]{--bg:#e6f2fa;--surf:#f7fbff;--ink:#213e56;--mute:#627e92;--line:#c4dbe9;--on:#277eae;--heat:#b95a49;--sun:#e6ad55;--night:#d8e9f3;--ring:#277eae}html[data-theme=spring]{--bg:#eaf4e8;--surf:#fbfdf8;--ink:#2b4536;--mute:#6c8473;--line:#cedfce;--on:#488f71;--heat:#c56c67;--sun:#d8a653;--night:#e4eee5;--ring:#488f71}html[data-theme=summer]{--bg:#e5f5f4;--surf:#f8fdfb;--ink:#164751;--mute:#5e7e80;--line:#c7e2dd;--on:#008e98;--heat:#c86b38;--sun:#e4aa35;--night:#d9eeeb;--ring:#008e98}html[data-theme=autumn]{--bg:#f3e9de;--surf:#fffaf3;--ink:#483527;--mute:#816e5e;--line:#e3d0b9;--on:#a15e32;--heat:#b44d2d;--sun:#c88d28;--night:#e9d9c7;--ring:#a15e32}.ch-theme-picker{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.ch-theme-picker>.theme-toggle{width:34px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center}.ch-theme-menu{position:absolute;z-index:2000;right:0;top:calc(100% + 8px);width:166px;padding:6px;background:var(--surf);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #0002;max-width:calc(100vw - 24px)}.ch-theme-menu[hidden]{display:none}.ch-theme-option{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:7px 10px;background:transparent;border:0;border-radius:7px;text-align:left;font-size:13px;color:var(--ink)}.ch-theme-option:hover,.ch-theme-option[aria-checked=true]{background:var(--bg)}.ch-theme-check{margin-left:auto;color:var(--on);font-weight:700}.ch-season-particles{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:100;contain:strict}.ch-season-particles span{position:absolute;top:-40px;opacity:.55;animation:ch-season-fall linear infinite;user-select:none;color:var(--on);text-shadow:0 0 4px var(--surf)}@keyframes ch-season-fall{0%{transform:translate3d(0,-5vh,0) rotate(0)}to{transform:translate3d(45px,110vh,0) rotate(260deg)}}html[data-theme=summer] body{background-image:radial-gradient(circle at 95% 2%,#f8d88733,transparent 32%)}@media(prefers-reduced-motion:reduce){.ch-season-particles{display:none}}@media(max-width:600px){.ch-theme-menu{right:0}}html[data-theme=autumn] body{background-image:radial-gradient(ellipse at 94% 3%,rgba(255,196,94,.24),transparent 42%),radial-gradient(ellipse at 4% 90%,rgba(209,132,57,.11),transparent 45%);background-attachment:fixed}html[data-theme=autumn] .ch-season-particles{z-index:100;pointer-events:none}.ch-season-particles .ch-autumn-leaf{top:-45px;width:22px;height:25px;font-size:0;text-shadow:none;animation:ch-autumn-fall linear infinite;will-change:transform}.ch-autumn-leaf svg,.ch-autumn-ground svg{display:block;width:100%;height:100%}@keyframes ch-autumn-fall{0%{transform:translate3d(0,-5vh,0) rotate(0)}35%{transform:translate3d(calc(var(--leaf-drift) * .3),38vh,0) rotate(100deg)}70%{transform:translate3d(calc(var(--leaf-drift) * .8),77vh,0) rotate(250deg)}to{transform:translate3d(var(--leaf-drift),115vh,0) rotate(var(--leaf-spin))}}.ch-season-particles .ch-autumn-ground{position:absolute;top:auto;bottom:0;width:19px;height:21px;opacity:.65;animation:none;transition:translate 2.6s ease-out}.ch-season-particles.ch-autumn-gust .ch-autumn-leaf{animation-duration:7s!important;translate:var(--ch-gust-x,150px) -14px;transition:translate 2.8s ease-in-out}.ch-season-particles.ch-autumn-gust .ch-autumn-ground{translate:var(--ch-gust-x,150px) -40px}html[data-theme=autumn].ch-autumn-morning body:before{content:"";position:fixed;inset:auto 0 0;height:32vh;pointer-events:none;z-index:0;background:linear-gradient(to top,rgba(239,222,199,.25),transparent)}@media(prefers-reduced-motion:reduce){.ch-season-particles .ch-autumn-leaf,.ch-season-particles .ch-autumn-ground{display:none}}html[data-theme=autumn]{--bg:#f7e8d7;--surf:#fff9f3;--ink:#493427;--mute:#806b5d;--line:#e6d3bf;--on:#a65b30;--ring:#a65b30}html[data-theme=autumn] body{background-color:#f7e8d7;background-image:url(/_astro/autumn-landscape.0Zh9t1HK.webp),radial-gradient(ellipse at 92% 0%,#ffe1a5,#f7e8d7 60%);background-position:center center,center;background-size:cover,cover;background-repeat:no-repeat;background-attachment:fixed}html[data-theme=autumn] .home-panel{background:#fffaf5eb;border-color:#d3ad8ba6;backdrop-filter:blur(3px)}html[data-theme=autumn] .ch-season-particles .ch-autumn-leaf{width:var(--leaf-size,35px);height:var(--leaf-size,35px);opacity:var(--leaf-opacity,.85);filter:drop-shadow(0 2px 2px #8b4b2a33)}html[data-theme=autumn] .ch-season-particles .ch-autumn-ground{display:none}html[data-theme=autumn].ch-autumn-morning body:before{height:36vh;background:linear-gradient(to top,rgba(255,244,224,.3),rgba(255,248,234,.07),transparent);z-index:0}@media(max-width:600px){html[data-theme=autumn] body{background-position:center center;background-size:auto 100vh}}@media(prefers-reduced-motion:reduce){html[data-theme=autumn] .ch-season-particles{display:none}}html[data-theme=autumn] .ch-autumn-leaf .ch-autumn-wind{display:block;width:100%;height:100%;transform:translate3d(var(--wind-shift,0px),0,0) rotate(var(--wind-tilt,0deg));will-change:transform}html[data-theme=autumn] .ch-autumn-leaf .ch-autumn-wind svg{width:100%;height:100%;filter:drop-shadow(0 1px 1px rgba(90,48,22,.25))}html[data-theme=autumn] body{background-image:url(/_astro/autumn-landscape.0Zh9t1HK.webp),linear-gradient(135deg,#f9d8ba,#f4dfca);background-position:center center,center;background-size:cover,cover;background-repeat:no-repeat,no-repeat;background-attachment:fixed,fixed}html[data-theme=autumn] .home-panel{background:#fff9f4db;border-color:#e6cab5cc;backdrop-filter:blur(5px)}@media(max-width:600px){html[data-theme=autumn] body{background-size:auto 100vh,cover;background-position:center center,center}html[data-theme=autumn] .home-panel{background:#fff9f4ed}}html[data-theme=autumn] body{background-color:#edc6a6;background-image:url(/_astro/autumn-landscape.0Zh9t1HK.webp);background-repeat:no-repeat;background-position:center center;background-size:cover;background-attachment:fixed}@media(max-width:600px){html[data-theme=autumn] body{background-size:cover;background-position:center center}}html[data-theme=autumn] .ch-season-particles .ch-autumn-leaf img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(64,37,20,.16));pointer-events:none;user-select:none}html[data-theme=autumn] .ch-season-particles .ch-autumn-leaf{filter:none}.admin-dialog #admin-modules-tab .module-switch input:checked+.module-switch-track,.admin-dialog #admin-proxy-tab .proxy-toggle input:checked+.proxy-track,.admin-dialog #admin-mikrotik-tab .mt-toggle input:checked+.mt-toggle-track,.admin-dialog #ban-settings-panel label.ban-check input.ban-toggle-input:checked+.ban-toggle-track,#admin-cameras-tab .cam-toggle input:checked+.cam-track,#admin-cameras-tab .ch-camera-actions .module-switch input:checked+.module-switch-track,.module-settings-dialog .printer-enabled input:checked+.printer-toggle-track,.mqtt-device-switch[aria-checked=true]{background:var(--on)!important}.admin-dialog #admin-users-tab .btn.pri,.admin-dialog .admin-tabs .btn.pri,.admin-dialog .admin-actions .btn.pri{background:var(--on)!important;border-color:var(--on)!important;color:#fff!important}.admin-dialog input:focus-visible,.admin-dialog select:focus-visible{outline-color:var(--ring)}html[data-theme=autumn]{--border:#d9b89b;--ch-autumn-control-border:#d9b89b;--ch-autumn-control-hover:#ad7047}html[data-theme=autumn] .btn:not(.pri):not(.warn),html[data-theme=autumn] .theme-toggle,html[data-theme=autumn] .ch-card-action,html[data-theme=autumn] .mqtt-devices-panel .mqtt-device-actions>button:not(.mqtt-device-switch),html[data-theme=autumn] .admin-dialog .admin-tabs .btn:not(.pri),html[data-theme=autumn] .admin-dialog .module-controls>button:not(.module-remove-button),html[data-theme=autumn] .admin-dialog .module-controls .module-settings-button,html[data-theme=autumn] #admin-cameras-tab .ch-camera-actions .ch-camera-action:not(.module-remove-button),html[data-theme=autumn] .mqtt-config-device-actions>button:not(.module-remove-button),html[data-theme=autumn] .ch-modal-close{border-color:var(--ch-autumn-control-border)!important}html[data-theme=autumn] .btn:not(.pri):not(.warn):hover:not(:disabled),html[data-theme=autumn] .ch-card-action:hover:not(:disabled),html[data-theme=autumn] .mqtt-devices-panel .mqtt-device-actions>button:not(.mqtt-device-switch):hover:not(:disabled),html[data-theme=autumn] .ch-modal-close:hover:not(:disabled){border-color:var(--ch-autumn-control-hover)!important}html[data-theme=winter]{--bg:#dce9f3;--surf:#f7fbff;--ink:#203c55;--mute:#5c7890;--line:#bbd3e5;--on:#337eaa;--ring:#337eaa}html[data-theme=winter] body{background-color:#b9d3e8;background-image:url(/_astro/winter-landscape.CmRwgEV1.webp);background-position:center center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}html[data-theme=winter] .home-panel{background:#f7fbffe3;border-color:#a6c3dbbf;backdrop-filter:blur(5px)}html[data-theme=winter] .btn:not(.pri):not(.warn),html[data-theme=winter] .theme-toggle,html[data-theme=winter] .ch-card-action,html[data-theme=winter] .mqtt-devices-panel .mqtt-device-actions>button:not(.mqtt-device-switch),html[data-theme=winter] .admin-dialog .admin-tabs .btn:not(.pri),html[data-theme=winter] .admin-dialog .module-controls>button:not(.module-remove-button),html[data-theme=winter] .admin-dialog .module-controls .module-settings-button,html[data-theme=winter] #admin-cameras-tab .ch-camera-actions .ch-camera-action:not(.module-remove-button),html[data-theme=winter] .mqtt-config-device-actions>button:not(.module-remove-button),html[data-theme=winter] .ch-modal-close{border-color:#a9c9df!important}html[data-theme=winter] .btn:not(.pri):not(.warn):hover:not(:disabled),html[data-theme=winter] .ch-card-action:hover:not(:disabled),html[data-theme=winter] .ch-modal-close:hover:not(:disabled){border-color:#478fb7!important}.ch-season-particles .ch-winter-snowflake{position:absolute;top:0;left:0;width:var(--snow-size);height:var(--snow-size);border-radius:50%;background:radial-gradient(circle at 42% 38%,#fffffffa,#f7fbffe0 42%,#d6e9f72e);opacity:var(--snow-opacity);filter:blur(var(--snow-blur));box-shadow:none;animation:none;will-change:transform;pointer-events:none}@media(max-width:600px){html[data-theme=winter] body{background-attachment:scroll;background-size:auto 100vh}html[data-theme=winter] .home-panel{background:#f7fbfff0}}@media(prefers-reduced-motion:reduce){.ch-season-particles .ch-winter-snowflake{display:none}}.ch-season-particles .ch-winter-snow-canvas{position:absolute;inset:0;display:block;pointer-events:none;animation:none;opacity:1}html[data-theme=summer]{--bg:#e8f3df;--surf:#fbfdf7;--ink:#263f30;--mute:#617761;--line:#b7d2a9;--on:#398651;--ring:#398651;--heat:#c46d3f;--sun:#dfae3f;--night:#dfead9;--border:#b7d2a9}html[data-theme=summer] body{background-color:#a9c4a0;background-image:url(/_astro/summer-landscape.lK7oG5Dh.webp);background-position:center center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}html[data-theme=summer] .home-panel{background:#fafdf6e0;border-color:#accd97d1;backdrop-filter:blur(5px)}html[data-theme=summer] .btn:not(.pri):not(.warn),html[data-theme=summer] .theme-toggle,html[data-theme=summer] .ch-card-action,html[data-theme=summer] .mqtt-devices-panel .mqtt-device-actions>button:not(.mqtt-device-switch),html[data-theme=summer] .admin-dialog .admin-tabs .btn:not(.pri),html[data-theme=summer] .admin-dialog .module-controls>button:not(.module-remove-button),html[data-theme=summer] .admin-dialog .module-controls .module-settings-button,html[data-theme=summer] #admin-cameras-tab .ch-camera-actions .ch-camera-action:not(.module-remove-button),html[data-theme=summer] .mqtt-config-device-actions>button:not(.module-remove-button),html[data-theme=summer] .ch-modal-close{border-color:#a8c99b!important}html[data-theme=summer] .btn:not(.pri):not(.warn):hover:not(:disabled),html[data-theme=summer] .ch-card-action:hover:not(:disabled),html[data-theme=summer] .mqtt-devices-panel .mqtt-device-actions>button:not(.mqtt-device-switch):hover:not(:disabled),html[data-theme=summer] .ch-modal-close:hover:not(:disabled){border-color:#438e56!important}@media(max-width:600px){html[data-theme=summer] body{background-position:center center;background-size:cover;background-attachment:scroll}html[data-theme=summer] .home-panel{background:#fafdf6f0}}.ch-season-particles .ch-summer-atmosphere{position:absolute;inset:0;display:block;pointer-events:none;animation:none}html[data-theme=summer]{--ch-summer-edge:#91bd83;--ch-summer-hover:#438d58;--ch-summer-glass:rgba(249,253,244,.92)}html[data-theme=summer] .home-panel,html[data-theme=summer] .card,html[data-theme=summer] .panel{border-color:#8db97fb8}html[data-theme=summer] .home-panel{box-shadow:0 8px 30px #1c4a291f}html[data-theme=summer] .btn.pri:not(.warn),html[data-theme=summer] button.pri:not(.warn){background:#3d8651;border-color:#347a49;color:#fff}html[data-theme=summer] .btn.pri:not(.warn):hover:not(:disabled),html[data-theme=summer] button.pri:not(.warn):hover:not(:disabled){background:#327547}html[data-theme=summer] .btn:not(.pri):not(.warn),html[data-theme=summer] .theme-toggle,html[data-theme=summer] .ch-card-action,html[data-theme=summer] .ch-modal-close,html[data-theme=summer] .admin-dialog .module-controls>button:not(.module-remove-button),html[data-theme=summer] .mqtt-config-device-actions>button:not(.module-remove-button){border-color:var(--ch-summer-edge)!important}html[data-theme=summer] .btn:not(.pri):not(.warn):hover:not(:disabled),html[data-theme=summer] .theme-toggle:hover,html[data-theme=summer] .ch-card-action:hover:not(:disabled),html[data-theme=summer] .ch-modal-close:hover:not(:disabled){border-color:var(--ch-summer-hover)!important}html[data-theme=summer] :is(input,select,textarea):focus-visible,html[data-theme=summer] button:focus-visible{outline-color:#438d58}html[data-theme=summer] :is(input[type=checkbox],input[type=radio]){accent-color:#3d8651}html[data-theme=summer] :is(dialog,[role=dialog],.modal,.admin-dialog){--surf:#f9fcf5;--line:#a6c99b;--ring:#438d58;border-color:#89b277d1}html[data-theme=summer] :is(dialog,[role=dialog],.modal,.admin-dialog) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-color:#a9c89e;background-color:#fcfef9f5}html[data-theme=summer] :is(dialog,[role=dialog],.modal,.admin-dialog) :is(input,select,textarea):focus{border-color:#438d58}@media(prefers-reduced-motion:reduce){.ch-season-particles .ch-summer-atmosphere{display:none}}html[data-theme=spring]{--bg:#edf4e9;--surf:#fbfdf9;--ink:#294539;--mute:#667d70;--line:#b9d5bf;--on:#398568;--ring:#398568;--night:#e0eee5;--border:#b9d5bf}html[data-theme=spring] body{background-color:#a8bfc0;background-image:url(/_astro/spring-river-snowdrops.DtUSzoRF.webp);background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}html[data-theme=spring] .home-panel{background:#fafdf8e6;border-color:#94b99dd4;backdrop-filter:blur(5px);box-shadow:0 8px 28px #1d48391f}html[data-theme=spring] :is(.card,.panel){border-color:#97bea1c7}html[data-theme=spring] :is(.btn.pri:not(.warn),button.pri:not(.warn)){background:#398568;border-color:#307458;color:#fff}html[data-theme=spring] :is(.btn.pri:not(.warn),button.pri:not(.warn)):hover:not(:disabled){background:#2e7257}html[data-theme=spring] .btn:not(.pri):not(.warn),html[data-theme=spring] .theme-toggle,html[data-theme=spring] .ch-card-action,html[data-theme=spring] .ch-modal-close,html[data-theme=spring] .mqtt-devices-panel .mqtt-device-actions>button:not(.mqtt-device-switch),html[data-theme=spring] .admin-dialog .admin-tabs .btn:not(.pri),html[data-theme=spring] .admin-dialog .module-controls>button:not(.module-remove-button),html[data-theme=spring] .admin-dialog .module-controls .module-settings-button,html[data-theme=spring] #admin-cameras-tab .ch-camera-actions .ch-camera-action:not(.module-remove-button),html[data-theme=spring] .mqtt-config-device-actions>button:not(.module-remove-button){border-color:#9dc5a6!important}html[data-theme=spring] .btn:not(.pri):not(.warn):hover:not(:disabled),html[data-theme=spring] .theme-toggle:hover,html[data-theme=spring] .ch-card-action:hover:not(:disabled),html[data-theme=spring] .ch-modal-close:hover:not(:disabled){border-color:#398568!important}html[data-theme=spring] :is(input,select,textarea):focus-visible,html[data-theme=spring] button:focus-visible{outline-color:#398568}html[data-theme=spring] :is(input[type=checkbox],input[type=radio]){accent-color:#398568}html[data-theme=spring] :is(dialog,[role=dialog],.modal,.admin-dialog,.gb-modal-panel){--surf:#f9fcf7;--line:#a6c9ae;--ring:#398568;border-color:#91ba99d9}html[data-theme=spring] :is(dialog,[role=dialog],.modal,.admin-dialog,.gb-modal-panel) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-color:#a5c6ab;background-color:#fdfffbf5}html[data-theme=spring] :is(dialog,[role=dialog],.modal,.admin-dialog,.gb-modal-panel) :is(input,select,textarea):focus{border-color:#398568}.ch-season-particles .ch-spring-atmosphere{position:absolute;inset:0;display:block;pointer-events:none;animation:none;opacity:1}@media(max-width:600px){html[data-theme=spring] body{background-attachment:scroll;background-position:center center}html[data-theme=spring] .home-panel{background:#fafdf8f2}}@media(prefers-reduced-motion:reduce){.ch-season-particles .ch-spring-atmosphere{display:none}}html[data-theme=spring] .brand-title{color:#fff;background:transparent;border:0;border-radius:0;padding:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;text-shadow:0 2px 4px rgba(0,0,0,.9),0 0 12px rgba(0,0,0,.55)}html[data-theme] .brand-title{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;-webkit-text-stroke:0}html:not([data-theme]) .brand-title,html[data-theme=light] .brand-title{color:#344b57;text-shadow:0 1px 1px rgba(255,255,255,.65)}html[data-theme=dark] .brand-title{color:#a9c4dc;text-shadow:0 1px 2px rgba(0,0,0,.65)}html[data-theme=winter] .brand-title{color:#366f9c;text-shadow:0 1px 2px rgba(245,251,255,.9),0 0 1px rgba(245,251,255,.7)}html[data-theme=spring] .brand-title{color:#d1e8b2;text-shadow:0 1px 2px rgba(20,55,38,.85),0 0 1px rgba(20,55,38,.7)}html[data-theme=summer] .brand-title{color:#e6d27b;text-shadow:0 1px 2px rgba(39,64,31,.85),0 0 1px rgba(39,64,31,.65)}html[data-theme=autumn] .brand-title{color:#e8b276;text-shadow:0 1px 2px rgba(68,37,24,.85),0 0 1px rgba(68,37,24,.65)}main>header{--ch-header-bg: var(--surf);--ch-header-border: var(--line);background:var(--ch-header-bg);border:1px solid var(--ch-header-border);border-radius:18px;padding:12px 16px;margin-bottom:20px;min-height:64px;box-shadow:0 5px 20px #0c222312;position:relative;z-index:2}main>header .brand-title{margin:0;flex:0 0 auto}main>header .status{min-width:0}html:not([data-theme]) main>header,html[data-theme=light] main>header{--ch-header-bg: rgba(248,250,246,.96);--ch-header-border: #d1d9d2}html[data-theme=dark] main>header{--ch-header-bg: rgba(23,35,39,.96);--ch-header-border: #354950;box-shadow:0 6px 24px #0000003b}html[data-theme=winter] main>header{--ch-header-bg: rgba(227,241,253,.9);--ch-header-border: rgba(117,165,206,.65)}html[data-theme=spring] main>header{--ch-header-bg: rgba(244,250,241,.91);--ch-header-border: rgba(128,175,137,.7)}html[data-theme=summer] main>header{--ch-header-bg: rgba(245,250,230,.9);--ch-header-border: rgba(141,176,89,.68)}html[data-theme=autumn] main>header{--ch-header-bg: rgba(255,242,224,.91);--ch-header-border: rgba(186,125,73,.68)}html[data-theme=winter] main>header .brand-title{color:#28638d;text-shadow:none}html[data-theme=spring] main>header .brand-title{color:#366f4a;text-shadow:none}html[data-theme=summer] main>header .brand-title{color:#70601e;text-shadow:none}html[data-theme=autumn] main>header .brand-title{color:#92501f;text-shadow:none}html[data-theme=light] main>header .brand-title,html:not([data-theme]) main>header .brand-title{text-shadow:none}html[data-theme=dark] main>header .brand-title{text-shadow:none}@media(max-width:760px){main>header{flex-wrap:wrap;gap:10px;padding:12px}main>header .brand-title{width:auto;margin-bottom:0}main>header .status{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}}@media(max-width:520px){main>header .location-nav{order:2}main>header .status{order:3;width:100%;justify-content:flex-start;margin-left:0}}.location-nav{position:relative;min-width:125px;padding:3px}.location-select{display:block;width:100%;min-width:116px;max-width:220px;min-height:32px;padding:5px 30px 5px 13px;border:0;border-radius:8px;background-color:var(--on);color:#fff;font:inherit;font-size:14px;font-weight:650;line-height:20px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:15px}.location-select:focus-visible{outline:2px solid var(--line);outline-offset:3px}.location-select:disabled{cursor:default;opacity:.83}.location-select option{background:var(--surf);color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:540px){.location-select{min-width:110px}}main>header .location-nav{position:relative;display:inline-flex;align-items:center;min-width:125px;padding:3px;overflow:visible;isolation:isolate}.location-select-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%);padding:0!important;border:0!important}.location-menu-button{display:inline-flex;align-items:center;justify-content:space-between;gap:15px;min-width:116px;max-width:220px;min-height:32px;padding:5px 10px 5px 13px;border:0;border-radius:8px;background:var(--on);color:#fff;font:inherit;font-size:14px;font-weight:650;line-height:20px;cursor:pointer;white-space:nowrap}.location-menu-button:disabled{opacity:.83;cursor:default}.location-menu-button:focus-visible,.location-menu-option:focus-visible{outline:2px solid var(--on);outline-offset:2px}.location-menu-button svg{flex:none;transition:transform .15s ease}.location-menu-button[aria-expanded=true] svg{transform:rotate(180deg)}.location-menu[hidden]{display:none!important}.location-menu{position:absolute;z-index:10000;top:calc(100% + 5px);left:0;min-width:100%;width:max-content;max-width:min(300px,calc(100vw - 30px));max-height:min(300px,55vh);overflow-y:auto;box-sizing:border-box;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--surf);color:var(--text);box-shadow:0 12px 30px #0003;backdrop-filter:blur(14px)}.location-menu-option{display:block;width:100%;min-height:34px;padding:8px 12px;text-align:left;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:14px;cursor:pointer;white-space:nowrap}.location-menu-option:hover,.location-menu-option:focus-visible{background:var(--bg)}.location-menu-option[aria-selected=true]{background:var(--on);color:#fff;font-weight:650}@media(max-width:540px){.location-menu-button{min-width:110px}}main>header .status{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:12px}main>header .header-connection{display:inline-flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}main>header .header-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}main>header .header-actions #logout{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;padding:0}@media(max-width:760px){main>header .status{margin-left:auto;justify-content:flex-end}}@media(max-width:520px){main>header .status{width:100%;justify-content:space-between;margin-left:0;gap:8px}main>header .header-connection{flex-wrap:wrap;white-space:normal;gap:6px}main>header .header-actions{margin-left:auto}}.mqtt-timer-days{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mqtt-timer-day{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;cursor:pointer;margin:0;padding:0}.mqtt-timer-day input[type=checkbox]{position:absolute;width:100%;height:100%;inset:0;margin:0;opacity:0;cursor:pointer;z-index:1}.mqtt-timer-day-face{display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-sizing:border-box;border:1px solid var(--line,#c9d5dd);border-radius:9px;background:var(--surf,#fff);color:var(--ink,#26323a);font-size:13px;font-weight:600;line-height:1;user-select:none;transition:background-color .15s,border-color .15s,color .15s}.mqtt-timer-day input:checked+.mqtt-timer-day-face{background:var(--on,#347faf);border-color:var(--on,#347faf);color:#fff}.mqtt-timer-day input:focus-visible+.mqtt-timer-day-face{outline:2px solid var(--ring,#347faf);outline-offset:2px}.mqtt-timer-day:hover .mqtt-timer-day-face{border-color:var(--on,#347faf)}.mqtt-timer-day input:disabled+.mqtt-timer-day-face{opacity:.5;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.mqtt-timer-day-face{transition:none}}.mqtt-timer-fields[hidden],.mqtt-timer-custom[hidden],.mqtt-timer-advanced[hidden]{display:none!important}.mqtt-timer-advanced{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ch-field-gap,12px);margin-top:12px}.mqtt-timer-advanced>.mqtt-timer-field:has(.mqtt-timer-days),.mqtt-timer-advanced>.mqtt-timer-field:has(.mqtt-timer-step-list){grid-column:1/-1}.mqtt-timer-step-list{display:grid;gap:8px}.mqtt-timer-step{display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:8px}.mqtt-timer-step .mqtt-timer-field{min-width:0}@media(max-width:620px){.mqtt-timer-advanced{grid-template-columns:1fr}.mqtt-timer-step{grid-template-columns:1fr 1fr}.mqtt-timer-step .mqtt-timer-field:first-child{grid-column:1/-1}}.mqtt-timer-form>.mqtt-timer-field{margin-top:12px;margin-bottom:12px}.mqtt-timer-fields[hidden]{display:none!important}.mqtt-timer-advanced>.mqtt-timer-boolean{grid-column:1/-1;display:flex;align-items:center;gap:12px;min-height:40px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink,#26323a);width:max-content;max-width:100%}.mqtt-timer-boolean-label{flex:0 1 auto}.mqtt-timer-boolean{position:relative}.mqtt-timer-boolean-input{position:absolute;right:0;top:0;width:44px;height:28px;margin:0;opacity:0;cursor:pointer;z-index:1}.mqtt-timer-boolean-track{position:relative;display:block;width:44px;height:26px;flex:0 0 44px;border-radius:99px;background:var(--line,#aab8c0);transition:background .16s ease}.mqtt-timer-boolean-track:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .16s ease}.mqtt-timer-boolean-input:checked+.mqtt-timer-boolean-track{background:var(--on,#347faf)}.mqtt-timer-boolean-input:checked+.mqtt-timer-boolean-track:after{transform:translate(18px)}.mqtt-timer-boolean-input:focus-visible+.mqtt-timer-boolean-track{outline:2px solid var(--ring,#347faf);outline-offset:3px}@media(prefers-reduced-motion:reduce){.mqtt-timer-boolean-track,.mqtt-timer-boolean-track:after{transition:none}}.location-geo-settings{margin:18px 0;padding:16px;border:1px solid var(--border,#cbd5e1);border-radius:12px}.location-geo-settings h4{margin:0 0 8px}.mqtt-solar-events{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%;min-width:0}.mqtt-solar-event{display:flex;flex-direction:column;gap:12px;min-width:0;padding:14px;border:1px solid var(--border,#cbd5e1);border-radius:10px}.mqtt-solar-event-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.mqtt-solar-event-title{font-size:15px}.mqtt-solar-toggle{display:inline-flex;align-items:center;gap:9px;cursor:pointer;font-size:13px;position:relative}.mqtt-solar-toggle input{position:absolute;opacity:0;width:1px;height:1px}.mqtt-solar-toggle-track{display:inline-block;width:40px;height:24px;background:#aeb9bd;border-radius:20px;position:relative;transition:background .15s}.mqtt-solar-toggle-track:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;transition:transform .15s}.mqtt-solar-toggle input:checked+.mqtt-solar-toggle-track{background:var(--accent,#347faf)}.mqtt-solar-toggle input:checked+.mqtt-solar-toggle-track:after{transform:translate(16px)}.mqtt-solar-toggle input:focus-visible+.mqtt-solar-toggle-track{outline:2px solid var(--accent,#347faf);outline-offset:3px}.mqtt-solar-event-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.mqtt-solar-event-fields[hidden]{display:none}.mqtt-solar-event-fields .mqtt-timer-field{min-width:0}.mqtt-solar-timing{display:flex;align-items:center;gap:8px;min-width:0}.mqtt-solar-timing select{width:95px;flex:0 0 95px}.mqtt-solar-timing input{width:100%;min-width:55px;flex:1}.mqtt-solar-minutes-unit{font-size:13px;white-space:nowrap}.module-locations-list{margin:12px 0 18px;border:1px solid var(--border,#d6dfe3);border-radius:10px;overflow:hidden}.location-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:7px 12px;border-bottom:1px solid var(--border,#d6dfe3)}.location-list-row:last-child{border-bottom:0}.location-list-row strong{font-size:14px;min-width:0;overflow-wrap:anywhere}.location-list-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}.admin-dialog .location-list-actions .btn{width:32px;height:32px;min-width:32px;padding:5px;display:inline-flex;align-items:center;justify-content:center}.location-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.location-editor-heading h4{margin:0}#module-editor-panel[hidden],#location-geo-panel[hidden]{display:none!important}.location-list-row{cursor:pointer}.location-list-row.is-selected{background:color-mix(in srgb,var(--accent,#3786b4) 9%,transparent);box-shadow:inset 3px 0 0 var(--accent,#3786b4)}.location-list-row:focus-within{outline-offset:-2px}.module-current-location{font-weight:600;margin:20px 0 12px;color:var(--text,#263746)}.admin-dialog #admin-modules-tab .location-list-actions .btn{width:var(--ch-icon-button-size,30px)!important;min-width:var(--ch-icon-button-size,30px)!important;height:var(--ch-icon-button-size,30px)!important;min-height:var(--ch-icon-button-size,30px)!important;padding:0!important;display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--ch-icon-button-size,30px);line-height:1}.admin-dialog #admin-modules-tab .location-list-actions .module-settings-button{font-size:19px;line-height:1}.admin-dialog #admin-modules-tab .location-list-actions .module-remove-button{color:#dc3545!important}.admin-dialog #admin-modules-tab .location-list-actions .module-remove-button svg{display:block;width:16px;height:16px;stroke:currentColor;flex-shrink:0}.admin-dialog #admin-modules-tab .location-list-actions .module-remove-button:hover{background:#dc354517!important;border-color:#dc3545!important}#location-settings-modal[hidden]{display:none!important}#location-settings-modal{z-index:12000}#location-settings-modal .location-settings-dialog{width:min(680px,100%);max-height:calc(100dvh - 28px);overflow-y:auto}#location-settings-modal .location-geo-settings{margin:0;padding:0;border:0;border-radius:0}#location-settings-modal .admin-top{margin-bottom:16px}#location-settings-modal .location-geo-settings>h4{margin:0 0 8px}#location-settings-modal .module-editor-form{padding-bottom:8px}#location-settings-modal .location-settings-dialog{display:flex;flex-direction:column;overflow:hidden;padding:0!important}#location-settings-modal .location-geo-settings{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overflow-x:hidden;margin:0!important;padding:0!important}#location-settings-modal .location-geo-settings>.admin-top{padding:20px 24px 16px!important;margin:0 0 18px!important;border-bottom:1px solid var(--border,#d3dfe7);box-sizing:border-box;min-height:70px;flex:none}#location-settings-modal .location-geo-settings>.admin-top h2{margin:0;line-height:1.3}#location-settings-modal .location-geo-settings>h4{margin:0 24px 8px!important;font-size:15px;line-height:1.4}#location-settings-modal .location-geo-settings>p.sub{margin:0 24px 4px!important;line-height:1.5}#location-settings-modal .location-geo-settings>.module-editor-form{padding:18px 24px 22px!important;gap:14px;min-width:0;box-sizing:border-box}#location-settings-modal .location-geo-settings>.module-editor-form label{min-width:0}#location-settings-modal .location-geo-settings>.module-editor-form .module-editor-actions{border-top:1px solid var(--border,#d3dfe7);padding-top:16px;margin-top:4px;justify-content:flex-end}#location-settings-modal .location-geo-settings>.module-editor-form #location-geo-status:empty{display:none}@media(max-width:520px){#location-settings-modal .location-geo-settings>.admin-top{padding:16px!important}#location-settings-modal .location-geo-settings>h4{margin-left:16px!important;margin-right:16px!important}#location-settings-modal .location-geo-settings>p.sub{margin-left:16px!important;margin-right:16px!important}#location-settings-modal .location-geo-settings>.module-editor-form{padding:16px!important}}#location-settings-modal input.geo-coordinate{-moz-appearance:textfield;appearance:textfield}#location-settings-modal input.geo-coordinate::-webkit-inner-spin-button,#location-settings-modal input.geo-coordinate::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}html.ch-settings-scroll-locked,body.ch-settings-scroll-locked{overflow:hidden!important;overscroll-behavior:none!important}#admin-modal .admin-dialog,#location-settings-modal .location-settings-dialog{overscroll-behavior:contain}#admin-modal :is([class*=scroll],.module-list,.proxy-modules),#location-settings-modal .location-geo-settings{overscroll-behavior:contain}.mqtt-timer-advanced>.mqtt-timer-field:has(>.mqtt-solar-events){grid-column:1/-1;width:100%;min-width:0}.mqtt-solar-events{width:100%;grid-template-columns:1fr;gap:10px}.mqtt-solar-event{width:100%;box-sizing:border-box;padding:14px 16px;gap:14px}.mqtt-solar-event-header{min-height:26px}.mqtt-solar-event-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:14px}.mqtt-solar-timing{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:end;width:100%}.mqtt-solar-timing .mqtt-timer-field{min-width:0}.mqtt-solar-timing select,.mqtt-solar-timing input{width:100%;min-width:0;max-width:none;flex:auto;box-sizing:border-box}.mqtt-solar-timing input[type=number]{appearance:textfield;-moz-appearance:textfield}.mqtt-solar-timing input[type=number]::-webkit-inner-spin-button,.mqtt-solar-timing input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}@media(max-width:540px){.mqtt-solar-event-fields{grid-template-columns:1fr}.mqtt-solar-event{padding:12px}}.module-settings-dialog .module-editor-actions{gap:12px;flex-wrap:wrap}#gb-settings-modal .gb-delete-btn svg{stroke:currentColor;display:block}#gb-settings-modal .gb-delete-btn:hover,#gb-settings-modal .gb-delete-btn.btn:hover{color:#a71919!important;background:#dc26261a;border-color:#d32f2f}#gb-settings-modal .gb-delete-btn:focus-visible{outline:2px solid #d32f2f;outline-offset:2px}#gb-settings-modal .gb-delete-btn:disabled{opacity:.45;cursor:not-allowed}.gb-computer-row>span{flex:1 1 auto;min-width:0}.gb-computer-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-left:auto;flex:0 0 auto}.gb-computer-actions .gb-icon-btn{flex:0 0 auto}#gb-settings-modal .gb-modal-panel{box-shadow:0 18px 55px #00000040;background:var(--card-bg,var(--bg,#fff));border-radius:12px}#gb-settings-modal .gb-modal-head{border-bottom:1px solid var(--border,#8883)}#gb-settings-modal .gb-tabs{gap:5px}#gb-settings-modal .gb-modal-body{overscroll-behavior:contain;overflow-x:hidden}#gb-settings-modal .gb-computer-actions [data-gb-token-user]{order:0}#gb-settings-modal .gb-computer-actions [data-gb-select-user]{order:1}#gb-settings-modal .gb-computer-actions [data-gb-delete-user]{order:2}#gb-settings-modal .gb-log-list{max-height:min(52vh,520px);overflow:auto;overflow-wrap:normal;border:1px solid var(--border,#8884);border-radius:8px;margin-top:14px}#gb-settings-modal .gb-log-header,#gb-settings-modal .gb-log-row{display:grid;grid-template-columns:165px 125px minmax(160px,1fr) minmax(210px,2fr);gap:12px;align-items:start;padding:10px 12px;font-size:13px}#gb-settings-modal .gb-log-header{font-weight:700;background:#7896aa17;position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border,#8884)}#gb-settings-modal .gb-log-row{border-bottom:1px solid var(--border,#8883)}#gb-settings-modal .gb-log-row:last-child{border-bottom:0}#gb-settings-modal .gb-log-row>*{min-width:0;overflow-wrap:normal;word-break:normal}#gb-settings-modal .gb-log-computer{overflow-wrap:anywhere;word-break:normal}#gb-settings-modal .gb-log-detail{overflow-wrap:break-word}#gb-settings-modal .gb-log-row time{white-space:nowrap}#gb-settings-modal section:has(#gb-log-list)>.gb-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end}#gb-settings-modal section:has(#gb-log-list)>.gb-form .gb-field{width:auto;min-width:0}@media(max-width:760px){#gb-settings-modal .gb-log-list{overflow-x:auto}#gb-settings-modal .gb-log-header,#gb-settings-modal .gb-log-row{min-width:690px}#gb-settings-modal section:has(#gb-log-list)>.gb-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){#gb-settings-modal section:has(#gb-log-list)>.gb-form{grid-template-columns:1fr}}#gb-settings-modal .gb-modal-panel{background:var(--surf)!important;color:var(--ink);border-color:var(--line)}#gb-settings-modal .gb-modal-head,#gb-settings-modal .gb-tabs{background:var(--surf);border-color:var(--line)}#gb-settings-modal .gb-modal-body{background:var(--surf)}#gb-settings-modal .gb-modal-body input:not([type=checkbox]),#gb-settings-modal .gb-modal-body select,#gb-settings-modal .gb-modal-body textarea{background:var(--bg);color:var(--ink);border-color:var(--line)}#gb-settings-modal .gb-modal-body .btn,#gb-settings-modal .gb-tabs .btn{border-color:var(--line);color:var(--ink)}#gb-settings-modal .gb-edit-panel,#gb-settings-modal .gb-token-panel,#gb-settings-modal .gb-computer-row,#gb-settings-modal .gb-log-list{border-color:var(--line)}#gb-settings-modal .gb-log-header{background:var(--bg)}#gb-settings-modal .gb-modal-body,#gb-settings-modal .gb-computer-row{font-size:13px;line-height:1.4}#gb-settings-modal .gb-computer-row small{font-size:11px;line-height:1.35}#gb-settings-modal .gb-computer-notice,#gb-settings-modal .gb-computer-notice.sub{display:block;font-size:13px;font-weight:400;line-height:1.4;margin:6px 0 0;padding:0;letter-spacing:normal}#gb-settings-modal .gb-computers-list+.gb-computer-notice{margin-top:6px}#gb-settings-modal .gb-modal-body h4{font-size:14px;line-height:1.4}#gb-settings-modal .gb-modal-panel{--admin-text:#202a31;--admin-border:#dce2e5;background:#fff!important;color:var(--admin-text);border:1px solid var(--admin-border);border-radius:16px;box-shadow:0 20px 65px #0005;font-family:Golos Text,system-ui,sans-serif}#gb-settings-modal .gb-modal-head,#gb-settings-modal .gb-tabs,#gb-settings-modal .gb-modal-body{background:#fff;color:var(--admin-text)}#gb-settings-modal .gb-modal-head,#gb-settings-modal .gb-tabs{border-color:var(--admin-border)}#gb-settings-modal .gb-modal-body input:not([type=checkbox]),#gb-settings-modal .gb-modal-body select,#gb-settings-modal .gb-modal-body textarea{background:#fff;color:var(--admin-text);border:1px solid #d4dce0}#gb-settings-modal .gb-modal-body .btn,#gb-settings-modal .gb-tabs .btn{background:#fff;color:var(--admin-text);border:1px solid #cbd4d9}#gb-settings-modal .gb-modal-body .btn:hover:not(:disabled),#gb-settings-modal .gb-tabs .btn:hover:not(:disabled){background:#f4f6f7}#gb-settings-modal .gb-tabs .gb-active{outline-color:var(--admin-text)}#gb-settings-modal .gb-edit-panel,#gb-settings-modal .gb-token-panel,#gb-settings-modal .gb-computers-list,#gb-settings-modal .gb-computer-row,#gb-settings-modal .gb-log-list{border-color:var(--admin-border)}#gb-settings-modal .gb-log-header{background:#f4f6f7}#gb-settings-modal .gb-delete-btn,#gb-settings-modal .gb-delete-btn.btn{color:#c62828!important;border-color:#c628285c}#gb-settings-modal .gb-delete-btn:hover:not(:disabled){background:#fff0f0!important}#gb-settings-modal .gb-tabs{gap:7px;padding:8px 16px 12px;flex-wrap:wrap;overflow-x:auto}#gb-settings-modal .gb-tabs .btn{box-sizing:border-box;width:auto;min-width:0;min-height:36px;padding:8px 10px;border:1px solid #cbd4d9;border-radius:9px;background:#fff;color:var(--admin-text);font-family:inherit;font-size:12px;font-weight:600;line-height:1.15;white-space:nowrap;outline:none;box-shadow:none}#gb-settings-modal .gb-tabs .btn:hover:not(:disabled):not(.pri){background:#f4f6f7}#gb-settings-modal .gb-tabs .btn.pri,#gb-settings-modal .gb-tabs .btn.gb-active{background:var(--on);border-color:var(--on);color:#fff;outline:none;box-shadow:none}#gb-settings-modal .gb-tabs .btn:focus-visible{outline:2px solid var(--on);outline-offset:2px}.gb-modal .gb-smtp-switch input:checked+.gb-smtp-track,.gb-toggle input:checked+.gb-toggle-track{background:var(--on)!important}.gb-modal .gb-smtp-switch input:focus-visible+.gb-smtp-track,.gb-toggle input:focus-visible+.gb-toggle-track{outline:2px solid var(--ring);outline-offset:3px}.gb-game-overlay .gb-game-dialog{background:#fff!important;color:#202a31!important;border:1px solid #dce2e5!important;border-radius:16px;font-family:Golos Text,system-ui,sans-serif;box-shadow:0 20px 65px #0005}.gb-game-overlay .gb-game-dialog-header,.gb-game-overlay .gb-game-dialog-body,.gb-game-overlay .gb-game-dialog-footer{background:#fff!important;color:#202a31!important;border-color:#dce2e5!important}.gb-game-overlay .gb-game-dialog input:not([type=checkbox]),.gb-game-overlay .gb-game-dialog select,.gb-game-overlay .gb-game-dialog textarea{background:#fff!important;color:#202a31!important;border:1px solid #d4dce0!important}.gb-game-overlay .gb-game-dialog .btn:not(.gb-delete-btn):not(.pri){background:#fff;color:#202a31;border-color:#cbd4d9}.gb-game-overlay .gb-game-dialog .btn:not(.gb-delete-btn):not(.pri):hover:not(:disabled){background:#f4f6f7}.gb-game-overlay .gb-game-dialog .gb-delete-btn,.gb-game-overlay .gb-game-dialog .gb-delete-btn svg{color:#c62828!important;stroke:currentColor}.gb-game-overlay .gb-game-dialog .gb-delete-btn:hover:not(:disabled){background:#fff0f0}@media(max-width:600px){.gb-game-overlay .gb-game-dialog{border-radius:0}}main>header .header-datetime{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;white-space:nowrap;pointer-events:none;line-height:1.2}main>header .header-datetime #clock,main>header .header-datetime #header-date{font-family:inherit;font-size:13px;font-weight:400;font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:normal}@media(max-width:760px){main>header .header-datetime{position:static;transform:none;order:2;margin-left:auto;margin-right:auto}main>header .status{order:3}}@media(max-width:520px){main>header .header-datetime{order:3;width:100%;margin:0;align-items:center}main>header .status{order:4}}main>header .header-connection{gap:7px;white-space:nowrap}main>header .header-connection .dot{flex:0 0 9px}main>header .header-connection .dot.connecting{background:#d69a28}@media(max-width:760px){main>header .header-connection{flex-wrap:nowrap;white-space:nowrap}}.login-card .login-header{position:relative;display:flex;align-items:center;justify-content:center;min-height:36px;margin:0 0 20px;width:100%;padding:0 42px}.login-card .login-header h1{margin:0;text-align:center;font-size:22px;line-height:1.3;color:var(--ink)}.login-card .login-header #login-theme{position:absolute;right:0;top:50%;transform:translateY(-50%)}.login-card h2{text-align:center;margin:0 0 5px}.login-card .sub{text-align:center;margin:0}@media(max-width:380px){.login-card{padding:22px 18px}.login-card .login-header h1{font-size:20px}}.login-card .login-header{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:0;padding:0;width:100%;min-height:36px}.login-card .login-header:before{content:"";grid-column:1;grid-row:1}.login-card .login-header h1{grid-column:2;grid-row:1;min-width:0;text-align:center}.login-card .login-header #login-theme{position:static;grid-column:3;grid-row:1;justify-self:end;transform:none;margin:0}.ch-user-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}.ch-user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line,#d5dfe5);border-radius:10px;padding:9px 12px;background:var(--surf,#fff);color:var(--ink,#26323a)}.ch-user-actions{display:flex;gap:7px;align-items:center}.ch-user-icon{width:35px;height:35px;padding:0!important;display:grid!important;place-items:center}.ch-user-danger{color:#d52c2c!important}.ch-user-overlay{position:fixed;inset:0;z-index:10050;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.ch-user-overlay[hidden],#admin-user-credentials[hidden],#admin-user-permissions[hidden]{display:none!important}.ch-user-dialog{width:min(760px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--surf,#fff);color:var(--ink,#26323a)}.ch-user-dialog #admin-rights{max-height:min(55vh,500px);overflow:auto}.ch-user-status{min-height:1.2em}.admin-dialog #admin-users-tab .ch-user-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto}.admin-dialog #admin-users-tab .ch-user-actions .btn.ch-user-icon{box-sizing:border-box!important;width:34px!important;min-width:34px!important;max-width:34px!important;height:34px!important;min-height:34px!important;max-height:34px!important;flex:0 0 34px!important;padding:0!important;margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border:1px solid var(--line)!important;border-radius:8px!important;background:transparent;color:var(--ink);line-height:1!important}.admin-dialog #admin-users-tab .ch-user-actions .btn.ch-user-icon svg{display:block;width:16px;height:16px;flex:none}.admin-dialog #admin-users-tab .ch-user-actions .btn.ch-user-danger{color:#dc2626!important}.admin-dialog #admin-users-tab .ch-user-actions .btn.ch-user-icon:hover{background:var(--hover,rgba(127,127,127,.08))}.admin-dialog #admin-users-tab .ch-user-actions .btn.ch-user-icon:focus-visible{outline:2px solid var(--accent,#3487b5);outline-offset:2px}#admin-user-editor .ch-user-dialog{box-sizing:border-box;display:flex!important;flex-direction:column!important;width:min(520px,calc(100vw - 32px))!important;height:auto!important;min-height:0!important;max-height:calc(100dvh - 32px)!important;overflow:hidden!important;padding:0!important;margin:0!important}#admin-user-editor .ch-user-dialog>.admin-top{flex:0 0 auto!important;margin:0!important;padding:18px 20px 12px!important}#admin-user-editor #admin-user-credentials{flex:0 0 auto!important;padding:12px 20px!important}#admin-user-editor #admin-user-credentials .admin-fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin:0!important;padding:0!important}#admin-user-editor #admin-user-credentials .admin-fields label{min-width:0!important;margin:0!important}#admin-user-editor #admin-user-credentials .admin-fields input{width:100%!important;min-width:0!important;box-sizing:border-box!important}#admin-user-editor .ch-user-dialog>.admin-actions{flex:0 0 auto!important;display:flex!important;justify-content:flex-end!important;gap:10px!important;padding:12px 20px 18px!important;margin:0!important;border-top:1px solid var(--line,#d5dfe5)!important}#admin-user-editor.ch-user-rights-mode .ch-user-dialog{width:min(760px,calc(100vw - 32px))!important}#admin-user-editor #admin-user-permissions{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:hidden;padding:8px 16px 0!important}#admin-user-editor #admin-user-permissions[hidden]{display:none!important}#admin-user-editor #admin-user-permissions>h3{margin:0 0 12px!important;flex:0 0 auto}#admin-user-editor .ch-user-dialog #admin-rights{flex:1 1 auto;min-height:0;max-height:min(60dvh,540px)!important;overflow-y:auto!important;overflow-x:hidden!important;padding:0 3px 3px 0!important}#admin-user-editor #admin-rights .admin-location{overflow:hidden;border:1px solid var(--line,#d5dfe5);border-radius:10px;margin:0 0 10px;background:var(--surf,#fff)}#admin-user-editor #admin-rights .admin-location-head,#admin-user-editor #admin-rights .admin-block{box-sizing:border-box!important;display:grid!important;grid-template-columns:minmax(0,1fr) 230px!important;align-items:center!important;gap:12px!important;padding:5px 12px!important;min-height:43px!important;margin:0!important}#admin-user-editor #admin-rights .admin-location-head{background:var(--surface-alt,#f4f6f7);font-weight:700}#admin-user-editor #admin-rights .admin-block{border-top:1px solid var(--line,#d5dfe5)!important}#admin-user-editor #admin-rights select{box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;height:35px!important}#admin-user-editor #admin-rights .admin-block span{min-width:0;overflow-wrap:anywhere}@media(max-width:560px){#admin-user-editor #admin-user-credentials .admin-fields{grid-template-columns:1fr!important}#admin-user-editor #admin-rights .admin-location-head,#admin-user-editor #admin-rights .admin-block{grid-template-columns:minmax(0,1fr) minmax(135px,46%)!important;gap:7px!important;padding:6px 8px!important}}#module-create.module-settings-overlay{z-index:12000}#module-create .location-create-dialog{width:min(100%,520px);max-width:520px;height:auto!important;min-height:0!important;max-height:calc(100dvh - 28px);overflow:auto}#module-create .location-create-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 22px 20px}#module-create .location-create-form label{display:flex;flex-direction:column;gap:7px;min-width:0}#module-create .location-create-form input{width:100%;box-sizing:border-box}#module-create .location-create-form .module-editor-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin:4px 0 0}#module-create .location-create-error{grid-column:1/-1;color:var(--danger,#c73535);margin:0}#module-create .location-create-error[hidden]{display:none}@media(max-width:560px){#module-create .location-create-form{grid-template-columns:1fr;padding:16px}}.admin-dialog #admin-users-tab .ch-user-list{gap:6px}.admin-dialog #admin-users-tab .ch-user-row{padding:6px 12px;min-height:46px;box-sizing:border-box}.admin-dialog #admin-modules-tab .module-list{padding-bottom:32px!important;scroll-padding-bottom:32px;box-sizing:border-box}#gb-settings-modal .gb-tabs .btn[data-gb-tab][aria-selected=true],#gb-settings-modal .gb-tabs .btn[data-gb-tab][aria-selected=true]:hover,#gb-settings-modal .gb-tabs .btn[data-gb-tab][aria-selected=true]:active,#gb-settings-modal .gb-tabs .btn[data-gb-tab][aria-selected=true]:focus,#gb-settings-modal .gb-tabs .btn[data-gb-tab][aria-selected=true]:focus-visible{background:var(--on)!important;border-color:var(--on)!important;color:#fff!important;box-shadow:none}#gb-settings-modal .gb-tabs .btn[data-gb-tab][aria-selected=false]{background:#fff!important;color:var(--admin-text)!important;border-color:#cbd4d9!important}#gb-settings-modal .gb-tabs .btn[data-gb-tab][aria-selected=false]:hover{background:#f4f6f7!important}#gb-settings-modal .gb-tabs .btn[data-gb-tab]:focus-visible{outline:2px solid var(--ring);outline-offset:2px}#admin-user-editor .ch-admin-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:12px;border:1px solid var(--line,#d5dfe5);border-radius:10px;background:var(--surface-alt,#f4f6f7);cursor:pointer}#admin-user-editor .ch-admin-toggle span{display:flex;flex-direction:column;gap:4px}#admin-user-editor .ch-admin-toggle small{font-size:12px;opacity:.7}#admin-user-editor .ch-admin-toggle input{appearance:none;width:44px;height:25px;flex-shrink:0;border:0;border-radius:99px;background:#aab5b9;position:relative;cursor:pointer;transition:background .15s}#admin-user-editor .ch-admin-toggle input:checked{background:var(--accent,#3286b2)}#admin-user-editor .ch-admin-toggle input:before{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;background:#fff;border-radius:50%;transition:transform .15s}#admin-user-editor .ch-admin-toggle input:checked:before{transform:translate(19px)}#admin-user-editor .ch-admin-toggle input:focus-visible{outline:2px solid var(--accent,#3286b2);outline-offset:3px}#admin-user-editor #admin-rights[hidden]{display:none!important}#admin-user-editor .ch-admin-toggle{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;min-height:42px!important;padding:5px 0!important;margin:0 0 10px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-align:left!important}#admin-user-editor .ch-admin-toggle span{display:block!important;flex:1 1 auto!important;font:inherit!important;font-weight:500!important;line-height:1.4!important;text-align:left!important}#admin-user-editor .ch-admin-toggle input{margin:0!important;flex:0 0 44px!important}#admin-user-editor .ch-admin-toggle{padding-right:14px!important}#admin-user-editor #admin-rights.ch-admin-rights-locked select:disabled{opacity:.65;cursor:not-allowed;background:var(--surface-alt,#f4f6f7)!important}.camera-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:5px 12px 5px 14px}.camera-card-footer .camera-message{padding:0;flex:1;min-width:0}.camera-refresh-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text);cursor:pointer}.camera-refresh-button:hover:not(:disabled){background:var(--line)}.camera-refresh-button:disabled{opacity:.65;cursor:wait}.camera-refresh-button.is-refreshing svg{animation:camera-refresh-spin 1s linear infinite}@keyframes camera-refresh-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.camera-refresh-button.is-refreshing svg{animation:none}}.gb-game-row{grid-template-columns:minmax(0,1fr) auto!important}.gb-game-actions{display:flex;align-items:center;gap:6px}.gb-game-switch{margin-left:4px;flex-shrink:0}@media(max-width:600px){.gb-game-row{grid-template-columns:minmax(0,1fr) auto!important}}.gb-modal .gb-game-row .gb-game-switch{width:42px!important;height:24px!important;margin-left:0!important}.gb-modal .gb-game-row .gb-game-switch .gb-toggle-track{width:42px!important;height:24px!important;border-radius:99px!important}.gb-modal .gb-game-row .gb-game-switch .gb-toggle-track:before{width:18px!important;height:18px!important;top:3px!important;left:3px!important}.gb-modal .gb-game-row .gb-game-switch input:checked+.gb-toggle-track:before{transform:translate(18px)!important}.gb-modal .gb-game-row .gb-game-actions{gap:6px!important}#gb-settings-modal .gb-log-row .gb-log-event{font-weight:400;white-space:nowrap}#gb-settings-modal .gb-log-header,#gb-settings-modal .gb-log-row{grid-template-columns:165px minmax(175px,190px) minmax(175px,205px) minmax(180px,1fr);column-gap:14px;padding-inline:12px}#gb-settings-modal .gb-log-row .gb-log-event,#gb-settings-modal .gb-log-row .gb-log-computer{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#gb-settings-modal .gb-log-row .gb-log-event{font-weight:400}@media(max-width:850px){#gb-settings-modal .gb-log-list{overflow-x:auto}#gb-settings-modal .gb-log-header,#gb-settings-modal .gb-log-row{min-width:810px}}#gameblocker-section .gb-heating-info strong,.mt-table .mt-row-info strong{font-family:inherit;font-size:14px;font-weight:600;color:#213d55;line-height:1.4}.gb-computer-editor{padding:16px!important;border:1px solid var(--border,#cbd5e1);border-radius:12px;margin-top:12px}.gb-editor-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.gb-editor-title h5{margin:0}.gb-editor-general{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gb-editor-network-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0 10px}.gb-network-row{border:1px solid var(--border,#cbd5e1);border-radius:10px;padding:12px;margin-bottom:10px;background:#7f7f7f09}.gb-network-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.gb-network-fields{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:10px}.gb-network-fields .gb-field,.gb-editor-general .gb-field{min-width:0}.gb-network-fields input,.gb-editor-general input{width:100%;box-sizing:border-box}.gb-network-remove{color:#d33!important}.gb-network-add{margin-top:2px}.gb-editor-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid var(--border,#cbd5e1)}@media(max-width:650px){.gb-editor-general,.gb-network-fields{grid-template-columns:1fr}.gb-editor-title,.gb-editor-network-title{align-items:flex-start;flex-direction:column}.gb-editor-actions{flex-wrap:wrap}}#lessons-section .lessons-tabs .ch-card-action{min-height:var(--ch-card-action-height);height:var(--ch-card-action-height);padding:0 10px;border-radius:var(--ch-control-radius,8px);font-size:13px;font-weight:500;line-height:1.2}#lessons-section .lessons-tabs .ch-card-action.pri{font-weight:600}#gameblocker-section .gb-row-actions .gb-row-icon{box-sizing:border-box;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ch-control-radius,8px)}#gameblocker-section .gb-row-actions .gb-row-icon svg{display:block;flex:none}@media(max-width:600px){#lessons-section .lessons-tabs .ch-card-action{height:var(--ch-card-action-mobile-height);min-height:var(--ch-card-action-mobile-height)}#gameblocker-section .gb-row-actions .gb-row-icon{height:30px;min-height:30px}}.home-panel .module-message,.home-panel p.module-message,.home-panel .smart-summary.module-message{font-family:inherit;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:normal;color:#5b7893;opacity:1;margin:0;padding:0}.home-panel .module-message:empty{display:none}#gameblocker-section .gb-row-actions a.gb-row-icon{text-decoration:none;flex-shrink:0}#gameblocker-section .gb-row-actions a.gb-row-icon:link,#gameblocker-section .gb-row-actions a.gb-row-icon:visited{color:inherit;text-decoration:none;font:inherit}#gameblocker-section .gb-row-actions a.gb-row-icon svg{color:inherit;stroke:currentColor}
