:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef6f8;--bg-elevated:#fff;--bg-soft:#f5fbfd;--text:#153342;--muted:#668393;--line:#dbe8ee;--primary:#0f5f78;--primary-strong:#09485c;--primary-soft:#e1f3f8;--danger:#b93636;--danger-soft:#fdecec;--warning:#8a6200;--warning-soft:#fff4d9;--success:#14763f;--success-soft:#e4f7ec;--neutral-soft:#edf2f5;--shadow:0 18px 50px #1333421f;--radius-lg:24px;--radius-md:18px;--radius-sm:12px;--touch:46px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;font-family:Noto Sans SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html{background:var(--bg);min-width:320px;min-height:100%}body{background:radial-gradient(circle at top left, #0f5f7829, transparent 34rem), var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.58}noscript{text-align:center;padding:16px;display:block}h1,h2,p,dl{margin:0}#app{min-height:100vh}.auth-page{min-height:100vh;padding:max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));place-items:center;display:grid}.auth-card,.card,.device-panel{background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid #ffffffbd}.auth-card{gap:14px;width:min(100%,430px);padding:clamp(22px,6vw,34px);display:grid}.eyebrow{color:var(--primary);letter-spacing:.18em;text-transform:uppercase;font-size:12px;font-weight:800}h1{font-size:clamp(24px,6vw,34px);line-height:1.15}.muted{color:var(--muted);font-size:14px;line-height:1.65}.input{width:100%;min-height:var(--touch);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);outline:none;padding:0 14px}.textarea{resize:vertical;min-height:132px;padding-top:12px;padding-bottom:12px;line-height:1.5}.input:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px #0f5f7824}.primary,.secondary,.ghost,.round{min-height:var(--touch);border-radius:var(--radius-sm);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;transition:transform .16s,box-shadow .16s,background-color .16s;display:inline-flex}.primary{color:#fff;background:var(--primary);padding:0 18px;font-weight:700}.secondary{color:var(--primary);background:var(--primary-soft);padding:0 16px;font-weight:700}.ghost{color:var(--primary);border:1px solid var(--line);background:0 0;padding:0 14px}.danger{color:var(--danger)}.full{width:100%}.primary:active,.secondary:active,.ghost:active,.round:active,.device-item:active{transform:scale(.98)}.app-shell{width:min(100%,1280px);min-height:100vh;padding:max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));margin:0 auto}.topbar{grid-template-columns:1fr;align-items:center;gap:14px;margin-bottom:14px;display:grid}.title-block{min-width:0}.topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mobile-only-action{display:none}.app-menus{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.menu-group{position:relative}.menu-group summary{min-height:var(--touch);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--primary);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:800;list-style:none;display:inline-flex}.menu-group summary::-webkit-details-marker{display:none}.menu-group summary:after{content:"⌄";font-size:14px}.menu-panel{z-index:10;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-elevated);min-width:180px;box-shadow:var(--shadow);gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.menu-item{border-radius:var(--radius-sm);width:100%;min-height:42px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;padding:0 12px}.menu-item.active{color:var(--primary);background:var(--primary-soft);font-weight:800}.connection-pill,.badge,.count{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.connection-pill.online,.badge.online{color:var(--success);background:var(--success-soft)}.connection-pill.offline,.badge.offline,.notice.error{color:var(--danger);background:var(--danger-soft)}.badge.warning,.notice.warning,.banner.warning{color:var(--warning);background:var(--warning-soft)}.badge.neutral,.notice.neutral,.banner.neutral,.count{color:var(--muted);background:var(--neutral-soft)}.banner{border-radius:var(--radius-sm);margin:0 0 14px;padding:12px 14px;line-height:1.55}.dashboard-layout{grid-template-columns:1fr;gap:14px;display:grid}.app-view{gap:14px;display:grid}.control-view{align-content:start;min-height:calc(100vh - 128px)}.thermostat-console{width:min(100%,900px);margin:0 auto}.thermostat-screen{gap:16px;display:grid}.console-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.console-primary{grid-template-columns:1fr;gap:10px;display:grid}.thermostat-screen .control-card{box-shadow:none;border-color:var(--line);background:linear-gradient(180deg, var(--bg-soft), var(--bg-elevated))}.list-view,.settings-view,.form-view,.help-view{width:min(100%,900px);margin:0 auto}.device-list-card{gap:14px;display:grid}.page-list{overscroll-behavior:contain;min-height:240px;max-height:calc(100dvh - 220px);padding-right:4px;overflow:auto}.settings-card{gap:16px;display:grid}.radio-group{grid-template-columns:1fr;gap:10px;display:grid}.radio-card{min-height:var(--touch);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-soft);cursor:pointer;align-items:center;gap:10px;padding:12px 14px;font-weight:800;display:flex}.radio-card input{width:18px;height:18px;accent-color:var(--primary)}.device-panel{padding:16px}.panel-heading,.card-title-row,.item-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title{font-size:18px;font-weight:800}.device-list{gap:10px;margin-top:14px;display:grid}.device-item{text-align:left;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-elevated);width:100%;min-height:112px;color:var(--text);gap:10px;padding:14px;display:grid}.device-item.selected{border-color:var(--primary);box-shadow:0 0 0 4px #0f5f781f}.item-values{flex-wrap:wrap;gap:10px;font-size:20px;font-weight:800;display:flex}.detail-panel{gap:14px;min-width:0;display:grid}.card{padding:clamp(16px,4vw,24px)}.empty{color:var(--muted);text-align:center;padding:28px 8px;line-height:1.7}.empty-detail{align-content:center;gap:12px;min-height:240px;display:grid}.metric-grid,.compat-grid{grid-template-columns:1fr;gap:10px;margin-top:16px;display:grid}.metric-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-soft);min-width:0;padding:14px}.metric-card strong{margin-top:6px;font-size:clamp(24px,7vw,38px);line-height:1.1;display:block}.metric-label,.metric-helper{color:var(--muted);font-size:13px;display:block}.metric-helper{margin-top:8px}.detail-rows{border-top:1px solid var(--line);grid-template-columns:minmax(76px,auto) 1fr;gap:10px 14px;margin-top:18px;padding-top:16px;font-size:14px;display:grid}.detail-rows dt{color:var(--muted)}.detail-rows dd{overflow-wrap:anywhere;min-width:0}.control-card,.registration-card,.factory-card,.factory-result-box{gap:14px;display:grid}.device-register-form{gap:10px;display:grid}.section-title.small{font-size:16px}.scanner-box{gap:10px;display:grid}.scanner-frame{aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--radius-md);background:#000;width:100%;max-height:280px;position:relative;overflow:hidden}.scanner-frame[hidden]{display:none}.qr-video{object-fit:cover;background:#000;width:100%;height:100%}.qr-video[hidden]{display:none}.scan-line{pointer-events:none;background:linear-gradient(#30d5c842,#30d5c800);border-top:2px solid #30d5c8f2;height:36px;animation:1.8s ease-in-out infinite qr-scan-line;position:absolute;top:8%;left:8%;right:8%;box-shadow:0 0 14px #30d5c873}.scan-line[hidden]{display:none}.trend-card{gap:12px;display:grid}.trend-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.trend-range-switch{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:inline-flex}.chip{border:1px solid var(--line);min-height:32px;color:var(--primary);background:var(--bg-elevated);cursor:pointer;border-radius:999px;padding:0 12px;font-size:13px;font-weight:800}.chip.active{color:#fff;border-color:var(--primary);background:var(--primary)}.trend-grid{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.spark-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-soft);gap:8px;min-width:0;padding:12px;display:grid}.spark-title{color:var(--muted);font-size:13px;font-weight:700}.spark-value{color:var(--text);font-size:clamp(24px,6vw,34px);font-weight:800;line-height:1}.spark-chart{width:100%;overflow:visible}.spark-chart svg{width:100%;height:auto;display:block}.spark-grid-line{stroke:#66839338;stroke-width:1px}.spark-grid-line.vertical{stroke:#66839324}.spark-axis{fill:none;stroke:#15334280;stroke-width:1.2px}.spark-axis-label{fill:var(--muted);font-size:10px;font-weight:700}.spark-axis-label.x{text-anchor:middle}.spark-path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.spark-path.temperature{stroke:#d46a1f}.spark-path.humidity{stroke:#0f7890}.spark-point{fill:var(--bg-elevated);stroke-width:1.4px}.spark-point.temperature{stroke:#d46a1f}.spark-point.humidity{stroke:#0f7890}.spark-range{color:var(--muted);font-size:12px}.compact{margin:0}@keyframes qr-scan-line{0%{opacity:.2;top:8%}12%,88%{opacity:1}to{opacity:.2;top:calc(92% - 36px)}}.setpoint-adjust{justify-content:center;align-items:center;gap:clamp(14px,6vw,28px);margin:8px 0;display:flex}.round{width:56px;height:56px;color:var(--primary);background:var(--primary-soft);border-radius:50%;flex:none;font-size:28px;font-weight:700}.setpoint-value{text-align:center;min-width:128px;font-size:clamp(34px,11vw,56px);line-height:1}.control-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 14px;display:grid}.field-label{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.field-label select,.field-label input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:42px;color:var(--text);background:var(--card);font:inherit;padding:0 12px}.notice{border-radius:var(--radius-sm);min-height:24px;padding:10px 12px;font-size:14px;line-height:1.55}.readonly-output{overflow-wrap:anywhere;font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace}.install-hint{border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary-strong);gap:8px;margin-top:14px;padding:12px;font-size:13px;line-height:1.5;display:grid}.auth-card .install-hint{margin-top:0}.install-modal-backdrop{z-index:30;padding:max(18px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#05161e6b;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.install-modal{border-radius:var(--radius-lg);background:var(--bg-elevated);width:min(100vw - 28px,460px);box-shadow:var(--shadow);border:1px solid #ffffffbd;gap:14px;padding:clamp(16px,4vw,22px);display:grid}.install-modal-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.install-modal-close{width:auto;min-height:38px;padding:0 12px}.install-modal .install-hint{margin-top:0}.install-modal-check{color:var(--muted);align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.install-modal-check input{width:18px;height:18px;accent-color:var(--primary)}.toast{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:20;color:#fff;text-align:center;width:min(100vw - 28px,420px);box-shadow:var(--shadow);background:#143342;border-radius:999px;padding:12px 16px;position:fixed;transform:translate(-50%)}@media (min-width:520px){.topbar{grid-template-columns:minmax(0,1fr) auto}.metric-grid,.compat-grid,.console-primary,.trend-grid,.radio-group{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:900px){.app-shell{padding-top:24px}.topbar{grid-template-columns:minmax(220px,1fr) auto auto}.dashboard-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start}.device-panel{max-height:calc(100vh - 36px);position:sticky;top:18px;overflow:auto}.summary-card .metric-grid,.console-primary{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1180px){.detail-panel{grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr)}.summary-card,.compatibility-card{grid-column:1/-1}}@media (max-width:640px){.app-shell{padding:max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left))}.topbar{gap:8px;margin-bottom:8px}.title-block .eyebrow{letter-spacing:.14em;font-size:10px}.title-block h1{font-size:24px}.topbar-actions{order:2;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.app-menus{order:3}.topbar-actions .connection-pill,.desktop-role-badge{display:none}.mobile-only-action{display:inline-flex}.topbar-actions .ghost{width:100%;min-height:38px;padding:0 6px;font-size:13px;font-weight:800}.thermostat-screen{gap:10px;padding:12px}.console-title{gap:8px}.console-title .section-title{font-size:16px}.console-primary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.console-primary .metric-card{border-radius:12px;min-height:72px;padding:8px 6px}.console-primary .metric-card:nth-child(4){display:none}.console-primary .metric-card strong{letter-spacing:-.03em;margin-top:3px;font-size:clamp(18px,6vw,24px)}.console-primary .metric-label{font-size:11px;line-height:1.2}.console-primary .metric-helper{display:none}.trend-card{scroll-margin-top:10px}}@media (max-width:420px){.app-menus{grid-template-columns:1fr 1fr;display:grid}.menu-group summary{width:100%}.menu-panel{width:min(220px,100vw - 28px)}.ghost,.primary,.secondary{width:100%}.install-modal-head .install-modal-close{width:auto}.detail-rows{grid-template-columns:1fr;gap:4px}}@media (hover:hover){.primary:hover,.secondary:hover,.ghost:hover,.round:hover,.device-item:hover{box-shadow:0 10px 26px #13334224}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#071923;--bg-elevated:#102936;--bg-soft:#0d222d;--text:#e5f4f7;--muted:#9db7c2;--line:#254553;--primary:#6ad5ec;--primary-strong:#d8f8ff;--primary-soft:#123747;--danger:#ff9b9b;--danger-soft:#3a1b20;--warning:#ffd37a;--warning-soft:#342711;--success:#80e3a9;--success-soft:#143624;--neutral-soft:#19313d;--shadow:0 18px 50px #0000005c}body{background:radial-gradient(circle at top left, #6ad5ec21, transparent 34rem), var(--bg)}}
