@import url(https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css);.alarm-overlay[data-v-1839f83e]{position:fixed;inset:0;background:color-mix(in srgb,var(--color-shadow) 65%,transparent);display:flex;align-items:center;justify-content:center;z-index:2000}.alarm-content[data-v-1839f83e]{width:min(680px,92vw);max-height:86vh;background:var(--color-card-bg);color:var(--color-text);border:2px solid var(--color-error);border-radius:12px;box-shadow:0 12px 30px color-mix(in srgb,var(--color-error) 28%,transparent);overflow:hidden}.alarm-header[data-v-1839f83e]{display:flex;align-items:center;gap:10px;background:var(--color-error);color:var(--color-text-inverse);padding:12px 16px;font-weight:700}.alarm-header .title[data-v-1839f83e]{font-size:18px}.count-badge[data-v-1839f83e]{background:color-mix(in srgb,var(--color-shadow) 70%,transparent);color:var(--color-text-inverse);border-radius:999px;padding:2px 8px;font-size:12px}.alarm-body[data-v-1839f83e]{padding:12px 16px;overflow:auto;max-height:56vh}.alarm-list[data-v-1839f83e]{list-style:none;padding:0;margin:0;display:grid;gap:10px}.alarm-item[data-v-1839f83e]{border:1px dashed color-mix(in srgb,var(--color-border) 85%,transparent);border-radius:8px;padding:10px;background:color-mix(in srgb,var(--color-text-quaternary) 16%,transparent)}.alarm-item .name[data-v-1839f83e]{font-size:16px;font-weight:600;margin-bottom:6px;color:color-mix(in srgb,var(--color-error) 65%,var(--color-text))}.alarm-item .meta[data-v-1839f83e]{display:flex;gap:14px;font-size:12px;color:var(--color-text-secondary)}.alarm-actions[data-v-1839f83e]{padding:12px 16px 16px;display:flex;justify-content:flex-end}.btn.ack[data-v-1839f83e]{background:var(--color-card-bg);color:var(--color-error);border:1px solid var(--color-error);border-radius:8px;padding:6px 12px;cursor:pointer}.btn.ack[data-v-1839f83e]:hover{background:color-mix(in srgb,var(--color-error) 10%,transparent)}.floating-actions[data-v-234f0926]{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:12px;z-index:10000}.fab[data-v-234f0926]{width:48px;height:48px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-card-bg);color:var(--color-text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb,var(--color-primary) 15%,transparent);transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.fab[data-v-234f0926]:hover{transform:translateY(-2px);box-shadow:0 10px 26px color-mix(in srgb,var(--color-primary) 28%,transparent)}.fab[data-v-234f0926]:active{transform:translateY(0)}.fab i[data-v-234f0926]{font-size:18px}.fab.alarm.on[data-v-234f0926]{color:var(--color-text-inverse);background:linear-gradient(180deg,color-mix(in srgb,var(--color-error) 70%,var(--color-text-inverse)) 0,var(--color-error) 100%);border-color:color-mix(in srgb,var(--color-error) 85%,transparent);box-shadow:0 10px 26px color-mix(in srgb,var(--color-error) 45%,transparent),0 0 0 6px color-mix(in srgb,var(--color-error) 15%,transparent);animation:breatheRed-234f0926 1.6s ease-in-out infinite}@keyframes breatheRed-234f0926{0%{transform:translateY(0) scale(1);box-shadow:0 10px 22px color-mix(in srgb,var(--color-error) 35%,transparent),0 0 0 0 color-mix(in srgb,var(--color-error) 25%,transparent)}50%{transform:translateY(-1px) scale(1.04);box-shadow:0 12px 30px color-mix(in srgb,var(--color-error) 55%,transparent),0 0 0 8px color-mix(in srgb,var(--color-error) 12%,transparent)}to{transform:translateY(0) scale(1);box-shadow:0 10px 22px color-mix(in srgb,var(--color-error) 35%,transparent),0 0 0 0 color-mix(in srgb,var(--color-error) 25%,transparent)}}@media (max-width:618px){.floating-actions[data-v-234f0926]{right:12px;bottom:12px;gap:10px}.fab[data-v-234f0926]{width:42px;height:42px}.fab i[data-v-234f0926]{font-size:16px}}.saver-overlay[data-v-234f0926]{position:fixed;inset:0;background:color-mix(in srgb,var(--color-bg) 70%,rgba(0,0,0,.6));display:flex;align-items:center;justify-content:center;z-index:10001}.saver-frame[data-v-234f0926]{width:100vw;height:100vh;pointer-events:none}.close-btn[data-v-234f0926]{position:absolute;top:20px;right:20px;width:36px;height:36px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-card-bg);color:var(--color-text);cursor:pointer}body{background-size:100% 100%;margin:0;min-height:100vh}#components-layout-demo-top-side .logo[data-v-0eea1ad5]{width:120px;height:64px;display:flex;align-items:center;margin-right:20px;cursor:pointer;position:relative;z-index:10;pointer-events:auto}.headerStyle[data-v-0eea1ad5]{text-align:center;color:var(--color-text);height:64px;padding-inline:50px;border-bottom:1px solid var(--color-border);position:relative;display:flex;align-items:center;gap:8px}.headerStyle[data-v-0eea1ad5],.nav-item[data-v-0eea1ad5]{background:var(--color-card-bg)}.house-switcher[data-v-0eea1ad5]{display:flex;align-items:center;margin-left:16px;margin-right:50px;max-width:220px}.house-switcher-empty[data-v-0eea1ad5]{padding:4px 8px;color:var(--color-text-quaternary);font-size:12px}.house-switcher-label[data-v-0eea1ad5]{white-space:nowrap}.house-select[data-v-0eea1ad5] .ant-select-selector{background-color:color-mix(in srgb,var(--color-text-quaternary) 26%,transparent)!important;border-radius:999px!important;border:1px solid var(--color-border)!important;padding:0 24px 0 10px!important;height:30px!important;display:flex;align-items:center}.house-select[data-v-0eea1ad5] .ant-select-selection-item{color:var(--color-text);font-size:13px}.house-select[data-v-0eea1ad5] .ant-select-arrow{color:var(--color-text-secondary)}[data-v-0eea1ad5] .ant-select-dropdown .ant-select-item-option-content{color:var(--color-text)}.logout-button[data-v-0eea1ad5]{position:absolute;right:20px;top:50%;transform:translateY(-50%)}.alarm-indicator[data-v-0eea1ad5]{position:absolute;right:150px;top:50%;transform:translateY(-50%)}.alarm-pill[data-v-0eea1ad5]{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:14px;font-size:13px;color:var(--color-text);background:var(--color-card-bg);border:1px solid var(--color-border);box-shadow:0 1px 2px color-mix(in srgb,var(--color-shadow) 8%,transparent);transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.alarm-pill .label[data-v-0eea1ad5]{letter-spacing:.5px}.alarm-pill .num[data-v-0eea1ad5]{font-weight:700;background:color-mix(in srgb,var(--color-shadow) 15%,transparent);padding:2px 8px;border-radius:999px;line-height:1}.alarm-pill.on[data-v-0eea1ad5]{color:var(--color-text-inverse);background:linear-gradient(180deg,color-mix(in srgb,var(--color-error) 70%,var(--color-text-inverse)) 0,var(--color-error) 100%);border-color:color-mix(in srgb,var(--color-error) 70%,transparent);box-shadow:0 6px 20px color-mix(in srgb,var(--color-error) 32%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--color-shadow) 10%,transparent)}.alarm-pill[data-v-0eea1ad5]:hover{transform:translateY(-1px);box-shadow:0 8px 22px color-mix(in srgb,var(--color-shadow) 18%,transparent)}.alarm-pill.on[data-v-0eea1ad5]:hover{box-shadow:0 10px 24px color-mix(in srgb,var(--color-error) 40%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--color-shadow) 14%,transparent)}.menu-toggle[data-v-0eea1ad5]{display:none}.desktop-menu[data-v-0eea1ad5]{display:block;flex:0 0 auto;flex-shrink:0;min-width:180px}.drawer-header[data-v-0eea1ad5]{display:flex;align-items:center;gap:8px;padding:12px;background:var(--color-card-bg);border-bottom:1px solid var(--color-border)}.drawer-title[data-v-0eea1ad5]{color:var(--color-text);font-weight:600}[data-v-0eea1ad5] .ant-menu-dark{background:var(--color-card-bg)}[data-v-0eea1ad5] .ant-menu-horizontal{border-bottom:1px solid var(--color-border)}[data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item{color:var(--color-text)}[data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background:color-mix(in srgb,var(--color-text-quaternary) 22%,transparent);border-radius:0}[data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item-selected{color:var(--color-text-inverse);background:var(--color-primary);border-radius:0;box-shadow:0 4px 10px color-mix(in srgb,var(--color-primary) 28%,transparent)}[data-v-0eea1ad5] .ant-drawer .ant-drawer-body,[data-v-0eea1ad5] .ant-drawer .ant-drawer-content,[data-v-0eea1ad5] .ant-drawer .ant-drawer-header{background:var(--color-card-bg)!important}[data-v-0eea1ad5] .ant-drawer .ant-drawer-header{border-bottom:1px solid var(--color-border)!important}[data-v-0eea1ad5] .ant-drawer .ant-menu-dark,[data-v-0eea1ad5] .ant-drawer .ant-menu-dark.ant-menu-inline{background:var(--color-card-bg)!important;border-right:1px solid var(--color-border)!important}[data-v-0eea1ad5] .ant-drawer .ant-menu-dark .ant-menu-item-selected{color:var(--color-text-inverse);background:var(--color-primary)!important;border-radius:0;box-shadow:0 4px 10px color-mix(in srgb,var(--color-primary) 28%,transparent)}[data-v-0eea1ad5] .ant-drawer .ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected),[data-v-0eea1ad5] .ant-drawer .ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected).ant-menu-item-active{background:transparent!important}[data-v-0eea1ad5] .ant-drawer .ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover{background:color-mix(in srgb,var(--color-text-quaternary) 18%,transparent)!important}[data-v-0eea1ad5] .ant-drawer .ant-menu-inline .ant-menu-item,[data-v-0eea1ad5] .ant-drawer .ant-menu-inline .ant-menu-submenu-title{padding-left:12px!important}[data-v-0eea1ad5] .ant-drawer .ant-drawer-close,[data-v-0eea1ad5] .ant-drawer .ant-drawer-close:active,[data-v-0eea1ad5] .ant-drawer .ant-drawer-close:focus,[data-v-0eea1ad5] .ant-drawer .ant-drawer-close:hover{color:var(--color-text)!important;background:transparent!important;box-shadow:none!important}[data-v-0eea1ad5] .ant-drawer .ant-drawer-close .anticon,[data-v-0eea1ad5] .ant-drawer .ant-drawer-close .anticon svg{color:var(--color-text)!important}.menu-toggle[data-v-0eea1ad5]{color:var(--color-text-secondary);border:1px solid var(--color-border);background:transparent}.menu-toggle[data-v-0eea1ad5]:hover{background:color-mix(in srgb,var(--color-text-quaternary) 22%,transparent)}.alarm-badge[data-v-0eea1ad5]{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:10px;font-size:13px;color:var(--color-text);background:var(--color-card-bg);border:1px solid var(--color-border)}.alarm-badge .num[data-v-0eea1ad5]{font-weight:700}.alarm-badge.on[data-v-0eea1ad5]{color:var(--color-text-inverse);background:var(--color-error);border-color:var(--color-error);box-shadow:0 0 10px color-mix(in srgb,var(--color-error) 35%,transparent)}:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal{background:var(--color-card-bg)}:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item{color:var(--color-text)}:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background:color-mix(in srgb,var(--color-shadow) 4%,transparent);color:var(--color-text)}:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item .ant-menu-title-content>a,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a{color:var(--color-text)}:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item-selected,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item-selected .ant-menu-title-content,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item-selected .ant-menu-title-content>a,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item-selected>a,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item.ant-menu-item-active .ant-menu-title-content,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item.ant-menu-item-active>a,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item.ant-menu-item-open>a,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item.ant-menu-item-selected:not(.ant-menu-item-selected)>a,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover .ant-menu-title-content,:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover>a{color:var(--color-text)!important}:root[data-theme=light][data-v-0eea1ad5] .ant-menu-dark.ant-menu-horizontal>.ant-menu-item-selected{background:color-mix(in srgb,var(--color-primary) 10%,transparent)!important;box-shadow:none!important}.logo-img[data-v-0eea1ad5]{display:inline-block;width:30px;height:30px;pointer-events:none}.drawer-logo[data-v-0eea1ad5],.logo-img[data-v-0eea1ad5]{background-color:var(--logo-color);-webkit-mask-image:url(../img/logo.c76a34b2.png);mask-image:url(../img/logo.c76a34b2.png);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.drawer-logo[data-v-0eea1ad5]{width:24px;height:24px}@media (max-width:618px){.headerStyle[data-v-0eea1ad5]{height:56px;padding-inline:12px}#components-layout-demo-top-side .logo[data-v-0eea1ad5]{width:auto;height:56px;margin-right:8px}#components-layout-demo-top-side .logo img[data-v-0eea1ad5]{width:24px;height:24px}#components-layout-demo-top-side .logo span[data-v-0eea1ad5]{font-size:16px;margin-left:6px}.house-switcher[data-v-0eea1ad5]{max-width:160px;margin-left:auto;margin-right:8px}.house-switcher-empty[data-v-0eea1ad5]{padding-inline:8px;font-size:11px}.house-select[data-v-0eea1ad5] .ant-select-selection-item{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-v-0eea1ad5] .ant-menu{flex:1;min-width:0}[data-v-0eea1ad5] .ant-menu-horizontal{line-height:56px}[data-v-0eea1ad5] .ant-menu-horizontal>.ant-menu-item{padding:0 8px;font-size:14px}.logout-button[data-v-0eea1ad5]{position:static;margin-left:auto;transform:none}[data-v-0eea1ad5] .logout-button .ant-btn{height:32px;padding:0 10px}.desktop-menu[data-v-0eea1ad5],[data-v-0eea1ad5] .logout-button .ant-btn .anticon+span{display:none}.menu-toggle[data-v-0eea1ad5]{display:inline-flex;align-items:center;justify-content:center}.alarm-indicator[data-v-0eea1ad5]{right:118px}.alarm-pill[data-v-0eea1ad5]{padding:6px 10px;font-size:12px}}.card[data-v-8bf07942]{position:relative;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:12px;padding:10px;box-shadow:var(--card-shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .2s ease;cursor:pointer}.card[data-v-8bf07942]:hover{transform:translateY(-2px);box-shadow:var(--card-hover-shadow)}.card.strong-alarm[data-v-8bf07942]{border-color:rgba(255,77,79,.9);box-shadow:0 14px 34px rgba(255,77,79,.45),0 0 0 6px rgba(255,77,79,.18);animation:strongBreathe-8bf07942 1.2s ease-in-out infinite}@keyframes strongBreathe-8bf07942{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-1px) scale(1.02)}to{transform:translateY(0) scale(1)}}.gas-values[data-v-8bf07942]{display:inline-flex;flex-direction:row;align-items:baseline;gap:6px;white-space:nowrap}.gas-label[data-v-8bf07942]{font-size:clamp(9px,.85vw,10px);color:var(--color-text-tertiary);font-weight:500}.gas-value[data-v-8bf07942]{font-size:clamp(14px,1.2vw,16px);font-weight:700;line-height:1.2}.gas-unit[data-v-8bf07942]{font-size:9px;color:var(--color-text-tertiary);margin-left:2px}.gas-sep[data-v-8bf07942]{color:var(--color-text-quaternary);margin:0 2px}.top[data-v-8bf07942]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;min-height:18px}.left[data-v-8bf07942]{display:flex;align-items:center;gap:6px;min-width:0}.left .bi[data-v-8bf07942]{font-size:14px;flex:0 0 auto}.name[data-v-8bf07942]{font-weight:600;font-size:clamp(12px,1.1vw,14px);line-height:1.2;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.state-tag[data-v-8bf07942]{font-size:clamp(10px,.9vw,11px);padding:2px 7px;border-radius:999px;border:1px solid var(--color-border);color:var(--color-text-tertiary);display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:0 0 auto;white-space:nowrap}.state-tag.ok[data-v-8bf07942]{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 60%,var(--color-border));background:color-mix(in srgb,var(--color-success) 12%,transparent)}.state-tag.warn[data-v-8bf07942]{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 60%,var(--color-border));background:color-mix(in srgb,var(--color-warning) 12%,transparent)}.state-tag.alarm[data-v-8bf07942]{color:var(--color-text-inverse);border-color:color-mix(in srgb,var(--color-error) 60%,var(--color-border));background:linear-gradient(180deg,color-mix(in srgb,var(--color-error) 70%,var(--color-text-inverse)) 0,var(--color-error) 100%);animation:breatheRed-8bf07942 1.6s ease-in-out infinite}.state-tag.offline[data-v-8bf07942]{color:#a3a3b0}.main[data-v-8bf07942]{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px}.value-wrap[data-v-8bf07942]{display:flex;flex-direction:column;justify-content:center}.value[data-v-8bf07942]{font-size:clamp(16px,1.6vw,20px);font-weight:700;line-height:1.35;min-width:0}.unit[data-v-8bf07942]{font-size:11px;color:var(--color-text-tertiary);margin-left:6px}.meta[data-v-8bf07942]{color:var(--color-text-tertiary);font-size:clamp(10px,.95vw,11px);line-height:1.2;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:root[data-theme=light]{background:var(--color-card-bg);border-color:var(--color-border);color:var(--color-text-secondary)}@keyframes breatheRed-8bf07942{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-1px) scale(1.04)}to{transform:translateY(0) scale(1)}}@media (max-width:680px){.card[data-v-8bf07942]{padding:8px}.top[data-v-8bf07942]{margin-bottom:6px}.left .bi[data-v-8bf07942]{font-size:13px}.state-tag[data-v-8bf07942]{padding:2px 6px}.gas-values[data-v-8bf07942]{gap:4px}.meta[data-v-8bf07942]{white-space:normal;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.calendar-card[data-v-e6acbfde]{flex:3;min-width:200px}.calendar-container[data-v-e6acbfde]{display:flex;flex-direction:column;justify-content:space-between;gap:8px}.calendar-panel[data-v-e6acbfde]{flex-direction:column;gap:12px}.calendar-date-display[data-v-e6acbfde],.calendar-panel[data-v-e6acbfde]{background:var(--color-card-bg);border-radius:6px;padding:2px;border:1px solid transparent;margin-bottom:10px;display:flex}.calendar-date-display[data-v-e6acbfde]{justify-content:space-between;align-items:center}.calendar-info[data-v-e6acbfde]{display:flex;flex-direction:column}.calendar-year[data-v-e6acbfde]{font-size:.8rem;font-weight:600;color:var(--color-text);text-shadow:none}.calendar-clock[data-v-e6acbfde]{background:var(--color-card-bg);border-radius:4px;padding:2px 4px}.clock-time[data-v-e6acbfde]{font-size:2.2rem;font-weight:600;color:var(--color-text);font-family:Courier New,monospace;text-shadow:0 0 6px color-mix(in srgb,var(--color-shadow) 12%,transparent);letter-spacing:2px}.calendar-weather[data-v-e6acbfde]{background:var(--color-card-bg);border-radius:6px;padding:4px;border:1px solid var(--color-border);margin-bottom:10px}.weather-now[data-v-e6acbfde]{display:flex;align-items:center;margin-bottom:2px}.weather-icon[data-v-e6acbfde]{margin-right:12px}.weather-icon i[data-v-e6acbfde]{font-size:1.6rem;text-shadow:0 0 10px color-mix(in srgb,var(--color-shadow) 10%,transparent)}.weather-temp[data-v-e6acbfde]{display:flex;flex-direction:column}.current-temp[data-v-e6acbfde]{font-weight:700;color:var(--color-text);line-height:1}.weather-desc[data-v-e6acbfde]{font-size:.8rem;color:var(--color-text-secondary);margin-top:2px}.weather-details[data-v-e6acbfde]{display:flex;justify-content:space-between;margin-bottom:8px}.weather-item[data-v-e6acbfde]{display:flex;flex-direction:column;align-items:center;background:var(--color-card-bg);padding:2px 4px;border-radius:4px;flex:1;margin:0 3px;border:1px solid transparent}.weather-label[data-v-e6acbfde]{font-size:.7rem;color:var(--color-text-secondary)}.weather-value[data-v-e6acbfde]{font-size:.8rem;color:var(--color-text);font-weight:500}.calendar-refresh[data-v-e6acbfde]{font-size:.8rem;padding:3px 4px;border-radius:12px;background:var(--color-card-bg);border:1px solid transparent;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;gap:4px;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.calendar-refresh[data-v-e6acbfde]:hover{background:var(--color-card-bg)}.calendar-refresh i[data-v-e6acbfde]{font-size:.8rem}@media (max-width:768px){.calendar-card[data-v-e6acbfde]{min-width:180px}.weather-details[data-v-e6acbfde]{margin-bottom:6px}.weather-item[data-v-e6acbfde]{padding:2px 3px;margin:0 2px}}@media (max-width:480px){.calendar-card[data-v-e6acbfde]{min-width:160px}.smart-card-header h2[data-v-e6acbfde]{font-size:.8rem}.weather-now[data-v-e6acbfde]{margin-bottom:1px}.weather-icon i[data-v-e6acbfde]{font-size:16px;margin-left:6px}.current-temp[data-v-e6acbfde]{font-size:.9rem}.weather-details[data-v-e6acbfde]{margin-bottom:4px}.weather-item[data-v-e6acbfde]{padding:1px 2px;margin:0 1px}.weather-label[data-v-e6acbfde]{font-size:.65rem}.weather-value[data-v-e6acbfde]{font-size:.75rem}.weather-label[data-v-e6acbfde]:last-child{font-size:.6rem}}@media (max-width:375px){.calendar-card[data-v-e6acbfde]{min-width:140px}.smart-card-header[data-v-e6acbfde]{padding:2px 6px}.smart-card-header h2[data-v-e6acbfde]{font-size:.75rem;gap:4px}.weather-icon i[data-v-e6acbfde]{font-size:14px;margin-left:4px}.current-temp[data-v-e6acbfde]{font-size:.85rem}.weather-details[data-v-e6acbfde]{margin-bottom:3px;justify-content:space-between}.weather-item[data-v-e6acbfde]{padding:1px 1px;margin:0 .5px}.weather-label[data-v-e6acbfde]{font-size:.6rem}.weather-value[data-v-e6acbfde]{font-size:.7rem}.weather-label[data-v-e6acbfde]:last-child{font-size:.55rem;line-height:1.2}}.chart-container[data-v-47e71643],.soil-chart[data-v-47e71643]{width:100%;height:200px}@media (max-width:768px){.soil-chart[data-v-47e71643]{height:250px!important}}@media (max-width:480px){.soil-tip-inline[data-v-47e71643]{font-size:11px;margin:0 6px}}@media (max-width:375px){.soil-tip-inline[data-v-47e71643]{font-size:10px;margin:0 4px;gap:4px}.soil-tip-icon[data-v-47e71643]{font-size:12px}}.chart-container[data-v-3650e3ac],.temp-humidity-chart[data-v-3650e3ac]{width:100%;height:200px}@media (max-width:768px){.temp-humidity-chart[data-v-3650e3ac]{height:250px!important;overflow:hidden!important}.smart-card-body[data-v-3650e3ac]{height:auto!important;overflow:visible!important}.chart-container[data-v-3650e3ac]{height:250px!important;overflow:hidden!important}}@media (max-width:480px){.smart-card-header h2[data-v-3650e3ac]{font-size:.8rem}}@media (max-width:375px){.smart-card-header[data-v-3650e3ac]{padding:2px 6px}.smart-card-header h2[data-v-3650e3ac]{font-size:.75rem;gap:4px}}.empty-charts[data-v-2731a5c6]{display:flex;align-items:center;justify-content:center;min-height:200px;padding:40px 20px}.empty-pill[data-v-2731a5c6]{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;background:var(--color-card-bg);border:1px solid var(--color-border);box-shadow:0 2px 8px rgba(0,0,0,.12)}.empty-pill-icon[data-v-2731a5c6]{font-size:16px;line-height:1}.empty-pill-text[data-v-2731a5c6]{font-size:14px;color:var(--color-text-secondary);font-weight:500}.top-cards-container[data-v-2731a5c6]{display:flex;gap:16px;margin-bottom:16px}.top-cards-container[data-v-2731a5c6]>*{flex:1 1 0;min-width:0}.top-cards-container.with-tools[data-v-2731a5c6]>:first-child,.top-cards-container.with-tools[data-v-2731a5c6]>:nth-child(2){flex:1.35 1 0}.top-cards-container.with-tools[data-v-2731a5c6]>:nth-child(3){flex:0.8 1 0}@media (max-width:768px){.top-cards-container[data-v-2731a5c6]{flex-direction:column;gap:12px}.top-cards-container[data-v-2731a5c6]>*{flex:none!important;width:100%!important;display:block!important;scrollbar-width:none!important;-ms-overflow-style:none!important}.top-cards-container[data-v-2731a5c6]>::-webkit-scrollbar{display:none!important}.top-cards-container[data-v-2731a5c6]>.smart-card{height:auto!important;overflow:hidden!important}.top-cards-container[data-v-2731a5c6]>.smart-card-body{height:auto!important;overflow:visible!important}.top-cards-container[data-v-2731a5c6]>.chart-container,.top-cards-container[data-v-2731a5c6]>.soil-chart,.top-cards-container[data-v-2731a5c6]>.temp-humidity-chart{height:250px!important;overflow:hidden!important}}@media (max-width:480px){.top-cards-container[data-v-2731a5c6]{gap:10px}.top-cards-container[data-v-2731a5c6]>.chart-container,.top-cards-container[data-v-2731a5c6]>.soil-chart,.top-cards-container[data-v-2731a5c6]>.temp-humidity-chart{height:220px!important}}@media (max-width:375px){.top-cards-container[data-v-2731a5c6]{gap:8px}.top-cards-container[data-v-2731a5c6]>.chart-container,.top-cards-container[data-v-2731a5c6]>.soil-chart,.top-cards-container[data-v-2731a5c6]>.temp-humidity-chart{height:200px!important}}.device-view-container[data-v-6617340a]{max-width:clamp(1024px,90vw,1600px);margin:0 auto}.top-cards-container[data-v-6617340a]{display:flex;gap:16px}.monitor-inline[data-v-6617340a]{margin:8px 0 24px;padding:6px 0 0}.monitor-filters[data-v-6617340a]{display:flex;gap:10px;margin:6px 0 12px;justify-content:center;flex-wrap:wrap;row-gap:10px}.pill[data-v-6617340a]{padding:6px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-card-bg);color:var(--color-text-secondary);cursor:pointer}.pill.active[data-v-6617340a]{color:var(--color-text);border-color:var(--color-primary);box-shadow:0 6px 18px color-mix(in srgb,var(--color-primary) 20%,transparent)}.monitor-grid[data-v-6617340a]{display:grid;grid-template-columns:repeat(8,minmax(160px,1fr));gap:12px;margin-top:10px}.monitor-grid[data-v-6617340a] .card{min-width:0}@media (max-width:1700px){.monitor-grid[data-v-6617340a]{grid-template-columns:repeat(6,minmax(160px,1fr))}}@media (max-width:1280px){.monitor-grid[data-v-6617340a]{grid-template-columns:repeat(4,minmax(160px,1fr))}}@media (max-width:900px){.monitor-grid[data-v-6617340a]{grid-template-columns:repeat(3,minmax(160px,1fr))}}@media (max-width:680px){.monitor-grid[data-v-6617340a]{grid-template-columns:repeat(2,minmax(0,1fr))}}.monitor-inline[data-v-6617340a] .card{padding:8px;border-radius:10px;box-shadow:0 4px 10px color-mix(in srgb,var(--color-primary) 12%,transparent);min-height:30px;position:relative}.monitor-inline[data-v-6617340a] .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.monitor-inline[data-v-6617340a] .left .bi{font-size:12px}.monitor-inline[data-v-6617340a] .name{font-size:12px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monitor-inline[data-v-6617340a] .value{font-size:14px;font-weight:600;line-height:1;transform:translateY(-2px)}.monitor-inline[data-v-6617340a] .unit{font-size:10px}.monitor-inline[data-v-6617340a] .meta{font-size:10px;line-height:1;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monitor-inline[data-v-6617340a] .main{gap:6px;align-items:flex-start;min-height:28px}.monitor-inline[data-v-6617340a] .value-wrap{display:flex;flex-direction:column;justify-content:flex-start}.monitor-inline[data-v-6617340a] .spark{width:48px;height:12px;position:absolute;right:8px;bottom:0;opacity:.8}.monitor-inline[data-v-6617340a] .badge,.monitor-inline[data-v-6617340a] .state-tag{font-size:10px;padding:2px 6px}.monitor-inline[data-v-6617340a] .kpis{gap:10px;margin-bottom:10px}.monitor-inline[data-v-6617340a] .kpi{padding:10px 12px;border-radius:10px;box-shadow:0 4px 10px color-mix(in srgb,var(--color-primary) 12%,transparent)}.monitor-inline[data-v-6617340a] .kpi .value{font-size:16px;line-height:1.15}.monitor-inline[data-v-6617340a] .kpi .label{font-size:11px;line-height:1.15}.monitor-inline[data-v-6617340a] .kpi .icon{width:28px;height:28px}.connection-status[data-v-6617340a],.device-count[data-v-6617340a],.off-count[data-v-6617340a],.on-count[data-v-6617340a]{font-size:.7rem;padding:0 8px;border-radius:10px;display:flex;align-items:center;gap:3px}.device-count[data-v-6617340a]{color:var(--color-text-secondary);background:var(--chip-info-bg)}.device-stats[data-v-6617340a]{display:flex;align-items:center;gap:6px;font-size:.7rem}.on-count[data-v-6617340a]{color:var(--chip-success-color);background:var(--chip-success-bg)}.connection-status[data-v-6617340a],.off-count[data-v-6617340a]{color:color-mix(in srgb,var(--color-error) 80%,transparent);background:color-mix(in srgb,var(--color-error) 14%,transparent)}.connection-status.connected[data-v-6617340a]{background:var(--chip-success-bg);color:var(--chip-success-color)}.global-control[data-v-6617340a]{display:flex;align-items:center;gap:4px}.global-switch-label[data-v-6617340a]{font-size:.7rem;color:var(--color-text-secondary)}.switch[data-v-6617340a]{position:relative;display:inline-block;width:32px;height:16px}.switch input[data-v-6617340a]{opacity:0;width:0;height:0}.slider[data-v-6617340a]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:color-mix(in srgb,var(--color-error) 42%,transparent);transition:background-color var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}.slider[data-v-6617340a]:before{position:absolute;content:"";height:12px;width:12px;left:2px;bottom:2px;background-color:color-mix(in srgb,var(--color-text) 92%,transparent);transition:transform var(--dur-3) var(--ease-out)}input:checked+.slider[data-v-6617340a]{background-color:color-mix(in srgb,var(--color-success) 60%,transparent)}input:checked+.slider[data-v-6617340a]:before{transform:translateX(16px)}.slider.round[data-v-6617340a]{border-radius:16px}.slider.round[data-v-6617340a]:before{border-radius:50%}.smart-card-actions[data-v-6617340a]{display:flex;align-items:center;gap:8px}.devices-grid[data-v-6617340a]{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.device-item[data-v-6617340a]{background:var(--device-tile-bg);border-radius:6px;padding:2px;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out);position:relative;border:1px solid var(--device-tile-border);text-align:center}.skel-card[data-v-6617340a]{padding:6px;height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center}.skel-card .skel-circle[data-v-6617340a]{width:28px;height:28px;border-radius:50%}.skel-card .skel-line.md[data-v-6617340a]{height:10px;border-radius:6px}.device-item[data-v-6617340a]:hover{transform:translateY(-2px);box-shadow:var(--device-tile-hover-shadow);border-color:var(--device-tile-hover-border)}.device-item.active[data-v-6617340a]{background:var(--device-tile-active-bg);border-color:var(--card-active-border)}.device-item.alarm[data-v-6617340a]{border-color:var(--color-error)!important;box-shadow:0 0 0 transparent,0 0 10px color-mix(in srgb,var(--color-error) 24%,transparent)}.device-item.alarm .device-status-indicator.on[data-v-6617340a],.device-item.alarm .device-status-indicator[data-v-6617340a]{background:var(--color-error);box-shadow:0 0 5px color-mix(in srgb,var(--color-error) 70%,transparent);border-color:color-mix(in srgb,var(--color-error) 60%,transparent)}.device-icon-wrapper[data-v-6617340a]{position:relative;margin-bottom:2px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:transparent}.device-status-indicator[data-v-6617340a]{position:absolute;left:-2px;bottom:2px;width:8px;height:8px;border-radius:50%;background:var(--status-off-bg);border:1px solid var(--status-border)}.device-online-indicator[data-v-6617340a]{position:absolute;right:-2px;bottom:2px;width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--color-text-quaternary) 55%,transparent);border:1px solid color-mix(in srgb,var(--color-text-quaternary) 70%,transparent)}.device-online-indicator.on[data-v-6617340a],.device-status-indicator.on[data-v-6617340a]{background:var(--status-on-bg);box-shadow:0 0 5px var(--status-on-bg)}.device-icon[data-v-6617340a]{color:var(--device-icon-color);opacity:.8;transition:transform var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),text-shadow var(--dur-2) var(--ease-out)}.inactive-icon[data-v-6617340a]{opacity:.6}.device-item.offline[data-v-6617340a]{opacity:.8}.device-item.offline .device-status-indicator.on[data-v-6617340a]{background:color-mix(in srgb,var(--color-text-quaternary) 55%,transparent);box-shadow:none}.active .device-icon[data-v-6617340a]{opacity:1;transform:scale(1.1);text-shadow:0 0 8px var(--device-icon-glow)}.device-info[data-v-6617340a]{width:100%;display:flex;flex-direction:column;align-items:center;gap:3px}.device-name[data-v-6617340a]{font-size:.75rem;color:var(--device-tile-name-color);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;cursor:help}.empty-state[data-v-6617340a]{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 10px;color:var(--color-text-secondary);border:1px dashed color-mix(in srgb,var(--color-border) 85%,transparent);border-radius:10px;background:color-mix(in srgb,var(--color-card-bg) 92%,transparent)}.empty-state i[data-v-6617340a]{font-size:24px}.empty-state p[data-v-6617340a]{font-size:.9rem}.control-overlay[data-v-6617340a]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.75);display:flex;justify-content:center;align-items:center;z-index:1000;backdrop-filter:blur(10px);animation:fadeIn var(--dur-2) var(--ease-out)}:root[data-theme=light] .control-overlay[data-v-6617340a]{background:rgba(15,23,42,.35)}@media (max-width:768px){.top-cards-container[data-v-6617340a]{flex-direction:column}.devices-grid[data-v-6617340a]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}@media (min-width:1440px){.devices-grid[data-v-6617340a]{grid-template-columns:repeat(7,1fr);gap:14px}.device-icon-wrapper[data-v-6617340a]{width:32px;height:32px}.device-name[data-v-6617340a]{font-size:.8rem}}@media (min-width:1920px){.devices-grid[data-v-6617340a]{grid-template-columns:repeat(7,1fr);gap:16px}.device-icon-wrapper[data-v-6617340a]{width:34px;height:34px}}@media (max-width:618px){.device-view-container[data-v-6617340a]{padding-bottom:76px}.smart-card-actions[data-v-6617340a]{flex-wrap:wrap;row-gap:4px}.devices-grid[data-v-6617340a]{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.device-item[data-v-6617340a]{padding:4px}.device-icon-wrapper[data-v-6617340a]{width:26px;height:26px}.device-name[data-v-6617340a]{font-size:.72rem}.connection-status[data-v-6617340a]{display:none}}.control-type-toggle[data-v-6617340a]{position:absolute;top:4px;right:4px;padding:1px 4px;background:var(--chip-info-bg);border-radius:8px;cursor:pointer;z-index:1;font-size:.65rem;color:var(--chip-info-color);border:1px solid var(--chip-info-border);transition:transform var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out);display:flex;align-items:center;gap:2px;line-height:1}.control-type-toggle[data-v-6617340a]:hover{background:var(--chip-info-bg);border-color:var(--chip-info-color);transform:translateY(-1px)}.control-type-toggle i[data-v-6617340a]{font-size:.7rem}.control-type-toggle.ir-active[data-v-6617340a]{background:var(--chip-success-bg);border-color:var(--chip-success-border);color:var(--chip-success-color)}.control-type-toggle.ir-active[data-v-6617340a]:hover{background:var(--chip-success-bg);border-color:var(--chip-success-color)}:root[data-theme=dark] .devices-grid{grid-template-columns:repeat(7,1fr)!important}@media (max-width:900px){:root[data-theme=dark] .devices-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))!important}}@media (max-width:768px){.top-cards-container{flex-direction:column}.devices-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.panel-skel{display:flex;flex-direction:column;gap:10px;padding:6px 8px}.panel-skel-row{display:flex;gap:12px;align-items:center}.panel-skel-actions{display:flex;gap:10px;margin-top:6px;justify-content:center}@media (max-width:618px){.device-view-container{display:flex;flex-direction:column;padding-bottom:76px}.top-cards-container{order:1;flex-direction:column;gap:12px;margin-top:16px}.smart-card{order:0}.smart-card-actions{flex-wrap:wrap;row-gap:4px}.devices-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.device-item{padding:4px}.device-icon-wrapper{width:26px;height:26px}.device-name{font-size:.72rem}.connection-status{display:none}}.sensor-center[data-v-f585f77a]{padding:12px}.filters[data-v-f585f77a]{display:flex;gap:10px;margin:8px 0 18px}.pill[data-v-f585f77a]{padding:8px 12px;border:1px solid var(--border,#2a2e3d);border-radius:999px;background:var(--card,#171923);color:var(--muted,#a3a3b0);cursor:pointer}.pill.active[data-v-f585f77a]{color:var(--color-text-inverse);border-color:color-mix(in srgb,var(--color-primary) 60%,var(--color-border));box-shadow:0 6px 18px color-mix(in srgb,var(--color-primary) 25%,transparent)}.grid[data-v-f585f77a]{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:16px}.grid[data-v-f585f77a] .card{min-width:0}@media (max-width:1600px){.grid[data-v-f585f77a]{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (max-width:1200px){.grid[data-v-f585f77a]{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:900px){.grid[data-v-f585f77a]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:680px){.grid[data-v-f585f77a]{grid-template-columns:repeat(2,minmax(0,1fr))}}.empty-sensors[data-v-f585f77a]{display:flex;align-items:center;justify-content:center;min-height:200px;padding:40px 20px}.empty-pill[data-v-f585f77a]{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;background:var(--color-card-bg);border:1px solid var(--color-border);box-shadow:0 2px 8px rgba(0,0,0,.12)}.empty-pill-icon[data-v-f585f77a]{font-size:16px;line-height:1}.empty-pill-text[data-v-f585f77a]{font-size:14px;color:var(--color-text-secondary);font-weight:500}.drawer[data-v-f585f77a]{position:fixed;top:0;right:0;width:min(520px,92vw);height:100vh;background:var(--color-card-bg);border-left:1px solid var(--color-border);box-shadow:-12px 0 36px color-mix(in srgb,var(--color-shadow) 35%,transparent);transform:translateX(100%);transition:transform .24s ease;z-index:20;display:grid;grid-template-rows:auto 1fr auto}.drawer.show[data-v-f585f77a]{transform:translateX(0)}.header[data-v-f585f77a]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--divider)}.content[data-v-f585f77a]{padding:16px;overflow:auto}.footer[data-v-f585f77a]{padding:12px 16px;border-top:1px solid var(--divider);display:flex;gap:10px;justify-content:flex-end}.title[data-v-f585f77a]{font-weight:700}.value[data-v-f585f77a]{font-size:28px;font-weight:700;margin-bottom:8px}.unit[data-v-f585f77a]{font-size:12px;color:var(--muted,#a3a3b0);margin-left:6px}.big-chart[data-v-f585f77a]{background:color-mix(in srgb,var(--color-text-quaternary) 6%,transparent);border:1px solid var(--color-border);border-radius:8px}.btn[data-v-f585f77a]{padding:10px 14px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-card-bg);color:var(--color-text);cursor:pointer}.btn.primary[data-v-f585f77a]{background:linear-gradient(180deg,color-mix(in srgb,var(--color-primary) 60%,var(--color-text-inverse)) 0,var(--color-primary) 100%);border:none;color:var(--color-text-inverse)}.btn.ghost[data-v-f585f77a]{background:transparent;color:var(--muted,#a3a3b0)}.home-layout{padding:12px;gap:12px}.home-content,.home-sider{border-radius:0 0 10px 10px;overflow:hidden}.nav-btn{font-size:14px;align-items:center;margin-bottom:10px;line-height:30px;color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;background-color:var(--color-card-bg);backdrop-filter:blur(6px);box-shadow:0 1px 2px rgba(0,0,0,.04);transition:background-color .2s ease,color .2s ease,box-shadow .25s ease,border-color .2s ease,transform .12s ease;width:100%;position:relative;overflow:hidden}.nav-btn:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--color-card-bg) 78%,var(--color-primary) 12%),color-mix(in srgb,var(--color-card-bg) 88%,transparent));color:var(--color-text);border-color:color-mix(in srgb,var(--color-primary) 60%,var(--color-border));box-shadow:0 8px 22px color-mix(in srgb,var(--color-primary) 26%,transparent);transform:translateY(-1px)}.nav-btn:active{transform:translateY(0);box-shadow:0 2px 8px rgba(0,0,0,.14)}.nav-btn:before{content:"";position:absolute;inset:-1px;border-radius:8px;background:radial-gradient(120px 32px at var(--mx,10%) -40%,color-mix(in srgb,var(--color-primary) 45%,transparent),transparent 48%),radial-gradient(120px 32px at calc(var(--mx, 10%) + 40%) 140%,color-mix(in srgb,var(--color-primary) 28%,transparent),transparent 52%);opacity:0;transition:opacity .25s ease;pointer-events:none}.nav-btn:hover:before{opacity:.75}.nav-btn:hover{--mx:50%}.page-container[data-v-14d83d4b]{padding:20px;max-width:1200px;margin:0 auto}.smart-light-panel[data-v-14d83d4b]{background:var(--color-card-bg);border-radius:10px;box-shadow:var(--card-shadow);margin-top:20px;padding:14px;max-width:380px;transition:background-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out),border-color var(--dur-3) var(--ease-out);border:1px solid var(--color-border)}.panel-header[data-v-14d83d4b]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--color-border)}.panel-title[data-v-14d83d4b]{font-size:16px;font-weight:600;color:var(--color-text)}.light-status[data-v-14d83d4b]{display:flex;align-items:center;font-size:12px;color:var(--color-text-secondary);transition:color .3s}.light-status.light-on[data-v-14d83d4b]{color:var(--color-success)}.panel-body[data-v-14d83d4b]{padding:14px 0}.control-item[data-v-14d83d4b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;transition:opacity .3s}.control-item.disabled[data-v-14d83d4b]{opacity:.5}.item-label[data-v-14d83d4b]{display:flex;align-items:center;font-size:14px;color:var(--color-text);min-width:60px}.item-label i[data-v-14d83d4b]{margin-right:8px;font-size:16px}.slider-container[data-v-14d83d4b]{flex:1;display:flex;align-items:center;margin-left:15px}.slider-wrapper[data-v-14d83d4b]{flex:1;position:relative}.slider-value[data-v-14d83d4b]{width:45px;text-align:right;color:var(--color-text-secondary);font-size:12px;margin-left:10px}.color-temp-slider[data-v-14d83d4b]{flex:1;position:relative}.temp-track[data-v-14d83d4b]{position:absolute;height:4px;width:100%;border-radius:4px;background:linear-gradient(to right,var(--color-warning),var(--color-text-secondary),var(--color-primary));top:6px;left:0;z-index:-1;pointer-events:none}.panel-footer[data-v-14d83d4b]{display:flex;justify-content:space-between;padding-top:14px;border-top:1px solid var(--color-border)}.preset-btn[data-v-14d83d4b]{flex:1;margin:0 4px;background:transparent;border:1px solid var(--color-border);color:var(--color-text);padding:0 10px;height:28px;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),filter var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.preset-btn[data-v-14d83d4b]:hover:not([disabled]){background:color-mix(in srgb,var(--color-primary) 18%,transparent);color:var(--color-text)}.preset-btn[data-v-14d83d4b]:first-child{margin-left:0}.preset-btn[data-v-14d83d4b]:last-child{margin-right:0}.anticon[data-v-14d83d4b]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}.bulb-icon[data-v-14d83d4b]:before{content:"";display:block;width:14px;height:14px;background:var(--color-warning);border-radius:7px;box-shadow:0 0 10px color-mix(in srgb,var(--color-warning) 55%,transparent);transition:background-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out),filter var(--dur-3) var(--ease-out)}.bulb-off[data-v-14d83d4b]:before{background:var(--color-text-secondary);box-shadow:none}.icon-disabled[data-v-14d83d4b]{opacity:.5}.brightness-icon[data-v-14d83d4b]:before{content:"☀";color:var(--color-warning);font-size:14px}.temp-icon[data-v-14d83d4b]:before{content:"∿";color:var(--color-primary);font-size:14px}[data-v-14d83d4b] .ant-slider{margin:0;z-index:1}[data-v-14d83d4b] .ant-slider-rail{background-color:var(--slider-rail)}[data-v-14d83d4b] .ant-slider-track{background-color:var(--slider-track)}[data-v-14d83d4b] .ant-slider-handle{border-color:var(--slider-handle-border);box-shadow:0 0 5px color-mix(in srgb,var(--color-primary) 35%,transparent);z-index:2}[data-v-14d83d4b] .ant-switch-checked{background-color:var(--color-primary)}.login-wrapper[data-v-61573bb9]{min-height:100dvh;background:var(--app-bg);display:flex;align-items:center;justify-content:center;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));box-sizing:border-box;position:relative;transition:background-color var(--dur-3) var(--ease-out);overflow:hidden;margin:0}.login-container[data-v-61573bb9]{width:min(100%,1000px);height:auto;min-height:clamp(380px,68dvh,520px);background:var(--color-card-bg);border-radius:20px;box-shadow:var(--shadow-3);display:flex;overflow:hidden;transition:background-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out);margin:0}.error-shake[data-v-61573bb9]{animation:loginShake-61573bb9 .45s ease}@keyframes loginShake-61573bb9{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(2px)}30%,50%,70%{transform:translateX(-4px)}40%,60%{transform:translateX(4px)}}@media (max-width:1024px){.login-container[data-v-61573bb9]{width:92%;min-height:clamp(380px,68dvh,520px)}}@media (max-width:768px){.login-container[data-v-61573bb9]{flex-direction:column;width:95%;max-width:520px;min-height:clamp(380px,68dvh,520px);border-radius:14px}}body[data-v-61573bb9],html[data-v-61573bb9]{margin:0;padding:0;height:100%}@media (max-width:618px){.login-wrapper[data-v-61573bb9]{align-items:center;padding:12px}.login-container[data-v-61573bb9]{min-height:clamp(360px,66dvh,500px);border-radius:12px}.login-banner[data-v-61573bb9]{display:none}.login-content[data-v-61573bb9]{padding:16px 14px}.login-header[data-v-61573bb9]{margin-bottom:12px}.title[data-v-61573bb9]{font-size:1.2rem;line-height:32px}.subtitle[data-v-61573bb9]{font-size:.9rem}}[data-theme=dark] .login-container[data-v-61573bb9]{box-shadow:var(--shadow-3)}.login-banner[data-v-61573bb9]{flex:1;background:linear-gradient(135deg,#4f46e5,#7c3aed);padding:40px;display:flex;align-items:center;position:relative;overflow:hidden}[data-theme=dark] .login-banner[data-v-61573bb9]{background:linear-gradient(135deg,#3c366b,#553c9a)}.banner-icons[data-v-61573bb9]{display:flex;gap:20px;margin-top:30px}.banner-icons .anticon[data-v-61573bb9]{font-size:24px;color:hsla(0,0%,100%,.9);transition:transform var(--dur-3) var(--ease-out),color var(--dur-3) var(--ease-out)}.banner-icons .anticon[data-v-61573bb9]:hover{transform:translateY(-5px);color:var(--color-text-inverse)}.banner-content[data-v-61573bb9]{position:relative;z-index:1;color:var(--color-text-inverse)}.banner-title[data-v-61573bb9]{font-size:2.5rem;font-weight:700;margin-bottom:1rem}.banner-text[data-v-61573bb9]{font-size:1.1rem;opacity:.9}.banner-decoration .circle[data-v-61573bb9]{position:absolute;border-radius:50%;background:hsla(0,0%,100%,.1)}.circle-1[data-v-61573bb9]{width:300px;height:300px;bottom:-150px;right:-150px}.circle-2[data-v-61573bb9]{width:200px;height:200px;top:-100px;right:-100px}.circle-3[data-v-61573bb9]{width:150px;height:150px;top:50%;left:-75px}.login-content[data-v-61573bb9]{flex:1;padding:40px;display:flex;flex-direction:column;color:var(--color-text)}[data-theme=dark] .submit-button[data-v-61573bb9]{background:linear-gradient(135deg,#3c366b,#553c9a)}.login-header[data-v-61573bb9]{margin-bottom:32px}.brand[data-v-61573bb9]{display:flex;align-items:center;margin-bottom:1rem;gap:12px}.logo-wrapper[data-v-61573bb9]{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.brand-icon[data-v-61573bb9]{font-size:24px;color:var(--color-text)}.title[data-v-61573bb9]{font-size:1.5rem;font-weight:600;margin:0;line-height:40px}.subtitle[data-v-61573bb9]{color:var(--color-text-secondary);font-size:.95rem}.login-form[data-v-61573bb9]{flex:1}.custom-input[data-v-61573bb9]{background:color-mix(in srgb,var(--color-text-quaternary) 18%,var(--color-card-bg));border-radius:8px;height:44px}.custom-input[data-v-61573bb9]:hover{background:color-mix(in srgb,var(--color-text-quaternary) 26%,var(--color-card-bg))}.input-icon[data-v-61573bb9]{color:var(--color-text-secondary)}.form-footer[data-v-61573bb9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.remember-me[data-v-61573bb9]{color:var(--color-text-secondary)}.remember-hint[data-v-61573bb9]{color:var(--color-text-tertiary);font-size:.8rem;margin-left:8px}.forgot-link[data-v-61573bb9]{color:var(--color-primary);font-size:.9rem;text-decoration:none}.submit-button[data-v-61573bb9]{width:100%;height:44px;background:linear-gradient(135deg,#4f46e5,#7c3aed);border:none;border-radius:8px;font-size:1rem;font-weight:500;transition:transform var(--dur-3) var(--ease-out),filter var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.submit-button[data-v-61573bb9]:hover{transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--color-primary) 26%,transparent)}.login-footer[data-v-61573bb9]{text-align:center;color:var(--color-text-secondary);font-size:.9rem}.register-link[data-v-61573bb9]{color:var(--color-primary);text-decoration:none;font-weight:500}@media (max-width:1024px){.login-container[data-v-61573bb9]{width:90%;height:auto;min-height:600px}}@media (max-width:768px){.login-wrapper[data-v-61573bb9]{padding:20px}.brand[data-v-61573bb9]{gap:8px}.logo-wrapper[data-v-61573bb9]{width:36px;height:36px}.brand-icon[data-v-61573bb9]{font-size:20px}.title[data-v-61573bb9]{font-size:1.3rem;line-height:36px}.login-banner[data-v-61573bb9]{padding:30px;text-align:center}.banner-content[data-v-61573bb9]{width:100%}.banner-title[data-v-61573bb9]{font-size:2rem}.banner-icons[data-v-61573bb9]{justify-content:center}.login-content[data-v-61573bb9]{padding:30px 20px}.banner-icons .anticon[data-v-61573bb9]{font-size:20px}.circle[data-v-61573bb9]{animation-duration:4s}.icon-float-delay-1[data-v-61573bb9],.icon-float-delay-2[data-v-61573bb9],.icon-float[data-v-61573bb9]{animation-duration:2s}}@media (max-width:480px){.login-wrapper[data-v-61573bb9]{padding:10px}.login-container[data-v-61573bb9]{width:100%;border-radius:10px}.banner-title[data-v-61573bb9]{font-size:1.5rem}.title[data-v-61573bb9]{font-size:1.2rem}.form-footer[data-v-61573bb9]{flex-direction:column;gap:10px;align-items:flex-start}}.custom-input[data-v-61573bb9],.submit-button[data-v-61573bb9],.theme-switch[data-v-61573bb9]{transition:transform var(--dur-3) var(--ease-out),background-color var(--dur-3) var(--ease-out),color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.login-container[data-v-61573bb9]{animation:fadeIn-61573bb9 .5s ease}.theme-switch[data-v-61573bb9]:hover{background:color-mix(in srgb,var(--color-text-quaternary) 26%,transparent);transform:scale(1.1)}.banner-icons>span[data-v-61573bb9]{transition:transform var(--dur-3) var(--ease-out),color var(--dur-3) var(--ease-out)}.banner-icons>span[data-v-61573bb9]:hover{transform:translateY(-3px);color:var(--color-text-inverse)}@keyframes fadeIn-61573bb9{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float-61573bb9{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes floatReverse-61573bb9{0%{transform:translateY(0)}50%{transform:translateY(10px)}to{transform:translateY(0)}}@keyframes pulse-61573bb9{0%{transform:scale(1);opacity:.6}50%{transform:scale(1.1);opacity:.4}to{transform:scale(1);opacity:.6}}.fade-in[data-v-61573bb9]{animation:fadeIn-61573bb9 .8s ease-out forwards}.fade-in-delay[data-v-61573bb9]{animation:fadeIn-61573bb9 .8s ease-out .3s forwards;opacity:0}.icon-float[data-v-61573bb9]{animation:float-61573bb9 3s ease-in-out infinite}.icon-float-delay-1[data-v-61573bb9]{animation:float-61573bb9 3s ease-in-out .5s infinite}.icon-float-delay-2[data-v-61573bb9]{animation:float-61573bb9 3s ease-in-out 1s infinite}.circle.pulse[data-v-61573bb9]{animation:pulse-61573bb9 4s ease-in-out infinite}.circle.float[data-v-61573bb9]{animation:float-61573bb9 6s ease-in-out infinite}.circle.float-reverse[data-v-61573bb9]{animation:floatReverse-61573bb9 5s ease-in-out infinite}.custom-input[data-v-61573bb9]{transition:transform var(--dur-3) var(--ease-out),background-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.custom-input[data-v-61573bb9]:hover{transform:translateY(-2px)}.submit-button[data-v-61573bb9]{position:relative;overflow:hidden}.submit-button[data-v-61573bb9]:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:hsla(0,0%,100%,.2);border-radius:50%;transform:translate(-50%,-50%);transition:width var(--dur-3) var(--ease-out),height var(--dur-3) var(--ease-out)}.submit-button[data-v-61573bb9]:hover:after{width:300px;height:300px}.forgot-link[data-v-61573bb9],.register-link[data-v-61573bb9]{position:relative;transition:color .3s ease}.forgot-link[data-v-61573bb9]:after,.register-link[data-v-61573bb9]:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:currentColor;transition:width .3s ease}.forgot-link[data-v-61573bb9]:hover:after,.register-link[data-v-61573bb9]:hover:after{width:100%}.login-banner[data-v-61573bb9],.login-container[data-v-61573bb9],.login-content[data-v-61573bb9],.login-wrapper[data-v-61573bb9]{transition:background-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out),color var(--dur-3) var(--ease-out)}[data-theme=dark] .custom-input input[data-v-61573bb9]::-moz-placeholder{color:var(--color-text-tertiary)!important}[data-theme=dark] .custom-input input[data-v-61573bb9]::placeholder{color:var(--color-text-tertiary)!important}[data-theme=dark] .custom-input input[data-v-61573bb9]{color:var(--color-text)!important}.auth-page[data-v-609d604a]{display:flex;align-items:center;justify-content:center;min-height:100dvh;background:var(--app-bg)}.auth-card[data-v-609d604a]{width:380px;max-width:92vw;background:var(--panel-bg);border-radius:16px;padding:28px;box-shadow:var(--panel-shadow)}.title[data-v-609d604a]{margin:0 0 12px;color:var(--text-primary);font-weight:600}.footer[data-v-609d604a]{text-align:right;margin-top:-8px}.auth-page[data-v-bb261c20]{display:flex;align-items:center;justify-content:center;min-height:100dvh;background:var(--app-bg)}.auth-card[data-v-bb261c20]{width:380px;max-width:92vw;background:var(--panel-bg);border-radius:16px;padding:28px;box-shadow:var(--panel-shadow)}.title[data-v-bb261c20]{margin:0 0 12px;color:var(--text-primary);font-weight:600}.footer[data-v-bb261c20]{text-align:right;margin-top:-8px}:root{--app-bg:#f5f7fa;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--vh:1vh}[data-theme=dark],[data-theme=dark] :root{--app-bg:#0d1117}#app,body,html{background:var(--app-bg)!important}body{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-text-size-adjust:100%;overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Arial,sans-serif}body,html{height:100%}#app{min-height:calc(var(--vh)*100);padding-top:var(--safe-top);padding-right:var(--safe-right);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left)}body{-webkit-overflow-scrolling:touch}#app .main,#app main,.main,main{border:none!important;border-color:transparent!important;margin:0!important;padding:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}#app main.tableClass,main.tableClass{background:transparent!important;box-shadow:none!important;border:none!important}:lang(zh),:lang(zh-CN),:lang(zh-SG){font-family:Microsoft YaHei,PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Source Han Sans SC,WenQuanYi Micro Hei,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}:lang(zh-HK),:lang(zh-TW){font-family:Microsoft JhengHei,PingFang TC,Hiragino Sans TC,Noto Sans CJK TC,Source Han Sans TC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.colorBg{background:var(--app-bg)}.tableClass{background:var(--color-card-bg);color:var(--color-text);font-size:13px;margin-bottom:12px;border-radius:8px;border:1px solid var(--color-border);box-shadow:var(--card-shadow);padding:8px 12px}.admin-page{display:flex;flex-direction:column;gap:16px;padding:12px;max-width:1200px;margin:0 auto}.admin-form-row{margin-bottom:10px}.admin-full-width{width:100%}.admin-full-width :deep(.ant-input),.admin-full-width :deep(.ant-input-number),.admin-full-width :deep(.ant-select-selector){width:100%!important}.tableClass .ant-card-head{background:var(--color-card-bg);border-bottom:1px solid var(--divider);padding:8px 12px;min-height:40px}.tableClass .ant-card-head-title{padding:0;font-size:14px;font-weight:var(--fw-medium);color:var(--color-text)}.tableClass .ant-card-body{padding:8px 8px 4px;background:var(--color-card-bg)}.tableClass .ant-form-inline .ant-form-item{margin-right:8px;margin-bottom:8px}.tableClass .ant-form-item-control-input{min-width:120px}.tableClass .ant-input,.tableClass .ant-input-number,.tableClass .ant-select-selector{min-width:120px;height:30px;border-radius:4px;font-size:13px}.tableClass .ant-select .ant-select-selector{box-shadow:none!important;outline:none!important}.tableClass .ant-select-focused .ant-select-selector{box-shadow:var(--focus-ring)!important}.tableClass .ant-select-single .ant-select-selector .ant-select-selection-item,.tableClass .ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px}.tableClass .ant-btn{border-radius:4px;font-size:12px;padding:0 12px}.tableClass .ant-btn-primary{background:var(--color-primary);border-color:var(--color-primary)}.tableClass .ant-btn-primary.ant-btn-dangerous{background:var(--color-error);border-color:var(--color-error)}.admin-table .ant-table{background:transparent}.admin-table .ant-table-thead>tr>th{background:var(--color-card-bg);color:var(--color-text);border-bottom:1px solid var(--divider)}.admin-table .ant-table-tbody>tr>td{background:var(--color-card-bg);color:var(--color-text-secondary);border-bottom:1px solid var(--divider)}.admin-table .ant-table-tbody>tr:hover>td{background:color-mix(in srgb,var(--color-primary) 16%,transparent)}.admin-table .ant-empty-normal{margin:0;padding:20px 0}.admin-table .ant-empty-description{color:var(--color-text-secondary)}.admin-table .ant-empty-image{opacity:.8}.tableClass .empty-data,.tableClass .empty-state{text-align:center;padding:14px 10px;color:var(--color-text-secondary);border:1px dashed color-mix(in srgb,var(--color-border) 85%,transparent);border-radius:10px;background:color-mix(in srgb,var(--color-card-bg) 92%,transparent)}.admin-table .ant-pagination{margin-top:12px}.admin-table .ant-pagination .ant-pagination-item a{color:var(--color-text-secondary)}.admin-table .ant-pagination .ant-pagination-item-active{background:var(--color-primary);border-color:var(--color-primary)}.admin-table .ant-pagination .ant-pagination-item-active a{color:var(--color-text)}.ant-layout,.ant-layout-content,.ant-layout-footer,.ant-layout-sider{background:var(--app-bg)!important}.ant-card{border-radius:4px}.iconfont{color:var(--color-text);opacity:.8;transition:color var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),text-shadow var(--dur-2) var(--ease-out)}.smart-card-header h2 i{color:var(--color-text);opacity:.9;font-size:.9rem}.device-icon{font-size:16px;color:var(--device-icon-color);opacity:.85}.active .device-icon{color:var(--device-icon-color);opacity:1;text-shadow:0 0 8px var(--device-icon-glow)}.inactive-icon{opacity:.6}.chart-time-range i,.inactive-icon{color:var(--color-text-secondary)}.weather-icon i{font-size:2.4rem;color:var(--color-text);opacity:.9;text-shadow:0 0 10px color-mix(in srgb,var(--color-shadow) 6%,transparent)}.empty-state i{font-size:28px;color:var(--color-text-secondary);opacity:.6}:root{font-size:clamp(14px,1.6vw,16px)}@media (max-width:768px){.device-icon{font-size:14px}.smart-card-header h2 i{font-size:.85rem}.chart-time-range i{font-size:.75rem}.weather-icon i{font-size:2rem}.empty-state i{font-size:24px}}@media (max-width:618px){.ant-layout-sider,aside{display:none!important}}.text-primary{color:var(--color-text)!important}.text-secondary{color:var(--color-text-secondary)!important}.text-tertiary{color:var(--color-text-tertiary)!important}.text-quaternary{color:var(--color-text-quaternary)!important}.fw-400{font-weight:var(--fw-regular)}.fw-500{font-weight:var(--fw-medium)}.fw-600{font-weight:var(--fw-semibold)}.fw-700{font-weight:var(--fw-bold)}h1,h2,h3,h4,h5,h6{color:var(--color-text);margin:.2em 0 .4em;line-height:1.25}h1,h2,h3{font-weight:var(--fw-semibold)}h4,h5,h6{font-weight:var(--fw-medium)}.caption,.meta,.subtitle{color:var(--color-text-tertiary);font-weight:var(--fw-regular)}.muted{color:var(--color-text-quaternary);font-weight:var(--fw-regular)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.ant-modal-content{background:var(--color-card-bg);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--card-shadow);border-radius:12px}.ant-modal-header{background:var(--color-card-bg);border-bottom:1px solid var(--divider)}.ant-modal-title{color:var(--color-text);font-weight:var(--fw-semibold)}.ant-modal-close-x{color:var(--color-text-secondary)}.ant-drawer-content,.ant-modal-body{background:var(--color-card-bg)}.ant-drawer-content{color:var(--color-text)}.ant-drawer-header{background:var(--color-card-bg);border-bottom:1px solid var(--divider)}.ant-drawer-title{color:var(--color-text);font-weight:var(--fw-semibold)}.ant-drawer-close{color:var(--color-text-secondary)}.ant-drawer-close:hover{color:var(--color-text)}.ant-drawer-close,.ant-drawer-close:active,.ant-drawer-close:focus,.ant-drawer-close:hover{color:var(--color-text)!important;background:transparent!important;box-shadow:none!important}.ant-drawer-close .anticon,.ant-drawer-close .anticon svg{color:var(--color-text)!important}.ant-drawer-body{background:var(--color-card-bg)}.ant-drawer .ant-menu-dark,.ant-drawer .ant-menu-dark.ant-menu-inline{background:var(--color-card-bg)!important}.ant-drawer .ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected),.ant-drawer .ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected).ant-menu-item-active,.ant-drawer .ant-menu-dark .ant-menu-submenu-title:not(.ant-menu-item-selected),.ant-drawer .ant-menu-dark .ant-menu-submenu-title:not(.ant-menu-item-selected).ant-menu-item-active{background:transparent!important}.ant-drawer .ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):hover,.ant-drawer .ant-menu-dark .ant-menu-submenu-title:not(.ant-menu-item-selected):hover{background:color-mix(in srgb,var(--color-text-quaternary) 18%,transparent)!important}.ant-drawer .ant-menu-inline .ant-menu-item,.ant-drawer .ant-menu-inline .ant-menu-submenu-title{padding-left:12px!important}.ant-drawer-content-wrapper{box-shadow:var(--shadow-2)}.ant-drawer-mask{backdrop-filter:blur(10px)}:root[data-theme=light] .ant-drawer-mask{background-color:color-mix(in srgb,var(--color-shadow) 35%,transparent)}.ant-input,.ant-input-number,.ant-select-selector{background:var(--color-card-bg)!important;color:var(--color-text);border-color:var(--color-border)!important;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.ant-input-affix-wrapper,.ant-input-affix-wrapper-focused{background:var(--color-card-bg)!important;border-color:var(--color-border)!important;color:var(--color-text)!important}.ant-input-affix-wrapper .ant-input{background:transparent!important;color:var(--color-text)!important}.ant-input-affix-wrapper .ant-input-prefix,.ant-input-affix-wrapper .ant-input-suffix{color:var(--color-text-secondary)}.ant-select .ant-select-selector,.ant-select-disabled .ant-select-selector,.ant-select-focused .ant-select-selector,.ant-select-has-value .ant-select-selector,.ant-select-open .ant-select-selector,.ant-select-show-arrow .ant-select-selector,.ant-select-single .ant-select-selector,.ant-select.ant-select-disabled .ant-select-selector,.ant-select.ant-select-focused .ant-select-selector,.ant-select.ant-select-open .ant-select-selector,.ant-select:hover .ant-select-selector,.ant-select:not(.ant-select-customize-input) .ant-select-selector,.device-manage-container .ant-select .ant-select-selector,.form-grid .ant-select .ant-select-selector,.form-group .ant-select .ant-select-selector,.form-row .ant-select .ant-select-selector,.kv-select .ant-select-selector,.kv-value .ant-select .ant-select-selector,.tableClass .ant-select .ant-select-selector,.tableClass .ant-select-has-value .ant-select-selector,.tableClass .ant-select-show-arrow .ant-select-selector,.tableClass .ant-select-single .ant-select-selector,.tableClass .ant-select:not(.ant-select-customize-input) .ant-select-selector{box-shadow:none!important;outline:none!important;border:1px solid var(--color-border)!important}.ant-select-status-error .ant-select-selector,.ant-select-status-success .ant-select-selector,.ant-select-status-warning .ant-select-selector{box-shadow:none!important;outline:none!important}.ant-input::-moz-placeholder{color:var(--color-text-quaternary)}.ant-input::placeholder{color:var(--color-text-quaternary)}.ant-select-multiple .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{color:var(--color-text)}.ant-select .ant-select-arrow,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{color:var(--color-text-secondary)}.ant-select-open .ant-select-selection-item,.ant-select-open .ant-select-selection-placeholder{color:var(--color-text)!important}.ant-input-number:hover,.ant-input:hover,.ant-select-selector:hover{border-color:var(--color-primary)!important}.ant-input-number-focused,.ant-input:focus,.ant-select-focused .ant-select-selector{border-color:var(--color-primary)!important;box-shadow:var(--focus-ring)}.chart-time-range{display:flex!important;align-items:center!important;background-color:color-mix(in srgb,var(--color-text-quaternary) 26%,transparent)!important;border-radius:999px!important;border:1px solid var(--color-border)!important;padding:0 24px 0 10px!important;height:30px!important;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out);color:var(--color-text-secondary)!important}.chart-time-range:hover{background:var(--color-card-bg)!important}.chart-time-range i{font-size:.8rem;margin-right:5px}.chart-time-range-select{background:transparent!important;border:none!important;color:var(--color-text-secondary)!important;font-size:.75rem;outline:none!important;cursor:pointer;padding:2px 0!important;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.chart-time-range-select:focus{color:var(--color-text)!important}.chart-time-range-select option{background-color:var(--color-card-bg);color:var(--color-text-secondary);padding:8px}.admin-table .ant-table.ant-table-bordered>.ant-table-container,.admin-table .ant-table.ant-table-bordered>.ant-table-container>.ant-table-body,.admin-table .ant-table.ant-table-bordered>.ant-table-container>.ant-table-content,.admin-table .ant-table.ant-table-bordered>.ant-table-content,.tableClass .ant-table.ant-table-bordered>.ant-table-container,.tableClass .ant-table.ant-table-bordered>.ant-table-container>.ant-table-body,.tableClass .ant-table.ant-table-bordered>.ant-table-container>.ant-table-content,.tableClass .ant-table.ant-table-bordered>.ant-table-content{border:1px solid var(--color-border)!important}.admin-table .ant-table.ant-table-bordered .ant-table-cell,.tableClass .ant-table.ant-table-bordered .ant-table-cell{border-right:1px solid var(--color-border)!important;border-bottom:1px solid var(--color-border)!important}.admin-table .ant-table.ant-table-bordered .ant-table-tbody>tr>td,.admin-table .ant-table.ant-table-bordered .ant-table-thead>tr>th,.tableClass .ant-table.ant-table-bordered .ant-table-tbody>tr>td,.tableClass .ant-table.ant-table-bordered .ant-table-thead>tr>th{border-bottom:1px solid var(--divider)!important;border-right:1px solid var(--color-border)!important}.ant-select-dropdown{background:var(--color-card-bg);border:1px solid var(--color-border)}.ant-select-item,.ant-select-item-option-content{color:var(--color-text)}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background:color-mix(in srgb,var(--color-primary) 16%,transparent)}.ant-select-item-option-selected{background:color-mix(in srgb,var(--color-primary) 24%,transparent);color:var(--color-text)}:root[data-theme=dark] .ant-select-item-option-active:not(.ant-select-item-option-disabled),:root[data-theme=dark] .ant-select-item-option-selected:not(.ant-select-item-option-disabled){background:color-mix(in srgb,var(--color-primary) 45%,transparent)!important;color:var(--color-text)!important}:root[data-theme=dark] .ant-select-item-option-active:not(.ant-select-item-option-disabled) .ant-select-item-option-content,:root[data-theme=dark] .ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-content{color:var(--color-text)!important}.ant-btn{transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),filter var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.ant-btn:focus,.ant-btn:focus-visible{box-shadow:var(--focus-ring)}.ant-btn-default{color:var(--color-text);background:transparent;border-color:var(--color-border)}.ant-btn-default:focus,.ant-btn-default:hover{border-color:var(--color-primary);color:var(--color-text)}.ant-btn-primary{background:var(--color-primary);border-color:var(--color-primary)}.ant-btn-primary:focus,.ant-btn-primary:hover{filter:brightness(1.04)}.ant-btn-primary.ant-btn-dangerous{background:var(--color-error);border-color:var(--color-error)}.ant-btn-primary.ant-btn-dangerous:focus,.ant-btn-primary.ant-btn-dangerous:hover{filter:brightness(1.04)}.admin-page .ant-btn,.admin-table .ant-btn,.tableClass .ant-btn{border-radius:6px;font-weight:var(--fw-medium);padding:0 16px;height:32px;font-size:14px}.admin-page .ant-btn.ant-btn-sm,.admin-table .ant-btn.ant-btn-sm,.tableClass .ant-btn.ant-btn-sm{height:28px;padding:0 12px;font-size:13px;border-radius:4px}.admin-page .ant-btn-primary,.admin-table .ant-btn-primary,.tableClass .ant-btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.admin-page .ant-btn-primary.ant-btn-dangerous,.admin-table .ant-btn-primary.ant-btn-dangerous,.tableClass .ant-btn-primary.ant-btn-dangerous{background:var(--color-error);border-color:var(--color-error);color:#fff}.admin-page .ant-btn-default,.admin-table .ant-btn-default,.tableClass .ant-btn-default{background:transparent;border-color:var(--color-border);color:var(--color-text)}.admin-page .ant-btn-default:hover,.admin-table .ant-btn-default:hover,.tableClass .ant-btn-default:hover{border-color:var(--color-primary);color:var(--color-primary)}.ant-dropdown-menu,.ant-dropdown-menu-item,.ant-dropdown-menu-submenu,.ant-dropdown-menu-submenu-title{background:var(--color-card-bg)}.ant-dropdown-menu{border:1px solid var(--color-border);box-shadow:var(--card-shadow)}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{color:var(--color-text)}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background:color-mix(in srgb,var(--color-primary) 14%,transparent)}.ant-popover-inner,.ant-tooltip-inner{color:var(--color-text)!important;border:1px solid var(--color-border)!important;box-shadow:var(--card-shadow)!important}.ant-popover-arrow:before,.ant-popover-inner,.ant-tooltip-arrow:before,.ant-tooltip-inner{background:var(--color-card-bg)!important}.ant-message-notice-content,.ant-notification-notice{background:var(--color-card-bg)!important;color:var(--color-text)!important;border:1px solid var(--color-border)!important;box-shadow:var(--card-shadow)!important}.ant-message-notice-content .ant-message-custom-content,.ant-notification-notice-description,.ant-notification-notice-message,.ant-popover-inner *,.ant-tooltip-inner *{color:var(--color-text)!important}.ant-message-notice-content .ant-message-custom-content .anticon{color:inherit}.ant-message-success .anticon{color:var(--color-success)!important}.ant-message-info .anticon{color:var(--color-primary)!important}.ant-message-warning .anticon{color:var(--color-warning)!important}.ant-message-error .anticon{color:var(--color-error)!important}.ant-message-loading .anticon,.ant-notification-notice .anticon{color:var(--color-primary)!important}:root{--skel-bg:color-mix(in srgb,var(--color-text-quaternary) 22%,transparent);--skel-glow-light:color-mix(in srgb,var(--color-text) 60%,var(--color-card-bg) 40%);--skel-glow-dark:color-mix(in srgb,var(--color-text) 10%,var(--color-card-bg) 90%)}.skel{position:relative;display:block;border-radius:6px;background:var(--skel-bg);overflow:hidden}.skel-line{height:12px;margin:6px 0}.skel-line.sm{height:10px}.skel-line.md{height:14px}.skel-line.lg{height:18px}.skel-rect{height:48px}.skel-circle{width:32px;height:32px;border-radius:50%}.shimmer{background-image:linear-gradient(90deg,transparent 0,var(--skel-glow) 20%,transparent 40%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}:root[data-theme=light] .shimmer{--skel-glow:var(--skel-glow-light)}:root[data-theme=dark] .shimmer{--skel-glow:var(--skel-glow-dark)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (prefers-reduced-motion:reduce){.shimmer{animation:none}}:root[data-theme=dark]{--surface-0:#0d1117;--surface-1:rgba(20,24,32,.92);--surface-2:rgba(26,32,44,.96);--surface-glass:rgba(18,22,30,.62);--stroke-soft:hsla(0,0%,100%,.1);--stroke-strong:rgba(77,132,255,.42);--shadow-1:0 4px 12px rgba(0,0,0,.28);--shadow-2:0 10px 28px rgba(0,0,0,.46);--shadow-3:0 18px 44px rgba(0,0,0,.58);--ease-out:cubic-bezier(0.2,0.8,0.2,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--dur-1:120ms;--dur-2:180ms;--dur-3:240ms;--focus-ring:0 0 0 2px rgba(23,125,220,.28);--color-shadow:#000;--color-text:#fff;--color-text-inverse:#fff;--color-text-secondary:hsla(0,0%,100%,.7);--color-text-tertiary:hsla(0,0%,100%,.55);--color-text-quaternary:hsla(0,0%,100%,.35);--color-bg:var(--surface-0);--color-card-bg:var(--surface-1);--color-border:hsla(0,0%,100%,.08);--color-primary:#177ddc;--color-success:#52c41a;--color-warning:#faad14;--color-error:#ff4d4f;--slider-rail:#444;--slider-track:var(--color-primary);--slider-handle-border:var(--color-primary);--divider:#303030;--logo-color:#fff;--device-icon-color:#fff;--device-icon-glow:hsla(0,0%,100%,.45);--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--card-shadow:var(--shadow-1);--card-hover-shadow:var(--shadow-2),0 0 0 1px rgba(64,158,255,.16);--card-hover-bg:var(--surface-2);--card-active-border:rgba(64,158,255,.28);--device-tile-bg:var(--surface-1);--device-tile-border:var(--stroke-soft);--device-tile-hover-shadow:var(--shadow-2),0 0 0 1px rgba(64,158,255,.18);--device-tile-hover-border:rgba(77,132,255,.38);--device-tile-active-bg:var(--surface-2);--device-tile-name-color:hsla(0,0%,100%,.9);--status-on-bg:rgba(82,196,26,.85);--status-off-bg:rgba(255,77,77,.85);--status-border:rgba(25,28,36,.9);--chip-info-bg:rgba(23,125,220,.15);--chip-info-border:rgba(23,125,220,.3);--chip-info-color:rgba(23,125,220,.9);--chip-success-bg:rgba(82,196,26,.15);--chip-success-border:rgba(82,196,26,.3);--chip-success-color:rgba(82,196,26,.9)}:root[data-theme=light]{--surface-0:#f6f8fb;--surface-1:hsla(0,0%,100%,.94);--surface-2:hsla(0,0%,100%,.98);--surface-glass:hsla(0,0%,100%,.66);--stroke-soft:rgba(5,5,5,.1);--stroke-strong:rgba(22,119,255,.38);--shadow-1:0 1px 2px rgba(16,24,40,.06),0 10px 24px rgba(16,24,40,.08);--shadow-2:0 2px 6px rgba(16,24,40,.1),0 14px 28px rgba(16,24,40,.12);--shadow-3:0 6px 14px rgba(16,24,40,.12),0 20px 44px rgba(16,24,40,.16);--ease-out:cubic-bezier(0.2,0.8,0.2,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--dur-1:120ms;--dur-2:180ms;--dur-3:240ms;--focus-ring:0 0 0 2px rgba(22,119,255,.2);--color-shadow:#101828;--color-text:rgba(0,0,0,.88);--color-text-inverse:#fff;--color-text-secondary:rgba(0,0,0,.65);--color-text-tertiary:rgba(0,0,0,.45);--color-text-quaternary:rgba(0,0,0,.25);--color-bg:var(--surface-0);--color-card-bg:var(--surface-1);--color-border:rgba(5,5,5,.1);--color-primary:#1677ff;--color-success:#52c41a;--color-warning:#faad14;--color-error:#ff4d4f;--slider-rail:#e5e5e5;--slider-track:var(--color-primary);--slider-handle-border:var(--color-primary);--divider:#eaeaea;--logo-color:var(--color-text);--device-icon-color:#1677ff;--device-icon-glow:rgba(22,119,255,.28);--card-shadow:var(--shadow-1);--card-hover-shadow:var(--shadow-2);--card-hover-bg:var(--surface-2);--card-active-border:rgba(22,119,255,.35);--device-tile-bg:var(--surface-1);--device-tile-border:rgba(5,5,5,.12);--device-tile-hover-shadow:var(--shadow-2);--device-tile-hover-border:rgba(22,119,255,.45);--device-tile-active-bg:rgba(22,119,255,.08);--device-tile-name-color:var(--color-text);--status-on-bg:rgba(82,196,26,.85);--status-off-bg:rgba(255,77,77,.85);--status-border:var(--device-tile-border);--chip-info-bg:rgba(22,119,255,.12);--chip-info-border:rgba(22,119,255,.35);--chip-info-color:rgba(22,119,255,.98);--chip-success-bg:rgba(82,196,26,.12);--chip-success-border:rgba(82,196,26,.25);--chip-success-color:rgba(82,196,26,.9)}body,html{background:var(--color-bg);color:var(--color-text)}.smart-confirm .ant-modal-content{background:var(--color-card-bg)!important;color:var(--color-text)!important;border-radius:12px!important;box-shadow:var(--card-shadow)!important;border:1px solid var(--color-border)!important}.smart-confirm .ant-modal-confirm-body-wrapper{background:transparent!important}.smart-confirm .ant-modal-header{background:transparent!important;border-bottom:1px solid var(--color-border)!important}.smart-confirm .ant-modal-title{color:var(--color-text)!important;font-weight:var(--fw-semibold)}.smart-confirm .ant-modal-body{color:var(--color-text-secondary)!important}.smart-confirm .ant-modal-confirm-body{padding:4px 0}.smart-confirm .ant-modal-confirm-body .ant-modal-confirm-title{color:var(--color-text)!important}.smart-confirm .ant-modal-confirm-body .ant-modal-confirm-content{color:var(--color-text-secondary)!important}.smart-confirm .ant-modal-confirm-body .anticon{color:var(--color-warning)!important}.smart-confirm .ant-modal-footer{border-top:1px solid var(--color-border)!important}.smart-confirm .ant-modal-confirm-btns .ant-btn{border-radius:10px;height:32px;padding:0 14px}.smart-confirm .ant-btn-default:focus,.smart-confirm .ant-btn-default:hover{border-color:var(--color-primary)!important;color:var(--color-text)!important}.smart-confirm .ant-btn-primary.ant-btn-dangerous{box-shadow:none}.smart-confirm .ant-btn-primary.ant-btn-dangerous:focus,.smart-confirm .ant-btn-primary.ant-btn-dangerous:hover{filter:brightness(1.05)}.smart-confirm .ant-btn-default{color:var(--color-text)!important;border-color:var(--color-border)!important;background:transparent!important}.smart-card{background:var(--color-card-bg);border-radius:8px;box-shadow:var(--card-shadow);overflow:hidden;transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out);border:1px solid transparent;margin-bottom:16px;display:flex;flex-direction:column}.smart-card:hover{box-shadow:var(--card-hover-shadow);background:var(--card-hover-bg);transform:translateY(-1px)}.smart-card:active{transform:translateY(0);filter:brightness(.99)}.smart-card.active,.smart-card[aria-selected=true]{border-color:var(--card-active-border)}.smart-card-header{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;background:var(--color-card-bg);border-bottom:1px solid transparent}.smart-card-header h2{color:var(--color-text);font-size:.9rem;margin:0;font-weight:500;display:flex;align-items:center;gap:6px}.smart-card-body{padding:10px;background:var(--color-card-bg);flex:1;height:200px;overflow:auto;color:var(--color-text)}.chart-container{width:100%;height:100%;position:relative}.chart-card{flex:4}.control-panel-container{width:90%;max-width:420px;background:var(--color-card-bg);border-radius:10px;box-shadow:var(--card-hover-shadow);overflow:hidden;animation:slideUp var(--dur-3) var(--ease-out);border:1px solid var(--color-border);position:relative}.control-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--color-card-bg);border-bottom:1px solid var(--divider)}.control-panel-header h3{margin:0;font-size:16px;font-weight:500;color:var(--color-text)}.control-panel-body{padding:16px;max-height:70vh;overflow-y:auto}.control-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.75);display:flex;justify-content:center;align-items:center;z-index:1000;backdrop-filter:blur(10px);animation:fadeIn var(--dur-2) var(--ease-out)}:root[data-theme=light] .control-overlay{background:rgba(15,23,42,.35)}.close-button{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;background:hsla(0,0%,100%,.15);color:#e0e0e0;border:2px solid transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),filter var(--dur-2) var(--ease-out);padding:0;font-size:18px;line-height:1;z-index:10;box-shadow:0 2px 8px rgba(0,0,0,.3)}.close-button:hover{background:rgba(255,87,87,.9);color:#fff;transform:rotate(90deg) scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,.5)}.close-button:active{transform:rotate(90deg) scale(1.05);filter:brightness(.98)}@media (prefers-reduced-motion:reduce){.close-button,.control-overlay,.control-panel-container,.smart-card{transition:none!important;animation:none!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width:768px){.smart-card-body{height:auto!important;overflow:visible!important}.control-panel-container{width:96%;max-width:360px;border-radius:8px}.control-panel-header{padding:10px 12px}.control-panel-body{padding:12px;max-height:72vh}.close-button{top:10px;right:10px;width:26px;height:26px;font-size:16px}}@media (min-width:1440px){.smart-card-body{height:260px}.chart-card{flex:5}}@media (min-width:1920px){.smart-card-body{height:300px}}