:root {
  color-scheme: light;
  --color-bg-page: #f8f9fb;
  --color-bg-surface: #ffffff;
  --color-bg-subtle: #f6f7f9;
  --color-bg-hover: #f3f5f7;
  --color-bg-selected: #eef5ff;
  --color-text-primary: #171a1f;
  --color-text-secondary: #4f5b67;
  --color-text-muted: #6f7b86;
  --color-text-faint: #8b96a1;
  --color-border: #e1e5ea;
  --color-border-strong: #cfd6dd;
  --color-divider: #e8edf1;
  --color-interactive: #2563eb;
  --color-interactive-hover: #1d4ed8;
  --color-interactive-active: #1e40af;
  --color-interactive-soft: #eff6ff;
  --color-interactive-border: #bfdbfe;
  --color-focus: #60a5fa;
  --color-positive: #16845b;
  --color-warning: #a96f18;
  --color-negative: #c23b3b;
  --color-text-on-interactive: #ffffff;
  --color-control-edge: #d8dee5;
  --color-control-edge-hover: #c5ced7;
  --color-interactive-edge: #1f55ca;
  --color-interactive-gradient-top: #3b76ee;
  --color-interactive-gradient-hover-top: #4b83f1;
  --color-interactive-gradient-hover-bottom: #2d6bed;
  --color-overlay: rgba(23, 26, 31, 0.28);
  --color-overlay-strong: rgba(23, 26, 31, 0.42);
  --color-positive-soft-bg: #f2faf5;
  --color-positive-soft-border: #cfe5da;
  --color-warning-soft-bg: #fffaf0;
  --color-warning-soft-border: #dfc58d;
  --color-warning-soft-alt-bg: #fff7e8;
  --color-negative-soft-bg: #fff7f7;
  --color-negative-soft-border: #f0d0d0;
  --color-interactive-soft-alt-bg: #f7faff;
  --color-warning-strong: #8a5b12;
  --color-chart-skill: #0f766e;
  --color-chart-missing-bg: #eef0f3;
  --color-chart-missing-border: #d5dbe1;
  --color-chart-selection: rgba(37, 99, 235, 0.10);
  --color-chart-cursor: rgba(37, 42, 49, 0.45);
  --color-chart-annotation-bg: rgba(255, 255, 255, 0.94);
  --color-heat-negative: #912631;
  --scrollbar-thumb: rgba(23, 26, 31, 0.45);
  --scrollbar-thumb-hover: rgba(23, 26, 31, 0.65);
  --scrollbar-track: transparent;
  --shadow-control: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-overlay: 0 4px 12px rgba(18, 26, 33, 0.08), 0 1px 2px rgba(18, 26, 33, 0.04);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-nav: 5px;
  --control-height: 36px;
  --control-radius: 8px;
  --control-padding-inline: 14px;
  --control-icon-gap: 6px;
  --field-width-iso: 112px;
  --field-width-metric: 160px;
  --field-width-market: 176px;
  --field-width-location: 224px;
  --field-width-date-range: 288px;
  --field-width-numeric: 128px;
  --field-width-date: 164px;
  --font-size-xs: 13px;
  --font-size-sm: 14px;
  --font-size-ui: 14px;
  --font-size-body: 14px;
  --font-size-lg: 18px;
  --motion-instant: 70ms;
  --motion-fast: 100ms;
  --motion-base: 150ms;
  --motion-slow: 200ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-enter: cubic-bezier(0.16, 1, 0.3, 1);
  --app-header-height: 54px;
  --app-sidebar-width: 220px;
  --app-sidebar-collapsed-width: 64px;
}

.app-nav,
.app-main,
.table-wrap,
.po-table-wrap,
.detail-drawer__body,
.command-results,
.shape-heatmap,
.settlement-detail-inline__body,
.market-intelligence-main,
.market-intelligence-legend,
.market-intelligence-metric-nav,
.market-intelligence-market-preferences,
.market-intelligence-table-wrap,
.market-intelligence-preview,
.basis-downloads-popover,
.market-intel-next-table-wrap {
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

.app-nav::-webkit-scrollbar-thumb:hover,
.app-main::-webkit-scrollbar-thumb:hover,
.table-wrap::-webkit-scrollbar-thumb:hover,
.po-table-wrap::-webkit-scrollbar-thumb:hover,
.detail-drawer__body::-webkit-scrollbar-thumb:hover,
.command-results::-webkit-scrollbar-thumb:hover,
.shape-heatmap::-webkit-scrollbar-thumb:hover,
.settlement-detail-inline__body::-webkit-scrollbar-thumb:hover,
.market-intelligence-main::-webkit-scrollbar-thumb:hover,
.market-intelligence-legend::-webkit-scrollbar-thumb:hover,
.market-intelligence-metric-nav::-webkit-scrollbar-thumb:hover,
.market-intelligence-market-preferences::-webkit-scrollbar-thumb:hover,
.market-intelligence-table-wrap::-webkit-scrollbar-thumb:hover,
.market-intelligence-preview::-webkit-scrollbar-thumb:hover,
.basis-downloads-popover::-webkit-scrollbar-thumb:hover,
.market-intel-next-table-wrap::-webkit-scrollbar-thumb:hover {
  background-color: var(--scrollbar-thumb-hover);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --color-bg-page: #0f1419;
    --color-bg-surface: #161b22;
    --color-bg-subtle: #1c232c;
    --color-bg-hover: #232b35;
    --color-bg-selected: #1c2b42;
    --color-text-primary: #e6e9ed;
    --color-text-secondary: #a8b3bd;
    --color-text-muted: #7c8894;
    --color-text-faint: #5b6672;
    --color-border: #2a323c;
    --color-border-strong: #3a434f;
    --color-divider: #232b35;
    --color-interactive: #4c8dfa;
    --color-interactive-hover: #6ba0fb;
    --color-interactive-active: #8bb4fc;
    --color-interactive-soft: #16233a;
    --color-interactive-border: #2c4570;
    --color-focus: #6ba0fb;
    --color-positive: #3ecf8e;
    --color-warning: #e0a941;
    --color-negative: #f0645f;
    --color-control-edge: #333d49;
    --color-control-edge-hover: #47525f;
    --color-interactive-edge: #3f6fce;
    --color-interactive-gradient-top: #5f97fb;
    --color-interactive-gradient-hover-top: #75a6fc;
    --color-interactive-gradient-hover-bottom: #4a86f6;
    --color-overlay: rgba(0, 0, 0, 0.5);
    --color-overlay-strong: rgba(0, 0, 0, 0.65);
    --color-positive-soft-bg: #12261d;
    --color-positive-soft-border: #1f4a35;
    --color-warning-soft-bg: #2a2013;
    --color-warning-soft-border: #4a3a1a;
    --color-warning-soft-alt-bg: #2a2013;
    --color-negative-soft-bg: #2a1616;
    --color-negative-soft-border: #4a2424;
    --color-interactive-soft-alt-bg: #131c2c;
    --color-warning-strong: #e0a941;
    --color-chart-skill: #42c7bc;
    --color-chart-missing-bg: #202933;
    --color-chart-missing-border: #3a4654;
    --color-chart-selection: rgba(76, 141, 250, 0.20);
    --color-chart-cursor: rgba(230, 233, 237, 0.45);
    --color-chart-annotation-bg: rgba(22, 27, 34, 0.94);
    --color-heat-negative: #df6c70;
    --scrollbar-thumb: rgba(255, 255, 255, 0.45);
    --scrollbar-thumb-hover: rgba(255, 255, 255, 0.65);
    --scrollbar-track: transparent;
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --color-bg-page: #0f1419;
  --color-bg-surface: #161b22;
  --color-bg-subtle: #1c232c;
  --color-bg-hover: #232b35;
  --color-bg-selected: #1c2b42;
  --color-text-primary: #e6e9ed;
  --color-text-secondary: #a8b3bd;
  --color-text-muted: #7c8894;
  --color-text-faint: #5b6672;
  --color-border: #2a323c;
  --color-border-strong: #3a434f;
  --color-divider: #232b35;
  --color-interactive: #4c8dfa;
  --color-interactive-hover: #6ba0fb;
  --color-interactive-active: #8bb4fc;
  --color-interactive-soft: #16233a;
  --color-interactive-border: #2c4570;
  --color-focus: #6ba0fb;
  --color-positive: #3ecf8e;
  --color-warning: #e0a941;
  --color-negative: #f0645f;
  --color-control-edge: #333d49;
  --color-control-edge-hover: #47525f;
  --color-interactive-edge: #3f6fce;
  --color-interactive-gradient-top: #5f97fb;
  --color-interactive-gradient-hover-top: #75a6fc;
  --color-interactive-gradient-hover-bottom: #4a86f6;
  --color-overlay: rgba(0, 0, 0, 0.5);
  --color-overlay-strong: rgba(0, 0, 0, 0.65);
  --color-positive-soft-bg: #12261d;
  --color-positive-soft-border: #1f4a35;
  --color-warning-soft-bg: #2a2013;
  --color-warning-soft-border: #4a3a1a;
  --color-warning-soft-alt-bg: #2a2013;
  --color-negative-soft-bg: #2a1616;
  --color-negative-soft-border: #4a2424;
  --color-interactive-soft-alt-bg: #131c2c;
  --color-warning-strong: #e0a941;
  --color-chart-skill: #42c7bc;
  --color-chart-missing-bg: #202933;
  --color-chart-missing-border: #3a4654;
  --color-chart-selection: rgba(76, 141, 250, 0.20);
  --color-chart-cursor: rgba(230, 233, 237, 0.45);
  --color-chart-annotation-bg: rgba(22, 27, 34, 0.94);
  --color-heat-negative: #df6c70;
  --scrollbar-thumb: rgba(255, 255, 255, 0.45);
  --scrollbar-thumb-hover: rgba(255, 255, 255, 0.65);
  --scrollbar-track: transparent;
}

[hidden] {
  display: none !important;
}

.app-shell,
.app-shell *,
.app-shell *::before,
.app-shell *::after {
  box-sizing: border-box;
}

button,
input,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

.auth-loading {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: var(--color-bg-page);
  color: var(--color-text-muted);
}

.auth-loading__content {
  display: grid;
  justify-items: center;
  align-items: center;
  gap: 14px;
  font: 500 13px/1.4 "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.auth-loading .power-loader-host { display: flex; justify-content: center; width: min(380px, calc(100vw - 48px)); }
.auth-loading .power-loader--standard { width: 100%; height: 40px; }
.power-loader-host { display: inline-flex; flex: 0 0 auto; max-width: 100%; }
.power-loader {
  display: flex;
  align-items: stretch;
  width: min(330px, 100%);
  height: 30px;
  gap: 3px;
  color: var(--color-interactive);
}
.power-loader > span {
  flex: 1 1 0;
  min-width: 1px;
  height: 100%;
  border-radius: 3px;
  background: currentColor;
  opacity: 0.12;
  transform: scaleY(0.18);
  transform-origin: center;
  will-change: transform, opacity;
}
.power-loader--compact { flex: 0 0 20px; width: 20px; height: 12px; gap: 2px; }
.power-loader--compact > span { flex: 0 0 3px; min-width: 3px; border-radius: 2px; }
.loading-region { position: relative; }
.loading-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  padding: 24px;
  background: var(--color-bg-surface);
  background: color-mix(in srgb, var(--color-bg-surface) 92%, transparent);
}
.loading-state { display: grid; justify-items: center; gap: 8px; max-width: 440px; text-align: center; }
.loading-state__label { color: var(--color-text-primary); font-size: 14px; font-weight: 600; }
.loading-state__detail { color: var(--color-text-muted); font-size: 12px; }
.button-loading-content { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }

.landing-actions {
  display: flex;
  justify-content: center;
  margin-top: 20px;
}

.landing-sign-in {
  min-height: 38px;
  padding: 8px 18px;
  border: 1px solid rgba(34, 230, 255, 0.4);
  border-radius: 7px;
  background: rgba(5, 12, 22, 0.75);
  color: #eaf6ff;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

.landing-sign-in:hover {
  border-color: rgba(34, 230, 255, 0.75);
  background: rgba(10, 25, 39, 0.9);
}

body.app-authenticated {
  overflow: hidden;
  background: var(--color-bg-page);
  color: var(--color-text-primary);
  font: 400 14px/1.45 "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-feature-settings: "cv11" 1, "ss01" 1;
}

.shape-risk-workspace { max-width: 1440px; container-type: inline-size; }
.basis-workspace { max-width: 1440px; }
.basis-export-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: flex-start; }
.basis-export-action { position: relative; display: inline-flex; width: max-content; max-width: 100%; }
.basis-export-action > button { width: auto; max-width: 100%; }
.basis-action-tooltip { position: absolute; z-index: 12; left: 0; top: calc(100% + 6px); width: min(340px, calc(100vw - 48px)); padding: 8px 10px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-bg-surface); color: var(--color-text-primary); box-shadow: var(--shadow-lg); font-size: var(--font-size-sm); line-height: 1.4; opacity: 0; visibility: hidden; transform: translateY(-2px); pointer-events: none; transition: opacity 120ms ease, transform 120ms ease, visibility 120ms; }
.basis-export-action:hover .basis-action-tooltip, .basis-export-action:focus-within .basis-action-tooltip { opacity: 1; visibility: visible; transform: translateY(0); }
.basis-relationship-method-note { margin: var(--space-2) 0; color: var(--color-text-muted); font-size: var(--font-size-sm); }
.basis-model-bridge { margin: var(--space-4) 0; padding: var(--space-3) var(--space-4); border-left: 3px solid var(--color-interactive-border); background: var(--color-bg-subtle); color: var(--color-text-secondary); font-size: var(--font-size-ui); line-height: 1.45; }
.basis-empty { padding: 18px; color: var(--color-text-secondary); font-size: var(--font-size-ui); }
.basis-rolling { fill: none; stroke: var(--color-text-secondary); stroke-width: 1.2; stroke-dasharray: 3 3; }
.basis-band { stroke: var(--color-text-muted); stroke-width: 1; stroke-dasharray: 4 3; }
.basis-relationship-grid { display: grid; grid-template-columns: minmax(420px, 1fr) minmax(420px, .9fr); gap: var(--space-5); align-items: start; }
.basis-takeaway-panel { container-type: inline-size; }
.basis-takeaway-sentence { max-width: 700px; margin: var(--space-2) 0 0; color: var(--color-text-primary); font-size: var(--font-size-lg); line-height: 1.4; }
.basis-takeaway-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: var(--space-4) 0 0; border-top: 1px solid var(--color-divider); border-bottom: 1px solid var(--color-divider); }
.basis-takeaway-kpis > div { min-width: 0; padding: var(--space-3) var(--space-4); }
.basis-takeaway-kpis > div + div { border-left: 1px solid var(--color-divider); }
.basis-takeaway-kpis dt { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.basis-takeaway-kpis dd { margin: 4px 0 0; color: var(--color-text-primary); font-size: var(--font-size-kpi); font-variant-numeric: tabular-nums; font-weight: 600; line-height: 1.2; }
.basis-takeaway-kpis small { color: var(--color-text-muted); font-size: var(--font-size-xs); }
.basis-takeaway-status { display: flex; align-items: center; gap: var(--space-2); min-height: 20px; margin: 0; padding: var(--space-3) var(--space-4); color: var(--color-text-secondary); font-size: var(--font-size-sm); }
.basis-model-status { min-height: 20px; margin: var(--space-3) 0 0; color: var(--color-text-secondary); font-size: var(--font-size-sm); }
.basis-takeaway-status:empty { display: none; }
.basis-takeaway-panel > footer { margin-top: var(--space-2); }
.basis-relationship-chart .chart-uplot-stage { min-height: 0; }
.basis-regression-panel { min-width: 0; }
.basis-regression-panel h3 { margin: 0; font-size: var(--font-size-lg); }
.basis-regression-panel__intro, .basis-regression-caution { margin: var(--space-2) 0 var(--space-3); color: var(--color-text-secondary); font-size: var(--font-size-ui); }
.basis-regression-table button { display: block; width: 100%; margin: -7px -9px; padding: 7px 9px; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.basis-regression-cohort { display: inline-block; font-size: var(--font-size-xs); font-weight: 500; }
.basis-regression-cohort--older { color: var(--color-interactive); }
.basis-regression-cohort--recent { color: var(--color-negative); }
.basis-regression-table tr { cursor: pointer; }
.basis-regression-table tr.is-selected > * { background: var(--color-bg-selected); }
.basis-regression-table tr:has(button:focus-visible) > * { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.basis-regression-caution { padding: var(--space-3); border-left: 3px solid var(--color-interactive-border); background: var(--color-bg-subtle); line-height: 1.5; }
@media (max-width: 900px) { .basis-relationship-grid { grid-template-columns: 1fr; } .basis-relationship-grid > :first-child { order: 2; } .basis-regression-panel { order: 1; } .basis-relationship-chart { max-width: 680px; } }
@media (max-width: 520px) { .basis-relationship-grid { gap: var(--space-4); } }
@container (max-width: 620px) {
  .basis-takeaway-panel > header { flex-direction: column; align-items: stretch; }
  .basis-takeaway-panel .shape-panel-actions { width: 100%; flex-wrap: wrap; }
  .basis-takeaway-kpis { grid-template-columns: 1fr; }
  .basis-takeaway-kpis > div + div { border-top: 1px solid var(--color-divider); border-left: 0; }
  .basis-takeaway-kpis > div { padding-inline: var(--space-3); }
}
.analytical-results.is-updating { opacity: .68; transition: opacity var(--motion-fast) var(--ease-standard); }
.shape-panel--heatmap { margin-bottom: 0; }
.shape-panel--heatmap .shape-heatmap { padding: 8px 18px 18px; font-size: 12px; }
.shape-panel--heatmap .shape-heatmap__head,.shape-panel--heatmap .shape-heatmap__row { grid-template-columns: 90px repeat(4, minmax(110px, 1fr)); gap: 5px; min-width: 590px; }
.shape-panel--heatmap .shape-heatmap__head { margin-bottom: 5px; font-size: 11px; }
.shape-panel--heatmap .shape-heatmap__row { margin-top: 3px; }
.shape-panel--heatmap .shape-heatmap__row button { position: relative; min-height: 34px; padding: 5px; border: 1px solid rgba(23,26,31,.04); border-radius: 3px; color: var(--color-text-primary); font: inherit; font-size: 11px; text-align: center; font-variant-numeric: tabular-nums; cursor: pointer; }
.shape-heatmap__row button:hover { border-color: var(--color-border-strong); filter: saturate(1.08); }
.shape-heatmap__row button:focus-visible { z-index: 1; outline: 2px solid var(--color-interactive); outline-offset: 1px; }
.shape-heatmap__row button.is-month-best { box-shadow: inset 0 0 0 1px var(--color-interactive); font-weight: 650; }
.shape-heatmap__row button i { position: absolute; top: 3px; right: 4px; color: var(--color-interactive-active); font-size: 8px; font-style: normal; }
.shape-more-series { color: var(--color-text-secondary); font-size: 12px; white-space: nowrap; }
.shape-more-series input { margin-right: 5px; }
.shape-series--emphasis { stroke-width: 3px; }
.shape-series--hedge { stroke: var(--color-interactive); stroke-dasharray: 5 3; stroke-width: 2px; }
.shape-legend__hedge { width: 14px; border-top: 2px dashed var(--color-interactive); }
.shape-detail-controls { display: flex; gap: 10px; }
.shape-detail-controls label,.shape-scenario-controls > label:first-child { display: grid; gap: 4px; color: var(--color-text-secondary); font-size: var(--font-size-sm); }
.shape-detail-controls select,.shape-scenario-controls select { min-width: 170px; height: var(--control-height); padding: 0 var(--control-padding-inline); border: 1px solid var(--color-control-edge); border-radius: var(--control-radius); outline: none; background: var(--color-bg-surface); color: var(--color-text-primary); box-shadow: var(--shadow-control); font-size: var(--font-size-body); font-weight: 500; }
.shape-detail-controls select:hover,.shape-scenario-controls select:hover { border-color: var(--color-control-edge-hover); background: var(--color-bg-subtle); }
.shape-detail-controls select:focus,.shape-scenario-controls select:focus { border-color: var(--color-interactive); }
.shape-chart-quadrants { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--color-divider); border-top:1px solid var(--color-divider); }
.shape-chart-quadrants > section { min-width:0; padding:12px 14px 4px; background:var(--color-bg-surface); }
.shape-chart-quadrants h3 { margin:0; color:var(--color-text-secondary); font-size:12px; font-weight:600; }
.shape-inline-actions { display:flex; align-items:end; gap:8px; }
.shape-inline-actions label { display:grid; gap:3px; color:var(--color-text-muted); font-size:11px; }
.shape-inline-actions select { height:30px; min-width:92px; padding:0 28px 0 9px; border:1px solid var(--color-control-edge); border-radius:var(--control-radius); background:var(--color-bg-surface); color:var(--color-text-primary); }
.shape-scenario-table tbody tr { cursor:pointer; }
.shape-scenario-table tbody tr:hover { background:var(--color-bg-subtle); }
.shape-scenario-table tbody tr.is-selected { background:var(--color-interactive-soft-alt-bg); box-shadow:inset 3px 0 0 var(--color-interactive); }
.shape-scenario-table tbody tr:focus-visible { outline:2px solid var(--color-interactive); outline-offset:-2px; }
.shape-detail-delta { grid-column: 1 / -1; }
.shape-detail-charts h3 { margin: 0 0 2px; color: var(--color-text-secondary); font-size: 12px; font-weight: 600; }
.shape-chart--short { min-height: 180px; }
.data-state-badge { align-self: flex-start; padding: 5px 9px; border: 1px solid var(--color-positive-soft-border); border-radius: 999px; background: var(--color-positive-soft-bg); color: var(--color-positive); font-size: 11px; font-weight: 600; }
.data-state-badge--neutral { border-color:var(--color-border); background:var(--color-bg-subtle); color:var(--color-text-secondary); }
.shape-source-choice { min-width:0; margin:0; padding:0; border:0; }.shape-source-choice legend { margin-bottom:6px; color:var(--color-text-secondary); font-size:12px; font-weight:500; }.shape-source-choice { display:grid; grid-template-columns:1fr 1fr; gap:6px; }.shape-source-choice legend { grid-column:1/-1; }.shape-source-choice label { position:relative; min-width:0; }.shape-source-choice input { position:absolute; opacity:0; }.shape-source-choice span { display:flex; min-height:52px; flex-direction:column; justify-content:center; padding:7px 10px; border:1px solid var(--color-control-edge); border-radius:var(--control-radius); background:var(--color-bg-surface); cursor:pointer; }.shape-source-choice strong { color:var(--color-text-primary); font-size:13px; font-weight:600; }.shape-source-choice small { overflow:hidden; color:var(--color-text-muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.shape-source-choice input:checked + span { border-color:var(--color-interactive-border); background:var(--color-interactive-soft); }.shape-source-choice input:focus-visible + span { outline:2px solid var(--color-focus); outline-offset:2px; }.shape-month-range { display:grid; grid-template-columns:1fr auto 1fr; align-items:end; gap:6px; }.shape-month-range legend,.shape-month-range > small { grid-column:1/-1; }.shape-month-range label { display:grid; gap:4px; color:var(--color-text-secondary); font-size:11px; }.shape-month-range input { width:100%; min-height:var(--control-height); }.shape-month-range > span { padding-bottom:8px; color:var(--color-text-muted); }.shape-month-range > small { color:var(--color-text-muted); font-size:11px; }
.shape-method-note { margin:10px 0 12px; color:var(--color-text-muted); font-size:12px; }.shape-method-note strong { color:var(--color-text-secondary); }
.shape-risk-trust { margin: 12px 0 18px; color: var(--color-text-muted); font-size: 12px; }
.weather-base-field { width: var(--field-width-numeric); max-width: 100%; }
.weather-base-field input { width: 100%; }
.weather-legend { display: none; }
.weather-toggle-fieldset { display: flex; gap: var(--space-3); border: 0; padding: 0; margin: 0; }
.weather-export-filter { display: flex; align-items: center; gap: var(--space-2); font-size: 13px; }
.weather-export-filter input { width: 16px; height: 16px; min-height: 16px; margin: 0; }

.weather-degree-days-table .is-current{background:var(--color-bg-selected)}.weather-degree-days-table th,.weather-degree-days-table td{font-variant-numeric:tabular-nums}.weather-degree-days-mtd{display:block;margin-top:2px;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:500}
/* F4.2: shared short-weekday label shown before the date in a daily table's row-identity cell. */
.table-weekday { margin-right: 3px; color: var(--color-text-muted); font-weight: 500; }
.status-dot { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: var(--color-positive); }
.shape-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-bottom: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); overflow: hidden; }
.shape-kpi { min-height: 78px; padding: 10px 14px; border-right: 1px solid var(--color-divider); background: var(--color-bg-surface); }
.shape-kpi:last-child { border-right: 0; }
.shape-kpi span,.shape-kpi small { display: block; color: var(--color-text-muted); font-size: 11px; }
.shape-kpi strong { display: block; margin: 5px 0 2px; color: var(--color-text-primary); font-size: 18px; font-weight: 650; letter-spacing: -.02em; }
.shape-kpi strong small { display:inline; margin-left:3px; color:var(--color-text-secondary); font-size:11px; font-weight:500; letter-spacing:0; }
.shape-panel { margin-top: var(--space-4); margin-bottom: 0; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); overflow: hidden; }
.shape-panel > header { display: flex; justify-content: space-between; align-items: start; gap: 12px; padding: 16px 18px 10px; }.shape-panel h2 { margin: 0; font-size: 15px; }.shape-panel header p { margin: 3px 0 0; color: var(--color-text-muted); font-size: 12px; }
.shape-kpi-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:var(--space-4); border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; background:var(--color-bg-surface); }
.shape-kpi-strip .shape-kpi { border-right:1px solid var(--color-divider); }.shape-kpi-strip .shape-kpi:last-child { border-right:0; }
.shape-table-heading { margin:16px 18px 0; color:var(--color-text-secondary); font-size:12px; font-weight:600; }
.shape-panel--primary { border-color:var(--color-border-strong); }
.shape-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; }.shape-table th,.shape-table td { padding: 11px 14px; border-top: 1px solid var(--color-divider); text-align: left; white-space: nowrap; }.shape-table thead th { position: sticky; top: 0; z-index: 1; border-top: 0; background: var(--color-bg-surface); color: var(--color-text-muted); font-size: 11px; font-weight: 600; }.shape-table .numeric { text-align: right; font-variant-numeric: tabular-nums; }.shape-table tbody tr.is-recommended { background: var(--color-interactive-soft-alt-bg); }.shape-swatch { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: var(--swatch); }.recommended-tag { margin-left: 8px; color: var(--color-interactive); font-size: 10px; font-weight: 600; }.rank { font-weight: 650; }
.shape-table tbody tr.is-coverage-limited { background: var(--color-warning-soft-bg); }.shape-table tbody tr.is-coverage-limited .recommended-tag { color: var(--color-warning-strong); }
.shape-upload-panel { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 var(--space-4); padding:12px 14px; border:1px solid var(--color-divider); border-radius:var(--radius-md); background:var(--color-bg-surface); }
.shape-upload-panel[hidden] { display:none; }.shape-upload-panel h2 { margin:0 0 3px; font-size:14px; }.shape-upload-panel ol { display:flex; gap:22px; margin:5px 0; padding-left:20px; color:var(--color-text-secondary); font-size:12px; }.shape-upload-panel p { margin:0; color:var(--color-text-muted); font-size:11px; }.shape-upload-actions { display:flex; gap:8px; flex:0 0 auto; }.shape-file-button { position:relative; overflow:hidden; cursor:pointer; }.shape-file-button input { position:absolute; inset:0; opacity:0; cursor:pointer; }.shape-risk-workspace .shape-panel { box-shadow:none; }.shape-risk-workspace .shape-table th,.shape-risk-workspace .shape-table td { padding: calc(8px * var(--table-zoom, 1)) calc(12px * var(--table-zoom, 1)); font-size: calc(12.5px * var(--table-zoom, 1)); }.shape-risk-workspace .shape-table thead th { padding-block: calc(7px * var(--table-zoom, 1)); }
@media (max-width: 767px) { .shape-upload-panel { align-items:stretch; flex-direction:column; }.shape-upload-actions { flex-wrap:wrap; } }
.shape-chart-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; }.shape-chart { position: relative; min-height: 278px; margin-top: var(--space-3); padding: 0 4px 12px; }.shape-chart--tall { min-height: 298px; }.shape-chart svg { display: block; width: 100%; height: 250px; overflow: visible; cursor: crosshair; }.shape-chart svg:focus-visible { outline: 2px solid var(--color-text-secondary); outline-offset: 2px; }.shape-grid { stroke: var(--color-divider); stroke-width: 1; }.shape-zero { stroke: var(--color-border-strong); stroke-dasharray: 4 4; }.shape-series { fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }.shape-line--primary { stroke: var(--color-interactive); stroke-width: 1.6; }.shape-line--reference { stroke: var(--color-text-secondary); stroke-width: 1.2; stroke-dasharray: 3 3; }.shape-line--secondary { stroke: var(--color-text-muted); stroke-width: 1.2; stroke-dasharray: 5 3; }.shape-axis,.shape-axis-labels { fill: var(--color-text-muted); font-size: 10px; }.shape-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; min-height: 24px; padding: 6px 4px 0; color: var(--color-text-muted); font-size: 12px; }.shape-legend span { display: inline-flex; align-items: center; gap: 5px; }.shape-legend i { width: 14px; height: 2px; display: inline-block; }.shape-chart .chart-legend { padding-left: 0; padding-right: 0; }.shape-chart-notice { margin: 3px 0 0; color: var(--color-text-secondary); font-size: 11px; }
.segmented-control, .market-range-chips { display: inline-flex; align-items: stretch; min-height: var(--control-height); gap: 0; padding: 0; border: 0; border-radius: var(--control-radius); background: var(--color-bg-surface); box-shadow: inset 0 0 0 1px var(--color-border); }
.segmented-control button, .market-range-chips button,
.segmented-control label > span, .market-range-chips label > span { display: inline-flex; align-items: center; justify-content: center; min-height: var(--control-height); border: 0; border-radius: var(--radius-md); background: transparent; color: var(--color-text-muted); padding: 0 12px; font: 500 var(--font-size-ui) "Inter", sans-serif; cursor: pointer; white-space: nowrap; }
.segmented-control label, .market-range-chips label { position: relative; display: inline-flex; }
.segmented-control label > input[type="radio"], .market-range-chips label > input[type="radio"] { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.segmented-control button.is-active, .market-range-chips button.is-active,
.segmented-control button[aria-pressed="true"], .market-range-chips button[aria-pressed="true"],
.segmented-control label > input:checked + span, .market-range-chips label > input:checked + span { background: var(--color-interactive-soft); color: var(--color-interactive-active); font-weight: 600; box-shadow: inset 0 0 0 1px var(--color-interactive-border); }
.segmented-control button:focus-visible, .market-range-chips button:focus-visible,
.segmented-control label > input:focus-visible + span, .market-range-chips label > input:focus-visible + span { position: relative; z-index: 1; outline: 2px solid var(--color-focus); outline-offset: 2px; }
.segmented-control button:disabled, .market-range-chips button:disabled,
.segmented-control label:has(input:disabled) > span, .market-range-chips label:has(input:disabled) > span { opacity: .5; cursor: not-allowed; }
.shape-heatmap { padding: 4px 14px 16px; overflow-x: auto; font-size: 10px; }.shape-heatmap__head,.shape-heatmap__row { display: grid; grid-template-columns: 62px repeat(4,minmax(42px,1fr)); gap: 3px; min-width: 360px; }.shape-heatmap__head { color: var(--color-text-faint); }.shape-heatmap__head span:not(:first-child) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.shape-heatmap__row { margin-top: 3px; align-items: center; }.shape-heatmap__row strong { color: var(--color-text-muted); font-weight: 500; }
.shape-detail-grid { display: grid; grid-template-columns: 1fr; gap: 18px; padding: 0 18px 18px; }.shape-table--compact th,.shape-table--compact td { padding: calc(9px * var(--table-zoom, 1)) calc(8px * var(--table-zoom, 1)); font-size: calc(12px * var(--table-zoom, 1)); }.shape-table .total-row th,.shape-table .total-row td { border-top: 2px solid var(--color-border-strong); font-weight: 650; }.shape-recommendation { margin: 0 0 var(--space-4); padding: 16px 18px; border: 1px solid var(--color-interactive-border); border-left: 3px solid var(--color-interactive); border-radius: var(--radius-lg); background: var(--color-interactive-soft-alt-bg); }.shape-recommendation.is-coverage-limited { border-color: var(--color-warning-soft-border); border-left-color: var(--color-warning); background: var(--color-warning-soft-bg); }.shape-recommendation__eyebrow { display: block; color: var(--color-interactive-active); font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: .06em; }.shape-recommendation > strong { display: block; margin-top: 5px; font-size: 20px; }.shape-recommendation p { margin: 4px 0 0; color: var(--color-text-secondary); font-size: 13px; }.shape-recommendation__coverage { padding-top: 7px; border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); }.shape-panel-actions,.shape-subpanel-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.shape-subpanel-heading { min-height: 34px; }.shape-subpanel-heading h3 { margin: 0; }.status-dot--warning { background: var(--color-warning); }
@container (max-width: 1050px) { .shape-detail-grid { grid-template-columns: 1fr; }.shape-upload-panel ol { display:block; } }
@container (max-width: 620px) { .shape-kpis,.shape-kpi-strip { grid-template-columns: repeat(2,1fr); }.shape-kpi { border-right: 0; border-bottom: 1px solid var(--color-divider); }.shape-kpi:nth-last-child(-n+2) { border-bottom: 0; }.shape-panel > header { flex-direction: column; }.shape-panel-actions { width: 100%; flex-wrap: wrap; }.shape-source-choice { grid-template-columns:1fr; }.shape-source-choice legend { grid-column:1; }.shape-table { min-width: 760px; }.shape-detail-grid { padding: 0 10px 12px; }.shape-detail-controls { width: 100%; }.shape-detail-controls select,.shape-scenario-controls select { min-width: 0; width: 100%; }.shape-chart-quadrants { grid-template-columns:1fr; } }

.app-shell {
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--color-bg-page);
}

.app-sidebar {
  position: fixed;
  z-index: 40;
  inset: 0 auto auto 0;
  width: var(--app-sidebar-width);
  height: 100vh;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--color-border);
  background: var(--color-bg-surface);
}

.app-brand {
  height: var(--app-header-height);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  border-bottom: 1px solid var(--color-divider);
  color: var(--color-text-primary);
  text-decoration: none;
}

.app-brand__mark {
  width: 27px;
  height: 27px;
  display: block;
  border-radius: var(--radius-md);
  object-fit: contain;
}

.app-brand__name {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.app-brand__identity {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.app-brand__name,
.app-brand__workspace {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-brand__workspace {
  color: var(--color-text-muted);
  font-size: 10px;
  font-weight: 450;
}

.workspace-context {
  margin: 14px 12px 8px;
  padding: 9px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-subtle);
}

.workspace-context__label,
.workspace-context__value {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-context__label {
  margin-bottom: 2px;
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 500;
}

.workspace-context__value {
  color: var(--color-text-primary);
  font-size: 12px;
  font-weight: 500;
}

.app-nav {
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 8px 10px;
}

.app-nav__label {
  display: block;
  padding: 8px 8px 6px;
  color: var(--color-text-faint);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.recents-toggle {
  width: 100%;
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 8px;
  border: 0;
  border-radius: var(--radius-nav);
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.recents-toggle:hover { background: var(--color-bg-hover); }
.recents-toggle:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 1px; }
.recents-toggle svg { width: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; transition: transform 120ms ease; }
.recents-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.app-nav__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 32px;
  padding: 6px 9px;
  border-radius: var(--radius-md);
  color: var(--color-text-secondary);
  font-size: 13px;
  font-weight: 450;
  text-decoration: none;
  transition: color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);
}

.app-nav__item svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.45;
}

.app-nav__item:hover {
  background: var(--color-bg-hover);
  color: var(--color-text-primary);
}

.app-nav__item:active {
  background: var(--color-border);
}

.app-nav__item--unavailable {
  cursor: not-allowed;
  color: var(--color-text-muted);
  opacity: 0.72;
}

.app-nav__item--unavailable:hover {
  background: transparent;
  color: var(--color-text-muted);
}

.app-nav__item[aria-current="page"] {
  background: var(--color-bg-selected);
  color: var(--color-interactive-active);
  font-weight: 500;
}

.app-nav__item[aria-current="page"]::before {
  content: "";
  position: absolute;
  inset: 7px auto 7px 0;
  width: 2px;
  border-radius: 2px;
  background: var(--color-interactive);
}

.app-nav__children {
  position: relative;
  margin: 1px 0 4px 17px;
  padding-left: 12px;
}

.app-nav__children::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 1px;
  background: var(--color-divider);
}

.app-nav__market {
  position: relative;
  min-height: 30px;
  display: flex;
  align-items: center;
  border-radius: var(--radius-nav);
  background: var(--color-bg-selected);
  padding: 5px 9px;
  color: var(--color-text-primary);
  font-size: 12px;
  font-weight: 500;
}

.app-nav__market::before {
  content: "";
  position: absolute;
  inset: 6px auto 6px -12px;
  width: 3px;
  border-radius: 2px;
  background: var(--color-interactive);
}

.app-sidebar__footer {
  margin-top: auto;
  padding: 14px 16px;
  border-top: 1px solid var(--color-divider);
}

.environment-badge {
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 500;
}

.environment-badge::before {
  content: "";
  width: 6px;
  height: 6px;
  display: inline-block;
  margin-right: 7px;
  border-radius: 50%;
  background: var(--color-positive);
  vertical-align: 1px;
}

.app-header {
  position: fixed;
  z-index: 30;
  inset: 0 0 auto var(--app-sidebar-width);
  height: var(--app-header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 24px;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg-surface);
}

.app-header__context,
.app-account,
.breadcrumb {
  display: flex;
  align-items: center;
  min-width: 0;
}

.breadcrumb {
  gap: 7px;
  color: var(--color-text-muted);
  font-size: 12px;
}

.breadcrumb svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: var(--color-text-faint);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.4;
}

.breadcrumb strong {
  overflow: hidden;
  color: var(--color-text-primary);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-account {
  gap: 9px;
}

.app-account__avatar {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--color-bg-selected);
  color: var(--color-interactive-active);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
}

.app-account__identity {
  max-width: 230px;
  overflow: hidden;
  color: var(--color-text-secondary);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.button-subtle,
.button-secondary,
.icon-button {
  border: 1px solid transparent;
  border-radius: var(--control-radius);
  background: transparent;
  color: var(--color-text-secondary);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.16px;
  transition: color var(--motion-base) var(--ease-standard), background-color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard);
}

.button-subtle {
  min-height: var(--control-height);
  padding: 0 var(--control-padding-inline);
}

.button-subtle:hover,
.icon-button:hover {
  border-color: var(--color-border);
  background: var(--color-bg-hover);
  color: var(--color-text-primary);
}

.button-subtle:active,
.icon-button:active {
  background: var(--color-border);
}

.icon-button {
  width: var(--control-height);
  height: var(--control-height);
  display: grid;
  place-items: center;
  padding: 0;
}

.icon-button svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 1.6;
}

.sidebar-toggle {
  display: none;
  margin-right: 8px;
}

.sidebar-backdrop {
  position: fixed;
  z-index: 35;
  inset: 0;
  border: 0;
  background: rgba(23, 26, 31, 0.28);
  cursor: default;
}

/* position: relative keeps absolute descendants (e.g. table sort announcers) inside the scroll area;
   otherwise they grow the document and scrollIntoView strands the page header off-screen. */
.app-main {
  position: relative;
  height: 100vh;
  height: 100dvh;
  margin-left: var(--app-sidebar-width);
  padding-top: var(--app-header-height);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.app-content {
  width: min(1440px, 100%);
  margin: 0 auto;
  padding: 28px 32px 48px;
}

.page-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

.page-heading__actions { display: flex; align-items: flex-end; gap: 8px; }

.page-heading h1 {
  margin: 0;
  padding: 0;
  background: none;
  background-clip: border-box;
  -webkit-background-clip: border-box;
  color: var(--color-text-primary);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.025em;
  animation: none;
}

.page-heading__description {
  margin: 5px 0 0;
  color: var(--color-text-secondary);
  font-size: 13px;
}

.settlement-workspace {
  min-height: 420px;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-surface);
}

/* The scope row has no surface of its own. One divider separates it from the evidence below, and
   the row starts at the content edge, level with the page title. */
.filter-panel {
  padding: 0 0 var(--space-3);
  border-bottom: 1px solid var(--color-divider);
}

.filter-form {
  display: flex;
  align-items: end;
  /* Between decisions. A pair inside one group keeps the tighter 8px of its own component. */
  gap: 16px;
  flex-wrap: wrap;
}

.filter-form .field, .filter-form > fieldset { min-width: 0; max-width: 100%; }
/* A loader mounted inside a field sits under its control without changing the field height, so a
   field that is still loading cannot push the fields beside it down. */
.filter-form .field { position: relative; }
.filter-form .field > .power-loader-host { position: absolute; top: 100%; left: 0; margin-top: 4px; }
.filter-form > fieldset { margin: 0; padding: 0; border: 0; }
.filter-form > fieldset > legend { padding: 0; margin-bottom: 5px; color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 500; }
.filter-form .button-primary { white-space: nowrap; }
.filter-form__note { order: 1; flex: 1 0 100%; margin: 2px 0 0; color: var(--color-text-muted); font-size: var(--font-size-xs); }

.field {
  display: grid;
  gap: 5px;
}

.field label,
.field__label {
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
  font-weight: 500;
}

.checkbox-selector { position: relative; width: 210px; }
.checkbox-selector > summary { height: var(--control-height); display: flex; align-items: center; padding: 0 var(--control-padding-inline); border: 1px solid var(--color-control-edge); border-radius: var(--control-radius); background: var(--color-bg-surface); box-shadow: var(--shadow-control); color: var(--color-text-primary); font-size: 14px; font-weight: 500; cursor: pointer; list-style: none; }
.checkbox-selector > summary::-webkit-details-marker { display: none; }
.checkbox-selector > summary::after { content: "⌄"; margin-left: auto; color: var(--color-text-muted); }
.checkbox-selector[open] > summary { border-color: var(--color-interactive); outline: 2px solid var(--color-focus); outline-offset: 2px; }
.checkbox-selector.is-disabled > summary { pointer-events: none; background: var(--color-bg-hover); color: var(--color-text-faint); }
.checkbox-selector fieldset { position: absolute; z-index: 30; top: calc(100% + 5px); left: 0; width: max-content; min-width: 100%; max-height: 280px; overflow: auto; display: grid; gap: 2px; margin: 0; padding: 6px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-bg-surface); box-shadow: 0 8px 20px rgba(15, 23, 42, .12); }
.checkbox-selector fieldset label { min-height: 34px; display: flex; align-items: center; gap: 8px; padding: 5px 8px; border-radius: var(--radius-sm); color: var(--color-text-primary); font-size: 13px; cursor: pointer; }
.checkbox-selector fieldset label:hover { background: var(--color-bg-hover); }
.field .checkbox-selector input { width: 16px; height: 16px; min-height: 16px; padding: 0; margin: 0; box-shadow: none; }

.field input,
.field select {
  width: 164px;
  height: var(--control-height);
  padding: 0 var(--control-padding-inline);
  border: 1px solid var(--color-control-edge);
  border-radius: var(--control-radius);
  outline: none;
  background: var(--color-bg-surface);
  color: var(--color-text-primary);
  box-shadow: var(--shadow-control);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.16px;
  transition: background-color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard);
}

.field--entity { width: var(--field-width-location); }
.field--date { width: var(--field-width-date); }
.field--iso { width: var(--field-width-iso); }
.field--metric { width: var(--field-width-metric); }
.field--market { width: var(--field-width-market); }
.field--location { width: var(--field-width-location); }
.field--numeric { width: var(--field-width-numeric); }
.field--date select, .field--date input,
.field--iso select, .field--iso input,
.field--metric select, .field--metric input,
.field--market select, .field--market input,
.field--location select, .field--location input,
.field--numeric select, .field--numeric input { width: 100%; }

.field input:hover,
.field select:hover {
  border-color: var(--color-control-edge-hover);
  background: var(--color-bg-subtle);
}

.field input:focus,
.field select:focus {
  border-color: var(--color-interactive);
  box-shadow: var(--shadow-control);
}

.field input:disabled,
.field select:disabled {
  cursor: not-allowed;
  background: var(--color-bg-hover);
  color: var(--color-text-faint);
}

.button-primary,
.button-secondary {
  min-height: var(--control-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--control-icon-gap);
  padding: 0 var(--control-padding-inline);
  border-radius: var(--control-radius);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.16px;
}

.button-primary {
  border: 0;
  background: linear-gradient(to bottom, var(--color-interactive-gradient-top), var(--color-interactive));
  box-shadow: 0 0 0 1px var(--color-interactive-edge), var(--shadow-control);
  color: var(--color-text-on-interactive);
  transition: background var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard), opacity var(--motion-base) var(--ease-standard);
}

.button-primary:hover {
  background: linear-gradient(to bottom, var(--color-interactive-gradient-hover-top), var(--color-interactive-gradient-hover-bottom));
  box-shadow: 0 0 0 1px var(--color-interactive-edge), 0 2px 4px rgba(29, 78, 216, 0.16);
}

.button-primary:active {
  background: linear-gradient(to bottom, var(--color-interactive), var(--color-interactive-hover));
  box-shadow: 0 0 0 1px var(--color-interactive-active), 0 1px 1px rgba(29, 78, 216, 0.12);
}

.button-primary:disabled {
  cursor: wait;
  background: linear-gradient(to bottom, #9babbd, #8b9caf);
  box-shadow: 0 0 0 1px #8293a6, var(--shadow-control);
}

.button-secondary {
  border: 1px solid var(--color-control-edge);
  background: var(--color-bg-surface);
  box-shadow: var(--shadow-control);
  color: var(--color-text-primary);
  transition: background-color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard), color var(--motion-base) var(--ease-standard);
}

.button-secondary:hover {
  border-color: var(--color-control-edge-hover);
  background: var(--color-bg-hover);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
  color: var(--color-text-primary);
}

.button-secondary:active {
  border-color: var(--color-border-strong);
  background: var(--color-border);
  box-shadow: var(--shadow-control);
}

.button-secondary:disabled {
  cursor: not-allowed;
  border-color: var(--color-border);
  background: var(--color-bg-subtle);
  box-shadow: none;
  color: var(--color-text-faint);
}

.filter-context {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 9px;
}

.filter-panel__note,
.filter-panel__context,
.field-error {
  margin: 0;
  font-size: 11px;
}

.filter-panel__note {
  color: var(--color-text-muted);
}

.filter-panel__context {
  flex: 0 0 auto;
  color: var(--color-text-secondary);
  font-weight: 500;
}

.field-error {
  margin-top: 8px;
  color: var(--color-negative);
  font-weight: 500;
}

.results-header {
  min-height: 55px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--color-divider);
}

.results-header h2 {
  margin: 0 0 2px;
  color: var(--color-text-primary);
  font-size: 14px;
  font-weight: 600;
}

.results-meta {
  display: block;
  color: var(--color-text-muted);
  font-size: 11px;
}

.results-updating {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 500;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  border-bottom: 1px solid var(--color-divider);
}

.settlement-chart-panel { padding: 16px 18px; border-bottom: 1px solid var(--color-divider); }
.settlement-chart-panel > header { display:flex; justify-content:space-between; align-items:end; gap:12px; }
.settlement-chart-panel h2 { margin:0; font-size:var(--font-size-body); }
.settlement-chart-panel .field { min-width:160px; }
.settlement-chart-actions { display:flex; align-items:end; gap:8px; }
.settlement-chart-panel .market-chart { position:relative; margin-top:12px; }
.settlement-chart-panel .chart-uplot-stage { --chart-stage-height: 250px; }

@media (max-width: 767px) {
  .settlement-chart-panel > header,
  .settlement-chart-actions { align-items: stretch; flex-direction: column; }
  .settlement-chart-actions .button-secondary { min-height: 44px; }
}

.summary-card {
  min-height: 82px;
  padding: 14px 18px;
  border-right: 1px solid var(--color-divider);
}

.summary-card:last-child {
  border-right: 0;
}

.summary-card__label {
  display: block;
  margin-bottom: 6px;
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 500;
}

.summary-card__value {
  color: var(--color-text-primary);
  font-size: 22px;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.summary-card__value.is-negative,
.money.is-negative {
  color: inherit;
}

.results-notice {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 18px;
  border-bottom: 1px solid var(--color-divider);
  background: var(--color-bg-subtle);
  color: var(--color-text-secondary);
  font-size: 12px;
}

.results-notice strong {
  margin-right: 5px;
  color: var(--color-text-primary);
  font-weight: 600;
}

.results-notice[data-kind="error"] {
  border-bottom-color: var(--color-negative-soft-border);
  background: var(--color-negative-soft-bg);
}

.results-notice[data-kind="error"] strong {
  color: var(--color-negative);
}

.results-state {
  min-height: 290px;
  display: grid;
  place-items: center;
  padding: 36px 24px;
  text-align: center;
}

.results-state__content {
  max-width: 440px;
}

.results-state__content .power-loader-host { display: flex; justify-content: center; width: 100%; margin: 0 auto 13px; }

.results-state h3 {
  margin: 0 0 6px;
  color: var(--color-text-primary);
  font-size: 14px;
  font-weight: 600;
}

.results-state p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 12px;
}

.results-state .button-secondary {
  margin-top: 14px;
}

.results-state--error h3 {
  color: var(--color-negative);
}

.table-wrap {
  width: 100%;
  overflow: auto;
  overscroll-behavior-inline: contain;
}

.settlements-table {
  width: max-content;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--color-text-secondary);
  font-size: calc(12px * var(--table-zoom, 1));
}

.settlements-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.settlements-table th {
  position: sticky;
  z-index: 5;
  top: 0;
  padding: calc(8px * var(--table-zoom, 1)) calc(12px * var(--table-zoom, 1));
  border-bottom: 1px solid var(--color-border-strong);
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  font-size: calc(11px * var(--table-zoom, 1));
  font-weight: 500;
  text-align: left;
  white-space: nowrap;
}

.settlements-table td {
  padding: calc(4px * var(--table-zoom, 1)) calc(12px * var(--table-zoom, 1));
  border-bottom: 1px solid var(--color-divider);
  background: var(--color-bg-surface);
  vertical-align: middle;
}

.settlements-table tbody tr:hover > td {
  background: var(--color-bg-hover);
}

.category-row td {
  font-size: 12px;
  font-weight: 500;
}

.category-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 30px;
  padding: 3px 6px 3px 1px;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-text-primary);
  font-weight: 500;
  text-align: left;
}

.category-toggle:hover {
  color: var(--color-interactive-hover);
}

.category-toggle__icon {
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
  transition: transform var(--motion-base) var(--ease-standard);
}

.category-toggle[aria-expanded="true"] .category-toggle__icon {
  transform: rotate(45deg) translate(-1px, -1px);
}

.charge-detail-row > td,
.charge-detail-row:hover > td {
  padding: 0 16px 16px 36px;
  background: var(--color-bg-subtle);
}

.settlements-table tbody tr:last-child td {
  border-bottom: 0;
}

.cell-number,
.money {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Numbers sit right with a small inset so magnitudes line up down a column; headers stay centered. */
.settlement-matrix thead th:nth-child(n + 3) {
  text-align: center !important;
}

.settlement-matrix td {
  text-align: right !important;
}

:where(.app-shell) :focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.field input:focus-visible,
.field select:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

.auth-failure {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: var(--color-bg-page);
  color: var(--color-text-primary);
  text-align: center;
}

.auth-failure h1 {
  margin: 0 0 8px;
  color: var(--color-text-primary);
  background: none;
  font: 600 20px/1.3 "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  animation: none;
}

.auth-failure p {
  margin: 0 0 16px;
  color: var(--color-text-muted);
  font-size: 13px;
}

@media (max-width: 1023px) {
  .app-sidebar {
    width: 280px;
    max-width: calc(100vw - 48px);
    transform: translateX(-101%);
    transition: transform var(--motion-slow) var(--ease-enter);
  }

  body.app-nav-open .app-sidebar {
    transform: translateX(0);
  }

  .app-header {
    left: 0;
    padding-inline: 18px 22px;
  }

  .sidebar-toggle {
    display: grid;
  }

  .app-main {
    margin-left: 0;
  }

  .app-content {
    padding: 24px 24px 40px;
  }
}

@media (max-width: 767px) {
  .checkbox-selector { width: 100%; }
  .app-sidebar {
    width: min(100vw, 360px);
    max-width: 100vw;
  }

  .app-header {
    padding-inline: 10px 12px;
  }

  .app-account__avatar,
  .app-account__identity {
    display: none;
  }

  .breadcrumb > span,
  .breadcrumb > svg {
    display: none;
  }

  .app-main {
    height: 100vh;
    height: 100dvh;
  }

  .app-content {
    padding: 18px 14px 32px;
  }

  .page-heading {
    margin-bottom: 16px;
  }

  .page-heading h1 {
    font-size: 22px;
  }

  .filter-panel {
    padding: 0 0 var(--space-3);
  }

  .filter-form {
    align-items: stretch;
  }

  .field,
  .field input,
  .field select,
  .field--entity select,
  .button-primary {
    width: 100%;
  }

  .field input,
  .field select,
  .button-primary {
    min-height: 44px;
  }

  .filter-context {
    display: block;
    margin-top: 10px;
  }

  .filter-panel__context {
    margin-bottom: 4px;
  }

  .results-header {
    padding-inline: 14px;
  }

  .summary-grid {
    grid-template-columns: 1fr;
  }

  .summary-card {
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 14px;
    border-right: 0;
    border-bottom: 1px solid var(--color-divider);
  }

  .summary-card:last-child {
    border-bottom: 0;
  }

  .summary-card__label {
    margin-bottom: 0;
  }

  .summary-card__value {
    font-size: 18px;
  }

  .results-notice {
    align-items: flex-start;
    padding-inline: 14px;
  }

  .results-notice strong,
  .results-notice span {
    display: block;
  }

  .results-notice .button-secondary {
    min-height: 40px;
  }

  .results-state {
    min-height: 260px;
  }

  .settlements-table {
    min-width: 720px;
  }

  .category-toggle {
    min-height: 40px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .power-loader > span { will-change: auto; }

  .app-sidebar,
  .app-nav__item,
  .category-toggle__icon,
  .button-primary,
  .button-secondary,
  .button-subtle,
  .icon-button,
  .field input,
  .field select {
    transition: none;
  }
}

/* PJM Market & Load workspace */
.market-main { display: block; }
.market-workspace { max-width: 1440px; }
.market-table-header select { min-height: var(--control-height); padding: 0 9px; border: 1px solid var(--color-control-edge); border-radius: var(--control-radius); background: var(--color-bg-surface); color: var(--color-text-primary); }
.market-scope-note { margin: 10px 0 0; color: var(--color-text-muted); font-size: 12px; }
.market-freshness { display: grid; grid-template-columns: repeat(2, minmax(130px, 220px)); margin-top: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); overflow: hidden; }
.market-freshness > div { min-width: 0; padding: 11px 12px; border-right: 1px solid var(--color-divider); }
.market-freshness > div:last-child { border-right: 0; }
.market-freshness span, .market-freshness strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.market-freshness span { color: var(--color-text-muted); font-size: 10px; }
.market-freshness strong { margin-top: 3px; font-size: 12px; font-variant-numeric: tabular-nums; }
.price-window { display: flex; align-items: center; gap: 8px; min-height: var(--control-height); color: var(--color-text-muted); font-size: 12px; }
.price-window strong { padding: 7px 9px; border-radius: var(--radius-md); background: var(--color-bg-selected); color: var(--color-text-primary); font-variant-numeric: tabular-nums; }
.market-panel { margin-top: var(--space-4); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); }
.market-panel header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.market-panel h2 { margin: 0; font-size: 16px; }
.market-panel-title { display: flex; align-items: center; gap: 6px; }
.market-panel p { margin: 3px 0 0; color: var(--color-text-muted); font-size: 12px; }
.market-panel .market-chart-scope { color: var(--color-text-secondary); font-size: var(--font-size-sm); font-variant-numeric: tabular-nums; }
.market-chart { position: relative; min-height: 278px; margin-top: var(--space-3); color: var(--color-text-muted); font-size: 12px; }
.chart-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 36px; margin-bottom: 6px; font-size: var(--font-size-ui); }
.chart-series-controls,.chart-series-key { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.chart-series-key span { display: inline-flex; align-items: center; gap: 6px; color: var(--color-text-secondary); }
.chart-series-key i { width: 18px; border-top: var(--chart-series-width, 2px) solid var(--chart-series-color); }
.chart-series-toggle { display: inline-flex; min-height: 32px; align-items: center; gap: 6px; padding: 5px 9px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-bg-surface); color: var(--color-text-primary); font: inherit; cursor: pointer; }
.chart-series-toggle:hover { background: var(--color-bg-hover); }
.chart-series-toggle:focus-visible,.chart-reset:focus-visible,.chart-uplot-stage:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.chart-series-toggle i { width: 16px; border-top: 2px solid var(--chart-series-color); }
.chart-series-toggle small { color: var(--color-text-muted); font-size: 12px; }
.chart-series-toggle.is-hidden { border-style: dashed; color: var(--color-text-muted); text-decoration: line-through; opacity: .68; }
.chart-series-toggle.is-hidden i { border-top-style: dashed; }
.chart-series-toggle.is-hidden small { font-weight: 600; text-decoration: none; }
.chart-reset { flex: 0 0 auto; min-height: 32px; margin-left: auto; padding: 5px 10px; }
.chart-reset:disabled { border-color: var(--color-divider); background: var(--color-bg-subtle); color: var(--color-text-faint); cursor: not-allowed; opacity: 1; }
.chart-uplot-stage { position: relative; width: 100%; min-width: 0; height: var(--chart-stage-height, 250px); user-select: none; touch-action: pan-y; }
.chart-uplot-stage .uplot { font-family: inherit; user-select: none; }
.chart-uplot-stage .u-over { cursor: crosshair; }
.chart-uplot-stage .u-select { background: var(--color-chart-selection); }
.chart-uplot-stage .u-cursor-x,.chart-uplot-stage .u-cursor-y { border-color: var(--color-chart-cursor); }
.chart-annotation-label { position: absolute; z-index: 2; max-width: calc(100% - 8px); padding: 3px 6px; background: var(--color-chart-annotation-bg); color: var(--color-interactive-active); font-size: 10px; font-weight: 600; line-height: 14px; pointer-events: none; white-space: nowrap; }
.chart-annotation-label[hidden] { display: none; }
.market-chart svg { display: block; width: 100%; min-width: 0; height: 250px; overflow: visible; cursor: crosshair; }
.market-chart svg:focus-visible { outline: 2px solid var(--color-text-secondary); outline-offset: 2px; }
.chart-grid { stroke: var(--color-divider); stroke-width: 1; }
.chart-day-boundary { stroke: var(--color-border-strong); stroke-width: 1; }
.chart-line { fill: none; stroke-width: 1.4; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.chart-line--da { stroke: var(--color-interactive); }
.chart-line--rt { stroke: var(--color-text-secondary); stroke-dasharray: 5 3; }
.chart-line--actual { stroke: var(--color-interactive); stroke-width: 1.6; }
.chart-line--instantaneous { stroke: var(--color-interactive); stroke-dasharray: 8 3 2 3; }
.chart-line--forecast { stroke: var(--color-text-muted); stroke-width: 1.2; stroke-dasharray: 3 3; opacity: .85; }
.chart-line--skill { stroke: var(--color-chart-skill); }
.chart-label { fill: var(--color-text-muted); font-size: 10px; font-weight: 500; }
.chart-missing-band { fill: var(--color-chart-missing-bg); }
.chart-missing-hatch { stroke: var(--color-chart-missing-border); stroke-width: 2; }
.chart-missing-hatch-area { pointer-events: none; }
.chart-crosshair { stroke: var(--color-text-primary); stroke-dasharray: 2 3; stroke-width: 1; opacity: .45; }
.chart-crosshair__marker { fill: var(--color-bg-surface); stroke: var(--color-interactive); stroke-width: 2; }
.chart-annotation__halo { fill: var(--color-interactive); opacity: .15; }
.chart-annotation__dot { fill: var(--color-interactive); }
.chart-annotation__label { fill: var(--color-interactive-active); font-size: 10px; font-weight: 600; }
/* F3.3: matches the ⓘ popover standard (.info-popover) — same surface, text, border, and shadow tokens. */
.chart-tooltip { position: absolute; z-index: 2; top: 18px; min-width: 190px; max-width: min(300px, calc(100% - 8px)); padding: 9px 10px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-bg-surface); color: var(--color-text-secondary); box-shadow: var(--shadow-overlay); font-size: 13px; pointer-events: none; }
.chart-tooltip[hidden] { display: block; opacity: 0; transform: translateY(2px); visibility: hidden; }
.chart-tooltip strong { display: inline-block; margin-bottom: 6px; color: var(--color-text-primary); font-weight: 600; }
.chart-tooltip__badge { display: inline-block; margin-left: 6px; color: var(--color-interactive-active); font-size: 10px; font-weight: 600; }
.chart-tooltip__rows { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; }
.chart-tooltip__rows span { color: var(--color-text-muted); }
.chart-tooltip__rows b { text-align: right; font-variant-numeric: tabular-nums; font-weight: 500; }
.chart-tooltip__rows span,.chart-tooltip__rows b { min-width: 0; white-space: nowrap; }
.chart-tooltip footer { margin-top: 7px; padding-top: 6px; border-top: 1px solid var(--color-divider); color: var(--color-text-faint); font-size: 11px; }
.chart-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; min-height: 24px; padding: 6px 4px 0; color: var(--color-text-muted); font-size: 12px; }
.chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.chart-legend small { margin-left: auto; color: var(--color-text-faint); font-size: 10px; }
.chart-legend__swatch { display: inline-block; width: 14px; border-top: 2px solid var(--color-text-secondary); }
.chart-legend__swatch.chart-line--da { border-color: var(--color-interactive); }
.chart-legend__swatch.chart-line--rt { border-color: var(--color-text-secondary); border-top-style: dashed; }
.chart-legend__swatch.chart-line--actual { border-color: var(--color-interactive); }
.chart-legend__swatch.chart-line--forecast { border-color: var(--color-text-muted); border-top-style: dashed; }
.chart-legend__swatch.shape-line--primary { border-color: var(--color-interactive); border-top-width: 2px; }
.chart-legend__swatch.shape-line--reference { border-color: var(--color-text-secondary); border-top-style: dashed; border-top-width: 1px; }
.chart-legend__swatch.shape-line--secondary { border-color: var(--color-text-muted); border-top-style: dashed; border-top-width: 1px; }
.chart-legend__missing { width: 14px; height: 9px; border: 1px solid var(--color-chart-missing-border); background: repeating-linear-gradient(135deg, var(--color-chart-missing-bg) 0, var(--color-chart-missing-bg) 3px, var(--color-chart-missing-border) 3px, var(--color-chart-missing-border) 4px); }
.market-table-header label { color: var(--color-text-muted); font-size: 12px; }
.market-table { width: 100%; border-collapse: separate; border-spacing: 0; color: var(--color-text-secondary); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.market-table th, .market-table td { padding: 7px 12px; border-bottom: 1px solid var(--color-divider); background: var(--color-bg-surface); text-align: left; vertical-align: middle; white-space: nowrap; transition: background var(--motion-fast) var(--ease-standard); }
.market-table th { position: sticky; top: 0; z-index: 2; padding-top: 6px; padding-bottom: 6px; border-bottom-color: var(--color-border-strong); background: var(--color-bg-subtle); color: var(--color-text-muted); font-size: 11px; font-weight: 500; }
.market-table tbody tr:hover > td { background: var(--color-bg-hover); }
.market-table tbody tr:last-child td { border-bottom: 0; }
.market-table .numeric { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.market-table .is-missing { color: var(--color-text-faint); }
/* Shared table standard (docs/table_behavior.md). --table-zoom scales only the table, not its toolbar or footer. */
.table-toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-2); }
.table-zoom { display: inline-flex; align-items: stretch; height: var(--control-height, 32px); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-bg-surface); overflow: hidden; }
.table-zoom button { min-width: 32px; padding: 0 8px; border: 0; background: transparent; color: var(--color-text-secondary); cursor: pointer; font: inherit; font-size: var(--font-size-sm); font-variant-numeric: tabular-nums; }
.table-zoom .table-zoom__value { min-width: 52px; border-inline: 1px solid var(--color-border); }
.table-zoom button:hover:not(:disabled) { background: var(--color-bg-hover); color: var(--color-text-primary); }
.table-zoom button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.table-zoom button:disabled { color: var(--color-text-faint); cursor: default; }
.table-zoom .table-zoom__fit { padding: 0 10px; border-left: 1px solid var(--color-border); white-space: nowrap; }
.po-table-wrap { --table-zoom: 1; --table-max-height: min(60vh, 640px); max-height: var(--table-max-height); overflow: auto; overscroll-behavior-inline: contain; }
.po-table-wrap.is-scrollable { min-height: 320px; }
.po-table-wrap:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
/* The table keeps its content width. It does not stretch to the card, so zoom out makes the columns narrower. */
.po-table { width: max-content; border-collapse: separate; border-spacing: 0; color: var(--color-text-secondary); font-size: calc(12.5px * var(--table-zoom)); font-variant-numeric: tabular-nums; }
.po-table th, .po-table td { padding: calc(10px * var(--table-zoom)) calc(14px * var(--table-zoom)); border-bottom: 1px solid var(--color-divider); background: var(--color-bg-surface); text-align: left; vertical-align: middle; white-space: nowrap; transition: background var(--motion-fast) var(--ease-standard); }
.po-table thead th { position: sticky; top: 0; z-index: 2; padding-top: calc(8px * var(--table-zoom)); padding-bottom: calc(8px * var(--table-zoom)); border-bottom-color: var(--color-border-strong); background: var(--color-bg-subtle); color: var(--color-text-muted); font-size: calc(11px * var(--table-zoom)); font-weight: 500; }
.po-table th:first-child, .po-table td:first-child { position: sticky; left: 0; z-index: 1; box-shadow: inset -1px 0 0 var(--color-divider); }
.po-table thead th:first-child { z-index: 3; }
.po-table tbody tr:hover > td { background: var(--color-bg-hover); }
.po-table tbody tr:last-child td { border-bottom: 0; }
.po-table .numeric { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.po-table .is-missing { color: var(--color-text-faint); }
.po-table-sort { display: inline-flex; align-items: center; gap: calc(4px * var(--table-zoom)); padding: 0; border: 0; border-radius: var(--radius-sm); background: transparent; color: inherit; cursor: pointer; font: inherit; text-align: inherit; user-select: none; white-space: nowrap; }
.numeric .po-table-sort { justify-content: flex-end; width: 100%; text-align: right; }
.po-table-sort:hover { color: var(--color-text-primary); }
.po-table-sort:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.po-table-sort__cue { display: inline-block; min-width: 1ch; opacity: .45; }
th[aria-sort="ascending"] .po-table-sort, th[aria-sort="descending"] .po-table-sort { color: var(--color-interactive); }
th[aria-sort="ascending"] .po-table-sort__cue, th[aria-sort="descending"] .po-table-sort__cue { opacity: 1; }
.po-table tbody tr.po-table-message > td { position: static; padding: calc(24px * var(--table-zoom)) var(--space-4); box-shadow: none; color: var(--color-text-muted); text-align: center; white-space: normal; }
.po-table tbody tr.po-table-message:hover > td { background: var(--color-bg-surface); }
.po-table-message .button-secondary { margin-left: var(--space-3); }
.table-sort { display: inline-flex; align-items: center; gap: 3px; min-height: 28px; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; text-align: inherit; user-select: none; white-space: nowrap; }
.numeric .table-sort { justify-content: flex-end; width: 100%; text-align: right; }
.table-sort span { opacity: .5; }
th[aria-sort="ascending"] .table-sort, th[aria-sort="descending"] .table-sort { color: var(--color-interactive); }
th[aria-sort="ascending"] .table-sort span, th[aria-sort="descending"] .table-sort span { opacity: 1; }
.table-action-heading, .table-action { width: 1%; padding-left: 8px !important; padding-right: 8px !important; text-align: right !important; }
.table-action button { min-height: 32px; padding: 4px 7px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--color-interactive); cursor: pointer; font: inherit; font-size: 11px; opacity: 0; transition: opacity var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard); }
.market-table tbody tr:hover .table-action button, .table-action button:focus-visible { opacity: 1; }
.table-action button:hover { background: var(--color-interactive-soft); }
.table-hour-inspect { display: inline-flex; align-items: center; min-height: 32px; padding: 2px 3px 2px 0; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--color-text-primary); cursor: pointer; font: inherit; font-variant-numeric: tabular-nums; text-align: left; }
.table-hour-inspect:hover { color: var(--color-interactive-hover); }
.table-trust-line { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 7px !important; color: var(--color-text-faint) !important; font-size: 11.5px !important; font-variant-numeric: tabular-nums; }
.table-coverage { color: var(--color-text-muted); }
.table-coverage--partial { display: inline-flex; align-items: center; gap: 4px; padding: 2px 6px; border-radius: 999px; background: var(--color-warning-soft-alt-bg); color: var(--color-warning); font-size: 10.5px; font-weight: 500; }
.market-table-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-3); padding: 9px 12px; border-top: 1px solid var(--color-border); background: var(--color-bg-subtle); color: var(--color-text-muted); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.market-workspace .is-updating { opacity: .68; transition: opacity var(--motion-fast) var(--ease-standard); }
.analytical-refresh-notice { display: flex; align-items: center; gap: 8px; margin: var(--space-3) 0 0; color: var(--color-text-muted); font-size: var(--font-size-sm); }
.analytical-refresh-notice[data-tone="error"] { color: var(--color-negative); }
.market-missing-notice { margin: var(--space-2) 0 0; color: var(--color-text-secondary); font-size: var(--font-size-sm); }
.market-table tbody tr[data-inspect-kind] { cursor: pointer; }
.market-table tbody tr.is-selected > td { background: var(--color-bg-selected); }
.market-table tbody tr[data-inspect-kind]:focus-visible > td { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.market-inspection { display: grid; grid-template-columns: minmax(110px, .65fr) 1.35fr; gap: 8px 12px; margin: 0; font-size: 12px; }
.market-inspection dt { color: var(--color-text-muted); }.market-inspection dd { margin: 0; font-variant-numeric: tabular-nums; }.drawer-copy { margin-top: 0; font-size: 12px; }
@media (max-width: 1023px) { .market-freshness { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .price-window { grid-column: 1 / -1; }.market-freshness { grid-template-columns: 1fr 1fr; }.market-freshness > div { border-bottom: 1px solid var(--color-divider); }.market-panel { padding: 12px; }.market-table-header { display: grid !important; }.market-inspection { grid-template-columns: 1fr; gap: 2px; }.market-inspection dd { margin-bottom: 8px; } }

/* Market workflows share one compact scope/time grammar; charts lead tables. */
.filter-form .market-date-inputs select, .filter-form .market-date-inputs input { min-height: var(--control-height); padding: 0 9px; border: 1px solid var(--color-control-edge); border-radius: var(--control-radius); background: var(--color-bg-surface); color: var(--color-text-primary); font: inherit; font-size: var(--font-size-body); }
.market-date-range { min-width: 0; margin: 0; padding: 0; border: 0; }
.market-date-range--scope { width: var(--field-width-date-range); max-width: 100%; }
/* A preset group sizes to its chips. Its Custom inputs sit on their own line under the row, so
   revealing them never moves the controls beside the group. */
.market-date-range--presets { width: auto; }
.filter-form > .market-date-inputs--custom { order: 1; flex: 1 0 100%; margin-top: 4px; }
.market-date-range legend { padding: 0; margin-bottom: 4px; color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 500; }
.market-date-range__controls, .market-range-chips, .market-date-inputs, .market-refresh { display: flex; align-items: center; gap: 8px; }
.market-date-range__controls { flex-wrap: wrap; min-width: 0; }
/* .market-range-chips uses the .segmented-control standard. */
.market-range-chips { display: inline-flex; }
.market-range-chips button,
.market-range-chips label > span { padding: 0 12px; }
.market-date-range--presets .market-date-inputs label { display: block; }
.market-date-range--presets .market-date-inputs span[aria-hidden="true"] { color: var(--color-text-faint); }
.market-date-inputs label { display: grid; gap: 3px; color: var(--color-text-muted); font-size: var(--font-size-xs); }
.market-date-inputs span { margin-top: 17px; color: var(--color-text-faint); }
.market-date-inputs input { width: 130px; }
.market-date-inputs[hidden] { display: none; }
/* Settlements month/year picker: a trigger showing "Sep 2026" and a year + 3x4 month grid popover. */
.month-picker { position: relative; display: grid; gap: 3px; color: var(--color-text-muted); font-size: var(--font-size-xs); }
.market-date-inputs .month-picker > span { margin-top: 0; color: inherit; }
.month-picker__trigger { min-width: 110px; min-height: var(--control-height); padding: 0 9px; border: 1px solid var(--color-control-edge); border-radius: var(--control-radius); background: var(--color-bg-surface); color: var(--color-text-primary); font: inherit; font-size: var(--font-size-body); text-align: left; cursor: pointer; }
.month-picker__trigger:hover { border-color: var(--color-control-edge-hover); }
.month-picker__trigger:focus-visible, .month-picker__popover button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 1px; }
.month-picker__trigger:disabled { cursor: not-allowed; opacity: .6; }
.month-picker__popover { position: absolute; top: calc(100% + 4px); left: 0; z-index: 40; width: 232px; padding: 8px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-bg-surface); box-shadow: var(--shadow-overlay); color: var(--color-text-primary); font-size: var(--font-size-body); }
.month-picker__popover[hidden] { display: none; }
/* The End month popover opens leftward so it stays on screen at phone width. */
.month-picker:last-child .month-picker__popover { right: 0; left: auto; }
.month-picker__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.month-picker .month-picker__year { margin: 0; color: var(--color-text-primary); font-weight: 600; font-variant-numeric: tabular-nums; }
.month-picker__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.month-picker__popover button { min-height: 36px; border: 1px solid transparent; border-radius: var(--control-radius); background: transparent; color: var(--color-text-primary); font: inherit; cursor: pointer; }
.month-picker__step { min-width: 36px; font-size: 18px; line-height: 1; }
.month-picker__popover button:hover:not(:disabled) { background: var(--color-bg-hover); }
.month-picker__month[aria-pressed="true"] { border-color: var(--color-interactive-border); background: var(--color-interactive-soft); color: var(--color-interactive-active); font-weight: 600; }
.month-picker__popover button:disabled { color: var(--color-text-faint); cursor: not-allowed; }
@media (max-width: 767px) { .month-picker__popover button { min-height: 44px; } .month-picker__step { min-width: 44px; } .month-picker__popover { width: 240px; } .month-picker__trigger { min-height: 44px; } }
.market-refresh { padding-top: 17px; color: var(--color-text-muted); font-size: var(--font-size-xs); font-variant-numeric: tabular-nums; }
.market-refresh .icon-button { min-width: var(--control-height); min-height: var(--control-height); font-size: 17px; }
.market-refresh-notice { flex: 0 0 auto; margin: 0; }
.market-refresh-notice[data-tone="updating"] > span:not(.power-loader-host) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.market-freshness-line { display: flex; align-items: center; gap: 6px; color: var(--color-text-muted); font-size: var(--font-size-sm); font-variant-numeric: tabular-nums; }
.market-freshness-line { margin: var(--space-3) 0 0; }
.market-freshness-help { position: relative; font-variant-numeric: normal; }
.market-freshness-help summary { color: var(--color-interactive); cursor: pointer; list-style: none; }
.market-freshness-help summary::-webkit-details-marker { display: none; }
.info-control, .market-freshness-info { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; min-width: 24px; min-height: 24px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--color-interactive); font: inherit; line-height: 1; cursor: pointer; }
.info-control:hover, .market-freshness-info:hover { background: var(--color-bg-hover); }
.info-control:focus-visible, .market-freshness-info:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.info-popover[popover], .market-freshness-detail[popover], .market-intelligence-method-popover[popover] { position: fixed; inset: auto; box-sizing: border-box; width: min(320px, calc(100vw - 24px)); margin: 0; padding: 12px 14px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-bg-surface); color: var(--color-text-secondary); box-shadow: var(--shadow-overlay); font-size: 12px; line-height: 1.4; }
.settlement-raw-files-menu[popover] { position: fixed; inset: auto; margin: 0; padding: 4px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-bg-surface); color: var(--color-text-primary); box-shadow: var(--shadow-overlay); font-size: 12px; }
.settlement-raw-files-menu:popover-open { display: grid; min-width: 150px; }
.settlement-raw-files-menu > span { padding: 4px 8px 2px; color: var(--color-text-muted); }
.settlement-raw-files-menu > button { padding: 6px 8px; border: 0; border-radius: var(--control-radius); background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.settlement-raw-files-menu > button:hover { background: var(--color-bg-hover); }
.settlement-raw-files-menu > button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.info-popover[popover]::backdrop, .market-freshness-detail[popover]::backdrop, .market-intelligence-method-popover[popover]::backdrop { background: transparent; }
.info-popover dl, .market-freshness-detail dl { display: grid; grid-template-columns: 120px 1fr; gap: 5px 12px; margin: 0; }
.info-popover dt, .market-freshness-detail dt { color: var(--color-text-muted); }
.info-popover dd, .market-freshness-detail dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.info-popover p, .market-freshness-detail p { margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--color-divider); }
.info-popover strong:first-child { display: block; margin-bottom: 2px; color: var(--color-text-primary); }
.info-popover details summary { color: var(--color-interactive); cursor: pointer; font-weight: 500; }
.info-popover details p { border-top: 0; padding-top: 4px; }
.market-panel--primary { margin-top: var(--space-3); }
.market-table-panel { margin-top: var(--space-3); }
.market-freshness--quiet { width: fit-content; margin-top: var(--space-3); border-color: var(--color-divider); }
.weather-workspace .market-location-field { flex: 0 0 var(--field-width-market); width: var(--field-width-market); }
.weather-workspace .weather-base-field { flex: 0 0 var(--field-width-numeric); width: var(--field-width-numeric); }
.market-peak { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: var(--space-2); margin-top: var(--space-3); color: var(--color-text-secondary); font-size: var(--font-size-sm); }
.market-peak strong { color: var(--color-text-primary); font-size: var(--font-size-lg); font-variant-numeric: tabular-nums; }
.chart-hitbox { fill: transparent; cursor: crosshair; outline: none; }
.chart-hitbox:focus { fill: rgba(37, 99, 235, .10); stroke: var(--color-focus); stroke-width: 1; }
.market-table--prices { min-width: 820px; }
.market-table--price-summary { min-width: 1180px; }
.market-table--price-summary th, .market-table--price-summary td { padding-left: calc(8px * var(--table-zoom, 1)); padding-right: calc(8px * var(--table-zoom, 1)); }
.market-table--price-summary thead tr:first-child th { text-align: center; }
.market-table--price-summary thead tr:first-child th:first-child, .market-table--price-summary thead tr:first-child .daily-date-column { text-align: left; }
.market-table--price-summary thead tr:nth-child(2) th { top: calc(29px * var(--table-zoom, 1)); }
.market-table--price-summary thead tr:first-child th, .market-table--price-summary tbody th { z-index: 3; }
.market-table--price-summary thead th:first-child, .market-table--price-summary tbody th { position: sticky; left: 0; background: var(--color-bg-subtle); }
.market-table--price-summary thead th:first-child { box-shadow: 1px 0 0 var(--color-border-strong); }
.market-table--price-summary tbody th { z-index: 1; border-bottom: 1px solid var(--color-divider); color: var(--color-text-secondary); font-size: calc(12.5px * var(--table-zoom, 1)); font-weight: 500; }
.market-table--price-summary .table-coverage--partial { margin-left: 7px; vertical-align: middle; }
.market-table--price-summary .price-summary-group--rt, .market-table--price-summary .price-summary-group--delta,
.market-table--price-summary:not([data-grain="daily"]) tbody td:nth-child(7), .market-table--price-summary:not([data-grain="daily"]) tbody td:nth-child(12),
.market-table--price-summary[data-grain="daily"] tbody td:nth-child(8), .market-table--price-summary[data-grain="daily"] tbody td:nth-child(13),
.market-table--price-summary thead tr:nth-child(2) th:nth-child(6), .market-table--price-summary thead tr:nth-child(2) th:nth-child(11) { border-left: 1px solid var(--color-border-strong); }
.prices-summary-wrap { overflow-x: auto; }
.analytical-progress { margin: var(--space-2) 0 0; color: var(--color-text-muted); font-size: var(--font-size-sm); }

@media (max-width: 767px) {
  .chart-toolbar { align-items: flex-start; flex-direction: column; }
  .chart-reset { align-self: flex-end; }
  .filter-form .field, .filter-form .market-date-range, .filter-form .checkbox-selector { width: 100%; min-width: 0; }
  .filter-form .field input, .filter-form .field select, .filter-form > button { width: 100%; min-width: 0; min-height: 44px; }
  .market-date-inputs input { width: min(100%, 145px); }
  .market-chart { min-height: 278px; }
  .market-chart svg { min-width: 0; height: 250px; }
  .market-panel > header .button-secondary { min-height: 44px; }
  .chart-legend small { width: 100%; margin-left: 0; }
  .market-peak { grid-template-columns: 1fr; gap: 2px; }
}

/* Multi-month settlement workspace */
.field--account select {
  width: min(340px, 70vw);
}

.results-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.display-mode {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: 0;
  padding: 10px 18px;
  border: 0;
  border-bottom: 1px solid var(--color-divider);
  background: var(--color-bg-subtle);
}

.display-mode legend {
  float: left;
  margin-right: 10px;
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 500;
}

.display-mode .segmented-control button,
.display-mode .segmented-control label > span { min-height: 32px; padding: 0 11px; font: 500 11px "Inter", sans-serif; }

.month-sort-button {
  min-height: 32px;
  margin-left: auto;
  padding: 0 11px;
  border: 1px solid var(--color-control-edge);
  border-radius: var(--control-radius);
  background: var(--color-bg-surface);
  color: var(--color-text-secondary);
  font-size: 11px;
  font-weight: 500;
}

.month-sort-button:hover,
.month-sort-button:focus-visible {
  border-color: var(--color-interactive);
  color: var(--color-interactive-hover);
}

.settlement-matrix th:first-child {
  position: sticky;
  left: 0;
  z-index: 6;
  box-sizing: border-box;
  width: calc(100px * var(--table-zoom, 1));
  min-width: calc(100px * var(--table-zoom, 1));
  max-width: calc(100px * var(--table-zoom, 1));
  box-shadow: 1px 0 0 var(--color-divider);
}

.settlement-matrix th:nth-child(2) {
  position: sticky;
  left: calc(100px * var(--table-zoom, 1));
  z-index: 5;
  box-shadow: 1px 0 0 var(--color-divider);
}

.settlement-matrix thead th:first-child {
  z-index: 8;
}

.settlement-matrix thead th:nth-child(2) {
  z-index: 7;
}

.settlement-matrix tbody th {
  padding: calc(4px * var(--table-zoom, 1)) calc(10px * var(--table-zoom, 1));
  border-bottom: 1px solid var(--color-divider);
  background: var(--color-bg-surface);
  color: var(--color-text-primary);
  font-size: calc(12px * var(--table-zoom, 1));
  font-weight: 500;
  text-align: left;
}

.matrix-month-row th,
.matrix-month-row td {
  font-weight: 600;
}

/* The month subtotal is the group header. Keep numeric cells neutral. */
.settlement-matrix .matrix-month-row th {
  background: var(--color-bg-subtle);
}

.matrix-month-row th:first-child,
.matrix-account-row th:first-child {
  border-left: 3px solid var(--color-interactive);
}

.month-disclosure { display: inline-flex; align-items: center; gap: calc(7px * var(--table-zoom, 1)); padding: calc(2px * var(--table-zoom, 1)) calc(4px * var(--table-zoom, 1)) calc(2px * var(--table-zoom, 1)) 1px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--color-text-primary); font: inherit; cursor: pointer; }
.month-disclosure:hover { color: var(--color-interactive-hover); }
.month-disclosure[aria-expanded="true"] .category-toggle__icon { transform: rotate(45deg) translate(-1px, -1px); }
.month-expansion-actions { display: inline-flex; gap: 6px; margin-left: auto; }
#missing_months_button { margin-left: 0; }
.matrix-account-row[hidden] { display: none; }
.matrix-load { white-space: nowrap; }
.matrix-load .table-coverage--partial { margin: 0 0 0 calc(4px * var(--table-zoom, 1)); padding: calc(1px * var(--table-zoom, 1)) calc(5px * var(--table-zoom, 1)); font-size: calc(10.5px * var(--table-zoom, 1)); vertical-align: middle; }
.matrix-load-column-action { min-width: 104px; }

.matrix-range-row th,
.matrix-range-row td {
  border-bottom: 2px solid var(--color-border-strong) !important;
  background: var(--color-bg-selected) !important;
  color: var(--color-text-primary);
  font-weight: 700;
}

.matrix-category-action {
  display: grid;
  gap: 1px;
  align-content: center;
  justify-items: center;
  margin-inline: auto;
  padding: calc(2px * var(--table-zoom, 1)) calc(4px * var(--table-zoom, 1));
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: center;
}

.matrix-category-action small {
  color: var(--color-text-muted);
  font-size: calc(9px * var(--table-zoom, 1));
  font-weight: 400;
}

.matrix-category-action:hover,
.matrix-category-action:focus-visible {
  border-color: var(--color-control-edge);
  background: var(--color-bg-surface);
  color: var(--color-interactive-hover);
}

.matrix-account-row th:nth-child(2) {
  padding-left: calc(22px * var(--table-zoom, 1)) !important;
}

/* Inline so an unavailable subaccount keeps the compact row height. */
.matrix-account-availability {
  display: inline;
  margin-left: calc(6px * var(--table-zoom, 1));
  color: var(--color-text-muted);
  font-size: calc(10px * var(--table-zoom, 1));
  font-weight: 500;
}

.matrix-account-name {
  display: inline;
}

.matrix-number {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.matrix-number--missing {
  color: var(--color-text-muted);
  font-size: calc(11px * var(--table-zoom, 1));
  font-style: italic;
}

.matrix-number--unavailable {
  color: var(--color-text-faint);
}

.matrix-total {
  border-left: 2px solid var(--color-border-strong) !important;
  font-weight: 600;
}

.matrix-load-group-start,
.matrix-category-group-start {
  border-left: 2px solid var(--color-border-strong) !important;
}

.matrix-value {
  min-width: 100%;
  padding: calc(1px * var(--table-zoom, 1)) calc(4px * var(--table-zoom, 1));
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: inherit;
  font: inherit;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

.settlement-matrix .matrix-value {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  text-align: right;
}

.matrix-value:hover,
.matrix-value:focus-visible {
  border-color: var(--color-control-edge);
  background: #edf4ff;
  color: var(--color-interactive-hover);
}

.detail-drawer__body h3 {
  margin: 20px 0 8px;
  color: var(--color-text-primary);
  font-size: 12px;
  font-weight: 600;
}

@media (max-width: 767px) {
  .results-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .results-actions {
    width: 100%;
    justify-content: space-between;
  }

  .display-mode {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .display-mode legend {
    width: 100%;
    margin: 0 0 4px;
  }

  .display-mode .segmented-control label > span,
  .matrix-value,
  .month-sort-button,
  .matrix-category-action {
    min-height: 44px;
  }

  .month-sort-button {
    margin-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .matrix-value,
  .display-mode .segmented-control label > span,
  .month-sort-button,
  .matrix-category-action {
    transition: none !important;
  }
}

/* Authenticated application shell refinements */
.scope-stack {
  display: grid;
  gap: var(--space-2);
  margin: 14px 12px 8px;
}

.scope-control {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-subtle);
}

.scope-control__label,
.scope-control__value {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scope-control__label {
  margin-bottom: 1px;
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 500;
}

.scope-control__value,
.scope-control__select {
  color: var(--color-text-primary);
  font-size: 12px;
  font-weight: 500;
}

.scope-control--select {
  position: relative;
  padding-block: 7px;
}

.scope-control__select {
  width: 100%;
  padding: 0 20px 0 0;
  border: 0;
  outline: 0;
  appearance: auto;
  background: transparent;
  cursor: pointer;
}

.quick-search {
  min-height: var(--control-height);
  display: flex;
  align-items: center;
  gap: var(--control-icon-gap);
  margin: 4px 12px 6px;
  padding: 0 10px;
  border: 1px solid var(--color-control-edge);
  border-radius: var(--control-radius);
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  box-shadow: var(--shadow-control);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.16px;
  text-align: left;
  transition: background-color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard), color var(--motion-base) var(--ease-standard);
}

.quick-search:hover {
  border-color: var(--color-control-edge-hover);
  background: var(--color-bg-hover);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
  color: var(--color-text-secondary);
}

.quick-search svg,
.command-palette__search svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 1.5;
}

.quick-search > span {
  min-width: 0;
  flex: 1;
}

kbd {
  padding: 1px 5px;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
  background: var(--color-bg-surface);
  color: var(--color-text-muted);
  font: 500 10px/1.5 "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  white-space: nowrap;
}

.sidebar-group {
  padding: 2px 10px 0;
}

.app-nav__label {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 11px;
  letter-spacing: 0;
  text-transform: none;
}

.recents-list {
  display: grid;
  gap: 1px;
}

.recents-empty {
  margin: 0;
  padding: 5px 8px 8px;
  color: var(--color-text-faint);
  font-size: 11px;
}

.recent-item {
  width: 100%;
  min-height: 42px;
  display: grid;
  gap: 1px;
  padding: 5px 8px;
  border: 0;
  border-radius: var(--radius-nav);
  background: transparent;
  color: var(--color-text-primary);
  text-align: left;
  transition: background-color var(--motion-fast) var(--ease-standard);
}

.recent-item:hover {
  background: var(--color-bg-hover);
}

.recent-item__title,
.recent-item__type {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recent-item__title {
  font-size: 12px;
  font-weight: 500;
}

.recent-item__type {
  color: var(--color-text-muted);
  font-size: 10px;
}

.app-nav__item {
  min-height: 31px;
  border-radius: var(--radius-nav);
}

.app-nav__item[aria-current="page"]::before {
  inset-block: 6px;
  width: 3px;
}

.app-sidebar__footer {
  display: grid;
  gap: 8px;
  padding: 10px 12px 12px;
}

.sidebar-collapse {
  min-height: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px;
  border: 0;
  border-radius: var(--radius-nav);
  background: transparent;
  color: var(--color-text-muted);
  font-size: 12px;
  text-align: left;
  transition: background-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);
}

.sidebar-collapse:hover {
  background: var(--color-bg-hover);
  color: var(--color-text-primary);
}

.sidebar-collapse svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
  transition: transform var(--motion-base) var(--ease-standard);
}

body.app-sidebar-collapsed .app-sidebar {
  width: var(--app-sidebar-collapsed-width);
}

body.app-sidebar-collapsed .app-header {
  left: var(--app-sidebar-collapsed-width);
}

body.app-sidebar-collapsed .app-main {
  margin-left: var(--app-sidebar-collapsed-width);
}

body.app-sidebar-collapsed .app-brand {
  justify-content: center;
  padding-inline: 0;
}

body.app-sidebar-collapsed .app-brand__name,
body.app-sidebar-collapsed .app-brand__workspace,
body.app-sidebar-collapsed .scope-stack,
body.app-sidebar-collapsed .quick-search,
body.app-sidebar-collapsed .sidebar-group,
body.app-sidebar-collapsed .app-nav__label,
body.app-sidebar-collapsed .app-nav__item span,
body.app-sidebar-collapsed .app-nav__children,
body.app-sidebar-collapsed .sidebar-collapse span,
body.app-sidebar-collapsed .environment-badge {
  display: none;
}

body.app-sidebar-collapsed .app-nav {
  padding-inline: 10px;
}

body.app-sidebar-collapsed .app-nav__item,
body.app-sidebar-collapsed .sidebar-collapse {
  justify-content: center;
  padding-inline: 0;
}

body.app-sidebar-collapsed .app-nav__item[aria-current="page"]::before {
  inset-block: 5px;
}

.sidebar-nav-tooltip {
  position: fixed;
  z-index: 45;
  width: calc(var(--app-sidebar-width) - var(--app-sidebar-collapsed-width));
  box-sizing: border-box;
  padding: 6px 9px;
  border-radius: var(--radius-nav);
  background: var(--color-bg-hover);
  color: var(--color-text-primary);
  font: 450 13px/19px "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  white-space: nowrap;
  pointer-events: none;
}

body.app-sidebar-collapsed .sidebar-collapse svg {
  transform: rotate(180deg);
}

.results-trust {
  margin: 4px 0 0;
  color: var(--color-text-muted);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.summary-card {
  border: 0;
  border-right: 1px solid var(--color-divider);
  border-radius: 0;
  background: var(--color-bg-surface);
  text-align: left;
  transition: background-color var(--motion-fast) var(--ease-standard);
}

.summary-card:hover,
.summary-card:focus-visible {
  background: var(--color-bg-hover);
}

.settlement-workspace[aria-busy="true"] .summary-grid,
.settlement-workspace[aria-busy="true"] .table-wrap,
.settlement-workspace[aria-busy="true"] .results-trust {
  opacity: 0.52;
  transition: opacity var(--motion-fast) var(--ease-standard);
}

.sort-button {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  white-space: nowrap;
}

.sort-button:hover {
  color: var(--color-interactive-hover);
}

th[aria-sort] .sort-button span::before {
  content: "↓";
}

th[aria-sort="ascending"] .sort-button span::before {
  content: "↑";
}

.row-actions-heading,
.row-actions-cell {
  width: 76px;
  text-align: right;
}

.row-details-button {
  min-height: var(--control-height);
  padding: 0 var(--control-padding-inline);
  border: 1px solid transparent;
  border-radius: var(--control-radius);
  background: transparent;
  color: var(--color-interactive);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.16px;
  opacity: 0;
  transition: opacity var(--motion-base) var(--ease-standard), background-color var(--motion-base) var(--ease-standard), border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard);
}

.category-row:hover .row-details-button,
.row-details-button:focus-visible {
  opacity: 1;
}

.row-details-button:hover {
  border-color: var(--color-interactive-border);
  background: var(--color-interactive-soft);
}

.detail-backdrop {
  position: fixed;
  z-index: 55;
  inset: 0;
  border: 0;
  background: var(--color-overlay);
}

.detail-drawer {
  position: fixed;
  z-index: 60;
  inset: 0 0 0 auto;
  width: min(440px, 100vw);
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--color-border-strong);
  background: var(--color-bg-surface);
  box-shadow: var(--shadow-overlay);
  transform: translateX(102%);
  visibility: hidden;
  transition: transform var(--motion-slow) var(--ease-enter), visibility 0s linear var(--motion-slow);
}

.detail-drawer[data-state="open"] {
  transform: translateX(0);
  visibility: visible;
  transition-delay: 0s;
}

.detail-drawer__header {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--color-divider);
}

.detail-drawer__eyebrow {
  color: var(--color-text-muted);
  font-size: 10px;
  font-weight: 500;
}

.detail-drawer__header h2 {
  margin: 1px 0 0;
  font-size: 16px;
  font-weight: 600;
}

.detail-drawer__body {
  overflow: auto;
  padding: 16px;
}

.settlement-detail-inline {
  margin-top: var(--space-5);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-lg);
  background: var(--color-bg-surface);
  box-shadow: var(--shadow-card);
  scroll-margin-top: calc(var(--app-header-height) + var(--space-4));
}

.settlement-detail-inline:focus-visible { outline: 2px solid var(--color-interactive); outline-offset: 3px; }
.settlement-detail-inline > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--color-divider); }
.settlement-detail-inline > header h2 { margin: 1px 0 2px; font-size: var(--font-size-lg); }
.settlement-detail-inline > header p { margin: 0; color: var(--color-text-muted); font-size: var(--font-size-sm); }
.settlement-detail-inline__body { overflow-x: auto; padding: var(--space-5); }
.settlement-detail-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-3); }
.settlement-detail-filter { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--color-text-secondary); font-size: var(--font-size-sm); }
/* The total row is pinned under the sticky header and stays out of the sort. */
.settlement-charge-table .settlement-charge-total > * { position: sticky; top: calc(32px * var(--table-zoom) + 1px); z-index: 2; border-bottom: 1px solid var(--color-border-strong); background: var(--color-bg-selected); color: var(--color-text-primary); font-size: calc(12.5px * var(--table-zoom)); font-weight: 700; }
.settlement-charge-table .settlement-charge-total > th:first-child { z-index: 3; }
.matrix-value.is-selected,.matrix-category-action.is-selected { background: var(--color-interactive-soft); color: var(--color-interactive-active); box-shadow: inset 0 0 0 1px var(--color-interactive-border); }

@media (max-width: 640px) {
  .settlement-detail-inline > header { flex-direction: column; padding: var(--space-4); }
  .settlement-detail-inline > header .button-secondary { width: 100%; min-height: 44px; }
  .settlement-detail-inline__body { padding: var(--space-4); }
}

.drawer-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.drawer-summary > div {
  padding: 10px;
  border-right: 1px solid var(--color-divider);
}

.drawer-summary > div:last-child {
  border-right: 0;
}

.drawer-summary span,
.drawer-summary strong {
  display: block;
}

.drawer-summary span {
  color: var(--color-text-muted);
  font-size: 10px;
}

.drawer-summary strong {
  margin-top: 3px;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.command-palette {
  width: min(620px, calc(100vw - 32px));
  max-height: min(620px, calc(100vh - 72px));
  padding: 0;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-lg);
  background: var(--color-bg-surface);
  color: var(--color-text-primary);
  box-shadow: var(--shadow-overlay);
}

.command-palette::backdrop {
  background: var(--color-overlay-strong);
}

.command-palette[open] {
  animation: palette-enter var(--motion-base) var(--ease-enter);
}

@keyframes palette-enter {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

.command-palette__search {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--color-divider);
  color: var(--color-text-muted);
}

.command-palette__search:focus-within {
  outline: 2px solid var(--color-focus);
  outline-offset: -2px;
}

.command-palette__search input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--color-text-primary);
  font-size: 14px;
}

.command-results {
  max-height: 430px;
  overflow: auto;
  padding: 8px;
}

.command-result {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 7px 9px;
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-text-primary);
  text-align: left;
}

.command-result[aria-selected="true"] {
  background: var(--color-bg-selected);
}

.command-result__copy {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.command-result__title {
  overflow: hidden;
  font-size: 13px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.command-result__type {
  color: var(--color-text-muted);
  font-size: 11px;
}

.command-empty {
  margin: 0;
  padding: 28px 12px;
  color: var(--color-text-muted);
  font-size: 12px;
  text-align: center;
}

.command-palette__footer {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  padding: 8px 12px;
  border-top: 1px solid var(--color-divider);
  color: var(--color-text-muted);
  font-size: 10px;
}

.app-toast {
  position: fixed;
  z-index: 70;
  right: 20px;
  bottom: 20px;
  max-width: min(360px, calc(100vw - 28px));
  padding: 9px 12px;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  background: var(--color-bg-surface);
  color: var(--color-text-primary);
  box-shadow: var(--shadow-overlay);
  font-size: 12px;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.admin-workspace { display: grid; gap: var(--space-5); min-width: 0; }
.users-workspace { position: relative; }
.admin-context-label { margin: 0 0 3px; color: var(--color-text-muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.admin-users-onboarding { align-self: end; max-width: 420px; margin: 0 0 5px auto; color: var(--color-text-muted); font-size: 12px; }
.admin-users-state { margin: 18px 0; padding: 18px; border: 1px solid var(--color-divider); border-radius: 8px; color: var(--color-text-secondary); }
.admin-users-state[data-state="loading"] { color: var(--color-text-muted); background: var(--color-bg-subtle); }
.admin-users-state:empty { display: none; }
.admin-users-state[data-state="unauthorized"], .admin-users-state[data-state="error"] { color: var(--color-negative); background: var(--color-negative-soft-bg); }
.admin-user-row:hover, .admin-user-row:focus-within, .admin-user-row[aria-selected="true"] { background: var(--color-bg-hover); }
.admin-user-pill { display: inline-flex; width: fit-content; padding: 3px 7px; border-radius: 999px; background: var(--color-bg-subtle); color: var(--color-text-secondary); font-size: 11px; line-height: 1.2; }
.admin-user-pill.is-active { color: var(--color-positive); background: var(--color-positive-soft-bg); }.admin-user-pill.is-disabled { color: var(--color-warning); background: var(--color-warning-soft-bg); }.admin-user-pill.is-inherited { background: var(--color-interactive-soft); color: var(--color-interactive-active); }.admin-user-pill.is-capability { margin: 2px 4px 2px 0; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.button-compact { padding: 5px 9px; font-size: 11px; }
.users-detail-panel { margin-top: 18px; padding: 20px; border: 1px solid var(--color-divider); border-radius: 10px; background: var(--color-bg-surface); box-shadow: 0 8px 24px rgb(0 0 0 / 7%); }
.users-detail-header { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--color-divider); }.users-detail-header h2 { margin: 0; }
.users-detail-section { margin-top: 20px; }.users-detail-section h3 { margin: 0 0 10px; font-size: 15px; }.users-detail-section h4 { margin: 14px 0 7px; font-size: 12px; color: var(--color-text-secondary); }
.admin-user-definition-list { display: grid; grid-template-columns: minmax(130px, .4fr) 1fr; gap: 7px 14px; margin: 0; font-size: 12px; }.admin-user-definition-list dt { color: var(--color-text-muted); }.admin-user-definition-list dd { margin: 0; overflow-wrap: anywhere; }
.users-detail-explanation, .users-detail-empty { color: var(--color-text-muted); font-size: 12px; }.users-access-group { margin-top: 12px; }.users-access-line, .users-control-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--color-divider); font-size: 12px; }.users-role-card { margin: 8px 0; padding: 10px; border: 1px solid var(--color-divider); border-radius: 7px; }.users-role-card p { margin: 4px 0 7px; color: var(--color-text-muted); font-size: 12px; }.users-capability-list { display: flex; flex-wrap: wrap; }.users-effective-capabilities { margin-top: 14px; }.users-activity-line { padding: 7px 0; border-bottom: 1px solid var(--color-divider); color: var(--color-text-secondary); font-size: 12px; }.users-control-group { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--color-divider); }.users-control-group select { max-width: 280px; margin-right: 8px; }
.admin-overview { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); }.admin-overview h2 { margin: 0; font-size: 15px; }.admin-overview p { margin: 4px 0 0; color: var(--color-text-secondary); font-size: 12px; }.admin-overview__cards { display: grid; grid-template-columns: repeat(4, minmax(96px, 1fr)); border-left: 1px solid var(--color-divider); }.admin-overview__cards > div { padding: 0 var(--space-4); border-right: 1px solid var(--color-divider); }.admin-overview__cards > div:last-child { border-right: 0; }.admin-overview__cards span, .admin-overview__cards strong { display: block; }.admin-overview__cards span { color: var(--color-text-muted); font-size: 10px; }.admin-overview__cards strong { margin-top: 3px; font-size: 13px; font-variant-numeric: tabular-nums; }
.admin-section { border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); }
.admin-section > header { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-4); border-bottom: 1px solid var(--color-divider); }
.admin-section h2 { margin: 0; font-size: 15px; }.admin-section p { margin: 4px 0 0; color: var(--color-text-secondary); font-size: 12px; }
.admin-subsection-title { margin: 0; padding: var(--space-4) var(--space-3) var(--space-2); border-top: 1px solid var(--color-divider); font-size: 12px; font-weight: 600; }
.admin-dispatch-form { display: grid; gap: var(--space-4); padding: var(--space-4); }.admin-dispatch-form fieldset { display: grid; gap: var(--space-2); border: 0; padding: 0; }.admin-dispatch-form legend { margin-bottom: var(--space-2); font-size: 12px; font-weight: 600; }.admin-dispatch-form label { color: var(--color-text-secondary); font-size: 13px; }
.admin-schedule-controls { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-4); padding: var(--space-4); }.admin-schedule-controls label { display: grid; gap: var(--space-1); color: var(--color-text-secondary); font-size: 13px; }.admin-schedule-controls select { min-width: 190px; }
.admin-date-fields { display: flex; gap: var(--space-3); margin: var(--space-2) 0; }.admin-date-fields input { display: block; width: 100%; margin-top: 4px; }
.admin-feed-actions { display: grid; gap: var(--space-2); align-content: center; }.admin-feed-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }.admin-feed-group { display: grid; gap: var(--space-2); padding: 10px; border: 1px solid var(--color-divider); border-radius: var(--radius-md); }.admin-feed-group strong { font-size: 11px; color: var(--color-text-muted); }.admin-feed-group label { display: block; }.admin-empty { margin: var(--space-4); color: var(--color-text-secondary); font-size: 13px; }
.admin-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; }
.admin-table th, .admin-table td { padding: 9px 12px; border-bottom: 1px solid var(--color-divider); text-align: left; vertical-align: middle; }
.admin-table th { position: sticky; top: 0; z-index: 1; background: var(--color-bg-surface); color: var(--color-text-muted); font-size: 11px; font-weight: 500; }
.admin-table .numeric { text-align: right; font-variant-numeric: tabular-nums; }
.admin-main .admin-table { min-width: 680px; font-size: 12.5px; }
.admin-main .admin-table th, .admin-main .admin-table td { padding: 10px 14px; }
.admin-main .admin-table th { padding-block: 8px; background: var(--color-bg-subtle); box-shadow: inset 0 -1px 0 var(--color-border-strong); font-size: 11px; font-weight: 600; letter-spacing: .02em; white-space: nowrap; }
.admin-main .admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-main .admin-table tbody tr:hover > td { background: var(--color-bg-hover); }
.admin-feed-name { font-weight: 600; }.admin-secondary { display: block; margin-top: 2px; color: var(--color-text-muted); font-size: 10px; }.admin-row-detail { min-height: 32px; padding: 4px 7px; font-size: 11px; }.admin-load-more { padding: var(--space-3) var(--space-4); }
.organization-entity-detail { padding: var(--space-4); border-left: 3px solid var(--color-interactive); background: var(--color-bg-subtle); }
.organization-entity-detail > header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-3); }
.organization-entity-detail h3 { margin: 0; font-size: 14px; }
.admin-status { display: inline-block; color: var(--color-text-secondary); }.admin-status--failed { color: var(--color-negative); }.admin-status--succeeded { color: var(--color-positive); }.admin-status--succeeded_with_rejections { color: var(--color-warning); }.admin-status--gaps { color: var(--color-negative); font-weight: 600; }.admin-status--complete { color: var(--color-positive); font-weight: 600; }.admin-status--unavailable { color: var(--color-warning); font-weight: 600; }.admin-table-footer { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); color: var(--color-text-muted); font-size: 12px; }
.admin-feed-health-current > td { background: var(--color-positive-soft-bg); }.admin-feed-health-current:hover > td { background: var(--color-positive-soft-bg); }
.admin-exceptions { display: grid; gap: 1px; background: var(--color-divider); }.admin-exception { display: grid; gap: 3px; padding: 11px var(--space-4); background: var(--color-bg-surface); font-size: 12px; }.admin-exception span { color: var(--color-text-muted); }.dialog-actions { display: flex; justify-content: end; gap: var(--space-2); margin-top: var(--space-4); }
.admin-drawer-list { display: grid; grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.2fr); gap: 8px 12px; margin: 0; font-size: 12px; }.admin-drawer-list dt { color: var(--color-text-muted); }.admin-drawer-list dd { margin: 0; overflow-wrap: anywhere; }.admin-drawer-list pre { margin: 0; white-space: pre-wrap; font: inherit; }.admin-drawer-section { margin-top: 20px; }.admin-drawer-section h3 { margin: 0 0 10px; font-size: 13px; }

@media (hover: none), (max-width: 1023px) {
  .row-details-button {
    opacity: 1;
  }
}

@media (max-width: 1023px) {
  body.app-sidebar-collapsed .app-header {
    left: 0;
  }

  body.app-sidebar-collapsed .app-main {
    margin-left: 0;
  }

  body.app-sidebar-collapsed .app-sidebar {
    width: 280px;
  }

  body.app-sidebar-collapsed .app-brand {
    justify-content: flex-start;
    padding-inline: 16px;
  }

  body.app-sidebar-collapsed .app-brand__name,
  body.app-sidebar-collapsed .app-brand__workspace,
  body.app-sidebar-collapsed .quick-search,
  body.app-sidebar-collapsed .sidebar-group,
  body.app-sidebar-collapsed .app-nav__label,
  body.app-sidebar-collapsed .app-nav__item span,
  body.app-sidebar-collapsed .app-nav__children,
  body.app-sidebar-collapsed .sidebar-collapse span,
  body.app-sidebar-collapsed .environment-badge {
    display: initial;
  }

  body.app-sidebar-collapsed .scope-stack {
    display: grid;
  }

  body.app-sidebar-collapsed .app-nav__item,
  body.app-sidebar-collapsed .sidebar-collapse {
    justify-content: flex-start;
    padding-inline: 9px;
  }

  .sidebar-collapse {
    display: none;
  }
}

@media (max-width: 767px) {
  .quick-search,
  .scope-control__select,
  .recent-item {
    min-height: 44px;
  }

  .summary-card {
    border-right: 0;
  }

  .detail-drawer {
    width: 100vw;
    border-left: 0;
  }

  .command-palette {
    width: calc(100vw - 20px);
    margin-top: 10px;
  }

  .app-toast {
    right: 14px;
    bottom: 14px;
  }
  .admin-overview { display: grid; }.admin-overview__cards { border-left: 0; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--color-divider); }.admin-overview__cards > div { padding: var(--space-3); }.admin-feed-list { grid-template-columns: 1fr; }.admin-date-fields { display: grid; grid-template-columns: 1fr; }
  .admin-section > header { align-items: flex-start; flex-direction: column; padding: var(--space-3); }
  .admin-section > header .button-secondary { width: 100%; }
  .admin-users-onboarding { margin: 0; align-self: auto; }
  .users-detail-panel { padding: 14px; }
  .admin-mobile-cards { min-width: 0; }
  .admin-main .admin-mobile-cards { min-width: 0; }
  .admin-mobile-cards thead { display: none; }
  .admin-mobile-cards, .admin-mobile-cards tbody { display: block; }
  .admin-mobile-cards > tbody > tr:not(.organization-entity-row) { display: block; margin: 0 0 var(--space-3); overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); }
  .admin-mobile-cards > tbody > tr:not(.organization-entity-row) > td { display: grid; grid-template-columns: minmax(108px, .42fr) minmax(0, 1fr); gap: var(--space-3); min-height: 40px; padding: 8px 12px; text-align: left; overflow-wrap: anywhere; }
  .admin-mobile-cards > tbody > tr:not(.organization-entity-row) > td::before { content: attr(data-label); color: var(--color-text-muted); font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
  .admin-mobile-cards > tbody > tr:not(.organization-entity-row) > td[colspan] { display: block; }
  .admin-mobile-cards > tbody > tr:not(.organization-entity-row) > td[colspan]::before { content: none; }
  .admin-mobile-cards .admin-row-detail, .admin-mobile-cards .organization-toggle { width: 100%; min-height: 44px; }
  .organization-entity-row { display: block; margin: calc(var(--space-3) * -1) 0 var(--space-3); }
  .organization-entity-row > td { display: block; padding: 0; border: 1px solid var(--color-border); border-top: 0; border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
  .organization-entity-detail > header { align-items: stretch; flex-direction: column; }
  .organization-entity-table { min-width: 0; }
  .organization-entity-table thead { display: none; }
  .organization-entity-table, .organization-entity-table tbody, .organization-entity-table tr, .organization-entity-table td { display: block; }
  .organization-entity-table tr { padding: 8px 0; border-bottom: 1px solid var(--color-divider); }
  .organization-entity-table td { display: grid; grid-template-columns: minmax(90px, .38fr) 1fr; gap: var(--space-2); padding: 5px 0; border: 0; }
  .organization-entity-table td::before { content: attr(data-label); color: var(--color-text-muted); font-size: 10px; font-weight: 600; text-transform: uppercase; }
  .admin-drawer-list, .admin-user-definition-list { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .quick-search,
  .recent-item,
  .sidebar-collapse,
  .sidebar-collapse svg,
  .summary-card,
  .summary-grid,
  .table-wrap,
  .results-trust,
  .row-details-button,
  .detail-drawer,
  .analytical-results,
  .settlement-detail-inline,
  .users-detail-panel,
  .organization-entity-detail {
    transition: none !important;
  }

  .command-palette[open] {
    animation: none;
  }
}
body[data-power-ops-route="admin"] #settlements,
body[data-power-ops-route="admin"] #prices,
body[data-power-ops-route="admin"] #load,
body[data-power-ops-route="admin-users"] #settlements,
body[data-power-ops-route="admin-users"] #prices,
body[data-power-ops-route="admin-users"] #load,
body[data-power-ops-route="admin-organizations"] #settlements,
body[data-power-ops-route="admin-organizations"] #prices,
body[data-power-ops-route="admin-organizations"] #load { display: none !important; }
/* Client Load */
.client-load-workspace{max-width:1440px;container-type:inline-size}
.client-load-chart{min-height:278px}
.client-load-table{min-width:0;table-layout:fixed}
.client-load-table th,.client-load-table td{padding-inline:8px}
.client-load-table thead tr:last-child th{white-space:normal;vertical-align:bottom}
@container (min-width:621px){.client-load-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.client-load-kpis .shape-kpi:nth-child(3n){border-right:0}.client-load-kpis .shape-kpi:nth-child(-n+3){border-bottom:1px solid var(--color-divider)}}
.client-load-table-controls{display:flex;flex-wrap:wrap;align-items:end;gap:16px;padding:0 20px 16px}
.client-load-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 20px 16px}
.client-load-breadcrumbs [aria-current="page"]{color:var(--color-text-primary);font-weight:600}
.client-load-table td:first-child button,.client-load-table td:nth-child(2) button{white-space:nowrap;background:transparent;border:0;box-shadow:none;padding:0;min-height:0;height:auto;color:var(--color-interactive);text-align:left;font:inherit}
.client-load-hour-block{display:inline;margin-left:12px;color:var(--color-text-secondary);font:inherit}
.client-load-partial{font:inherit;color:var(--color-text-secondary);white-space:normal}
.client-load-partial summary{cursor:pointer;color:var(--color-warning)}
.client-load-partial span{display:block;max-width:100%;overflow-wrap:anywhere;text-align:left}
@media(max-width:767px){.client-load-table-controls .field{width:100%;max-width:none}.client-load-table-controls,.client-load-breadcrumbs{padding-inline:14px}.client-load-table td:first-child button{min-height:44px}}
.client-load-table tbody tr{cursor:pointer}
.client-load-table tbody tr.is-selected>td{background:var(--color-bg-selected)}
.client-load-table tbody tr:focus-visible>td{outline:2px solid var(--color-focus);outline-offset:-2px}
.client-load-table thead{position:sticky;top:0;z-index:4}
#client_load_table thead th{position:static;background:var(--color-bg-subtle)}
#client_load_table th.client-load-date-column,#client_load_table td.client-load-date-column{position:sticky;left:0;z-index:2;background:var(--color-bg-subtle)}
#client_load_table th.client-load-date-column:nth-child(2),#client_load_table td.client-load-date-column:nth-child(2){left:var(--client-load-day-width,56px)}
.client-load-table th.client-load-group-heading{text-align:left;border-left:1px solid var(--color-border-strong)}
.client-load-group-label{position:sticky;left:calc(var(--client-load-period-width,160px) + 12px);display:inline-block}
.client-load-table .client-load-group-start{border-left:1px solid var(--color-border-strong)}
.client-load-table .client-load-partial{display:inline-block;margin-left:4px}
.client-load-table .client-load-partial summary{display:inline;color:var(--color-warning);font-weight:700;cursor:pointer;min-width:24px;min-height:24px}
.client-load-table .client-load-partial summary::-webkit-details-marker{display:none}
.client-load-selected-dates{display:inline;margin-left:8px;font-size:11px;color:var(--color-text-secondary)}
.client-load-table td button[data-client-load-period],.client-load-table tr[data-client-load-identity] td button{white-space:nowrap;background:transparent;border:0;box-shadow:none;padding:0;min-height:0;height:auto;color:var(--color-interactive);text-align:left;font:inherit}
@media(max-width:800px){.client-load-table td button[data-client-load-period],.client-load-table tr[data-client-load-identity] td button{min-height:36px}.client-load-table .client-load-partial summary{display:inline-block}}
.client-load-table td.is-missing{color:var(--color-text-muted);font-style:italic;background:repeating-linear-gradient(135deg,var(--color-bg-surface),var(--color-bg-surface) 6px,var(--color-bg-subtle) 6px,var(--color-bg-subtle) 12px)}
@media(max-width:800px){.client-load-workspace .filter-form{display:grid;grid-template-columns:1fr}.client-load-workspace .field,.client-load-workspace .field input,.client-load-workspace .field select,.client-load-workspace .filter-form .button-primary{width:100%;min-width:0}}

/* Market Intelligence */
.market-intelligence-main{overflow:hidden}
.market-intelligence-workspace{max-width:none;height:100%;min-height:0;display:flex;flex-direction:column;gap:6px}
.market-intelligence-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:58px}
.market-intelligence-heading h1{margin:0 0 2px;font-size:24px;font-weight:600;letter-spacing:-.025em}
.market-intelligence-heading>div:first-child{min-width:0}.market-intelligence-heading p{margin:0;color:var(--color-text-secondary);font-size:13px}
.market-intelligence-actions{display:flex;align-items:center;gap:8px;min-height:32px;flex:0 1 auto}.market-intelligence-updated{max-width:min(280px,25vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.market-intelligence-market-preferences{width:min(340px,calc(100vw - 32px));max-height:min(460px,calc(100vh - 90px));padding:14px;overflow:auto;border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg-surface);box-shadow:0 12px 28px rgb(23 26 31 / 16%)}
.market-intelligence-market-preferences::backdrop{background:rgb(23 26 31 / 8%)}
.market-intelligence-market-preferences header{display:flex;align-items:center;justify-content:space-between;gap:12px}.market-intelligence-market-preferences header strong{font-size:14px}.market-intelligence-market-preferences header .button-secondary{height:30px;padding:0 10px;font-size:12px}
.market-intelligence-market-preferences p{margin:10px 0;color:var(--color-text-secondary);font-size:12px;line-height:1.4}.market-intelligence-market-preferences-list{display:grid;gap:2px;border-top:1px solid var(--color-divider);padding-top:8px}
.market-intelligence-market-preference{display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:8px;align-items:center;min-height:36px;padding:5px 6px;border-radius:var(--radius-sm);cursor:pointer}.market-intelligence-market-preference:hover{background:var(--color-bg-hover)}.market-intelligence-market-preference input{margin:0}.market-intelligence-market-preference span{overflow:hidden;font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.market-intelligence-market-preference small{grid-column:2;color:var(--color-text-muted);font-size:10px}
.market-intelligence-preferences-empty{display:grid;justify-items:start;gap:10px;max-width:520px;margin:48px auto;padding:24px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-surface)}.market-intelligence-preferences-empty h2{margin:0;font-size:18px}.market-intelligence-preferences-empty p{margin:0;color:var(--color-text-secondary);font-size:13px;line-height:1.45}
.market-intelligence-updated{color:var(--color-text-muted);font-size:12px;text-align:right}
.market-intelligence-legend{display:flex;align-items:center;gap:16px;min-height:28px;color:var(--color-text-muted);font-size:11px}
.market-intelligence-legend span{display:inline-flex;align-items:center;gap:5px}
.market-intelligence-legend b,.market-intelligence-state{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border:1px solid var(--color-border-strong);border-radius:3px;background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:9px;font-weight:600;line-height:1}
.market-intelligence-content{display:flex;min-height:0;flex:1;flex-direction:column;gap:6px;container-type:inline-size;container-name:market-intelligence}
.market-intelligence-table-wrap{height:100%;overflow:auto;overscroll-behavior-y:auto;touch-action:pan-x pan-y;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface);outline:none;scrollbar-gutter:stable}
.market-intelligence-table-wrap:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.market-intelligence-table{width:max-content;min-width:100%;border-spacing:0;border-collapse:separate;table-layout:fixed;font-variant-numeric:tabular-nums}
.market-intelligence-table th,.market-intelligence-table td{padding:0;border-right:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);background:var(--color-bg-surface)}
.market-intelligence-table thead th{position:sticky;top:0;z-index:5;height:48px;padding:7px 6px;background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:10px;font-weight:500;text-align:center;text-transform:uppercase;letter-spacing:.03em}
.market-intelligence-table thead th>span,.market-intelligence-table thead th>strong{display:block}
.market-intelligence-table thead th>strong{margin-top:2px;color:var(--color-text-primary);font-size:11px;font-weight:600;letter-spacing:0}
.market-intelligence-table .market-intelligence-iso-column{position:sticky;left:0;z-index:4;width:54px;min-width:54px;max-width:54px;padding:10px 7px;background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:10px;font-weight:600;text-align:left;vertical-align:top}
.market-intelligence-table thead .market-intelligence-iso-column{z-index:8;vertical-align:middle}
.market-intelligence-table .market-intelligence-location-column{position:sticky;left:54px;z-index:4;width:116px;min-width:116px;max-width:116px;padding:9px 8px;background:var(--color-bg-surface);color:var(--color-text-primary);font-size:11px;text-align:left;vertical-align:middle;box-shadow:1px 0 0 var(--color-border)}
.market-intelligence-table thead .market-intelligence-location-column{z-index:8;background:var(--color-bg-subtle);vertical-align:middle}
.market-intelligence-location-column strong,.market-intelligence-location-column span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.market-intelligence-location-column strong{font-weight:600}.market-intelligence-location-column span{margin-top:2px;color:var(--color-text-faint);font-size:9px;font-weight:500}
.market-intelligence-cell{width:92px;min-width:92px;max-width:92px;height:76px;vertical-align:top}
.market-intelligence-cell-button{width:100%;height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;padding:7px 6px;border:0;border-radius:0;background:transparent;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer}
.market-intelligence-cell-button:hover{background:var(--color-bg-hover)}
.market-intelligence-cell-button.is-selected{position:relative;z-index:1;background:var(--color-bg-selected);box-shadow:inset 0 0 0 1px var(--color-interactive-border)}
.market-intelligence-cell-button:focus-visible{position:relative;z-index:2;outline:2px solid var(--color-focus);outline-offset:-2px}
.market-intelligence-metric{width:100%;display:block;overflow:hidden;color:var(--color-text-primary);font-size:10px;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}
.market-intelligence-price{font-weight:550}.market-intelligence-metric.is-partial-total{color:var(--color-text-faint)}
.market-intelligence-metric .market-intelligence-state{position:relative;top:-1px;min-width:13px;height:13px;padding:0 3px;font-size:8px}
.market-intelligence-cell-detail,.market-intelligence-active-day,.market-intelligence-completeness{max-width:100%;overflow:hidden;color:var(--color-text-faint);font-size:8px;line-height:1.1;white-space:nowrap;text-overflow:ellipsis}
.market-intelligence-active-day{color:var(--color-interactive-active);font-weight:550}
.market-intelligence-table .is-today-column{background:var(--color-interactive-soft-alt-bg)}
.market-intelligence-table thead .is-today-column{color:var(--color-interactive-active);box-shadow:inset 0 2px 0 var(--color-interactive)}
.market-intelligence-cell.is-active-operating-day:not(.is-today-column) .market-intelligence-cell-button{box-shadow:inset 0 2px 0 var(--color-interactive-border)}
.market-intelligence-cell-button.has-error{color:var(--color-negative)}
.market-intelligence-preview{position:fixed;z-index:30;max-height:calc(100vh - 76px);overflow:auto;padding:14px;border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg-surface);box-shadow:0 12px 28px rgb(23 26 31 / 16%)}
.market-intelligence-preview[hidden]{display:none}
.market-intelligence-preview>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.market-intelligence-preview>header span{display:block;color:var(--color-text-muted);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.market-intelligence-preview>header h2{margin:2px 0;font-size:16px;font-weight:600}
.market-intelligence-preview>header p{margin:0;color:var(--color-text-muted);font-size:10px;line-height:1.35}
.market-intelligence-preview>header .market-intelligence-preview-completeness{color:var(--color-text-faint);font-size:9px}
.market-intelligence-preview-state{min-height:16px;margin:4px 0;color:var(--color-text-secondary);font-size:11px}
.market-intelligence-preview-chart{display:grid;grid-template-columns:58px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:0 8px;min-height:88px;padding:6px 4px;border-top:1px solid var(--color-divider);color:inherit;text-decoration:none}
.market-intelligence-preview-chart:hover{background:var(--color-bg-hover)}
.market-intelligence-preview-chart:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}
.market-intelligence-preview-chart>span{grid-row:1;color:var(--color-text-primary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.market-intelligence-preview-chart>div{grid-column:2;grid-row:1 / span 2;width:100%;height:72px;overflow:hidden}
.market-intelligence-preview-chart>small{grid-column:1;grid-row:2;color:var(--color-interactive);font-size:8px;line-height:1.2}
.market-intelligence-preview-chart .uplot{font-family:inherit!important}
@media(max-width:1023px){.market-intelligence-main{overflow:auto}.market-intelligence-heading{gap:12px}.market-intelligence-cell{width:100px;min-width:100px;max-width:100px}.market-intelligence-preview{left:12px!important;right:12px!important;bottom:12px;top:auto!important;width:auto!important;max-height:62vh}}
@media(max-width:767px){.market-intelligence-workspace{gap:8px}.market-intelligence-heading{align-items:stretch;flex-direction:column}.market-intelligence-heading h1{font-size:20px}.market-intelligence-actions{justify-content:space-between}.market-intelligence-legend{gap:10px;overflow-x:auto;white-space:nowrap}.market-intelligence-table .market-intelligence-iso-column{width:46px;min-width:46px;max-width:46px}.market-intelligence-table .market-intelligence-location-column{left:46px;width:104px;min-width:104px;max-width:104px}.market-intelligence-cell{height:82px}.market-intelligence-preview-chart{grid-template-columns:52px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.market-intelligence-cell-button,.market-intelligence-preview-chart{transition:none!important}}

/* Market Intelligence single-metric heatmap and persistent Inspector */
.market-intelligence-content[hidden]{display:none}
.market-intelligence-toolbar{position:relative;z-index:10;display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:0;min-height:36px;padding:3px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface)}
.market-intelligence-metric-nav{display:flex;min-height:34px;overflow-x:auto;border-bottom:1px solid var(--color-divider);white-space:nowrap}
.market-intelligence-metric-tab{height:33px;flex:0 0 auto;padding:0 11px;border:0;border-right:1px solid var(--color-divider);border-radius:0;background:transparent;color:var(--color-text-secondary);font:500 12px/1 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer}
.market-intelligence-metric-tab:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}
.market-intelligence-metric-tab.is-active{background:var(--color-interactive);color:#fff}
.market-intelligence-metric-tab:focus-visible{position:relative;z-index:2;outline:2px solid var(--color-focus);outline-offset:-2px}
.market-intelligence-matrix-controls{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0}.market-intelligence-responsive-metric{display:flex;align-items:center;min-width:0;color:var(--color-text-secondary);font-size:11px}.market-intelligence-responsive-metric select,.market-intelligence-matrix-controls .button-secondary{height:32px;min-height:32px;border-color:var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:12px;font-weight:600}.market-intelligence-responsive-metric select{min-width:174px;padding:0 28px 0 10px}.market-intelligence-matrix-controls .button-secondary{padding:0 10px;white-space:nowrap}.market-intelligence-responsive-metric select:hover,.market-intelligence-matrix-controls .button-secondary:hover{border-color:var(--color-control-edge-hover);background:var(--color-bg-hover)}
.market-intelligence-toolbar .market-intelligence-scale-row{min-width:0;flex:1;padding:0}
.market-intelligence-scale-row{min-height:30px;display:flex;align-items:center;justify-content:flex-end;gap:10px}
.market-intelligence-scale-identity{display:flex;align-items:center;gap:4px;flex:0 0 auto}.market-intelligence-scale-label{color:var(--color-text-secondary);font-size:10px;font-weight:500;white-space:nowrap}
.market-intelligence-scale-identity .info-control,.market-intelligence-scale-identity .market-freshness-info{flex:0 0 24px}
.market-intelligence-scale{display:grid;grid-template-columns:auto minmax(74px,1fr) auto minmax(74px,1fr) auto;align-items:center;gap:4px;min-width:280px;color:var(--color-text-muted);font-size:9px;white-space:nowrap}.market-intelligence-scale.is-unavailable i{background:var(--color-bg-subtle)!important}
.market-intelligence-scale-anchor{display:grid;gap:1px;text-align:center}.market-intelligence-scale-anchor b{color:var(--color-text-primary);font-size:10px;font-weight:600;font-variant-numeric:tabular-nums}.market-intelligence-scale-anchor small{font-size:8px;line-height:1;color:var(--color-text-muted)}
.market-intelligence-scale i{height:8px;border-top:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong)}.market-intelligence-scale i:nth-of-type(1){border-left:1px solid var(--color-border-strong);border-radius:3px 0 0 3px;background:linear-gradient(90deg,var(--color-interactive),var(--color-bg-page))}.market-intelligence-scale i:nth-of-type(2){border-right:1px solid var(--color-border-strong);border-radius:0 3px 3px 0;background:linear-gradient(90deg,var(--color-bg-page),var(--color-heat-negative))}
.market-intelligence-analysis{min-height:0;display:grid;flex:1;grid-template-columns:minmax(360px,2fr) minmax(0,3fr);grid-template-areas:"toolbar toolbar" "summary chart" "matrix matrix" "scale scale";grid-template-rows:auto auto minmax(220px,1fr) auto;gap:4px}
.market-intelligence-analysis>.market-intelligence-table-wrap{grid-area:matrix;min-width:0;height:auto}
.market-intelligence-analysis>.market-intelligence-toolbar{grid-area:toolbar}
.market-intelligence-table thead .market-intelligence-phase-row th{top:0;height:22px;padding:3px 6px;border-bottom:1px solid var(--color-border-strong);background:var(--color-bg-subtle);color:var(--color-text-primary);font-size:10px;letter-spacing:.08em}
.market-intelligence-table thead .market-intelligence-date-row th{top:22px;height:40px;padding:4px 6px}
.market-intelligence-table .market-intelligence-identity-heading{position:sticky;left:0;z-index:9;text-align:center;padding-left:6px!important}
.market-intelligence-table tbody th,.market-intelligence-table tbody td{border-bottom:0}
.market-intelligence-table .market-intelligence-iso-column{width:48px;min-width:48px;max-width:48px;padding:8px 6px;text-align:center;vertical-align:middle}
.market-intelligence-table .market-intelligence-location-column{left:48px;width:112px;min-width:112px;max-width:112px;padding:3px 8px;line-height:1.1;text-align:center}
.market-intelligence-table thead .market-intelligence-location-column{left:48px}
.market-intelligence-location-column span{margin-top:0}
.market-intelligence-cell{width:76px;min-width:76px;max-width:76px;height:36px;vertical-align:middle}
.market-intelligence-cell-button{position:relative;align-items:flex-end;justify-content:center;padding:0 8px 0 4px;font-variant-numeric:tabular-nums;text-align:right}
.market-intelligence-cell-button:hover{z-index:1;box-shadow:inset 0 0 0 1px rgb(37 99 235 / 65%)}
.market-intelligence-cell-button.is-range-selected{z-index:2}
.market-intelligence-cell-button.is-range-selected::after{content:"";position:absolute;z-index:4;inset:2px;pointer-events:none;border:2px solid rgb(255 255 255 / 94%);outline:2px solid var(--color-interactive);outline-offset:-2px}
.market-intelligence-cell-button.is-previewed::after{border-width:1px;outline-width:1px;outline-color:rgb(37 99 235 / 78%)}
.market-intelligence-cell-button.is-pinned{z-index:3}
.market-intelligence-cell-button.is-pinned::before{content:"";position:absolute;z-index:5;top:4px;left:4px;width:7px;height:7px;border:1px solid rgb(255 255 255 / 96%);border-radius:50%;background:var(--color-interactive-active);box-shadow:0 0 0 1px var(--color-interactive)}
.market-intelligence-cell-button:focus-visible{z-index:6;outline:3px solid var(--color-focus);outline-offset:-3px}
.market-intelligence-table td.is-crosshair-row,.market-intelligence-table td.is-crosshair-column{position:relative}
.market-intelligence-table td.is-crosshair-row::before{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;border-top:1px solid rgb(37 99 235 / 34%);border-bottom:1px solid rgb(37 99 235 / 34%)}
.market-intelligence-table td.is-crosshair-column::after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;border-left:1px solid rgb(37 99 235 / 34%);border-right:1px solid rgb(37 99 235 / 34%)}
.market-intelligence-table .is-crosshair-header{color:var(--color-interactive-active)!important;background:var(--color-interactive-soft)!important}
.market-intelligence-date-sort{width:100%;height:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}
.market-intelligence-date-sort span,.market-intelligence-date-sort strong{display:block}.market-intelligence-date-sort strong{margin-top:2px;color:var(--color-text-primary);font-size:11px;letter-spacing:0}
.market-intelligence-date-sort:focus-visible{outline:2px solid var(--color-focus);outline-offset:0}
.market-intelligence-cell-value{display:block;max-width:100%;overflow:hidden;font-size:12px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.market-intelligence-location-column>button{width:100%;display:flex;overflow:hidden;flex-direction:column;align-items:center;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:center;cursor:pointer}
.market-intelligence-location-column>button:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.market-intelligence-location-column>button:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}
.market-intelligence-incomplete-marker{position:absolute;top:3px;right:3px;width:5px;height:5px;border:1px solid currentColor;border-radius:50%;background:transparent}
.market-intelligence-incomplete-marker[hidden]{display:none}
.market-intelligence-table td.is-today-column{border-left:1px solid var(--color-interactive-border);border-right:1px solid var(--color-interactive-border)}
.market-intelligence-table thead .market-intelligence-date-row .is-today-column{box-shadow:inset 0 2px 0 var(--color-interactive)}
.market-intelligence-table thead .market-intelligence-phase-row .is-today{color:var(--color-interactive-active);box-shadow:inset 0 2px 0 var(--color-interactive)}
.market-intelligence-inspector{grid-area:summary;align-self:stretch;min-width:0;min-height:0;overflow:visible;scrollbar-gutter:auto}
.market-intelligence-metrics-card,.market-intelligence-chart-card{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface)}.market-intelligence-metrics-card{height:100%;display:flex;flex-direction:column}
.market-intelligence-metrics-card>header{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;border-bottom:1px solid var(--color-divider)}
.market-intelligence-metrics-card>header span{color:var(--color-text-muted);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.market-intelligence-metrics-card>header h2{margin:1px 0;color:var(--color-text-primary);font-size:16px;font-weight:600;line-height:1.2}.market-intelligence-metrics-card>header h2 span{color:inherit;font:inherit;letter-spacing:0;text-transform:none}.market-intelligence-metrics-card>header h2 i{color:var(--color-border-strong);font-style:normal}
.market-intelligence-metrics-card>header .button-secondary{height:26px;min-height:26px;padding:0 8px;font-size:10px}
.market-intelligence-daily-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr) auto;grid-auto-flow:row;flex:1;padding:4px 7px 3px;column-gap:8px}
.market-intelligence-daily-metrics>*{min-width:0}.market-intelligence-metric-group-section{padding:0 7px}.market-intelligence-metric-group-section:first-child{padding-left:2px}.market-intelligence-metric-group-section+.market-intelligence-metric-group-section{border-left:1px solid var(--color-divider)}
.market-intelligence-metric-group{color:var(--color-text-primary);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.market-intelligence-inspector-metric{position:relative;width:100%;min-width:0;min-height:24px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;padding:1px 4px;border:0;border-left:2px solid transparent;background:transparent;font:inherit;font-size:12px;text-align:left;cursor:pointer}
.market-intelligence-inspector-metric>span:first-child{min-width:0;overflow:hidden;color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap}
.market-intelligence-inspector-metric>a,.market-intelligence-inspector-metric>span:nth-of-type(2){min-width:0;max-width:100%;overflow:hidden;justify-self:end;color:var(--color-text-primary);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}
.market-intelligence-inspector-metric>span:nth-of-type(2){justify-self:end}
.market-intelligence-inspector-metric>a:hover{text-decoration:underline}.market-intelligence-inspector-metric>a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.market-intelligence-inspector-metric small{color:var(--color-text-muted);font-size:9px;font-weight:500}
.market-intelligence-inspector-metric.is-active{border-left-color:var(--color-interactive);background:var(--color-interactive-soft)}
.market-intelligence-inspector-metric.is-active>span:first-child{color:var(--color-interactive-active);font-weight:600}
.market-intelligence-inspector-metric.is-secondary{border-left-color:var(--color-text-secondary);background:var(--color-bg-subtle)}
.market-intelligence-inspector-metric:not(.is-active):not(.is-secondary):is(:hover,:focus-visible){border-left-color:var(--color-interactive);background:var(--color-interactive-soft)}
.market-intelligence-inspector-metric:not(.is-active):not(.is-secondary):is(:hover,:focus-visible)>span:first-child{color:var(--color-interactive-active);font-weight:600}
.market-intelligence-compare-hint{position:absolute;right:3px;bottom:-10px;z-index:3;display:none;padding:1px 4px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-bg-surface);color:var(--color-interactive)!important;font-size:8px!important}.market-intelligence-inspector-metric:hover .market-intelligence-compare-hint,.market-intelligence-inspector-metric:focus-visible .market-intelligence-compare-hint{display:block}
.market-intelligence-compare-control{display:none;padding:4px 10px 7px;color:var(--color-text-muted);font-size:10px}.market-intelligence-compare-control select{height:28px;margin-left:5px}
.market-intelligence-chart-section{grid-area:chart;min-width:0;min-height:0;display:flex;flex-direction:column;padding:5px 8px;overflow:hidden}
.market-intelligence-chart-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:1px;flex-wrap:wrap}.market-intelligence-chart-section>header>div:first-child{min-width:170px;flex:1}
.market-intelligence-chart-section h3{margin:0;color:var(--color-text-primary);font-size:16px;font-weight:600;line-height:1.2}.market-intelligence-chart-section header p{margin:1px 0 0;color:var(--color-text-muted);font-size:9px;line-height:1.25}
.market-intelligence-chart-section header .button-secondary{height:28px;min-height:28px;padding:0 8px;font-size:10px}
.market-intelligence-inspector-state{height:14px;flex:0 0 14px;overflow:hidden;color:var(--color-text-muted);font-size:10px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}
.market-intelligence-inspector-chart{min-height:160px;position:relative;flex:0 0 auto}
.market-intelligence-inspector-chart .chart-toolbar{min-height:24px;margin-bottom:1px}.market-intelligence-inspector-chart .chart-reset{height:24px;min-height:24px;padding:0 7px;font-size:10px}
.market-intelligence-inspector-chart .chart-series-key{font-size:9px}.market-intelligence-inspector-chart .chart-uplot-stage{min-width:0;--chart-stage-height:160px}
.market-intelligence-inspector-evidence{grid-column:1 / -1;align-self:end;display:flex;align-items:center;gap:6px;min-width:0;padding:3px 4px 1px;color:var(--color-text-muted);font-size:9px;line-height:1.25}
.market-intelligence-chart-actions{display:flex;gap:5px}
.market-intelligence-inspector-evidence>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-intelligence-provenance{flex:0 0 auto}.market-intelligence-provenance summary{cursor:pointer;color:var(--color-interactive);font-weight:600}.market-intelligence-provenance p{position:absolute;z-index:12;max-width:300px;margin:4px 0 0;padding:7px 8px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg-surface);box-shadow:0 8px 20px rgb(23 26 31 / 12%);color:var(--color-text-secondary);font-size:10px;line-height:1.35}.market-intelligence-inspector-evidence a{display:inline-block;flex:0 0 auto;color:var(--color-interactive);font-size:10px;font-weight:600;text-decoration:none}
.market-intelligence-inspector-evidence a:hover{text-decoration:underline}.market-intelligence-inspector-evidence a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
@media(max-width:1023px){.market-intelligence-workspace{height:auto;min-height:100%}.market-intelligence-content,.market-intelligence-analysis{flex:0 0 auto}.market-intelligence-analysis{grid-template-columns:minmax(0,1fr);grid-template-areas:"toolbar" "summary" "matrix" "scale" "chart";grid-template-rows:auto auto minmax(260px,54dvh) auto auto;overflow:visible}.market-intelligence-metrics-card{height:auto}.market-intelligence-analysis>.market-intelligence-table-wrap{height:min(54vh,520px);height:min(54dvh,520px)}.market-intelligence-chart-card{min-height:300px}.market-intelligence-compare-control{display:block}.market-intelligence-toolbar{align-items:flex-start;flex-direction:column;padding:6px 9px}.market-intelligence-toolbar .market-intelligence-scale-row{width:100%;padding:0}.market-intelligence-scale-row{align-items:flex-start;flex-direction:column}.market-intelligence-scale{width:100%;max-width:440px;grid-template-columns:auto minmax(60px,1fr) auto minmax(60px,1fr) auto}.market-intelligence-cell{width:78px;min-width:78px;max-width:78px}}
@media(max-width:767px){.market-intelligence-heading{gap:8px}.market-intelligence-heading p{font-size:12px}.market-intelligence-toolbar{position:sticky;top:0}.market-intelligence-scale-identity{width:100%}.market-intelligence-scale-identity>span{flex:1}.market-intelligence-table .market-intelligence-iso-column{width:42px;min-width:42px;max-width:42px}.market-intelligence-table .market-intelligence-location-column{left:42px;width:102px;min-width:102px;max-width:102px}.market-intelligence-table thead .market-intelligence-location-column{left:42px}.market-intelligence-inspector{min-height:0}.market-intelligence-inspector-chart{min-height:286px}}
@media(prefers-reduced-motion:reduce){.market-intelligence-metric-tab,.market-intelligence-cell-button,.recents-toggle svg{transition:none!important}}

/* Load versus temperature relationship */
.year-over-year-controls { align-items: end; }
.year-over-year-view { margin: 0; padding: 0; border: 0; }.year-over-year-view legend { margin-bottom: 4px; padding: 0; color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 500; }
.year-over-year-comparison { width: min(420px,calc(100vw - 32px)); margin: 0; padding: 14px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-lg); background: var(--color-bg-surface); box-shadow: 0 12px 28px rgb(23 26 31 / 16%); }.year-over-year-comparison::backdrop { background: rgb(23 26 31 / 8%); }.year-over-year-comparison header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }.year-over-year-comparison strong { font-size:var(--font-size-body); }.year-over-year-comparison p { margin:3px 0 0; color:var(--color-text-muted); font-size:var(--font-size-sm); line-height:1.35; }.year-over-year-comparison .button-ghost { min-height:28px; padding:0 6px; }.year-over-year-comparison .button-primary { margin-top:14px; }
.year-over-year-years { min-width: 0; margin: 0; padding: 0; border: 0; }
.year-over-year-years legend { margin-bottom: 6px; padding: 0; color: var(--color-text-secondary); font-size: var(--font-size-sm); font-weight: 500; }
.year-over-year-years > div { display: flex; flex-wrap: wrap; gap: 6px; }
.year-over-year-years label { display: inline-flex; align-items: center; min-height: var(--control-height); gap: 6px; padding: 0 10px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-bg-surface); color: var(--color-text-secondary); font-size: var(--font-size-ui); font-variant-numeric: tabular-nums; cursor: pointer; }
.year-over-year-years label:hover { background: var(--color-bg-hover); color: var(--color-text-primary); }
.year-over-year-years label:has(input:checked) { border-color: var(--color-interactive-border); background: var(--color-interactive-soft); color: var(--color-interactive-active); }
.year-over-year-years input:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.year-over-year-chart .chart-uplot-stage { height: 29rem; }
.year-over-year-evidence { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:var(--space-2); }.year-over-year-evidence p { margin:0; }.year-over-year-provenance,.year-over-year-metric-note { color:var(--color-text-muted); font-size:var(--font-size-sm); }.year-over-year-metric-note { grid-column:1 / -1; margin:0; }.year-over-year-coverage-warning { color:var(--color-warning); font-weight:600; }
@media (max-width: 767px) {
  .year-over-year-controls { grid-template-columns:1fr 1fr; }
  .year-over-year-controls > .field, .year-over-year-view, .year-over-year-controls > .analytical-refresh-notice { grid-column: 1 / -1; }
  .year-over-year-chart .chart-uplot-stage { height: 22rem; }
  .year-over-year-evidence { align-items:flex-start; flex-direction:column; gap:4px; }
}

/* Load versus temperature relationship */
.load-temperature-workspace { container: load-temperature / inline-size; }
.load-temperature-controls { align-items: end; }
.load-temperature-controls .market-date-inputs { align-items: end; }
.load-temperature-controls .analytical-refresh-notice { flex-basis: 100%; }
.load-temperature-evidence > header { align-items: center; }
.load-temperature-layout { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: var(--space-4); margin-top: var(--space-3); }
.load-temperature-relationship { min-width: 0; }
.load-temperature-timelines { display: grid; gap: var(--space-3); min-width: 0; }
.load-temperature-timelines section,.load-temperature-density-panel { min-width: 0; }
.load-temperature-timelines h3,.load-temperature-density-heading h3 { margin: 0; color: var(--color-text-primary); font-size: var(--font-size-body); }
.load-temperature-time-chart .chart-uplot-stage { --chart-stage-height: clamp(240px,25cqi,440px); min-height: 190px; }
.load-temperature-density-panel { display: grid; grid-template-rows: auto auto auto; align-content: start; gap: var(--space-2); }
.load-temperature-density-heading { display: flex; align-items: start; justify-content: space-between; gap: var(--space-2); }
.load-temperature-density { position: relative; width: 100%; height: auto; aspect-ratio: 1 / 1; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; background: var(--color-bg-surface); }
.load-temperature-density canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; outline: none; }
.load-temperature-density canvas:focus-visible { box-shadow: inset 0 0 0 2px var(--color-focus); }
.load-temperature-density-tooltip { position: absolute; z-index: 3; max-width: 260px; padding: 8px 10px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-bg-surface); box-shadow: var(--shadow-lg); color: var(--color-text-primary); font-size: var(--font-size-sm); pointer-events: none; }
.load-temperature-density-tooltip strong { display: block; margin-bottom: 4px; }
.load-temperature-density-tooltip span { display: block; color: var(--color-text-secondary); }
.load-temperature-density-legend { display: flex; align-items: center; gap: 8px; color: var(--color-text-secondary); font-size: var(--font-size-sm); font-variant-numeric: tabular-nums; }
.load-temperature-density-ramp { width: min(240px,50%); height: 10px; border-radius: 999px; background: linear-gradient(90deg,#000099,#00FEFF,#45FE4F,#FCFF00,#FF9400,#FF3100); }
#load_temperature_coverage { display: block; margin-top: var(--space-3); }

@media(max-width:480px){
  .market-date-range__controls,.market-range-chips,.market-date-inputs{max-width:100%;min-width:0}
  .market-range-chips{flex-wrap:wrap}
  .market-date-range--presets .market-date-inputs{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .market-date-range--presets .market-date-inputs label,.market-date-range--presets .market-date-inputs input{min-width:0;width:100%}
  .market-intelligence-daily-metrics{grid-template-columns:minmax(0,1fr);grid-template-rows:none;row-gap:8px}
  .market-intelligence-metric-group-section{padding:4px 2px}
  .market-intelligence-metric-group-section+.market-intelligence-metric-group-section{border-left:0;border-top:1px solid var(--color-divider)}
  .market-intelligence-inspector-metric{min-height:32px}
  .market-intelligence-inspector-metric>span:first-child,.market-intelligence-inspector-metric>a,.market-intelligence-inspector-metric>span:nth-of-type(2){white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
}

@container load-temperature (max-width:720px){.load-temperature-layout{grid-template-columns:minmax(0,1fr)}.load-temperature-time-chart .chart-uplot-stage{--chart-stage-height:clamp(190px,32cqi,240px)}}
@media(max-width:767px){.load-temperature-controls{display:grid;grid-template-columns:1fr 1fr}.load-temperature-controls>.field,.load-temperature-controls>.market-date-range,.load-temperature-controls>.market-date-inputs,.load-temperature-controls>.analytical-refresh-notice{grid-column:1/-1}.load-temperature-controls>.button-primary{grid-column:auto}.load-temperature-evidence>header{align-items:flex-start}.load-temperature-layout{gap:12px}.load-temperature-density-heading{align-items:flex-start}.load-temperature-density-heading .button-secondary{min-height:40px}}
 .admin-activity-workspace > * { min-width: 0; }
 .admin-activity-workspace .admin-overview__cards { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; }
 .admin-activity-workspace .admin-overview__cards > div { display: grid; gap: 4px; padding: 16px; border-right: 1px solid var(--color-divider); }
 .admin-activity-workspace .admin-overview__cards > div:last-child { border-right: 0; }
 .admin-activity-workspace .admin-overview__cards strong { font-size: 18px; font-variant-numeric: tabular-nums; }
 .admin-activity-workspace .admin-overview__cards span { color: var(--color-text-muted); font-size: 11px; }
 .admin-activity-workspace .filter-form .admin-activity-internal { display: flex; align-items: center; gap: 8px; min-height: 36px; }
 .admin-activity-workspace .admin-activity-internal input { min-width: 0; width: 16px; height: 16px; margin: 0; }
 @media (max-width: 700px) { .admin-activity-workspace .admin-overview__cards { grid-template-columns: repeat(2, 1fr); } .admin-activity-workspace .admin-overview__cards > div { border-right: 0; border-bottom: 1px solid var(--color-divider); } }

/* Settled Prices keeps heat shading quiet and values in the primary text color. */
.price-range-clip { display: block; color: var(--color-text-secondary); font-size: .9em; font-weight: 400; }
.price-summary-tint { color: var(--color-text-primary); background: color-mix(in srgb, var(--price-tint-color) var(--price-tint), var(--color-bg-surface)); }
.price-summary-tint--da { --price-tint-color: var(--color-interactive); }
.price-summary-tint--rt { --price-tint-color: var(--color-text-secondary); }
.price-summary-tint--positive { --price-tint-color: var(--color-positive); }
.price-summary-tint--negative { --price-tint-color: var(--color-negative); }
.market-table--prices .price-spread-absolute { color: var(--color-text-primary); background: var(--color-interactive-soft); border-left: 1px solid var(--color-border-strong); }
/* The focal year remains identifiable without color. */
.year-over-year-focal { font-weight: 600; color: var(--color-text-primary); }
.market-intelligence-analysis>.market-intelligence-scale-row{grid-area:scale;padding:4px 8px}
.market-intelligence-market-preferences-bulk{display:flex;gap:4px;flex-wrap:wrap}
.market-intelligence-market-preferences footer{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--color-divider);margin-top:8px}

/* Shape Risk retains its previous evidence until the next analysis succeeds. */
#shape_results.is-stale .shape-chart { opacity: .55; }
#shape_apply.is-pending { outline: 2px solid var(--color-interactive-border); }
#shape_scenario_picker { flex-wrap: wrap; margin-top: var(--space-3); }


/* Historical weather reference and variability retain one identity in both themes. */
:root { --color-weather-normal: var(--color-text-muted); --color-weather-variability: rgba(120,120,120,.12); }
:root[data-theme="dark"] { --color-weather-normal: var(--color-text-muted); --color-weather-variability: rgba(175,175,175,.12); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --color-weather-normal: var(--color-text-muted); --color-weather-variability: rgba(175,175,175,.12); } }
.chart-series-toggle i { border-top-style: var(--chart-series-style,solid); }
.chart-band-toggle i { border: 1px solid var(--color-border-strong); height: 10px; }
/* Daily date tables keep weekday and ISO date in separate aligned columns. */
:is(.market-table--price-summary,.weather-degree-days-table)[data-grain="daily"] .daily-weekday-column { width:calc(48px * var(--table-zoom,1)); min-width:calc(48px * var(--table-zoom,1)); max-width:calc(48px * var(--table-zoom,1)); position:sticky; left:0; background:var(--color-bg-subtle); }
:is(.market-table--price-summary,.weather-degree-days-table)[data-grain="daily"] .daily-date-column { position:sticky; left:calc(48px * var(--table-zoom,1)); background:var(--color-bg-subtle); }
:is(.market-table--price-summary,.weather-degree-days-table)[data-grain="daily"] tbody .daily-weekday-column,
:is(.market-table--price-summary,.weather-degree-days-table)[data-grain="daily"] tbody .daily-date-column { z-index:1; }
.weather-degree-days-table:not([data-grain="daily"]) tr > :is(th,td):is(:nth-child(1),:nth-child(5),:nth-child(9)),
.weather-degree-days-table[data-grain="daily"] tr > :is(th,td):is(:nth-child(2),:nth-child(6),:nth-child(10)) { border-right:1px solid var(--color-border-strong); }
.weather-degree-days-table:not([data-grain="daily"]).is-zero-hdd tr > :is(th,td):nth-child(n+2):nth-child(-n+5),
.weather-degree-days-table:not([data-grain="daily"]).is-zero-cdd tr > :is(th,td):nth-child(n+6):nth-child(-n+9),
.weather-degree-days-table[data-grain="daily"].is-zero-hdd tr > :is(th,td):nth-child(n+3):nth-child(-n+6),
.weather-degree-days-table[data-grain="daily"].is-zero-cdd tr > :is(th,td):nth-child(n+7):nth-child(-n+10) { color:var(--color-text-muted); }

.chart-band-toggle { max-width: 100%; white-space: normal; text-align: left; }
.chart-band-toggle span { min-width: 0; }
@media (max-width: 767px) {
  .weather-workspace .market-location-field,
  .weather-workspace .market-date-range,
  .weather-workspace .weather-base-field { width: 100%; max-width: 100%; flex: 0 0 100%; }
  .weather-workspace .market-date-inputs { width: 100%; }
  #weather_content .market-panel > header { flex-wrap: wrap; }
  #weather_content .market-panel > header > div { min-width: 0; }
}

#weather_temperature_chart .chart-tooltip__rows span { white-space: normal; }

#weather_temperature_legend { display:block; margin:8px 0; color:var(--color-text-secondary); }
.weather-legend { margin:8px 0 0; color:var(--color-text-secondary); font-size:var(--font-size-sm); }

.load-temperature-sensitivity{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr) auto auto;align-items:start;gap:12px;padding:12px 0;margin-bottom:12px;border-bottom:1px solid var(--color-divider)}
.load-temperature-sensitivity>div:not(.info-popover){display:grid;gap:8px;min-width:0}.load-temperature-sensitivity>div>span{font-size:12px;color:var(--color-text-secondary)}.load-temperature-sensitivity strong{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.load-temperature-rate{display:block;white-space:nowrap}.load-temperature-rate>span{display:inline-flex;align-items:center;gap:6px}.load-temperature-fraction{display:inline-grid;text-align:center;font-size:11px;line-height:1.25;font-weight:500}.load-temperature-fraction>span:first-child{border-bottom:1px solid currentColor;padding-bottom:2px}.load-temperature-fraction>span:last-child{padding-top:2px}.load-temperature-percent{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--color-text-secondary);white-space:nowrap}
@container load-temperature (max-width:420px){.load-temperature-sensitivity{gap:8px}.load-temperature-sensitivity strong{font-size:13px}.load-temperature-sensitivity>div>span{font-size:11px}}
.load-temperature-analysis-controls,.load-temperature-hour-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0}.load-temperature-hour-controls label{font-size:12px}.load-temperature-hour-controls select{min-width:90px}
.load-temperature-scatter{min-width:0}

.load-temperature-scatter.is-hour-colored .chart-series-key{display:none}
/* Basis keeps inputs above one relationship surface and its supporting evidence. */
.basis-relationship-controls { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:16px; }
.basis-relationship-grid { grid-template-columns:minmax(0, 1.6fr) minmax(230px, 1fr); }
.basis-relationship-grid .basis-takeaway-kpis { grid-template-columns:1fr; }
.basis-relationship-grid .basis-takeaway-kpis > div + div { border-left:0; border-top:1px solid var(--color-divider); }
.basis-downloads-popover { width:min(640px,calc(100vw - 32px)); max-height:calc(100vh - 32px); overflow:auto; padding:20px; border:1px solid var(--color-border-strong); border-radius:var(--radius-lg); background:var(--color-bg-surface); color:var(--color-text-primary); }
.basis-downloads-popover > header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.basis-downloads-popover .basis-export-actions { flex-direction:column; align-items:stretch; }
.basis-downloads-popover .basis-export-action { display:flex; align-items:center; gap:8px; }
@media(max-width:900px) { .basis-relationship-grid { grid-template-columns:1fr; } .basis-relationship-grid > :first-child { order:0; } }

@media (max-width:767px) {
  #basis .shape-panel:has(#basis_history_chart) > header { flex-wrap:wrap; }
  #basis .shape-panel:has(#basis_history_chart) > header > div:first-child { flex:1 0 100%; min-width:0; }
  #basis .shape-panel:has(#basis_history_chart) .shape-panel-actions { flex-wrap:wrap; min-width:0; }
}

/* Keep Client Load table controls inside narrow panels. */
@container (max-width: 620px) {
  .client-load-workspace .market-table-panel > header { flex-wrap: wrap; }
  .client-load-workspace .market-table-panel > header > div:first-child { flex: 1 0 100%; min-width: 0; }
  .client-load-workspace .market-table-panel > header > .segmented-control { flex-shrink: 0; }
  .client-load-workspace .market-table-panel > header > .table-toolbar-actions { max-width: 100%; }
}

@media (max-width:767px) {
  #settlements .display-mode { min-width:0; padding-inline:14px; }
  #settlements .display-mode .segmented-control { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; min-width:0; }
  #settlements .display-mode .segmented-control label > span { white-space:normal; text-align:center; }
  #settlements .month-expansion-actions { flex-wrap:wrap; }
  #settlements .summary-card { min-width:0; }
  #settlements .summary-card__label { flex:1; min-width:0; }
}

/* Market Intel (Preview) */
.app-nav__badge { margin-left: 4px; padding: 1px 6px; border-radius: 999px; border: 1px solid var(--color-warning-soft-border); background: var(--color-warning-soft-bg); color: var(--color-warning); font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.market-intel-next-workspace { max-width: none; height: 100%; min-height: 0; display: flex; flex-direction: column; gap: 8px; }
.market-intel-next-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.market-intel-next-heading h1 { margin: 0 0 4px; font-size: 24px; font-weight: 600; letter-spacing: -.025em; }
.market-intel-next-scope { margin: 0; color: var(--color-text-secondary); font-size: 13px; }
.market-intel-next-actions { display: flex; align-items: center; gap: 12px; }
.market-intel-next-updated { color: var(--color-text-muted); font-size: 13px; }
.market-intel-next-viewbar { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding-bottom: 6px; border-bottom: 1px solid var(--color-divider); }
.market-intel-next-viewbar .segmented-control { height: var(--control-height); }
.market-intel-next-hint { margin: 0; color: var(--color-text-muted); font-size: 13px; }
.market-intel-next-content { display: flex; min-height: 0; flex: 1; flex-direction: column; gap: 12px; }
.market-intel-next-content[hidden] { display: none; }

/* Market Intel (Preview) — Compare */
#mn_compare { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
#mn_compare[hidden] { display: none; }
.market-intel-next-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-height: var(--control-height); }
.market-intel-next-toolbar-spacer { flex: 1 1 auto; }
.market-intel-next-retry { display: flex; align-items: center; gap: 10px; margin: 0; padding: 8px 12px; border: 1px solid var(--color-negative-soft-border); border-radius: var(--radius-md); background: var(--color-negative-soft-bg); color: var(--color-negative); font-size: 13px; }
.market-intel-next-retry[hidden] { display: none; }

.market-intel-next-table-wrap { overflow-x: auto; overflow-y: visible; overscroll-behavior-inline: contain; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-bg-surface); outline: none; scrollbar-gutter: stable; }
.market-intel-next-table-wrap:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.market-intel-next-heat { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 1120px; font-variant-numeric: tabular-nums; }
.market-intel-next-heat th, .market-intel-next-heat td { padding: 0; border-bottom: 1px solid var(--color-divider); background: var(--color-bg-surface); }
.market-intel-next-heat thead th { position: sticky; top: 0; z-index: 5; font-size: 11px; font-weight: 500; color: var(--color-text-muted); background: var(--color-bg-subtle); text-align: center; }
.market-intel-next-band-row th { height: 26px; letter-spacing: .05em; text-transform: uppercase; font-size: 10px; border-bottom: 0; }
.market-intel-next-band--today { color: var(--color-interactive-active); box-shadow: inset 0 2px 0 var(--color-interactive); }
.market-intel-next-band--outlook { color: var(--color-interactive); }
.market-intel-next-days-row th { height: 38px; }
.market-intel-next-mcol { position: sticky; left: 0; z-index: 6; width: 200px; min-width: 170px; text-align: left; padding-left: 14px; background: var(--color-bg-subtle); }
.market-intel-next-heat tbody .market-intel-next-mcol { z-index: 3; background: var(--color-bg-surface); }
.market-intel-next-heat tbody tr:hover .market-intel-next-mcol { background: var(--color-bg-hover); }
.market-intel-next-mlink { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; padding: 6px 10px; border: 0; background: transparent; color: var(--color-text-primary); font: inherit; text-align: left; cursor: pointer; }
.market-intel-next-mlink:hover { background: var(--color-bg-hover); }
.market-intel-next-mlink:focus-visible { position: relative; z-index: 2; outline: 2px solid var(--color-focus); outline-offset: -2px; }
.market-intel-next-mlink span { font-size: 13px; font-weight: 600; }
.market-intel-next-group-row th { text-align: left; font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--color-text-muted); padding: 10px 14px 4px; background: var(--color-bg-subtle); position: sticky; left: 0; z-index: 3; }
.market-intel-next-dayhead { display: flex; flex-direction: column; align-items: center; gap: 2px; width: 100%; height: 100%; padding: 6px 4px; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; user-select: none; }
.market-intel-next-dayhead:hover { background: var(--color-bg-hover); }
.market-intel-next-dayhead:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.market-intel-next-dayhead b { font-size: 10px; font-weight: 600; color: var(--color-text-muted); }
.market-intel-next-dayhead span { font-size: 12px; font-weight: 600; color: var(--color-text-primary); }
.market-intel-next-sort-arrow { color: var(--color-interactive); font-size: 9px; }
.market-intel-next-daycol[aria-sort="none"] .market-intel-next-sort-arrow { color: var(--color-text-faint); }
.market-intel-next-daycol.is-today-col, .market-intel-next-cell.is-today-col { box-shadow: inset 1px 0 0 var(--color-interactive-border), inset -1px 0 0 var(--color-interactive-border); }
.market-intel-next-cell { width: 86px; min-width: 76px; border-left: 1px solid var(--color-bg-surface); }
.market-intel-next-cellbtn { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 36px; border: 0; cursor: pointer; font-weight: 500; font-size: 13px; background: transparent; color: var(--color-text-primary); }
.market-intel-next-cellbtn:hover { outline: 2px solid var(--color-interactive); outline-offset: -2px; z-index: 1; position: relative; }
.market-intel-next-cellbtn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; z-index: 2; position: relative; }
.market-intel-next-cellbtn--forecast { font-style: italic; box-shadow: inset 0 0 0 1px var(--color-bg-surface), inset 0 0 0 2px var(--color-interactive-border); }
.market-intel-next-cellbtn--partial::after { content: ""; position: absolute; top: 0; right: 0; border-style: solid; border-width: 0 9px 9px 0; border-color: transparent var(--color-text-secondary) transparent transparent; opacity: .7; }
.market-intel-next-cellbtn--missing { color: var(--color-text-faint); background: repeating-linear-gradient(135deg, var(--color-chart-missing-bg) 0 5px, var(--color-bg-surface) 5px 9px); cursor: default; display: flex; align-items: center; justify-content: center; width: 100%; height: 36px; }
.market-intel-next-spark-head { text-align: left; padding-left: 12px; }
.market-intel-next-spark-cell { padding: 0 12px; min-width: 190px; width: 200px; border-left: 1px solid var(--color-divider); }
.market-intel-next-spark-cell svg { display: block; width: 100%; height: 30px; }
.market-intel-next-spark-placeholder { display: block; height: 30px; border-radius: var(--radius-sm); background: var(--color-bg-subtle); }
.market-intel-next-spark-placeholder--error { display: flex; align-items: center; color: var(--color-negative); font-size: 11px; }

.market-intel-next-legend { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; min-height: 24px; color: var(--color-text-muted); font-size: 12px; }
.market-intel-next-scale { display: flex; align-items: center; gap: 8px; }
.market-intel-next-scale b { font-weight: 500; color: var(--color-text-secondary); }
.market-intel-next-scale i { display: block; width: 160px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, var(--color-interactive), var(--color-bg-page), var(--color-heat-negative)); border: 1px solid var(--color-border); }
.market-intel-next-scale--unavailable { color: var(--color-text-faint); }
.market-intel-next-key { display: inline-flex; align-items: center; gap: 6px; }
.market-intel-next-sw { display: inline-block; width: 22px; height: 14px; border-radius: 3px; border: 1px solid var(--color-border); position: relative; background: var(--color-bg-surface); }
.market-intel-next-sw--partial::after { content: ""; position: absolute; top: 0; right: 0; border-style: solid; border-width: 0 7px 7px 0; border-color: transparent var(--color-text-secondary) transparent transparent; opacity: .7; }
.market-intel-next-sw--forecast { box-shadow: inset 0 0 0 2px var(--color-interactive-border); }
.market-intel-next-sw--missing { background: repeating-linear-gradient(135deg, var(--color-chart-missing-bg) 0 4px, var(--color-bg-surface) 4px 7px); }

.market-intel-next-all-hidden { display: grid; justify-items: start; gap: 10px; max-width: 520px; margin: 48px auto; padding: 24px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-surface); }
.market-intel-next-all-hidden h2 { margin: 0; font-size: 18px; }
.market-intel-next-all-hidden p { margin: 0; color: var(--color-text-secondary); font-size: 13px; line-height: 1.45; }

@media (max-width: 1023px) {
  .market-intel-next-mcol { width: 168px; min-width: 150px; }
}

@media (max-width: 767px) {
  .market-intel-next-toolbar { gap: 8px; }
  .market-intel-next-legend { gap: 8px 14px; overflow-x: auto; white-space: nowrap; }
  .market-intel-next-scale i { width: 110px; }
  .market-intel-next-cell { width: 76px; min-width: 68px; }
  .market-intel-next-spark-cell { min-width: 140px; width: 150px; }
}

@media (prefers-reduced-motion: reduce) {
  .market-intel-next-cellbtn, .market-intel-next-mlink, .market-intel-next-dayhead { transition: none !important; }
}

/* Market Intel (Preview) — Detail */
#mn_detail[hidden] { display: none; }
#mn_detail { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 20px; width: 100%; align-items: start; }

.market-intel-next-detail-rail { position: sticky; top: 12px; display: flex; flex-direction: column; gap: 2px; padding-right: 16px; border-right: 1px solid var(--color-divider); max-height: calc(100vh - 24px); overflow: auto; }
.market-intel-next-detail-railhead { font-size: 12px; color: var(--color-text-muted); padding: 0 8px 8px; line-height: 1.35; }
.market-intel-next-detail-railhead b { display: block; color: var(--color-text-secondary); font-weight: 600; }
.market-intel-next-detail-grp { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--color-text-muted); padding: 10px 8px 4px; }
.market-intel-next-detail-railbtn { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 34px; border: 1px solid transparent; border-radius: 6px; padding: 5px 6px 5px 8px; background: transparent; color: var(--color-text-primary); font: inherit; text-align: left; cursor: pointer; }
.market-intel-next-detail-railbtn:hover { background: var(--color-bg-hover); }
.market-intel-next-detail-railbtn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.market-intel-next-detail-railbtn[aria-current="true"] { background: var(--color-bg-selected); border-color: var(--color-interactive-border); font-weight: 600; color: var(--color-interactive-active); }
.market-intel-next-detail-chip { font-size: 12px; font-weight: 500; min-width: 58px; text-align: center; padding: 2px 5px; border-radius: 4px; font-variant-numeric: tabular-nums; border: 1px solid var(--color-divider); background: var(--color-bg-surface); color: var(--color-text-primary); }

.market-intel-next-detail-main { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.market-intel-next-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 4px 12px; flex-wrap: wrap; padding: 0 0 6px; border-bottom: 1px solid var(--color-divider); }
.market-intel-next-detail-head h2 { margin: 0; font-size: 17px; font-weight: 600; }
.market-intel-next-detail-pager { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.market-intel-next-detail-pager kbd { font: 500 10px ui-monospace, SFMono-Regular, Consolas, monospace; padding: 1px 4px; border: 1px solid var(--color-border-strong); border-radius: 3px; color: var(--color-text-muted); }
.market-intel-next-detail-mobile-market { display: none; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--color-text-secondary); }
#mnd_market_select { height: var(--control-height); padding: 0 var(--control-padding-inline); border: 1px solid var(--color-control-edge); border-radius: var(--control-radius); background: var(--color-bg-surface); color: var(--color-text-primary); box-shadow: var(--shadow-control); font: inherit; font-size: var(--font-size-body); }

.market-intel-next-detail-cursorbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--color-text-secondary); }
.market-intel-next-detail-when { font-weight: 600; font-variant-numeric: tabular-nums; }
.market-intel-next-detail-badge { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; border: 1px solid var(--color-border); color: var(--color-text-secondary); }
.market-intel-next-detail-badge[data-phase="realized"] { border-color: var(--color-border-strong); color: var(--color-text-primary); }
.market-intel-next-detail-badge[data-phase="forecast"] { border-color: var(--color-interactive-border); background: var(--color-interactive-soft); color: var(--color-interactive-active); }

.market-intel-next-detail-lane { padding: 4px 0 0; border-bottom: 1px solid var(--color-divider); }
.market-intel-next-detail-lane-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 2px; }
.market-intel-next-detail-lane-head .segmented-control { height: 32px; min-height: 32px; }
.market-intel-next-detail-lane-head .segmented-control button { min-height: 30px; padding-block: 0; }
.market-intel-next-detail-lane-head h3 { margin: 0; font-size: 14px; font-weight: 600; }
.market-intel-next-detail-readout { margin-left: auto; display: flex; gap: 4px 14px; flex-wrap: wrap; font-size: 13px; color: var(--color-text-secondary); font-variant-numeric: tabular-nums; justify-content: flex-end; }
.market-intel-next-detail-readout b { color: var(--color-text-primary); font-weight: 600; }
.market-intel-next-detail-readout .s { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.market-intel-next-detail-readout .sw { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }
.market-intel-next-detail-readout .sw--realized { background: var(--color-text-primary); }
.market-intel-next-detail-readout .sw--forward { background: var(--color-interactive); }
.market-intel-next-detail-readout .sw--normal { background: var(--color-weather-normal); }

.market-intel-next-detail-strip { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); margin: 0 4px 3px 72px; gap: 0; border: 1px solid var(--color-divider); border-radius: 6px; overflow: hidden; }
.market-intel-next-strip-label { margin: 0 4px 2px 72px; color: var(--color-text-muted); font-size: 11px; }
.market-intel-next-strip-compact { display: none; }
.market-intel-next-detail-strip button { position: relative; border: 0; border-right: 1px solid var(--color-bg-surface); min-height: 28px; padding: 0 2px; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.15; font-variant-numeric: tabular-nums; font-weight: 500; font-size: 13px; background: var(--color-bg-surface); color: var(--color-text-primary); }
.market-intel-next-detail-strip button:last-child { border-right: 0; }
.market-intel-next-detail-strip button small { font-size: 11px; font-weight: 450; opacity: .8; }
.market-intel-next-detail-strip button:hover { outline: 2px solid var(--color-interactive); outline-offset: -2px; z-index: 1; position: relative; }
.market-intel-next-detail-strip button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; z-index: 2; position: relative; }
.market-intel-next-detail-strip button.active { box-shadow: inset 0 0 0 2px var(--color-interactive); }
.market-intel-next-detail-strip button.forecast { font-style: italic; }
.market-intel-next-detail-strip button.partial::after { content: ""; position: absolute; top: 0; right: 0; border-style: solid; border-width: 0 8px 8px 0; border-color: transparent var(--color-text-secondary) transparent transparent; opacity: .7; }
.market-intel-next-detail-strip button.missing { color: var(--color-text-faint); background: repeating-linear-gradient(135deg, var(--color-chart-missing-bg) 0 5px, var(--color-bg-surface) 5px 9px); }

.market-intel-next-detail-chartslot { min-height: 110px; }
.market-intel-next-detail-chart { height: 110px; touch-action: pan-y; }
.market-intel-next-detail-chart:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.market-intel-next-detail-chart-loading { display: flex; align-items: center; justify-content: center; height: 110px; border: 1px dashed var(--color-border); border-radius: var(--radius-md); }

.market-intel-next-detail-trust-actions { display: flex; align-items: flex-start; }
#mnd_trust_popover dl { grid-template-columns: auto 1fr; }
#mnd_trust_popover dd { text-align: left; white-space: normal; overflow-wrap: anywhere; }

@media (pointer: coarse) {
  .market-intel-next-detail-lane-head .segmented-control button, .market-intel-next-detail-railbtn, .market-intel-next-detail-strip button, .market-intel-next-mlink, .market-intel-next-cellbtn, .market-intel-next-cellbtn--missing { min-height: 44px; }
}

@media (max-width: 1023px) {
  #mn_detail { grid-template-columns: 168px minmax(0, 1fr); gap: 14px; }
}

@media (max-width: 767px) {
  #mn_detail { display: block; }
  .market-intel-next-detail-rail { display: none; }
  .market-intel-next-detail-mobile-market { display: flex; flex: 1 1 100%; }
  #mnd_market_select { flex: 1; min-width: 0; }
  .market-intel-next-detail-head { flex-direction: column; align-items: stretch; }
  .market-intel-next-detail-pager { justify-content: space-between; }
  .market-intel-next-detail-readout { margin-left: 0; justify-content: flex-start; width: 100%; }
  .market-intel-next-strip-full, .market-intel-next-strip-weekday { display: none; }
  .market-intel-next-strip-compact { display: inline; font-size: 10px; }
  .market-intel-next-detail-strip button { padding: 0; min-height: 44px; }
  .market-intel-next-detail-strip button small { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  .market-intel-next-detail-railbtn, .market-intel-next-detail-strip button { transition: none !important; }
}

.client-load-day-navigation{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}
.client-load-table-controls .segmented-control{max-width:100%;flex-wrap:wrap}

.client-load-table td.numeric,.client-load-table .nyiso-lineage{white-space:nowrap}
.client-load-table .nyiso-lineage{overflow:hidden;text-overflow:ellipsis}

.client-load-table td.client-load-date-column{overflow:hidden;text-overflow:ellipsis}

.client-load-table .client-load-bar-cell{position:relative}
.client-load-table .client-load-data-bar-area{position:absolute;inset:8px 8px;pointer-events:none}
.client-load-table .client-load-data-bar{position:absolute;top:0;bottom:0;background:var(--color-interactive);opacity:.17;border-radius:2px}
.client-load-table .client-load-data-bar.is-negative{background:var(--color-warning)}
.client-load-table .client-load-data-bar-zero{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--color-border)}
.client-load-table .client-load-cell-value,.client-load-table .client-load-partial{position:relative}
@media(forced-colors:active){.client-load-table .client-load-data-bar-area{display:none}}

.weather-workspace .market-panel > header > .button-secondary { flex-shrink: 0; white-space: nowrap; }
