.flow-page .page-title .date{display:none}.flow-page .page-title{margin-bottom:22px}.flow-page .page-title .eyebrow{margin-bottom:10px}.flow-page .page-title h1{margin-bottom:6px}.flow-page .page-title p:last-child{margin:0}.flow-page footer{margin-top:26px}.energy-flow{border:1px solid var(--border);background:var(--panel);border-radius:16px;overflow:hidden}.flow-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding:20px 26px;display:flex}.flow-system{color:var(--muted);align-items:center;gap:12px;min-width:0;font-size:11px;display:flex}.flow-system select{background:var(--bg);color:var(--text);border-color:var(--border);text-overflow:ellipsis;min-width:180px;max-width:380px;font-size:13px}.flow-status{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:11px;display:flex}.flow-status>span{background:#85918c;border-radius:50%;width:6px;height:6px}.flow-status.online>span{background:#68d8b3;box-shadow:0 0 0 4px #68d8b312}.flow-status time{font-variant-numeric:tabular-nums;color:var(--muted);margin-left:8px;font-size:10px}.flow-diagram{isolation:isolate;grid-template-rows:132px 146px 132px;grid-template-columns:minmax(0,1fr) 160px minmax(0,1fr);gap:28px 62px;max-width:950px;margin:auto;padding:36px 38px 20px;display:grid;position:relative}.flow-connections{pointer-events:none;z-index:-1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.flow-wire{fill:none;stroke:var(--border);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.flow-wire.active{stroke:color-mix(in srgb,var(--flow-color) 37%,var(--border))}.flow-particle{fill:var(--flow-color);filter:drop-shadow(0 0 4px var(--flow-color))}.vems-flow-core{background:radial-gradient(circle at 50% 0,#26473d,var(--panel) 80%);color:#76e5bd;border:1px solid #3c6757;border-radius:32px;flex-direction:column;grid-area:2/2;justify-content:center;place-self:center;align-items:center;gap:12px;width:140px;height:140px;display:flex;box-shadow:0 0 0 9px #68d8b305,0 0 55px #68d8b309}.vems-flow-core strong{letter-spacing:3px;font-size:24px;font-weight:650}.vems-flow-core svg{fill:#68d8b31a;stroke-width:1.6px}.energy-node{border:1px solid var(--border);background:var(--panel);text-align:left;border-radius:12px;place-self:center;width:100%;min-width:0;max-width:220px;padding:16px 18px;transition:border-color .15s,background .15s,transform .15s}.energy-node:hover{border-color:var(--flow-color);background:color-mix(in srgb,var(--flow-color) 5%,var(--panel));transform:translateY(-2px)}.energy-node:focus-visible{outline:2px solid var(--flow-color);outline-offset:5px}.energy-node[data-kind=pv]{grid-area:1/2}.energy-node[data-ac-slot=secondary]{grid-area:1/1}.energy-node[data-ac-slot=primary]{grid-area:2/1}.energy-node[data-kind=load]{grid-area:2/3}.energy-node[data-kind=battery]{grid-area:3/2}.energy-node-label{color:var(--text);align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.energy-node-label>svg:first-child{color:var(--flow-color);stroke-width:1.6px;flex-shrink:0}.energy-node-label>svg:last-child{color:var(--muted);opacity:.6;flex-shrink:0;margin-left:auto}.energy-node-power{letter-spacing:-.8px;font-variant-numeric:tabular-nums;align-items:baseline;gap:7px;margin:9px 0 4px;font-size:30px;font-weight:500;line-height:1.4;display:flex}.energy-node-power small{letter-spacing:0;color:var(--muted);font-size:12px;font-weight:400}.energy-node-direction{height:15px;color:var(--muted);align-items:center;gap:4px;font-size:10px;display:flex}.energy-node[data-live=false] .energy-node-power{color:var(--muted)}.flow-caption{text-align:center;color:var(--muted);margin:18px 20px 26px;font-size:11px;line-height:1.6}.flow-empty,.flow-loading{text-align:center;min-height:400px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:34px;display:flex}.flow-empty h2,.flow-empty p,.flow-loading p{max-width:420px;margin:0}.flow-empty h2{color:var(--text);font-size:18px}.flow-empty-core{color:#68d8b3;letter-spacing:2px;align-items:center;gap:10px;margin-bottom:12px;padding:22px;font-size:27px;display:flex}.flow-error{align-items:center;gap:16px;margin:18px 24px}.flow-error .button{flex-shrink:0}.flow-details{color:var(--text);background:var(--panel);border:1px solid var(--border);overscroll-behavior:contain;border-radius:18px;width:620px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);padding:0;box-shadow:0 24px 100px #0007}.flow-details::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#020809bb}.flow-details-heading{border-bottom:1px solid var(--border);background:var(--panel);z-index:1;align-items:center;gap:14px;padding:24px;display:flex;position:sticky;top:0}.flow-detail-icon{border:1px solid var(--border);background:var(--bg);border-radius:12px;place-items:center;width:46px;height:46px;display:grid}.flow-details-heading h2{margin:0;font-size:20px}.flow-details-heading .eyebrow{letter-spacing:1.6px;color:var(--muted);margin-bottom:6px;font-size:9px}.flow-close{border:1px solid var(--border);width:36px;height:36px;color:var(--muted);border-radius:8px;place-items:center;margin-left:auto;display:grid}.flow-close:hover{color:var(--text)}.flow-details-body{padding:24px}.flow-detail-total{justify-content:space-between;align-items:center;gap:16px;padding-bottom:22px;display:flex}.flow-detail-total strong{letter-spacing:-.8px;margin-top:6px;font-size:32px;font-weight:500;display:block}.flow-reading{white-space:nowrap;font-variant-numeric:tabular-nums}.flow-reading small{letter-spacing:0;color:var(--muted);font-size:.65em;font-weight:400}.flow-transfer-label{color:var(--muted);border:1px solid var(--border);border-radius:20px;padding:7px 12px;font-size:11px}.flow-phase-scroll{max-width:100%;overflow:auto}.flow-phase-table{table-layout:fixed;font-size:12px}.flow-phase-table th,.flow-phase-table td{border-bottom:1px solid var(--border);text-align:right;color:var(--text);padding:12px 8px}.flow-phase-table th:first-child{text-align:left;width:20%}.flow-phase-table thead th{color:var(--muted);font-size:10px}.flow-phase-table tbody th{color:var(--muted);font-size:11px}.flow-device-list>h3{color:var(--muted);margin:24px 0 14px;font-size:12px}.flow-device{border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:16px}.flow-device-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.flow-device-heading>div{min-width:0}.flow-device-heading h4{overflow-wrap:anywhere;margin:0 0 5px;font-size:13px;font-weight:500}.flow-device-heading>div>span{color:var(--muted);font-size:10px}.flow-device-heading>b{font-size:20px;font-weight:500}.flow-device .flow-phase-scroll{margin-top:12px}.flow-device .flow-phase-table tr:last-child>*{border-bottom:0}.flow-device-dc,.flow-battery-data{flex-wrap:wrap;gap:24px;margin:16px 0 0;display:flex}.flow-battery-data{background:var(--bg);border-radius:10px;justify-content:space-between;margin:0 0 24px;padding:18px}.flow-device-dc dt,.flow-battery-data dt{color:var(--muted);margin-bottom:7px;font-size:10px}.flow-device-dc dd,.flow-battery-data dd{margin:0;font-size:16px}.flow-device>p{margin:12px 0 0}.flow-detail-note{color:var(--muted);border-top:1px solid var(--border);margin:22px 0 0;padding-top:16px;font-size:10px;line-height:1.7}.shell.light .vems-flow-core{color:#257657;background:radial-gradient(circle at 50% 0,#d5eee4,#f7fbf9 80%);border-color:#a0cbb8}.shell.light .energy-node-label>svg:first-child{color:color-mix(in srgb,var(--flow-color) 65%,#174333)}@media (max-width:1150px){.flow-diagram{grid-template-columns:minmax(0,1fr) 140px minmax(0,1fr);column-gap:30px;padding:30px 26px 18px}.energy-node{padding:14px}.energy-node-power{font-size:27px}.vems-flow-core{border-radius:27px;width:120px;height:120px}.flow-system select{max-width:280px}.flow-status time{display:none}}@media (max-width:600px){.flow-page .page-title .eyebrow{display:none}.energy-flow{border-radius:12px}.flow-toolbar{align-items:flex-end;gap:12px;padding:16px}.flow-system{flex:1;gap:7px;display:grid}.flow-system select{width:100%;min-width:0;max-width:100%;font-size:12px}.flow-status{padding-bottom:12px;font-size:10px}.flow-diagram{grid-template-rows:96px 106px 96px;grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);gap:18px 8px;padding:20px 10px 10px}.energy-node{border-radius:10px;padding:9px 8px}.energy-node-label{gap:5px;font-size:10px}.energy-node-label>svg:first-child{width:16px;height:16px}.energy-node-label>svg:last-child{display:none}.energy-node-power{letter-spacing:-.6px;gap:3px;margin-top:6px;font-size:22px}.energy-node-power small{font-size:10px}.energy-node-direction{white-space:nowrap;font-size:9px}.vems-flow-core{border-radius:19px;gap:7px;width:62px;height:72px;box-shadow:0 0 0 5px #68d8b305}.vems-flow-core svg{width:21px;height:21px}.vems-flow-core strong{letter-spacing:1.4px;font-size:14px}.energy-node[data-kind=battery],.energy-node[data-kind=pv]{width:106px;max-width:none}.flow-caption{margin:14px 15px 22px;font-size:10px}.flow-details-heading,.flow-details-body{padding:18px}.flow-details-heading{gap:11px}.flow-details-heading h2{font-size:18px}.flow-detail-icon{width:38px;height:38px}.flow-device{padding:12px}.flow-device-heading{gap:10px}.flow-device-heading h4{font-size:12px}.flow-device-heading>b{font-size:18px}.flow-phase-table th,.flow-phase-table td{padding:11px 4px;font-size:11px}.flow-phase-table thead th{font-size:9px}.flow-battery-data{gap:16px;padding:14px}.flow-error{flex-wrap:wrap;margin:14px}.flow-empty{min-height:360px;padding:24px}}@media (prefers-reduced-motion:reduce){.flow-particle{display:none}.energy-node{transition:none}.energy-node:hover{transform:none}}.flow-details-heading>div{min-width:0}.flow-details-heading h2{overflow-wrap:anywhere}.flow-detail-icon,.flow-close{flex-shrink:0}.flow-calculation-notes{color:var(--muted);border:1px solid var(--border);border-radius:8px;margin-top:20px;padding:12px;font-size:11px;line-height:1.6}.flow-calculation-notes p{margin:0}.flow-calculation-notes summary{cursor:pointer;margin-top:6px}.flow-calculation-notes ul{margin:8px 0 0;padding-left:18px}.flow-calculation-notes li+li{margin-top:5px}.flow-device-open{text-align:left;width:100%;color:var(--text);background:0 0;border:0;min-height:44px;padding:0}.flow-device-open:hover .flow-monitor-name strong{color:#68d8b3}.flow-device-open:focus-visible,.flow-back:focus-visible{outline-offset:5px;border-radius:4px;outline:2px solid #68d8b3}.flow-device-open>svg{color:var(--muted);flex-shrink:0}.flow-device-open>b{margin-left:auto}.flow-monitor-name{min-width:0}.flow-monitor-name strong{overflow-wrap:anywhere;font-size:13px;font-weight:500;display:block}.flow-monitor-name small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.flow-back{color:var(--muted);align-items:center;gap:8px;margin:0 0 20px;padding:8px 0;font-size:12px;display:flex}.flow-back:hover{color:var(--text)}.flow-monitor-group{margin:24px 0}.flow-monitor-group h3,.flow-critical-loads h3{margin:0 0 6px;font-size:13px;font-weight:500}.flow-monitor-group dl{margin:0}.flow-monitor-group dl>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:18px;padding:13px 0;display:flex}.flow-monitor-group dt{color:var(--muted);font-size:12px}.flow-monitor-group dd{margin:0;font-size:17px}.flow-critical-loads{border:1px solid var(--border);border-radius:10px;padding:16px}.flow-critical-loads .flow-phase-scroll{margin-top:12px}@media (max-width:360px){.flow-diagram{grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);column-gap:6px;padding-inline:8px}.vems-flow-core{width:54px}.energy-node{padding:9px 6px}.energy-node-label{gap:3px;font-size:9px}.energy-node-label>svg:first-child{width:13px;height:13px}.energy-node-power{font-size:20px}.energy-node-direction{font-size:8px}.energy-node[data-kind=battery],.energy-node[data-kind=pv]{width:94px}.flow-critical-loads{padding:10px}.flow-monitor-group dd{font-size:15px}}@media (max-width:600px){.energy-node[data-ac-slot=primary],.energy-node[data-kind=load]{width:calc(100% - 16px)}.energy-node[data-ac-slot=secondary]{width:calc(100% - 28px);padding-inline:6px}.flow-diagram:has([data-ac-slot=secondary]) .energy-node[data-kind=pv]{width:88px}}.flow-device-list-heading{justify-content:space-between;align-items:center;gap:14px;margin:24px 0 14px;display:flex}.flow-device-list-heading h3{color:var(--muted);margin:0;font-size:12px}.flow-device-list-heading label{color:var(--muted);align-items:center;gap:8px;font-size:10px;display:flex}.flow-device-list-heading select{background:var(--bg);min-width:0;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px;font-size:11px}.flow-device-group{border:1px solid var(--border);border-radius:10px;min-width:0;margin-bottom:12px}.flow-device-group>summary{cursor:pointer;align-items:center;gap:12px;min-height:60px;padding:16px;list-style:none;display:flex}.flow-device-group>summary::-webkit-details-marker{display:none}.flow-device-group>summary>span{flex:1;min-width:0}.flow-device-group>summary strong{overflow-wrap:anywhere;font-size:12px;font-weight:500;display:block}.flow-device-group>summary small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.flow-device-group>summary>b{font-size:18px;font-weight:500}.flow-device-group>summary>b small{display:inline}.flow-device-group>summary>svg{color:var(--muted);flex-shrink:0}.flow-device-group[open]>summary>svg{transform:rotate(90deg)}.flow-device-group>summary:focus-visible{outline-offset:2px;border-radius:10px;outline:2px solid #68d8b3}.flow-device-group-body{padding:0 12px}.flow-device-group .flow-device{background:var(--bg)}.flow-device-position{color:var(--muted);font-size:11px}@media (max-width:600px){.flow-device-list-heading{flex-wrap:wrap;align-items:flex-start}.flow-device-list-heading label{margin-left:auto}.flow-device-group>summary{gap:8px;padding:12px}.flow-device-group-body{padding:0 6px}.flow-device-group .flow-device{padding:10px}.flow-device-group>summary>b{font-size:16px}.flow-device-group .flow-phase-table th,.flow-device-group .flow-phase-table td{padding-inline:3px}}.energy-node-soc{letter-spacing:-.8px;font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;margin:8px 0 3px;font-size:30px;font-weight:500;line-height:1.3;display:flex}.energy-node-soc small{letter-spacing:0;color:var(--muted);font-size:12px;font-weight:400}.energy-node-soc[data-available=false]{color:var(--muted)}.energy-node[data-kind=battery] .energy-node-power{letter-spacing:0;gap:4px;margin:0 0 5px;font-size:15px;line-height:1.2}.energy-node[data-kind=battery] .energy-node-power small{font-size:11px}@media (max-width:600px){.flow-diagram{grid-template-rows:96px 106px 112px}.energy-node-soc{margin:5px 0 2px;font-size:25px}.energy-node-soc small{font-size:10px}.energy-node[data-kind=battery] .energy-node-power{margin-bottom:4px;font-size:12px}.energy-node[data-kind=battery] .energy-node-power small{font-size:9px}}
