.dashboard-page{padding-top:24px;padding-bottom:56px}.dashboard-page [hidden]{display:none!important}.dashboard-header{padding:20px 0 0}.dashboard-kicker{font:600 12px var(--font-interface);text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-secondary)}.dashboard-header h1{font:600 clamp(30px,3.5vw,46px)/1.08 var(--font-editorial);margin:12px 0}.dashboard-header>p:last-of-type{color:var(--color-text-secondary);font-size:17px;max-width:760px}.dashboard-section-nav{display:flex;flex-wrap:wrap;gap:12px 26px;border-top:2px solid var(--color-text);border-bottom:1px solid var(--color-border);padding:15px 0;margin-top:26px;font-size:14px;font-weight:600}.dashboard-section-nav a:hover{text-decoration:underline}.dashboard-filters{display:flex;align-items:start;flex-wrap:wrap;gap:12px;padding:20px 0 8px}.dashboard-filters label{font-size:12px;font-weight:600;display:grid;gap:6px;flex:1;min-width:130px}.dashboard-filters select,.dashboard-filters button,.dashboard-page [data-retry]{font:14px var(--font-interface);border:1px solid var(--color-border);border-radius:0;padding:9px;min-height:42px;background:var(--color-surface);color:var(--color-text);max-width:100%;width:100%}.dashboard-filters button{width:auto;background:var(--color-text);color:white;margin-top:22px;padding:9px 18px;cursor:pointer}.dashboard-filters small{font-weight:400;color:var(--color-text-secondary)}.dashboard-filter-note,.dashboard-status{font-size:12px;color:var(--color-text-secondary);margin:3px 0 10px}.dashboard-status:empty{display:none}.dashboard-section{padding-top:22px;margin-top:22px;border-top:1px solid var(--color-text);scroll-margin-top:20px}.dashboard-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.dashboard-section-heading h2{font:600 27px var(--font-editorial);margin:0}.dashboard-section-heading p{font-size:13px;color:var(--color-text-secondary);margin:0}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-overview{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);padding:20px;min-width:0}.dashboard-card h3{font:600 17px var(--font-interface);margin:0 0 5px}.dashboard-unit{font-size:12px;color:var(--color-text-secondary);margin:0 0 14px}.dashboard-metric strong{font:600 32px var(--font-interface);font-variant-numeric:tabular-nums}.dashboard-date{font-size:12px;color:var(--color-text-secondary);margin:8px 0}.dashboard-empty{font-size:14px;color:var(--color-text-secondary);padding:20px 0;line-height:1.5;margin:0}.dashboard-chart:only-child{grid-column:1/-1}.dashboard-chart .dashboard-empty{min-height:100px;display:flex;align-items:center}.dashboard-provisional{font-size:12px;color:var(--color-warning);border:1px solid currentColor;padding:2px 5px}.dashboard-error{color:var(--color-negative);font-size:14px}.dashboard-chart canvas{display:block;width:100%;touch-action:pan-y}.dashboard-tooltip{font:12px var(--font-interface);background:var(--color-surface-warm);border:1px solid var(--color-border);padding:8px;min-height:34px;margin:4px 0;overflow-wrap:anywhere}.dashboard-data{font-size:13px;border-top:1px solid var(--color-border);padding-top:10px;margin-top:12px}.dashboard-data summary,.dashboard-methodology summary{cursor:pointer;font-weight:600;min-height:28px}.dashboard-data .market-table-scroll{max-height:320px;overflow:auto}.dashboard-data table{font-variant-numeric:tabular-nums}.dashboard-methodology{border-top:2px solid var(--color-text);border-bottom:1px solid var(--color-border);margin-top:32px;padding:18px 0;font-size:14px;line-height:1.65}.dashboard-methodology p{max-width:900px}.dashboard-page :focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.dashboard-page [aria-busy=true]{opacity:.65}
@media(max-width:900px){.dashboard-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-filters label{flex:1 1 25%}}
@media(max-width:600px){.dashboard-grid{grid-template-columns:1fr}.dashboard-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-card{padding:14px}.dashboard-metric strong{font-size:26px}.dashboard-card h3{font-size:15px}.dashboard-section-heading{display:block}.dashboard-section-heading p{margin-top:5px}.dashboard-filters label{flex:1 1 42%;min-width:0}.dashboard-filters button{align-self:start}.dashboard-section-nav{gap:12px 18px}.dashboard-header h1{font-size:34px}.dashboard-page .market-breadcrumb{flex-wrap:wrap}.dashboard-overview .dashboard-empty{font-size:12px;padding:10px 0}.dashboard-overview .dashboard-unit{min-height:30px}}
/* Reader-focused hierarchy, scoped to dashboards. */
.dashboard-header{padding-top:8px}.dashboard-header h1{margin:8px 0}.dashboard-header>p:last-of-type{font-size:16px}.dashboard-section-nav{margin-top:18px;gap:10px 22px}.dashboard-filters{align-items:flex-start}.dashboard-filters>label{flex:0 1 180px}.dashboard-extra-filters{padding-top:22px;flex:1;min-width:150px}.dashboard-extra-filters summary{cursor:pointer;min-height:42px;padding:10px;border:1px solid var(--color-border);font-size:14px}.dashboard-extra-filters>div{display:flex;flex-wrap:wrap;gap:10px;padding-top:10px}.dashboard-section-heading{align-items:flex-start}.dashboard-section-heading p{max-width:480px;line-height:1.5}.dashboard-number{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-top:16px}.dashboard-number strong{font-size:30px}.dashboard-number [data-unit]{font-size:12px;color:var(--color-text-secondary)}.dashboard-overview .dashboard-unit{min-height:0}.dashboard-reading{font-size:14px;line-height:1.55;margin:12px 0;color:var(--color-text-secondary)}.dashboard-metric .dashboard-reading{font-size:12px}.dashboard-metric [data-change]{font-size:12px;margin:8px 0}.dashboard-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;line-height:1.5;margin:6px 0}.dashboard-legend>span{display:inline-flex;align-items:center;gap:7px}.dashboard-legend i{display:inline-block;width:24px;border-top:2px solid;flex-shrink:0}.dashboard-more{margin-top:16px;border-top:1px solid var(--color-border);padding-top:14px}.dashboard-more>summary{font-size:14px;cursor:pointer;min-height:32px}.dashboard-more>.dashboard-grid{margin-top:12px}.dashboard-chart:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:600px){.dashboard-page{padding-top:12px}.dashboard-header h1{font-size:28px}.dashboard-page .market-breadcrumb{display:none}.dashboard-section-nav{font-size:12px;gap:10px 16px;padding:12px 0}.dashboard-filters{gap:8px;padding-top:14px}.dashboard-filters>label{flex:1 1 42%}.dashboard-extra-filters{flex:1 1 60%;padding-top:0}.dashboard-filters button{margin-top:0}.dashboard-extra-filters>div{display:grid;grid-template-columns:1fr}.dashboard-section{margin-top:14px;padding-top:16px}.dashboard-section-heading h2{font-size:24px}.dashboard-number strong{font-size:24px}.dashboard-number{margin-top:12px}.dashboard-card h3{line-height:1.4}}

.dashboard-chart{grid-column:1/-1}.dashboard-section{scroll-margin-top:24px}
.dashboard-chart-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.dashboard-chart-row.has-history{grid-template-columns:minmax(0,1fr) minmax(0,3fr);border:1px solid var(--color-border)}.dashboard-plot{min-width:0}.has-history>.dashboard-plot{padding:16px 12px 4px;box-sizing:border-box}.dashboard-history{--signal:#526b7a;--signal-bg:#f1f5f7;min-width:0;box-sizing:border-box;padding:22px 18px;border-left:5px solid var(--signal);background:var(--signal-bg);font-size:13px;line-height:1.5;display:flex;flex-direction:column}.dashboard-history[data-tone=positive]{--signal:#00CC00;--signal-bg:#e5fae5}.dashboard-history[data-tone=warning]{--signal:#f7d51d;--signal-bg:#fffce5}.dashboard-history[data-tone=negative]{--signal:#e52b38;--signal-bg:#ffe7e9}.dashboard-history small{color:var(--color-text-secondary);font-size:11px}.dashboard-history-value{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin-top:12px}.dashboard-history-value strong{font:600 42px/1.1 var(--font-interface);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.dashboard-history-value span{font-size:12px}.dashboard-history [data-history-date]{font-size:10px;margin-top:6px}.dashboard-history-status{font-size:16px;font-weight:600;line-height:1.4;margin:20px 0 8px}.dashboard-history-status::before{content:'';display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 3px var(--color-surface);margin-right:9px;vertical-align:-1px}.dashboard-history-position{font-size:14px;margin:4px 0 18px}.dashboard-history [data-history-median]{display:block;border-top:1px solid var(--color-border);padding-top:12px;margin-top:auto}@media(max-width:800px){.dashboard-chart-row.has-history{grid-template-columns:minmax(0,1fr)}.dashboard-history{padding:18px}.dashboard-history-value strong{font-size:38px}.dashboard-history-status{margin-top:14px}.dashboard-history-position{margin-bottom:12px}.has-history>.dashboard-plot{padding:14px 8px 0}}

.dashboard-room-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;margin:12px 0;font-size:14px}.dashboard-room-controls label{display:flex;align-items:center;gap:8px}.dashboard-room-controls select,.dashboard-data button{font:inherit;padding:6px 10px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.dashboard-room-controls small{color:var(--color-text-secondary);font-size:11px}.dashboard-data [data-table-status]:empty{display:none}.dashboard-data [data-table-status]{font-size:12px}.dashboard-chart:has([data-component]){min-width:0}
.dashboard-collection{grid-column:1/-1;min-width:0}
.dashboard-collection .market-table{width:100%;margin-top:1rem;white-space:normal}
.dashboard-collection .market-table tbody th{background:transparent;color:var(--color-text);font:600 13px var(--font-interface);text-transform:none;letter-spacing:normal}
.dashboard-table-condition{font-weight:600;font-size:.85rem}
.dashboard-table-note{font-size:.8rem;line-height:1.5;opacity:.8;margin-top:1rem}
.dashboard-cell-label{display:none}
.dashboard-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:800px){
 .dashboard-collection .market-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 .dashboard-collection .market-table tbody{display:block}
 .dashboard-collection .market-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:.8rem 0;border-bottom:1px solid var(--line,#ddd);gap:.6rem}
 .dashboard-collection .market-table th,.dashboard-collection .market-table td{padding:0;border:0;min-width:0;white-space:normal;text-align:left}
 .dashboard-collection .market-table th{grid-column:1/3;align-self:center}
 .dashboard-collection .market-table td:nth-child(2){text-align:right;font-size:1.15rem;font-weight:700}
 .dashboard-collection .market-table td:nth-child(2) .dashboard-cell-label{display:inline;margin-right:.3rem}
 .dashboard-cell-label{display:block;font-size:.68rem;font-weight:400;line-height:1.3;margin-bottom:.2rem}
}
.dashboard-table-expand{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 4px}
.dashboard-table-expand>span{font-size:12px;color:var(--color-text-secondary)}
.dashboard-table-expand button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:42px;padding:10px 18px;border:1px solid var(--color-border);border-radius:24px;background:var(--color-surface);color:var(--color-text);font:600 13px var(--font-interface);cursor:pointer;transition:background .15s,border-color .15s}
.dashboard-table-expand button:hover{background:var(--color-background,#f5f5f5);border-color:var(--color-text)}
.dashboard-table-expand button:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}
.dashboard-expand-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-4px}
[aria-expanded=true]>.dashboard-expand-chevron{transform:rotate(225deg);margin-top:4px}
@media(max-width:800px){.dashboard-table-expand{flex-direction:column;align-items:stretch}.dashboard-table-expand>span{text-align:center}.dashboard-table-expand button{width:100%}}
[data-collection-viewport]{overflow:hidden;display:flow-root}
.dashboard-expand-chevron{transition:transform .25s ease}
@media(prefers-reduced-motion:reduce){.dashboard-expand-chevron,.dashboard-table-expand button{transition:none}}
.dashboard-chart-group{grid-column:1/-1;min-width:0}
.dashboard-chart-group>.dashboard-room-controls{margin:0 0 24px;justify-content:flex-end}
.dashboard-chart-group .dashboard-chart{border:0;padding:0;background:transparent}
.dashboard-component-divider{height:1px;border:0;background:var(--color-border);margin:32px 0}
[data-room-status]{font-size:12px;color:var(--color-text-secondary)}
[data-room-status]:empty{display:none}
[data-room-group][aria-busy=true] select{cursor:progress}
[data-room-retry]{font:inherit;border:1px solid var(--color-border);padding:6px 12px;background:var(--color-surface);color:var(--color-text);cursor:pointer}
@media(max-width:800px){.dashboard-chart-group>.dashboard-room-controls{justify-content:flex-start}.dashboard-component-divider{margin:26px 0}}
.dashboard-chart-group>.dashboard-room-controls{justify-content:flex-start;margin-bottom:28px}
.dashboard-room-picker{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.dashboard-room-picker-label{font:600 14px var(--font-interface);color:var(--color-text)}
.dashboard-room-options{display:inline-flex;gap:4px;padding:5px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface)}
.dashboard-room-options button{min-height:42px;padding:10px 18px;border:0;border-radius:6px;background:transparent;color:var(--color-text-secondary);font:600 15px var(--font-interface);cursor:pointer;transition:background .15s,color .15s}
.dashboard-room-options button span{font-size:13px;font-weight:500}
.dashboard-room-options button:hover{background:var(--color-background,#f4f4f4);color:var(--color-text)}
.dashboard-room-options button[aria-pressed=true]{background:var(--color-text);color:var(--color-surface)}
.dashboard-room-options button:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}
@media(max-width:600px){.dashboard-room-picker{width:100%;gap:10px}.dashboard-room-options{width:100%;box-sizing:border-box}.dashboard-room-options button{flex:1;padding:10px 8px;font-size:15px}.dashboard-room-options button span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.dashboard-room-options button{transition:none}}
.dashboard-section-card{min-width:0}
.dashboard-section-card [data-component]{border:0;padding:0;background:transparent;min-width:0}
.dashboard-section-card>.dashboard-more{margin-top:28px;padding-top:18px}
.dashboard-section-card>.dashboard-more>[data-section-components]{margin-top:22px}
.dashboard-section-card .dashboard-overview{gap:0}
.dashboard-section-card .dashboard-overview>[data-component]{padding:0 20px;border-left:1px solid var(--color-border)}
.dashboard-section-card .dashboard-overview>[data-component]:first-child{padding-left:0;border-left:0}
.dashboard-section-card .dashboard-overview>[data-component]:last-child{padding-right:0}
@media(max-width:800px){.dashboard-section-card .dashboard-overview>[data-component]{padding:16px}.dashboard-section-card .dashboard-overview>[data-component]:nth-child(odd){padding-left:0;border-left:0}.dashboard-section-card .dashboard-overview>[data-component]:nth-child(even){padding-right:0}.dashboard-section-card .dashboard-overview>[data-component]:nth-child(n+3){border-top:1px solid var(--color-border)}}

.dashboard-overview-link{font-size:12px;font-weight:600;color:var(--color-accent);text-underline-offset:3px}.dashboard-overview-link:hover{text-decoration:underline}
.dashboard-number[data-value-tone="positive"] { background:#e5fae5; border-left:4px solid #00CC00; }
.dashboard-number[data-value-tone="negative"] { background:#ffe7e9; border-left:4px solid #e52b38; }
.dashboard-number[data-value-tone="warning"] { background:#fffce5; border-left:4px solid #f7d51d; }
.dashboard-number[data-value-tone]:not([data-value-tone=""]) { padding:8px 12px; border-radius:6px; }

.dashboard-consumption-cluster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.dashboard-consumption-cluster>.dashboard-metric{border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:18px}
.dashboard-consumption-cluster>[data-component]:not(.dashboard-metric){grid-column:1/-1;margin:0;padding:8px 0}
.dashboard-consumption-cluster>.dashboard-metric:has([data-value-tone="positive"]){background:#e5fae5;border-color:#00CC00}
.dashboard-consumption-cluster>.dashboard-metric:has([data-value-tone="negative"]){background:#ffe7e9;border-color:#e52b38}
.dashboard-consumption-cluster>.dashboard-metric:has([data-value-tone="warning"]){background:#fffce5;border-color:#f7d51d}
@media(max-width:650px){.dashboard-consumption-cluster{grid-template-columns:1fr;gap:12px}}
@media(min-width:651px) and (max-width:1050px){.dashboard-consumption-cluster{grid-template-columns:repeat(3,minmax(0,1fr))}}
.dashboard-consumption-cluster .dashboard-data{border-top:0;margin-top:8px;padding-top:0}
.dashboard-consumption-cluster>.dashboard-metric h3{min-height:4.5em}
@media(max-width:650px){.dashboard-consumption-cluster>.dashboard-metric h3{min-height:0}}
.dashboard-consumption-cluster>.dashboard-metric [data-date]{display:none}

/* Basket definitions stay attached to their selector, including keyboard focus. */
.dashboard-basket-option{position:relative;display:inline-flex;max-width:100%}
.dashboard-basket-help{display:none;position:absolute;left:0;top:100%;z-index:20;width:280px;max-width:calc(100vw - 64px);padding:12px 14px;border:1px solid #d9dfe3;border-radius:8px;background:#fff;color:#213d58;box-shadow:0 5px 18px #0002;font-size:13px;line-height:1.5;font-weight:400;text-align:left}
.dashboard-basket-option:not([data-dismissed]):hover .dashboard-basket-help,.dashboard-basket-option:not([data-dismissed]):focus-within .dashboard-basket-help{display:block}
.dashboard-basket-option:last-child .dashboard-basket-help{left:auto;right:0}
@media(max-width:600px){[data-basket-controls] .dashboard-room-options{align-items:flex-start;flex-direction:column}.dashboard-basket-option:last-child .dashboard-basket-help{left:0;right:auto}}
