: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}:root{--strip: #22252c}:root[data-theme=light]{--strip: #f3f4f6}.flow{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;padding:0 10px 12px;border-radius:28px;background:var(--card);box-shadow:var(--shadow);overflow:hidden}.flow-bar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:0 -10px 6px;padding:6px 8px 6px 16px;background:var(--strip)}.flow-bar strong{font-size:15px;font-weight:650;letter-spacing:0}.theme{width:36px;height:36px;margin:0;padding:0;border:0;border-radius:12px;display:grid;place-items:center;background:transparent;color:var(--text);line-height:0}.theme svg{display:block}.stage{position:relative;grid-column:1 / -1;width:100%;aspect-ratio:360 / 180}.wires{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.wire{fill:none;stroke:var(--line);stroke-width:2.4;stroke-linecap:round}.stream.to-home .wire.on{stroke:var(--green)}.stream.to-pack .wire.on{stroke:var(--gold)}.stream.from-pack .wire.on{stroke:var(--coral)}.arrow{fill:currentColor}.stream.to-home{color:var(--green)}.stream.to-pack{color:var(--gold)}.stream.from-pack{color:var(--coral)}.node{position:absolute;z-index:1;display:grid;justify-items:center;gap:1px;width:92px;transform:translate(-50%,-42%)}.node.grid{left:18%;top:30%}.node.home{left:82%;top:30%}.node.battery{left:50%;top:74%}.node strong{font-size:16px;font-weight:700}.node em{font-style:normal;color:var(--muted);font-size:12px}.pic{width:74px;height:74px;object-fit:contain;display:block;background:none}.is-off .node.grid .pic,.is-unknown .pic{opacity:.38}.flow-wait{grid-column:1 / -1;height:120px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.card{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:6px;color:var(--muted);font-size:12px;font-weight:560}.ico{width:16px;height:16px;display:grid;place-items:center}.value-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}.card strong{font-size:24px;line-height:1;font-weight:700}.mini{width:100%;height:22px;display:block}.mini.gauge{width:36px;height:36px;flex:0 0 36px}.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}}
