@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f5f6f8;--surface: #ffffff;--surface-2: #f0f2f5;--border: #e5e7eb;--text: #0f172a;--text-2: #475467;--text-3: #98a2b3;--brand: #4c5bd4;--brand-soft: #eef0fd;--brand-text: #ffffff;--on: #f59e0b;--on-soft: #fff6e5;--ok: #12b76a;--warn: #f79009;--bad: #f04438;--ok-soft: rgb(18 183 106 / .1);--warn-soft: rgb(247 144 9 / .1);--bad-soft: rgb(240 68 56 / .1);--ok-text: #067647;--warn-text: #b54708;--bad-text: #b42318;--shadow-card: 0 1px 2px rgb(16 24 40 / .06);--shadow-pop: 0 12px 32px rgb(16 24 40 / .16);--scrim: rgb(15 23 42 / .35);--radius-s: 8px;--radius: 12px;--radius-l: 16px;--font: "Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "JetBrains Mono", Consolas, monospace;--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:light}:root[data-theme=dark]{--bg: #0b0d12;--surface: #12151c;--surface-2: #181c25;--border: #242a36;--text: #e7eaf0;--text-2: #a3acbd;--text-3: #6b7385;--brand: #7c89f0;--brand-soft: #1e2240;--brand-text: #0b0d12;--on: #fbbf24;--on-soft: #2a2112;--ok: #32d583;--warn: #fdb022;--bad: #f97066;--ok-soft: rgb(50 213 131 / .15);--warn-soft: rgb(253 176 34 / .15);--bad-soft: rgb(249 112 102 / .15);--ok-text: #32d583;--warn-text: #fdb022;--bad-text: #f97066;--shadow-card: none;--shadow-pop: 0 12px 32px rgb(0 0 0 / .5);--scrim: rgb(0 0 0 / .55);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b0d12;--surface: #12151c;--surface-2: #181c25;--border: #242a36;--text: #e7eaf0;--text-2: #a3acbd;--text-3: #6b7385;--brand: #7c89f0;--brand-soft: #1e2240;--brand-text: #0b0d12;--on: #fbbf24;--on-soft: #2a2112;--ok: #32d583;--warn: #fdb022;--bad: #f97066;--ok-soft: rgb(50 213 131 / .15);--warn-soft: rgb(253 176 34 / .15);--bad-soft: rgb(249 112 102 / .15);--ok-text: #32d583;--warn-text: #fdb022;--bad-text: #f97066;--shadow-card: none;--shadow-pop: 0 12px 32px rgb(0 0 0 / .5);--scrim: rgb(0 0 0 / .55);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:400 14px/1.5 var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:24px}h2{font-size:16px}h3{font-size:14px}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-s);height:36px;padding:0 12px;outline:none;transition:border-color .15s var(--ease),box-shadow .15s var(--ease);min-width:0}textarea{height:auto;padding:8px 12px}input[type=checkbox],input[type=radio]{height:16px;width:16px;accent-color:var(--brand);padding:0}input[type=range]{height:24px;padding:0;border:0;background:none;accent-color:var(--brand)}input[type=file]{height:auto;padding:6px}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}::placeholder{color:var(--text-3)}.mono{font-family:var(--mono);font-size:.92em}.num,.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:13px}.xs{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.nowrap{flex-wrap:nowrap}.spread{justify-content:space-between}.grow{flex:1 1 auto;min-width:0}.stack{display:flex;flex-direction:column;gap:16px}.stack.tight{gap:8px}.grid-cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.two-col{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media(max-width:1100px){.two-col{grid-template-columns:minmax(0,1fr)}}.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px;padding:16px 12px;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 12px;font-weight:600;font-size:16px;color:var(--text);letter-spacing:-.02em}.brand:hover{text-decoration:none}.logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--brand),#8b5cf6);display:grid;place-items:center;color:#fff;flex:0 0 auto}.logo svg{width:16px;height:16px}.nav-section{margin:16px 8px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.nav-item{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:var(--radius-s);color:var(--text-2);font-weight:500;transition:background .15s var(--ease),color .15s var(--ease);position:relative}.nav-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-item.active{background:var(--brand-soft);color:var(--brand)}.nav-item svg{flex:0 0 auto}.nav-item .count{margin-left:auto;font-size:12px;color:var(--text-3)}.sidebar-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.content{min-width:0;padding:28px 32px 48px;max-width:1360px;width:100%}.mobile-top,.tabbar{display:none}.switcher{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;transition:background .15s var(--ease)}.switcher:hover{background:var(--surface-2)}.switcher .avatar{background:var(--on-soft);color:var(--on)}.switcher .t1{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.switcher .t2{font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{width:32px;height:32px;border-radius:999px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-weight:600;font-size:13px;flex:0 0 auto}.account{width:100%;display:flex;align-items:center;gap:10px;padding:6px 8px;border:0;background:none;border-radius:var(--radius-s);cursor:pointer;text-align:left}.account:hover{background:var(--surface-2)}.menu-wrap{position:relative}.menu{position:absolute;z-index:40;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:6px;animation:pop .15s var(--ease)}.menu.up{bottom:calc(100% + 6px);left:0;right:0}.menu.down{top:calc(100% + 6px);left:0;right:0}.menu.down-right{top:calc(100% + 6px);right:0}.menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:6px 10px;border:0;background:none;border-radius:var(--radius-s);cursor:pointer;text-align:left;color:var(--text)}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-2);text-decoration:none}.menu-item.danger{color:var(--bad-text)}.menu-item .check{margin-left:auto;color:var(--brand)}.menu-sep{height:1px;background:var(--border);margin:6px 4px}.menu-label{padding:6px 10px 2px;font-size:12px;color:var(--text-3)}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}}@media(max-width:1023px)and (min-width:640px){.app{grid-template-columns:72px minmax(0,1fr)}.sidebar{padding:12px 10px;align-items:center}.sidebar .brand span:not(.logo),.sidebar .nav-label,.sidebar .nav-item .count,.sidebar .switcher .grow,.sidebar .switcher>svg,.sidebar .account .grow{display:none}.sidebar .brand{padding:4px 0 12px}.sidebar .nav-section{width:32px;height:1px;margin:10px 0;font-size:0;background:var(--border)}.sidebar .nav-item{width:44px;height:44px;padding:0;justify-content:center}.sidebar .nav-item[data-tip]:hover:after{content:attr(data-tip);position:absolute;left:54px;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--text);color:var(--bg);font-size:12px;padding:4px 8px;border-radius:6px;z-index:50}.sidebar .switcher{width:48px;padding:7px;justify-content:center}.sidebar .account{width:48px;justify-content:center}.sidebar .menu.up,.sidebar .menu.down{left:0;right:auto;width:240px}.content{padding:24px 24px 48px}}@media(max-width:639px){.app{display:block}.sidebar{display:none}.mobile-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--border)}.mobile-top .switcher{border:0;padding:4px 0;background:none}.content{padding:16px 16px 96px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;border:0;background:none;color:var(--text-3);font-size:11px;font-weight:500;cursor:pointer;border-radius:var(--radius-s)}.tab-item:hover{text-decoration:none}.tab-item.active{color:var(--brand)}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-head .sub{color:var(--text-2);margin-top:4px}.page-head .actions{display:flex;gap:8px;flex-wrap:wrap}.crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);margin-bottom:6px}.crumbs a{color:var(--text-2)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:28px 0 12px}.section-title h2{font-size:15px}.section-title:first-child{margin-top:0}@media(max-width:639px){h1{font-size:22px}.page-head{margin-bottom:16px;align-items:flex-start}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease),transform .1s var(--ease);text-decoration:none}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-text)}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--bad-text)}.btn.danger.solid{background:var(--bad);border-color:var(--bad);color:#fff}.btn.sm{height:32px;padding:0 10px;font-size:13px}.btn.lg{height:44px;padding:0 18px}.btn.icon{width:36px;padding:0}.btn.icon.sm{width:32px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:20px;min-width:0}.card.pad-0{padding:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.card-head h2,.card-head h3{font-size:14px}.card.clickable{cursor:pointer;transition:border-color .15s var(--ease),transform .15s var(--ease);text-align:left;color:inherit;width:100%;display:block;font:inherit}.card.clickable:hover{border-color:color-mix(in srgb,var(--brand) 40%,var(--border));text-decoration:none}.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:500;background:var(--surface-2);color:var(--text-2);white-space:nowrap}.pill .dot{width:6px;height:6px;border-radius:99px;background:currentColor}.pill.ok{background:var(--ok-soft);color:var(--ok-text)}.pill.warn{background:var(--warn-soft);color:var(--warn-text)}.pill.bad{background:var(--bad-soft);color:var(--bad-text)}.pill.brand{background:var(--brand-soft);color:var(--brand)}.pill.on{background:var(--on-soft);color:var(--on)}.ok-text{color:var(--ok-text)}.warn-text{color:var(--warn-text)}.bad-text{color:var(--bad-text)}.banner{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius);border:1px solid transparent;margin-bottom:16px}.banner svg{flex:0 0 auto;margin-top:1px}.banner.bad{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 30%,transparent)}.banner.bad svg{color:var(--bad)}.banner.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.banner.warn svg{color:var(--warn)}.banner.info{background:var(--brand-soft)}.banner.info svg{color:var(--brand)}.banner .t1{font-weight:600}.banner>.btn{flex:0 0 auto}@media(max-width:560px){.banner:has(>.btn){flex-wrap:wrap}}.ota-bar{height:6px;margin-top:8px;border-radius:99px;background:color-mix(in srgb,var(--brand) 15%,transparent);overflow:hidden}.ota-bar>span{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .4s ease}.error-box{padding:10px 12px;border-radius:var(--radius-s);background:var(--bad-soft);color:var(--bad-text);font-size:13px}.tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}@media(max-width:639px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.tile{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:112px;padding:14px;border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);text-align:left;transition:background .15s var(--ease),border-color .15s var(--ease),transform .12s var(--ease);min-width:0}.tile.actionable{cursor:pointer}.tile.actionable:active{transform:scale(.98)}.tile.actionable:hover{border-color:color-mix(in srgb,var(--text-3) 50%,var(--border))}.tile.on{background:var(--on-soft);border-color:color-mix(in srgb,var(--on) 35%,var(--border))}.tile.unavailable{opacity:.55}.tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.tile-icon{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);flex:0 0 auto;transition:background .15s var(--ease),color .15s var(--ease)}.tile.on .tile-icon{background:var(--on);color:#fff}.tile-more{width:32px;height:32px;margin:-6px -6px 0 0;border:0;background:none;color:var(--text-3);border-radius:8px;display:grid;place-items:center;cursor:pointer}.tile-more:hover{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}.tile-name{font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tile-state{font-size:13px;color:var(--text-2);display:flex;align-items:center;gap:6px;min-height:18px}.tile-state .udot{width:7px;height:7px;border-radius:9px;background:var(--warn);flex:0 0 auto}.tile-value{font-size:24px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.tile-value .unit{font-size:14px;font-weight:500;color:var(--text-2);margin-left:2px}.tile-controls{display:flex;align-items:center;gap:8px}.tile-controls input[type=range]{flex:1;min-width:0}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.stepper button{width:32px;height:30px;border:0;background:none;cursor:pointer;border-radius:999px;display:grid;place-items:center}.stepper button:hover{background:var(--surface-2)}.stepper span{min-width:52px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600;font-size:13px}.tile.wide{grid-column:span 2}@media(max-width:639px){.tile.wide{grid-column:span 2}}.switch{position:relative;width:40px;height:24px;border-radius:999px;background:var(--border);border:0;cursor:pointer;flex:0 0 auto;transition:background .15s var(--ease);padding:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:99px;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s var(--ease)}.switch.on{background:var(--brand)}.switch.on:after{transform:translate(16px)}.switch:disabled{opacity:.5}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border-radius:10px;max-width:100%;overflow-x:auto}.segmented button{height:30px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--text-2);font-weight:500;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-card)}:root[data-theme=dark] .segmented button.active{box-shadow:0 0 0 1px var(--border)}.chips{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:none}.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-weight:500;white-space:nowrap;cursor:pointer;transition:all .15s var(--ease)}.chip:hover{color:var(--text);text-decoration:none}.chip.active{background:var(--text);border-color:var(--text);color:var(--bg)}.chip .n{font-size:12px;opacity:.7}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tabs a,.tabs button{height:40px;padding:0 12px;border:0;background:none;color:var(--text-2);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.tabs a:hover,.tabs button:hover{color:var(--text);text-decoration:none}.tabs .active{color:var(--text);border-bottom-color:var(--brand)}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--text);min-width:0}.field .hint{font-weight:400;color:var(--text-3);font-size:12px}.field-row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.check{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.search{position:relative;display:flex;align-items:center}.search svg{position:absolute;left:10px;color:var(--text-3);pointer-events:none}.search input{padding-left:34px;width:100%}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.setting-row:last-child{border-bottom:0;padding-bottom:0}.setting-row:first-child{padding-top:0}.setting-row .t1{font-weight:500}.setting-row .t2{color:var(--text-2);font-size:13px;margin-top:2px}.kv{display:grid;grid-template-columns:fit-content(40%) minmax(0,1fr);margin:0}.kv dt,.kv dd{padding:9px 0;border-bottom:1px solid var(--border);margin:0;min-width:0}.kv dt{color:var(--text-2);padding-right:16px}.kv dd{text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.kv dt:nth-last-child(2),.kv dd:last-child{border-bottom:0}.kv.compact dt,.kv.compact dd{padding:6px 0;font-size:13px}.table-wrap{overflow:auto;border-radius:var(--radius)}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}th{position:sticky;top:0;z-index:1;background:var(--surface-2);text-align:left;font-weight:500;font-size:12px;color:var(--text-2);padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr.click{cursor:pointer}tbody tr:hover td{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}tbody tr.selected td{background:var(--brand-soft)}td.num,th.num{text-align:right}tr.flash td{animation:flash 1.4s var(--ease)}@keyframes flash{0%{background:color-mix(in srgb,var(--brand) 18%,transparent)}}.table-card{padding:0;overflow:hidden}.table-card .table-wrap{border-radius:0}.conf{display:inline-block;width:40px;height:5px;border-radius:9px;background:var(--surface-2);overflow:hidden;vertical-align:middle;margin-left:8px}.conf i{display:block;height:100%;background:var(--brand);border-radius:9px}.bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px;vertical-align:-1px}.bars i{width:3px;border-radius:1px;background:var(--border)}.bars i.on{background:var(--text-2)}.bars i:nth-child(1){height:4px}.bars i:nth-child(2){height:7px}.bars i:nth-child(3){height:10px}.bars i:nth-child(4){height:12px}.scrim{position:fixed;inset:0;z-index:60;background:var(--scrim);animation:fade .2s var(--ease)}@keyframes fade{0%{opacity:0}}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(480px,100%);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-pop);animation:slide-in .2s var(--ease)}.drawer.wide{width:min(640px,100%)}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.drawer-head h2{font-size:16px}.drawer-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px}.drawer-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.drawer-section h3{font-size:13px;color:var(--text-2);font-weight:500;margin-bottom:8px}@media(max-width:639px){.drawer{top:8vh;width:100%;border-left:0;border-radius:16px 16px 0 0;animation:sheet-in .22s var(--ease)}}@keyframes sheet-in{0%{transform:translateY(40px);opacity:0}}.dialog-wrap{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:16px;background:var(--scrim);animation:fade .15s var(--ease)}.dialog{width:min(480px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-pop);padding:20px;animation:pop .15s var(--ease)}.dialog.wide{width:min(640px,100%)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;max-height:85vh;overflow-y:auto;background:var(--surface);border-radius:16px 16px 0 0;padding:8px 12px calc(16px + env(safe-area-inset-bottom));animation:sheet-in .22s var(--ease)}.sheet .grabber{width:36px;height:4px;border-radius:9px;background:var(--border);margin:4px auto 8px}.toasts{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius);background:var(--text);color:var(--bg);box-shadow:var(--shadow-pop);font-size:13px;animation:pop .15s var(--ease)}.toast.error{background:var(--bad);color:#fff}.toast svg{flex:0 0 auto;margin-top:1px}@media(max-width:639px){.toasts{left:16px;right:16px;bottom:84px;max-width:none}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:40px 20px}.empty .e-icon{width:52px;height:52px;border-radius:999px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);margin-bottom:4px}.empty .t1{font-weight:600;font-size:15px}.empty .t2{color:var(--text-2);max-width:420px}.empty .btn{margin-top:8px}.skel{background:linear-gradient(90deg,var(--surface-2) 0%,color-mix(in srgb,var(--surface-2) 40%,var(--surface)) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:shimmer 1.3s infinite linear;border-radius:var(--radius-s)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skel.tile{border:0;box-shadow:none}.greet{margin-bottom:20px}.greet .date{color:var(--text-2);font-size:13px;margin-bottom:2px}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:8px}@media(max-width:900px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:14px 16px;display:flex;align-items:center;gap:12px;min-width:0}.metric .m-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);flex:0 0 auto}.metric .m-icon.on{background:var(--on-soft);color:var(--on)}.metric .m-label.net{font-size:11.5px;color:var(--text-3)}.metric .m-icon.ret{background:color-mix(in srgb,var(--series-3) 14%,transparent);color:var(--series-3)}.metric .m-icon.ok{background:var(--ok-soft);color:var(--ok-text)}.metric .m-icon.bad{background:var(--bad-soft);color:var(--bad-text)}.metric .m-val{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}.metric .m-label{font-size:12px;color:var(--text-2);line-height:1.3}.climate{display:flex;gap:12px;overflow-x:auto;padding-bottom:2px}.climate .c{flex:0 0 auto;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:12px 14px}.climate .c .v{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.climate .c .l{font-size:12px;color:var(--text-2)}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.timeline li:last-child{border-bottom:0}.timeline .ic{width:32px;height:32px;border-radius:99px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2)}.timeline .ic.on{background:var(--on-soft);color:var(--on)}.timeline .ic.cmd{background:var(--brand-soft);color:var(--brand)}.timeline .ic.ok{background:var(--ok-soft);color:var(--ok-text)}.timeline .ic.warn{background:var(--warn-soft);color:var(--warn-text)}.timeline .ic.bad{background:var(--bad-soft);color:var(--bad-text)}.timeline.gw-events .t2{white-space:normal;overflow-wrap:anywhere}.timeline .t1{font-weight:500;overflow:hidden;text-overflow:ellipsis}.timeline .t2{font-size:12px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline time{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.day-label{font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin:20px 0 4px}.day-label:first-child{margin-top:0}.room-card{display:flex;flex-direction:column;gap:14px}.room-card .r-top{display:flex;align-items:center;gap:12px}.room-card .r-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2)}.room-card.lit .r-icon{background:var(--on-soft);color:var(--on)}.room-card .r-stats{display:flex;gap:16px;font-size:13px;color:var(--text-2)}.gw-card .gw-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}.gw-card .gw-top>.pill{flex:0 1 auto;min-width:0;max-width:50%;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:22px}.gw-card .gw-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);flex:0 0 auto}.gw-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.gw-head .gw-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.stat{background:var(--surface-2);border-radius:var(--radius);padding:12px 14px}.stat .l{font-size:12px;color:var(--text-2)}.stat .v{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}.rail{display:inline-block;font-size:11px;font-weight:600;padding:2px 6px;border-radius:5px;margin-left:4px;background:var(--ok-soft);color:var(--ok-text)}.rail.off{background:var(--bad-soft);color:var(--bad-text)}.split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:16px;align-items:start}.split .detail{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}@media(max-width:1100px){.split{grid-template-columns:minmax(0,1fr)}.split .detail{display:none}}.code-box{font-family:var(--mono);font-size:34px;font-weight:600;letter-spacing:.12em;text-align:center;padding:18px;border-radius:var(--radius);background:var(--surface-2);border:1px dashed var(--border)}.steps{margin:0;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:10px}.steps li{counter-increment:s;display:grid;grid-template-columns:24px 1fr;gap:10px;font-size:13px;color:var(--text-2)}.steps li:before{content:counter(s);width:22px;height:22px;border-radius:99px;background:var(--brand-soft);color:var(--brand);font-weight:600;font-size:12px;display:grid;place-items:center}.bulkbar{position:sticky;bottom:16px;z-index:10;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding:10px 12px 10px 16px;border-radius:var(--radius);background:var(--text);color:var(--bg);box-shadow:var(--shadow-pop);animation:pop .15s var(--ease)}.bulkbar select{background:transparent;color:var(--bg);border-color:color-mix(in srgb,var(--bg) 35%,transparent)}.bulkbar select option{color:var(--text);background:var(--surface)}.bulkbar .btn{background:var(--bg);color:var(--text);border-color:transparent}.bulkbar .btn.ghost{background:transparent;color:var(--bg)}@media(max-width:639px){.bulkbar{bottom:80px}}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.login-form{display:flex;flex-direction:column;justify-content:center;padding:48px clamp(24px,8vw,120px);gap:28px;background:var(--surface)}.login-form form{max-width:380px;width:100%}.login-art{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:56px;color:#fff;background:radial-gradient(120% 90% at 85% 10%,#8b5cf6 0%,transparent 55%),radial-gradient(90% 80% at 10% 100%,#f59e0b 0%,transparent 50%),linear-gradient(160deg,#3442b8,#1b2160)}.login-art .big{font-size:34px;font-weight:600;letter-spacing:-.02em;line-height:1.15;max-width:460px}.login-art .sub{margin-top:12px;opacity:.8;max-width:420px}.login-art .glass{position:absolute;top:56px;right:56px;left:56px;display:grid;grid-template-columns:repeat(2,minmax(0,200px));gap:12px}.login-art .glass div{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1f;border:1px solid rgb(255 255 255 / .2);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:18px}.login-art .glass .gi{width:32px;height:32px;border-radius:99px;display:grid;place-items:center;background:#fff3}.login-art .glass .on .gi{background:#fbbf24;color:#1f1300}@media(max-width:900px){.login{grid-template-columns:minmax(0,1fr)}.login-art{display:none}}.diag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}pre.raw{margin:0;padding:12px;border-radius:var(--radius-s);background:var(--surface-2);font-family:var(--mono);font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}details>summary{cursor:pointer;color:var(--text-2);font-size:13px}.log{list-style:none;margin:0;padding:0;font-size:13px}.log li{display:grid;grid-template-columns:64px 70px minmax(0,1fr) auto;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);align-items:center}.log li:last-child{border-bottom:0}.kbd{font-family:var(--mono);font-size:11px;padding:1px 5px;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;color:var(--text-2)}.ota.sent,.ota.queued,.ota.pending{color:var(--warn-text)}.ota.done{color:var(--ok-text)}.ota.failed{color:var(--bad-text)}.homes-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.enc-state{display:flex;width:fit-content;margin-bottom:2px;align-items:center;gap:4px;color:var(--text-2)}.enc-state svg{flex:0 0 auto}.enc-state.ok{color:var(--ok-text)}.enc-state.bad{color:var(--bad-text);font-weight:500}.field input.mono{font-size:14px;letter-spacing:.02em}.field .error-text{color:var(--bad-text)}.field input[aria-invalid=true]{border-color:var(--bad)}.dialog-actions.split{flex-wrap:wrap}.dialog-actions.split>.lead{margin-right:auto}@media(max-width:480px){.dialog-actions.split>.lead{flex-basis:100%;justify-content:flex-start;padding-left:0}}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.brand-row .brand{flex:1 1 auto;min-width:0}.bell{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:8px;color:var(--text-2);flex:0 0 auto;margin-bottom:12px;transition:background .15s ease-out,color .15s ease-out}.bell:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.bell.mobile{width:44px;height:44px;margin:0}.bell-badge{position:absolute;top:2px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--bad);color:#fff;font-size:11px;font-weight:600;line-height:16px;text-align:center;font-variant-numeric:tabular-nums;border:2px solid var(--surface)}@media(max-width:1023px)and (min-width:640px){.brand-row{flex-direction:column;gap:0}}.access-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:20px;border-radius:8px;background:var(--brand-soft);color:var(--text);font-size:13px}.access-banner svg{color:var(--brand);flex:0 0 auto}.notif-list{list-style:none;margin:0;padding:0}.notif{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s ease-out}.notif:last-child{border-bottom:0}.notif:hover{background:var(--surface-2)}.notif:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.notif .n-ic{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2)}.notif.sev-critical .n-ic{background:var(--bad-soft);color:var(--bad)}.notif.sev-warning .n-ic{background:var(--warn-soft);color:var(--warn)}.notif.resolved .n-ic{background:var(--ok-soft);color:var(--ok)}.notif .n-text{font-size:14px;color:var(--text-2)}.notif.unread .n-text{color:var(--text);font-weight:500}.notif .n-meta{font-size:12px;color:var(--text-3);margin-top:2px}.notif time{font-size:12px;color:var(--text-3);white-space:nowrap}.unread-dot{display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--brand);margin-left:8px;vertical-align:middle}.alert-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;border:1px solid var(--border);background:var(--bad-soft);margin-bottom:12px;font-size:14px;color:var(--text)}.alert-banner.warning{background:var(--warn-soft)}.alert-banner>svg{color:var(--bad);flex:0 0 auto}.alert-banner.warning>svg{color:var(--warn)}.alert-banner a{margin-left:auto;white-space:nowrap}.mode-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.scene-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:12px;margin-bottom:24px}.scene-tile{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 14px;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:600;font-size:14px;text-align:left;cursor:pointer;transition:background .15s ease-out,transform .15s ease-out}.scene-tile:hover{background:var(--surface-2)}.scene-tile:active{transform:scale(.98)}.scene-tile .s-ic{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);flex:0 0 auto}.scene-tile.running .s-ic{background:var(--on-soft);color:var(--on)}.scene-tile:disabled{cursor:default;opacity:.6}.scene-tile .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auto-card{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);cursor:pointer}.auto-card:last-child{border-bottom:0}.auto-card:hover{background:var(--surface-2)}.auto-card .a-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}.auto-card.off .a-ic{background:var(--surface-2);color:var(--text-3)}.auto-card .t1{font-weight:600}.auto-card .t2{font-size:13px;color:var(--text-2);margin-top:2px}.auto-card .t3{font-size:12px;color:var(--text-3);margin-top:2px}@media(max-width:639px){.auto-card{padding:14px 16px;gap:12px}}.block-list{display:flex;flex-direction:column;gap:8px}.block{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2)}.block select,.block input{min-width:0;width:auto;flex:1 1 120px}.block input[type=number]{flex:0 1 96px}.block input[type=time]{flex:0 1 120px}.block .wide{flex:2 1 180px}.block .lbl{font-size:13px;color:var(--text-2)}.section-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:20px 0 8px}.section-label:first-child{margin-top:0}.run-log{list-style:none;margin:6px 0 0;padding:0;font-size:13px}.run-log li{display:flex;gap:8px;align-items:flex-start;padding:2px 0;color:var(--text-2)}.run-log li.bad{color:var(--bad)}.run-log svg{flex:0 0 auto;margin-top:2px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.template{display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;padding:14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;transition:background .15s ease-out,border-color .15s ease-out}.template:hover{border-color:var(--brand);background:var(--brand-soft)}.template svg{color:var(--brand)}.template .t1{font-weight:600}.template .t2{font-size:13px;color:var(--text-2)}.chip-select{display:flex;flex-wrap:wrap;gap:6px}.chip-select button{padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font:inherit;font-size:13px;cursor:pointer;min-height:32px}.chip-select button[aria-pressed=true]{background:var(--brand-soft);border-color:var(--brand);color:var(--text)}@media(max-width:639px){.chip-select button{min-height:40px}}.copy-field{display:flex;gap:8px}.copy-field input{font-family:ui-monospace,JetBrains Mono,Consolas,monospace;font-size:12px;flex:1 1 auto;min-width:0}.pref-table{width:100%;border-collapse:collapse;font-size:14px}.pref-table th{font-size:12px;font-weight:600;color:var(--text-3);text-align:center;padding:0 8px 8px}.pref-table th:first-child{text-align:left;padding-left:0}.pref-table td{padding:10px 8px;border-top:1px solid var(--border);text-align:center}.pref-table td:first-child{text-align:left;padding-left:0}.pref-table .xs{display:block}.mono{font-family:ui-monospace,JetBrains Mono,Consolas,monospace}.portfolio{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.portfolio .card{display:flex;flex-direction:column;gap:12px}.invite-wrap{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}.invite-card{width:100%;max-width:440px}.invite-card .brand{padding:0 0 20px}.pending-line{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2)}.wizard-steps{display:flex;gap:6px;list-style:none;margin:8px 0 0;padding:0;font-size:12px}.wizard-steps li{flex:1;padding-top:6px;border-top:3px solid var(--border);color:var(--text-3)}.wizard-steps li.on{border-color:var(--brand);color:var(--text);font-weight:500}.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:28px 16px;border:1.5px dashed var(--border);border-radius:var(--radius-lg, 12px);background:var(--surface-2);color:var(--text-2);text-align:center;cursor:pointer;transition:border-color .15s var(--ease)}.dropzone:hover,.dropzone:focus-within{border-color:var(--brand)}.dropzone.has{border-style:solid;border-color:var(--brand);background:var(--brand-soft);color:var(--text)}.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}input.attention{border-color:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 25%,transparent)}.ets-table td{vertical-align:top}.ets-table tr.dim td{opacity:.6}.cell-input{width:100%;min-width:140px;height:32px;padding:0 8px}.ga-list{display:flex;flex-direction:column;gap:2px;white-space:nowrap}.reasons{margin:6px 0 0;padding:0;list-style:none;font-size:11px;color:var(--text-3);max-width:200px}.card-pad{padding:12px 16px}.h3{font-size:14px;font-weight:600;margin:4px 0 8px}.h2{font-size:20px;font-weight:600}.list{list-style:none;margin:0;padding:0}.list li{padding:10px 0;border-bottom:1px solid var(--border)}.list li:last-child{border-bottom:0}.warn-t{color:var(--warn)}.card.flat{box-shadow:none;background:var(--surface-2)}.result-hero{display:flex;gap:14px;align-items:center;padding:16px;border-radius:var(--radius);background:var(--ok-soft);color:var(--ok)}.result-hero .muted{color:var(--text-2)}.row.wrap{flex-wrap:wrap}.drawer.wide:has(.ets-table){width:min(980px,100%)}@media(max-width:720px){.ets-table thead{display:none}.ets-table,.ets-table tbody{display:block;min-width:0}.ets-table tr{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;column-gap:8px;row-gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.ets-table td{display:block;padding:0;border:0}.ets-table td:nth-child(1){grid-column:1;grid-row:1;padding-top:8px}.ets-table td:nth-child(2){grid-column:2;grid-row:1}.ets-table td:nth-child(7){grid-column:3;grid-row:1;padding-top:8px}.ets-table td[data-label]{grid-column:2 / span 2}.ets-table td[data-label]:before{content:attr(data-label);display:block;font-size:11px;color:var(--text-3);margin-bottom:2px}.ets-table td select,.ets-table .cell-input{width:100%;min-width:0}.ets-table .ga-list{white-space:normal}.ets-table .reasons{max-width:none}}@media(max-width:720px){.ets-table td[data-short]{padding-top:0;text-align:center}.ets-table td[data-short]:before{content:attr(data-short);display:block;font-size:10px;color:var(--text-3);margin-bottom:2px}}.tunnel-row{align-items:flex-start}.tunnel-main{display:flex;flex-direction:column;gap:8px;min-width:0}.tunnel-main .t1{display:flex;align-items:center;gap:6px}.tunnel-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tunnel-dur{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tunnel-warn{margin:0;padding:10px 12px}.setting-row>select,.setting-row>.btn,.setting-row>.switch{flex-shrink:0}:root{--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--seq-lo: #e8f0fb;--seq-hi: #184f95;--chart-grid: #eceef2;--chart-axis: #d0d5dd}:root[data-theme=dark]{--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #0ca30c;--seq-lo: #1a2030;--seq-hi: #6da7ec;--chart-grid: #1f2430;--chart-axis: #2c3342}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #0ca30c;--seq-lo: #1a2030;--seq-hi: #6da7ec;--chart-grid: #1f2430;--chart-axis: #2c3342}}.viz{position:relative;width:100%;touch-action:pan-y}.viz svg{display:block;overflow:visible}.viz text{fill:var(--text-3);font-size:11px;font-family:var(--font);font-variant-numeric:tabular-nums}.viz .grid{stroke:var(--chart-grid);stroke-width:1}.viz .base{stroke:var(--chart-axis);stroke-width:1}.viz .cross{stroke:var(--text-3);stroke-width:1;stroke-dasharray:3 3}.viz .dot{stroke:var(--surface);stroke-width:2}.viz-tip{position:absolute;z-index:5;pointer-events:none;min-width:120px;max-width:240px;padding:8px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-pop);font-size:12px;line-height:1.45;color:var(--text);font-variant-numeric:tabular-nums}.viz-tip .tt{color:var(--text-2);margin-bottom:2px}.viz-tip .row{display:flex;gap:6px;align-items:center;justify-content:space-between}.viz-tip .k{display:flex;align-items:center;gap:6px;color:var(--text-2)}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;flex:0 0 auto}.swatch.line{height:3px;border-radius:2px}.swatch.hatch{background:repeating-linear-gradient(45deg,var(--text-3) 0 1px,transparent 1px 4px)!important;border:1px solid var(--border)}.viz-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--text-2);margin:0 0 8px;padding:0;list-style:none}.viz-legend li{display:flex;align-items:center;gap:6px}.viz-card .card-head{flex-wrap:wrap;gap:8px}.viz-card .viz-sub{font-size:12px;color:var(--text-3);margin:-4px 0 8px}.viz-empty{display:grid;place-items:center;min-height:120px;color:var(--text-3);font-size:13px;text-align:center;border:1px dashed var(--border);border-radius:8px;padding:16px}.viz-table{max-height:260px;overflow:auto}.viz-table table{width:100%;font-size:12px;font-variant-numeric:tabular-nums}.viz-table th,.viz-table td{text-align:right;padding:4px 8px;white-space:nowrap}.viz-table th:first-child,.viz-table td:first-child{text-align:left}.spark{display:block;width:100%;height:28px;color:var(--brand)}.spark path{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round}.hbars{display:grid;gap:8px}.hbars .hb{display:grid;grid-template-columns:minmax(70px,30%) 1fr auto;gap:8px;align-items:center;font-size:13px}.hbars .bar{height:10px;border-radius:0 4px 4px 0;background:var(--series-1);min-width:2px}.hbars .n{color:var(--text-2);font-variant-numeric:tabular-nums}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}.tile-spark{margin-top:6px;color:var(--brand)}.climate .c .spark{margin-top:6px}.activity-spark{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:12px}.activity-spark .spark{width:96px;height:22px}@media(max-width:480px){.activity-spark .small{display:none}}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:900px){.grid-2{grid-template-columns:minmax(0,1fr)}}.num{font-variant-numeric:tabular-nums}.energy-summary{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1100px){.energy-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.energy-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-summary .energy-live{grid-column:1 / -1}}.metric .m-val.big{font-size:22px;white-space:nowrap}.energy-summary .m-val{white-space:nowrap}.metric .m-label.delta.up{color:var(--warn-text, var(--text-2))}.metric .m-label.delta.down{color:var(--ok-text, var(--text-2))}.energy-chans{margin:4px 0 12px}.chip.static{cursor:default;height:28px;font-size:13px}.chip.static b{color:var(--text);font-weight:600}.chip.static.strong{border-color:var(--on)}.range-label{min-width:120px;text-align:center;color:var(--text-2)}.plus-note{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:13px;color:var(--text-2)}.plus-note svg{color:var(--brand)}.plus-note.big{margin:16px 0;padding:12px 16px;border-radius:var(--radius);background:var(--brand-soft);color:var(--text)}.meter-list{display:flex;flex-direction:column}.meter-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--border)}.meter-row:last-child{border-bottom:0}.howto{margin:8px 0;padding-left:20px;display:flex;flex-direction:column;gap:6px;color:var(--text)}.copy-box{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);margin:4px 0 8px}.copy-box code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px;-webkit-user-select:all;user-select:all}@media(max-width:640px){.hide-sm{display:none}}.tariff-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;border-radius:8px;background:var(--surface-2)}.tariff-row input[type=time]{width:110px}.tariff-row input[inputmode=decimal]{width:96px}.day-picks{display:flex;gap:4px;flex-wrap:wrap}.day-picks .chip{height:28px;padding:0 8px;font-size:12px}.fp-wrap{position:relative}.fp-box{position:relative;width:100%;overflow:hidden;border-radius:var(--radius-lg, 12px);border:1px solid var(--border);background:var(--surface);touch-action:none;-webkit-user-select:none;user-select:none}.fp-box.drawing{cursor:crosshair}.fp-inner{position:absolute;inset:0;transform-origin:0 0}.fp-inner img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.fp-rooms{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.fp-rooms polygon{fill:var(--brand);fill-opacity:.08;stroke:var(--brand);stroke-width:2;vector-effect:non-scaling-stroke}.fp-rooms polyline.draw{fill:none;stroke:var(--brand);stroke-width:2;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.fp-room-label{position:absolute;font-size:12px;font-weight:600;color:var(--brand);background:var(--surface);padding:1px 6px;border-radius:999px;white-space:nowrap;pointer-events:none;opacity:.9}.fp-edit .fp-room-label{pointer-events:auto;cursor:grab}.fp-item{position:absolute;transform-origin:center}.fp-dev{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;padding:0;cursor:pointer;color:var(--text);min-width:44px;min-height:44px}.fp-dev .fp-ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);box-shadow:0 1px 3px #1018282e;color:var(--text-2);transition:all .15s var(--ease, ease-out)}.fp-dev.on .fp-ic{background:var(--on-soft);border-color:var(--on);color:var(--on);box-shadow:0 0 0 4px color-mix(in srgb,var(--on) 22%,transparent),0 0 22px 6px color-mix(in srgb,var(--on) 45%,transparent)}.fp-dev.off-line{opacity:.5}.fp-dev .fp-val{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;background:var(--surface);border-radius:999px;padding:0 6px;white-space:nowrap;box-shadow:0 1px 2px #1018281f}.fp-edit .fp-item{cursor:grab}.fp-edit .fp-dev{pointer-events:none}.fp-zoom{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px}.fp-palette{margin-top:12px}.fp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.fp-chips .chip.static{padding-right:2px}.fp-hint{margin-top:8px}@media(prefers-reduced-motion:reduce){.fp-dev .fp-ic{transition:none}}.scan-progress{margin-top:12px;display:flex;flex-direction:column;gap:6px}.progress{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress>span{display:block;height:100%;background:var(--brand);border-radius:999px;transition:width .3s var(--ease, ease-out)}.away-bar{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:10px;margin-top:14px}.away-btn{justify-content:center;font-weight:600;background:var(--surface)}@media(max-width:639px){.away-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}.away-ok{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius-s);background:var(--ok-soft);color:var(--ok-text);font-weight:600}.away-list{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:50vh;overflow:auto}.away-list li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.away-list li:last-child{border-bottom:0}.away-list .ic{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2)}.away-list .ic.on{background:var(--on-soft);color:var(--on)}.away-list .t2{font-size:13px;color:var(--text-2)}.vacation-banner{align-items:center}.vacation-banner .btn{flex:0 0 auto}.star-btn.on{color:var(--on)}.tile-top .star-btn{margin-left:auto;margin-right:-4px}.fav-board{margin-bottom:24px}.fav-board .section-title h2{display:inline-flex;align-items:center;gap:8px}.fav-star{color:var(--on)}.fav-tiles .fav-chart{grid-column:1 / -1;min-width:0}.scene-pin .tile-icon.scene-ic{background:var(--brand-soft);color:var(--brand)}.scene-pin.on .tile-icon.scene-ic{background:var(--on);color:#fff}.fav-arrange{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-width:640px}.fav-row{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 10px;min-height:52px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .15s var(--ease),opacity .15s var(--ease)}.fav-row .grip{color:var(--text-3);cursor:grab;flex:0 0 auto}.fav-row .ic{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);flex:0 0 auto}.fav-row .t1{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-row .t2{font-size:12px;color:var(--text-3)}.fav-row.dragging{opacity:.45}.fav-row.over{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}@media(max-width:639px){.fav-row .grip{display:none}.fav-row .btn.icon.sm{width:40px;height:40px}}.sched-nav{gap:6px;flex-wrap:nowrap}.sched-bar{justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.sched-card{padding:0;overflow:hidden}.sched-head{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border);background:var(--surface)}.sched-dayhead{padding:10px 8px 8px;border-left:1px solid var(--border);min-width:0}.sched-dayhead .t1{font-weight:600;font-size:13px}.sched-dayhead.today .t1{color:var(--brand)}.sun-line{display:flex;align-items:center;gap:3px;white-space:nowrap;overflow:hidden}.sched-scroll{max-height:min(68vh,760px);overflow-y:auto;overflow-x:hidden}.sched-body{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr)}.sched-body>.sched-gutter{position:relative}.sched-hour{position:absolute;right:8px;transform:translateY(-50%)}.sched-cols{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background-image:linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:100% 30px;touch-action:none}.sched-col{position:relative;border-left:1px solid var(--border);min-width:0}.sched-col.today{background:color-mix(in srgb,var(--brand) 4%,transparent)}.sched-col.drop{background:color-mix(in srgb,var(--brand) 9%,transparent)}.sched-night{position:absolute;left:0;right:0;background:color-mix(in srgb,var(--text) 4%,transparent);pointer-events:none}.sched-now{position:absolute;left:0;right:0;height:2px;background:var(--bad);z-index:2;pointer-events:none}.sched-item{position:absolute;display:flex;align-items:center;gap:4px;padding:0 6px;border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);border-radius:6px;background:var(--brand-soft);color:var(--text);font:inherit;font-size:12px;line-height:1.2;text-align:left;overflow:hidden;cursor:pointer;z-index:1;align-content:flex-start}.sched-item.can-drag{cursor:grab}.sched-item.dragging{cursor:grabbing;z-index:5;box-shadow:var(--shadow-pop);opacity:.92}.sched-item:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.sched-item .ic{color:var(--brand);display:inline-grid;flex:0 0 auto}.sched-item .tm{font-weight:600;flex:0 0 auto}.sched-item .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sched-item.k-sun{background:var(--on-soft);border-color:color-mix(in srgb,var(--on) 40%,transparent)}.sched-item.k-sun .ic{color:var(--on)}.sched-item.k-presence,.sched-item.k-vacation{align-items:flex-start;padding-top:4px;background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,transparent);z-index:0}.sched-item.k-presence .ic,.sched-item.k-vacation .ic{color:var(--ok-text)}.sched-item.off{opacity:.5}.sched-list .card-head{flex-wrap:wrap;gap:4px 12px}.sched-rows{list-style:none;margin:0;padding:0}.sched-rows li{display:flex;align-items:center;gap:4px;border-top:1px solid var(--border)}.sched-rows li:first-child{border-top:0}.sched-rows li.off{opacity:.55}.sched-row{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:48px 30px minmax(0,1fr);gap:10px;align-items:center;padding:10px 0;min-height:52px;border:0;background:none;text-align:left;cursor:pointer}.sched-row .tm{font-weight:600}.sched-row .ic{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}.sched-row .ic.k-sun{background:var(--on-soft);color:var(--on)}.sched-row .ic.k-presence,.sched-row .ic.k-vacation{background:var(--ok-soft);color:var(--ok-text)}.sched-row .t1{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sched-row .t2{display:block;font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glance{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:20px;align-items:start}@media(min-width:860px){.glance{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.glance.one{grid-template-columns:minmax(0,1fr);max-width:560px}}.glance>.card{margin:0;min-width:0}.health-head{display:flex;align-items:center;gap:14px}.score-ring{flex:0 0 auto}.score-ring text{fill:var(--text);font-size:17px;font-weight:650}.problems{list-style:none;margin:14px 0 0;padding:0}.problem{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}.problem .p-body{min-width:0}.problem .t1{font-weight:500;overflow:hidden;text-overflow:ellipsis}.problem .t2{font-size:13px;color:var(--text-2)}.problem .btn{white-space:nowrap}@media(max-width:559px){.problem{grid-template-columns:minmax(0,1fr) auto}.problem>.pill{grid-column:1 / -1;justify-self:start}}.weather-now{display:flex;align-items:center;gap:12px}.weather-now .w-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);flex:0 0 auto}.weather-now .w-temp{font-size:34px;font-weight:650;letter-spacing:-.02em;line-height:1}.weather-now .w-cond{font-weight:600}.weather-facts{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px}.weather-facts span{display:inline-flex;align-items:center;gap:5px}.weather-hours{list-style:none;margin:14px 0 0;padding:10px 0 0;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.weather-hours li{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;color:var(--text-2)}.weather-hours li b{color:var(--text)}@media(max-width:479px){.weather-hours{grid-template-columns:repeat(6,minmax(0,1fr))}.weather-hours li:nth-child(n+7){display:none}}.weather-off{display:flex;gap:10px;align-items:flex-start;color:var(--text-2)}.weather-off svg{flex:0 0 auto;margin-top:2px}.day-picker{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.day-picker input[type=date]{width:auto;min-width:0;max-width:160px}.day-tl .timeline li{padding:8px 0}.fleet-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.fleet-tools input[type=search]{flex:1 1 220px;min-width:0;max-width:360px}.fleet-tools .chip-select{flex:1 1 auto}.fleet-list{display:flex;flex-direction:column;gap:10px}.fleet-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px}.fleet-row .name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.fleet-top{display:flex;gap:6px;align-items:baseline;min-width:0;font-size:13px;color:var(--text-2)}.fleet-top span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-row .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.fleet-row .flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}@media(max-width:639px){.fleet-row{grid-template-columns:auto minmax(0,1fr)}.fleet-row .actions{grid-column:1 / -1;justify-content:flex-start}}.sev-dot{width:8px;height:8px;border-radius:99px;flex:0 0 auto;align-self:center}.sev-dot.critical{background:var(--bad)}.sev-dot.warning{background:var(--warn)}.sev-dot.info{background:var(--brand)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nowrap{white-space:nowrap}.switcher.ws-admin .avatar{background:var(--brand-soft);color:var(--brand)}.switcher.ws-pro .avatar{background:var(--ok-soft);color:var(--ok-text)}.nav-group{display:flex;flex-direction:column;gap:2px}.sheet .menu-item.active{background:var(--brand-soft);color:var(--brand)}.access-banner .btn{flex:0 0 auto}.access-banner.admin{background:var(--warn-soft)}.access-banner.admin svg{color:var(--warn-text)}@media(max-width:639px){.access-banner{flex-wrap:wrap}}.list-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.searchbox{position:relative;display:flex;align-items:center;flex:1 1 260px;max-width:380px}.searchbox svg{position:absolute;left:10px;color:var(--text-3);pointer-events:none}.searchbox input{padding-left:34px;width:100%}select.filter,input.filter{width:auto;max-width:220px}.dt .th-sort{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer}.dt .th-sort:hover,.dt th[aria-sort] .th-sort{color:var(--text)}.dt td.sel,.dt th.sel{width:36px}.dt .skel-row td{padding:12px}.dt .empty{padding:32px 16px}@media(max-width:639px){.dt.table-card{background:none;border:0;box-shadow:none;overflow:visible}.dt .table-wrap{overflow:visible}.dt table,.dt tbody{display:block}.dt thead{display:none}.dt tbody tr{display:block;padding:10px 14px;margin-bottom:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.dt tbody tr:hover td{background:none}.dt tbody tr.selected{border-color:var(--brand)}.dt td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0;border:0;text-align:right;min-width:0}.dt td:before{content:attr(data-label);flex:0 0 auto;color:var(--text-3);font-size:12px;text-align:left}.dt td:not([data-label]):before,.dt td[data-label=""]:before{content:none}.dt td:not([data-label]),.dt td[data-label=""]{justify-content:flex-end}.dt td>*{min-width:0}.dt td.primary{display:block;text-align:left;padding:2px 0 8px;margin-bottom:4px;border-bottom:1px solid var(--border)}.dt td.primary:before{content:none}.dt td.phone-hide{display:none}.dt .skel-row{display:block!important}.dt .skel-row td{display:block}.dt .empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}}.pager{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.detail-head .crumbs{flex-wrap:wrap}.crumb{display:inline-flex;align-items:center;gap:6px;min-width:0}.crumb .sep{color:var(--text-3)}.crumb [aria-current]{color:var(--text);max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb-back{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;color:var(--text-2)}.crumb-back:hover{background:var(--surface-2)}.detail-icon{width:44px;height:44px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}.detail-icon .avatar.lg{width:44px;height:44px}.detail-head h1{max-width:100%}.avatar.sm{width:30px;height:30px;font-size:12px}.avatar.lg{width:44px;height:44px;font-size:18px}.id-text{display:inline-flex;align-items:center;gap:2px;max-width:100%}.id-text .mono{overflow-wrap:anywhere}.btn.xs{width:22px;height:22px;padding:0;border-radius:6px}.section-h{font-size:15px;margin:24px 0 10px}pre.json{margin:0;padding:12px;background:var(--surface-2);border-radius:var(--radius-s);font-family:var(--mono);font-size:12px;line-height:1.5;overflow:auto;max-height:420px;white-space:pre-wrap;overflow-wrap:anywhere}.tab-count{font-size:11px;font-weight:600;min-width:18px;height:18px;padding:0 5px;border-radius:999px;display:inline-grid;place-items:center;background:var(--surface-2);color:var(--text-2)}.tabs .active .tab-count{background:var(--brand-soft);color:var(--brand)}a.stat{color:inherit}a.stat:hover{text-decoration:none;background:var(--brand-soft)}.card>.kv{margin-top:-4px}.device-hero{grid-template-columns:minmax(0,1fr)!important}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.kpi{display:flex;flex-direction:column;gap:4px;padding:14px 16px;min-width:0;color:inherit}a.kpi:hover{text-decoration:none;border-color:color-mix(in srgb,var(--brand) 40%,var(--border))}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.kpi-l{font-size:12px;color:var(--text-2);font-weight:500}.kpi-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2)}.kpi-icon.brand{background:var(--brand-soft);color:var(--brand)}.kpi-icon.ok{background:var(--ok-soft);color:var(--ok-text)}.kpi-icon.warn{background:var(--warn-soft);color:var(--warn-text)}.kpi-icon.bad{background:var(--bad-soft);color:var(--bad-text)}.kpi-v{font-size:24px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi-h{font-size:12px;color:var(--text-3)}@media(max-width:639px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{padding:12px}.kpi-v{font-size:20px}.list-toolbar .searchbox{max-width:none;flex-basis:100%}select.filter,input.filter{flex:1 1 140px;max-width:none}}.login.single{grid-template-columns:minmax(0,1fr)}.login.single .login-form{align-items:center}@media(max-width:639px){.tabbar{grid-template-columns:repeat(5,minmax(0,1fr))}.tab-item{min-width:0;overflow:hidden}.detail-head .sub{overflow-wrap:anywhere}}.detail-head .row.nowrap{min-width:0}.detail-head .row.nowrap>*{min-width:0}.detail-head .sub{white-space:normal}.has-tip{text-decoration:underline dotted;text-decoration-color:var(--text-3);text-underline-offset:3px;cursor:help}.wifi-sig{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;vertical-align:middle}.wifi-sig svg{flex:0 0 auto}.sig-ok{color:var(--ok)}.sig-warn{color:var(--warn)}.sig-bad{color:var(--bad)}.stat .v.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.stat .v .sub-v{font-size:14px;font-weight:400}.stat .v.bad-text{color:var(--bad-text)}.overview-cols{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}@media(max-width:1100px){.overview-cols{grid-template-columns:minmax(0,1fr)}}.kv.dense dt,.kv.dense dd{padding:4px 0;font-size:13px;line-height:1.4}.diag-card .card-head{margin-bottom:6px}.diag-grid{align-items:start}.restart-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;text-align:left}.restart-list li{display:flex;align-items:center;gap:6px;white-space:nowrap}.restart-list li .grow{flex:1 1 auto}.restart-list li>span:first-child{overflow:hidden;text-overflow:ellipsis}.pill.xs-pill{font-size:11px;height:18px;padding:0 7px;line-height:18px;vertical-align:middle}.diag-raw{margin-top:16px}.diag-raw>summary{display:flex;align-items:center;gap:6px;cursor:pointer;font-weight:600;list-style:none}.diag-raw>summary::-webkit-details-marker{display:none}.diag-raw .chev{transition:transform .15s var(--ease, ease-out)}.diag-raw[open]>summary .chev{transform:rotate(90deg)}.diag-raw[open]>summary{margin-bottom:10px}.kv.mono-keys dt{font-family:var(--mono)}.ev-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.ev-summary>div{background:var(--surface-2);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}.ev-summary .l{font-size:12px;color:var(--text-2)}.ev-summary b{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.ev-toolbar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;margin-bottom:12px}.ev-toolbar .chips{flex:1 1 420px;flex-wrap:wrap;min-width:0}.chip:disabled{opacity:.45;cursor:default}.ev-search,.ga-search{flex:0 1 280px;min-width:200px}.log-table td{vertical-align:top;padding-top:9px;padding-bottom:9px}.log-table .c-ic{width:40px;padding-right:0}.log-table .c-ev .t1{font-weight:500}.log-table .c-ev .t2{font-size:12px;color:var(--text-2);overflow-wrap:anywhere;margin-top:1px}.log-table .c-cat,.log-table .c-when{white-space:nowrap}.log-table .c-when{text-align:right;font-variant-numeric:tabular-nums}.log-table th.c-when{text-align:right}.ev-ic{width:26px;height:26px;border-radius:99px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2)}.ev-ic.ok{background:var(--ok-soft);color:var(--ok-text)}.ev-ic.warn{background:var(--warn-soft);color:var(--warn-text)}.ev-ic.bad{background:var(--bad-soft);color:var(--bad-text)}.ev-ic.brand{background:var(--brand-soft);color:var(--brand)}.ev-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px}.ev-foot .btn{margin-left:auto}.collapsible .collapse-head{display:flex;align-items:center;gap:12px;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer;font:inherit;min-height:40px}.collapsible .collapse-head .t1{display:block;font-weight:600}.collapsible .collapse-head .t2{display:block;font-size:13px;color:var(--text-2)}.collapsible .chev{color:var(--text-3);transition:transform .15s var(--ease, ease-out);flex:0 0 auto}.collapsible .chev.open{transform:rotate(180deg)}.collapse-body{margin-top:14px}.scan-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.scan-form>.field{flex:1 1 320px;max-width:520px}.scan-form>.btn{margin-top:22px}.token-input{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:40px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-s, 8px);background:var(--surface);cursor:text}.token-input:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.token-input.invalid{border-color:var(--bad)}.token-input.disabled{opacity:.6;cursor:default}.token-input input{flex:1 1 70px;min-width:70px;height:30px;border:0;outline:0;padding:0 4px;background:transparent;box-shadow:none}.token{display:inline-flex;align-items:center;gap:2px;height:28px;padding:0 4px 0 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:13px;font-weight:500}.token button{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer}.token button:hover{background:color-mix(in srgb,var(--brand) 15%,transparent)}.chip.sm-chip{height:26px;padding:0 10px;font-size:12px;gap:4px}.card-head.wrap{flex-wrap:wrap;gap:10px}.ga-table td{vertical-align:top}.ga-table .c-ga,.ga-table .c-raw,.ga-table .c-last{white-space:nowrap}.ga-table .c-val{font-weight:500;font-variant-numeric:tabular-nums}.ga-table .c-act{text-align:right;width:1%}.value-control{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.value-control input[type=range]{flex:1 1 180px}.value-control .num-input{width:120px}.pending-line.ok-text{color:var(--ok-text)}.pending-line.bad-text{color:var(--bad-text)}.release-list{border:0;margin:0;padding:0;display:grid;gap:8px;max-height:340px;overflow:auto}.release{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-s, 8px);cursor:pointer}.release.sel{border-color:var(--brand);background:var(--brand-soft)}.release input{margin-top:3px}.release .v{font-weight:600;font-variant-numeric:tabular-nums}.release .d{display:block;margin-top:2px}.danger-zone{border-color:color-mix(in srgb,var(--bad) 35%,var(--border))}.danger-zone .card-head h2{color:var(--bad-text)}@media(max-width:639px){.ev-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-search,.ga-search{flex:1 1 100%;min-width:0}.log-table thead,.ga-table thead{display:none}.log-table,.log-table tbody,.ga-table,.ga-table tbody{display:block}.log-table tr{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:2px 8px;padding:10px 0;border-bottom:1px solid var(--border)}.log-table td{display:block;padding:0;border:0}.log-table .c-ic{grid-row:span 2;width:auto}.log-table .c-cat{display:none}.log-table .c-ev{grid-column:2 / 4}.log-table .c-when{grid-column:2 / 4;text-align:left;display:flex;gap:8px;align-items:baseline}.ga-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 0;border-bottom:1px solid var(--border)}.ga-table td{display:block;padding:0;border:0;min-width:0}.ga-table .c-ga{font-weight:600}.ga-table .c-name{grid-column:1 / 3;grid-row:2}.ga-table .c-type{grid-column:1;grid-row:3}.ga-table .c-val{grid-column:2;grid-row:1;text-align:right}.ga-table .c-raw{grid-column:2;grid-row:3;text-align:right}.ga-table .c-last{grid-column:1;grid-row:4}.ga-table .c-last .xs,.ga-table .c-type .muted{display:none}.ga-table .c-act{grid-column:2;grid-row:4;width:auto}.ia-table .c-type{grid-column:2;grid-row:1;text-align:right}.ia-table .c-last{grid-column:1 / 3;grid-row:3}.scan-form>.btn{margin-top:0;width:100%}}.stat .v .mono{font-size:15px}.stat-grid.gw-stats{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.stat-grid.gw-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.kv.dense{grid-template-columns:fit-content(58%) minmax(0,1fr)}.kv.dense dt{padding-right:12px}.diag-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}@media(max-width:639px){.stat-grid.gw-stats{grid-auto-flow:row dense}.stat-grid.gw-stats>.stat:nth-child(2){grid-column:span 2}}
