/* VPP Economics — Orchestrated VPP calculator */
.ov .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ov-bar-top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ov-preset-row { display: flex; align-items: center; gap: .75rem; margin: 0 0 var(--space-3); flex-wrap: wrap; }
.ov-preset-row .calc-label { margin: 0; }
.ov-preset-row .calc-select { max-width: 380px; }
.ov-fleet { background: var(--card, #fff); border: 1px solid var(--line); }
.ov-fleet-head, .ov-fleet-row { display: grid; grid-template-columns: minmax(0, 1fr) 96px 96px 112px; gap: .75rem; align-items: center; padding: .65rem var(--space-4); }
.ov-fleet-head { font-family: var(--font-mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mute); border-bottom: 1px solid var(--line); }
.ov-fleet-row + .ov-fleet-row { border-top: 1px solid var(--line); }
.ov-fn { display: flex; flex-direction: column; gap: .15rem; font-weight: 600; font-size: .9375rem; position: relative; padding-left: 18px; }
.ov-fn i { position: absolute; left: 0; top: .35rem; width: 10px; height: 10px; }
.ov-fn i.g-home { background: #2B6CB0; } .ov-fn i.g-biz { background: #A15F00; }
.ov-fn small { font-weight: 400; font-size: .75rem; color: var(--mute); }
.ov-fleet-row .calc-input { padding: .5rem .6rem; font-family: var(--font-mono); width: 100%; }
.ov-pill { font-size: .75rem; font-weight: 600; text-align: center; padding: .3rem .4rem; border-radius: 999px; color: var(--mute); background: var(--paper, #F7F8F6); }
.ov-pill.is-ok { background: #E3F5EC; color: #0B7F55; }
.ov-pill.is-no { background: #FDF0DD; color: #8A5000; }
.ov-step3 { margin-top: var(--space-6, 2rem); }
.ov-svc { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-bottom: var(--space-4); }
.ov-chk { display: flex; gap: .6rem; align-items: flex-start; background: var(--card, #fff); border: 1px solid var(--line); padding: .7rem .85rem; cursor: pointer; }
.ov-chk input { margin-top: .2rem; accent-color: #0B7F55; }
.ov-chk span { display: flex; flex-direction: column; gap: .1rem; }
.ov-chk b { font-size: .9375rem; }
.ov-chk small { font-size: .75rem; color: var(--mute); }
.ov-terms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.ov-rng input[type=range] { width: 100%; accent-color: #0B7F55; }
.ov-rng output { font-family: var(--font-mono); color: var(--ink); margin-left: .35rem; }
.ov-adv { margin-top: var(--space-4); }
.ov-adv .rc-adv-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ov-notes p { margin: var(--space-4) 0 0; padding: .75rem 1rem; border-left: 3px solid #A15F00; background: #FDF6EA; font-size: .875rem; line-height: 1.5; }
.ov-vs { display: flex; justify-content: space-between; gap: .75rem; font-size: .875rem; padding: .5rem 0; border-top: 1px solid rgba(232,238,236,0.14); color: rgba(232,238,236,0.8); }
.ov-vs b { font-family: var(--font-mono); color: #E8EEEC; }
.ov-vs.is-up b { color: #3DDC97; } .ov-vs.is-down b { color: #F5A524; }
.ov-flow { list-style: none; margin: .75rem 0 0; padding: .75rem 0 0; border-top: 1px solid rgba(232,238,236,0.14); display: grid; gap: .35rem; }
.ov-flow li { display: flex; justify-content: space-between; gap: .75rem; font-size: .8125rem; color: rgba(232,238,236,0.72); }
.ov-flow b { font-family: var(--font-mono); font-weight: 500; color: #E8EEEC; }
.ov-elig { font-size: .8125rem; color: rgba(232,238,236,0.8); margin: .9rem 0 0; }
.ov-elig b { color: #3DDC97; font-family: var(--font-mono); }
.ov-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: var(--space-5); }
.ov-bar { display: grid; grid-template-columns: minmax(150px, 230px) minmax(0, 1fr) 90px; gap: .75rem; align-items: center; margin: .45rem 0; }
.ov-bar-k { font-size: .875rem; }
.ov-bar-k em { font-style: normal; font-size: .6875rem; color: #8A5000; background: #FDF0DD; padding: .05rem .35rem; border-radius: 999px; margin-left: .25rem; }
.ov-bar-track { display: flex; height: 18px; background: var(--paper, #F2F4F2); overflow: hidden; }
.ov-bar-track span { display: block; height: 100%; }
.ov-bar-v { font-family: var(--font-mono); font-size: .8125rem; text-align: right; }
.ov-pair { padding: .55rem 0; border-top: 1px solid var(--line); }
.ov-pair .ov-bar-k { display: block; font-weight: 600; margin-bottom: .2rem; }
.ov-pair .ov-bar { grid-template-columns: minmax(0, 1fr) 90px; margin: .2rem 0; }
.ov-pair .ov-bar-track { height: 12px; }
.ov-legend { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; margin-top: .9rem; font-size: .8125rem; color: var(--mute); }
.ov-legend i { display: inline-block; width: 10px; height: 10px; margin-right: .4rem; vertical-align: -1px; }
@media (max-width: 860px) {
  .ov-bar-top, .ov-terms, .ov-svc, .ov-adv .rc-adv-body { grid-template-columns: 1fr; }
  .ov-tiles { grid-template-columns: 1fr 1fr; }
  .ov-fleet-head { display: none; }
  .ov-fleet-row { grid-template-columns: 1fr 1fr; padding: .8rem var(--space-4); }
  .ov-fn { grid-column: 1 / -1; }
  .ov-pill { grid-column: 1 / -1; justify-self: start; padding: .3rem .7rem; }
  .ov-fleet-row .sr { position: static; width: auto; height: auto; clip: auto; display: block; font-family: var(--font-mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--mute); margin-bottom: .2rem; }
  .ov-bar { grid-template-columns: 1fr 76px; }
  .ov-bar > .ov-bar-k { grid-column: 1 / -1; }
}
.ov .rc-detail .vpp-card { background: var(--card, #fff); border: 1px solid var(--line); padding: var(--space-5); margin-bottom: var(--space-5); }
.ov .rc-detail .vpp-card h2 { margin: 0 0 .25rem; font-size: 1.25rem; }
.ov .rc-detail .vpp-card-sub { margin: 0 0 var(--space-4); color: var(--mute); font-size: .9rem; }
.ov-chart-site-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-6); }
.ov-bar-k em.up { color: #0B7F55; background: #E3F5EC; }
.ov-bar-k em.down { color: #8A5000; background: #FDF0DD; }
#ov-chart-site { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--space-6); }
#ov-chart-site .ov-legend { grid-column: 1 / -1; }
@media (max-width: 860px) { #ov-chart-site { grid-template-columns: 1fr; } }
.rc.ov { padding-bottom: var(--space-4); } .rc.ov + * , .ov ~ .article { padding-top: var(--space-6); }
.ov-pill.is-part { background: #EAF1FB; color: #1F5A9E; }
[data-mk][hidden] { display: none !important; }
.ov-chk input:disabled + span { opacity: .55; }
#ov-chart-elig .ov-bar { grid-template-columns: minmax(150px, 230px) minmax(0, 1fr) 150px; }
@media (max-width: 720px) { #ov-chart-elig .ov-bar { grid-template-columns: 1fr 130px; } }
