/* -- BATTERY CARDS ------------------------------------------------------------ */
.bat-card{background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:.85rem;backdrop-filter:blur(8px);transition:border-color .7s ease, box-shadow .7s ease}
.bat-card.charging   {box-shadow:0 0 14px rgba(74,222,128,.25)}
.bat-card.discharging{box-shadow:0 0 14px rgba(248,113,113,.25)}
.bat-card.idle       {box-shadow:none}
.bat-card.sleep      {box-shadow:none;opacity:.75}
.bat-card.charging   {border-color:var(--bat-chg);border-width:1.5px}
.bat-card.discharging{border-color:var(--bat-dis);border-width:1.5px}
.bat-card.idle       {border-color:rgba(100,120,180,0.45);border-width:1.5px}
.bat-card.sleep      {border-color:rgba(70,85,130,0.35);border-width:1.5px}
.bat-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:.55rem}
.bat-name{font-weight:700;font-size:.9rem}
.bat-st{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;padding:.18rem .48rem;border-radius:999px}
.bat-st.charge    {background:rgba(167,139,250,.18);color:var(--bat-chg)}
.bat-st.discharge {background:rgba(34,211,238,.18); color:var(--bat-dis)}
.bat-st.standby   {background:rgba(120,130,160,.12);color:var(--txt2)}
.bat-st.sleep     {background:rgba(100,110,140,.1); color:var(--txt2)}
.bat-st.backup    {background:rgba(251,191,36,.18); color:var(--solar)}
.soc-bar{position:relative;height:16px;background:var(--line-idle);border-radius:8px;overflow:hidden;margin-bottom:.5rem}
.soc-fill{position:absolute;top:0;left:0;height:100%;border-radius:8px;transition:width .8s,background .3s}
.soc-pct{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-family:'Roboto Mono',monospace;font-size:.68rem;font-weight:600;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.bat-met{display:grid;grid-template-columns:1fr 1fr;gap:.28rem .5rem}
.bat-met .k{font-size:.68rem;color:var(--txt2)}
.bat-met .v{font-family:'Roboto Mono',monospace;font-weight:600;font-size:.8rem}
/* -- SOLAR DETAIL CARDS ------------------------------------------------------- */
.pnl-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-top:.55rem}
.pnl-cell{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;padding:.4rem .5rem}
.pnl-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.18rem}
.pnl-lbl{font-size:.64rem;color:var(--txt2);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.pnl-irr{font-size:.64rem;font-family:'Roboto Mono',monospace;font-weight:600}
.pnl-pow{font-family:'Roboto Mono',monospace;font-size:.82rem;font-weight:700;color:var(--solar);margin:.1rem 0 .08rem}
.pnl-yd{font-size:.63rem;color:var(--txt2)}
.sol-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--border);font-size:.7rem;color:var(--txt2)}
.sol-footer .sv{font-family:'Roboto Mono',monospace;font-weight:600;color:var(--txt)}
/* -- STALE DATA --------------------------------------------------------------- */
.bat-card-stale { border-color:#f59e0b !important; opacity:.6 }
/* -- BATTERY FILL ANIMATION --------------------------------------------------- */
.bat-anim-chg{ animation:bat-chg-pulse 1.8s ease-in-out infinite }
.bat-anim-dis{ animation:bat-dis-pulse 1.0s ease-in-out infinite }
/* -- SOLAR PRODUCING STATE ---------------------------------------------------- */
.bat-card.producing{border-color:var(--solar);border-width:1.5px;box-shadow:0 0 14px rgba(250,204,21,.20)}
