#battery-chart { overflow-x: auto; }
#battery-chart svg { display: block; width: 100%; min-width: 700px; height: auto; }
#battery-chart text { fill: currentColor; font: 15px sans-serif; }
.battery-grid { stroke: #d1d5db; stroke-width: 1; }
.battery-line { fill: none; stroke: #15803d; stroke-width: 3; }
.battery-table { overflow-x: auto; }
.battery-table .battery-best-cost > td { background-color: #dcfce7; }
.battery-table .battery-best-cost > td:last-child { font-weight: bold; }
.battery-scenarios .kw-option:focus-visible { outline: 3px solid var(--kw-blue); outline-offset: 2px; }
.battery-scenarios .kw-option[aria-pressed="true"] { border-color: var(--kw-blue); background-color: var(--kw-blue-tint); box-shadow: 0 0 0 1px var(--kw-blue); }
.battery-app { min-height: 100vh; }
.battery-spinner {
    fill: none;
    stroke: var(--kw-blue);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 20 56;
    transform-box: fill-box;
    transform-origin: center;
    animation: battery-spin 0.8s linear infinite;
}
@keyframes battery-spin {
    to { transform: rotate(360deg); }
}
