:root{--acc:#7c3aed;--acc2:color-mix(in oklab, var(--acc), #000 18%);--acc-soft:color-mix(in oklab, var(--acc), #fff 93%);--acc-brd:color-mix(in oklab, var(--acc), #fff 78%);--ink:#181a2a;--dim:#8a8fa3;--line:#ebe9f5;--bg:#f3f3f8}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-wrap:pretty;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif}.boot-screen{background:var(--bg);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.boot-modal{border:1px solid var(--line);text-align:center;background:#fff;border-radius:20px;width:min(100%,320px);padding:28px 24px;box-shadow:0 20px 46px -28px #181a2a59}.boot-modal p{color:#4a4f62;margin:14px 0 0;font-size:13.5px;font-weight:700}.setup-screen{background:radial-gradient(900px 500px at 50% -12%, var(--acc-soft), transparent 65%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.setup-card{border:1px solid var(--line);background:#fff;border-radius:24px;width:min(100%,660px);overflow:hidden;box-shadow:0 26px 70px -38px #181a2a73}.setup-head{text-align:center;padding:31px 40px 10px}.setup-mark{background:var(--acc-soft);width:54px;height:54px;color:var(--acc);border-radius:17px;place-items:center;margin:0 auto 12px;font-size:29px;font-weight:800;display:grid}.setup-head h1{letter-spacing:-.03em;margin:0;font-size:22px}.setup-head p{color:var(--dim);margin:7px 0 0;font-size:13px;font-weight:600}.setup-steps{justify-content:center;gap:10px;padding:17px 30px 10px;display:flex}.setup-steps span{border:1px solid var(--line);width:27px;height:27px;color:var(--dim);background:#f7f6fb;border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid;position:relative}.setup-steps span.active{border-color:var(--acc);background:var(--acc);color:#fff}.setup-steps i{width:90px;color:var(--dim);text-align:center;font-size:10px;font-style:normal;font-weight:700;position:absolute;top:31px}.setup-content{gap:16px;padding:32px 40px 26px;display:grid}.setup-content h2{letter-spacing:-.025em;margin:0;font-size:18px}.setup-copy{color:var(--dim);margin:-8px 0 3px;font-size:13px;line-height:1.55}.setup-options{gap:10px;display:grid}.setup-option{border:1.5px solid var(--line);color:var(--ink);text-align:left;cursor:pointer;background:#fcfcfe;border-radius:14px;padding:15px 16px}.setup-option[data-active=true]{border-color:var(--acc);background:var(--acc-soft)}.setup-option b,.setup-option small{display:block}.setup-option b{font-size:14px}.setup-option small{color:var(--dim);margin-top:5px;font-size:12px;line-height:1.45}.setup-option em{color:var(--acc);text-transform:uppercase;margin-left:6px;font-size:10px;font-style:normal}.setup-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.setup-grid label{color:#3c4154;gap:7px;font-size:13px;font-weight:750;display:grid}.setup-grid label small{color:var(--dim);font-size:11px;font-weight:600}.setup-grid input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;border-radius:10px;outline:0;padding:11px 12px;font-weight:500}.setup-grid input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}.setup-full{grid-column:1/-1}.setup-test{flex-wrap:wrap;align-items:center;gap:13px;display:flex}.setup-test span{color:#b42318;font-size:12px;font-weight:700}.setup-test span[data-ok=true]{color:#087956}.setup-secondary,.setup-back,.setup-primary{font:inherit;cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:800}.setup-secondary{border:1px solid var(--line);color:var(--acc);background:#fff}.setup-primary{background:var(--acc);color:#fff;padding-inline:17px}.setup-primary:disabled{cursor:wait;opacity:.68}.setup-back{color:var(--dim);background:0 0}.setup-summary{border:1px solid var(--line);border-radius:14px;gap:0;margin:2px 0 0;display:grid;overflow:hidden}.setup-import{border:1px solid var(--acc-brd);background:var(--acc-soft);border-radius:12px;align-items:center;gap:11px;padding:13px;display:flex}.setup-import>span{border:2px solid var(--acc-brd);border-top-color:var(--acc);border-radius:50%;flex:none;width:17px;height:17px;animation:.8s linear infinite setupSpin}.setup-import>span.failed{border-color:#b42318 #fecaca #fecaca;animation:none}.setup-import b,.setup-import small{display:block}.setup-import b{font-size:12px}.setup-import small{color:var(--dim);margin-top:3px;font-size:11px;line-height:1.4}@keyframes setupSpin{to{transform:rotate(360deg)}}.setup-summary div{border-bottom:1px solid var(--line);justify-content:space-between;gap:18px;padding:13px 15px;font-size:13px;display:flex}.setup-summary div:last-child{border-bottom:0}.setup-summary dt{color:var(--dim);font-weight:700}.setup-summary dd{text-align:right;margin:0;font-weight:750}.setup-note{color:#4b5575;background:#f5f7ff;border-radius:12px;gap:9px;padding:12px;font-size:12px;line-height:1.45;display:flex}.setup-note span{color:var(--acc);font-weight:900}.setup-error{color:#b42318;margin:0;font-size:12px;font-weight:700}.setup-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:17px 40px 22px;display:flex}@media (width<=560px){.setup-screen{place-items:stretch stretch;padding:0}.setup-card{border:0;border-radius:0;min-height:100vh}.setup-head{padding:28px 24px 10px}.setup-content{padding:32px 24px 24px}.setup-footer{padding:16px 24px 22px}.setup-grid{grid-template-columns:1fr}.setup-full{grid-column:auto}}.boot-dots{justify-content:center;gap:7px;display:flex}.boot-dots i{background:var(--acc);border-radius:50%;width:9px;height:9px;animation:1s ease-in-out infinite bootDot}.boot-dots i:nth-child(2){animation-delay:.14s}.boot-dots i:nth-child(3){animation-delay:.28s}.last-action-skeleton{gap:6px;min-width:150px;display:grid}.last-action-skeleton i{background:linear-gradient(90deg,#f0eff5,#fafafe,#f0eff5) 0 0/200% 100%;border-radius:999px;height:9px;animation:1.1s linear infinite lastActionShimmer;display:block}.last-action-skeleton i:first-child{width:58%}.last-action-skeleton i:nth-child(2){width:82%;height:14px}.last-action-skeleton i:nth-child(3){width:70%}@keyframes lastActionShimmer{to{background-position:-200% 0}}@keyframes bootDot{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}button{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--acc);text-decoration:none}a:hover{color:var(--acc2);text-decoration:underline}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#dbdbe8;border-radius:8px}::-webkit-scrollbar-track{background:0 0}@keyframes omPulse{0%{opacity:.6;transform:scale(.9)}70%{opacity:0;transform:scale(2.2)}to{opacity:0;transform:scale(2.2)}}@keyframes omBlink{0%,to{opacity:1}50%{opacity:.32}}@keyframes omRing{0%{opacity:.55;transform:scale(.94)}70%{opacity:0;transform:scale(1.35)}to{opacity:0;transform:scale(1.35)}}@keyframes omIn{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:none}}@keyframes settingsTabFromRight{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}@keyframes settingsTabFromLeft{0%{opacity:0;transform:translate(-22px)}to{opacity:1;transform:translate(0)}}.settings-tab-panel--next{animation:.22s ease-out settingsTabFromRight}.settings-tab-panel--previous{animation:.22s ease-out settingsTabFromLeft}@media (prefers-reduced-motion:reduce){.settings-tab-panel--next,.settings-tab-panel--previous{animation:none}}@keyframes omSpin{to{transform:rotate(360deg)}}@media (width<=760px){html,body,#root{width:100%;max-width:100%;overflow-x:hidden!important}.mobile-dashboard-shell,.mobile-dashboard-content,.mobile-tab-enter{box-sizing:border-box;width:100%;max-width:100%;overflow-x:hidden}.mobile-dashboard-shell{touch-action:pan-y;overscroll-behavior-x:none}body{min-width:0;overflow-x:hidden}.dashboard-shell,.settings-content{gap:12px!important;width:100%!important;padding:12px!important}.dashboard-header{gap:12px!important;padding:12px 14px!important}.dashboard-header>div:first-child{width:auto!important}.dashboard-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}.settings-shell{--cfg-slide:28px;-ms-overflow-style:none;scrollbar-width:none;scrollbar-gutter:auto!important;transition:transform .24s cubic-bezier(.2,.7,.25,1),opacity .24s cubic-bezier(.2,.7,.25,1)!important;overflow-x:hidden!important}.settings-shell::-webkit-scrollbar{display:none}.settings-content{overflow-x:hidden;padding-top:70px!important;padding-bottom:calc(87px + env(safe-area-inset-bottom))!important}.settings-desktop-header{display:none!important}.settings-content>*{min-width:0;max-width:100%}.settings-mobile-topbar{z-index:90;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;align-items:center;gap:9px;min-height:63px;padding:10px 14px;transition:opacity .2s;display:flex;position:fixed;inset:0 0 auto;box-shadow:0 8px 20px -18px #181a2a52}.settings-mobile-topbar strong{letter-spacing:-.025em;font-size:16px}.settings-mobile-topbar>span{flex:1}.settings-mobile-topbar button{border:1px solid var(--line);color:#4a4f62;min-height:36px;font:inherit;white-space:nowrap;background:#fcfcfe;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:800}.settings-mobile-topbar button:last-child{background:linear-gradient(150deg, var(--acc), var(--acc2));color:#fff;box-shadow:0 8px 16px -11px var(--acc);border-color:#0000}.settings-content>div>span[style*="width: 1px"]{display:none}.settings-mobile-panel{padding:18px!important}.settings-mobile-heading{flex-direction:column;gap:14px!important;margin-bottom:14px!important}.settings-mobile-heading>div,.settings-mobile-heading>span{width:100%;max-width:100%!important}.settings-mobile-heading>.settings-mobile-count{background:#f5f5fa;border-radius:9px;align-self:flex-start;padding:6px 10px;width:auto!important}.settings-mobile-heading .x13{width:100%!important}.settings-mobile-floor-tab,.settings-data-head{display:none!important}.settings-data-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px!important;padding:15px!important}.settings-data-row>span{align-self:start;min-width:0!important}.settings-data-row>span:before{color:var(--dim);letter-spacing:.05em;margin-bottom:5px;font-size:9.5px;font-weight:800;display:block}.settings-data-row>span:first-child{grid-column:1/-1;width:fit-content;min-width:52px!important}.settings-data-row>span:nth-child(2){grid-column:1/-1}.settings-data-row>span:nth-child(2):before{content:"ETICHETTA"}.settings-sensors-row>span:first-child:before{content:"ZONA"}.settings-sensors-row>span:nth-child(3):before{content:"TIPO"}.settings-sensors-row>span:nth-child(4):before{content:"PIANO"}.settings-sensors-row>span:nth-child(5):before{content:"PARTIZIONE"}.settings-sensors-row>span:nth-child(6):before{content:"ALLARME"}.settings-sensors-row>span:nth-child(7):before{content:"STATO"}.settings-sensors-row>span:nth-child(8):before{content:"ESCLUSA"}.settings-sensors-row>span:nth-child(9):before{content:"NASCOSTA"}.settings-sensors-row{background:#fcfcfe;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:13px!important;padding:16px!important}.settings-sensors-row>span:first-child{grid-column:1;align-self:center;min-width:0!important}.settings-sensors-row>span:first-child:before{display:none}.settings-sensors-row>span:nth-child(2){grid-column:2/-1;align-self:end}.settings-sensors-row>span:nth-child(3),.settings-sensors-row>span:nth-child(4),.settings-sensors-row>span:nth-child(5),.settings-sensors-row>span:nth-child(6){grid-column:1/-1}.settings-sensors-row>span:nth-child(7),.settings-sensors-row>span:nth-child(8),.settings-sensors-row>span:nth-child(9){flex-direction:column;gap:7px;justify-content:flex-start!important;align-items:flex-start!important}.settings-sensors-row>span:nth-child(7):before,.settings-sensors-row>span:nth-child(8):before,.settings-sensors-row>span:nth-child(9):before{width:100%}.settings-sensors-row>span:nth-child(7){grid-column:1}.settings-sensors-row>span:nth-child(8){grid-column:2}.settings-sensors-row>span:nth-child(9){grid-column:3}.settings-outputs-row{background:#fcfcfe;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:13px!important;padding:16px!important}.settings-outputs-row>span:first-child{grid-column:1;align-self:center;min-width:0!important}.settings-outputs-row>span:first-child:before{display:none}.settings-outputs-row>span:nth-child(2){grid-column:2/-1}.settings-outputs-row>span:nth-child(3){grid-column:1/-1}.settings-outputs-row>span:nth-child(4),.settings-outputs-row>span:nth-child(5),.settings-outputs-row>span:nth-child(6){align-self:start}.settings-outputs-row>span:nth-child(4){grid-column:1}.settings-outputs-row>span:nth-child(5){grid-column:2}.settings-outputs-row>span:nth-child(6){grid-column:3}.settings-partitions-row{background:#fcfcfe;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:13px!important;padding:16px!important}.settings-partitions-row>span:first-child{grid-column:1;align-self:center;width:54px;min-width:0!important}.settings-partitions-row>span:first-child:before{display:none}.settings-partitions-row>span:nth-child(2){grid-column:2}.settings-partitions-row>span:nth-child(3){grid-column:1/-1}.settings-partitions-row>span:nth-child(4){grid-column:1}.settings-partitions-row>span:nth-child(5){grid-column:2}.settings-partitions-row input,.settings-partitions-row>span:nth-child(3)>button{width:100%!important}.settings-partition-sensors-button{box-sizing:border-box;white-space:nowrap;justify-content:space-between;width:100%;min-height:48px;grid-column:1!important;justify-self:stretch!important}.settings-partition-sensors-button:before{content:"SENSORI";letter-spacing:.05em;font-size:9.5px;font-weight:800}.settings-partition-state{box-sizing:border-box;text-align:left;flex-direction:column;justify-content:center;gap:5px;width:100%;min-height:48px;display:flex;color:#8a8fa3!important;background:0 0!important;border-radius:0!important;grid-column:2!important;justify-self:stretch!important;align-items:flex-start!important;padding:0!important}.settings-partition-state>span,.settings-output-state>span{border-radius:999px;padding:6px 11px;font-size:12px;font-weight:700;display:inline-block}.settings-outputs-row>span:nth-child(4){flex-direction:column;justify-self:stretch;align-items:flex-start;gap:5px;display:flex;background:0 0!important;border-radius:0!important;padding:0!important}.settings-outputs-row>span:nth-child(4):before{margin-bottom:0!important}.settings-partition-add-backdrop{background:#181a2a47;z-index:89!important;position:fixed!important;inset:0!important}.settings-partition-add-modal{max-height:min(560px,100dvh - 150px);overflow-y:auto;transform:translateY(-50%);z-index:90!important;border-radius:16px!important;width:auto!important;padding:16px!important;position:fixed!important;top:50dvh!important;left:16px!important;right:16px!important;box-shadow:0 26px 64px -22px #181a2a6b!important}.settings-scenarios-panel .settings-mobile-heading>span{background:#f5f5fa;border-radius:9px;align-self:flex-start;width:auto;padding:6px 10px}.settings-scenario-card{width:100%;gap:12px!important;padding:15px!important}.settings-sensors-row>span:nth-child(7) button,.settings-sensors-row>span:nth-child(8) button{margin-left:0}.settings-sensors-row input,.settings-sensors-row>span:nth-child(3)>button,.settings-sensors-row>span:nth-child(4)>button,.settings-sensors-row>span:nth-child(5)>button{width:100%!important}.settings-outputs-row>span:first-child:before{content:"USCITA"}.settings-outputs-row>span:nth-child(3):before{content:"TIPO"}.settings-outputs-row>span:nth-child(4):before{content:"STATO"}.settings-outputs-row>span:nth-child(5):before{content:"SENZA PIN"}.settings-outputs-row>span:nth-child(6):before{content:"DA REMOTO"}.settings-partitions-row>span:first-child:before{content:"PARTIZIONE"}.settings-partitions-row>span:nth-child(3):before{content:"PIANO"}.settings-partitions-row>span:nth-child(4):before{content:"SENSORI"}.settings-partitions-row>span:nth-child(5):before{content:"STATO"}.settings-code-users{padding:18px!important}.settings-code-user-row{flex-wrap:wrap;align-items:center!important;gap:10px!important;padding:14px!important}.settings-code-info{flex:calc(100% - 50px)!important}.settings-code-master,.settings-code-state{margin-left:44px}.settings-code-actions{box-sizing:border-box;flex-wrap:nowrap;flex:0 0 100%!important;width:100%!important;max-width:100%!important;margin-left:0!important}.settings-code-actions button{min-height:40px;flex:1 1 0!important;min-width:0!important;padding-left:8px!important;padding-right:8px!important}.settings-content [style*=min-width]{min-width:0!important}.settings-content [style*="width: 250px"],.settings-content [style*="width: 260px"],.settings-content [style*="width: 280px"],.settings-content [style*="width: 300px"],.settings-content [style*="width: 340px"]{width:100%!important;max-width:100%!important}.settings-content [style*="grid-template-columns: 1fr 300px"],.settings-content [style*="grid-template-columns: 1fr 340px"],.settings-content [style*="grid-template-columns: repeat(3"],.settings-content [style*="grid-template-columns: repeat(2"],.settings-content [style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:minmax(0,1fr)!important}.settings-content input,.settings-content select,.settings-content textarea{max-width:100%!important}.settings-content>header{padding:12px 14px!important}.desktop-dashboard{display:none}.mobile-dashboard-shell{min-height:100dvh;padding:0 14px calc(87px + env(safe-area-inset-bottom));display:block}.mobile-dashboard-header{padding:calc(14px + env(safe-area-inset-top)) 16px 14px;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff7;align-items:center;gap:10px;margin:0 -14px 18px;display:flex;box-shadow:0 7px 18px -18px #181a2a5c}.mobile-push-tests{flex-wrap:wrap;order:2;align-items:center;gap:6px;width:100%;padding-top:3px;display:flex}.mobile-push-tests>span{flex:1;justify-content:flex-end;gap:5px;display:flex}.mobile-push-tests button{border:1px solid var(--line);color:#596075;min-height:29px;font:inherit;background:#fff;border-radius:9px;padding:5px 8px;font-size:9.5px;font-weight:800}.mobile-push-tests .mobile-push-enable{color:var(--acc2);border-color:var(--acc-brd);background:var(--acc-soft)}.mobile-push-tests .mobile-push-alarm{color:#b91c1c;background:#fff5f5;border-color:#fecaca}.pwa-install-backdrop{z-index:120;padding:20px 14px calc(28px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#181a2a59;place-items:end center;display:grid;position:fixed;inset:0}.pwa-install-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:22px;width:min(100%,430px);padding:22px;animation:.2s ease-out omIn;box-shadow:0 28px 70px -28px #0000008c}.pwa-install-card .mobile-brand-mark{margin:0 auto 11px}.pwa-install-card h2{letter-spacing:-.035em;margin:0;font-size:19px}.pwa-install-card p{color:var(--dim);margin:8px 0 0;font-size:12.5px;font-weight:600;line-height:1.45}.pwa-install-card .pwa-install-ios{color:#3c4154}.pwa-install-card>div{gap:9px;margin-top:18px;display:flex}.pwa-install-card button{border:1px solid var(--line);color:#4a4f62;min-height:42px;font:inherit;background:#fcfcfe;border-radius:12px;flex:1;font-size:12px;font-weight:800}.pwa-install-card button:first-child{background:linear-gradient(150deg, var(--acc), var(--acc2));color:#fff;box-shadow:0 8px 18px -11px var(--acc);border-color:#0000}.pwa-install-card .pwa-push-error{color:#b91c1c}.sensor-modal-backdrop{padding:max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom))!important;place-items:center!important}.sensor-modal-card{box-sizing:border-box;overscroll-behavior:contain;overflow-y:auto;border-radius:18px!important;width:min(100%,470px)!important;max-height:calc(100dvh - 28px)!important;padding:18px!important}.mobile-brand-mark{color:#fff;background:linear-gradient(150deg, var(--acc), var(--acc2));width:39px;height:39px;box-shadow:0 8px 18px -11px var(--acc);border-radius:13px;place-items:center;display:grid}.mobile-brand-mark svg{width:23px;height:23px}.mobile-brand-copy{gap:1px;display:grid}.mobile-brand-copy b{letter-spacing:-.035em;font-size:19px}.mobile-brand-copy small{color:var(--dim);font-size:10px;font-weight:700}.mobile-header-live{color:#0f7757;align-items:center;gap:6px;margin-left:auto;font-size:11px;font-weight:800;display:flex}.mobile-header-live i{background:#10b981;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #dff9ee}.mobile-dashboard-viewport{width:100%;max-width:560px;margin:0 auto;position:relative;overflow:hidden}.mobile-dashboard-content{will-change:transform;max-width:560px;margin:0 auto}.mobile-dashboard-preview{background:var(--bg);will-change:transform;pointer-events:none;width:100%;max-width:560px;min-height:100%;position:absolute;inset:0 auto auto 0}.mobile-dashboard-preview-next{transform:translate(100%)}.mobile-dashboard-preview-previous{transform:translate(-100%)}.mobile-tab-enter{animation:.24s cubic-bezier(.2,.7,.25,1) both mobileTabEnter}.mobile-tab-enter-next{animation-name:mobileTabEnterNext}.mobile-tab-enter-previous{animation-name:mobileTabEnterPrevious}@keyframes mobileTabEnterNext{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes mobileTabEnterPrevious{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}}.mobile-header-info{border:1px solid var(--line);width:34px;height:34px;color:var(--acc);cursor:pointer;background:#fff;border-radius:11px;flex:none;justify-content:center;align-items:center;margin-left:auto;padding:0;line-height:0;display:inline-flex}.mobile-info-backdrop{z-index:160;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#181a2a6b;align-items:flex-end;display:flex;position:fixed;inset:0}.mobile-info-sheet{box-sizing:border-box;width:100%;max-height:82dvh;padding:18px 18px calc(18px + env(safe-area-inset-bottom));background:#fff;border-radius:22px 22px 0 0;animation:.18s ease-out omIn;overflow-y:auto}.mobile-info-sheet header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.mobile-info-sheet header h2{letter-spacing:-.02em;margin:0;font-size:17px;font-weight:800}.mobile-info-sheet header button{border:1px solid var(--line);color:#4a4f62;cursor:pointer;background:#fff;border-radius:10px;place-items:center;width:32px;height:32px;display:grid}.mobile-info-last{border-radius:14px;margin-bottom:14px;padding:13px 15px}.mobile-info-last small{letter-spacing:.05em;opacity:.85;font-size:10.5px;font-weight:800;display:block}.mobile-info-last b{letter-spacing:-.02em;margin-top:3px;font-size:16px;font-weight:800;display:block}.mobile-info-last p{opacity:.85;margin:3px 0 0;font-size:12px;font-weight:600}.mobile-info-sheet ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.mobile-info-sheet li{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;display:flex}.mobile-info-sheet li b{font-size:13px;font-weight:700;display:block}.mobile-info-sheet li small{color:var(--dim);font-size:11.5px;font-weight:600;display:block}.mobile-info-sheet li time{color:var(--dim);white-space:nowrap;flex:none;font-size:11px;font-weight:700}.mobile-info-empty{color:var(--dim);justify-content:center;font-size:12.5px;font-weight:600}.mobile-info-sheet footer{color:var(--dim);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:11.5px;font-weight:600;display:flex}.mobile-info-sheet footer button{border:1px solid var(--line);color:#4a4f62;font:inherit;cursor:pointer;background:#fcfcfe;border-radius:11px;align-items:center;gap:7px;padding:9px 14px;font-weight:700;display:inline-flex}.mobile-shield.is-busy{animation:1s ease-in-out infinite omPulse}@media (width<=760px){.mobile-last-action,.mobile-card{border:1px solid var(--line);background:#fff;border-radius:20px;box-shadow:0 1px 2px #181a2a0d}.mobile-last-action{align-items:center;gap:12px;margin-bottom:12px;padding:15px;display:flex}.mobile-last-action>span{border-radius:13px;flex:none;place-items:center;width:43px;height:43px;display:grid}.mobile-last-action div{flex:1;min-width:0}.mobile-last-action small,.mobile-last-action p,.mobile-list p{color:var(--dim);margin:0;font-size:11px;font-weight:700;display:block}.mobile-last-action b{margin:2px 0;font-size:16px;display:block}.mobile-last-action button{color:var(--acc);background:0 0;border:0;padding:8px}.mobile-plant-status{border:1px solid var(--line);background:#fff;border-radius:20px;margin-bottom:12px;padding:18px 15px;box-shadow:0 1px 2px #181a2a0d}.mobile-plant-title{color:var(--ink);text-align:center;letter-spacing:-.035em;margin-bottom:13px;font-size:20px;font-weight:800}.mobile-plant-details.mobile-plant-details{flex-direction:column;align-items:center;gap:10px;display:flex}.mobile-plant-sub{text-align:center;font-size:13.5px;font-weight:700;line-height:1.35}.mobile-plant-details{grid-template-columns:1fr 64px 1fr;align-items:center;gap:9px;display:grid}.mobile-plant-meta{min-width:0}.mobile-plant-meta:first-child{text-align:right}.mobile-plant-meta small,.mobile-plant-meta b,.mobile-plant-meta em{display:block}.mobile-plant-meta small{color:var(--dim);letter-spacing:.05em;font-size:9.5px;font-weight:800}.mobile-plant-meta b{margin-top:3px;font-size:11px;line-height:1.25}.mobile-plant-meta em{color:var(--dim);margin-top:2px;font-size:10px;font-style:normal;font-weight:700}.mobile-shield{border-radius:19px;place-items:center;width:64px;height:64px;display:grid}.mobile-shield svg{width:39px;height:39px}.mobile-live{color:#10b981}.mobile-keypad{padding:14px}.mobile-mode-actions{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;display:grid}.mobile-mode-btn.is-active{background:linear-gradient(150deg, var(--acc), var(--acc2));color:#fff;border-color:#0000}.mobile-mode-btn.is-active>span{color:#fff;background:#ffffff2e}.mobile-mode-btn>span{background:var(--acc-soft);color:var(--acc)}.mobile-mode-actions button{border:1px solid var(--line);color:#4a4f62;background:#fcfcfe;border-radius:14px;grid-template-columns:1fr;align-content:center;place-items:center;gap:2px;min-height:76px;display:grid}.mobile-mode-actions button>span{border-radius:9px;place-items:center;width:27px;height:27px;display:grid}.mobile-mode-actions button b{font-size:11.5px;line-height:1.1}.mobile-mode-actions button small{color:var(--dim);white-space:nowrap;font-size:8.5px;font-weight:700;line-height:1}.mobile-mode-total{border-color:var(--acc-brd)!important;background:var(--acc-soft)!important;color:var(--acc2)!important}.mobile-mode-total>span{background:var(--acc);color:#fff}.mobile-mode-total small{opacity:.68;color:var(--acc2)!important}.mobile-mode-partial{color:#b45309!important;background:#fffaf1!important;border-color:#fde9be!important}.mobile-mode-partial>span{color:#d97706;background:#fff0d3}.mobile-mode-partial small{opacity:.7;color:#b45309!important}.mobile-mode-disarm>span{color:#596075;background:#f1f0f6}.mobile-pin{text-align:center;border:1px solid var(--line);min-height:46px;color:var(--dim);background:#fbfbfe;border-radius:12px;justify-content:center;align-items:center;margin:14px 0;padding:0 13px;font-size:11px;font-weight:700;display:flex}.mobile-pin>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mobile-pin b{color:var(--acc);letter-spacing:.28em;font-size:19px}.mobile-key-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.mobile-key-grid button{border:1px solid var(--line);background:#fff;border-radius:13px;height:52px;font-size:18px;font-weight:800}.mobile-key-grid .mobile-key-delete{color:#596075;background:#fcfcfe;grid-area:1/4}.mobile-key-grid .mobile-key-lock{background:linear-gradient(150deg, var(--acc), var(--acc2));color:#fff;grid-area:2/4/span 3;height:auto}.mobile-card{padding:16px}.mobile-card h1{letter-spacing:-.03em;margin:0;font-size:19px}.mobile-section-title{color:var(--dim);margin:18px 0 2px;font-size:13px}.mobile-list p{margin:4px 0 15px}.mobile-floor-tabs{gap:7px;margin:14px 0;display:flex;overflow-x:auto}.mobile-floor-tabs button{white-space:nowrap;border:1px solid;border-radius:11px;padding:9px 12px;font-size:12px;font-weight:800}.mobile-plan{aspect-ratio:1;border-radius:14px;position:relative;overflow:hidden}.mobile-plan>img,.mobile-plan>div{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.mobile-map-pin{z-index:2;border:2px solid;border-radius:50%;place-items:center;width:29px;height:29px;padding:0;line-height:1;display:grid;position:absolute;transform:translate(-50%,-50%)}.mobile-list-row{text-align:left;background:0 0;border:0;border-bottom:1px solid #f1f0f6;align-items:center;gap:10px;width:100%;padding:11px 0;display:flex}.mobile-list-row>span:first-child{border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}.mobile-list-row>span:nth-child(2){flex:1;min-width:0}.mobile-list-row b,.mobile-list-row small{display:block}.mobile-list-row b{font-size:13px}.mobile-list-row small{color:var(--dim);margin-top:2px;font-size:11px;font-weight:700}.mobile-list-row em{border-radius:8px;padding:5px 8px;font-size:10px;font-style:normal;font-weight:800}.mobile-ok{color:#0f7757;background:#ecfdf5;border-radius:13px;padding:15px;font-size:13px;font-weight:700}.mobile-event{border-bottom:1px solid #f1f0f6;align-items:flex-start;gap:10px;padding:12px 0;display:flex}.mobile-event i{border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.mobile-event div{flex:1;min-width:0}.mobile-event b,.mobile-event small{display:block}.mobile-event b{font-size:13px}.mobile-event small,.mobile-event time{color:var(--dim);margin-top:2px;font-size:10.5px;font-weight:700}.mobile-event time{text-align:right;flex:none}.mobile-bottom-nav{z-index:81;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;justify-content:space-around;padding:8px 12px 20px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-settings-nav{z-index:83;transition:opacity .2s}.mobile-bottom-nav button{min-width:52px;color:var(--dim);background:0 0;border:0;place-items:center;gap:3px;padding:5px 4px;font-size:10px;font-weight:800;display:grid}.mobile-bottom-nav button.active{color:var(--acc)}}@media (width<=760px) and (display-mode:standalone){html,body{overscroll-behavior-x:none;width:100%;height:100%;overflow:hidden!important}#root{-webkit-overflow-scrolling:touch;width:100%;height:100%;overflow-y:auto;overflow-x:hidden!important}}@media (width>=761px){.mobile-dashboard-shell,.mobile-settings-nav,.settings-mobile-topbar{display:none}}.x1:hover{background:var(--acc-soft)!important;border-color:var(--acc-brd)!important}.x2:hover{border-color:var(--acc-brd)!important}.x3:hover{border-color:var(--acc-brd)!important;background:#fafafe!important}.x4:hover{filter:brightness(1.07)!important}.x5:hover{border-color:var(--acc)!important}.x6:hover{background:#f8f8fc!important;border-color:#d9d9e8!important}.x7:hover{background:#f6f6fb!important}.x8:hover{filter:brightness(1.08)!important}.x9:hover{filter:brightness(1.04)!important}.x10:hover{filter:brightness(1.3)!important}.x11:hover{background:#181a2a0f!important}.x12:hover{border-color:#d9d9e8!important}.x13:focus-within{border-color:var(--acc-brd)!important}.x14:focus{border-color:var(--acc)!important}.x15:hover{background:var(--acc-soft)!important}.x16:hover{background:#fef2f2!important}.x17:focus{border-color:var(--acc-brd)!important}.x18:hover{border-color:var(--acc-brd)!important;background:var(--acc-soft)!important;color:var(--acc2)!important}.x19:hover{background:#fef2f2!important;border-color:#fbd5d5!important}.x20:hover{background:var(--acc-soft)!important;border-color:var(--acc)!important}.x21:hover{background:#fef2f2!important;border-color:#fbd5d5!important}.arm-key,.pad-key,.press-key{transition:transform 90ms,filter .12s,box-shadow .16s}.arm-key:active,.pad-key:active,.press-key:active:not([disabled]){filter:brightness(.97);transform:scale(.965)}.armed-map-ring{pointer-events:none;border:2px solid #f59e0b;border-radius:50%;animation:1.45s ease-out infinite armedMapRing;position:absolute;inset:-7px}@keyframes armedMapRing{0%{opacity:.95;transform:scale(.78)}72%,to{opacity:0;transform:scale(1.18)}}.active-partitions-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:20px;box-shadow:0 1px 2px #181a2a0d}.active-partitions-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.active-partitions-head h2{color:var(--ink);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.active-partitions-head p{color:var(--dim);margin:3px 0 0;font-size:11px;font-weight:600}.active-partitions-head>b{color:#b45309;white-space:nowrap;background:#fff7ed;border-radius:8px;padding:5px 8px;font-size:10px}.active-partition{border-top:1px solid #eeeff5}.active-partition>button{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:11px 0;display:flex}.active-partition>button>span{flex:1;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:750;display:flex}.active-partition>button i{background:#f59e0b;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 3px #fff7ed}.active-partition>button em{color:var(--dim);white-space:nowrap;font-size:10px;font-style:normal;font-weight:700}.active-partition>button strong{color:var(--acc);font-size:16px;line-height:1}.active-partition-sensors{gap:6px;padding:0 0 12px 15px;display:grid}.active-partition-sensors>div{background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.active-partition-sensors span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:700;overflow:hidden}.active-partition-sensors b{color:#b45309;font-size:10px}.active-partition-sensors b.armed-tag{color:#fff;border-radius:6px;padding:4px 6px}.active-partition-sensors p{color:var(--dim);margin:0;font-size:11px;font-weight:600}@media (width<=760px){.active-partitions-card{margin-top:12px;padding:16px}.mobile-dashboard-content>.active-partitions-card:last-child{margin-bottom:22px}}.armed-sensors-backdrop{z-index:150;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#181a2a6b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.armed-sensors-card{box-sizing:border-box;background:#fff;border-radius:22px;width:min(100%,480px);max-height:calc(100dvh - 48px);animation:.18s ease-out omIn;overflow:hidden;box-shadow:0 40px 90px -30px #181a2a80}.armed-sensors-track{width:200%;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex}.armed-sensors-pane{box-sizing:border-box;width:50%;max-height:calc(100dvh - 48px);padding:24px;overflow-y:auto}.armed-sensors-card header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.armed-sensors-card small{color:var(--dim);letter-spacing:.06em;font-size:11px;font-weight:800}.armed-sensors-card h2{color:var(--ink);letter-spacing:-.03em;margin:4px 0 3px;font-size:21px}.armed-sensors-card p{color:var(--dim);margin:0;font-size:12px;font-weight:650}.armed-sensors-card header>button{border:1px solid var(--line);width:34px;height:34px;color:var(--dim);cursor:pointer;background:#fff;border-radius:10px;flex:none;font-size:23px;line-height:1}.armed-sensors-card .armed-sensors-back{vertical-align:middle;width:30px;height:30px;color:var(--acc);place-items:center;margin-right:8px;display:inline-grid}.armed-sensors-card .armed-sensors-back svg{width:16px;height:16px}.armed-sensors-list>button>strong svg{width:15px;height:15px;display:block}.armed-sensors-list{gap:8px;display:grid}.armed-sensors-list>button{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:#fcfcfe;border-radius:12px;align-items:center;gap:10px;padding:11px 12px;display:flex}.armed-sensors-list>button>span{flex:1;min-width:0}.armed-sensors-list b,.armed-sensors-list small{display:block}.armed-sensors-list b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.armed-sensors-list small{margin-top:2px;font-size:10px}.armed-sensors-list em,.armed-sensor-status b{color:#fff;white-space:nowrap;border-radius:8px;padding:5px 8px;font-size:10px;font-style:normal;font-weight:800}.armed-sensors-list strong{color:var(--acc);font-size:19px}.armed-sensors-list>p{border:1px dashed var(--line);text-align:center;border-radius:12px;padding:16px}.armed-sensor-status{border:1px solid var(--line);background:#fcfcfe;border-radius:13px;justify-content:space-between;align-items:center;padding:13px;display:flex}.armed-sensor-status span{color:var(--dim);font-size:11px;font-weight:800}.armed-sensors-pane h3{margin:20px 0 9px;font-size:14px}.armed-sensor-history{gap:7px;display:grid}.armed-sensor-history>div{border-left:3px solid var(--acc);background:#f8f7fe;border-radius:8px;justify-content:space-between;gap:10px;padding:10px 12px;display:flex}.armed-sensor-history b{font-size:12px}.armed-sensor-history span{color:var(--dim);font-size:10px;font-weight:700}.armed-sensor-history p{border:1px dashed var(--line);text-align:center;border-radius:12px;padding:13px}@media (width<=760px){.armed-sensors-backdrop{padding:max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom))}.armed-sensors-card{border-radius:18px;max-height:calc(100dvh - 28px);padding:18px}}.release-notes-backdrop{z-index:170;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#181a2a6b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.release-notes-card{box-sizing:border-box;background:#fff;border-radius:22px;flex-direction:column;width:min(100%,460px);max-height:calc(100dvh - 48px);padding:24px;animation:.18s ease-out omIn;display:flex;box-shadow:0 40px 90px -30px #181a2a80}.release-notes-card>header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.release-notes-card>header small{color:var(--dim);letter-spacing:.06em;font-size:11px;font-weight:800}.release-notes-card>header h2{color:var(--ink);letter-spacing:-.02em;margin:4px 0 2px;font-size:20px;font-weight:800}.release-notes-card>header time{color:var(--dim);font-size:12px}.release-notes-card>header button{border:1px solid var(--line);width:34px;height:34px;color:var(--dim);cursor:pointer;background:#fff;border-radius:11px;flex:none;font-size:19px;line-height:1}.release-notes-content{min-height:0;overflow-y:auto}.release-notes-content h3{color:var(--ink);letter-spacing:.02em;margin:14px 0 6px;font-size:13px;font-weight:800}.release-notes-content section:first-child h3{margin-top:0}.release-notes-content ul{gap:6px;margin:0;padding-left:18px;display:grid}.release-notes-content li{color:var(--ink);font-size:13.5px;line-height:1.45}.release-notes-empty{color:var(--dim);margin:0;font-size:13.5px}.release-notes-card>footer{margin-top:18px}.release-notes-card>footer button{background:var(--acc);color:#fff;cursor:pointer;border:0;border-radius:13px;width:100%;padding:12px;font-size:14px;font-weight:800}
