/* Topic-specific layouts only; shared components live in components.css. */
.demand-inner{display:flex;align-items:center;justify-content:space-between;gap:0;padding:4px 0;width:100%;max-width:720px;margin:0 auto}
.demand-col{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center}
.demand-operator{font-family:var(--font-head);font-size:20px;font-weight:700;color:#9ca3af;flex-shrink:0;padding:0 4px;line-height:1;align-self:flex-end;padding-bottom:18px}
.demand-row-label{font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:5px}
.demand-row-val{font-family:var(--font-head);font-size:26px;font-weight:800;letter-spacing:-.04em;color:var(--text-primary);line-height:1;margin-bottom:3px}
.demand-row-sub{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);line-height:1.4}
.demand-gw-inline{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--text-muted);letter-spacing:0}
.kpi-ts{font-family:var(--font-mono);font-size:12.5px;color:var(--text-muted);margin-top:3px;letter-spacing:.01em;opacity:.8}
.hist-tab{font-family:var(--font-head);font-size:12px;font-weight:700;padding:8px 20px;border:none;background:none;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;letter-spacing:.03em}
.hist-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.hist-tab:hover:not(.active){color:var(--text-primary)}
.hist-legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}
.hist-legend-lbl{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}
.hist-stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;position:relative;overflow:hidden}
.hist-stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-mid))}
.hist-stat-label{font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.hist-stat-val{font-family:var(--font-head);font-size:24px;font-weight:800;letter-spacing:-.03em;color:var(--text-primary);line-height:1;margin-bottom:3px}
.hist-stat-sub{font-family:var(--font-mono);font-size:12.5px;color:var(--text-muted)}
.mix-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}
.mix-head{padding:16px 20px 14px;border-bottom:1px solid var(--border-light)}
.split-bar{height:10px;border-radius:5px;overflow:hidden;display:flex;margin:10px 0 6px}
.split-seg{height:100%;transition:width .8s cubic-bezier(.4,0,.2,1)}
.split-legend{display:flex;gap:12px;flex-wrap:wrap}
.split-item{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:12.5px;color:var(--text-muted)}
.split-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.mix-body{display:flex;align-items:stretch}
.mix-donut-wrap{padding:20px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border-light);flex-shrink:0;}
.mix-categories{padding:14px 20px;display:flex;flex-direction:column;gap:14px}
.cat-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.cat-label{font-family:var(--font-head);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.cat-pct{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-left:auto}
.fuel-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.fuel-name{font-family:var(--font-head);font-size:12.5px;font-weight:600;color:var(--text-secondary);width:108px;flex-shrink:0}
.fuel-track{flex:1;background:var(--off-white);border-radius:3px;height:13px;overflow:hidden}
.fuel-fill{height:100%;border-radius:3px;display:flex;align-items:center;padding-left:5px;transition:width .8s cubic-bezier(.4,0,.2,1);min-width:2px}
.fuel-pct-txt{font-family:var(--font-mono);font-size:12px;color:#fff;font-weight:500;white-space:nowrap}
.fuel-gw{font-family:var(--font-mono);font-size:12.5px;color:var(--text-muted);width:44px;flex-shrink:0;text-align:right}
.int-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-family:var(--font-head);font-size:12.5px;font-weight:700}
.int-badge.very-low{background:#dcfce7;color:#139c45}
.int-badge.low{background:#d1fae5;color:#16a34a}
.int-badge.moderate{background:#fef3c7;color:#b45309}
.int-badge.high{background:#fee2e2;color:#dc2626}
.int-badge.very-high{background:#fce7f3;color:#be185d}
.intercon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.intercon-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:12px 14px}
.intercon-name{font-family:var(--font-head);font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.intercon-val{font-family:var(--font-head);font-size:19px;font-weight:800;letter-spacing:-.02em}
.intercon-val.import{color:var(--green)}
.intercon-val.export{color:var(--red)}
.intercon-sub{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-top:2px}
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.price-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 22px;position:relative;overflow:hidden}
.price-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.price-card.elec::before{background:linear-gradient(90deg,var(--accent),var(--accent-mid))}
.price-card.gas::before{background:linear-gradient(90deg,#b45309,#f59e0b)}
.price-label{font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}
.price-main{font-family:var(--font-head);font-size:34px;font-weight:800;letter-spacing:-.04em;color:var(--text-primary);line-height:1}
.price-unit{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-left:3px}
.price-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-light);display:grid;grid-template-columns:1fr 1fr;gap:8px}
.price-detail-item span:first-child{font-family:var(--font-head);font-size:12.5px;font-weight:600;color:var(--text-muted);display:block;text-transform:uppercase;letter-spacing:.05em}
.price-detail-item span:last-child{font-family:var(--font-mono);font-size:12.5px;color:var(--text-primary)}
.cap-headline{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px 22px;margin-bottom:20px;position:relative;overflow:hidden}
.cap-headline::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-mid))}
.cap-headline-label{font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.cap-headline-value{font-family:var(--font-head);font-size:38px;font-weight:800;letter-spacing:-.04em;color:var(--text-primary);line-height:1}
.cap-headline-unit{font-family:var(--font-mono);font-size:13px;color:var(--text-muted);margin-left:4px;font-weight:400}
.cap-headline-meta{display:flex;gap:26px;flex-wrap:wrap}
.cap-headline-item span:first-child{font-family:var(--font-head);font-size:12.5px;font-weight:600;color:var(--text-muted);display:block;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.cap-headline-item span:last-child{font-family:var(--font-mono);font-size:13px;color:var(--text-primary)}
.cap-footnote{margin-top:12px;font-size:12px;color:var(--text-muted);line-height:1.55}
.fuel-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:12px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s}
.fuel-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.fuel-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-md) var(--radius-md) 0 0}
.fuel-card-icon{font-size:20px;line-height:1;margin-bottom:2px}
.fuel-card-name{font-family:var(--font-head);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}
.fuel-card-gw{font-family:var(--font-head);font-size:19px;font-weight:800;letter-spacing:-.03em;color:var(--text-primary);line-height:1}
.fuel-card-unit{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-top:-1px}
.fuel-card-pct{font-family:var(--font-mono);font-size:12px;font-weight:500;margin-top:3px}
@media(max-width:960px){.price-grid,.price-detail{grid-template-columns:1fr}
.mix-body{flex-direction:column}
.mix-donut-wrap{border-right:none;border-bottom:1px solid var(--border-light)}
#mix-categories{flex-direction:column !important;border-left:none !important}
.intercon-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.demand-row-val{font-size:21px}
.demand-operator{font-size:16px;padding-bottom:15px}}
