:root{--bg:#090e17;--card-bg:#131c2b;--header-bg:#1c273a;--text:#e2e8f0;--cyan:#00d2ff;--green-text:#00e676;--red-text:#f87171;--amber-text:#f59e0b;--border:#23334d;--green-bg:#00e67629;--red-bg:#ef444429}svg{vertical-align:middle;flex-shrink:0;display:inline-block}.header-icon{stroke:var(--cyan);filter:drop-shadow(0 0 6px #00d2ff80);width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;max-height:18px!important}.ui-icon{stroke:#94a3b8;width:14px!important;min-width:14px!important;max-width:14px!important;height:14px!important;min-height:14px!important;max-height:14px!important}.soc-svg-icon{stroke:var(--cyan);filter:drop-shadow(0 0 6px #00d2ff73);width:20px!important;min-width:20px!important;max-width:20px!important;height:20px!important;min-height:20px!important;max-height:20px!important}.time-icon{stroke:var(--cyan);width:14px!important;min-width:14px!important;max-width:14px!important;height:14px!important;min-height:14px!important;max-height:14px!important}.item-icon{stroke:var(--cyan);width:13px!important;min-width:13px!important;max-width:13px!important;height:13px!important;min-height:13px!important;max-height:13px!important}.section-icon{stroke:var(--cyan);width:14px!important;min-width:14px!important;max-width:14px!important;height:14px!important;min-height:14px!important;max-height:14px!important}.battery-badge{letter-spacing:.5px;border-radius:20px;align-items:center;gap:6px;padding:3px 9px;font-family:monospace;font-size:.75rem;font-weight:700;transition:all .3s;display:inline-flex}.battery-badge.charging{color:var(--green-text);background:#00e67629;border:1px solid #00e67673;box-shadow:0 0 10px #00e67640}.battery-badge.discharging{color:var(--red-text);background:#ef444429;border:1px solid #ef444473;box-shadow:0 0 10px #ef444440}.battery-badge.idle{color:#94a3b8;background:#94a3b81f;border:1px solid #94a3b840}.battery-badge.paused{color:#f59e0b;background:#f59e0b29;border:1px solid #f59e0b73;box-shadow:0 0 10px #f59e0b33}.paused .pulse-dot{background-color:#f59e0b;box-shadow:0 0 6px #f59e0b}.pulse-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.charging .pulse-dot{background-color:var(--green-text);box-shadow:0 0 8px var(--green-text);animation:1.8s infinite pulse-green}.discharging .pulse-dot{background-color:var(--red-text);box-shadow:0 0 8px var(--red-text);animation:1.8s infinite pulse-red}.idle .pulse-dot{background-color:#94a3b8}@keyframes pulse-green{0%{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.3);box-shadow:0 0 10px #00e676}to{opacity:.7;transform:scale(.9)}}@keyframes pulse-red{0%{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.3);box-shadow:0 0 10px #f87171}to{opacity:.7;transform:scale(.9)}}.offgrid-banner{border-bottom:2px solid var(--border);background:linear-gradient(90deg,#00e6761f 0%,#152236 60%,#00d2ff14 100%);align-items:center;gap:12px;padding:8px 16px;display:flex}.offgrid-avatar{-o-object-fit:cover;object-fit:cover;-o-object-position:center 15%;object-position:center 15%;border:2px solid var(--green-text);border-radius:50%;flex-shrink:0;box-shadow:0 0 10px #00e67673;width:42px!important;min-width:42px!important;max-width:42px!important;height:42px!important;min-height:42px!important;max-height:42px!important}.offgrid-info{flex-direction:column;flex-grow:1;gap:2px;display:flex}.offgrid-title-row{align-items:center;gap:8px;display:flex}.offgrid-badge{color:var(--green-text);letter-spacing:.5px;background:#00e67633;border:1px solid #00e67673;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-family:monospace;font-size:.72rem;font-weight:800;display:inline-flex}.offgrid-pill{color:var(--cyan);letter-spacing:.3px;background:#00d2ff2e;border:1px solid #00d2ff66;border-radius:12px;padding:2px 7px;font-family:monospace;font-size:.68rem;font-weight:700}.offgrid-sub{color:#94a3b8;letter-spacing:.2px;font-size:.73rem;font-weight:500}.dials-showcase{background:var(--bg);grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;display:grid}@media (width<=700px){.dials-showcase{grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px}}.digital-dial-card{border:1px solid var(--border);background:linear-gradient(145deg,#131d2e 0%,#172439 100%);border-radius:12px;flex-direction:column;min-width:0;padding:8px;transition:all .35s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000059}.digital-dial-card:before{content:"";background:0 0;height:2px;transition:background .35s,box-shadow .35s;position:absolute;top:0;left:0;right:0}.digital-dial-card.mode-charging:before{background:linear-gradient(90deg,#00c853,#00e676,#00b0ff);box-shadow:0 0 12px #00e676b3}.digital-dial-card.mode-discharging:before{background:linear-gradient(90deg,#dc2626,#ef4444,#f87171);box-shadow:0 0 12px #ef4444b3}.digital-dial-card.mode-idle:before{background:#334155}.battery-casing-enclosure{border:1px solid #00d2ff47!important;box-shadow:0 8px 24px #00000073,inset 0 1px #ffffff14!important}.battery-top-terminals-bar{background:#0a101aa6;border:1px solid #ffffff0f;border-radius:6px;justify-content:space-between;align-items:center;min-height:24px;margin-bottom:5px;padding:3px 6px;display:flex}.terminal-post{letter-spacing:.5px;align-items:center;gap:3px;font-family:monospace;font-size:.65rem;font-weight:900;line-height:1;display:flex}.terminal-post.neg-post{color:#94a3b8}.terminal-post.neg-post .post-nut{background:linear-gradient(135deg,#64748b 0%,#334155 100%);border:1px solid #94a3b8;border-radius:3px;width:12px;height:12px;display:inline-block;box-shadow:inset 0 1px 2px #ffffff40}.terminal-post.pos-post{color:#fbbf24}.terminal-post.pos-post .post-nut{background:linear-gradient(135deg,#f59e0b 0%,#b45309 100%);border:1px solid #fde68a;border-radius:3px;width:12px;height:12px;transition:all .35s;display:inline-block;box-shadow:inset 0 1px 2px #fff6,0 0 6px #f59e0b66}.battery-casing-enclosure.charging-active .terminal-post.pos-post .post-nut{background:linear-gradient(135deg,#00e676 0%,#00a854 100%);border-color:#b9f6ca;box-shadow:0 0 8px #00e676,0 0 16px #00e67680}.casing-vent-plug{color:#64748b;letter-spacing:.6px;align-items:center;gap:3px;font-family:monospace;font-size:.52rem;font-weight:700;display:flex}.casing-vent-plug .vent-dot{background:#1e293b;border:1px solid #475569;border-radius:50%;width:6px;height:6px;box-shadow:inset 0 1px 2px #000c}.solar-sun-reactor-bar{background:#0a101aa6;border:1px solid #ffffff0f;border-radius:6px;justify-content:space-between;align-items:center;min-height:24px;margin-bottom:5px;padding:3px 6px;display:flex}.sun-reactor-widget{justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:relative}.sun-core-circle{z-index:2;font-size:13px;line-height:1;transition:transform .3s,filter .3s;position:relative}.sun-rays-corona{pointer-events:none;border-radius:50%;animation:12s linear infinite rotateCorona;position:absolute;inset:-3px}.sun-rays-corona .ray{transform-origin:0 0;background:#fbbf2499;border-radius:1px;width:2px;height:4px;position:absolute;top:50%;left:50%}.sun-rays-corona .ray.r1{transform:rotate(0)translate(-1px,-10px)}.sun-rays-corona .ray.r2{transform:rotate(45deg)translate(-1px,-10px)}.sun-rays-corona .ray.r3{transform:rotate(90deg)translate(-1px,-10px)}.sun-rays-corona .ray.r4{transform:rotate(135deg)translate(-1px,-10px)}.sun-rays-corona .ray.r5{transform:rotate(180deg)translate(-1px,-10px)}.sun-rays-corona .ray.r6{transform:rotate(225deg)translate(-1px,-10px)}.sun-rays-corona .ray.r7{transform:rotate(270deg)translate(-1px,-10px)}.sun-rays-corona .ray.r8{transform:rotate(315deg)translate(-1px,-10px)}@keyframes rotateCorona{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.solar-sun-reactor-bar.active-charging .sun-core-circle{filter:drop-shadow(0 0 6px #f59e0b)drop-shadow(0 0 10px #00e676);animation:1.8s ease-in-out infinite alternate sunPulse}.solar-sun-reactor-bar.active-charging .sun-rays-corona{animation:5s linear infinite rotateCorona}.solar-sun-reactor-bar.active-charging .sun-rays-corona .ray{background:#fbbf24;box-shadow:0 0 4px #00e676}@keyframes sunPulse{0%{transform:scale(.95)}to{transform:scale(1.15)}}.solar-stream-indicator{letter-spacing:.3px;align-items:center;gap:5px;font-family:monospace;font-size:.58rem;font-weight:700;display:flex}.stream-particles{align-items:center;gap:2px;display:flex}.photon-dot{opacity:.5;background:#64748b;border-radius:50%;width:4px;height:4px;transition:all .3s}.photon-arrow{color:#64748b;font-size:.65rem;line-height:1;transition:color .3s}.stream-status-text{color:#94a3b8;white-space:nowrap;letter-spacing:.3px;transition:color .3s}.solar-sun-reactor-bar.active-charging .stream-status-text{color:var(--green-text);text-shadow:0 0 8px #00e67673}.solar-sun-reactor-bar.active-charging .photon-arrow{color:var(--green-text)}.solar-sun-reactor-bar.active-charging .photon-dot{opacity:1;background:#00e676;box-shadow:0 0 6px #00e676}.solar-sun-reactor-bar.active-charging .photon-dot.p1{animation:1.1s infinite photonFlow}.solar-sun-reactor-bar.active-charging .photon-dot.p2{animation:1.1s .25s infinite photonFlow}.solar-sun-reactor-bar.active-charging .photon-dot.p3{animation:1.1s .5s infinite photonFlow}@keyframes photonFlow{0%{opacity:.4;transform:scale(.7)}50%{opacity:1;transform:scale(1.3)}to{opacity:.4;transform:scale(.7)}}.solar-sun-reactor-bar.active-discharging .stream-status-text,.solar-sun-reactor-bar.active-discharging .photon-arrow{color:var(--red-text)}.solar-sun-reactor-bar.active-discharging .photon-dot{background:#ef4444}.dial-header{justify-content:space-between;align-items:center;gap:4px;margin-bottom:2px;display:flex}.dial-title-wrap{align-items:center;gap:5px;min-width:0;display:flex}.dial-icon{stroke:var(--cyan);width:14px!important;min-width:14px!important;height:14px!important;min-height:14px!important}.dial-title{text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:700;overflow:hidden}.dial-status-pill{color:var(--cyan);letter-spacing:.3px;white-space:nowrap;background:#00d2ff1f;border:1px solid #00d2ff4d;border-radius:10px;flex-shrink:0;padding:1px 5px;font-family:monospace;font-size:.62rem;font-weight:700}.flow-pill{letter-spacing:.2px;white-space:nowrap;border-radius:10px;flex-shrink:0;padding:1px 5px;font-family:monospace;font-size:.62rem;font-weight:700}.flow-pill.flow-charging{color:var(--green-text);background:#00e6762e;border:1px solid #00e67666}.flow-pill.flow-discharging{color:var(--red-text);background:#ef44442e;border:1px solid #ef444466}.flow-pill.flow-idle{color:#94a3b8;background:#94a3b81f;border:1px solid #94a3b840}.flow-pill.flow-paused{color:#f59e0b;background:#f59e0b2e;border:1px solid #f59e0b66}.dial-gauge-wrapper{aspect-ratio:200/185;justify-content:center;align-items:center;width:100%;max-width:185px;margin:0 auto;display:flex;position:relative}.battery-fluid-chamber{pointer-events:none;z-index:1;background:radial-gradient(circle,#101a2ae6 0%,#0a101afa 100%);border:1px solid #ffffff0d;border-radius:50%;width:136px;height:136px;position:absolute;overflow:hidden;box-shadow:inset 0 0 20px #000000d9}.fluid-wave-wrap{height:var(--fluid-fill-pct,50%);transition:height 1s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0;right:0;overflow:hidden}.fluid-body{background:linear-gradient(#00e67647 0%,#00b0ff1f 100%);transition:background .4s;position:absolute;inset:10px 0 0}.fluid-wave-svg-box{width:200%;height:14px;animation:3s ease-in-out infinite alternate fluidWaveSway;position:absolute;top:0;left:-50%}.fluid-wave-svg{fill:#00e67659;width:100%;height:100%;transition:fill .4s}@keyframes fluidWaveSway{0%{transform:translate(0)}to{transform:translate(-25%)}}.fluid-bubbles{pointer-events:none;opacity:0;transition:opacity .4s;position:absolute;inset:0}.fluid-wave-wrap.fluid-charging .fluid-bubbles{opacity:1}.fluid-bubbles .bubble{opacity:0;background:#69f0ae;border-radius:50%;width:5px;height:5px;position:absolute;bottom:-6px;box-shadow:0 0 6px #00e676}.fluid-wave-wrap.fluid-charging .bubble.b1{animation:2.2s linear .1s infinite bubbleRise;left:20%}.fluid-wave-wrap.fluid-charging .bubble.b2{animation:2.7s linear .6s infinite bubbleRise;left:40%}.fluid-wave-wrap.fluid-charging .bubble.b3{animation:2.1s linear 1.1s infinite bubbleRise;left:60%}.fluid-wave-wrap.fluid-charging .bubble.b4{animation:2.5s linear 1.6s infinite bubbleRise;left:75%}.fluid-wave-wrap.fluid-charging .bubble.b5{animation:2.9s linear .3s infinite bubbleRise;left:50%}@keyframes bubbleRise{0%{opacity:0;transform:translateY(0)scale(.6)}25%{opacity:.8}75%{opacity:.8}to{opacity:0;transform:translateY(-70px)scale(1.1)}}.fluid-wave-wrap.fluid-discharging .fluid-body{background:linear-gradient(#ef444447 0%,#f59e0b1f 100%)}.fluid-wave-wrap.fluid-discharging .fluid-wave-svg{fill:#ef444459}.fluid-wave-wrap.fluid-idle .fluid-body{background:linear-gradient(#64748b33 0%,#1e293b1a 100%)}.fluid-wave-wrap.fluid-idle .fluid-wave-svg{fill:#64748b40}.dial-svg{z-index:2;width:100%;height:100%;position:relative;overflow:visible}.dial-track{fill:none;stroke:#ffffff14;stroke-width:13px;stroke-linecap:round}.dial-arc{fill:none;stroke-width:13px;stroke-linecap:round;stroke-dasharray:323;stroke-dashoffset:323px;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1),stroke .4s,filter .4s}.dial-flow-tracer{fill:none;stroke-width:5px;stroke-linecap:round;pointer-events:none;opacity:0;transition:opacity .35s}.dial-flow-tracer.tracer-charging{opacity:.95;stroke:#fff;stroke-dasharray:8 28;filter:drop-shadow(0 0 5px #00e676);animation:1.1s linear infinite tracerForward}.dial-flow-tracer.tracer-discharging{opacity:.95;stroke:#fff;stroke-dasharray:8 28;filter:drop-shadow(0 0 5px #ef4444);animation:1.1s linear infinite tracerBackward}@keyframes tracerForward{0%{stroke-dashoffset:72px}to{stroke-dashoffset:0}}@keyframes tracerBackward{0%{stroke-dashoffset:0}to{stroke-dashoffset:72px}}.dial-center-display{text-align:center;pointer-events:none;z-index:3;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:0 4px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-46%)}.dial-direction-label,.dial-top-subtext{letter-spacing:.4px;text-transform:uppercase;color:#94a3b8;text-align:center;white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;min-height:18px;margin:3px 0 1px;font-family:monospace;font-size:.66rem;font-weight:700;transition:color .3s;display:flex;overflow:hidden}.dial-readout-row{justify-content:center;align-items:baseline;gap:2px;line-height:1;display:flex}.dial-digits{color:#f1f5f9;letter-spacing:-.5px;text-shadow:0 0 16px #00e67659;font-family:monospace;font-size:clamp(1.4rem,5.2vw,1.85rem);font-weight:900;line-height:1;transition:color .3s,text-shadow .3s}.dial-unit-pct{color:#94a3b8;margin-left:2px;font-family:monospace;font-size:clamp(.72rem,2.5vw,.92rem);font-weight:700}.dial-caption{color:#94a3b8;letter-spacing:.2px;white-space:nowrap;margin-top:4px;font-family:monospace;font-size:.74rem;font-weight:600}.dial-power-display{letter-spacing:.2px;color:#f1f5f9;white-space:nowrap;background:#0a101abf;border:1px solid #ffffff17;border-radius:6px;justify-content:center;align-items:center;margin-top:5px;padding:3px 8px;font-family:monospace;font-size:clamp(.85rem,2.8vw,1.02rem);font-weight:800;transition:all .35s;display:inline-flex;box-shadow:inset 0 1px 3px #00000080,0 2px 6px #00000040}.dial-stats-row{border-top:1px solid #ffffff12;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px;padding-top:8px;display:grid}.dial-stat-cell{text-align:center;background:#0a101a73;border:1px solid #ffffff0a;border-radius:6px;flex-direction:column;align-items:center;gap:1px;padding:4px 6px;display:flex}.stat-cell-lbl{text-transform:uppercase;color:#64748b;letter-spacing:.3px;white-space:nowrap;font-size:.58rem;font-weight:600}.stat-cell-val{color:#f1f5f9;white-space:nowrap;font-family:monospace;font-size:.78rem;font-weight:800}.time-estimator-box{background:#0a101ab3;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;grid-column:1/-1;gap:6px;margin-top:2px;padding:10px 12px;transition:all .35s;display:flex}.time-estimator-box.mode-charging{border-left:3px solid var(--green-text);background:linear-gradient(90deg,#00e6761a 0%,#0a101abf 100%)}.time-estimator-box.mode-discharging{border-left:3px solid var(--red-text);background:linear-gradient(90deg,#ef44441a 0%,#0a101abf 100%)}.time-estimator-box.mode-idle{background:#0a101a99;border-left:3px solid #64748b}.time-est-top{justify-content:space-between;align-items:center;display:flex}.time-est-title{align-items:center;gap:6px;display:flex}.time-est-icon-wrap{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.time-est-title-text{text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;font-size:.73rem;font-weight:700}.time-est-badge{letter-spacing:.3px;color:#94a3b8;background:#94a3b826;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.65rem;font-weight:700}.time-est-badge.badge-charging{color:var(--green-text);background:#00e67633}.time-est-badge.badge-discharging{color:var(--red-text);background:#ef444433}.time-est-main{flex-direction:column;gap:3px;display:flex}.time-est-primary{color:#f1f5f9;letter-spacing:-.2px;font-family:monospace;font-size:1.25rem;font-weight:800}.time-est-detail{color:#94a3b8;letter-spacing:.2px;font-family:monospace;font-size:.72rem}.summary-grid{background:var(--border);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.summary-item{background:var(--card-bg);flex-direction:column;align-items:flex-start;gap:4px;padding:10px;font-size:.82rem;transition:background-color .4s;display:flex}.summary-header{align-items:center;gap:4px;width:100%;display:flex}.summary-header span{color:#94a3b8;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:600;overflow:hidden}.summary-item .val-wrap{justify-content:space-between;align-items:center;gap:4px;width:100%;display:flex}.summary-item .val{color:var(--cyan);white-space:nowrap;font-family:monospace;font-size:.98rem;font-weight:800}.cell-grid{background:var(--bg);grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 12px;display:grid}.cell-card{border:1px solid var(--border);background:#101928;border-radius:6px;flex-direction:column;justify-content:space-between;gap:3px;min-height:52px;padding:8px 10px;transition:background-color .35s,box-shadow .35s,border-color .35s;display:flex}.cell-card.prismatic-cell{background:linear-gradient(#131d2e 0%,#0d1522 100%);border:1px solid #00d2ff2e;border-radius:6px;flex-direction:column;justify-content:space-between;gap:2px;min-height:66px;padding:4px 6px 5px;transition:all .3s;display:flex;position:relative;box-shadow:0 4px 12px #00000059,inset 0 1px #ffffff0d}.cell-top-cap{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;width:100%;padding:1px 2px;display:flex;position:relative}.terminal-stud{-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;font-family:monospace;font-size:8px;font-weight:900;line-height:1;display:flex}.terminal-stud.stud-neg{color:#94a3b8;background:#334155;border:1px solid #64748b;box-shadow:inset 0 1px 1px #ffffff4d}.terminal-stud.stud-pos{color:#fde68a;background:#92400e;border:1px solid #d97706;box-shadow:inset 0 1px 1px #ffffff4d,0 0 4px #f59e0b4d}.cell-vent-dot{background:#1e293b;border:1px solid #334155;border-radius:50%;width:5px;height:5px}.cell-busbar-bridge{z-index:3;pointer-events:none;background:linear-gradient(90deg,#d97706,#f59e0b,#b45309);border-radius:1px;width:10px;height:4px;position:absolute;top:9px;right:-6px;box-shadow:0 1px 3px #00000080}.cell-card.prismatic-cell[data-cell="4"] .cell-busbar-bridge,.cell-card.prismatic-cell[data-cell="8"] .cell-busbar-bridge,.cell-card.prismatic-cell[data-cell="12"] .cell-busbar-bridge,.cell-card.prismatic-cell[data-cell="16"] .cell-busbar-bridge{display:none}.cell-canister-face{flex-direction:column;gap:2px;width:100%;display:flex}.cell-meta-bar{justify-content:space-between;align-items:center;width:100%;display:flex}.cell-id-badge{color:var(--cyan);letter-spacing:.4px;font-family:monospace;font-size:.64rem;font-weight:700}.cell-extremum-pill{letter-spacing:.3px;border-radius:3px;padding:1px 4px;font-family:monospace;font-size:.52rem;font-weight:800;display:none}.cell-extremum-pill.max{color:var(--green-text);background:#00e67638;border:1px solid #00e67680;display:inline-block;box-shadow:0 0 6px #00e6764d}.cell-extremum-pill.min{color:#fbbf24;background:#f59e0b38;border:1px solid #f59e0b80;display:inline-block;box-shadow:0 0 6px #f59e0b4d}.cell-volts-digits{color:#f1f5f9;letter-spacing:-.3px;font-family:monospace;font-size:clamp(.78rem,2.5vw,.96rem);font-weight:800;line-height:1.1}.cell-meter-groove{background:#ffffff14;border-radius:2px;width:100%;height:3px;margin-top:1px;overflow:hidden}.cell-meter-fill{background:linear-gradient(90deg,#00b0ff,#00e676);border-radius:2px;height:100%;transition:width .6s,background .4s}.cell-card.prismatic-cell.cell-max{border-color:#00e6768c!important;box-shadow:0 0 10px #00e67640,inset 0 0 10px #00e67614!important}.cell-card.prismatic-cell.cell-min{border-color:#f59e0b8c!important;box-shadow:0 0 10px #f59e0b40,inset 0 0 10px #f59e0b14!important}.cell-header{justify-content:space-between;align-items:center;width:100%;display:flex}.cell-id{color:var(--cyan);letter-spacing:.4px;font-family:monospace;font-size:.72rem;font-weight:700}.cell-val{color:#f1f5f9;letter-spacing:-.2px;text-align:left;font-family:monospace;font-size:.96rem;font-weight:800}.cell-card.status-up{background-color:var(--green-bg)!important;box-shadow:inset 0 0 0 1px #00e67666!important}.cell-card.status-down{background-color:var(--red-bg)!important;box-shadow:inset 0 0 0 1px #ef444466!important}.arrow{min-width:8px;font-size:.68rem;line-height:1;display:inline-block}.arrow-up{color:var(--green-text)}.arrow-down{color:var(--red-text)}@media (width<=480px){body{padding:6px 4px}#jk-app{border-radius:10px}.jk-header{padding:10px 12px}.jk-header h2{font-size:.98rem}.sub-site-info{font-size:.67rem}.offgrid-banner{gap:10px;padding:7px 10px}.offgrid-avatar{width:36px!important;min-width:36px!important;max-width:36px!important;height:36px!important;min-height:36px!important;max-height:36px!important}.offgrid-badge{padding:1px 5px;font-size:.65rem}.offgrid-pill{padding:1px 5px;font-size:.62rem}.offgrid-sub{font-size:.67rem}.dials-showcase{grid-template-columns:1fr 1fr!important;gap:6px!important;padding:6px!important}.digital-dial-card{border-radius:10px!important;padding:8px 6px 6px!important}.dial-header{gap:2px!important}.dial-title{font-size:.64rem!important}.dial-status-pill,.flow-pill{padding:1px 4px!important;font-size:.56rem!important}.battery-top-terminals-bar,.solar-sun-reactor-bar{min-height:20px!important;margin-bottom:3px!important;padding:2px 4px!important}.sun-reactor-widget{width:15px!important;height:15px!important}.sun-core-circle{font-size:11px!important}.stream-status-text{font-size:.5rem!important}.terminal-post{font-size:.56rem!important}.terminal-post .post-nut{width:10px!important;height:10px!important}.dial-gauge-wrapper{max-width:145px!important}.battery-fluid-chamber{width:106px!important;height:106px!important}.dial-direction-label,.dial-top-subtext{min-height:15px!important;margin:2px 0 1px!important;font-size:.58rem!important}.dial-digits{font-size:1.38rem!important}.dial-unit-pct{font-size:.72rem!important}.dial-caption{font-size:.66rem!important}.dial-power-display{margin-top:3px!important;padding:2px 6px!important;font-size:.78rem!important}.dial-stats-row{gap:4px!important;padding-top:5px!important}.dial-stat-cell{padding:3px 4px!important}.stat-cell-lbl{font-size:.52rem!important}.stat-cell-val{font-size:.7rem!important}.time-estimator-box{grid-column:1/-1!important;gap:4px!important;padding:8px!important}.time-est-primary{font-size:1.1rem!important}.time-est-detail{font-size:.66rem!important}.summary-grid{grid-template-columns:repeat(4,1fr)!important}.summary-item{gap:3px;padding:8px 4px}.summary-header{gap:3px}.item-icon{width:11px!important;height:11px!important}.summary-header span{letter-spacing:.2px;font-size:.6rem}.summary-item .val{font-size:.82rem}.cell-grid{grid-template-columns:repeat(4,1fr)!important;gap:4px!important;padding:6px!important}.cell-card{border-radius:5px;min-height:48px;padding:6px 4px}.cell-card.prismatic-cell{border-radius:5px!important;min-height:56px!important;padding:3px 4px 4px!important}.terminal-stud{width:9px!important;height:9px!important;font-size:7px!important}.cell-vent-dot{width:4px!important;height:4px!important}.cell-busbar-bridge{width:8px!important;height:3px!important;top:7px!important;right:-4px!important}.cell-id-badge{font-size:.56rem!important}.cell-extremum-pill{padding:0 2px!important;font-size:.44rem!important}.cell-volts-digits{font-size:.72rem!important}.cell-meter-groove{height:2px!important}.cell-id{font-size:.67rem}.cell-val{font-size:.88rem}.jk-footer{gap:4px;padding:10px}.footer-credits{font-size:.68rem}.footer-meta{font-size:.62rem}}.header-tools{align-items:center;gap:6px;margin-bottom:2px;display:flex}.header-tool-btn{border:1px solid var(--border);color:#94a3b8;cursor:pointer;background:#ffffff0d;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:.72rem;font-weight:600;transition:all .2s;display:inline-flex}.header-tool-btn:hover{border-color:var(--cyan);color:#f1f5f9;background:#00d2ff1f}.header-auth-btn{border:1px solid var(--border);color:#94a3b8;cursor:pointer;background:#ffffff0d;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:.72rem;font-weight:600;transition:all .2s;display:inline-flex}.header-auth-btn.locked{color:#fbbf24;background:#f59e0b1a;border-color:#f59e0b66}.header-auth-btn.locked:hover{background:#f59e0b33;border-color:#fbbf24}.header-auth-btn.unlocked{color:#00e676;background:#00e6761f;border-color:#00e67680}.header-auth-btn.unlocked:hover{background:#00e67638;border-color:#00e676}.control-card{border:1px solid var(--border);background:linear-gradient(135deg,#131d2e 0%,#172439 100%);border-radius:12px;margin:12px 14px;padding:12px 14px;transition:all .3s;box-shadow:0 4px 16px #00000059}.control-card:hover{border-color:#00d2ff59}.control-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.control-title-wrap{align-items:center;gap:7px;display:flex}.control-icon{stroke:var(--cyan);filter:drop-shadow(0 0 6px #00d2ff80)}.control-title{color:#e2e8f0;letter-spacing:.4px;text-transform:uppercase;font-size:.82rem;font-weight:700}.chg-status-badge{letter-spacing:.5px;border-radius:20px;padding:3px 8px;font-family:monospace;font-size:.72rem;font-weight:700;transition:all .3s}.chg-status-badge.on{color:var(--green-text);background:#00e67626;border:1px solid #00e67659;box-shadow:0 0 10px #00e67633}.chg-status-badge.off{color:var(--red-text);background:#ef444426;border:1px solid #ef444459;box-shadow:0 0 10px #ef444433}.chg-status-badge.pending{color:var(--amber-text);background:#f59e0b26;border:1px solid #f59e0b59;animation:1.5s infinite pulse-amber}@keyframes pulse-amber{0%,to{opacity:.8}50%{opacity:1;filter:drop-shadow(0 0 8px #f59e0b)}}.control-body{justify-content:space-between;align-items:center;display:flex}.control-info{flex-direction:column;gap:2px;display:flex}.control-status-text{color:#cbd5e1;font-size:.8rem;font-weight:500}.control-sync-tag{color:#64748b;font-family:monospace;font-size:.7rem}.switch-toggle{cursor:pointer;width:50px;height:28px;display:inline-block;position:relative}.switch-toggle input{opacity:0;width:0;height:0}.slider-round{background-color:#334155;border:1px solid #ffffff1a;border-radius:28px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.slider-round:before{content:"";background-color:#fff;border-radius:50%;width:20px;height:20px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:3px;left:4px;box-shadow:0 2px 5px #0006}.switch-toggle input:checked+.slider-round{background-color:#00e676;border-color:#00e676;box-shadow:0 0 12px #00e67666}.switch-toggle input:checked+.slider-round:before{background-color:#fff;transform:translate(22px)}.control-divider{background:#ffffff14;height:1px;margin:12px 0 10px}.limit-control-section{flex-direction:column;gap:10px;display:flex}.limit-header{justify-content:space-between;align-items:center;display:flex}.limit-title-wrap{align-items:center;gap:6px;display:flex}.limit-icon{color:#38bdf8}.limit-title{color:#94a3b8;letter-spacing:.4px;text-transform:uppercase;font-size:.76rem;font-weight:700}.limit-status-wrap{align-items:center;gap:8px;display:flex}.limit-val-badge{color:#38bdf8;letter-spacing:.5px;background:#38bdf81f;border:1px solid #38bdf84d;border-radius:6px;padding:2px 9px;font-family:monospace;font-size:.88rem;font-weight:700;box-shadow:0 0 8px #38bdf826}.limit-sync-tag{color:#64748b;font-family:monospace;font-size:.68rem}.limit-sync-tag.pending{color:var(--amber-text);animation:1.5s infinite pulse-amber}.limit-presets-row{flex-wrap:wrap;gap:6px;display:flex}.btn-limit-preset{color:#cbd5e1;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:6px;padding:5px 12px;font-family:monospace;font-size:.78rem;font-weight:600;transition:all .2s}.btn-limit-preset:hover{color:#fff;background:#38bdf826;border-color:#38bdf866;transform:translateY(-1px)}.btn-limit-preset.active{color:#fff;background:#0284c7;border-color:#38bdf8;box-shadow:0 0 10px #38bdf859}.limit-custom-row{align-items:center;gap:8px;display:flex}.limit-input-wrap{flex:1;position:relative}#input-custom-limit{color:#f8fafc;box-sizing:border-box;background:#0b1320;border:1px solid #ffffff26;border-radius:6px;width:100%;padding:6px 30px 6px 10px;font-family:monospace;font-size:.82rem;font-weight:600;transition:border-color .2s}#input-custom-limit:focus{border-color:#38bdf8;outline:none;box-shadow:0 0 8px #38bdf840}.limit-input-unit{color:#64748b;pointer-events:none;font-family:monospace;font-size:.78rem;font-weight:700;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.btn-set-limit{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border:1px solid #38bdf866;border-radius:6px;padding:6px 14px;font-size:.78rem;font-weight:600;transition:all .2s}.btn-set-limit:hover{background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%);transform:translateY(-1px);box-shadow:0 0 10px #0ea5e959}.btn-set-limit:active{transform:translateY(0)}.limit-hint{color:#64748b;margin-top:-6px;margin-bottom:2px;font-size:.68rem;line-height:1.3}.limit-note-box{color:#94a3b8;background:#0ea5e914;border:1px solid #38bdf840;border-radius:8px;align-items:flex-start;gap:8px;margin-top:4px;padding:8px 10px;font-size:.7rem;line-height:1.45;display:flex}.limit-note-box strong{color:#e2e8f0}.limit-note-icon{flex-shrink:0;font-size:.85rem;line-height:1.2}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:9999;background:#090e17e0;justify-content:center;align-items:center;padding:16px;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none!important}.modal-card{border:1px solid var(--border);background:#131c2b;border-radius:14px;width:100%;max-width:400px;animation:.25s cubic-bezier(.16,1,.3,1) scaleUp;overflow:hidden;box-shadow:0 16px 40px #000000b3}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border);background:#182335;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-header h3{color:var(--cyan);margin:0;font-size:1rem}.modal-desc{color:#94a3b8;margin:0 0 14px;font-size:.82rem;line-height:1.45}.form-group{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.form-group label{color:#cbd5e1;font-size:.78rem;font-weight:600}.form-input{border:1px solid var(--border);color:#f1f5f9;background:#0d1522;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:.95rem;transition:all .2s}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .2s}.btn-primary{background:var(--cyan);color:#050b14;border-color:var(--cyan)}.btn-primary:hover{background:#38bdf8;box-shadow:0 0 12px #00d2ff66}.btn-secondary{color:#cbd5e1;border-color:var(--border);background:#ffffff0d}.btn-secondary:hover{color:#fff;background:#ffffff1a}.btn-danger{color:#fff;background:#ef4444;border-color:#ef4444}.btn-danger:hover{background:#dc2626;box-shadow:0 0 12px #ef444466}.pin-card{text-align:center;max-width:380px;padding:30px 24px;position:relative}.pin-card .modal-close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1;position:absolute;top:14px;right:16px}.pin-card .modal-close-btn:hover{color:#fff}.pin-icon-wrap{background:#00d2ff1f;border:1px solid #00d2ff59;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;margin:0 auto 16px;font-size:1.8rem;display:flex;box-shadow:0 0 20px #00d2ff40}.pin-title{color:#f1f5f9;margin:0 0 6px;font-size:1.15rem;font-weight:700}.pin-desc{color:#94a3b8;margin:0 0 20px;font-size:.82rem}.pin-digit{border:2px solid var(--border);width:52px;height:58px;color:var(--cyan);text-align:center;background:#0d1522;border-radius:10px;outline:none;font-family:monospace;font-size:1.8rem;font-weight:700;transition:all .2s}.pin-digit:focus{border-color:var(--cyan);background:#00d2ff0d;box-shadow:0 0 12px #00d2ff4d}.pin-error{color:var(--red-text);min-height:18px;margin-bottom:14px;font-size:.8rem;font-weight:600}@keyframes pinShake{0%,to{transform:translate(0)}20%,60%{border-color:var(--red);transform:translate(-6px)}40%,80%{border-color:var(--red);transform:translate(6px)}}.confirm-card{text-align:center;padding:24px 20px}.confirm-icon{margin-bottom:10px;font-size:2.2rem}.confirm-title{color:#f1f5f9;margin:0 0 8px;font-size:1.1rem}.confirm-desc{color:#94a3b8;margin:0 0 20px;font-size:.85rem;line-height:1.45}.shooting-stars-overlay{pointer-events:none;z-index:999999;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.shooting-star{filter:drop-shadow(0 0 8px #00e676d9);opacity:0;transform-origin:0;height:2.5px;animation:meteorStreak var(--star-duration,1s) cubic-bezier(.25, .8, .25, 1) forwards;background:linear-gradient(90deg,#0000 0%,#00d2ff66 30%,#00e676e6 70%,#fff 100%);border-radius:999px;position:absolute}.shooting-star:after{content:"";background:#fff;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;right:-3px;transform:translateY(-50%);box-shadow:0 0 8px 2px #fff,0 0 16px 4px #00e676,0 0 28px 8px #00d2ff}.stardust-sparkle{opacity:0;pointer-events:none;width:4px;height:4px;animation:sparkleTwinkle var(--sparkle-duration,.9s) ease-out forwards;background:#fff;border-radius:50%;position:absolute;box-shadow:0 0 6px 1px #fff,0 0 12px 3px #00e676d9}@keyframes meteorStreak{0%{transform:rotate(var(--star-angle,145deg)) translateX(0);opacity:0;width:0}15%{width:var(--trail-length,180px);opacity:1}75%{width:var(--trail-length,180px);opacity:.9}to{transform:rotate(var(--star-angle,145deg)) translateX(var(--travel-dist,500px));opacity:0;width:0}}@keyframes sparkleTwinkle{0%{opacity:0;transform:scale(.2)rotate(0)}40%{opacity:1;transform:scale(1.6)rotate(45deg)}to{opacity:0;transform:scale(.1)rotate(90deg)}}.jk-timer.sync-pulse{text-shadow:0 0 12px #00e676e6,0 0 22px #00d2ffb3;transition:all .3s;transform:scale(1.08);color:#00e676!important}@keyframes pulse-ring{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.25)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=900px){.camera-stage.layout-grid{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:stretch}.header-left,.header-center,.header-right{justify-content:space-between}.toolbar{flex-direction:column;align-items:stretch}.tool-group-right{justify-content:space-between}}:root{--bg:#090e17;--card-bg:#131c2b;--header-bg:#1c273a;--text:#e2e8f0;--cyan:#00d2ff;--green-text:#00e676;--red-text:#f87171;--amber-text:#f59e0b;--blue-text:#38bdf8;--border:#23334d;--green-bg:#00e67629;--red-bg:#ef444429}*{box-sizing:border-box}body{background-color:var(--bg);color:var(--text);justify-content:center;align-items:flex-start;min-height:100vh;margin:0;padding:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,monospace;display:flex}.daily-page-wrapper{flex-direction:column;width:100%;display:flex}#jk-app{background:var(--card-bg);border:1px solid var(--border);border-radius:14px;width:100%;max-width:540px;overflow:hidden;box-shadow:0 10px 30px #0009}.jk-header{background:var(--header-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.jk-header-left{flex-direction:column;gap:2px;display:flex}.site-title-row{align-items:center;gap:7px;display:flex}.header-icon{width:18px;height:18px;stroke:var(--cyan);filter:drop-shadow(0 0 6px #00d2ff80)}.jk-header h2{color:var(--cyan);letter-spacing:.5px;margin:0;font-size:1.15rem}.sub-site-info{color:#64748b;font-family:monospace;font-size:.72rem}.jk-header-right{flex-direction:column;align-items:flex-end;gap:5px;display:flex}.jk-timer{color:#94a3b8;font-family:monospace;font-size:.78rem}.battery-badge{letter-spacing:.5px;color:var(--cyan);background:#00d2ff29;border:1px solid #00d2ff66;border-radius:20px;align-items:center;gap:6px;padding:3px 9px;font-family:monospace;font-size:.75rem;font-weight:700;display:inline-flex}.pulse-dot{background-color:var(--cyan);width:7px;height:7px;box-shadow:0 0 8px var(--cyan);border-radius:50%;animation:1.8s infinite pulse-cyan;display:inline-block}@keyframes pulse-cyan{0%{opacity:.7;transform:scale(.9)}50%{opacity:1;box-shadow:0 0 10px var(--cyan);transform:scale(1.3)}to{opacity:.7;transform:scale(.9)}}.nav-tabs{border-bottom:2px solid var(--border);background:#111a29;grid-template-columns:repeat(3,1fr);display:grid}.nav-tab{color:#94a3b8;white-space:nowrap;border-bottom:2px solid #0000;justify-content:center;align-items:center;gap:6px;padding:10px 6px;font-size:.74rem;font-weight:700;text-decoration:none;transition:all .25s;display:flex}.nav-tab:hover{color:var(--cyan);background:#00d2ff0d}.nav-tab.active{color:var(--cyan);border-bottom:2px solid var(--cyan);background:#172438}.date-banner{border-bottom:1px solid var(--border);background:linear-gradient(90deg,#00d2ff1a 0%,#152236 60%,#00e67614 100%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.date-info{color:#f1f5f9;align-items:center;gap:7px;font-size:.82rem;font-weight:700;display:flex}.date-info svg{stroke:var(--cyan)}.reset-badge{color:#94a3b8;background:#94a3b81f;border:1px solid #94a3b833;border-radius:4px;padding:3px 8px;font-family:monospace;font-size:.7rem;font-weight:600}.section-title{color:var(--cyan);letter-spacing:.5px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#18253a;justify-content:center;align-items:center;gap:7px;padding:10px 0;font-size:.83rem;font-weight:700;display:flex}.section-icon{width:14px;height:14px;stroke:var(--cyan)}.table-container{background:#101928;width:100%;overflow-x:auto}.daily-table{border-collapse:collapse;text-align:left;width:100%}.daily-table th{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);white-space:nowrap;background:#142033;padding:10px 14px;font-size:.72rem;font-weight:700}.daily-table td{vertical-align:middle;border-bottom:1px solid #23334d80;padding:10px 14px;font-size:.82rem}.daily-table tbody tr:nth-child(2n){background:#ffffff04}.daily-table tbody tr:hover{background:#00d2ff09}.loading-td{font-family:monospace;text-align:center!important;color:#64748b!important;padding:24px!important}.param-col{flex-direction:column;gap:2px;display:flex}.param-title{color:#e2e8f0;font-size:.82rem;font-weight:700}.param-sub{color:#64748b;font-family:monospace;font-size:.68rem}.val-box{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.val-min{color:var(--blue-text);white-space:nowrap;font-family:monospace;font-size:.94rem;font-weight:800}.val-max{color:var(--green-text);white-space:nowrap;font-family:monospace;font-size:.94rem;font-weight:800}.val-danger{color:var(--red-text)!important}.time-tag{color:#94a3b8;white-space:nowrap;background:#94a3b81f;border:1px solid #ffffff0d;border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.65rem}.spread-val{color:#cbd5e1;white-space:nowrap;font-family:monospace;font-size:.85rem;font-weight:700}.cell-badge{color:var(--cyan);background:#00d2ff1f;border:1px solid #00d2ff40;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.74rem;font-weight:800;display:inline-block}.jk-footer{border-top:1px solid var(--border);text-align:center;background:#0f1623;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:12px 16px;display:flex}.footer-credits{color:#94a3b8;letter-spacing:.2px;font-size:.74rem}.brand-text{color:var(--cyan);font-weight:700}.author-text{color:#f1f5f9;font-weight:700}.footer-meta{color:#64748b;justify-content:center;align-items:center;gap:6px;font-family:monospace;font-size:.68rem;display:flex}@media (width<=480px){body{padding:6px 4px}#jk-app{border-radius:10px}.jk-header{padding:10px 12px}.jk-header h2{font-size:.98rem}.sub-site-info{font-size:.67rem}.date-banner{gap:6px;padding:8px 10px}.date-info{font-size:.75rem}.reset-badge{font-size:.65rem}.daily-table th{padding:8px;font-size:.67rem}.daily-table td{padding:8px;font-size:.76rem}.param-title{font-size:.75rem}.param-sub{font-size:.62rem}.val-min,.val-max{font-size:.84rem}.time-tag{padding:1px 4px;font-size:.6rem}.spread-val{font-size:.78rem}.jk-footer{gap:4px;padding:10px}.footer-credits{font-size:.68rem}.footer-meta{font-size:.62rem}}.jk-date-picker{color:#f1f5f9;cursor:pointer;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:0 0;border:none;outline:none;font-family:inherit;font-size:.82rem;font-weight:700}.jk-date-picker:disabled{opacity:.6;cursor:not-allowed}.jk-timer.historic-mode{color:#eab308;background-color:#eab30833;border-color:#eab30880}:root{--bg:#090e17;--card-bg:#131c2b;--card-inner:#0d1522;--header-bg:#1c273a;--border:#23334d;--text:#e2e8f0;--text-dim:#94a3b8;--cyan:#00d2ff;--cyan-glow:#00d2ff40;--green:#00e676;--green-glow:#00e67640;--red:#f87171;--amber:#fbbf24;--radius-lg:14px;--radius-md:8px;--radius-sm:6px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg);color:var(--text);flex-direction:column;align-items:center;min-height:100vh;padding:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,monospace;display:flex}#cctv-app{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:1400px;display:flex;overflow:hidden;box-shadow:0 12px 40px #000000b3}.app-header{background:var(--header-bg);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.header-left{align-items:center;display:flex}.brand-title-wrap{align-items:center;gap:10px;display:flex}.brand-title-wrap h2{color:var(--cyan);letter-spacing:.5px;font-size:1.25rem;font-weight:700}.site-sub{color:var(--text-dim);margin-top:2px;font-family:monospace;font-size:.75rem}.pulse{background:var(--green);width:10px;height:10px;box-shadow:0 0 10px var(--green);border-radius:50%;animation:2s cubic-bezier(.4,0,.6,1) infinite pulse-ring;display:inline-block}.header-center{align-items:center;display:flex}.nav-links{border:1px solid var(--border);background:#0d1522bf;border-radius:30px;gap:4px;padding:3px;display:flex}.nav-btn{color:var(--text-dim);border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .25s;display:flex}.nav-btn:hover{color:var(--text);background:#ffffff0d}.nav-btn.active{background:var(--cyan);color:#090e17;box-shadow:0 2px 10px var(--cyan-glow);font-weight:700}.header-right{align-items:center;gap:12px;display:flex}.status-badge{color:var(--amber);background:#fbbf2426;border:1px solid #fbbf2459;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-family:monospace;font-size:.75rem;font-weight:700;transition:all .3s;display:inline-flex}.status-badge.live{color:var(--green);box-shadow:0 0 10px var(--green-glow);background:#00e67626;border-color:#00e67666}.status-badge.offline{color:var(--red);background:#f8717126;border-color:#f8717166}.status-indicator{background:currentColor;border-radius:50%;width:6px;height:6px}.clock-display{color:var(--text-dim);border-radius:var(--radius-sm);background:#0000004d;border:1px solid #ffffff0d;padding:5px 10px;font-family:monospace;font-size:.85rem}.icon-btn{border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0f;padding:6px 10px;font-size:.9rem;transition:all .2s}.icon-btn:hover{border-color:var(--cyan);background:#ffffff1f}.toolbar{border-bottom:1px solid var(--border);z-index:50;background:#101826;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;display:flex;position:relative}.tool-group{align-items:center;gap:8px;display:flex}.tool-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem;font-weight:600}.segmented-control{border:1px solid var(--border);border-radius:var(--radius-sm);background:#00000059;gap:2px;padding:2px;display:flex}.seg-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:5px 10px;font-size:.78rem;font-weight:600;transition:all .2s;display:flex}.seg-btn:hover{color:var(--text);background:#ffffff0d}.seg-btn.active{color:var(--cyan);background:#1f2d44;box-shadow:0 1px 4px #0000004d}.tool-action-btn{border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;background:#182436;align-items:center;gap:5px;padding:5px 12px;font-size:.78rem;font-weight:600;transition:all .2s;display:flex}.tool-action-btn:hover{border-color:var(--cyan);color:var(--cyan)}.camera-stage{background:var(--bg);flex:1;gap:16px;min-height:580px;padding:16px;display:grid}.camera-stage.layout-grid,.camera-stage.grid-view{grid-template-columns:repeat(2,1fr)}.camera-stage.layout-single .camera-card,.camera-stage.single-view .camera-card{display:none!important}.camera-stage.layout-single .camera-card.active-focus,.camera-stage.layout-single .camera-card.active-cam,.camera-stage.single-view .camera-card.active-focus,.camera-stage.single-view .camera-card.active-cam{grid-column:1/-1;width:100%;max-width:1080px;margin:0 auto;display:flex!important}.camera-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;transition:border-color .2s,transform .2s;display:flex;overflow:hidden;box-shadow:0 4px 18px #0006}.camera-card:hover{border-color:#00d2ff66}.camera-header{border-bottom:1px solid var(--border);background:#141f30;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.camera-info{align-items:center;gap:8px;display:flex}.cam-dot{background:var(--text-dim);border-radius:50%;width:7px;height:7px}.cam-dot.live{background:var(--green);box-shadow:0 0 6px var(--green)}.cam-name{color:#f1f5f9;letter-spacing:.3px;font-size:.85rem;font-weight:700}.cam-ip-badge{color:#64748b;background:#00000040;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.7rem}.camera-actions{align-items:center;gap:6px;display:flex}.badge-res{color:var(--cyan);background:#00d2ff26;border:1px solid #00d2ff4d;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.68rem;font-weight:700}.cam-icon-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:.85rem;transition:all .2s}.cam-icon-btn:hover{color:var(--text);background:#ffffff14}.video-container{aspect-ratio:16/9;background:#060a10;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}video,video-stream{width:100%;height:100%;display:block;position:absolute;inset:0}video,video-stream video{-o-object-fit:contain;object-fit:contain;background:#000;width:100%;height:100%;display:block}.mjpeg-feed{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.video-overlay{pointer-events:none;z-index:5;justify-content:space-between;align-items:center;display:flex;position:absolute;top:10px;left:10px;right:10px}.overlay-badge{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);letter-spacing:.5px;background:#000000a6;border:1px solid #ffffff1a;border-radius:4px;padding:3px 8px;font-family:monospace;font-size:.72rem;font-weight:700}.overlay-badge.status{color:var(--green);border-color:#00e6764d}.loading-state,.error-state{z-index:10;text-align:center;background:#060a10e6;flex-direction:column;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.spinner{border:3px solid #00d2ff26;border-top-color:var(--cyan);border-radius:50%;width:32px;height:32px;margin-bottom:10px;animation:.8s linear infinite spin}.loading-text{color:var(--text-dim);font-family:monospace;font-size:.8rem}.error-icon{margin-bottom:6px;font-size:1.8rem}.error-msg{color:var(--red);margin-bottom:10px;font-size:.82rem;font-weight:500}.retry-btn{color:var(--cyan);cursor:pointer;background:#00d2ff26;border:1px solid #00d2ff66;border-radius:4px;padding:5px 12px;font-size:.76rem;font-weight:600;transition:all .2s}.retry-btn:hover{background:var(--cyan);color:#090e17}.hidden{display:none!important}.app-footer{background:var(--header-bg);border-top:1px solid var(--border);color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px;font-size:.78rem;display:flex}.footer-credits .brand-text{color:var(--cyan);font-weight:600}.footer-credits .author-text{color:#f1f5f9;font-weight:600}.footer-meta{color:#64748b;align-items:center;gap:6px;font-family:monospace;font-size:.74rem;display:flex}.meta-sep{color:#334155}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:520px;overflow:hidden;box-shadow:0 16px 40px #000c}.modal-header{background:var(--header-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-header h3{color:var(--cyan);font-size:1.05rem}.modal-close-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1}.modal-close-btn:hover{color:#fff}.modal-body{padding:18px}.modal-desc{color:var(--text-dim);margin-bottom:16px;font-size:.82rem;line-height:1.5}.form-group{margin-bottom:16px}.form-group label{color:var(--text);margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.form-input{background:var(--card-inner);border:1px solid var(--border);color:#fff;border-radius:var(--radius-sm);outline:none;width:100%;padding:10px 12px;font-family:monospace;font-size:.85rem;transition:border-color .2s}.form-input:focus{border-color:var(--cyan);box-shadow:0 0 8px var(--cyan-glow)}.form-hint{color:#64748b;margin-top:6px;font-size:.72rem;line-height:1.5;display:block}.channel-map-list{background:var(--card-inner);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-family:monospace;font-size:.78rem}.channel-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;padding:4px 0;display:flex}.channel-row:last-child{border-bottom:none}.channel-row code{color:var(--cyan)}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 16px;font-size:.82rem;font-weight:600;transition:all .2s}.btn-secondary{color:var(--text);border:1px solid var(--border);background:#ffffff14}.btn-secondary:hover{background:#ffffff26}.btn-primary{background:var(--cyan);color:#090e17;box-shadow:0 2px 10px var(--cyan-glow);font-weight:700}.btn-primary:hover{background:#22dbff}@media (width<=900px){.camera-stage.layout-grid{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:stretch}.header-left,.header-center,.header-right{justify-content:space-between}.toolbar{flex-direction:column;align-items:stretch}.tool-group-right{justify-content:space-between}}.pin-card{text-align:center;max-width:380px;padding:30px 24px}.pin-icon-wrap{width:60px;height:60px;box-shadow:0 0 20px var(--cyan-glow);background:#00d2ff1a;border:1px solid #00d2ff4d;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:1.8rem;display:flex}.pin-title{color:#fff;margin-bottom:6px;font-size:1.2rem}.pin-desc{color:var(--text-dim);margin-bottom:22px;font-size:.82rem}.pin-input-group{justify-content:center;gap:12px;margin-bottom:16px;display:flex}.pin-digit{background:var(--card-inner);border:2px solid var(--border);border-radius:var(--radius-md);width:52px;height:58px;color:var(--cyan);text-align:center;outline:none;font-family:monospace;font-size:1.8rem;font-weight:700;transition:all .2s}.pin-digit:focus{border-color:var(--cyan);box-shadow:0 0 12px var(--cyan-glow);background:#00d2ff0d}.pin-error{color:var(--red);min-height:18px;margin-bottom:14px;font-size:.8rem}.pin-remember-wrap{color:var(--text-dim);cursor:pointer;justify-content:center;align-items:center;gap:6px;margin-bottom:20px;font-size:.8rem;display:flex}.pin-remember-wrap input{accent-color:var(--cyan);cursor:pointer}.pin-submit-btn{width:100%;padding:12px;font-size:.95rem}.pin-hint{color:#64748b;margin-top:16px;font-size:.72rem}.pin-hint code{color:var(--cyan);background:#0006;border-radius:4px;padding:2px 6px}.idle-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:900;background:#090e17e0;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.idle-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:420px;padding:32px 28px;box-shadow:0 16px 40px #000000e6}.idle-icon{margin-bottom:12px;font-size:2.5rem}.idle-card h3{color:#fff;margin-bottom:8px;font-size:1.25rem}.idle-card p{color:var(--text-dim);margin-bottom:22px;font-size:.85rem;line-height:1.5}.idle-card .btn{width:100%;padding:12px;font-size:.95rem}.pin-shake{animation:.4s ease-in-out pinShake}
