.house-page{--hs-ink:#05091a;--hs-surface:#0c1229;--hs-line:#2d3861;--hs-caption:#9fb2e5;--hs-accent:#dabdff;--hs-text:#f2f3ff;--hs-muted:#b3bfdc;gap:22px}.house-workbench{display:grid;grid-template-columns:minmax(0,1fr) minmax(252px,29%);border:1px solid #2b385e;border-radius:27px;isolation:isolate;overflow:hidden;background:var(--hs-ink);box-shadow:0 28px 68px #04061166;color:var(--hs-text);min-width:0}.house-viewer{display:flex;flex-direction:column;min-width:0;background:radial-gradient(ellipse at 43% 50%,#18234c 0,#0b112b 45%,#060a1b 80%)}.house-top,.house-bottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 24px}.house-top h2,.house-index h2,.house-room-detail h2{font-size:clamp(1.3rem,2.45vw,1.88rem);line-height:1.13;margin:5px 0 0;font-weight:660;letter-spacing:-.046em;color:var(--hs-text)}.house-overline{display:inline-flex;align-items:center;gap:8px;color:#a5bfef;font-size:.66rem;letter-spacing:.17em;font-weight:750;line-height:1.2}.house-overline i{width:7px;height:7px;border-radius:50%;background:#9fbeff;box-shadow:0 0 14px #87a5ff}.house-count{display:flex;align-items:center;gap:8px;white-space:nowrap;color:#d4dbf4;border:1px solid #3f4a76;border-radius:999px;padding:7px 11px;font-size:.74rem;background:#151c39}.house-count span{color:#bbadfb}.house-canvas{display:grid;place-items:center;min-height:330px;position:relative;overflow:hidden;flex:1;background:repeating-linear-gradient(transparent 0 29px,#a1b8f008 29px 30px),repeating-linear-gradient(90deg,transparent 0 29px,#a1b8f008 29px 30px)}.house-canvas:before,.house-canvas:after{content:"";pointer-events:none;position:absolute;inset:9px 11px;background:linear-gradient(#798bc8,#798bc8) left top/15px 1px,linear-gradient(#798bc8,#798bc8) left top/1px 15px,linear-gradient(#798bc8,#798bc8) right bottom/15px 1px,linear-gradient(#798bc8,#798bc8) right bottom/1px 15px;background-repeat:no-repeat;opacity:.52}.house-canvas:after{transform:scaleX(-1)}.house-scene{width:100%;height:auto;max-height:625px;min-height:275px;vertical-align:middle;display:block;cursor:grab;touch-action:pan-y;user-select:none}.house-scene-drag{cursor:grabbing}.house-svg-level{fill:#e0e6ff;font-family:ui-monospace,monospace;font-size:11px;font-weight:650;letter-spacing:.035em}.house-pin{cursor:pointer;outline:none}.house-pin-outline{fill:#1b2759;stroke:#e4dbff;stroke-width:1.25;transition:fill .2s,stroke-width .2s}.house-pin:hover .house-pin-outline,.house-pin:focus-visible .house-pin-outline,.house-pin-active .house-pin-outline{stroke-width:3;fill:#6562ae}.house-bottom{padding-top:14px;padding-bottom:18px}.house-canvas-hint{display:flex;align-items:center;gap:8px;font-size:.76rem;color:#adbde0}.house-toolbar{display:flex;gap:5px}.house-toolbar .icon-button{min-width:37px;height:37px;width:37px;border:1px solid #3b4974;color:#e3e9ff;background:#121b3a;border-radius:11px}.house-toolbar .icon-button:hover{background:#252c58;border-color:#8f8ee9}.house-index{border-left:1px solid #273355;background:linear-gradient(160deg,#111936,#0b1126 72%);min-width:0;padding:20px 15px 16px}.house-index-head{padding:3px 6px 17px}.house-level-group{margin-top:7px}.house-level{display:grid;grid-template-columns:40px minmax(0,1fr) 16px;gap:11px;align-items:center;width:100%;text-align:left;color:#f0f2ff;background:#121a36;border:1px solid #273555;border-radius:14px;padding:9px;min-height:58px;transition:background .2s,border-color .2s;cursor:pointer}.house-level:hover{background:#1c274e;border-color:#6171ad}.house-level[aria-pressed=true]{background:linear-gradient(115deg,#29305c,#242449);border-color:#837ccc}.house-level-half .house-code{color:#b6efff;border-color:#4b6d9a;background:#203b61}.house-level-half[aria-pressed=true]{border-color:#65a8d2}.house-code{background:#222c58;color:#c4ceff;display:grid;place-items:center;border:1px solid #414d82;border-radius:10px;min-height:39px;font-family:ui-monospace,monospace;font-size:.9rem;font-weight:700}.house-level strong,.house-level small{display:block;line-height:1.3;overflow-wrap:anywhere}.house-level strong{font-size:.87rem;font-weight:650}.house-level small{font-size:.67rem;color:#b9c4e3;margin-top:3px}.house-level>svg:last-child{color:#a5b5ec;justify-self:end}.house-room-list{display:flex;flex-wrap:wrap;gap:5px;padding:9px 1px 4px}.house-room{display:inline-flex;min-height:36px;align-items:center;gap:6px;max-width:100%;padding:6px 9px;border:1px solid #304065;background:#151d38;color:#e5eaff;border-radius:9px;font:inherit;font-size:.73rem;text-align:left;cursor:pointer}.house-room svg{flex:none;color:#abbeff}.house-room:hover,.house-room[aria-pressed=true]{background:#352c60;border-color:#a093f0;color:#fff}.house-workbench button:focus-visible,.house-room-detail button:focus-visible{outline:2px solid #b6c0ff;outline-offset:2px}.house-room-detail,.house-empty{border:1px solid #303a66;border-radius:22px;background:linear-gradient(135deg,#121b37,#11152d 67%);color:var(--hs-text);padding:20px 23px;min-width:0}.house-detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.house-detail-head .button{margin-left:auto}.house-detail-head h2{font-size:1.35rem}.house-detail-icon,.house-device-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;color:#c7c1ff;background:#292653;border:1px solid #514882;flex:none}.house-room-detail p{margin:13px 0 0;color:var(--hs-muted);font-size:.87rem}.house-devices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:8px;margin-top:15px}.house-devices button{display:grid;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:8px;background:#1a2241;border:1px solid #35426e;border-radius:12px;color:#e5edff;text-align:left;cursor:pointer}.house-devices button:hover{border-color:#898bea;background:#282c57}.house-devices button strong,.house-devices button small{display:block;overflow-wrap:anywhere}.house-devices button small{margin-top:3px;color:#bec8e5}.house-device-icon{width:34px;height:34px;border-radius:9px}.house-disclaimer{display:flex;align-items:flex-start;gap:8px;font-size:.78rem;color:var(--muted);margin:0;padding:0 4px}.house-disclaimer svg{flex:none}[data-theme=light] .house-workbench{box-shadow:0 18px 58px #253a7440}@media(max-width:900px){.house-workbench{grid-template-columns:minmax(0,1fr) 218px}.house-top,.house-bottom{padding-inline:14px}.house-index{padding-inline:11px}}@media(max-width:720px){.house-workbench{grid-template-columns:minmax(0,1fr);border-radius:20px}.house-index{border-left:0;border-top:1px solid #273355;padding:13px}.house-canvas,.house-scene{min-height:255px}.house-top{padding-block:14px 12px}.house-canvas-hint{max-width:98px;line-height:1.16}.house-canvas-hint svg{display:none}.house-bottom{padding-bottom:13px}.house-index-head{padding-bottom:10px}.house-room-detail{padding:14px}.house-detail-head .button{margin-left:0}}@media(prefers-reduced-motion:reduce){.house-page *{transition:none!important}}.camera-overview{min-width:0;scroll-margin-top:14px}.camera-overview-panel{gap:16px}.camera-overview-header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.camera-overview-header h2{font-size:clamp(21px,3vw,29px);margin:6px 0 5px}.camera-overview-header p,.camera-overview-instructions{color:var(--muted);font-size:13px;line-height:1.45}.camera-overview-kicker{display:flex;align-items:center;gap:6px;font:650 9px/1.4 var(--mono,monospace);letter-spacing:.13em;color:var(--ice)}.camera-overview-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.camera-overview-grid{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.camera-overview-card{min-width:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--input)}.camera-overview-card:hover,.camera-overview-card[data-selected=true]{border-color:var(--line-strong)}.camera-overview-card[data-selected=true]{box-shadow:inset 0 0 0 1px var(--accent-muted)}.camera-overview-card-button{display:block;text-align:left;width:100%;padding:0;background:none;color:inherit;border:0}.camera-overview-card-button:focus-visible{outline-offset:-3px}.camera-overview-card-button:disabled{cursor:default;opacity:1}.camera-overview-media{display:grid;place-items:center;position:relative;background:#0b1025;isolation:isolate;aspect-ratio:16/9;color:#e8efff;overflow:hidden}.camera-overview-media:after{position:absolute;content:"";pointer-events:none;inset:0;background:linear-gradient(175deg,#06081463 0%,transparent 27%,transparent 65%,#0608147d 100%);z-index:1}.camera-overview-media img{width:100%;height:100%;min-height:0;object-fit:contain;display:block}.camera-overview-placeholder{display:grid;text-align:center;place-items:center;gap:9px;align-content:center;width:100%;height:100%;padding:21px 8px 8px;background:radial-gradient(ellipse at 65% 5%,#44457585 0,transparent 75%),linear-gradient(135deg,#12365533,#151a32 65%);color:#abc2ef;font-size:11px}.camera-overview-placeholder svg{filter:drop-shadow(0 0 9px #91a4ff69)}.camera-overview-pending{background:radial-gradient(ellipse at 69% 13%,#48508a8e 0,transparent 75%),linear-gradient(135deg,#14385363,#151a32 65%)}.camera-overview-pending svg{animation:camera-overview-loading 2.4s ease-in-out infinite}@keyframes camera-overview-loading{50%{opacity:.53;transform:translateY(-2px)}}.camera-overview-badge,.camera-overview-timestamp{position:absolute;z-index:2;background:#0b1426c9;color:#d4e6ff;border:1px solid #c0d6ff2e;border-radius:7px;display:flex;align-items:center;gap:4px;padding:3px 6px;font-size:9px;font-weight:690;white-space:nowrap}.camera-overview-badge{top:8px;left:8px}.camera-overview-timestamp{bottom:8px;right:8px}.camera-overview-card-content{display:grid;gap:6px;padding:10px}.camera-overview-card-heading{display:flex;gap:6px;justify-content:space-between;align-items:baseline;min-width:0}.camera-overview-card-heading strong{overflow-wrap:anywhere;font-size:14px;line-height:1.3}.camera-overview-card-arrow{color:var(--ice)}.camera-overview-card-content small,.camera-overview-mode{display:flex;flex-wrap:wrap;align-items:center;gap:4px;color:var(--muted);font-size:11px}.camera-overview-mode{justify-self:start;border:1px solid var(--line);border-radius:6px;padding:2px 5px;margin-top:2px}.camera-overview-can-try{color:var(--ice);background:var(--blue-bg);border-color:transparent}.camera-overview-position{display:flex;align-items:center;gap:6px;padding:8px 10px;border-top:1px solid var(--line)}.camera-overview-position>span{color:var(--muted);font-size:11px;margin-right:auto}@media(max-width:920px){.camera-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}}@media(max-width:440px){.camera-overview-card-content{padding:7px}.camera-overview-placeholder{gap:4px;font-size:9px}.camera-overview-placeholder svg{width:20px;height:20px}.camera-overview-mode{font-size:9px}.camera-overview-card-heading strong{font-size:12px}.camera-overview-badge,.camera-overview-timestamp{font-size:8px}.camera-overview-position{padding:5px;gap:3px}.camera-overview-position .icon-button{min-width:30px;min-height:32px}.camera-overview-position>span{font-size:9px}}@media(prefers-reduced-motion:reduce){.camera-overview-pending svg{animation:none}}.camera-console{display:grid;grid-template-columns:minmax(215px,.85fr) minmax(0,2fr);gap:18px;align-items:start}.camera-list{display:grid;gap:7px}.camera-list-item{width:100%;display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);color:inherit;background:transparent;border-radius:12px;padding:10px;cursor:pointer}.camera-list-item:hover,.camera-list-item[aria-pressed=true]{background:color-mix(in srgb,var(--accent,#b6e989) 10%,transparent);border-color:color-mix(in srgb,var(--accent,#b6e989) 30%,transparent)}.camera-list-item:focus-visible{outline:2px solid var(--accent,#b6e989);outline-offset:2px}.camera-list-icon{display:grid;place-items:center;border-radius:9px;width:36px;height:36px;flex:0 0 36px;background:color-mix(in srgb,var(--accent,#b6e989) 16%,transparent)}.camera-list-copy{display:grid;min-width:0;gap:4px;flex:1}.camera-list-copy strong,.camera-list-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-list-copy small,.camera-note{color:var(--muted)}.camera-dot{width:7px;height:7px;border-radius:50%;background:#9b856c;flex:0 0 7px}.camera-dot-ready{background:#92bb6b}.camera-dot-off{background:#8d939b}.camera-media{position:relative;isolation:isolate;background:#111715;color:#eaf2eb;border:1px solid var(--line);overflow:hidden;border-radius:12px;aspect-ratio:16/9;min-height:160px}.camera-media img,.camera-media video{width:100%;height:100%;object-fit:contain;display:block}.camera-media:fullscreen{border:0;border-radius:0;display:grid;place-items:center}.camera-overlay{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:10px}video+.camera-overlay{pointer-events:none}.camera-overlay .empty{min-height:0;padding:0}.camera-overlay .empty p{color:#b5c1b8}.camera-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.camera-actions{display:flex;flex-wrap:wrap;gap:8px}.camera-toolbar .tag,.camera-note{display:flex;align-items:center;gap:7px}.camera-note{margin:.75rem 0 0;font-size:.79rem}.camera-view>.feedback{margin-top:10px}@media(max-width:900px){.camera-console{grid-template-columns:minmax(0,1fr)}.camera-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}}@media(max-width:420px){.camera-media{min-height:170px}.camera-toolbar .button{padding-inline:10px}}.totp-qr{justify-self:center;width:min(100%,208px);line-height:0;overflow:hidden;border-radius:8px;background:#fff}.totp-qr svg{display:block;width:100%;height:auto}.totp-manual{min-width:0}.totp-manual summary{width:fit-content;cursor:pointer;font-size:14px}.totp-manual[open]>div{margin-top:10px}@layer base,components,layout,theme,overrides;@layer base{:root{color-scheme:dark;--bg:#080a17;--canvas:#0b0e20;--panel:#10152c;--raise:#1a2140;--hover:#252f56;--input:#0e142a;--line:#263052;--line-strong:#384570;--text:#f2f4ff;--muted:#abb8db;--faint:#8c9cc7;--accent:#a4c0ff;--accent-ink:#101639;--accent-muted:#202d53;--ok:#86dcff;--amber:#f3b4c9;--amber-bg:#3b2845;--violet:#c0adff;--violet-bg:#302553;--blue:#9bcaff;--blue-bg:#1c2f52;--danger:#ffadc8;--danger-bg:#3d213d;--shadow:0 20px 65px #02040d85;--radius:20px;--font:Inter, Avenir Next, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--mono:ui-monospace, SFMono-Regular, Consolas, monospace;--ice:#79d8ff;--lavender:#ac95ff;--shell-halo:#39246952;--shell-halo-blue:#15407345;--primary-fill:linear-gradient(108deg,#a5dfff 0%,#a7b9ff 48%,#c3b1ff 100%);--surface:linear-gradient(145deg,#18213e 0%,#121831 48%,#0f142a 100%)}:root[data-theme=light]{color-scheme:light;--bg:#eef1fc;--canvas:#f7f8ff;--panel:#f8faff;--raise:#e9edfb;--hover:#e0e7fc;--input:#f5f7ff;--line:#d1d9f2;--line-strong:#b8c5e8;--text:#17234f;--muted:#4e5e87;--faint:#536493;--accent:#3659b7;--accent-ink:#fff;--accent-muted:#e0e8fb;--ok:#155a91;--amber:#843c62;--amber-bg:#fae8f5;--violet:#5d3dad;--violet-bg:#ede6ff;--blue:#2b569d;--blue-bg:#e0ebff;--danger:#98315b;--danger-bg:#ffe5ef;--shadow:0 18px 50px #344b902d;--ice:#2273aa;--lavender:#7053c8;--shell-halo:#aca0ff47;--shell-halo-blue:#a2c1ff46;--primary-fill:linear-gradient(108deg,#3353a9 0%,#4149a7 54%,#5b43a8 100%);--surface:linear-gradient(145deg,#fff 0%,#f7f9ff 56%,#eff2ff 100%)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;font-synthesis:none;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.14;letter-spacing:-.025em}h2{font-size:21px}h3{font-size:16px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{flex-shrink:0;vertical-align:middle}label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:13px;font-weight:650}input:not([type=checkbox],[type=range],[type=color]),select,textarea{width:100%;color:var(--text);background:var(--input);border:1px solid var(--line-strong);border-radius:10px;min-height:42px;padding:8px 11px}input::placeholder,textarea::placeholder{color:var(--faint);opacity:1}input[type=range]{width:100%;accent-color:var(--accent);min-height:21px;cursor:pointer;margin:0}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);margin:0}input[type=color]{padding:3px;border:1px solid var(--line-strong);border-radius:8px;background:var(--input);min-width:64px;min-height:38px}textarea{resize:vertical}fieldset{border:1px solid var(--line);border-radius:12px;margin:0;padding:12px;min-width:0}legend{padding:0 6px;color:var(--text);font-weight:750}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}tr:last-child td{border-bottom:0}::selection{background:var(--accent);color:var(--accent-ink)}}@layer components{.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-strong);background:var(--raise);color:var(--text);font-weight:680;border-radius:10px;min-height:39px;padding:8px 13px;white-space:nowrap;line-height:1.2;transition:background .16s,border-color .16s,color .16s;text-decoration:none;font-size:13px}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){background:var(--hover);border-color:var(--faint)}.button-primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.button-primary:hover:not(:disabled){background:var(--accent);border-color:transparent;filter:brightness(.92)}.button-ghost{background:transparent;border-color:transparent;color:var(--muted)}.button-danger{background:var(--danger-bg);border-color:transparent;color:var(--danger)}.button-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.icon-button{padding:0;min-width:38px;min-height:38px;background:transparent;border-color:var(--line);color:var(--muted)}.text-button,.brand-button{border:0;background:none;padding:0}.text-button{color:var(--accent);font-size:13px;font-weight:650;text-align:left;width:fit-content}.text-button:hover{text-decoration:underline}.muted,.small{color:var(--muted)}.small,small{font-size:12px}.actions,.button-row{display:flex;align-items:center;gap:8px}.wrap,.actions{flex-wrap:wrap}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:13px}.stack{display:grid;gap:14px}.check{display:flex;gap:8px;align-items:center;min-height:30px}.check-list{display:grid;gap:3px;max-height:240px;overflow:auto}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;z-index:100;top:8px;left:10px;transform:translateY(-150%);background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:8px 12px}.skip:focus{transform:none}.brand{display:inline-flex;align-items:center;gap:11px;text-align:left;white-space:nowrap}.brand-mark{height:40px;width:40px;display:grid;place-items:center;position:relative;color:#152244;background:#9fc3ff;border-radius:12px;box-shadow:0 3px 16px #739bff45}.brand-mark>span{position:absolute;width:7px;height:2px;background:#152244;border-radius:3px;top:24px;left:17px}.brand-wordmark{font-size:22px;letter-spacing:-.07em;color:var(--text);font-weight:760;line-height:1.05;display:block}.brand-wordmark>span{color:var(--accent)}.brand-wordmark>small{display:block;color:var(--muted);font-size:8px;letter-spacing:.24em;margin-top:4px;font-weight:750}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;flex-wrap:wrap}.page-heading h1{font-size:clamp(33px,4.1vw,51px);font-weight:690;letter-spacing:-.066em}.page-heading .eyebrow{display:block;color:var(--accent);font-size:10px;letter-spacing:.18em;font-weight:790;margin-bottom:10px}.page-heading h1+p{color:var(--muted);margin-top:8px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:19px;min-width:0;display:grid;gap:14px;align-content:start}.panel-heading,.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:13px;min-width:0;flex-wrap:wrap}.panel-heading p,.dialog-heading p{color:var(--muted);font-size:12px;margin-top:5px}.empty{display:grid;justify-items:center;text-align:center;gap:8px;padding:25px 14px;color:var(--muted)}.empty-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);background:var(--raise);border-radius:13px;color:var(--accent)}.empty h3{color:var(--text);font-size:15px;margin-top:3px}.empty p{font-size:12px;max-width:340px}.empty .button{margin-top:4px}.feedback{display:flex;align-items:flex-start;gap:8px;border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:10px;padding:9px 11px;color:var(--danger);background:var(--danger-bg);font-size:12px;overflow-wrap:anywhere}.feedback-success{color:var(--ok);background:var(--accent-muted)}.feedback-info{color:var(--blue);background:var(--blue-bg)}.loading{display:flex;align-items:center;gap:9px;color:var(--muted);padding:14px 0;justify-content:center}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status-dot,.kicker-dot{border-radius:50%;width:7px;height:7px;display:inline-block;background:currentColor;flex:none}.connection-badge,.tag{display:inline-flex;align-items:center;gap:6px;background:var(--raise);border:1px solid var(--line);color:var(--muted);padding:5px 8px;border-radius:8px;font-weight:670;white-space:nowrap;font-size:11px}.connection-online,.tag-lime{color:var(--ok);background:var(--accent-muted);border-color:transparent}.connection-offline,.connection-unconfigured,.tag-amber{color:var(--amber);background:var(--amber-bg);border-color:transparent}.connection-online .status-dot{box-shadow:0 0 9px currentColor}.dialog{max-width:min(560px,calc(100% - 32px));width:100%;max-height:calc(100dvh - 36px);background:var(--panel);border:1px solid var(--line-strong);color:var(--text);border-radius:var(--radius);padding:0;box-shadow:var(--shadow);z-index:50}.dialog::backdrop{background:#060916bd;backdrop-filter:blur(3px)}.dialog-wide{max-width:min(820px,calc(100% - 32px))}.dialog-body{padding:22px;display:grid;gap:16px}.dialog-heading{flex-wrap:nowrap}.dialog-heading h2{overflow-wrap:anywhere;font-size:24px}.dialog-heading .icon-button{margin-left:auto}.external{display:inline-flex;align-items:center;gap:5px;color:var(--accent);font-weight:650;font-size:12px;width:fit-content}.external:hover{text-decoration:underline}.search-field{display:flex;align-items:center;gap:8px;padding:0 10px;min-height:42px;background:var(--input);border:1px solid var(--line-strong);border-radius:10px;color:var(--muted)}.search-field>input:not([type]){background:none;border:0;min-height:36px;padding:5px 2px}.search-field:focus-within{outline:2px solid var(--accent);outline-offset:2px}.search-field>input:focus-visible{outline:none}.search-results{display:grid;gap:5px}.search-results>button{border:1px solid var(--line);background:var(--input);border-radius:9px;padding:10px;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px}.search-results>button:hover{background:var(--hover)}.search-results small{color:var(--muted)}}@layer layout{.startup{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:20px;padding:20px}.login{min-height:100dvh;display:grid;grid-template-columns:minmax(390px,43%) 1fr;background:var(--canvas)}.login-main{display:grid;grid-template-rows:auto 1fr auto;align-items:center;padding:clamp(24px,5vw,75px);gap:28px;min-height:100dvh}.login-main footer{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:12px}.login-content{max-width:395px;width:100%;justify-self:center}.login-content h1{font-size:clamp(52px,6.2vw,87px);line-height:.97;letter-spacing:-.08em;margin:17px 0;color:#f3f6ff}.login-content h1 span{color:var(--accent)}.login-content>p:not(.eyebrow){font-size:16px;color:var(--muted);margin:0 0 29px;max-width:310px}.login-content .eyebrow{color:var(--accent);letter-spacing:.18em;font-weight:770;font-size:10px;display:flex;align-items:center;gap:9px}.login-content .stack{gap:15px}.login-content input{min-height:45px}.login-content .button-primary{justify-content:space-between;padding:13px;min-height:45px}.login-code{justify-self:center}.login-visual{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 49%,#22305a 0,#14213e 40%,#12172e 75%);min-width:0;display:grid;place-items:center;margin:16px 16px 16px 0;border-radius:25px;border:1px solid #3b4877;color:#9fc3ff}.login-grid{position:absolute;inset:0;opacity:.18;background-image:linear-gradient(#9eacff40 1px,transparent 1px),linear-gradient(90deg,#9eacff40 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse,#000 23%,transparent 77%)}.login-caption{position:absolute;bottom:27px;color:#c1c8ed;display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.15em;font-weight:670}.login-caption i{width:13px;border-top:1px solid currentColor}.app{--rail:225px;min-height:100dvh;display:grid;grid-template-columns:var(--rail) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:22px 15px 16px;background:var(--canvas);border-right:1px solid var(--line);overflow:auto}.sidebar .brand-button{align-self:flex-start;margin:1px 0 30px 8px}.sidebar nav,.nav-group{display:grid;gap:4px}.sidebar nav{gap:20px}.nav-label{padding:0 10px 4px;color:var(--faint);font-size:9px;font-weight:800;letter-spacing:.16em}.nav-link{display:flex;align-items:center;text-align:left;gap:10px;min-height:39px;width:100%;border:1px solid transparent;border-radius:9px;background:none;color:var(--muted);font-weight:600;padding:8px 10px;white-space:nowrap;font-size:13px}.nav-link:hover{background:var(--raise);color:var(--text)}.nav-active,.nav-active:hover{background:var(--accent-muted);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 15%,transparent)}.nav-dot{margin-left:auto;width:6px;height:6px;border-radius:100%;background:var(--accent);opacity:.65}.sidebar-footer{margin-top:auto;padding:12px 8px 1px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;color:var(--muted);border-top:1px solid var(--line)}.sidebar-house{display:grid;place-items:center;width:32px;height:32px;background:var(--accent-muted);border-radius:9px;color:var(--accent)}.sidebar-footer strong,.sidebar-footer small{display:block;line-height:1.35}.sidebar-footer strong{color:var(--text);font-size:11px}.sidebar-footer small{font-size:10px}.app-workspace{min-width:0}.topbar{height:66px;background:var(--canvas);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 clamp(16px,3vw,38px)}.breadcrumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;white-space:nowrap}.breadcrumb strong{color:var(--text);font-weight:650}.top-actions{display:flex;align-items:center;gap:11px;min-width:0}.search-button,.account-button{display:flex;align-items:center;justify-content:center;gap:7px;background:var(--raise);border:1px solid var(--line);border-radius:9px;color:var(--muted);min-height:36px;padding:0 9px;font-size:12px}.search-button:hover,.account-button:hover{background:var(--hover)}.search-button kbd{display:flex;align-items:center;gap:2px;padding:2px 4px;border:1px solid var(--line-strong);border-radius:4px;color:var(--faint);font-size:10px;margin-left:9px}.account-wrap{position:relative}.account-button{border:none;background:none;padding:0;position:relative;z-index:11;color:var(--text)}.avatar{display:grid;place-items:center;width:33px;height:33px;border-radius:11px;font-size:11px;font-weight:800;letter-spacing:.035em;color:var(--accent);background:var(--accent-muted)}.account-name{overflow:hidden;text-overflow:ellipsis;max-width:85px}.menu-dismiss{position:fixed;inset:0;background:transparent;border:none;z-index:10}.account-menu{position:absolute;z-index:12;right:0;top:43px;min-width:184px;padding:11px;background:var(--panel);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow);display:grid;gap:4px}.account-menu small{color:var(--muted);margin-bottom:6px}.account-menu .button{justify-content:flex-start}.main-content{max-width:1500px;margin:0 auto;padding:clamp(20px,3vw,41px) clamp(16px,3vw,38px) 0;min-height:calc(100dvh - 66px);display:flex;flex-direction:column}.main-content:focus{outline:none}.page{display:grid;gap:19px;padding-bottom:24px;min-width:0}.main-footer{padding:16px 0;margin-top:auto;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--faint);font-size:10px;letter-spacing:.09em}.main-footer>span:last-child{display:flex;align-items:center;gap:5px;letter-spacing:0}.mobile-nav,.mobile-brand{display:none}.jarvis-float{position:fixed;right:21px;bottom:20px;width:47px;height:47px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent);border:0;border-radius:15px;box-shadow:var(--shadow);z-index:5}.jarvis-float:hover{filter:brightness(.93)}.live-error{display:flex;align-items:center;gap:8px;margin-bottom:14px}.live-error>.feedback{flex:1}.modal-nav{display:grid;gap:3px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.metric{min-width:0;display:grid;text-align:left;gap:3px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--panel);transition:background .16s,border-color .16s}.metric:hover{background:var(--raise);border-color:var(--line-strong)}.metric-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:6px;color:var(--faint)}.metric-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--accent-muted);color:var(--ok)}.metric-amber .metric-icon{background:var(--amber-bg);color:var(--amber)}.metric-violet .metric-icon{background:var(--violet-bg);color:var(--violet)}.metric-blue .metric-icon{background:var(--blue-bg);color:var(--blue)}.metric-title{color:var(--muted);font-size:12px;font-weight:650}.metric strong{font-size:25px;line-height:1.12;color:var(--text)}.metric small{font-size:10px;color:var(--faint)}.dashboard-panels,.page-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px}.dashboard-block{min-width:0;position:relative}.dashboard-block>.panel{height:100%}.dashboard-panels{align-items:stretch}.arrange-controls{display:flex;gap:4px;justify-content:end;padding-bottom:4px}.arrange-controls .icon-button{min-width:30px;min-height:29px}.room-preview-grid,.energy-sensors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.room-preview{display:flex;align-items:center;gap:8px;padding:8px;background:var(--input);border:1px solid var(--line);border-radius:10px;min-width:0;text-align:left}.room-preview:hover,.room-preview[aria-pressed=true]{background:var(--raise);border-color:var(--line-strong)}.room-preview>span:first-child,.room-symbol,.connection-symbol{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:var(--accent-muted);color:var(--accent);flex:none}.room-preview>div{flex:1;min-width:0}.room-preview strong,.room-preview small{display:block;overflow-wrap:anywhere}.room-preview small{font-size:10px;color:var(--muted)}.room-preview strong{font-size:12px}.room-preview>svg:last-child{margin-left:auto;color:var(--faint)}.connection-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.connection-row strong,.connection-row small{display:block}.connection-row small{color:var(--muted);font-size:11px}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(243px,100%),1fr));gap:12px}.dashboard-block .device-grid{grid-template-columns:repeat(auto-fit,minmax(min(165px,100%),1fr))}.device-card{--device-tint:142 175 255;--device-opacity:.085;display:grid;gap:8px;align-content:start;min-width:0;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.device-on{background:radial-gradient(ellipse at 12% 4%,rgb(var(--device-tint)/var(--device-opacity)),transparent 70%),var(--panel);border-color:color-mix(in srgb,rgb(var(--device-tint)) 23%,var(--line))}.device-top,.device-bottom,.device-tools{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0}.device-icon{width:36px;height:36px;display:grid;place-items:center;background:var(--accent-muted);color:var(--accent);border:1px solid transparent;border-radius:10px}.device-on .device-icon{background:rgb(var(--device-tint)/.15)}.device-icon:hover{border-color:var(--line-strong)}.device-tools .icon-button{border:none;min-width:34px;min-height:34px}.favorite{color:var(--amber)}.device-name{display:flex;align-items:center;justify-content:space-between;gap:7px;border:0;background:none;padding:0;color:var(--text);text-align:left;font-size:16px;line-height:1.25;overflow-wrap:anywhere}.device-name:hover{color:var(--accent)}.device-card>p{color:var(--muted);font-size:11px}.entity-status{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:670}.entity-status .status-dot{width:6px;height:6px}.entity-active{color:var(--ok)}.power-button{min-width:34px;min-height:34px;border-radius:9px;background:var(--raise)}.power-active{color:var(--ok);border-color:var(--line-strong);background:var(--accent-muted)}.device-circuits{list-style:none;display:grid;gap:5px;padding:0;margin:2px 0 0}.device-circuits>li{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:4px 5px 4px 9px;border:1px solid var(--line);border-radius:9px;background:var(--input)}.device-circuits>li>div{display:grid;gap:1px;min-width:0}.device-circuits strong{font-size:12px;overflow-wrap:anywhere}.device-circuits small{display:inline-block;margin-inline-start:7px;font-size:10px;font-weight:500;color:var(--muted)}.device-circuits button{flex:none}.filters{display:grid;grid-template-columns:minmax(0,1.7fr) repeat(2,minmax(0,1fr));gap:9px}.entity-box{display:grid;gap:10px;background:var(--input);border:1px solid var(--line);border-radius:12px;padding:13px;min-width:0}.entity-box p:not(.feedback){color:var(--muted);font-size:12px}.entity-heading,.detail-summary,.rule-item-heading{display:flex;align-items:start;justify-content:space-between;gap:9px;flex-wrap:wrap}.entity-heading small{color:var(--muted);overflow-wrap:anywhere}.detail-summary>div{display:flex;gap:6px;flex-wrap:wrap}.entity-controls,.history-box,.room-list{display:grid;gap:8px}.range-setting,.color-setting{display:flex;align-items:end;gap:8px}.range-setting>label,.color-setting>label{flex:1}.range-setting label>span{display:flex;justify-content:space-between;gap:8px}.range-setting output{color:var(--text)}.thermo-pair,.energy-summary{display:flex;gap:8px;flex-wrap:wrap}.thermo-pair>div,.energy-summary>div{flex:1 1 130px;display:grid;gap:3px;padding:10px;border-radius:8px;background:var(--raise)}.thermo-pair small,.energy-summary small{color:var(--muted)}.thermo-pair strong,.energy-summary strong{font-size:18px}.history-box>.button{justify-self:start}.history-list{margin:0;padding:0;list-style:none;font-size:12px;display:grid;gap:2px}.history-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.history-list li:last-child{border-bottom:0}.history-list span{color:var(--muted)}.room-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line);min-width:0;padding-bottom:7px}.room-row:last-child{border-bottom:none;padding-bottom:0}.room-row-name{border:0;background:none;padding:3px;min-height:42px;display:flex;align-items:center;gap:8px;min-width:0;text-align:left}.room-row-name span:nth-child(2){overflow-wrap:anywhere}.room-row-name strong,.room-row-name small{display:block}.room-row-name small{font-size:11px;color:var(--muted)}button.room-row-name:hover{color:var(--accent)}.climate-card .device-icon{background:var(--amber-bg);color:var(--amber)}.heating .device-icon{animation:heat 2.7s ease-in-out infinite}.climate-temperature{display:flex;align-items:center;gap:5px;color:var(--muted)}.climate-temperature strong{font-size:23px;color:var(--text)}@keyframes heat{50%{box-shadow:0 0 12px color-mix(in srgb,var(--amber) 28%,transparent)}}.plan-scroller{display:grid;justify-items:center;background:var(--input);overflow:hidden;border:1px solid var(--line);border-radius:13px;padding:19px}.plan-board{position:relative;width:fit-content;max-width:100%;line-height:0}.plan-board img{display:block;max-width:100%;max-height:65dvh;object-fit:contain;user-select:none}.plan-marker{position:absolute;display:grid;place-items:center;transform:translate(-50%,-50%);color:#1a234d;background:#9fc3ff;border:2px solid #5976bb;border-radius:50%;padding:0;box-shadow:0 2px 8px #0a11336b}.plan-marker:hover,.plan-marker[aria-pressed=true]{border-color:#293c9c;box-shadow:0 0 0 2px #fff}.plan-marker-edit{touch-action:none;cursor:grab}.plan-marker-edit:active{cursor:grabbing}.plan-tools{display:grid;gap:13px}.theme-options{display:flex;gap:7px;flex-wrap:wrap}.kiosk-setting{margin-top:2px}.table-scroll{overflow:auto}.rule-card h3{overflow-wrap:anywhere}.rule-card>.button-row .icon-button{min-width:35px}.rule-section{display:grid;gap:9px}.rule-section>.button{justify-self:start}.rule-item{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--input)}.rule-item-heading{align-items:center}.rule-item-heading strong{font-size:12px}.rule-item-heading .icon-button{min-width:30px;min-height:30px}.weekdays{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.weekdays>.button{min-height:32px;padding:5px 7px;font-size:11px}.weekdays small{color:var(--muted)}.energy-sensors .room-preview>b{white-space:nowrap;font-size:12px;color:var(--accent)}.chart{display:grid;gap:8px;color:var(--muted)}.chart>svg{width:100%;max-height:240px;cursor:crosshair;background:var(--input);border-radius:11px}.chart-grid{stroke:var(--line);fill:none;stroke-dasharray:3 4}.chart-path{stroke:var(--accent);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.chart-cursor{stroke:var(--faint);stroke-dasharray:2 3}.chart-focus{fill:var(--accent);stroke:var(--input);stroke-width:1}.chart-caption{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;font-size:12px}.chart-range{max-width:340px}.jarvis-panel{min-height:310px;align-content:start}.chat-messages{display:grid;gap:10px;max-height:55dvh;overflow:auto;padding:4px}.chat-message{display:grid;gap:5px;width:fit-content;min-width:110px;max-width:min(85%,550px);border-radius:13px;padding:10px 13px;border:1px solid var(--line)}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere}.chat-message small{color:var(--accent);font-size:9px;letter-spacing:.09em;font-weight:800}.chat-user{justify-self:end;background:var(--accent-muted)}.chat-jarvis{background:var(--input)}.chat-composer{display:flex;gap:7px;align-items:end}.kiosk .button,.kiosk .nav-link{min-height:45px}.kiosk .icon-button{min-width:43px;min-height:43px}}@layer theme{body{background:var(--bg)}.app{--rail:222px;background:radial-gradient(ellipse at 89% -7%,var(--shell-halo) 0,transparent 56%),radial-gradient(ellipse at 35% 7%,var(--shell-halo-blue),transparent 42%),var(--bg)}.app-workspace{min-width:0}.sidebar{background:linear-gradient(176deg,color-mix(in srgb,var(--canvas),var(--accent-muted) 14%),var(--canvas) 76%);padding:25px 14px 18px}.sidebar .brand-button{margin:1px 0 36px 5px}.brand{gap:10px}.brand-mark{width:40px;height:40px;isolation:isolate;border-radius:11px;color:#bcdaff;background:linear-gradient(142deg,#253c6d,#22244d 74%);border:1px solid #8da4f67b;box-shadow:inset 0 1px #e3eaff16,0 6px 19px #3b65c83c}.brand-wordmark{font-size:13px;font-weight:840;letter-spacing:.065em;line-height:1.15}.brand-wordmark>span{color:var(--ice)}.brand-wordmark>small{font:600 8px/1.15 var(--mono);letter-spacing:.14em;margin-top:5px;color:var(--faint)}.sidebar nav{gap:23px}.nav-label{padding:0 10px 5px;color:var(--faint);font:650 9px/1.35 var(--mono);letter-spacing:.15em;text-transform:uppercase}.nav-link{gap:10px;border-radius:10px;min-height:40px;font-weight:620}.nav-active,.nav-active:hover{position:relative;background:linear-gradient(93deg,color-mix(in srgb,var(--accent-muted),var(--blue-bg) 46%),var(--accent-muted) 85%);border-color:color-mix(in srgb,var(--accent),var(--line) 75%);color:var(--text);box-shadow:inset 0 1px #a8bfff19}.nav-active:before{position:absolute;content:"";width:2px;height:16px;left:-1px;top:calc(50% - 8px);border-radius:3px;background:var(--ice);box-shadow:0 0 11px color-mix(in srgb,var(--ice) 52%,transparent)}.nav-active>svg,.nav-dot{color:var(--ice)}.sidebar-footer{align-content:center;min-height:56px;padding:9px;grid-template-columns:33px minmax(0,1fr);border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 59%,transparent)}.topbar{position:relative;height:63px;background:color-mix(in srgb,var(--canvas) 82%,transparent);backdrop-filter:blur(14px);padding:0 clamp(16px,3vw,42px)}.breadcrumb{font-size:12px;font-weight:600}.breadcrumb-slash{font:500 13px/1 var(--mono);color:var(--faint)}.breadcrumb strong{font-weight:720}.search-button,.account-button{min-height:36px}.search-button{background:var(--input);border-color:var(--line);padding:0 10px}.search-button kbd{font-family:var(--mono);font-size:9px}.topbar .connection-badge{border-radius:20px;padding:6px 10px}.account-button{padding-inline:3px;color:var(--text)}.avatar{border:1px solid var(--line-strong);background:linear-gradient(145deg,var(--accent-muted),var(--violet-bg));color:var(--text);border-radius:50%}.main-content{max-width:1550px;padding-top:clamp(23px,3vw,42px);min-height:calc(100dvh - 63px)}.page{gap:21px}.page-heading h1{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.058em;font-weight:690}.page-heading h1+p{font-size:14px;text-wrap:pretty}.page-heading .eyebrow,.dashboard-section .eyebrow{color:var(--ice);font:700 10px/1.3 var(--mono);letter-spacing:.16em;margin-bottom:9px}.page-heading .eyebrow:before{content:"";display:inline-block;width:11px;height:1px;vertical-align:middle;background:currentColor;margin-right:7px}.panel,.device-card{background:var(--surface);box-shadow:inset 0 1px #a8bfff10}.panel{padding:20px;border-radius:var(--radius)}.panel-heading h2{font-size:20px;letter-spacing:-.025em}.panel-heading p,.dialog-heading p{font-size:13px}.panel-heading .button-ghost{color:var(--accent)}.button{border-color:var(--line);min-height:41px;background:color-mix(in srgb,var(--raise) 86%,transparent)}.button-primary{border-color:transparent;background:var(--primary-fill);color:var(--accent-ink);box-shadow:0 4px 16px color-mix(in srgb,var(--accent) 16%,transparent)}.button-primary:hover:not(:disabled){background:var(--primary-fill);filter:brightness(1.06)}.button-ghost{background:transparent;border-color:transparent}.button-danger{background:var(--danger-bg);border-color:transparent}.icon-button{background:color-mix(in srgb,var(--input) 43%,transparent)}.empty{gap:9px;padding:27px 13px}.empty-icon{height:45px;width:45px;background:linear-gradient(145deg,var(--accent-muted),var(--violet-bg));border-color:var(--line-strong);color:var(--accent)}.empty h3{font-size:15px}.empty p{font-size:13px;text-wrap:pretty}.dialog{background:var(--surface);border-color:var(--line-strong)}.dialog::backdrop{background:#030613c7}.dialog-body{gap:17px}.connection-online .status-dot,.signal-live{box-shadow:0 0 10px currentColor}.device-card{padding:15px;border-radius:16px}.device-on{background:radial-gradient(ellipse at 12% 4%,rgb(var(--device-tint)/var(--device-opacity)),transparent 70%),var(--surface)}.chart{border-radius:14px}.jarvis-float{width:48px;height:48px;border-radius:16px;border:1px solid #dbe4ff99;background:linear-gradient(140deg,#8bd9ff,#b99fff);color:#131941;box-shadow:0 7px 30px #323882a8,0 0 20px #8584fc37;transition:transform .16s}.jarvis-float:hover{transform:translateY(-2px);filter:brightness(1.07)}.main-footer{padding-right:55px}.login{grid-template-columns:minmax(390px,40%) 1fr;padding:16px;background:radial-gradient(ellipse at 0% 0%,#201f40 0,transparent 42%),var(--bg)}.login-main{min-height:calc(100dvh - 32px);gap:23px;padding:clamp(18px,4vw,66px)}.login-content h1{font-size:clamp(49px,6vw,79px);letter-spacing:-.064em}.login-content h1 span{color:var(--ice)}.login-content>p:not(.eyebrow){margin-bottom:25px}.login-content .button-primary{min-height:46px}.login-visual{margin:0;min-height:calc(100dvh - 32px);border-radius:24px;isolation:isolate;color:#d1deff;background:radial-gradient(ellipse at 53% 44%,#293569,#181d41 48%,#0b1027 93%);border:1px solid #556ba64d}.login-grid,.hero-grid{inset:0;position:absolute;pointer-events:none;opacity:.45;background-image:linear-gradient(#a7b5ff14 1px,transparent 1px),linear-gradient(90deg,#a7b5ff14 1px,transparent 1px);background-size:38px 38px;mask-image:radial-gradient(ellipse at 65% 51%,#000 13%,transparent 79%)}.login-visual-kicker,.login-caption{z-index:1;position:absolute;left:clamp(22px,4vw,58px);color:#bbccfc;font:650 9px/1.3 var(--mono);letter-spacing:.15em;display:flex;align-items:center;gap:9px;text-wrap:balance}.login-visual-kicker{top:clamp(22px,4vw,50px)}.login-caption{bottom:clamp(22px,4vw,50px);right:20px}.login-caption>span{width:21px;height:1px;background:currentColor}.login-architecture{width:min(97%,850px);height:auto}.dashboard-heading{display:flex;justify-content:space-between;align-items:end;gap:10px;min-width:0}.dashboard-heading .page-heading h1+p:first-letter{text-transform:uppercase}.dashboard-customize{border-radius:11px}.hero{isolation:isolate;position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-rows:minmax(246px,auto) auto;min-width:0;border:1px solid #576aa666;border-radius:23px;background:radial-gradient(ellipse at 77% 36%,#2e396c88,transparent 58%),radial-gradient(ellipse at 22% 0%,#3f307957,transparent 55%),linear-gradient(110deg,#131b37 1%,#111834 54%,#10122a);box-shadow:inset 0 1px #b5c8ff1c,0 17px 50px #06091a35;color:#f2f5ff}.hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(109deg,transparent 57%,#9a7cff14 76%,transparent 99%)}.hero-grid{mask-image:radial-gradient(ellipse at 76% 53%,#000 22%,transparent 75%)}.hero-body{display:grid;align-content:center;justify-items:start;min-width:0;gap:14px;padding:25px clamp(22px,3.5vw,46px);position:relative;z-index:2}.hero-label{display:inline-flex;align-items:center;gap:7px;color:#bcd6ff;background:#21315880;border:1px solid #839fff38;border-radius:20px;padding:6px 10px;font:650 9px/1.1 var(--mono);letter-spacing:.13em}.hero h2{font-size:clamp(32px,4.1vw,63px);font-weight:655;letter-spacing:-.065em;line-height:1.01;text-wrap:balance;position:relative}.hero h2>span{color:#87ddff}.hero h2 em{font-style:normal;font-weight:580;background:linear-gradient(96deg,#a9dbff 3%,#bbbeff 52%,#d2b6ff 91%);background-clip:text;-webkit-text-fill-color:transparent}.hero p{font-size:14px;line-height:1.55;text-wrap:pretty;color:#bfcbee;max-width:355px}.hero-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hero-actions .button-primary{background:linear-gradient(108deg,#a5dfff,#a7b9ff 50%,#c3b1ff);color:#171b41;box-shadow:0 6px 23px #767cff34;font-weight:760}.hero-actions .button-ghost{color:#c5d4fa}.hero-actions .button-ghost:hover{color:#f3f6ff;background:#242d55}.hero-diagram{display:grid;place-items:center;min-width:0;z-index:1;overflow:hidden;position:relative}.hero-diagram>.architecture{display:block;width:min(109%,690px);max-height:clamp(253px,31vw,365px);height:auto;overflow:visible}.hero-diagram-label{position:absolute;z-index:2;right:clamp(13px,2.2vw,35px);top:18px;color:#b3c4f4;font:630 8px/1.2 var(--mono);letter-spacing:.12em;display:inline-flex;align-items:center;gap:6px}.hero-diagram-label i{height:4px;width:4px;border-radius:50%;background:#9fd6ff;box-shadow:0 0 7px #9fd6ff85}.hero-status{z-index:2;grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px 19px;align-items:center;padding:11px clamp(22px,3.5vw,46px);background:#0c1125c9;border-top:1px solid #93aaff2a;min-height:53px;color:#c0cdee;font-size:12px;font-weight:620}.hero-status>div{display:flex;align-items:center;gap:7px;min-width:0}.hero-status-symbol{display:grid;place-items:center;color:#8fb6ff}.hero-status-divider{color:#a5b5e7;opacity:.65}.hero-status .connection-badge{color:#d4dffb;background:none;border:0;padding:0;font-size:12px}.hero-status .connection-online{color:#b5eaff}.hero-status .connection-offline,.hero-status .connection-unconfigured{color:#f7bfda}.arch-roof{animation:arch-float 8s ease-in-out infinite;transform-box:view-box}.arch-signal{animation:arch-shimmer 8s ease-in-out infinite}.login-visual .arch-roof{animation-delay:-2s}@keyframes arch-float{50%{transform:translateY(-5px)}}@keyframes arch-shimmer{50%{opacity:.52}}.dashboard-section{display:flex;justify-content:space-between;align-items:end;gap:8px;margin-top:1px}.dashboard-section h2{font-size:clamp(21px,2.5vw,28px);font-weight:690;letter-spacing:-.035em}.dashboard-section .eyebrow{font-size:9px;margin-bottom:6px}.dashboard-section>span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;text-align:right}.dashboard-section>span>i{display:inline-block;height:5px;width:5px;flex:none;border-radius:50%;background:currentColor}.dashboard-section>span>.signal-live{color:var(--ok)}.dashboard-section-lower{margin-top:6px}.metrics{gap:13px}.metric{min-width:0;isolation:isolate;position:relative;overflow:hidden;display:grid;align-content:center;grid-template-rows:auto auto auto auto;gap:4px;background:var(--surface);border-radius:15px;padding:13px 14px 12px;box-shadow:inset 0 1px #a8bfff1b;transition:background .16s,border-color .16s,transform .16s}.metric:hover{transform:translateY(-2px);border-color:var(--line-strong);background:var(--surface)}.metric:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 90% -12%,var(--metric-halo),transparent 68%)}.metric-cyan{--metric-icon:var(--ok);--metric-bg:var(--blue-bg);--metric-halo:#42bdea1f}.metric-rose{--metric-icon:var(--amber);--metric-bg:var(--amber-bg);--metric-halo:#b359b721}.metric-violet{--metric-icon:var(--violet);--metric-bg:var(--violet-bg);--metric-halo:#9b79f932}.metric-blue{--metric-icon:var(--blue);--metric-bg:var(--accent-muted);--metric-halo:#7087ff2e}.metric-top{margin-bottom:4px}.metric-icon,.metric-amber .metric-icon,.metric-violet .metric-icon,.metric-blue .metric-icon{background:var(--metric-bg);color:var(--metric-icon);border:1px solid color-mix(in srgb,var(--metric-icon) 19%,transparent);width:35px;height:35px}.metric-value{font-size:clamp(24px,3.5vw,37px);font-weight:640;line-height:1.07;letter-spacing:-.045em;color:var(--text);font-variant-numeric:tabular-nums}.metric-title{color:var(--text);font-size:12px;font-weight:720}.metric small{color:var(--muted);font-size:11px}.dashboard-panels{align-items:stretch;gap:15px}.connection-panel{container-type:inline-size}@container (max-width:385px){.connection-panel .connection-row>.connection-badge{grid-column:2;justify-self:start}}.dashboard-block>.panel{height:auto;min-height:100%}.dashboard-block:has(.arrange-controls)>.panel{min-height:calc(100% - 34px)}.room-preview,.room-row-name{border-radius:11px}.room-preview{background:color-mix(in srgb,var(--input),var(--raise) 25%);padding:10px}}@layer overrides{@media(max-width:1050px){.app{--rail:186px}.sidebar{padding-inline:10px}.brand-wordmark{font-size:12px;letter-spacing:.035em}.brand{gap:7px}.top-actions{gap:8px}.top-status{display:none}.dashboard-panels .panel-heading>.button{white-space:normal;justify-content:flex-start;text-align:left}.dashboard-panels .room-preview-grid{grid-template-columns:1fr}}@media(max-width:820px){.app{display:block}.sidebar{display:none}.mobile-brand{display:block}.mobile-brand .brand-mark{width:35px;height:35px;border-radius:9px}.topbar{height:59px;justify-content:start}.top-actions{margin-left:auto}.main-content{min-height:calc(100dvh - 59px);padding-bottom:66px}.mobile-nav{position:fixed;display:grid;backdrop-filter:blur(14px);grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;z-index:7;bottom:0;left:0;right:0;padding:4px 5px max(4px,env(safe-area-inset-bottom));background:var(--canvas);border-top:1px solid var(--line);gap:4px}.mobile-nav .nav-link{display:grid;justify-items:center;gap:2px;padding:4px 2px;text-align:center;white-space:normal;font-size:9px;line-height:1.15;min-height:45px}.mobile-nav .nav-link .nav-dot,.mobile-nav .nav-link.nav-active:before{display:none}.jarvis-float{bottom:65px;right:13px;width:43px;height:43px}}@media(max-width:620px){.login{display:block;padding:0}.login-main{min-height:100dvh;padding:22px;gap:18px}.login-visual{display:none}.breadcrumb>span{display:none}.breadcrumb strong{max-width:125px;overflow:hidden;text-overflow:ellipsis}.search-button{width:35px;padding:0}.search-button>span,.search-button>kbd,.account-name,.account-button>svg{display:none}.top-actions{gap:7px}.top-alerts{min-width:34px;min-height:34px}.metric{padding:10px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hero{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;border-radius:19px}.hero-body{padding:22px 17px 0;gap:12px}.hero-diagram{height:160px;margin-top:4px}.hero-diagram>.architecture{width:min(100%,310px);max-height:180px}.hero-diagram-label{top:auto;bottom:8px;right:14px;font-size:7px}.hero-status{padding:8px 14px;gap:4px 11px;min-height:43px}.hero-status,.hero-status .connection-badge{font-size:10px}.hero-status-symbol svg{width:13px;height:13px}.hero .hero-actions{gap:3px}.hero h2{font-size:clamp(30px,8vw,45px);line-height:1.02;text-wrap:initial}.hero-body p{font-size:13px}.dashboard-heading{align-items:end;gap:7px}.dashboard-heading .page-heading h1{font-size:clamp(28px,7.8vw,46px)}.dashboard-customize{min-height:34px;font-size:11px;padding-inline:7px;gap:4px}.dashboard-section>span{font-size:9px}.metric-title{font-size:11px}.metric small{font-size:10px}.dashboard-panels,.page-columns,.dashboard-panels .room-preview-grid,.energy-sensors{grid-template-columns:1fr}.panel{padding:13px}.page{gap:15px}.filters{grid-template-columns:1fr 1fr}.filters>.search-field{grid-column:1/-1}.dialog-body{padding:14px}.dialog{max-width:calc(100% - 18px);max-height:calc(100dvh - 20px)}.connection-row .connection-badge{grid-column:2;justify-self:start}.breadcrumb strong{font-size:11px}.button{padding-inline:9px}.room-row .icon-button{min-width:31px;min-height:31px}.chat-message{max-width:91%}.main-footer{padding-right:46px}}@media(min-width:621px)and (max-width:970px){.hero-body{padding:21px 20px}.hero h2{font-size:clamp(33px,4.5vw,47px)}.hero-diagram>.architecture{width:115%}.hero-status{padding-inline:20px}.hero-actions{gap:1px}.hero-actions .button{font-size:12px}}@media(max-width:400px){.dashboard-customize svg{width:13px}.dashboard-heading .page-heading .eyebrow{letter-spacing:.09em}.hero-actions .button{font-size:11px;padding-inline:8px;gap:5px}.dashboard-section>span{max-width:115px}.hero-diagram{height:139px}.hero-diagram>.architecture{max-height:157px}.hero-status{padding-left:11px;gap:3px 8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}}.climate-grid{align-items:stretch}.climate-card{grid-auto-rows:max-content}.climate-card .device-name{min-height:28px}.climate-entity-name{min-width:0;overflow-wrap:anywhere}.climate-location,.climate-location span,.climate-timestamp{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.climate-location{justify-content:space-between;gap:3px 9px;color:var(--muted);font-size:11px}.climate-reading{display:grid;gap:3px;background:var(--input);border:1px solid var(--line);border-radius:9px;padding:8px 10px;color:var(--muted);font-size:11px}.climate-reading .climate-temperature{gap:6px}.climate-card .climate-setpoint,.climate-card .climate-timestamp{font-size:11px;color:var(--muted)}.climate-setpoint strong{color:var(--text)}.climate-card-featured{border-color:color-mix(in srgb,var(--accent) 53%,var(--line));box-shadow:inset 0 1px var(--accent-muted)}.device-management{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:3px;padding-top:7px;border-top:1px solid var(--line);margin-top:3px}.device-management .button{font-size:11px;min-height:36px;padding-inline:7px;color:var(--accent)}.device-management .button:hover{color:var(--text)}.device-visibility-count{min-width:18px;height:18px;border-radius:9px;padding-inline:4px;display:grid;place-items:center;background:color-mix(in srgb,currentColor 14%,transparent);font-size:10px}.filters.filters-hidden{grid-template-columns:minmax(0,420px)}
