/* L27 demand and supply report */
.demand-page{display:grid;gap:12px;min-width:0}.demand-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.demand-summary>div{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;min-width:0}.demand-summary small{display:block;color:var(--mut);font-size:11px}.demand-summary b{display:block;color:var(--navy);font:700 25px 'Josefin Sans','Source Sans 3',sans-serif;margin-top:5px;font-variant-numeric:tabular-nums}.demand-section{min-width:0}.demand-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.demand-heading h2{font-size:17px;color:var(--navy);margin:0}.demand-heading p{font-size:12px;color:var(--mut);margin:4px 0 0;line-height:1.4}.demand-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.demand-matrix{border-collapse:separate;border-spacing:0;min-width:700px;width:100%;font-size:11px}.demand-matrix th,.demand-matrix td{padding:7px;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:middle}.demand-matrix thead th{background:#f7f9fc;color:var(--mut);position:sticky;top:0;z-index:2}.demand-matrix th:first-child{position:sticky;left:0;text-align:left;background:#f7f9fc;z-index:3;min-width:105px}.demand-matrix td{min-width:78px;background:#fff}.demand-matrix td b,.demand-matrix td span{display:block;font-size:13px;font-variant-numeric:tabular-nums}.demand-matrix td small{display:block;font-size:9px;color:var(--mut)}.demand-matrix td em{display:block;font-style:normal;font-size:10px;font-weight:700;margin-top:3px;color:var(--mut)}.demand-matrix td.demand-gap{background:#fff5e7}.demand-matrix td.demand-gap em{color:#995c16}.demand-matrix td.demand-surplus{background:#edf7f1}.demand-matrix td.demand-surplus em{color:#26734b}.demand-bands-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--mut);margin-bottom:4px}.demand-bands-legend span{display:flex;align-items:center;gap:6px}.demand-bands-legend i{width:9px;height:9px;border-radius:2px;display:inline-block}.legend-demand{background:#c9a16d}.legend-supply{background:#294568}.demand-chart-wrap{overflow-x:auto}.demand-chart{display:block;min-width:480px;max-width:100%;height:auto}.demand-bar.lead-demand{fill:#c9a16d}.demand-bar.unit-supply{fill:#294568}.demand-value{font:11px 'Source Sans 3',sans-serif;fill:var(--ink);text-anchor:middle;font-variant-numeric:tabular-nums}.demand-band-label{font:10px 'Source Sans 3',sans-serif;fill:var(--mut);text-anchor:middle}.demand-axis{stroke:var(--line);stroke-width:1}.demand-bar{transform-box:fill-box;transform-origin:center bottom;animation:demandGrow .45s ease both}@keyframes demandGrow{from{transform:scaleY(0);opacity:.4}to{transform:scaleY(1);opacity:1}}.demand-band-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;margin-top:10px}.demand-band-form label{grid-column:1/-1;font-size:12px;color:var(--mut)}.demand-band-form input{min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px;font:13px 'Source Sans 3',sans-serif}.demand-band-form small{grid-column:1/-1;font-size:11px;color:var(--mut)}.unmet-list{display:grid;gap:6px}.unmet-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--ink)}.unmet-row b,.unmet-row small{display:block}.unmet-row small{color:var(--mut);font-size:11px;margin-top:2px}.unmet-row strong{font-variant-numeric:tabular-nums;font-size:17px;color:var(--navy)}.unmet-row>span:last-child{font-size:11px;color:var(--blue);white-space:nowrap}.demand-empty,.demand-footnote{color:var(--mut);font-size:12px}.demand-footnote{margin:0}@media(max-width:560px){.demand-summary{gap:6px}.demand-summary>div{padding:9px}.demand-summary small{font-size:10px}.demand-summary b{font-size:21px}.demand-band-form{grid-template-columns:1fr}.demand-band-form label,.demand-band-form small{grid-column:1}.unmet-row{gap:7px;padding:9px}.unmet-row>span:last-child{font-size:10px}}@media(prefers-reduced-motion:reduce){.demand-bar{animation:none!important}}
