:root{--bg: #0d1220;--surface-1: #141b2d;--surface-2: #1a2338;--surface-3: #222d47;--text: #eaf0fd;--text-dim: #9fb0cc;--text-faint: #6b7a97;--accent: #4f9dff;--accent-soft: rgba(79, 157, 255, .14);--accent-cooling: #4f9dff;--accent-dry: #2fc6b7;--accent-heating: #ff8a4c;--ok: #36d399;--ok-soft: rgba(54, 211, 153, .15);--warn: #ffb020;--warn-soft: rgba(255, 176, 32, .14);--danger: #ff5d6c;--danger-soft: rgba(255, 93, 108, .13);--border: #283452;--border-strong: #38466b;--shadow-1: 0 2px 10px rgba(0, 0, 0, .28);--shadow-2: 0 8px 28px rgba(0, 0, 0, .38);--radius-s: 10px;--radius-m: 14px;--radius-l: 20px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 32px;--sp-8: 40px;--grid-gap: var(--sp-4);--shell-pad: 16px;--bottom-nav-h: 64px;--fs-hero: 40px;--fs-xl: 28px;--fs-l: 18px;--fs-m: 15px;--fs-s: 13px;--fs-xs: 12px;--hero-grad: linear-gradient(140deg, #17233f 0%, #131b30 55%, #14202e 100%);--nav-bg: rgba(13, 18, 32, .86)}:root[data-theme=light]{--bg: #eff3f9;--surface-1: #ffffff;--surface-2: #f5f8fd;--surface-3: #e9eff8;--text: #17213a;--text-dim: #57687f;--text-faint: #71829b;--accent: #1a73e8;--accent-soft: rgba(26, 115, 232, .1);--accent-cooling: #1a73e8;--accent-dry: #0d9488;--accent-heating: #ea6c2b;--ok: #18a558;--ok-soft: rgba(24, 165, 88, .12);--warn: #b26a00;--warn-soft: rgba(199, 119, 0, .12);--danger: #d93025;--danger-soft: rgba(217, 48, 37, .1);--border: #dde5f0;--border-strong: #c3d0e2;--shadow-1: 0 2px 10px rgba(30, 50, 90, .08);--shadow-2: 0 8px 26px rgba(30, 50, 90, .13);--hero-grad: linear-gradient(140deg, #ffffff 0%, #f2f7ff 60%, #eef6f4 100%);--nav-bg: rgba(255, 255, 255, .9)}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;min-height:100vh;transition:background .25s ease,color .25s ease;font-size:var(--fs-m);line-height:1.5}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}#app{margin:0;max-width:100%}.app-shell{width:min(calc(100% - var(--shell-pad) * 2),1440px);margin-inline:auto;padding:var(--sp-4) 0 calc(var(--bottom-nav-h) + var(--sp-5) + env(safe-area-inset-bottom,0px))}.view{display:flex;flex-direction:column;gap:var(--grid-gap);min-width:0;animation:view-in .2s ease}@keyframes view-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4);min-width:0}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-logo{width:38px;height:38px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}.brand-name{font-size:var(--fs-l);font-weight:700;letter-spacing:.2px;white-space:nowrap}.brand-sub{font-size:var(--fs-xs);color:var(--text-faint);margin-top:-2px;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.desktop-nav{display:none}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:space-around;background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}.bottom-nav button{flex:1;max-width:96px;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;border:none;border-radius:var(--radius-s);color:var(--text-faint);font-size:10.5px;font-weight:600;padding:4px 0}.bottom-nav button.active{color:var(--accent)}.bottom-nav button:active{transform:scale(.95)}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-l);padding:var(--sp-4);box-shadow:var(--shadow-1);margin:0;min-width:0}.card h3{margin:0 0 var(--sp-3);font-size:var(--fs-s);font-weight:600;color:var(--text-dim);display:flex;align-items:center;gap:var(--sp-2);letter-spacing:.3px}.card-title-icon{color:var(--text-faint);display:inline-flex}.section-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-l);font-weight:700;margin:0;min-width:0}.sub{color:var(--text-dim);font-size:var(--fs-s)}.faint{color:var(--text-faint);font-size:var(--fs-xs)}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent)}.pill.online{background:var(--ok-soft);color:var(--ok)}.pill.offline{background:var(--danger-soft);color:var(--danger)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}button{font-family:inherit;cursor:pointer;border:none;border-radius:var(--radius-s);padding:12px 16px;font-size:var(--fs-m);font-weight:600;color:#fff;background:var(--accent);transition:transform .12s ease,opacity .18s ease,border-color .15s ease;min-height:44px}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--text-dim);border:1px solid var(--border)}button.danger{background:var(--danger)}button.ok{background:var(--ok)}button.ir{background:linear-gradient(135deg,#ff7a45,#ff4d4f);color:#fff}.btn-row{display:flex;gap:var(--sp-3);flex-wrap:wrap}.btn-row button{flex:1;min-width:120px}.icon-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border);width:44px;height:44px;min-height:44px;padding:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}.mini-link{margin-left:auto;background:transparent;color:var(--accent);border:1px solid var(--border);padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;min-height:34px;white-space:nowrap;flex-shrink:0}.inline-link{color:var(--accent);cursor:pointer;text-decoration:underline;white-space:nowrap;flex-shrink:0}.session-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;color:var(--ok);background:var(--ok-soft);border:1px solid rgba(54,211,153,.28);white-space:nowrap}.overview-grid,.insight-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--grid-gap);align-items:stretch;min-width:0}.overview-grid>*,.insight-grid>*{height:100%;min-width:0}.quick-section{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.hero-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:var(--sp-4);background:var(--hero-grad);border:1px solid var(--border);border-radius:var(--radius-l);padding:var(--sp-5);box-shadow:var(--shadow-2);margin:0;min-width:0}.hero-status{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.hero-status .faint{margin-left:auto}.hero-body{display:flex;align-items:flex-end;gap:var(--sp-5) var(--sp-7);flex-wrap:wrap}.hero-primary{min-width:0}.hero-temp{font-size:var(--fs-hero);font-weight:700;line-height:1;letter-spacing:-1px;font-variant-numeric:tabular-nums}.hero-temp .unit{font-size:22px;font-weight:600;color:var(--text-dim);margin-left:2px}.hero-temp-label{font-size:var(--fs-s);color:var(--text-dim);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:6px}.hero-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,max-content));gap:var(--sp-3) var(--sp-6);flex:1;min-width:0;padding-bottom:4px}.hero-metric{display:flex;flex-direction:column;gap:3px;min-width:0}.hero-metric .hm-label{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-faint);white-space:nowrap}.hero-metric strong{color:var(--text);font-size:var(--fs-m);font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.hero-foot{margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--border);display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;font-size:var(--fs-xs);color:var(--text-faint);line-height:1.5}.weather-card-root{display:flex;flex-direction:column}.weather-body{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;flex:1;min-width:0}.weather-icon{color:var(--accent);flex-shrink:0}.weather-main{min-width:0}.weather-temp{font-size:var(--fs-xl);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.weather-desc{font-size:var(--fs-s);color:var(--text-dim)}.weather-metrics{margin-left:auto;text-align:right;display:flex;flex-direction:column;gap:3px;flex-shrink:0}.weather-metrics .sub{font-size:var(--fs-xs);white-space:nowrap}.weather-foot{margin-top:auto;padding-top:var(--sp-3);font-size:var(--fs-xs);color:var(--text-faint)}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);align-items:stretch}.quick-btn{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:112px;height:100%;padding:var(--sp-4);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-m);color:var(--text);text-align:left;box-shadow:var(--shadow-1);min-width:0}.quick-btn .q-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;flex-shrink:0}.quick-btn .q-name{font-size:var(--fs-m);font-weight:700;margin-top:2px}.quick-btn .q-sub{font-size:var(--fs-xs);color:var(--text-dim);font-weight:500;overflow-wrap:anywhere}.quick-btn:not(:disabled):hover{border-color:var(--border-strong)}.quick-btn.q-cool .q-icon{background:var(--accent-soft);color:var(--accent-cooling)}.quick-btn.q-dry .q-icon{background:#2fc6b724;color:var(--accent-dry)}.quick-btn.q-heat .q-icon{background:#ff8a4c24;color:var(--accent-heating)}.quick-btn.q-off .q-icon{background:var(--danger-soft);color:var(--danger)}.quick-btn.q-off{border-color:#ff5d6c4d}.activity-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.activity-card .activity-scroll{overflow-y:auto;min-height:0}.activity-card .activity-foot{margin-top:var(--sp-2)}.trend-card{display:flex;flex-direction:column}.trend-card .chart-flex{flex:1;min-height:220px}.segmented{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:4px;overflow-x:auto;max-width:100%}.segmented button{flex:1;min-width:72px;min-height:40px;padding:8px 10px;border-radius:999px;background:transparent;color:var(--text-dim);font-size:var(--fs-s);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.segmented button.active{background:var(--surface-1);color:var(--text);box-shadow:var(--shadow-1);border:1px solid var(--border-strong)}.mode-group{min-width:0}.mode-title{font-size:var(--fs-s);font-weight:700;color:var(--text-dim);margin-bottom:var(--sp-2);letter-spacing:.5px;display:flex;align-items:center;gap:6px}.mode-title.m-cool{color:var(--accent-cooling)}.mode-title.m-dry{color:var(--accent-dry)}.mode-title.m-heat{color:var(--accent-heating)}.mode-title.m-off{color:var(--danger)}.state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);align-items:stretch}.state-btn{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:96px;height:100%;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-m);text-align:left;background:var(--surface-1);border:1px solid var(--border);color:var(--text);transition:border-color .15s ease,background .15s ease,transform .12s ease;min-width:0}.state-btn:not(:disabled):hover{border-color:var(--accent)}.state-btn .state-temp{font-size:24px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.state-btn .state-temp small{font-size:13px;font-weight:600;margin-left:1px}.state-btn .state-sub{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.3;overflow-wrap:anywhere}.state-btn .state-mode-icon{position:absolute;top:10px;right:12px;opacity:.75}.state-btn.tile-cool .state-mode-icon{color:var(--accent-cooling)}.state-btn.tile-dry .state-mode-icon{color:var(--accent-dry)}.state-btn.tile-heat .state-mode-icon{color:var(--accent-heating)}.state-btn.state-off{border-color:#ff5d6c66;background:var(--danger-soft)}.state-btn.state-off .state-temp{color:var(--danger);font-size:18px}.state-btn.state-off .state-mode-icon{color:var(--danger)}.state-btn.state-disabled{opacity:.45}.state-switch{margin-top:4px;font-size:11px;font-weight:700;padding:4px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent);cursor:pointer}.state-btn.state-disabled .state-switch{background:var(--warn-soft);color:var(--warn)}.readonly-note{display:flex;align-items:flex-start;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-s);color:var(--warn);background:var(--warn-soft);padding:10px 14px;border-radius:var(--radius-s);line-height:1.5;min-width:0}.readonly-note .rn-icon{flex-shrink:0;display:inline-flex;margin-top:2px}.readonly-note .rn-text{flex:1 1 auto;min-width:0}.schedule-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);min-height:56px}.schedule-row:last-of-type{border-bottom:none}.schedule-row.row-disabled .schedule-main{opacity:.45}.schedule-main{display:flex;flex-direction:column;gap:2px;min-width:0;cursor:pointer}.schedule-line1{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.schedule-time{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.schedule-name{font-size:var(--fs-s);font-weight:600;overflow-wrap:anywhere}.schedule-days{font-size:12px;color:var(--text-dim)}.schedule-actions{display:flex;gap:var(--sp-2);align-items:center;flex-shrink:0}.mini-toggle{min-width:52px;min-height:36px;padding:6px 12px;border-radius:999px;font-size:12px;background:var(--surface-3);color:var(--text-dim)}.mini-toggle.on{background:var(--ok-soft);color:var(--ok)}.mini-del{min-height:36px;min-width:44px;padding:6px 12px;border-radius:var(--radius-s);font-size:12px;background:transparent;color:var(--danger);border:1px solid rgba(255,93,108,.35)}.empty-state{text-align:center;padding:var(--sp-7) var(--sp-4);color:var(--text-dim)}.empty-state .es-icon{color:var(--text-faint);margin-bottom:var(--sp-3);display:inline-flex}.empty-state .es-title{font-size:var(--fs-m);font-weight:600;color:var(--text);margin-bottom:6px}.empty-state .es-desc{font-size:var(--fs-s);line-height:1.6;max-width:300px;margin:0 auto var(--sp-4)}.thermo-bar-wrap{margin:var(--sp-4) 0 var(--sp-2)}.thermo-bar{position:relative;height:12px;border-radius:999px;background:linear-gradient(90deg,var(--accent-cooling),var(--accent-dry) 50%,var(--accent-heating));opacity:.9}.thermo-marker{position:absolute;top:-5px;width:4px;height:22px;border-radius:3px;background:var(--text);transform:translate(-50%)}.thermo-marker.mk-off{background:var(--ok)}.thermo-marker.mk-on{background:var(--danger)}.thermo-current{position:absolute;top:-9px;width:14px;height:30px;border-radius:7px;border:2.5px solid var(--text);background:var(--surface-1);transform:translate(-50%);box-shadow:var(--shadow-1)}.thermo-labels{display:flex;justify-content:space-between;margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-faint)}.thermo-legend{display:flex;gap:var(--sp-4);margin-top:var(--sp-3);flex-wrap:wrap}.thermo-legend .tl{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-dim)}.tl-dot{width:10px;height:10px;border-radius:3px}.timeline{position:relative}.tl-item{display:flex;gap:var(--sp-3);padding:var(--sp-2) 0;align-items:flex-start}.tl-badge{width:30px;height:30px;border-radius:50%;flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-dim)}.tl-badge.ok{background:var(--ok-soft);color:var(--ok)}.tl-badge.bad{background:var(--danger-soft);color:var(--danger)}.tl-body{min-width:0;flex:1}.tl-title{font-size:var(--fs-s);line-height:1.45;overflow-wrap:anywhere}.tl-time{font-size:var(--fs-xs);color:var(--text-faint);margin-top:2px}.settings-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--grid-gap);align-items:stretch}.settings-grid>.card{height:100%}.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.kv-grid>div{border:1px solid var(--border);border-radius:var(--radius-s);padding:var(--sp-2) var(--sp-3);min-width:0;background:var(--surface-2)}.kv-grid span{display:block;color:var(--text-faint);font-size:11px;margin-bottom:3px}.kv-grid strong{display:block;font-size:var(--fs-s);overflow-wrap:anywhere;font-weight:600}.gate-ok{color:var(--ok)}.gate-bad{color:var(--danger)}.danger-zone{border-color:#ff5d6c59}.danger-zone h3{color:var(--danger)}details.diag{border:1px solid var(--border);border-radius:var(--radius-s);padding:var(--sp-2) var(--sp-3)}details.diag summary{cursor:pointer;font-size:var(--fs-s);color:var(--text-dim);font-weight:600;min-height:34px;display:flex;align-items:center}.kv-sub{display:block;font-style:normal;font-size:var(--fs-xs);color:var(--text-faint);margin-top:2px;overflow-wrap:anywhere}.trust-grid{align-items:stretch}.trust-grid>div{display:flex;flex-direction:column;height:100%;min-width:0}.trust-device-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}@media (max-width: 639.98px){.trust-grid{grid-template-columns:minmax(0,1fr)}}.ua-diag{margin-top:var(--sp-2)}.ua-raw{display:block;font-family:ui-monospace,SFMono-Regular,Consolas,Courier New,monospace;font-size:var(--fs-xs);color:var(--text-dim);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;padding-top:var(--sp-2);max-width:100%}.event{font-size:var(--fs-s);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);color:var(--text-dim);overflow-wrap:anywhere}.event:last-child{border-bottom:none}.event .t{color:var(--text);font-weight:600}.build-note{text-align:center;font-size:11px;color:var(--text-faint);letter-spacing:.2px;overflow-wrap:anywhere}.more-list{display:flex;flex-direction:column;gap:var(--sp-3)}.more-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:60px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-m);color:var(--text);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-m);font-weight:600;text-align:left;box-shadow:var(--shadow-1)}.more-item .mi-icon{color:var(--accent);display:flex}.more-item .mi-chev{margin-left:auto;color:var(--text-faint);display:flex}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#050a14b8;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);z-index:50}.modal{width:100%;max-width:360px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-l);padding:var(--sp-5);box-shadow:var(--shadow-2);max-height:86vh;overflow-y:auto}.modal h2{margin:0 0 var(--sp-4);font-size:var(--fs-l)}.modal label{display:block;font-size:var(--fs-s);color:var(--text-dim);margin:10px 0 6px}.modal input,.modal-select{width:100%;padding:12px;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface-1);color:var(--text);font-size:var(--fs-m);font-family:inherit;min-height:44px}input[type=range]{width:100%;accent-color:var(--accent);min-height:32px}.login-modal{max-width:360px}.ir-confirm-modal{max-width:440px}@media (max-width: 767px){.modal-mask.drawer-mask{align-items:flex-end;padding:0}.modal-mask.drawer-mask .modal{max-width:100%;border-radius:var(--radius-l) var(--radius-l) 0 0;animation:drawer-up .22s ease;padding-bottom:calc(var(--sp-5) + env(safe-area-inset-bottom,0px))}@keyframes drawer-up{0%{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}}.confirm-lead{margin:0 0 var(--sp-3);font-size:var(--fs-m);color:var(--text)}.confirm-copy{color:var(--text-dim);font-size:var(--fs-s);line-height:1.7;border:1px solid var(--border);border-radius:var(--radius-s);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4)}.confirm-copy ol{margin:6px 0 0;padding-left:20px}.confirm-actions button{min-width:130px;white-space:normal}.login-help{margin-top:var(--sp-2);line-height:1.5}.err{color:var(--danger);font-size:var(--fs-s);margin-top:10px;min-height:16px}.day-picker{display:flex;gap:6px;flex-wrap:wrap}.day-btn{min-width:44px;min-height:44px;padding:8px 0;border-radius:var(--radius-s);font-size:var(--fs-s);background:var(--surface-1);color:var(--text-dim);border:1px solid var(--border)}.day-btn.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.check-line{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-m);color:var(--text);min-height:44px}.check-line input{width:20px!important;height:20px;min-height:0!important}.toast-region{position:fixed;left:50%;bottom:calc(var(--bottom-nav-h) + var(--sp-5) + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:60;width:min(92vw,420px);pointer-events:none}.toast{background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-m);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-s);box-shadow:var(--shadow-2);text-align:center;animation:view-in .2s ease;overflow-wrap:anywhere}.chart-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:190px;color:var(--text-faint);font-size:var(--fs-s)}.chart-fill{width:100%;height:100%;min-height:inherit}.chart-area{height:210px}.range-tabs{display:flex;gap:6px;margin-bottom:var(--sp-3);flex-wrap:wrap}.range-tabs button{flex:none;min-width:56px;min-height:38px;padding:6px 14px;border-radius:999px;font-size:var(--fs-s);background:transparent;color:var(--text-dim);border:1px solid var(--border)}.range-tabs button.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.error-fallback{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--bg);z-index:100}.error-card{max-width:460px;width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-l);padding:var(--sp-6);box-shadow:var(--shadow-2)}.error-card h2{margin:0 0 var(--sp-4);font-size:19px;color:var(--danger)}.error-msg{font-size:14px;color:var(--text);background:var(--danger-soft);border:1px solid rgba(255,93,108,.3);border-radius:var(--radius-s);padding:10px 12px;word-break:break-word}.error-meta{font-size:12px;color:var(--text-dim);line-height:1.7;margin-top:var(--sp-4)}.panel-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;background:var(--surface-3);color:var(--text-dim)}.panel-chip.ok{background:var(--ok-soft);color:var(--ok)}.rule-summary .rule-line{font-size:var(--fs-m);line-height:1.6}.rule-summary strong{color:var(--accent)}@media (max-width: 359.98px){.quick-grid,.state-grid{grid-template-columns:minmax(0,1fr)}}@media (min-width: 600px){:root{--fs-hero: 44px;--shell-pad: 20px}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid .grid-full{grid-column:1 / -1}.chart-area{height:260px}}@media (min-width: 900px){:root{--shell-pad: 24px;--grid-gap: var(--sp-5)}.app-shell{padding:var(--sp-6) 0 var(--sp-8)}.bottom-nav{display:none}.desktop-nav{display:flex;gap:4px;margin-right:auto;margin-left:var(--sp-6);flex-wrap:wrap}.desktop-nav button{background:transparent;color:var(--text-dim);border:none;border-radius:999px;padding:9px 16px;font-size:var(--fs-s);font-weight:600;min-height:40px;display:inline-flex;align-items:center;gap:7px}.desktop-nav button.active{background:var(--accent-soft);color:var(--accent)}.toast-region{bottom:var(--sp-6)}.overview-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.overview-grid .ov-hero{grid-column:span 7}.overview-grid .ov-weather{grid-column:span 5}.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.state-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.insight-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.insight-grid .activity-card,.insight-grid .trend-card{grid-column:span 6}}@media (min-width: 1200px){:root{--fs-hero: 52px;--shell-pad: 32px}.overview-grid .ov-hero{grid-column:span 8}.overview-grid .ov-weather{grid-column:span 4}.insight-grid .activity-card{grid-column:span 5}.insight-grid .trend-card{grid-column:span 7}.trend-card .chart-flex{min-height:240px}.chart-area{height:320px}.state-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
