:root{color-scheme:dark;--bg: #0e0f12;--card: #17191f;--text: #f4f6f8;--muted: #9aa1ab;--line: rgba(255, 255, 255, .08);--green: #3dbe78;--coral: #e36a5d;--amber: #e2a04a;--blue: #7eb6ff;--gold: #e6c15a;--slate: #aeb6c2;--shadow: 0 10px 30px rgba(0, 0, 0, .28);font-family:Manrope,sans-serif}:root[data-theme=light]{color-scheme:light;--bg: #eef0f3;--card: #ffffff;--text: #17191d;--muted: #66707c;--line: rgba(20, 24, 30, .08);--shadow: 0 10px 28px rgba(24, 28, 36, .08)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{overflow-x:hidden}button,svg{font-family:inherit}main{width:min(920px,100%);margin:0 auto;padding:18px 14px 28px;display:grid;gap:12px}.theme{justify-self:end;width:32px;height:32px;border:0;border-radius:999px;background:var(--card);color:var(--muted);box-shadow:var(--shadow)}.flow{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;min-height:188px;padding:18px 8px 8px;border-radius:28px;background:var(--card);box-shadow:var(--shadow)}.wires{position:absolute;top:8px;right:8px;bottom:28px;left:8px;width:calc(100% - 16px);height:132px}.wire{fill:none;stroke:var(--line);stroke-width:2.4}.wire.on{stroke:var(--green);stroke-dasharray:7 9;animation:drift 1.8s linear infinite}.wire.down{stroke:var(--gold)}.wire.up{stroke:var(--coral);animation-direction:reverse}.node{position:relative;z-index:1;display:grid;justify-items:center;gap:4px}.node.battery{margin-top:78px}.node strong{font-size:18px;font-weight:700;letter-spacing:-.03em}.node em,.card em{font-style:normal;color:var(--muted);font-size:12px}.orb{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#ffffff0a}:root[data-theme=light] .orb{background:#f4f6f8}.orb.grid{color:var(--gold)}.orb.bat{color:var(--green)}.orb.home{color:var(--coral)}.is-unknown .orb,.is-off .orb.grid{color:var(--muted)}.is-unknown .wire.on{display:none}.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.card{min-height:132px;padding:12px 12px 10px;border-radius:22px;background:var(--card);box-shadow:var(--shadow);display:grid;align-content:start;gap:6px}.card header{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:560}.ico{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#ffffff0a}:root[data-theme=light] .ico{background:#f4f6f8}.card strong{font-size:26px;line-height:1;font-weight:700;letter-spacing:-.04em}.bar{display:block;height:4px;border-radius:99px;background:var(--line);overflow:hidden}.bar b{display:block;height:100%;background:currentColor}.spark{width:100%;height:28px}.tone-green{color:var(--green)}.tone-coral{color:var(--coral)}.tone-amber{color:var(--amber)}.tone-blue{color:var(--blue)}.tone-gold{color:var(--gold)}.tone-slate{color:var(--slate)}.card header,.card em,.card strong{color:var(--text)}.card header,.card em{color:var(--muted)}.tone-green .ico{color:var(--green)}.tone-coral .ico{color:var(--coral)}.tone-amber .ico{color:var(--amber)}.tone-blue .ico{color:var(--blue)}.tone-gold .ico{color:var(--gold)}.tone-slate .ico{color:var(--slate)}.chart-card{padding:12px 8px 8px;border-radius:28px;background:var(--card);box-shadow:var(--shadow)}.day-nav{display:flex;align-items:center;justify-content:space-between;padding:0 8px 4px}.day-nav span{font-weight:700}.day-nav button{width:40px;height:36px;border:0;border-radius:12px;background:transparent;color:var(--text);font-size:22px}.day-nav button:disabled{color:var(--line)}.plot{width:100%;height:280px}.plot.empty{display:grid;place-items:center;color:var(--muted)}.skeleton{position:relative;overflow:hidden;min-height:132px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);animation:sheen 1.4s ease infinite}@keyframes drift{to{stroke-dashoffset:-32}}@keyframes sheen{0%{transform:translate(-60%)}to{transform:translate(60%)}}@media(min-width:800px){main{padding-top:28px}.cards{grid-template-columns:repeat(3,1fr)}.plot{height:360px}.node strong{font-size:22px}}@media(max-width:360px){.card strong{font-size:22px}.node strong{font-size:15px}}@media(prefers-reduced-motion:reduce){.wire.on,.skeleton:after{animation:none}}
