.dashboard-card,.device-card{background:var(--panel);background:var(--surface-raised,var(--panel));border:none;border-radius:var(--radius);box-shadow:var(--shadow);box-shadow:var(--shadow-md,var(--shadow));display:flex;flex-direction:column;gap:12px;justify-content:flex-start;padding:20px 22px}.card-header,.device-card-head{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:4px}.dc-name{color:var(--ink-900);color:var(--text,var(--ink-900));font-size:17px;font-weight:700;line-height:1.2}.card-header .edit-btn,.device-card-head .edit-btn{align-items:center;background:#0f172a0a;background:var(--surface-muted,#0f172a0a);border:none;border-radius:9999px;box-shadow:none;box-shadow:var(--shadow-sm,none);color:var(--ink-900);color:var(--text,var(--ink-900));cursor:pointer;display:inline-flex;height:34px;justify-content:center;transition:filter .15s ease,transform .05s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;width:34px}.card-header .edit-btn:hover,.device-card-head .edit-btn:hover{box-shadow:var(--shadow-sm);box-shadow:var(--shadow-md,var(--shadow-sm));filter:brightness(.98)}.card-header .edit-btn:active,.device-card-head .edit-btn:active{transform:translateY(1px)}.card-header .edit-btn:focus,.device-card-head .edit-btn:focus{box-shadow:0 0 0 2px #6e1d8538;outline:none}.card-header .edit-btn .edit-icon,.device-card-head .edit-btn .edit-icon{height:16px;opacity:.85;pointer-events:none;transform:rotate(-20deg);width:16px}.stat-value{color:var(--ink-900);color:var(--text,var(--ink-900));font-size:32px;letter-spacing:.2px}.stat-sub{color:var(--muted,var(--ink-600));font-size:14px}.status-chip{background:#0f172a0d;background:var(--surface-muted,#0f172a0d);box-shadow:none;color:var(--ink-900);color:var(--text,var(--ink-900));font-size:12px;gap:6px;padding:4px 10px}.cmd-state-pill,.status-chip{align-items:center;border:none;border-radius:999px;display:inline-flex}.cmd-state-pill{font-size:11px;font-weight:700;gap:4px;letter-spacing:.02em;line-height:1.2;padding:3px 8px;text-transform:uppercase}.cmd-state-pill--pending{background:color-mix(in oklab,#f59e0b 14%,var(--panel));box-shadow:none;color:#b45309}.cmd-state-pill--locked{background:color-mix(in oklab,var(--ink-500) 5%,var(--panel-a));box-shadow:none;color:var(--ink-700)}.dashboard-card--cmd-pending{background:color-mix(in oklab,#f59e0b 2.5%,var(--panel));background:color-mix(in oklab,#f59e0b 2.5%,var(--surface-raised,var(--panel)));box-shadow:var(--shadow),0 0 0 1px color-mix(in oklab,#f59e0b 10%,#0000);box-shadow:var(--shadow-md,var(--shadow)),0 0 0 1px color-mix(in oklab,#f59e0b 10%,#0000)}.dashboard-card--read-only:not(.dashboard-card--cmd-pending){background:color-mix(in oklab,var(--ink-500) 2.2%,var(--panel));background:color-mix(in oklab,var(--ink-500) 2.2%,var(--surface-raised,var(--panel)));box-shadow:var(--shadow);box-shadow:var(--shadow-sm,var(--shadow))}.dashboard-card--thermo-editable .edit-btn{background:color-mix(in oklab,var(--brand-500) 8%,var(--panel));box-shadow:var(--shadow-sm)}.cmd-interaction-note{border-top:1px solid #0f172a0f;color:var(--ink-600);font-size:11px;font-weight:600;letter-spacing:.01em;line-height:1.35;margin:10px 0 0;padding-top:12px}.cmd-interaction-note--pending{border-top-color:color-mix(in oklab,#f59e0b 18%,#0000);color:#b45309}.cmd-interaction-note--editable,.cmd-interaction-note--readonly{color:var(--ink-500);font-weight:600}.theme-dark .cmd-interaction-note--pending{border-top-color:#ffffff14;color:#fde68a}.theme-dark .dashboard-card--thermo-editable .edit-btn{background:color-mix(in oklab,var(--brand-400) 12%,var(--panel))}.theme-dark .cmd-state-pill--pending{background:color-mix(in oklab,#f59e0b 18%,var(--panel));color:#fde68a}.theme-dark .cmd-state-pill--locked{background:color-mix(in oklab,var(--ink-900) 12%,var(--panel));color:var(--ink-500)}.theme-dark .dashboard-card--cmd-pending{box-shadow:0 8px 24px #0003,0 0 0 1px color-mix(in oklab,#f59e0b 12%,#0000)}.theme-dark .dashboard-card--read-only:not(.dashboard-card--cmd-pending){background:color-mix(in oklab,var(--ink-900) 10%,var(--panel))}@media (max-width:640px){.dashboard-card,.device-card{padding:16px 18px}.dc-name{font-size:16px}.stat-value{font-size:28px}}:root{--brand-50:#faf5fb;--brand-100:#f3e8f9;--brand-200:#e9d5f3;--brand-300:#d8b4ea;--brand-400:#c084d6;--brand-500:#9d5bbf;--brand-600:#6e1d85;--brand-700:#5b186f;--brand-800:#471358;--ink-900:#0f172a;--ink-700:#334155;--ink-600:#475569;--ink-500:#64748b;--panel:#fff;--panel-b:#0f172a14;--surface-page:#f4f4f5;--surface-raised:#fff;--surface-muted:#0f172a08;--hairline:#0f172a0f;--bg-soft:var(--surface-muted);--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;--shadow-lg:0 10px 28px #0f172a12,0 2px 8px #0f172a0a;--shadow:var(--shadow-md);--shadow-brand:0 7px 18px #6e1d851c,0 2px 6px #0f172a0d;--radius:12px;--warm-500:#f59e0b;--hot-500:#ef4444;--hot-700:#b91c1c;--panel-a:var(--panel);--accent-500:var(--brand-600);--accent-400:var(--brand-500);--on-accent:#fff;--elev-1:var(--shadow-sm)}*{box-sizing:border-box}#root,body,html{height:100%;width:100%}body,html{position:relative}body{background:#f4f4f5;background:var(--surface-page);color:#0f172a;color:var(--ink-900);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;min-height:100vh;overflow-x:hidden}.animated-background{height:100%;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.animated-background:before{animation:backgroundShift 12s ease-in-out infinite;background:radial-gradient(circle 800px at 20% 30%,#8b5cf626 0,#0000 70%),radial-gradient(circle 700px at 80% 70%,rgba(236,72,153,.125) 0,#0000 70%),radial-gradient(circle 600px at 50% 50%,#6e1d851a 0,#0000 70%)}.animated-background:after,.animated-background:before{content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%;will-change:transform}.animated-background:after{animation:backgroundShift2 16s ease-in-out infinite reverse;background:radial-gradient(circle 500px at 60% 20%,#a855f71a 0,#0000 60%),radial-gradient(circle 400px at 30% 80%,#ec489917 0,#0000 60%),radial-gradient(circle 300px at 90% 50%,rgba(139,92,246,.075) 0,#0000 50%)}@keyframes backgroundShift{0%{transform:translate(0) scale(1) rotate(0deg)}25%{transform:translate(10%,-6%) scale(1.2) rotate(5deg)}50%{transform:translate(-8%,8%) scale(.85) rotate(-4deg)}75%{transform:translate(6%,-4%) scale(1.1) rotate(2deg)}to{transform:translate(0) scale(1) rotate(0deg)}}@keyframes backgroundShift2{0%{transform:translate(0) scale(1) rotate(0deg)}33%{transform:translate(-10%,6%) scale(1.25) rotate(-5deg)}66%{transform:translate(8%,-8%) scale(.8) rotate(4deg)}to{transform:translate(0) scale(1) rotate(0deg)}}.auth-error-screen{align-items:center;box-sizing:border-box;display:flex;inset:0;justify-content:center;overflow:auto;padding:20px;pointer-events:auto;position:fixed;z-index:100000}.auth-error-screen .auth-error-card{pointer-events:auto;position:relative;width:100%;z-index:1}.app{background:#0000}.app,.app-content{position:relative;z-index:1}.app{display:flex;flex-direction:row;min-height:100vh;padding:0}.app-content{display:flex;flex:1 1;flex-direction:column;gap:4px;overflow-x:hidden;padding:36px 32px 48px}@media (max-width:768px){.app{flex-direction:row;position:relative}.app>.sidebar:not(.sidebar-open){display:none!important;flex:0 0!important;min-width:0!important;width:0!important}.app-content{flex:1 1 100%!important;margin-left:0!important;max-width:100%!important;min-width:0!important;padding:60px 12px 12px;width:100%!important}.app h1{font-size:20px;margin:0 0 12px}.sidebar-toggle{align-items:center;background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:6px;box-shadow:0 1px 4px #0000001a;color:#0f172a;color:var(--ink-900);cursor:pointer;display:flex!important;font-size:18px;height:44px;justify-content:center;left:12px;min-height:44px;min-width:44px;position:fixed;top:12px;touch-action:manipulation;transition:opacity .2s,visibility .2s;width:44px;z-index:1001}.sidebar-toggle.sidebar-toggle-hidden{display:none!important}.sidebar-toggle:active{background:#fff;background:var(--panel-a,#f8fafc);transform:scale(.95)}.sidebar-overlay{animation:overlayFadeIn .2s ease-out;background:#00000080;display:block!important;inset:0;position:fixed;z-index:999}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.sidebar{bottom:0;box-shadow:2px 0 8px #00000026;display:none!important;flex-basis:0;flex-grow:0;flex-shrink:0;left:-100%;max-width:75vw;position:fixed!important;top:0;transform:translateX(0);transition:left .3s ease-out;width:260px;z-index:1000}.sidebar.sidebar-open{display:flex!important;left:0}.desktop-nav{display:none!important}.sidebar-header{padding:60px 16px 16px}.sidebar-brand{font-size:18px}.sidebar-nav{flex-direction:column;gap:4px;overflow-y:auto;padding:8px}.sidebar-item-wrapper{width:100%}.sidebar-item-button{font-size:15px!important;min-height:44px;padding:12px 16px!important;width:100%!important}.sidebar-item-label{white-space:normal}.sidebar-footer{display:block;font-size:11px;padding:12px 16px}.sidebar-close{align-items:center;background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:50%;color:#0f172a;color:var(--ink-900);cursor:pointer;display:flex;font-size:24px;height:44px;justify-content:center;line-height:1;min-height:44px;min-width:44px;position:absolute;right:16px;top:16px;touch-action:manipulation;width:44px}.sidebar-close:active{background:#fff;background:var(--panel-a,#f8fafc)}.topbar{align-items:flex-start;flex-wrap:wrap;gap:8px;margin-bottom:12px}.topbar-left{align-items:stretch;flex:1 1 100%;flex-direction:column;gap:8px;order:1;width:100%}.topbar-left .brand{align-self:flex-start}.topbar-center{justify-content:flex-start;order:2}.topbar-center,.topbar-right{flex:1 1 100%;margin-left:0;width:100%}.topbar-right{flex-wrap:wrap;justify-content:flex-end;order:3}.brand{flex:0 0 auto;min-width:0}.brand-text{font-size:16px;font-weight:800}.logo-dot{box-shadow:0 0 0 2px #6e1d852e;height:10px;width:10px}.topbar-left .tabs{gap:4px;margin-left:0;width:100%}.tab{flex:1 1;font-size:12px;font-weight:600;min-height:36px;padding:6px 12px}.device-select{align-items:center;flex:1 1 auto;flex-wrap:nowrap;gap:6px;margin-left:0;min-width:0;width:auto}.topbar-center .device-select{flex:1 1 140px;min-width:0}.device-select label{flex-shrink:0;font-size:11px;white-space:nowrap}.device-select select{flex:1 1;font-size:13px;max-width:100%;min-height:44px;min-width:0;overflow:hidden;padding:8px 10px;text-overflow:ellipsis}.theme-toggle{font-size:11px!important;gap:4px!important;min-height:36px;padding:6px 8px!important}.theme-icon{font-size:14px!important}.theme-label{font-size:11px!important}.device-grid{gap:12px;grid-template-columns:1fr}.device-card{padding:12px}.dc-actions{flex-direction:column}.dc-actions .btn{min-height:44px;padding:12px;width:100%}.cards-container{gap:12px;grid-template-columns:1fr!important}.chart-container{padding:12px}.modal{border-radius:0;margin:0;max-width:100vw;padding:16px;width:100vw}.btn{font-size:15px;padding:12px 20px}.btn,.btn.sm{min-height:44px}.btn.sm{padding:10px 16px}}.app h1{color:#0f172a;color:var(--ink-900);font-size:clamp(28px,4vw,40px);font-weight:800;letter-spacing:-.02em;margin:0 0 22px}.cards-container{grid-gap:28px;display:grid;gap:28px;grid-auto-flow:dense;grid-template-columns:repeat(5,minmax(220px,1fr));margin-bottom:28px;width:100%}@media (max-width:1280px){.cards-container{grid-template-columns:repeat(3,minmax(220px,1fr))}}@media (max-width:820px){.cards-container{grid-template-columns:repeat(1,minmax(220px,1fr))}}.chart-container{background:#fff;background:var(--surface-raised);border:none;border-radius:12px;border-radius:var(--radius);box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md);margin:12px 0 32px;padding:22px;width:100%}.air-dashboard .air-metric-sub{align-items:flex-start;display:flex;flex-direction:column;gap:3px}.air-dashboard .air-metric-sub-kicker{color:#64748b;color:var(--ink-500);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.air-dashboard .air-metric-sub-line{font-size:12px;font-weight:600;line-height:1.3}.air-dashboard .air-metric-sub-line--temp{color:#ea580c}.air-dashboard .air-metric-sub-line--hum{color:#0284c7}.air-dashboard .air-battery-unavailable-main{color:#64748b;color:var(--ink-500);font-size:clamp(22px,5vw,28px);font-weight:700;letter-spacing:.03em}.air-dashboard .air-card-battery-unknown{background:color-mix(in oklab,#64748b 2.5%,#fff);background:color-mix(in oklab,var(--ink-500) 2.5%,var(--panel));border-color:color-mix(in oklab,#64748b 20%,#0f172a14);border-color:color-mix(in oklab,var(--ink-500) 20%,var(--panel-b));border-style:dashed}.air-dashboard-chart-hero.chart-container{background:color-mix(in oklab,#6e1d85 2%,#fff);background:color-mix(in oklab,var(--brand-600) 2%,var(--surface-raised));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md)}.theme-dark .air-dashboard .air-card-battery-unknown{background:color-mix(in oklab,#0f172a 12%,#fff);background:color-mix(in oklab,var(--ink-900) 12%,var(--panel));border-color:color-mix(in oklab,#64748b 28%,#0f172a14);border-color:color-mix(in oklab,var(--ink-500) 28%,var(--panel-b))}.theme-dark .air-dashboard-chart-hero.chart-container{border-color:color-mix(in oklab,#c084d6 22%,#0f172a14);border-color:color-mix(in oklab,var(--brand-400) 22%,var(--panel-b))}.leak-dashboard .leak-card-context,.leak-dashboard .leak-tamper-sub{display:flex;flex-direction:column;gap:4px}.leak-dashboard .leak-tamper-sub{align-items:flex-start}.leak-dashboard .leak-tamper-sub-line{color:#475569;color:var(--ink-600);font-size:12px;font-weight:600;line-height:1.4}.leak-dashboard .leak-tamper-sub-line--alert{color:#c2410c;font-weight:600}.leak-dashboard .leak-tamper-sub-line--muted{color:#64748b;color:var(--ink-500);font-size:11px;font-weight:500}.leak-dashboard .leak-card-tamper-alert{background:color-mix(in oklab,#ef4444 3.5%,#fff);background:color-mix(in oklab,#ef4444 3.5%,var(--panel));border-color:color-mix(in oklab,#ef4444 14%,#0f172a14);border-color:color-mix(in oklab,#ef4444 14%,var(--panel-b))}.leak-dashboard .leak-metric-secondary .dc-name{color:#475569;color:var(--ink-600);font-size:15px;font-weight:700}.leak-dashboard .leak-metric-secondary .stat-value{font-size:26px;font-weight:700}.leak-dashboard .leak-metric-sub-one{color:#64748b;color:var(--ink-500);font-size:11px;font-weight:600;line-height:1.35}.theme-dark .leak-dashboard .leak-card-tamper-alert{background:color-mix(in oklab,#ef4444 6%,#fff);background:color-mix(in oklab,#ef4444 6%,var(--panel));border-color:color-mix(in oklab,#ef4444 20%,#0f172a14);border-color:color-mix(in oklab,#ef4444 20%,var(--panel-b))}.theme-dark .leak-dashboard .leak-tamper-sub-line--alert{color:#fdba74}.footer{display:flex;gap:18px;justify-content:center}.footer-icon{fill:#475569;fill:var(--ink-600);height:22px;opacity:.9;width:22px}.footer-icon:hover{opacity:1}.modal-overlay{animation:overlayIn .12s ease-out both;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a73;display:grid;inset:0;place-items:center;position:fixed;z-index:1000}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal{animation:dialogIn .16s ease-out both;background:#fff;border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:12px;border-radius:var(--radius);box-shadow:0 20px 50px #0206172e,0 6px 18px #0206171a;color:#0f172a;color:var(--ink-900);padding:20px 22px;transform:translateY(8px);width:min(520px,94vw)}@keyframes dialogIn{to{transform:translateY(0)}}.modal h2,.modal-title{font-size:20px;font-weight:800;letter-spacing:-.01em;margin:0 0 12px}.modal .modal-input,.modal input[type=number],.modal input[type=text]{background:#fff;border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:10px;box-shadow:inset 0 1px 0 #0206170a;color:#0f172a;color:var(--ink-900);outline:none;padding:8px 10px;transition:box-shadow .15s,border-color .15s;width:120px}.modal .modal-input:focus,.modal input:focus{border-color:#0000;box-shadow:0 0 0 2px #6e1d8538,0 1px 2px #0f172a0a;box-shadow:0 0 0 2px #6e1d8538,var(--shadow-sm)}.btn,.option-btn{background:#fff;background:var(--surface-raised);border:none;border-radius:10px;box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);color:#0f172a;color:var(--ink-900);cursor:pointer;font-weight:600;padding:8px 14px;transition:transform .04s ease,box-shadow .15s,background .15s;-webkit-user-select:none;user-select:none}a.btn,a.option-btn{justify-content:center}.auth-home-link,a.btn,a.option-btn{align-items:center;box-sizing:border-box;display:inline-flex;text-decoration:none}.auth-home-link{appearance:none;border:none;border-radius:8px;box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);color:#334155;color:var(--ink-700,#334155);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;margin-left:8px;padding:6px 12px;pointer-events:auto;position:relative;transition:box-shadow .2s,background .2s;z-index:2}.auth-home-link,.auth-home-link:hover{background:#fff;background:var(--surface-raised)}.auth-home-link:hover{box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md)}.theme-dark .auth-home-link{background:#0f1320;color:#e6ebf5}.theme-dark .auth-home-link:hover{background:#141a2f}.btn:hover,.option-btn:hover{transform:translateY(-1px)}.btn:active,.option-btn:active{transform:translateY(0)}.btn.primary,.option-btn.primary{background:#6e1d85;background:var(--brand-600);box-shadow:0 3px 10px #6e1d8538;color:#fff}.btn.primary:hover{background:#5b186f;background:var(--brand-700);box-shadow:0 4px 12px #6e1d8547}.btn.ghost{background:#0f172a08;background:var(--surface-muted);box-shadow:none;color:#0f172a;color:var(--ink-900)}.btn.ghost:hover{background:#0f172a0f}.modal.compact{border-radius:12px;padding:16px 18px;width:min(380px,92vw)}.modal-title{font-size:18px;font-weight:800;letter-spacing:-.01em;margin:0 0 10px}.modal-row{align-items:center;display:flex;gap:10px}.modal-actions{display:flex;gap:8px;margin-left:auto}.modal-actions.right{justify-content:flex-end;margin-top:10px}.btn.sm,.option-btn.sm{border-radius:999px;font-size:13px;padding:6px 12px}.segmented{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:12px;display:flex;gap:4px}.segmented .seg{border-radius:8px;cursor:pointer;flex:1 1;font-weight:700;padding:8px 10px}.segmented .seg:hover{background:#e2e8f0}.segmented .seg.active{background:#fff;box-shadow:0 1px 0 #0206170a;color:#5b186f;color:var(--brand-700)}.offline-banner{background:#fff7ed;border:1px dashed #f59e0b;border-radius:12px;color:#92400e;margin:0 0 10px;max-width:1200px;padding:10px 12px;width:100%}.humidity-gauge{position:relative}.humidity-gauge .gauge-svg{height:140px;overflow:visible;position:relative;width:100%;z-index:1}.humidity-gauge .gauge-track{stroke:#e8effe;stroke:var(--panel-accent-weak,#e8effe);stroke-width:16;fill:none;opacity:.9}.humidity-gauge .gauge-fill{stroke:#6e1d85;stroke:var(--brand-600,#6e1d85);stroke-width:16;fill:none;stroke-linecap:round}.humidity-gauge .gauge-knob{fill:#6e1d85;fill:var(--brand-600,#6e1d85);stroke:#fff;stroke-width:2;filter:drop-shadow(0 2px 4px rgba(59,70,89,.25))}.humidity-gauge .gauge-value{text-anchor:middle;fill:#0f172a;fill:var(--ink-900);font-size:20px;font-weight:700}.humidity-gauge .gauge-ends{bottom:4px;color:#475569;color:var(--ink-600);display:flex;font-size:12px;justify-content:space-between;left:0;padding:0 20px;position:absolute;right:0;z-index:3}.humidity-gauge--compact .gauge-svg{display:block;height:104px;margin:0 auto;max-width:188px;opacity:.94}.humidity-gauge--compact .gauge-fill,.humidity-gauge--compact .gauge-track{stroke-width:13}.humidity-gauge--compact .gauge-value{font-size:17px}.humidity-gauge--compact .gauge-ends{font-size:11px;padding:0 18px}.thermo-card--feels-secondary .dc-name{color:#475569;color:var(--ink-600);font-size:15px;font-weight:700;letter-spacing:.02em}.thermo-card--hvac-state{background:linear-gradient(165deg,color-mix(in oklab,#9d5bbf 8%,#fff),#fff 55%);background:linear-gradient(165deg,color-mix(in oklab,var(--brand-500) 8%,var(--panel)) 0,var(--panel) 55%);border-color:color-mix(in oklab,#9d5bbf 24%,#0f172a14);border-color:color-mix(in oklab,var(--brand-500) 24%,var(--panel-b));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a,0 0 0 1px color-mix(in oklab,#9d5bbf 12%,#0000);box-shadow:var(--shadow),0 0 0 1px color-mix(in oklab,var(--brand-500) 12%,#0000)}.thermo-card--hvac-state .dc-name,.thermo-card--hvac-state .stat-value{letter-spacing:.01em}.stagedots.stagedots--thermo-ops{gap:10px;justify-content:center;margin-top:4px}.stagedots.stagedots--thermo-ops .dot{border:2px solid #0f172a14;border:2px solid var(--panel-b);box-shadow:0 1px 2px #0000000f;height:12px;margin-right:0;width:12px}.stagedots.stagedots--thermo-ops .dot.on{border-color:color-mix(in oklab,#6e1d85 40%,#0f172a14);border-color:color-mix(in oklab,var(--brand-600) 40%,var(--panel-b));box-shadow:0 0 0 2px color-mix(in oklab,#9d5bbf 22%,#0000),0 2px 8px #6e1d852e;box-shadow:0 0 0 2px color-mix(in oklab,var(--brand-500) 22%,#0000),0 2px 8px #6e1d852e}.theme-dark .thermo-card--hvac-state{background:linear-gradient(165deg,color-mix(in oklab,#9d5bbf 12%,#fff),#fff 55%);background:linear-gradient(165deg,color-mix(in oklab,var(--brand-500) 12%,var(--panel)) 0,var(--panel) 55%);border-color:color-mix(in oklab,#9d5bbf 32%,#0f172a14);border-color:color-mix(in oklab,var(--brand-500) 32%,var(--panel-b))}.theme-dark .thermo-card--feels-secondary .dc-name{color:#64748b;color:var(--ink-500)}.thermo-card--stage-state{background:linear-gradient(165deg,color-mix(in oklab,#9d5bbf 3.5%,#fff),#fff 52%);background:linear-gradient(165deg,color-mix(in oklab,var(--brand-500) 3.5%,var(--panel)) 0,var(--panel) 52%);border-color:color-mix(in oklab,#0f172a14 92%,#64748b);border-color:color-mix(in oklab,var(--panel-b) 92%,var(--ink-500));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow)}.thermo-card--stage-state .dc-name{color:#475569;color:var(--ink-600);font-size:15px;font-weight:700}.thermo-card--stage-state .stat-sub{color:#64748b;color:var(--ink-500);font-size:12px;font-weight:600;line-height:1.35}.theme-dark .thermo-card--stage-state{background:linear-gradient(165deg,color-mix(in oklab,#9d5bbf 6%,#fff),#fff 52%);background:linear-gradient(165deg,color-mix(in oklab,var(--brand-500) 6%,var(--panel)) 0,var(--panel) 52%);border-color:color-mix(in oklab,var(--panel-b) 88%,var(--ink-400))}.theme-dark .thermo-card--stage-state .dc-name{color:#64748b;color:var(--ink-500)}.thermo-card--humidity-support .dc-name{color:#475569;color:var(--ink-600);font-size:15px;font-weight:700}.thermo-card--humidity-support .humidity-card-body{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;margin-top:2px;min-height:128px;padding:10px 8px 6px}.thermo-card--humidity-support .humidity-card-caption{color:#64748b;color:var(--ink-500);font-size:11px;font-weight:600;letter-spacing:.07em;line-height:1.25;margin:8px 0 0;padding:0;text-align:center;text-transform:uppercase}.humidity-ring-gauge{margin:0 auto;max-width:200px;width:100%}.humidity-ring-gauge__svg{display:block;height:auto;overflow:visible;width:100%}.humidity-ring-gauge__track{stroke:color-mix(in oklab,#0f172a14 50%,var(--ink-400));stroke:color-mix(in oklab,var(--panel-b) 50%,var(--ink-400));opacity:.88}.humidity-ring-gauge__fill,.humidity-ring-gauge__track{stroke-width:11;stroke-linecap:round}.humidity-ring-gauge__value{fill:#0f172a;fill:var(--ink-900);font-family:inherit;font-size:27px;font-weight:700}.humidity-ring-gauge__anchor{fill:#64748b;fill:var(--ink-500);font-family:inherit;font-size:10px;font-weight:600;letter-spacing:.05em}.theme-dark .thermo-card--humidity-support .dc-name,.theme-dark .thermo-card--humidity-support .humidity-card-caption{color:#64748b;color:var(--ink-500)}.theme-dark .humidity-ring-gauge__track{stroke:color-mix(in oklab,#475569 45%,#0f172a14);stroke:color-mix(in oklab,var(--ink-600) 45%,var(--panel-b));opacity:.95}.theme-dark .humidity-ring-gauge__value{fill:#f1f5f9;fill:var(--ink-100,#f1f5f9)}.theme-dark .humidity-ring-gauge__anchor{fill:#64748b;fill:var(--ink-500)}.stat-value{font-size:28px;font-weight:800;letter-spacing:-.02em}.stat-sub{color:#475569;color:var(--ink-600);font-size:13px;margin-top:4px}.h-ok{color:#0f172a;color:var(--ink-900)}.h-warm{color:#f59e0b;color:var(--warm-500)}.h-hot{color:#ef4444;color:var(--hot-500)}.h-danger{color:#b91c1c;color:var(--hot-700)}.chip{border-radius:999px;display:inline-block;font-size:12px;font-weight:700;margin-top:6px;padding:2px 8px}.chip-ok{background:#e2e8f0;color:#334155}.chip-warm{background:#fef3c7;color:#b45309}.chip-hot{background:#fee2e2;color:#b91c1c}.chip-danger{background:#fecaca;color:#7f1d1d}.topbar{align-items:flex-start;gap:16px 24px;justify-content:space-between;margin-bottom:28px}.topbar,.topbar-zone{display:flex;flex-wrap:wrap}.topbar-zone{align-items:center;gap:10px 12px;min-width:0}.topbar-left{flex:1 1 auto;min-width:min(100%,200px)}.topbar-center{flex:1 1 280px;justify-content:center;max-width:100%}.topbar-center .device-select{margin-left:0}.topbar-right{flex:0 1 auto;gap:10px;justify-content:flex-end;margin-left:auto}.brand{align-items:center;display:flex;gap:10px}.logo-dot{background:#6e1d85;background:var(--brand-600);border-radius:50%;box-shadow:0 0 0 2px #6e1d8517;height:14px;width:14px}.brand-text{color:#0f172a;color:var(--ink-900);font-size:26px;font-weight:900;letter-spacing:-.02em}.tabs{display:flex;gap:8px;margin-left:12px}.tab{background:#0f172a08;background:var(--surface-muted);border:none;border-radius:999px;box-shadow:none;color:#334155;color:var(--ink-700);cursor:pointer;font-size:13px;font-weight:600;padding:8px 14px;transition:background .15s ease,color .15s ease}.tab:hover{background:#0f172a0f;color:#0f172a;color:var(--ink-900)}.tab.active{background:#6e1d85;background:var(--brand-600);color:#fff}.desktop-nav{align-items:center;display:flex;gap:8px;margin-left:12px}.desktop-nav .nav-link{align-items:center;background:#0f172a08;background:var(--surface-muted);border:none;border-radius:8px;color:#334155;color:var(--ink-700,#334155);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:6px 12px;transition:background .2s,color .2s;white-space:nowrap}.desktop-nav .nav-link:hover{background:#0f172a0f;color:#0f172a;color:var(--ink-900,#0f172a)}.desktop-nav .nav-link svg{flex-shrink:0;height:16px;width:16px}@media (max-width:768px){.desktop-nav{display:none!important}}.device-select{align-items:center;display:flex;gap:8px;margin-left:auto}.topbar .device-select{margin-left:0}.device-select label{color:#64748b;color:var(--ink-500,#64748b);font-size:12px;font-weight:500}select:not(.device-select select),select:not(.device-select select) option{background-color:#fff!important;color:#0f172a!important}.theme-dark select:not(.device-select select){border-color:#374151!important}.theme-dark select:not(.device-select select),.theme-dark select:not(.device-select select) option{background-color:#1f2937!important;color:#e5e7eb!important}.device-select select{background:#fff;background:var(--surface-raised);border:none;border-radius:8px;box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);color:#0f172a;color:var(--ink-900,#0f172a);cursor:pointer;font-size:13px;font-weight:500;padding:8px 12px;transition:box-shadow .2s,background .2s}.device-select select:hover{background:#fff;background:var(--surface-raised);box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md)}.device-select select:focus{box-shadow:0 0 0 2px #6e1d8533,0 1px 2px #0f172a0a;box-shadow:0 0 0 2px #6e1d8533,var(--shadow-sm);outline:none}.theme-dark .device-select select{background:#fff;background:var(--surface-raised);color:#0f172a;color:var(--ink-900)}.theme-dark .device-select select option{background:#fff;background:var(--panel);color:#0f172a;color:var(--ink-900)}.device-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.device-card-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.dc-badge{background:#0f172a08;background:var(--surface-muted,#0f172a0f);border:none;border-radius:999px;box-shadow:none;color:#334155;color:var(--ink-700);font-size:12px;font-weight:700;padding:4px 10px}.dc-badge.thermostat{background:color-mix(in oklab,#9d5bbf 10%,#fff);background:color-mix(in oklab,var(--brand-500) 10%,var(--surface-raised));color:#471358}.dc-badge.water{background:#ecfdf5;color:#065f46}.dc-badge.air{background:#eef2ff;color:#3730a3}.dc-badge.saya{background:#fefce8;color:#b45309}.dc-line{color:#334155;color:var(--ink-700);display:flex;font-size:13px;gap:8px;justify-content:space-between;padding:4px 0}.dc-line code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.dc-actions{display:flex;gap:8px;margin-top:10px}.device-card.add{color:#64748b;display:grid;place-items:center}.add-inner{text-align:center}.add-inner .plus{font-size:40px;line-height:1}.add-title{font-weight:800;margin-top:6px}.add-sub{color:#94a3b8;font-size:12px}.dc-badge.leak{background:#fff1f2;box-shadow:none;color:#7f1d1d}.dc-badge.tbhh100{background:#ecfdf5;color:#065f46}.summary-home{--summary-grid-min:240px;max-width:none;min-width:0;width:100%}.summary-home-header{margin-bottom:12px}.summary-home-title{color:#0f172a;color:var(--ink-900);font-size:1.4rem;font-weight:800;letter-spacing:-.03em;margin:0 0 2px}.summary-home-subtitle{color:#64748b;color:var(--ink-500);font-size:12px;line-height:1.35;margin:0;opacity:.92}.summary-toolbar{margin-bottom:10px}.summary-toolbar-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px 14px}.summary-filter-field{display:flex;flex-direction:column;gap:6px;min-width:0}.summary-filter-field label{color:#64748b;color:var(--ink-500);font-size:11px;font-weight:600;letter-spacing:.03em}.summary-filter-input{background:#fff;background:var(--surface-raised);border:none;border-radius:8px;box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);color:#0f172a;color:var(--ink-900,#0f172a);font-size:13px;font-weight:500;max-width:100%;min-width:min(200px,100%);padding:9px 12px;transition:box-shadow .18s ease;width:220px}.summary-filter-input::placeholder{color:#64748b;color:var(--ink-500);opacity:.75}.summary-filter-input:focus{box-shadow:0 0 0 2px #6e1d8538,0 1px 2px #0f172a0a;box-shadow:0 0 0 2px #6e1d8538,var(--shadow-sm);outline:none}.summary-filter-select{background:#fff;background:var(--surface-raised);border:none;border-radius:8px;box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);color:#0f172a;color:var(--ink-900,#0f172a);cursor:pointer;font-size:13px;font-weight:500;min-width:140px;padding:9px 12px;transition:box-shadow .18s ease}.summary-filter-select:focus{box-shadow:0 0 0 2px #6e1d8533,0 1px 2px #0f172a0a;box-shadow:0 0 0 2px #6e1d8533,var(--shadow-sm);outline:none}.summary-state{background:color-mix(in oklab,#64748b 4%,#fff);background:color-mix(in oklab,var(--ink-500) 4%,var(--surface-raised));border:1px solid #0f172a0f;border:1px solid var(--hairline);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);margin:4px 0 12px;padding:14px 16px}.summary-state-title{color:#0f172a;color:var(--ink-900);font-size:15px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}.summary-state-desc{color:#475569;color:var(--ink-600);font-size:13px;font-weight:500;line-height:1.45;margin:0}.summary-state--empty{background:color-mix(in oklab,#64748b 3%,#fff);background:color-mix(in oklab,var(--ink-500) 3%,var(--surface-raised));border-style:dashed}.summary-state--warning{background:color-mix(in oklab,#f59e0b 8%,#fff);background:color-mix(in oklab,#f59e0b 8%,var(--surface-raised));border-color:color-mix(in oklab,#f59e0b 35%,#0f172a0f);border-color:color-mix(in oklab,#f59e0b 35%,var(--hairline))}.summary-state--warning .summary-state-title{color:#92400e}.summary-state--warning .summary-state-desc{color:#a16207}.summary-grid.summary-grid--skeleton{margin-bottom:8px}.summary-grid--skeleton .skeleton-card{animation:summary-skeleton-pulse 1.4s ease-in-out infinite;border:1px solid #0f172a0f;border:1px solid var(--hairline);box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);margin:0;min-height:200px}@keyframes summary-skeleton-pulse{0%,to{opacity:1}50%{opacity:.92}}@media (prefers-reduced-motion:reduce){.summary-grid--skeleton .skeleton-card{animation:none}}.summary-section-label{align-items:center;border-top:1px solid color-mix(in oklab,#64748b 10%,#0000);border-top:1px solid color-mix(in oklab,var(--ink-500) 10%,#0000);display:flex;gap:10px;grid-column:1/-1;margin:0;min-width:0;padding:8px 0 2px}.summary-grid>.summary-section-label:first-child{border-top:none;padding-top:0}.summary-section-label-prefix{color:var(--ink-400);flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.summary-section-label-text{color:#475569;color:var(--ink-600);flex-shrink:0;font-size:12px;font-weight:700;letter-spacing:-.01em;max-width:min(70vw,520px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-section-label-line{background:linear-gradient(90deg,color-mix(in oklab,#64748b 25%,#0000),#0000);background:linear-gradient(90deg,color-mix(in oklab,var(--ink-500) 25%,#0000),#0000);border-radius:1px;flex:1 1;height:1px;min-width:16px}.theme-dark .summary-filter-input,.theme-dark .summary-filter-select{background:#fff;background:var(--surface-raised);box-shadow:0 1px 3px #00000040;color:#0f172a;color:var(--ink-900)}.theme-dark .summary-filter-input::placeholder{color:#64748b;color:var(--ink-500)}.theme-dark .summary-state{background:color-mix(in oklab,#0f172a 10%,#fff);background:color-mix(in oklab,var(--ink-900) 10%,var(--panel));border-color:#0f172a14;border-color:var(--panel-b)}.theme-dark .summary-state--empty{background:color-mix(in oklab,#0f172a 8%,#fff);background:color-mix(in oklab,var(--ink-900) 8%,var(--panel));border-color:#0f172a14;border-color:var(--panel-b)}.theme-dark .summary-state-title{color:#0f172a;color:var(--ink-900)}.theme-dark .summary-state-desc{color:#64748b;color:var(--ink-500)}.theme-dark .summary-state--warning{background:color-mix(in oklab,#f59e0b 12%,#fff);background:color-mix(in oklab,#f59e0b 12%,var(--panel));border-color:color-mix(in oklab,#fbbf24 35%,#0f172a14);border-color:color-mix(in oklab,#fbbf24 35%,var(--panel-b))}.theme-dark .summary-state--warning .summary-state-title{color:#fde68a}.theme-dark .summary-state--warning .summary-state-desc{color:#fcd34d}.theme-dark .summary-section-label{border-top-color:color-mix(in oklab,#334155 35%,#0000);border-top-color:color-mix(in oklab,var(--ink-700) 35%,#0000)}.theme-dark .summary-section-label-text{color:#64748b;color:var(--ink-500)}@media (max-width:640px){.summary-filter-field{flex:1 1 140px}.summary-filter-input{width:100%}}.summary-stats-row{grid-gap:10px 12px;background:#0000;border:none;box-shadow:none;display:grid;gap:10px 12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));margin-bottom:12px;min-width:0;padding:0;width:100%}.summary-stat{align-items:flex-start;background:#fff;background:var(--surface-raised);border:1px solid #0f172a0f;border:1px solid var(--hairline);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:flex-start;min-height:92px;min-width:0;padding:10px 12px;text-align:left;transition:box-shadow .18s ease,border-color .18s ease,background .18s ease}.summary-stat-label{color:#64748b;color:var(--ink-500);font-size:11px;font-weight:500;letter-spacing:.01em;line-height:1.35;margin:0 0 6px;max-width:100%}.summary-stat-value{color:#0f172a;color:var(--ink-900);font-size:1.55rem;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:0}.summary-stat-hint{color:#64748b;color:var(--ink-500);display:block;font-size:11px;font-weight:500;line-height:1.35;margin-top:auto;opacity:.92;padding-top:8px}.summary-stat--neutral{background:color-mix(in oklab,#64748b 4%,#fff);background:color-mix(in oklab,var(--ink-500) 4%,var(--surface-raised))}.summary-stat--neutral .summary-stat-value{color:var(--ink-800);font-size:1.65rem;font-weight:700}.summary-stat--neutral .summary-stat-hint{color:#64748b;color:var(--ink-500)}.summary-stat--online{background:color-mix(in oklab,#10b981 10%,#fff);background:color-mix(in oklab,#10b981 10%,var(--surface-raised));border-color:color-mix(in oklab,#10b981 24%,#0f172a0f);border-color:color-mix(in oklab,#10b981 24%,var(--hairline))}.summary-stat--online .summary-stat-value{color:#047857}.summary-stat--online .summary-stat-hint{color:#059669;opacity:.95}.summary-stat--stale:not(.summary-stat--quiet){background:color-mix(in oklab,#eab308 13%,#fff);background:color-mix(in oklab,#eab308 13%,var(--surface-raised));border-color:color-mix(in oklab,#ca8a04 30%,#0f172a0f);border-color:color-mix(in oklab,#ca8a04 30%,var(--hairline))}.summary-stat--stale .summary-stat-value{color:#a16207}.summary-stat--stale:not(.summary-stat--quiet) .summary-stat-value{color:#92400e;font-weight:900}.summary-stat--stale .summary-stat-hint{color:#b45309}.summary-stat--alert:not(.summary-stat--quiet){background:color-mix(in oklab,#ef4444 12%,#fff);background:color-mix(in oklab,#ef4444 12%,var(--surface-raised));border-color:color-mix(in oklab,#ef4444 30%,#0f172a0f);border-color:color-mix(in oklab,#ef4444 30%,var(--hairline))}.summary-stat--alert .summary-stat-value{color:#c2410c}.summary-stat--alert:not(.summary-stat--quiet) .summary-stat-value{color:#b91c1c;font-weight:900}.summary-stat--alert .summary-stat-hint{color:#9a3412}.summary-stat--offline:not(.summary-stat--quiet){background:color-mix(in oklab,#f43f5e 10%,#fff);background:color-mix(in oklab,#f43f5e 10%,var(--surface-raised));border-color:color-mix(in oklab,#e11d48 28%,#0f172a0f);border-color:color-mix(in oklab,#e11d48 28%,var(--hairline))}.summary-stat--offline .summary-stat-value{color:#be123c}.summary-stat--offline:not(.summary-stat--quiet) .summary-stat-value{font-weight:900}.summary-stat--offline .summary-stat-hint{color:#be123c;opacity:.95}.summary-stat--battery:not(.summary-stat--quiet){background:color-mix(in oklab,#eab308 11%,#fff);background:color-mix(in oklab,#eab308 11%,var(--surface-raised));border-color:color-mix(in oklab,#ca8a04 26%,#0f172a0f);border-color:color-mix(in oklab,#ca8a04 26%,var(--hairline))}.summary-stat--battery .summary-stat-value{color:#a16207}.summary-stat--battery:not(.summary-stat--quiet) .summary-stat-value{font-weight:900}.summary-stat--battery .summary-stat-hint{color:#b45309}.summary-stat--avgv{background:color-mix(in oklab,#64748b 5%,#fff);background:color-mix(in oklab,var(--ink-500) 5%,var(--surface-raised))}.summary-stat--avgv .summary-stat-value{color:var(--ink-800);font-size:1.5rem;font-weight:700}.summary-stat--avgv .summary-stat-hint{color:#64748b;color:var(--ink-500)}.summary-stat--quiet{background:color-mix(in oklab,#64748b 3.5%,#fff);background:color-mix(in oklab,var(--ink-500) 3.5%,var(--surface-raised));border-color:#0f172a0f;border-color:var(--hairline);box-shadow:none}.summary-stat--quiet .summary-stat-value{color:#475569;color:var(--ink-600);font-size:1.5rem;font-weight:700}.summary-stat--quiet .summary-stat-hint{color:#64748b;color:var(--ink-500);opacity:.88}.theme-dark .summary-stat{background:color-mix(in oklab,#0f172a 10%,#fff);background:color-mix(in oklab,var(--ink-900) 10%,var(--panel));border-color:#0f172a14;border-color:var(--panel-b);box-shadow:0 2px 8px #00000038}.theme-dark .summary-stat-label{color:#64748b;color:var(--ink-500)}.theme-dark .summary-stat--neutral{background:color-mix(in oklab,#0f172a 12%,#fff);background:color-mix(in oklab,var(--ink-900) 12%,var(--panel))}.theme-dark .summary-stat--neutral .summary-stat-value{color:#0f172a;color:var(--ink-900)}.theme-dark .summary-stat--online{background:color-mix(in oklab,#10b981 14%,#fff);background:color-mix(in oklab,#10b981 14%,var(--panel));border-color:color-mix(in oklab,#34d399 35%,#0f172a14);border-color:color-mix(in oklab,#34d399 35%,var(--panel-b))}.theme-dark .summary-stat--online .summary-stat-value{color:#34d399}.theme-dark .summary-stat--online .summary-stat-hint{color:#6ee7b7}.theme-dark .summary-stat--stale:not(.summary-stat--quiet){background:color-mix(in oklab,#eab308 16%,#fff);background:color-mix(in oklab,#eab308 16%,var(--panel));border-color:color-mix(in oklab,#facc15 32%,#0f172a14);border-color:color-mix(in oklab,#facc15 32%,var(--panel-b))}.theme-dark .summary-stat--stale .summary-stat-value{color:#fbbf24}.theme-dark .summary-stat--stale:not(.summary-stat--quiet) .summary-stat-value{color:#fde047}.theme-dark .summary-stat--stale .summary-stat-hint{color:#fde68a}.theme-dark .summary-stat--alert:not(.summary-stat--quiet){background:color-mix(in oklab,#ef4444 16%,#fff);background:color-mix(in oklab,#ef4444 16%,var(--panel));border-color:color-mix(in oklab,#f87171 35%,#0f172a14);border-color:color-mix(in oklab,#f87171 35%,var(--panel-b))}.theme-dark .summary-stat--alert .summary-stat-value{color:#fb923c}.theme-dark .summary-stat--alert:not(.summary-stat--quiet) .summary-stat-value{color:#fca5a5}.theme-dark .summary-stat--alert .summary-stat-hint{color:#fecaca}.theme-dark .summary-stat--offline:not(.summary-stat--quiet){background:color-mix(in oklab,#f43f5e 14%,#fff);background:color-mix(in oklab,#f43f5e 14%,var(--panel));border-color:color-mix(in oklab,#fb7185 30%,#0f172a14);border-color:color-mix(in oklab,#fb7185 30%,var(--panel-b))}.theme-dark .summary-stat--offline .summary-stat-value{color:#fda4af}.theme-dark .summary-stat--offline .summary-stat-hint{color:#fecdd3}.theme-dark .summary-stat--battery:not(.summary-stat--quiet){background:color-mix(in oklab,#eab308 14%,#fff);background:color-mix(in oklab,#eab308 14%,var(--panel));border-color:color-mix(in oklab,#facc15 28%,#0f172a14);border-color:color-mix(in oklab,#facc15 28%,var(--panel-b))}.theme-dark .summary-stat--battery .summary-stat-value{color:#facc15}.theme-dark .summary-stat--battery .summary-stat-hint{color:#fde68a}.theme-dark .summary-stat--avgv .summary-stat-value{color:#475569;color:var(--ink-600)}.theme-dark .summary-stat--quiet{background:color-mix(in oklab,#0f172a 8%,#fff);background:color-mix(in oklab,var(--ink-900) 8%,var(--panel));border-color:#0f172a14;border-color:var(--panel-b);box-shadow:none}.theme-dark .summary-stat--quiet .summary-stat-hint,.theme-dark .summary-stat--quiet .summary-stat-value{color:#64748b;color:var(--ink-500)}.summary-grid{grid-gap:12px;align-items:stretch;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--summary-grid-min)),1fr));min-width:0;width:100%}@media (max-width:420px){.summary-grid{grid-template-columns:1fr}}.summary-card{--summary-ease:cubic-bezier(0.25,0.1,0.25,1);--summary-t:0.18s;-webkit-tap-highlight-color:transparent;background:#fff;background:var(--surface-raised);border:none;border-radius:12px;border-radius:var(--radius);box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md);display:flex;flex-direction:column;height:100%;min-height:220px;min-width:0;overflow:hidden;padding:0;position:relative;text-align:left;transition:transform var(--summary-t) var(--summary-ease),box-shadow var(--summary-t) var(--summary-ease),filter var(--summary-t) ease,opacity var(--summary-t) ease,background-color var(--summary-t) ease;-webkit-user-select:none;user-select:none;width:100%}.summary-card:has(.summary-card-ribbon){padding-top:32px}.summary-card-ribbon{font-size:11px;font-weight:700;left:0;letter-spacing:.04em;line-height:1.3;padding:8px 14px;position:absolute;right:0;text-transform:uppercase;top:0;z-index:4}.summary-card-ribbon--offline{background:linear-gradient(180deg,color-mix(in oklab,#f43f5e 20%,#fff),color-mix(in oklab,#f43f5e 11%,#fff));background:linear-gradient(180deg,color-mix(in oklab,#f43f5e 20%,var(--surface-raised)),color-mix(in oklab,#f43f5e 11%,var(--surface-raised)));border-bottom:1px solid color-mix(in oklab,#e11d48 38%,#0000);color:#881337}.summary-card-ribbon--stale{background:linear-gradient(180deg,color-mix(in oklab,#fbbf24 24%,#fff),color-mix(in oklab,#f59e0b 13%,#fff));background:linear-gradient(180deg,color-mix(in oklab,#fbbf24 24%,var(--surface-raised)),color-mix(in oklab,#f59e0b 13%,var(--surface-raised)));border-bottom:1px solid color-mix(in oklab,#d97706 42%,#0000);box-shadow:inset 0 1px 0 #fff6;color:#78350f}.summary-card:before{background:linear-gradient(135deg,#6e1d8524,#0000 50%,#8b5cf614);border-radius:inherit;content:"";inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;padding:1px;pointer-events:none;position:absolute;transition:opacity var(--summary-t) var(--summary-ease)}.summary-card:hover{box-shadow:0 10px 28px #0f172a12,0 2px 8px #0f172a0a,0 0 0 1px color-mix(in oklab,#9d5bbf 22%,#0000),0 14px 36px #6e1d8517;box-shadow:var(--shadow-lg),0 0 0 1px color-mix(in oklab,var(--brand-500) 22%,#0000),0 14px 36px #6e1d8517;transform:translateY(-2px)}.summary-card:hover:before{opacity:.55}.summary-card--normal{background:color-mix(in oklab,#10b981 2.5%,#fff);background:color-mix(in oklab,#10b981 2.5%,var(--surface-raised));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md)}.summary-card--normal:hover{box-shadow:0 10px 28px #0f172a12,0 2px 8px #0f172a0a,0 0 0 1px color-mix(in oklab,#10b981 28%,#0000),0 14px 36px #10b98114;box-shadow:var(--shadow-lg),0 0 0 1px color-mix(in oklab,#10b981 28%,#0000),0 14px 36px #10b98114}.summary-card--offline{background:color-mix(in oklab,#fff 92%,#64748b 8%);background:color-mix(in oklab,var(--surface-raised) 92%,var(--ink-500) 8%);filter:saturate(.55) brightness(.97);opacity:.88}.summary-card--offline:hover{box-shadow:0 10px 28px #0f172a12,0 2px 8px #0f172a0a;box-shadow:var(--shadow-lg);filter:saturate(.62) brightness(.99);opacity:.93;transform:translateY(-1px)}.summary-card--offline:hover:before{opacity:.28}.summary-card--warning{background:color-mix(in oklab,#ef4444 3%,#fff);background:color-mix(in oklab,#ef4444 3%,var(--surface-raised));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md)}.summary-card--warning:hover{box-shadow:0 6px 20px #ef444414,0 1px 2px #0f172a0a;box-shadow:0 6px 20px #ef444414,var(--shadow-sm)}.summary-card--warning:hover:before{opacity:.32}.summary-card--stale:not(.summary-card--offline){background:color-mix(in oklab,#f59e0b 7%,#fff);background:color-mix(in oklab,#f59e0b 7%,var(--surface-raised));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a,0 0 0 1px color-mix(in oklab,#f59e0b 34%,#0000);box-shadow:var(--shadow-md),0 0 0 1px color-mix(in oklab,#f59e0b 34%,#0000)}.summary-card--stale:hover{box-shadow:0 6px 22px #f59e0b24,0 0 0 1px color-mix(in oklab,#f59e0b 42%,#0000)}.summary-card--low_battery{background:color-mix(in oklab,#eab308 4%,#fff);background:color-mix(in oklab,#eab308 4%,var(--surface-raised));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md)}.theme-dark .summary-card--offline{background:color-mix(in oklab,#fff 88%,#64748b 12%);background:color-mix(in oklab,var(--panel) 88%,var(--ink-500) 12%);filter:saturate(.5) brightness(.92)}.theme-dark .summary-card--offline:hover{filter:saturate(.58) brightness(.95)}.theme-dark .summary-card-ribbon--offline{background:linear-gradient(180deg,color-mix(in oklab,#f43f5e 24%,#fff),color-mix(in oklab,#9f1239 14%,#fff));background:linear-gradient(180deg,color-mix(in oklab,#f43f5e 24%,var(--panel)),color-mix(in oklab,#9f1239 14%,var(--panel)));border-bottom-color:color-mix(in oklab,#fb7185 42%,#0000);color:#fecdd3}.theme-dark .summary-card-ribbon--stale{background:linear-gradient(180deg,color-mix(in oklab,#eab308 22%,#fff),color-mix(in oklab,#a16207 12%,#fff));background:linear-gradient(180deg,color-mix(in oklab,#eab308 22%,var(--panel)),color-mix(in oklab,#a16207 12%,var(--panel)));border-bottom-color:color-mix(in oklab,#facc15 38%,#0000);box-shadow:inset 0 1px 0 #ffffff0f;color:#fef08a}.summary-card:focus-within{z-index:1}.summary-card-main:focus-visible{outline:none}.summary-card-main:focus-visible .summary-card-inner{border-radius:10px;outline:2px solid #6e1d8573;outline-offset:2px}.summary-card-action:focus-visible{outline:2px solid #6e1d8580;outline-offset:2px}.summary-card:active:not(.summary-card--offline){transform:translateY(-1px) scale(.993);transition-duration:.09s}.summary-card--offline:active{transform:translateY(0) scale(.993);transition-duration:.09s}.summary-card-main{-webkit-tap-highlight-color:transparent;background:#0000;border:none;color:inherit;cursor:pointer;display:block;flex:1 1;font:inherit;margin:0;min-width:0;padding:0;text-align:left}.summary-card-main:disabled{cursor:default}.summary-card-inner{padding:12px 14px 6px 15px}.summary-card-accent{border-radius:4px 0 0 4px;height:100%;left:0;position:absolute;top:0;transition:width var(--summary-t) var(--summary-ease);width:4px}.summary-card-thermostat .summary-card-accent{background:linear-gradient(180deg,#9d5bbf,#6e1d85)}.summary-card-leak .summary-card-accent{background:linear-gradient(180deg,#f87171,#dc2626)}.summary-card-air .summary-card-accent{background:linear-gradient(180deg,#60a5fa,#3b82f6)}.summary-card-tbhh100 .summary-card-accent{background:linear-gradient(180deg,#2dd4bf,#0d9488)}.summary-card-water .summary-card-accent{background:linear-gradient(180deg,#34d399,#059669)}.summary-card:hover .summary-card-accent{width:6px}.summary-card-head{align-items:center;display:flex;gap:10px;margin-bottom:12px}.summary-card-top{align-items:flex-start;display:flex;gap:10px;margin-bottom:8px}.summary-card-top .summary-card-icon{border-radius:10px;height:36px;width:36px}.summary-card-top .summary-card-icon svg{height:18px;width:18px}.summary-card-title-block{display:flex;flex:1 1;flex-direction:column;gap:5px;min-width:0}.summary-card-type-line{align-items:baseline;display:flex;flex-wrap:wrap;font-size:11px;gap:4px 8px;line-height:1.35}.summary-card-location{color:#475569;color:var(--ink-600);font-weight:700;letter-spacing:.01em}.summary-card-location:after{color:var(--ink-400);content:"·";font-weight:700;margin-left:6px}.summary-card-model-code,.summary-card-role{color:#64748b;color:var(--ink-500);font-weight:600}.summary-card-model-code{background:color-mix(in oklab,#64748b 8%,#fff);background:color-mix(in oklab,var(--ink-500) 8%,var(--panel-a));border:1px solid color-mix(in oklab,#0f172a14 90%,#64748b 10%);border:1px solid color-mix(in oklab,var(--panel-b) 90%,var(--ink-500) 10%);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:10px;letter-spacing:.02em;padding:1px 6px}.theme-dark .summary-card-model-code{background:color-mix(in oklab,#64748b 15%,#fff);background:color-mix(in oklab,var(--ink-500) 15%,var(--panel));border-color:#0f172a14;border-color:var(--panel-b);color:#64748b;color:var(--ink-500)}.summary-card-meta-row{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.summary-card-last-seen-primary{color:#475569;color:var(--ink-600);font-size:12px;font-weight:700;letter-spacing:.01em}.summary-card-meta-row--offline .summary-card-last-seen-primary{color:#64748b;font-size:13px;font-weight:800}.theme-dark .summary-card-meta-row--offline .summary-card-last-seen-primary{color:#94a3b8}.summary-card-last-seen-abs{color:#64748b;color:var(--ink-500);font-size:10px;font-weight:600;letter-spacing:.02em;opacity:.88}.summary-status-pill{align-self:flex-start;border:1px solid #0000;border-radius:999px;flex-shrink:0;font-size:10px;font-weight:800;letter-spacing:.06em;line-height:1.2;max-width:42%;padding:4px 10px;text-align:center;text-transform:uppercase}.summary-status--normal{background:color-mix(in oklab,#10b981 12%,#fff);background:color-mix(in oklab,#10b981 12%,var(--panel-a));border-color:color-mix(in oklab,#10b981 28%,#0000);color:#047857}.summary-status--stale{background:color-mix(in oklab,#f59e0b 14%,#fff);background:color-mix(in oklab,#f59e0b 14%,var(--panel-a));border-color:color-mix(in oklab,#f59e0b 30%,#0000);color:#b45309}.summary-status--lowbat{background:color-mix(in oklab,#eab308 14%,#fff);background:color-mix(in oklab,#eab308 14%,var(--panel-a));border-color:color-mix(in oklab,#eab308 28%,#0000);color:#a16207}.summary-status--warning{background:color-mix(in oklab,#ef4444 12%,#fff);background:color-mix(in oklab,#ef4444 12%,var(--panel-a));border-color:color-mix(in oklab,#ef4444 25%,#0000);color:#b91c1c}.summary-status--offline{background:color-mix(in oklab,#64748b 15%,#fff);background:color-mix(in oklab,var(--ink-500) 15%,var(--panel-a));border-color:#0f172a14;border-color:var(--panel-b);color:#475569;color:var(--ink-600)}.theme-dark .summary-status--normal{background:color-mix(in oklab,#10b981 22%,#fff);background:color-mix(in oklab,#10b981 22%,var(--panel));border-color:color-mix(in oklab,#10b981 35%,#0000);color:#6ee7b7}.theme-dark .summary-status--stale{background:color-mix(in oklab,#f59e0b 20%,#fff);background:color-mix(in oklab,#f59e0b 20%,var(--panel));border-color:color-mix(in oklab,#f59e0b 35%,#0000);color:#fcd34d}.theme-dark .summary-status--lowbat{background:color-mix(in oklab,#eab308 18%,#fff);background:color-mix(in oklab,#eab308 18%,var(--panel));border-color:color-mix(in oklab,#eab308 32%,#0000);color:#fde047}.theme-dark .summary-status--warning{background:color-mix(in oklab,#ef4444 18%,#fff);background:color-mix(in oklab,#ef4444 18%,var(--panel));border-color:color-mix(in oklab,#ef4444 32%,#0000);color:#fca5a5}.theme-dark .summary-status--offline{background:color-mix(in oklab,#64748b 25%,#fff);background:color-mix(in oklab,var(--ink-500) 25%,var(--panel));border-color:#0f172a14;border-color:var(--panel-b);color:#cbd5e1}.summary-card--offline .summary-card-accent{background:linear-gradient(180deg,#94a3b8,#475569)!important}.summary-card--warning .summary-card-accent{background:linear-gradient(180deg,#fcd9a8,#e89292)!important}.summary-card--low_battery .summary-card-accent{background:linear-gradient(180deg,#facc15,#ca8a04)!important}.summary-card--stale .summary-card-accent{background:linear-gradient(180deg,#fbbf24,#d97706)!important}.summary-card--normal .summary-card-accent{opacity:1}.summary-card-icon{align-items:center;border-radius:12px;color:#334155;color:var(--ink-700);display:flex;flex-shrink:0;height:40px;justify-content:center;transition:transform var(--summary-t) var(--summary-ease);width:40px}.summary-card-thermostat .summary-card-icon{background:linear-gradient(135deg,#f3e8f9,#e9d5f3);color:#6e1d85}.summary-card-leak .summary-card-icon{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c}.summary-card-air .summary-card-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8}.summary-card-tbhh100 .summary-card-icon{background:linear-gradient(135deg,#ccfbf1,#99f6e4);color:#0f766a}.summary-card-water .summary-card-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#047857}.summary-card-ember .summary-card-icon{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#c2410c}.summary-card-dragino .summary-card-icon{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#4338ca}.summary-card:hover .summary-card-icon{transform:scale(1.05)}.summary-card--offline:hover .summary-card-icon{transform:scale(1.02)}.summary-card-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#0f172a;color:var(--ink-900);display:-webkit-box;font-size:1.05rem;font-weight:800;line-height:1.25;overflow:hidden;word-break:break-word}.summary-card-metrics{grid-gap:8px 10px;display:grid;gap:8px 10px;grid-template-columns:repeat(3,1fr);margin-bottom:10px}.summary-card-metrics--inactive{filter:saturate(.5);opacity:.52}.summary-card--offline .summary-metric{border-color:color-mix(in oklab,#0f172a14 75%,#0000);border-color:color-mix(in oklab,var(--panel-b) 75%,#0000)}.summary-card--offline .summary-metric,.summary-card--offline .summary-metric.highlight{background:color-mix(in oklab,#fff 70%,#0000);background:color-mix(in oklab,var(--panel-a) 70%,#0000)}.summary-card--offline .summary-metric.highlight{border-color:#0f172a14;border-color:var(--panel-b)}.summary-card--offline .summary-metric.highlight .summary-metric-value{color:#475569;color:var(--ink-600);font-weight:600}.summary-card-footer{border-radius:0 0 12px 12px;border-radius:0 0 var(--radius) var(--radius);border-top:1px solid color-mix(in oklab,#0f172a14 85%,#0000);border-top:1px solid color-mix(in oklab,var(--panel-b) 85%,#0000);margin-top:auto;padding:0;transition:border-color var(--summary-t) var(--summary-ease),background var(--summary-t) var(--summary-ease)}.summary-card-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:flex-start;opacity:.62;padding:8px 12px 10px 15px;transform:translateY(3px);transition:opacity var(--summary-t) var(--summary-ease),transform var(--summary-t) var(--summary-ease)}.summary-card-actions:has(.summary-card-action--quick){justify-content:space-between}.summary-card:focus-within .summary-card-actions,.summary-card:hover .summary-card-actions{opacity:1;transform:translateY(0)}@media (hover:none),(pointer:coarse){.summary-card-actions{opacity:1;transform:none}}.summary-card:hover .summary-card-footer{background:linear-gradient(180deg,#0000,color-mix(in oklab,#6e1d85 5%,#0000));background:linear-gradient(180deg,#0000,color-mix(in oklab,var(--brand-600) 5%,#0000));border-top-color:color-mix(in oklab,#9d5bbf 22%,#0f172a14);border-top-color:color-mix(in oklab,var(--brand-500) 22%,var(--panel-b))}.summary-card--offline:hover .summary-card-footer{background:linear-gradient(180deg,#0000,color-mix(in oklab,#64748b 6%,#0000));background:linear-gradient(180deg,#0000,color-mix(in oklab,var(--ink-500) 6%,#0000));border-top-color:color-mix(in oklab,#64748b 18%,#0f172a14);border-top-color:color-mix(in oklab,var(--ink-500) 18%,var(--panel-b))}.summary-card--stale:hover .summary-card-footer{background:linear-gradient(180deg,#0000,color-mix(in oklab,#f59e0b 6%,#0000));border-top-color:color-mix(in oklab,#f59e0b 22%,#0f172a14);border-top-color:color-mix(in oklab,#f59e0b 22%,var(--panel-b))}.summary-card--warning:hover .summary-card-footer{background:linear-gradient(180deg,#0000,color-mix(in oklab,#ef4444 2.2%,#0000));border-top-color:color-mix(in oklab,#ef4444 10%,#0f172a14);border-top-color:color-mix(in oklab,#ef4444 10%,var(--panel-b))}.summary-card--low_battery:hover .summary-card-footer{background:linear-gradient(180deg,#0000,color-mix(in oklab,#eab308 6%,#0000));border-top-color:color-mix(in oklab,#eab308 22%,#0f172a14);border-top-color:color-mix(in oklab,#eab308 22%,var(--panel-b))}.summary-card-action{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000;border:none;border-radius:8px;color:#64748b;color:var(--ink-500);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px;letter-spacing:.02em;margin:0;padding:7px 11px;transition:color var(--summary-t) var(--summary-ease),background var(--summary-t) var(--summary-ease),transform var(--summary-t) var(--summary-ease)}.summary-card-action--details:after{content:"→";font-size:13px;font-weight:700;opacity:.75;transition:transform var(--summary-t) var(--summary-ease),opacity var(--summary-t) ease}.summary-card:focus-within .summary-card-action--details:after,.summary-card:hover .summary-card-action--details:after{opacity:1;transform:translateX(4px)}.summary-card-action:focus-visible,.summary-card-action:hover{background:color-mix(in oklab,#6e1d85 9%,#0000);background:color-mix(in oklab,var(--brand-600) 9%,#0000);color:#6e1d85;color:var(--brand-600)}.summary-card-action--quick{background:color-mix(in oklab,#6e1d85 6%,#0000);background:color-mix(in oklab,var(--brand-600) 6%,#0000);color:#6e1d85;color:var(--brand-600)}.summary-card-action--quick:focus-visible,.summary-card-action--quick:hover{background:color-mix(in oklab,#6e1d85 14%,#0000);background:color-mix(in oklab,var(--brand-600) 14%,#0000);color:#5b186f;color:var(--brand-700)}.summary-card--offline .summary-card-action{color:#475569;color:var(--ink-600);cursor:pointer}.summary-card--offline .summary-card-action:focus-visible,.summary-card--offline .summary-card-action:hover{background:color-mix(in oklab,#64748b 10%,#0000);background:color-mix(in oklab,var(--ink-500) 10%,#0000);color:#334155;color:var(--ink-700)}.summary-metric{background:#fff;background:var(--panel-a);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:10px;display:flex;flex-direction:column;gap:2px;padding:8px 10px;transition:all .2s ease}.summary-metric.highlight{background:color-mix(in oklab,#6e1d85 8%,#fff);background:color-mix(in oklab,var(--brand-600) 8%,var(--panel-a));border-color:color-mix(in oklab,#9d5bbf 25%,#0000);border-color:color-mix(in oklab,var(--brand-500) 25%,#0000)}.summary-metric.highlight .summary-metric-value{color:#5b186f;color:var(--brand-700);font-weight:800}.summary-metric-value{color:#0f172a;color:var(--ink-900);font-size:15px;font-weight:700;line-height:1.2}.summary-metric-label{color:#64748b;color:var(--ink-500);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.summary-metric.highlight .summary-metric-label{color:#475569;color:var(--ink-600)}.summary-metric.warn{background:color-mix(in oklab,#f59e0b 10%,#fff);background:color-mix(in oklab,#f59e0b 10%,var(--panel-a));border-color:color-mix(in oklab,#f59e0b 35%,#0f172a14);border-color:color-mix(in oklab,#f59e0b 35%,var(--panel-b))}.summary-metric.warn .summary-metric-value{color:#b45309;font-weight:800}.theme-dark .summary-metric.warn{background:color-mix(in oklab,#f59e0b 14%,#fff);background:color-mix(in oklab,#f59e0b 14%,var(--panel));border-color:color-mix(in oklab,#f59e0b 40%,#0f172a14);border-color:color-mix(in oklab,#f59e0b 40%,var(--panel-b))}.theme-dark .summary-metric.warn .summary-metric-value{color:#fcd34d}.summary-card-leak .summary-metric.alert .summary-metric-value{color:#dc2626!important;font-weight:800}.theme-dark .summary-card{background:#fff;background:var(--panel);border:none}.theme-dark .summary-card:hover{box-shadow:0 10px 32px #00000057,0 0 0 1px color-mix(in oklab,#b468cd 26%,#0000),0 16px 48px #6e1d8521;box-shadow:0 10px 32px #00000057,0 0 0 1px color-mix(in oklab,var(--violet-400) 26%,#0000),0 16px 48px #6e1d8521}.theme-dark .summary-card--normal{background:color-mix(in oklab,#34d399 4%,#fff);background:color-mix(in oklab,#34d399 4%,var(--panel));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow-md)}.theme-dark .summary-card--normal:hover{box-shadow:0 10px 30px #0000004d,0 0 0 1px color-mix(in oklab,#34d399 32%,#0000),0 14px 40px #10b9811a}.theme-dark .summary-card--stale:not(.summary-card--offline){background:color-mix(in oklab,#f59e0b 9%,#fff);background:color-mix(in oklab,#f59e0b 9%,var(--panel));box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a,0 0 0 1px color-mix(in oklab,#fbbf24 28%,#0000);box-shadow:var(--shadow-md),0 0 0 1px color-mix(in oklab,#fbbf24 28%,#0000)}.theme-dark .summary-card--warning{background:color-mix(in oklab,#ef4444 3.2%,#fff);background:color-mix(in oklab,#ef4444 3.2%,var(--panel))}.theme-dark .summary-card--offline:hover{box-shadow:0 8px 24px #00000047}.theme-dark .summary-card:hover .summary-card-footer{background:linear-gradient(180deg,#0000,color-mix(in oklab,#6e1d85 8%,#0000));background:linear-gradient(180deg,#0000,color-mix(in oklab,var(--brand-600) 8%,#0000))}.theme-dark .summary-card--offline:hover .summary-card-footer{background:linear-gradient(180deg,#0000,color-mix(in oklab,#64748b 10%,#0000));background:linear-gradient(180deg,#0000,color-mix(in oklab,var(--ink-500) 10%,#0000))}.theme-dark .summary-card-action{color:#64748b;color:var(--ink-500)}.theme-dark .summary-card-action:focus-visible,.theme-dark .summary-card-action:hover{background:color-mix(in oklab,#9f56bb 14%,#0000);background:color-mix(in oklab,var(--violet-500) 14%,#0000);color:#c07ad4;color:var(--violet-300)}.theme-dark .summary-card-action--quick{background:color-mix(in oklab,#9f56bb 12%,#0000);background:color-mix(in oklab,var(--violet-500) 12%,#0000);color:#c07ad4;color:var(--violet-300)}.theme-dark .summary-card-action--quick:focus-visible,.theme-dark .summary-card-action--quick:hover{background:color-mix(in oklab,#9f56bb 22%,#0000);background:color-mix(in oklab,var(--violet-500) 22%,#0000);color:#f5e9ff}.theme-dark .summary-metric{background:color-mix(in oklab,#0f172a 15%,#fff);background:color-mix(in oklab,var(--ink-900) 15%,var(--panel));border-color:#0f172a14;border-color:var(--panel-b)}.theme-dark .summary-metric.highlight{background:color-mix(in oklab,#6e1d85 18%,#fff);background:color-mix(in oklab,var(--brand-600) 18%,var(--panel));border-color:color-mix(in oklab,#9d5bbf 35%,#0000);border-color:color-mix(in oklab,var(--brand-500) 35%,#0000)}@media (max-width:400px){.summary-card-metrics{grid-template-columns:1fr}.summary-card-top{flex-wrap:wrap}.summary-status-pill{margin-top:2px;max-width:none;width:100%}}@media (max-width:340px){.summary-stats-row{grid-template-columns:1fr}}.theme-dark{--ink-900:#e5e7eb;--ink-700:#cbd5e1;--ink-600:#a8b5c6;--ink-500:#94a3b8;--panel:#0b1324;--panel-b:#1f2a44;--bg-soft:#0a1020;--shadow:0 10px 25px #00000059,0 3px 8px #00000047;--panel-accent-weak:#1b2740;--panel-a:var(--panel);--accent-500:var(--brand-600);--accent-400:var(--brand-500)}.theme-dark body{background:radial-gradient(1200px 600px at 20% -10%,#0f172a 0,#0b1324 60%,#0a1020 100%),linear-gradient(#0a1020,#0a1020)}.theme-dark .animated-background:before{background:radial-gradient(circle 800px at 20% 30%,#8b5cf659 0,#0000 70%),radial-gradient(circle 700px at 80% 70%,#a855f74d 0,#0000 70%),radial-gradient(circle 600px at 50% 50%,#6e1d8547 0,#0000 70%)}.theme-dark .animated-background:after{background:radial-gradient(circle 500px at 60% 20%,#8b5cf640 0,#0000 60%),radial-gradient(circle 400px at 30% 80%,#ec489938 0,#0000 60%),radial-gradient(circle 300px at 90% 50%,#a855f72e 0,#0000 50%)}.theme-dark .tab{background:#fff;background:var(--panel);border-color:#0f172a14;border-color:var(--panel-b)}.theme-dark .tab.active{background:#6e1d85;background:var(--brand-600);border-color:#6e1d85;border-color:var(--brand-600)}.theme-dark .device-card{background:#fff;background:var(--panel);border:none}.theme-dark .chart-container{background:#fff;background:var(--panel);border-color:#0f172a14;border-color:var(--panel-b)}.theme-toggle{align-items:center;background:#fff;background:var(--panel,#fff);border:1px solid #0f172a14;border:1px solid var(--panel-b,#e5e7eb);border-radius:8px;box-shadow:none;color:#334155;color:var(--ink-700,#334155);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:6px 12px;transition:all .2s}.theme-toggle:hover{background:#fff;background:var(--panel-a,#f8fafc);border-color:#0f172a14;border-color:var(--panel-b,#e5e7eb);transform:none}.theme-toggle:active{transform:scale(.98)}.theme-icon{font-size:16px;line-height:1;opacity:.8}.theme-label{font-size:13px;opacity:.9}.cards-container .card h3{align-items:center;display:flex;gap:8px}.micro{margin-top:8px}.row.spread{align-items:center;display:flex;justify-content:space-between}.thermo-track{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden;position:relative}.thermo-fill{background:#6e1d85;background:var(--brand-600);border-radius:999px;inset:0 auto 0 0;position:absolute;transition:width .35s ease;width:0}.theme-dark .thermo-track{background:#1f2937}.theme-dark .thermo-fill{background:#9d5bbf;background:var(--brand-500)}.gbar-track{background:#e2e8f0;border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px;height:12px;overflow:hidden;position:relative}.gbar-track.with-bands{display:flex}.gbar-band{height:100%}.gbar-band.band-ok{background:#e2e8f0}.gbar-band.band-warm{background:#fef3c7}.gbar-band.band-hot{background:#fee2e2}.gbar-band.band-danger{background:#fecaca}.gbar-fill{background:#6e1d85;background:var(--brand-600);border-right:1px solid #0206171f;bottom:0;left:0;position:absolute;top:0}.gbar-marker{background:#0f172a;bottom:-3px;opacity:.7;position:absolute;top:-3px;width:2px}.gbar-row{color:#475569;color:var(--ink-600);font-size:12px;justify-content:space-between;margin-top:6px}.gbar-val{color:#0f172a;color:var(--ink-900);font-weight:800}.gbar-ends{gap:8px}.segbar{grid-gap:6px;display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));margin-top:6px}.segbar-item{background:#fff;border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px;color:#334155;color:var(--ink-700);font-size:12px;font-weight:700;padding:6px 8px;text-align:center}.theme-dark .segbar-item{background:#fff;background:var(--panel);color:#64748b;color:var(--ink-500)}.segbar-item.active{background:#6e1d85;background:var(--brand-600);border-color:#6e1d85;border-color:var(--brand-600);color:#fff}.stagedots{align-items:center;display:flex;gap:6px;margin-top:8px}.stagedots .dot{background:#e2e8f0;border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px}.spark{display:block;margin-top:6px}.spark-line{fill:none;stroke:#6e1d85;stroke:var(--brand-600);stroke-width:2}.spark-dot{fill:#6e1d85;fill:var(--brand-600)}.spark-empty{color:#64748b;color:var(--ink-500);font-size:12px;margin-top:6px}.theme-dark .gbar-track{background:#1f2937;border-color:#334155}.theme-dark .gbar-fill{background:#6e1d85;background:var(--brand-600)}.theme-dark .gbar-marker{background:#e2e8f0}.theme-dark .gbar-band.band-ok{background:#273244}.theme-dark .gbar-band.band-warm{background:#3b2e12}.theme-dark .gbar-band.band-hot{background:#3a1f1f}.theme-dark .gbar-band.band-danger{background:#3f1a1a}.gbar-row{align-items:center}.gbar-ends,.gbar-row{display:flex;gap:10px}.gbar-ends{margin-left:auto}.segbar-item{cursor:default;opacity:.95}.stagedots .dot{background:#cbd5e1;border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.stagedots .dot.on{background:#6e1d85;background:var(--brand-600)}.segbar{align-items:center;display:inline-flex;gap:6px;-webkit-user-select:none;user-select:none;white-space:nowrap}.segbar .segbar-item{background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px;color:#0f172a;color:var(--ink-900);font-size:12px;font-weight:700;opacity:.95;padding:6px 10px}.segbar .segbar-item.active{background:#6e1d85;background:var(--brand-600);border-color:#6e1d85;border-color:var(--brand-600);box-shadow:0 6px 14px #6e1d852e;color:#fff}.segbar-xs .segbar-item{font-size:11px;padding:3px 8px}.segbar-sm .segbar-item{font-size:12px;padding:5px 9px}.segbar-md .segbar-item{font-size:13px;padding:7px 12px}.theme-dark .segbar .segbar-item{background:#0b1220;border-color:#334155;color:#e2e8f0}.theme-dark .segbar .segbar-item.active{background:#6e1d85;background:var(--brand-600);border-color:#6e1d85;border-color:var(--brand-600);color:#fff}.device-card .segbar{margin-top:8px}.segslider{--count:3;--index:0;grid-gap:0;align-items:stretch;background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px;box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow);display:grid;gap:0;grid-template-columns:repeat(var(--count),1fr);justify-items:center;overflow:hidden;padding:6px;position:relative;-webkit-user-select:none;user-select:none}.segslider-thumb{background:#6e1d85;background:var(--brand-600);border-radius:999px;bottom:6px;box-shadow:0 6px 14px #6e1d852e;left:6px;position:absolute;top:6px;transform:translateX(calc(var(--index)*(100% - 12px)/var(--count)));transition:transform .25s cubic-bezier(.22,1,.36,1);width:calc((100% - 12px)/var(--count));z-index:0}.segslider-item{align-items:center;background:#0000;border:0;color:#334155;color:var(--ink-700);cursor:default;display:flex;font-size:12px;font-weight:700;justify-content:center;line-height:1;overflow:hidden;padding:0 8px;position:relative;text-overflow:ellipsis;white-space:nowrap;z-index:1}.segslider-item:not(:last-child):after{background:#0f172a14;background:var(--panel-b);bottom:6px;content:"";opacity:.35;position:absolute;right:0;top:6px;width:1px}.segslider-item.active{color:#fff}.segslider-sm .segslider-item{font-size:12px;height:24px}.segslider-md .segslider-item{font-size:12.5px;height:30px}.segslider[role=tablist] .segslider-item{cursor:pointer}.segslider.ghost{background:#f1f5f9;border-color:#e2e8f0;box-shadow:none}.theme-dark .segslider,.theme-dark .segslider.ghost{background:#0b1220;border-color:#334155}.theme-dark .segslider-item{color:#cbd5e1}.theme-dark .segslider-item:not(:last-child):after{background:#334155;opacity:.7}.pillgroup{display:inline-flex;flex-wrap:wrap;gap:8px;-webkit-user-select:none;user-select:none}.pillgroup-sm .pill{font-size:12px;padding:6px 12px}.pillgroup-md .pill{font-size:13px;padding:8px 14px}.pill{background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow);color:#334155;color:var(--ink-700);line-height:1}.pill.active{background:#6e1d85;background:var(--brand-600);border-color:#6e1d85;border-color:var(--brand-600);box-shadow:0 6px 14px #6e1d852e;color:#fff}.pillgroup.ghost .pill{background:#f1f5f9;border-color:#e2e8f0;box-shadow:none;color:#334155;color:var(--ink-700)}.theme-dark .pillgroup .pill{background:#0b1220;border-color:#334155;color:#cbd5e1}.theme-dark .pillgroup .pill.active{background:#6e1d85;background:var(--brand-600);border-color:#6e1d85;border-color:var(--brand-600);color:#fff}.theme-dark .pillgroup.ghost .pill{background:#0b1220;border-color:#334155}.device-card .segslider-item:not(:last-child):after{display:none}.device-card .segslider{padding:2px}.spark-line{stroke:currentColor}.band-legend{align-items:center;color:#475569;color:var(--ink-600);display:inline-flex;font-size:12px;gap:12px;margin-top:6px}.band-legend .ldot{border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.band-legend .ldot-ok{background:#e2e8f0}.band-legend .ldot-warm{background:#fef3c7}.band-legend .ldot-hot{background:#fee2e2}.theme-dark .band-legend .ldot-ok{background:#273244}.theme-dark .band-legend .ldot-warm{background:#3b2e12}.theme-dark .band-legend .ldot-hot{background:#3a1f1f}.segmented{--seg-h:32px;align-items:center;background:#fff;background:var(--panel-a);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px;display:grid;grid-template-columns:repeat(var(--n),1fr);height:var(--seg-h);padding:4px;position:relative}.seg-md{--seg-h:40px}.segmented .seg-thumb{align-self:stretch;background:#6e1d85;background:var(--accent-500);border-radius:999px;box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--elev-1);grid-row:1;transition:grid-column 0s,transform .28s ease}.theme-dark .segmented .seg-thumb{background:#9d5bbf;background:var(--accent-400)}.segmented .seg{align-items:center;background:#0000;border:0;color:#334155;color:var(--ink-700);cursor:default;display:flex;font:inherit;height:100%;justify-content:center;line-height:1;padding:0 12px;position:relative;z-index:1}.segmented.interactive .seg{cursor:pointer}.segmented .seg.active .seg-label{color:#fff;color:var(--on-accent);font-weight:600}.segmented .seg-divider{background:color-mix(in oklab,#475569 10%,#0000);background:color-mix(in oklab,var(--ink-600) 10%,#0000);bottom:24%;position:absolute;right:0;top:24%;width:1px}.theme-dark .segmented .seg-divider{background:color-mix(in oklab,var(--ink-300) 18%,#0000)}@media (max-width:520px){.segmented{padding:3px}.segmented .seg{font-size:13px;padding:0 8px}}.segmented{overflow:hidden}.segmented .seg{min-width:0;overflow:hidden}.segmented .seg-label{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.seg-sm .seg-label{font-size:13px}.segmented .seg-divider{opacity:.4;pointer-events:none}.theme-dark .segmented .seg-divider{opacity:.35}.segmented-grid{--seg-h:32px;align-items:center;background:#fff;background:var(--panel-a);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px;display:grid;grid-template-columns:repeat(var(--count),1fr);height:var(--seg-h);overflow:hidden;padding:4px;position:relative;width:100%}.segmented-grid.seg-md{--seg-h:40px}.segmented-grid .seggrid-thumb{align-self:stretch;background:#6e1d85;background:var(--accent-500);border-radius:999px;box-shadow:0 1px 2px #0f172a0a;box-shadow:var(--elev-1);grid-row:1;transition:grid-column 0s,transform .28s ease}.theme-dark .segmented-grid .seggrid-thumb{background:#9d5bbf;background:var(--accent-400)}.segmented-grid .segitem{align-items:center;background:#0000;border:0;color:#334155;color:var(--ink-700);cursor:default;display:flex;font:inherit;height:100%;justify-content:center;line-height:1;min-width:0;padding:0 12px;position:relative;z-index:1}.segmented-grid.interactive .segitem{cursor:pointer}.segmented-grid .segitem-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.segmented-grid .segitem.active .segitem-label{color:#fff;color:var(--on-accent);font-weight:600}.segmented-grid .segitem-divider{background:color-mix(in oklab,#475569 10%,#0000);background:color-mix(in oklab,var(--ink-600) 10%,#0000);bottom:24%;pointer-events:none;position:absolute;right:0;top:24%;width:1px}.theme-dark .segmented-grid .segitem-divider{background:color-mix(in oklab,var(--ink-300) 18%,#0000)}@media (max-width:520px){.segmented-grid{padding:3px}.segmented-grid .segitem{font-size:13px;padding:0 8px}}.trend-delta{background:color-mix(in oklab,#6e1d85 12%,#fff);background:color-mix(in oklab,var(--brand-600) 12%,#fff);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px;box-shadow:0 1px 0 #0206170a;color:#471358;color:var(--brand-800);display:inline-block;font-size:12px;font-weight:800;letter-spacing:.01em;padding:4px 10px}.trend-delta.stable{background:#f1f5f9;color:#334155;color:var(--ink-700)}.trend-delta.warming{background:#fee2e2;border-color:#fecaca;color:#991b1b}.trend-delta.cooling{background:color-mix(in oklab,#6e1d85 14%,#fff);background:color-mix(in oklab,var(--brand-600) 14%,#fff);border-color:color-mix(in oklab,#6e1d85 28%,#e5e7eb);border-color:color-mix(in oklab,var(--brand-600) 28%,#e5e7eb);color:#471358;color:var(--brand-800)}.theme-dark .trend-delta.stable{background:#0b1220;border-color:#334155;color:#cbd5e1}.theme-dark .trend-delta.warming{background:#3a1f1f;border-color:#7f1d1d;color:#fecaca}.theme-dark .trend-delta.cooling{background:#1a0f26;border-color:#3a2850;color:#e9d5f3}.scheduler{grid-gap:12px;display:grid;gap:12px}.scheduler-form{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:1.5fr repeat(3,1fr) auto}.scheduler-field .modal-input{width:100%}.scheduler-actions{align-items:center;display:flex}@media (max-width:1100px){.scheduler-form{grid-template-columns:1fr 1fr 1fr}.scheduler-actions{grid-column:1/-1}}.scheduler-list{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:0;padding:0}.scheduler-item{grid-gap:12px;align-items:center;background:#ffffff8c;background:var(--card-subtle,#ffffff8c);border:1px solid #0000000f;border-radius:12px;box-shadow:0 1px 2px #0000000a;display:grid;gap:12px;grid-template-columns:2fr 1fr auto 1.5fr auto;padding:10px 12px}.scheduler-item .si-last-text,.scheduler-item .si-temp-text,.scheduler-item .si-when-text{font-weight:600}.scheduler-item .si-actions{display:flex;gap:8px;justify-content:flex-end}@media (max-width:900px){.scheduler-item{gap:6px;grid-template-columns:1fr}.scheduler-item .si-actions{justify-content:flex-start}}.sched{grid-gap:12px;display:grid;gap:12px}.sched-toolbar{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:1.6fr 1fr .9fr .7fr auto}.sched-field{grid-gap:6px;display:grid;gap:6px}.sched-actions{display:flex;justify-content:flex-end}.w-sm{max-width:180px}.w-xs{max-width:140px}.w-xxs{max-width:120px}.sched-head{font-size:12px;opacity:.65;padding:0 6px}.st-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:2.2fr .9fr .7fr .9fr 1.5fr auto}.st-item{background:#ffffff8c;background:var(--card-subtle,#ffffff8c);border:1px solid #0000000f;box-shadow:0 1px 2px #0000000a;padding:10px 12px}.st-actions{display:flex;gap:8px;justify-content:flex-end}.cap{text-transform:capitalize}.strong{font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}@media (max-width:1100px){.sched-toolbar{grid-template-columns:1fr 1fr 1fr}.sched-actions{grid-column:1/-1}.st-row{grid-template-columns:1fr}.st-actions{justify-content:flex-start}}.sched{gap:10px}.sched-toolbar{gap:10px;margin-top:4px}.sched-head{opacity:.7;padding:4px 6px 6px}.st-item{background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:12px;border-radius:var(--radius);box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow);padding:8px 10px}.st-row{gap:10px;grid-template-columns:1.6fr .8fr .6fr .9fr 1.2fr auto}.st-actions .btn.sm{font-weight:700}.btn.ghost.sm{background:#fff;border-color:#cbd5e1;color:#334155;color:var(--ink-700)}.theme-dark .btn.ghost.sm{background:#0b1220;border-color:#334155;color:#cbd5e1}.chip{background:#f8fafc;border:1px solid #0f172a14;border:1px solid var(--panel-b);color:#334155;color:var(--ink-700)}.chip-ok{background:color-mix(in oklab,#6e1d85 12%,#fff);background:color-mix(in oklab,var(--brand-600) 12%,#fff);border-color:color-mix(in oklab,#6e1d85 35%,#0f172a14);border-color:color-mix(in oklab,var(--brand-600) 35%,var(--panel-b));color:#471358;color:var(--brand-800)}.theme-dark .chip{background:#0b1220;color:#cbd5e1}.sched-table{--sched-cols:1.7fr .9fr .6fr .9fr 1.3fr auto}.sched-head,.st-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:var(--sched-cols)}.sched-head,.st-item{padding:10px 12px}.sched-head{background:#0000;border-bottom:1px solid #0f172a14;border-bottom:1px solid var(--panel-b);margin-top:2px}.sched-list{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:0;padding:0}.sched-table{--sched-cols:1.8fr 0.9fr 0.7fr 1.0fr 1.6fr auto}.sched-table .sched-head,.sched-table .sched-row{grid-gap:12px;align-items:center;box-sizing:border-box;display:grid;gap:12px;grid-template-columns:var(--sched-cols)}.sched-table .sched-head,.sched-table .sched-item{padding:10px 12px}.sched-table .sched-head{background:#0000;border-bottom:1px solid #0f172a14;border-bottom:1px solid var(--panel-b);margin-top:2px}.sched-table .sched-item{background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:12px;border-radius:var(--radius);box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow)}.sched-table .sched-list{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:0;padding:0}.sched-table{--sched-cols:1.9fr .9fr .6fr 1.0fr 1.6fr auto}.sched-table .sched-row>:nth-child(2),.sched-table .sched-row>:nth-child(3),.sched-table .sched-row>:nth-child(4){text-align:center}.sched-table .sched-row>:nth-child(5){font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sched-table .sched-row>:nth-child(6){justify-self:end}.stbl-wrap{background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:12px;border-radius:var(--radius);box-shadow:0 4px 14px #0f172a0f,0 1px 3px #0f172a0a;box-shadow:var(--shadow);overflow:hidden}.stbl{border-collapse:initial;border-spacing:0;font-size:.95rem;table-layout:auto;width:100%}.stbl thead th{border-bottom:1px solid #0f172a14;border-bottom:1px solid var(--panel-b);color:#64748b;color:var(--muted);font-weight:700;padding:12px 14px;text-align:left;white-space:nowrap}.stbl tbody td{border-top:1px solid #0f172a14;border-top:1px solid var(--panel-b);padding:12px 14px;vertical-align:middle}.stbl tbody tr:hover{background:#00000008}.stbl .center{text-align:center}.stbl .right{text-align:right}.stbl .nowrap{white-space:nowrap}.stbl .mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pill{border:1px solid #0000;border-radius:999px;cursor:pointer;display:inline-block;font-size:.75rem;font-weight:700;padding:4px 10px}.pill-ok{background:#e6f7ec;border-color:#c8ebd3;color:#1f7a3a}.pill-muted{background:#eef1f5;border-color:#d9dee6;color:#5f6b7a}:root{--muted:#64748b;--text:var(--ink-900)}.muted{color:#64748b;color:var(--muted);font-size:.9em}.sr-only{clip:rect(0,0,1px,1px);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;white-space:nowrap;width:1px}.stbl-wrap{overflow:auto}.stbl thead th{background:#fff;background:var(--panel);position:sticky;top:0;z-index:2}.stbl.striped tbody tr:nth-child(2n){background:rgba(0,0,0,.018)}.stbl.striped tbody tr:hover{background:#0000000a}.stbl.compact tbody td,.stbl.compact thead th{padding:10px 12px}.theme-dark .stbl thead th{background:#fff;background:var(--panel);color:#475569;color:var(--ink-600)}.theme-dark .stbl tbody td,.theme-dark .stbl thead th{border-color:#0f172a14;border-color:var(--panel-b)}.theme-dark .stbl tbody tr:hover{background:#ffffff0d}:root{--violet-300:#c07ad4;--violet-400:#b468cd;--violet-500:#9f56bb;--violet-600:#6e1d85}.theme-dark{--ink-900:#eef2f8;--ink-700:#cdd5e4;--ink-600:#b4bed1;--ink-500:#9aa5bb;--panel:#0f1320;--panel-b:#282e47;--bg-soft:#0a0d18;--surface-page:#0a0d18;--surface-raised:#171c2e;--surface-muted:#ffffff0f;--hairline:#ffffff17;--panel-accent-weak:#151a2d;--text:var(--ink-900);--muted:var(--ink-600);--accent-500:var(--violet-400);--accent-400:var(--violet-500);--on-accent:#fff}html.theme-dark{color-scheme:dark}html.theme-light{color-scheme:light}.theme-dark body{background:radial-gradient(1200px 600px at 18% -12%,#1a1530 0,#101429 60%,#0a0d18 100%),linear-gradient(#0a0d18,#0a0d18)}.theme-dark .btn,.theme-dark .option-btn{background:#fff;background:var(--panel);border:none;box-shadow:0 1px 2px #00000040;color:#0f172a;color:var(--ink-900)}.theme-dark .btn.primary,.theme-dark .option-btn.primary{background:#9f56bb;background:var(--violet-500);box-shadow:0 3px 10px #6e1d8559}.theme-dark .btn.primary:hover{background:#b468cd;background:var(--violet-400)}.theme-dark .btn.ghost,.theme-dark .btn.ghost.sm{background:#0f1320;box-shadow:none;color:#e6ebf5}.theme-dark .btn.ghost:hover{background:#141a2f}.theme-dark .tab{background:#ffffff0f;border:none;color:#0f172a;color:var(--ink-900)}.theme-dark .tab.active{background:#9f56bb;background:var(--violet-500);color:#fff}.theme-dark .chip{background:#12182a;border-color:#2c3452;color:#d8dfec}.theme-dark .chip-ok{background:#1a2232;border-color:#364061;color:#dbeafe}.theme-dark .modal{background:#fff;background:var(--panel);border-color:#0f172a14;border-color:var(--panel-b);color:#0f172a;color:var(--ink-900)}.theme-dark .modal .modal-input,.theme-dark .modal input{background:#000;border-color:#2c3452;color:#fff}.theme-dark .modal .modal-input:focus,.theme-dark .modal input:focus{border-color:#9f56bb;border-color:var(--violet-500);box-shadow:0 0 0 2px #6e1d8538}.theme-dark .modal input[type=number]{-moz-appearance:textfield}.theme-dark .modal input[type=number]::-webkit-inner-spin-button,.theme-dark .modal input[type=number]::-webkit-outer-spin-button{appearance:none!important;display:none!important}.theme-dark .modal h2,.theme-dark .modal-title{color:#fff!important;font-weight:800!important;text-shadow:0 1px 2px #0000004d}.theme-dark .segmented,.theme-dark .segmented-grid,.theme-dark .segslider{background:#11172a;border-color:#2d3554}.theme-dark .seg-thumb,.theme-dark .seggrid-thumb,.theme-dark .segslider-thumb{background:#9f56bb;background:var(--violet-500)}.theme-dark .seg .seg-label,.theme-dark .segitem,.theme-dark .segslider-item{color:#dfe6f2}.theme-dark [role=tablist]{background:#11172a!important;border-color:#2d3554!important}.theme-dark [role=tablist] button,.theme-dark [role=tablist] button span{color:#0f172a!important;color:var(--ink-900)!important}.theme-dark [role=tablist] button[aria-selected=true] span{color:#fff!important}.theme-dark .gbar-track,.theme-dark .thermo-track{background:#19213a;border-color:#2f385b}.theme-dark .gbar-fill,.theme-dark .thermo-fill{background:#b468cd;background:var(--violet-400)}.theme-dark .spark-dot,.theme-dark .spark-line{stroke:#b468cd;stroke:var(--violet-400);fill:#b468cd;fill:var(--violet-400)}.theme-dark .stagedots .dot.on{background:#9f56bb;background:var(--violet-500)}.theme-dark .chart-container,.theme-dark .device-card,.theme-dark .st-item,.theme-dark .stbl-wrap{background:#fff;background:var(--panel);border:none;box-shadow:0 8px 28px #00000038,0 2px 8px #0000002e}.theme-dark .stbl tbody tr:hover{background:#6e1d851f}.theme-dark .stbl.striped tbody tr:nth-child(2n){background:#ffffff05}.theme-dark .pill-ok{background:#123a2b;border-color:#18503b;color:#d2ffe6}.theme-dark .pill-muted{background:#141a2b;border-color:#2c3452;color:#d8deeb}.theme-dark .logo-dot{background:#9f56bb;background:var(--violet-500);box-shadow:0 0 0 2px #6e1d852e}.theme-dark .band-legend .ldot-ok{background:#24304b}.theme-dark .band-legend .ldot-warm{background:#3b2a42}.theme-dark .band-legend .ldot-hot{background:#40253f}.theme-dark .segmented,.theme-dark .segslider{background:#0f1729;border-color:#24314e}.theme-dark .segmented .seg,.theme-dark .segslider-item{color:#cbd5e1;mix-blend-mode:normal;opacity:.92}.theme-dark .segmented .seg:not(.active) .seg-label,.theme-dark .segslider-item:not(.active){color:#cbd5e1;opacity:.78}.theme-dark .segmented .seg-thumb,.theme-dark .segslider-thumb{background:#6e1d85;background:var(--brand-600);box-shadow:inset 0 0 0 1px #ffffff0f,0 8px 16px #6e1d854d}.theme-dark .segmented .seg.active .seg-label,.theme-dark .segslider-item.active{color:#fff;opacity:1;text-shadow:0 1px 0 #00000059}.theme-dark .segmented .seg-divider,.theme-dark .segslider-item:not(:last-child):after{background:#24314e;opacity:.9}.theme-dark .segslider{background:#11172a;border-color:#26314f}.theme-dark .segslider-item{color:#aeb8cc;opacity:.85}.theme-dark .segslider-item:not(:last-child):after{background:#26314f;opacity:.9}.theme-dark .segslider-thumb{background:#6e1d85;box-shadow:inset 0 0 0 1px #ffffff0f,0 8px 16px #6e1d854d}.theme-dark .segslider-item.active{color:#fff;opacity:1;text-shadow:0 1px 0 #00000059}.theme-dark .segslider-thumb{bottom:6px;top:6px}.theme-dark .segslider{background:#121a34!important;border-color:#2a3557!important}.theme-dark .segslider-item:not(.active){color:#b9c3d7!important;opacity:.95!important;text-shadow:0 1px 0 #00000073!important}.theme-dark .segslider-thumb{background:#6e1d85!important;box-shadow:inset 0 0 0 1px #ffffff0f,0 8px 16px #6e1d854d!important}.theme-dark .segslider-item.active{color:#fff!important;opacity:1!important;text-shadow:0 1px 0 #00000059!important}.theme-dark .segslider-item:not(:last-child):after{background:#2a3557!important;opacity:.9!important}.theme-dark .segslider-item{mix-blend-mode:normal!important;position:relative!important;z-index:1!important}.theme-dark .segslider-thumb{z-index:0!important}.topbar .brand .home-btn{align-items:center;background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:999px;display:inline-flex;font-size:14px;gap:8px;height:32px;margin-right:10px;padding:0 10px}.topbar .brand .home-btn .home-icon{display:inline-block}.topbar .brand .home-btn .home-label{line-height:1}.sidebar{background:#fff;background:var(--panel);border-right:1px solid #0f172a14;border-right:1px solid var(--panel-b);display:flex;flex-direction:column;flex-shrink:0;min-height:100vh;position:sticky;top:0;width:256px;z-index:10}@media (min-width:769px){.sidebar{display:flex!important;left:auto!important;position:sticky!important}.sidebar-toggle{display:none!important}}.sidebar-overlay{display:none!important}.sidebar-header{align-items:center;border-bottom:1px solid #0f172a14;border-bottom:1px solid var(--panel-b);display:flex;justify-content:center;padding:20px 16px}.sidebar-logo{height:64px;object-fit:contain;width:auto}.sidebar-brand{color:#0f172a;color:var(--ink-900);font-size:20px;font-weight:900;letter-spacing:-.02em}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:4px;overflow-y:auto;padding:12px}.sidebar-item-wrapper{position:relative}.sidebar-item-line{background:#0f172a14;background:var(--panel-b);height:1px;left:0;opacity:.8;position:absolute;right:0}.sidebar-item-line-top{top:-1px}.sidebar-item-line-bottom{bottom:-1px}.sidebar-item-button{align-items:center;background:#0000!important;border:none!important;border-radius:8px;box-shadow:none!important;color:#334155!important;color:var(--ink-700)!important;cursor:pointer;display:flex!important;font-size:15px!important;font-weight:500;gap:12px;justify-content:flex-start!important;padding:10px 12px!important;position:relative;text-align:left;transition:all .15s ease;width:100%!important}.sidebar-item-button:hover{background:#0f172a08!important;background:var(--bg-soft)!important;color:#0f172a!important;color:var(--ink-900)!important;transform:none!important}.sidebar-item-button.sidebar-item-active{color:#0f172a!important;color:var(--ink-900)!important;font-weight:600}.sidebar-item-indicator{background:#6e1d85;background:var(--brand-600);border-radius:0 2px 2px 0;height:24px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:2px}.sidebar-item-icon{align-items:center;display:inline-flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.sidebar-item-icon svg{height:100%;width:100%}.sidebar-item-label{flex:1 1}.sidebar-footer{border-top:1px solid #0f172a14;border-top:1px solid var(--panel-b);color:#64748b;color:var(--ink-500);font-size:12px;margin-top:auto;padding:16px;text-align:center}.theme-dark .sidebar{background:#fff;background:var(--panel);border-right-color:#0f172a14;border-right-color:var(--panel-b)}.theme-dark .sidebar-item-button{color:var(--ink-300)!important}.theme-dark .sidebar-item-button:hover{background:#6e1d851a!important;color:var(--ink-100)!important}.theme-dark .sidebar-item-button.sidebar-item-active{color:var(--ink-100)!important}.theme-dark .sidebar-footer{color:var(--ink-400)}.theme-dark .sidebar-brand{color:var(--ink-100)}.user-info-display{align-items:center;background:#fff;background:var(--panel);border:1px solid #0f172a14;border:1px solid var(--panel-b);border-radius:8px;display:flex;font-size:13px;gap:10px;margin-left:12px;padding:6px 12px}.user-info-username{color:#0f172a;color:var(--ink-900);font-weight:500;letter-spacing:-.01em}.user-info-role{border-radius:6px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:3px 8px;text-transform:capitalize;white-space:nowrap}.user-info-role-owner{background:linear-gradient(135deg,#9d5bbf,#6e1d85);background:linear-gradient(135deg,var(--brand-500),var(--brand-600));box-shadow:0 1px 3px #6e1d854d;color:#fff}.user-info-role-admin{background:linear-gradient(135deg,#c084d6,#9d5bbf);background:linear-gradient(135deg,var(--brand-400),var(--brand-500));box-shadow:0 1px 3px #9d5bbf4d;color:#fff}.user-info-role-viewer{background:#0f172a14;background:var(--panel-b);border:1px solid #0f172a14;border:1px solid var(--panel-b);color:#334155;color:var(--ink-700)}.theme-dark .user-info-role-owner{background:linear-gradient(135deg,#9d5bbf,#6e1d85);background:linear-gradient(135deg,var(--brand-500),var(--brand-600));box-shadow:0 1px 3px #6e1d8580;color:#fff}.theme-dark .user-info-role-admin{background:linear-gradient(135deg,#c084d6,#9d5bbf);background:linear-gradient(135deg,var(--brand-400),var(--brand-500));box-shadow:0 1px 3px #9d5bbf80;color:#fff}.theme-dark .user-info-role-viewer{background:#0f172a14;background:var(--panel-b);border:1px solid #0f172a14;border:1px solid var(--panel-b);color:#475569;color:var(--ink-600)}@keyframes user-role-l5-pulse{0%,to{box-shadow:0 0 6px #c084fc8c,0 0 14px #a855f773,0 0 28px #7c3aed40,inset 0 1px 0 #ffffff38;filter:brightness(1)}50%{box-shadow:0 0 10px #e9d5ffa6,0 0 22px #c084fc8c,0 0 40px #8b5cf659,inset 0 1px 0 #ffffff4d;filter:brightness(1.06)}}.user-info-role-level-5.user-info-role-admin{animation:user-role-l5-pulse 2.8s ease-in-out infinite;background:linear-gradient(145deg,#e9d5ff,#c084fc 18%,#a855f7 50%,#7c3aed 82%,#5b21b6);border:1px solid #ffffff59;border-radius:999px;color:#faf5ff;font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 10px;position:relative;text-shadow:0 0 8px #ffffff73,0 1px 2px #5b21b680;text-transform:none}.theme-dark .user-info-role-level-5.user-info-role-admin{background:linear-gradient(145deg,#ddd6fe,#a78bfa 15%,#8b5cf6 45%,#7c3aed 75%,#4c1d95);border-color:#fff3;color:#fdf4ff;text-shadow:0 0 10px #fae8ff80,0 1px 3px #312e81cc}@media (prefers-reduced-motion:reduce){.user-info-role-level-5.user-info-role-admin{animation:none;box-shadow:0 0 10px #c084fc80,0 0 22px #7c3aed59,inset 0 1px 0 #fff3}}.lazy-image{display:block;height:auto;max-width:100%}.lazy-image-loaded{opacity:1}.lazy-image-error{filter:grayscale(100%);opacity:.5}@media print{@page{size:A4 landscape;margin:1cm}[onClick],[onKeyDown],[onTouchEnd],[onclick],[role=button],[style*="cursor: pointer"],[style*="cursor:pointer"],[tabIndex],a[href],body [onClick],body [onKeyDown],body [onTouchEnd],body [onclick],body [role=button],body [tabIndex],body a[href],body button,body input,body select,body textarea,button,button *,html body [onClick],html body [onKeyDown],html body [onTouchEnd],html body [onclick],html body [role=button],html body [tabIndex],html body a[href],html body button,html body input,html body select,html body textarea,input,input *,select,select *,textarea{background:#0000!important;border:none!important;display:none!important;font-size:0!important;height:0!important;left:-9999px!important;line-height:0!important;margin:0!important;max-height:0!important;max-width:0!important;opacity:0!important;overflow:hidden!important;padding:0!important;position:absolute!important;top:-9999px!important;visibility:hidden!important;width:0!important}.date-picker,.device-select,.export-button,.no-print,.no-print *,.print-button,.pull-to-refresh-indicator,.sched,.sched-field,.sched-toolbar,.scheduler,.scheduler *,.scheduler-actions,.scheduler-field,.scheduler-form,.scheduler-item,.scheduler-list,.sidebar,.sidebar-toggle,.tabs,.topbar,[class*=SetpointScheduler],[class*=btn],[class*=button],[class*=export],[class*=legend]:not([class*=recharts-legend]),[class*=refresh],[class*=scheduler],[class*=sidebar],[class*=toggle],div[style*="background: var(--panel-a"],div[style*="background: var(--panel-a"][style*="borderRadius: 8px"],div[style*="background: var(--panel-a"][style*="padding: 4px"],div[style*="display: flex"][style*="gap: 4px"][style*=background],div[style*="display: flex"][style*=gap],div[style*="var(--panel-a"]{display:none!important;height:0!important;margin:0!important;opacity:0!important;overflow:hidden!important;padding:0!important;visibility:hidden!important;width:0!important}.app-content{margin:0!important;max-width:100%!important;padding:0!important;width:100%!important}.app{background:#fff!important}.animated-background{display:none!important}*{box-shadow:none!important;text-shadow:none!important}.app,.app-content,body,div:not([class*=recharts]):not(svg):not([class*=chart]):not([class*=Card]){background:#fff!important;color:#000!important}.chart-container,.dashboard-card,.device-card,[class*=Card],[class*=chart]{background:#fff!important;border:1px solid #ddd!important;box-shadow:none!important;break-inside:avoid;color:#000!important;margin-bottom:15px!important;page-break-inside:avoid}[class*=recharts-cartesian-axis],[class*=recharts-cartesian-grid],[class*=recharts-legend],[class*=recharts-surface],[class*=recharts-wrapper],[class*=recharts],[class*=recharts] *,svg{background:#0000!important;color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}svg{display:block!important;height:auto!important;max-width:100%!important;min-height:400px!important;opacity:1!important;page-break-inside:avoid;visibility:visible!important;width:100%!important}svg,svg circle,svg line,svg path,svg polygon,svg polyline,svg rect,svg text{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}svg circle,svg line,svg path,svg polygon,svg polyline,svg rect,svg text{fill:inherit!important;stroke:inherit!important}[class*=ResponsiveContainer],[class*=recharts-wrapper],[style*=ResponsiveContainer],div[style*="position: relative"][style*=height]{display:block!important;height:auto!important;max-height:none!important;min-height:400px!important;opacity:1!important;page-break-inside:avoid;position:static!important;visibility:visible!important;width:100%!important}.print-chart-container,div[style*="position: relative"][style*="width: 100%"]{display:block!important;height:auto!important;max-height:none!important;min-height:500px!important;opacity:1!important;page-break-inside:avoid;position:static!important;visibility:visible!important}.print-chart-container,.print-chart-container *{display:block!important;opacity:1!important;visibility:visible!important}.print-chart-container [class*=ResponsiveContainer],.print-chart-container [class*=recharts],.print-chart-container svg{display:block!important;height:auto!important;min-height:500px!important;opacity:1!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;visibility:visible!important;width:100%!important}.print-chart-container:empty:after{color:#666!important;content:"Chart data not available for print"!important;display:block!important;font-style:italic!important;padding:20px!important;text-align:center!important}[style*="display: flex"]{display:block!important}[style*="flexDirection: row"]{flex-direction:column!important}[style*="gap:"]{gap:0!important}h1,h2,h3,h4,h5,h6{color:#000!important;margin-bottom:5px!important;margin-top:10px!important;page-break-after:avoid}.print-break{page-break-after:always}.print-avoid-break{page-break-inside:avoid}#root,body,html{background:#fff!important;color:#000!important;margin:0!important;padding:0!important}nav[aria-label=Breadcrumb]{color:#000!important;display:block!important;font-size:11pt;margin-bottom:10px}table{border-collapse:collapse;page-break-inside:avoid;width:100%}table td,table th{border:1px solid #000!important;color:#000!important;padding:4px!important}[aria-label*=help],[class*=help],[class*=tooltip],[title]{display:none!important}[style*=currentDate],[style*=formatDisplayDate]{background:#0000!important;color:#000!important}[style*="position: absolute"]:not([style*="Date Display"]){position:static!important}.gauge-svg,.humidity-gauge,.stagedots,.stagedots *,.stagedots .dot,[class*=GaugeBar],[class*=HumidityGauge],[class*=SegmentedSlider],[class*=StageDots],[class*=gauge],[class*=micro],[class*=segmented],[class*=slider],[class*=stage-dots],[class*=stagedots],[role=checkbox],[role=radio],[role=slider],button[role=button]:not(.print-keep),div[class*=dot],div[style*="border-radius: 50%"],div[style*="borderRadius: 50%"],div[style*=background][style*=border][style*=border-radius],div[style*=background][style*=border][style*=borderRadius],div[style*=width][style*=height][style*=borderRadius],input[type=checkbox],input[type=radio],input[type=range],span[class*=dot],svg circle:not([class*=recharts]):not([class*=chart]),svg ellipse:not([class*=recharts]):not([class*=chart]){display:none!important;height:0!important;margin:0!important;opacity:0!important;overflow:hidden!important;padding:0!important;visibility:hidden!important;width:0!important}.dashboard-card>div:has(circle),.dashboard-card>div:has(div[style*="borderRadius: 50%"]),.dashboard-card>div:has(ellipse),.dashboard-card>div[style*="alignItems: center"][style*=paddingTop],.dashboard-card>div[style*="display: flex"][style*="justifyContent: center"],.dashboard-card>div[style*=marginTop][style*=auto],.dashboard-card>div[style*=paddingTop][style*="4px"]{display:none!important}.dashboard-card:has(.scheduler),.dashboard-card:has([class*=scheduler]),.sched,.sched-field,.sched-toolbar,.scheduler,.scheduler *,.scheduler-actions,.scheduler-field,.scheduler-form,.scheduler-item,.scheduler-list,.si-actions,.si-last,.si-status,.si-temp,.si-when,[aria-label*=Delete],[aria-label*=Run],[aria-label*=schedule],[class*=SetpointScheduler],[class*=scheduler],div:has(button:contains("Add schedule")),div:has(button:contains("Delete")),div:has(button:contains("Run now")){display:none!important;height:0!important;margin:0!important;opacity:0!important;overflow:hidden!important;padding:0!important;visibility:hidden!important;width:0!important}[style*=z-index],[style*=zIndex]{z-index:auto!important}}.loading-container{min-height:200px;padding:40px 20px}.loading-container,.loading-fullscreen{align-items:center;display:flex;flex-direction:column;justify-content:center}.loading-fullscreen{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffffff2;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.theme-dark .loading-fullscreen{background:#0f172af2}.loading-inline{align-items:center;display:inline-flex;gap:8px;padding:8px 0}.spinner{display:inline-block;position:relative}.spinner-small{height:20px;width:20px}.spinner-medium{height:40px;width:40px}.spinner-large{height:60px;width:60px}.spinner-ring{animation:spin 1.2s cubic-bezier(.5,0,.5,1) infinite;border:3px solid #0000;border-radius:50%;border-top:3px solid var(--brand-600,#6e1d85);height:100%;position:absolute;width:100%}.spinner-ring:first-child{animation-delay:-.45s;border-top-color:#6e1d85;border-top-color:var(--brand-600,#6e1d85);opacity:1}.spinner-ring:nth-child(2){animation-delay:-.3s;border-top-color:#9d5bbf;border-top-color:var(--brand-500,#9d5bbf);opacity:.8}.spinner-ring:nth-child(3){animation-delay:-.15s;border-top-color:#c084d6;border-top-color:var(--brand-400,#c084d6);opacity:.6}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-message{font-size:14px;margin-top:16px;text-align:center}.loading-message,.loading-message-inline{color:#64748b;color:var(--ink-600,#64748b);font-weight:500}.loading-message-inline{font-size:13px}.theme-dark .loading-message,.theme-dark .loading-message-inline{color:#94a3b8;color:var(--ink-400,#94a3b8)}.skeleton-card{animation:skeleton-pulse 1.5s ease-in-out infinite;background:#fff;background:var(--panel,#fff);border:1px solid #e5e7eb;border:1px solid var(--panel-b,#e5e7eb);border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:20px}.theme-dark .skeleton-card{background:#0f1320;background:var(--panel,#0f1320);border-color:#282e47;border-color:var(--panel-b,#282e47)}.skeleton-line{animation:skeleton-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb,#f8fafc 50%,#e5e7eb);background:linear-gradient(90deg,var(--panel-b,#e5e7eb) 0,var(--panel-a,#f8fafc) 50%,var(--panel-b,#e5e7eb) 100%);background-size:200% 100%;border-radius:4px;height:16px;margin-bottom:12px}.theme-dark .skeleton-line{background:linear-gradient(90deg,#1f2a44,#2a3557 50%,#1f2a44);background-size:200% 100%}.skeleton-line.short{width:60%}.skeleton-line.medium{width:80%}.skeleton-line.long{width:100%}.skeleton-title{height:24px;margin-bottom:16px;width:40%}.skeleton-value{height:32px;margin-bottom:8px;width:50%}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.95}}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}@media (max-width:768px){.skeleton-grid{gap:12px;grid-template-columns:1fr}.loading-container{min-height:150px;padding:24px 16px}.loading-message{font-size:13px;margin-top:12px}}.toast-container{display:flex;flex-direction:column;gap:12px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.toast{align-items:center;animation:toastSlideIn .3s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;box-shadow:0 10px 25px -5px #0003,0 8px 10px -5px #0000001a;display:flex;gap:12px;max-width:400px;min-width:280px;padding:14px 18px;pointer-events:auto}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.toast-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:20px;font-weight:700;height:24px;justify-content:center;line-height:1;width:24px}.toast-message{color:inherit;flex:1 1;font-size:14px;font-weight:500;line-height:1.4}.toast-close{align-items:center;background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:20px;justify-content:center;line-height:1;opacity:.7;padding:0;transition:opacity .2s;width:20px}.toast-close:hover{background:#0000001a;opacity:1}.theme-dark .toast-close:hover{background:#ffffff1a}.toast-success{background:#10b981f2;border:1px solid #10b9814d;color:#fff}.toast-success .toast-icon{background:#fff3}.toast-error{background:#ef4444f2;border:1px solid #ef44444d;color:#fff}.toast-error .toast-icon{background:#fff3}.toast-info{background:#3b82f6f2;border:1px solid #3b82f64d;color:#fff}.toast-info .toast-icon{background:#fff3}.toast-warning{background:#f59e0bf2;border:1px solid #f59e0b4d;color:#fff}.toast-warning .toast-icon{background:#fff3}.theme-dark .toast-success{background:#10b981e6;border-color:#10b98180}.theme-dark .toast-error{background:#ef4444e6;border-color:#ef444480}.theme-dark .toast-info{background:#3b82f6e6;border-color:#3b82f680}.theme-dark .toast-warning{background:#f59e0be6;border-color:#f59e0b80}@media (max-width:768px){.toast-container{left:12px;right:12px;top:12px}.toast{max-width:none;min-width:auto;padding:12px 16px}.toast-icon{font-size:18px;height:22px;width:22px}.toast-message{font-size:13px}}
/*# sourceMappingURL=main.a94dbb3a.css.map*/