/* Load curve: one real day of grid demand. Navy block like the other panels;
   colors are theme tokens (wind = mint, solar = gold, net load = coral). */
.lc { margin-top: clamp(24px, 4vw, 44px); }
.lc-stage {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 270px); gap: clamp(16px, 2.4vw, 32px); align-items: start;
  padding: clamp(14px, 2.2vw, 26px); border-radius: 18px; background: var(--section-dark); color: var(--on-dark);
}
.lc-chart-col { min-width: 0; }
.lc-top { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.lc-clock { margin: 0; font: 500 clamp(30px, 4vw, 48px)/1 var(--mono); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.lc-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; padding: 0; list-style: none; color: var(--on-dark-muted); font: 500 12px var(--mono); letter-spacing: 0.06em; text-transform: uppercase; }
.lc-legend li { display: inline-flex; align-items: center; gap: 6px; }
.lc-legend i { display: inline-block; width: 12px; height: 8px; border-radius: 2px; }
.k-gas { background: color-mix(in srgb, var(--on-dark) 30%, var(--section-dark)); }
.k-wind { background: var(--mint); }
.k-solar { background: var(--gold); }
.k-load { height: 0 !important; border-top: 2px solid var(--on-dark); border-radius: 0 !important; }
.k-net { height: 0 !important; border-top: 2px dashed var(--coral); border-radius: 0 !important; }

.lc-svg { display: block; width: 100%; height: auto; margin-top: 10px; }
.lc-grid { stroke: color-mix(in srgb, var(--on-dark) 14%, transparent); stroke-width: 1; }
.lc-tick { fill: var(--on-dark-muted); font: 500 12px var(--mono); }
.lc-a-gas { fill: color-mix(in srgb, var(--on-dark) 30%, var(--section-dark)); }
.lc-a-wind { fill: var(--mint); }
.lc-a-solar { fill: var(--gold); }
.lc-l-load { fill: none; stroke: var(--on-dark); stroke-width: 2; stroke-linejoin: round; }
.lc-l-net { fill: none; stroke: var(--coral); stroke-width: 2.2; stroke-dasharray: 6 5; stroke-linejoin: round; }
.lc-cursor line { stroke: color-mix(in srgb, var(--on-dark) 45%, transparent); stroke-width: 1; }
.lc-cursor .d-load { fill: var(--on-dark); }
.lc-cursor .d-net { fill: var(--coral); }

.lc-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin-top: 12px; }
.lc-slider { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; font: 600 12px var(--sans); }
.lc-slider span { grid-row: 1; grid-column: 1; color: var(--on-dark-soft); }
.lc-slider output { grid-row: 1; grid-column: 2; color: var(--on-dark); font: 500 12px var(--mono); font-variant-numeric: tabular-nums; }
.lc-slider input { grid-row: 2; grid-column: 1 / -1; width: 100%; min-height: 44px; margin: 0; accent-color: var(--coral); cursor: pointer; }
.lc-slider input:focus-visible { outline: 2px solid var(--coral); outline-offset: 2px; }
.lc-cases { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; }
.lc-cases > span { color: var(--on-dark-muted); font: 500 12px var(--mono); letter-spacing: 0.08em; text-transform: uppercase; }
.lc-case { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid color-mix(in srgb, var(--on-dark) 30%, transparent); border-radius: 999px; color: var(--on-dark-soft); font: 700 12px var(--sans); letter-spacing: 0.03em; text-decoration: none; }
.lc-case:hover { color: var(--on-dark); border-color: var(--on-dark); }
.lc-case:focus-visible { outline: 2px solid var(--coral); outline-offset: 2px; }
.lc-source { margin: 8px 0 0; color: var(--on-dark-muted); font-size: 12px; line-height: 1.55; }
.lc-source a { color: var(--on-dark-soft); text-decoration: underline; text-underline-offset: 3px; }

.lc-readouts { display: grid; gap: 10px; margin: 0; }
.lc-readouts > div { padding: 12px 14px; border: 1px solid color-mix(in srgb, var(--on-dark) 14%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--on-dark) 4%, transparent); }
.lc-readouts dt { color: var(--on-dark-muted); font: 500 12px var(--mono); letter-spacing: 0.1em; text-transform: uppercase; }
.lc-readouts dd { margin: 5px 0 0; font-size: clamp(20px, 2vw, 26px); font-weight: 700; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.lc-readouts dd small { display: block; margin-top: 2px; color: var(--on-dark-muted); font: 500 12px var(--mono); letter-spacing: 0.04em; }
#r-net { color: var(--coral); }

/* Pinned: the scroll drives the clock, so the time slider isn't needed. */
.lc.is-pinned .lc-time-slider { display: none; }
.lc.is-pinned .lc-controls { grid-template-columns: minmax(0, 1fr); }
.lc.is-pinned .lc-stage { min-height: calc(100vh - var(--hdr, 82px) - 24px); align-items: center; }

@media (max-width: 899px) {
  .lc-stage { grid-template-columns: minmax(0, 1fr); }
  .lc-readouts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lc-controls { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 899px) { .lc-tick { font-size: 15px; } }
