.generation-detail { --gd-accent:#159487; }
.gd-tech-thermal { --gd-accent:#cc7b58; }.gd-tech-solar { --gd-accent:#d4a42e; }.gd-tech-wind { --gd-accent:#559bad; }.gd-tech-cogen { --gd-accent:#9676b0; }.gd-tech-other { --gd-accent:#688d80; }
.gd-identity { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 14px; color:var(--rd-muted); font-size:12px; }
.gd-tech-label { border:1px solid #cbded3; padding:6px 10px; border-radius:20px; color:var(--ink); background:white; display:flex; align-items:center; gap:7px; }
.gd-tech-label i { display:inline-block; width:7px; height:7px; background:var(--gd-accent); border-radius:50%; }
.generation-detail .rd-heading h1 { font-size:clamp(32px,4vw,50px); }
.generation-detail .rd-current { grid-template-columns:minmax(0,1fr) 190px; }
.generation-detail .rd-main-value { font-size:clamp(32px,3.8vw,50px); letter-spacing:-.055em; }
.generation-detail .rd-main-value>small { font-size:19px; }
.gd-coverage { display:inline-flex; align-items:center; gap:8px; padding:7px 10px; border-radius:8px; background:#e1f0e6; color:#285c4f; font-size:12px; font-weight:700; margin:6px 0; }
.gd-coverage.partial { background:#fcf0d7; color:#785916; }.gd-coverage.empty { background:#eef1ef; color:#526f6d; padding:7px 10px!important; }
.gd-illustration { margin:0; color:var(--gd-accent); align-self:center; }.gd-illustration svg { display:block; width:100%; }
.gd-illustration figcaption { color:var(--rd-muted); font-size:10px; line-height:1.6; text-align:center; }
.gd-orbit-bg { fill:#e9f2eb; }.gd-orbit { stroke:#b4d1c4; }
.gd-active .gd-wind-rotor { transform-origin:116px 96px; animation:gd-turn 3.8s ease-in-out; }
.gd-active .gd-hydro-rotor { transform-origin:160px 151px; animation:gd-turn 3.8s ease-in-out; }
.gd-active .gd-cog-one { transform-origin:91px 133px; animation:gd-turn 3.8s ease-in-out; }
.gd-active .gd-cog-two { transform-origin:157px 145px; animation:gd-turn 3.8s ease-in-out reverse; }
.gd-active .gd-sun,.gd-active .gd-flame { transform-box:fill-box; transform-origin:center; animation:gd-glow 2s ease-in-out 2; }
.gd-active .gd-heat { animation:gd-heat 2s ease-in-out 2; }.gd-active .gd-flow { animation:gd-flow 3.8s ease-out; }
.gd-active .gd-breeze,.gd-active .gd-energy { animation:gd-shine 2s ease-in-out 2; }
.gd-hour-panel { margin-bottom:18px; padding:26px; scroll-margin-top:24px; }.gd-hour-panel .panel-head { flex-wrap:wrap; }
.gd-hour-panel .panel-head>span { font-size:12px; }
.gd-hour-legend { display:flex; gap:18px; flex-wrap:wrap; color:var(--rd-muted); font-size:11px; margin:18px 0 12px; }
.gd-hour-legend i { display:inline-block; width:10px; height:10px; border-radius:2px; background:var(--gd-accent); margin-right:6px; }
.gd-hour-legend i.missing { background:repeating-linear-gradient(135deg,#dae2dc 0 2px,#fafcfb 2px 4px); border:1px solid #aabbb1; }
.gd-hours-scroll { overflow-x:auto; padding-bottom:6px; }.gd-hour-chart { display:grid; grid-template-columns:repeat(24,minmax(14px,1fr)); gap:5px; min-width:660px; }
.gd-hour { display:flex; flex-direction:column; gap:8px; padding:0; background:none; border:0; color:var(--rd-muted); font:500 10px 'DM Sans',system-ui,sans-serif; cursor:pointer; }
.gd-hour-track { display:flex; align-items:flex-end; justify-content:center; height:152px; border-radius:5px 5px 0 0; background:#f2f6f2; border-bottom:1px solid #bfd0c5; width:100%; }
.gd-hour-fill { width:100%; height:var(--height); min-height:3px; background:var(--gd-accent); border-radius:4px 4px 0 0; transform-origin:bottom; animation:gd-bar .75s ease-out both; }
.gd-hour[data-missing=true] .gd-hour-track { background:repeating-linear-gradient(135deg,#e6ece6 0 3px,#f8faf8 3px 7px); }
.gd-hour[data-zero=true] .gd-hour-fill { position:relative; height:0; min-height:0; background:none; }
.gd-hour[data-zero=true] .gd-hour-fill::after { content:'0'; position:absolute; bottom:4px; left:0; right:0; text-align:center; font-size:10px; font-weight:700; color:var(--teal); }
.gd-hour:hover .gd-hour-track,.gd-hour:focus-visible .gd-hour-track,.gd-hour[aria-pressed=true] .gd-hour-track { outline:2px solid var(--gd-accent); outline-offset:2px; }
.gd-hour-readout { display:flex; flex-wrap:wrap; gap:12px; align-items:center; min-height:55px; border-top:1px solid var(--line); margin-top:16px; padding:14px 0 0; font-size:13px; }
.gd-hour-readout strong { font-size:19px; }.gd-hour-readout small { color:var(--rd-muted); font-size:11px; }
.gd-hour-table { margin-top:16px; }.gd-hour-table summary { cursor:pointer; color:var(--teal); font-size:12px; font-weight:700; padding:8px 0; }
.generation-detail .rd-explorer { grid-template-columns:minmax(0,1fr) minmax(245px,.6fr); }
.generation-detail .rd-chart-legend .gd-partial-key { width:8px; height:8px; background:#cf9448; border-radius:50%; }
.gd-warning { padding:12px 16px; border-left:3px solid #d6a349; border-radius:0 8px 8px 0; background:#fff7e6; color:#735720; font-size:12px; line-height:1.6; }
.generation-detail .rd-stat-grid strong { font-size:23px; }
@keyframes gd-turn { to { transform:rotate(360deg); } }
@keyframes gd-glow { 50% { opacity:.65; transform:scale(.93); } }
@keyframes gd-heat { 50% { opacity:.55; transform:translateY(-6px); } }
@keyframes gd-flow { to { stroke-dashoffset:-72; } }
@keyframes gd-shine { 50% { opacity:.35; } }
@keyframes gd-bar { from { transform:scaleY(0); } to { transform:scaleY(1); } }
@media(max-width:1200px) { .generation-detail .rd-current { grid-template-columns:minmax(0,1fr) 145px; }.generation-detail .rd-main-value { font-size:36px; }.generation-detail .rd-main-value>small { font-size:15px; } }
@media(max-width:760px) { .generation-detail .rd-current { grid-template-columns:minmax(0,1fr) 170px; }.generation-detail .rd-explorer { grid-template-columns:1fr; }.generation-detail .rd-readout { border-left:0; border-top:1px solid #c6d8ce; padding:14px 0 0; } }
@media(max-width:500px) { .generation-detail .rd-current { grid-template-columns:minmax(0,1fr) 104px; }.generation-detail .rd-main-value { font-size:29px; }.generation-detail .rd-main-value>small { display:block; font-size:14px; letter-spacing:0; margin:6px 0 0; }.gd-illustration figcaption { font-size:9px; }.gd-hour-panel { padding:20px 16px; }.gd-hour-panel .panel-head { gap:10px; }.generation-detail .rd-stat-grid strong { font-size:21px; } }
@media(prefers-reduced-motion:reduce) { .generation-detail * { animation:none!important; transition:none!important; } }
