.zdl-live{--live-ink:#e8f4f3;--live-muted:#b6c9cd;position:relative;margin:22px 0 28px;color:var(--live-ink);border:1px solid rgba(207,229,233,.29);border-radius:18px;background:radial-gradient(ellipse at 30% 25%,rgba(140,186,191,.09),transparent 65%),linear-gradient(145deg,rgba(41,53,58,.74),rgba(18,29,34,.7));box-shadow:inset 0 1px rgba(245,255,255,.09),0 14px 38px rgba(2,9,13,.12);overflow:hidden;isolation:isolate}
.zdl-live-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:26px 28px 0}.zdl-live-eyebrow{display:block;font-size:13px;letter-spacing:.05em;color:#acd4d9;margin-bottom:9px}.zdl-live-heading h3{font-size:clamp(20px,2.2vw,26px);font-weight:600;line-height:1.5;margin:0}.zdl-live-status{flex-shrink:0;max-width:210px;border:1px solid rgba(182,218,213,.2);border-radius:30px;padding:7px 12px;font-size:12px;line-height:1.6;color:var(--live-muted);background:rgba(159,205,201,.035)}.is-live-running .zdl-live-status{color:#bce8d5;border-color:rgba(184,225,208,.36)}
.zdl-live-scene{position:relative;width:100%;aspect-ratio:2/1}.zdl-live-svg{display:block;width:100%;height:100%;overflow:visible}.zdl-live-svg-compact{display:none}.zdl-live-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block}.zdl-live-node-bg{fill:rgba(28,43,49,.77);stroke:rgba(207,232,234,.24);stroke-width:1}.zdl-live-source .zdl-live-node-bg{fill:rgba(28,51,57,.7);stroke:rgba(173,226,234,.45)}.zdl-live-battery .zdl-live-node-bg{fill:rgba(29,48,48,.8);stroke:rgba(176,223,204,.34)}
.zdl-live-label{fill:var(--live-ink);font:500 21px system-ui,"Microsoft YaHei",sans-serif}.zdl-live-source-number{fill:#b8e7ee;font:600 39px system-ui,"Microsoft YaHei",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.4px}.zdl-live-target-number{fill:var(--live-tone,#b2e5c3);font:600 32px system-ui,"Microsoft YaHei",sans-serif;font-variant-numeric:tabular-nums}.zdl-live-unit{fill:var(--live-muted);font:400 16px system-ui,"Microsoft YaHei",sans-serif}.zdl-live-percent{fill:var(--live-tone,#b2e5c3);font:500 18px system-ui,"Microsoft YaHei",sans-serif;font-variant-numeric:tabular-nums}.zdl-live-share-track{fill:rgba(194,222,225,.12)}.zdl-live-share-fill{fill:var(--live-tone,#b2e5c3);opacity:.8}.zdl-live-wire{fill:none;stroke:var(--live-tone,#a4dfea);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.42}.zdl-live-wire.is-zero{stroke:#8d9da2;stroke-dasharray:5 7;opacity:.25}.zdl-live-wire-input{stroke:#a4dfea;opacity:.52}.zdl-live-icon{fill:none;stroke:#b5e3e9;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.zdl-live-icon-accent{fill:rgba(144,210,219,.09);stroke:none}.zdl-live-battery-shell{fill:rgba(6,22,29,.45);stroke:#c2e9d9;stroke-width:2}.zdl-live-battery-cap{fill:none;stroke:#c2e9d9;stroke-width:4;stroke-linecap:round}.zdl-live-soc-range{fill:rgba(159,220,194,.16)}.zdl-live-soc-limit{stroke:rgba(196,234,215,.45);stroke-dasharray:3 4;stroke-width:1}.zdl-live-battery-number{fill:#bde8d0;font:600 28px system-ui,"Microsoft YaHei",sans-serif}.zdl-live-soc-label{fill:#bedbd3;font:400 17px system-ui,"Microsoft YaHei",sans-serif}
.zdl-live-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 28px 24px}.zdl-live[data-live-type="storage"] .zdl-live-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.zdl-live-summary>div{display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:6px 9px;align-items:center;border-top:1px solid rgba(191,218,223,.16);padding-top:14px;min-width:0}.zdl-live-summary i{width:5px;height:5px;border-radius:50%}.zdl-live-summary span{font-size:14px;color:var(--live-muted)}.zdl-live-summary strong{grid-column:2/-1;font-size:21px;line-height:1.5;font-weight:550;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.zdl-live-summary small{font-size:12px;color:var(--live-muted);font-weight:400}.zdl-live-summary em{grid-row:1;grid-column:3;font-style:normal;font-size:13px;color:var(--live-muted)}.zdl-live-summary .is-negative{color:#efb4ae}.zdl-live-footnote{display:flex;align-items:baseline;gap:24px;padding:16px 28px;border-top:1px solid rgba(202,226,229,.14);background:rgba(5,19,25,.14)}.zdl-live-footnote>span{font-size:14px;color:#c1dbd6;flex-shrink:0}.zdl-live-footnote p{margin:0;font-size:12px;line-height:1.75;color:var(--live-muted)}.zdl-live-empty{padding:24px}.zdl-live-empty h3{font-size:22px}.zdl-live-empty p{color:var(--live-muted)}
.zdl-live.is-compact .zdl-live-scene{aspect-ratio:400/760}.zdl-live.is-compact[data-live-type="storage"] .zdl-live-scene{aspect-ratio:400/880}.zdl-live.is-compact .zdl-live-svg-wide{display:none}.zdl-live.is-compact .zdl-live-svg-compact{display:block}.zdl-live.is-compact .zdl-live-heading{display:block;padding:20px 18px 0}.zdl-live.is-compact .zdl-live-heading h3{font-size:21px}.zdl-live.is-compact .zdl-live-status{display:inline-block;margin-top:12px;max-width:none}.zdl-live.is-compact .zdl-live-label{font-size:20px}.zdl-live.is-compact .zdl-live-source-number{font-size:35px}.zdl-live.is-compact .zdl-live-target-number{font-size:31px}.zdl-live.is-compact .zdl-live-percent{font-size:17px}.zdl-live.is-compact .zdl-live-summary,.zdl-live.is-compact[data-live-type="storage"] .zdl-live-summary{grid-template-columns:1fr;padding:0 20px 20px;gap:10px}.zdl-live.is-compact .zdl-live-summary>div{grid-template-columns:6px minmax(0,1fr) auto;gap:4px 9px;padding-top:11px}.zdl-live.is-compact .zdl-live-summary strong{font-size:22px}.zdl-live.is-compact .zdl-live-footnote{display:block;padding:14px 20px}.zdl-live.is-compact .zdl-live-footnote p{margin-top:7px;font-size:12px}
@media(max-width:640px){.zdl-live{border-radius:14px;margin:18px 0 22px}.zdl-live:not(.is-live-mounted) .zdl-live-scene{aspect-ratio:400/760}.zdl-live:not(.is-live-mounted)[data-live-type="storage"] .zdl-live-scene{aspect-ratio:400/880}.zdl-live:not(.is-live-mounted) .zdl-live-svg-wide{display:none}.zdl-live:not(.is-live-mounted) .zdl-live-svg-compact{display:block}.zdl-live-heading{display:block;padding:20px 18px 0}.zdl-live-status{display:inline-block;margin-top:12px}.zdl-live-footnote{display:block;padding:14px 20px}.zdl-live-footnote p{margin-top:7px}}
.zdl-live-heading h3>span{font-size:16px;font-weight:400;color:var(--live-muted);margin-left:15px;white-space:nowrap}.zdl-live-preview{font-size:15px;color:#c9e9df;border:1px solid rgba(189,225,213,.3);border-radius:6px;padding:5px 10px;white-space:nowrap}.zdl-live-footnote{justify-content:space-between}.zdl-live-footnote>span{font-size:16px}.zdl-live-footnote p{font-size:14px}.zdl-live.is-compact .zdl-live-heading{display:flex;gap:12px}.zdl-live.is-compact .zdl-live-heading h3>span{display:block;margin:5px 0 0}.zdl-live.is-compact .zdl-live-unit{font-size:18px}.zdl-live.is-compact .zdl-live-footnote p{font-size:14px}.zdl-live-sr-only,.zdl-live.is-compact .zdl-live-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.zdl-live-status{font-size:13px;max-width:none;padding:5px 10px}.zdl-live.is-compact .zdl-live-heading{flex-wrap:wrap;align-items:center}.zdl-live.is-compact .zdl-live-heading>div{flex-basis:100%}.zdl-live.is-compact .zdl-live-status{margin-top:0}.zdl-live.is-compact .zdl-live-preview{font-size:14px}.zdl-live-footnote p,.zdl-live.is-compact .zdl-live-footnote p{margin:0}
/* Existing ResizeObserver supplies SVG-unit sizes for stable actual CSS pixels.
   Percentage and unit now share a separate row; long flow names use the whole top row. */
.zdl-live.is-compact .zdl-live-label{font-size:var(--live-compact-label-size,24px)}
.zdl-live.is-compact .zdl-live-unit{font-size:var(--live-compact-unit-size,24px)}
.zdl-live.is-compact .zdl-live-percent{font-size:var(--live-compact-percent-size,24px)}
.zdl-live.is-compact .zdl-live-source-number{font-size:var(--live-compact-source-size,40px)}
.zdl-live.is-compact .zdl-live-target-number{font-size:var(--live-compact-target-size,37.33px)}
.zdl-live.is-compact .zdl-live-battery-number{font-size:var(--live-compact-battery-size,32px)}
.zdl-live.is-compact .zdl-live-soc-label{font-size:var(--live-compact-soc-size,24px)}
.zdl-live-precision{border-top:1px solid rgba(202,226,229,.14);background:rgba(159,205,201,.025)}
.zdl-live-precision>summary{padding:14px 28px;min-height:48px;font-size:16px;line-height:1.5;color:var(--live-ink);cursor:pointer;list-style-position:inside}
.zdl-live-precision>summary::marker{color:#acd8de}
.zdl-live-precision>summary:hover{background:rgba(159,205,201,.055)}
.zdl-live-precision>summary:focus-visible{outline:2px solid #b8e7ee;outline-offset:-4px;border-radius:5px}
.zdl-live-precision .zdl-live-summary span,.zdl-live-precision .zdl-live-summary small,.zdl-live-precision .zdl-live-summary em{font-size:16px}
.zdl-live.is-compact .zdl-live-precision>summary{padding:14px 20px}
@media print{.zdl-live-canvas,.zdl-live-status{display:none!important}.zdl-live{box-shadow:none;break-inside:avoid}.zdl-live-node-bg{fill:#21343b}}

/* The source stays visibly alive while a phone shows only the upper portion
   of the tall flow diagram. These are activity cues, never changing values. */
.zdl-live.is-live-running .zdl-live-source .zdl-live-icon{animation:zdl-live-source-breathe 4.2s ease-in-out infinite}
.zdl-live.is-live-running .zdl-live-target.is-active .zdl-live-share-fill{animation:zdl-live-share-breathe 3.8s ease-in-out infinite}
.zdl-live.is-live-running .zdl-live-target.is-active:nth-of-type(2) .zdl-live-share-fill{animation-delay:-1.1s}
.zdl-live.is-live-running .zdl-live-target.is-active:nth-of-type(3) .zdl-live-share-fill{animation-delay:-2.2s}
@keyframes zdl-live-source-breathe{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes zdl-live-share-breathe{0%,100%{opacity:.55}50%{opacity:1}}
body:is(.paused,.motion-paused,.report-exporting,.motion-reduced) .zdl-live .zdl-live-icon,
body:is(.paused,.motion-paused,.report-exporting,.motion-reduced) .zdl-live .zdl-live-share-fill{animation:none!important}
@media(prefers-reduced-motion:reduce){.zdl-live .zdl-live-icon,.zdl-live .zdl-live-share-fill{animation:none!important}}
@media print{.zdl-live .zdl-live-icon,.zdl-live .zdl-live-share-fill{animation:none!important}}
