/* Approved Oil UI A research-workbench layout. Business controllers remain unchanged. */
:root {
  --market-primary: #b73142;
  --market-primary-hover: #992e39;
  --market-focus: #a92f3c;
}
:root[data-market-theme="light"] {
  --bg: #f6f6f3; --bg2: #fffefb; --bg3: #f3f3f0;
  --panel-bg: #fffefb; --panel-bg2: #f8f9f8; --panel-soft: #f8f9f8;
  --monitor-surface: #fffefb; --monitor-surface-strong: #fffefb;
  --text: #253143; --text2: #435166; --text3: #59687b;
  --border: #dce2ea; --border2: #a3afbe;
  --info-bg: #f9eef0; --info-text: #b63845; --info-border: #e8c9cf;
  --success-text: #346955; --success-bg: #edf6f1;
  --today-text: #87512b; --today-bg: #fff6e8; --today-border: #d8b986;
  --danger-text: #a92f3c; --danger-bg: #f9eef0; --danger-border: #e8c9cf;
  --shadow-sm: none; --shadow-md: none;
}
:root[data-market-theme="dark"] {
  --bg: #151d2a; --bg2: #1d2735; --bg3: #232f40;
  --panel-bg: #1d2735; --panel-bg2: #232f40; --panel-soft: #232f40;
  --monitor-surface: #1d2735; --monitor-surface-strong: #1d2735;
  --text: #edf1f7; --text2: #d0d9e5; --text3: #acb9cb;
  --border: #39475c; --border2: #66768d;
  --info-bg: #3b2935; --info-text: #f28f9a; --info-border: #82505d;
  --success-text: #96d4b7; --success-bg: #243a34;
  --today-text: #edc69b; --today-bg: #3a3026; --today-border: #947452;
  --danger-text: #f28f9a; --danger-bg: #3b2935; --danger-border: #82505d;
  --market-primary: #b73142; --market-primary-hover: #9d2a3b; --market-focus: #ff9aa7;
  --shadow-sm: none; --shadow-md: none;
}
body:has(.monitor-app) {
  margin: 0;
  min-width: 320px;
  background: var(--bg);
  color: var(--text);
  font: 15px/1.65 "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  -webkit-font-smoothing: antialiased;
}
.monitor-app *, .monitor-app *::before, .monitor-app *::after { box-sizing: border-box; }
.monitor-app { width: 100%; max-width: 1600px; padding: 0 28px 40px; margin: 0 auto; overflow: visible; }
.monitor-app :is(h1,h2,h3,h4,p,dl,dd) { margin: 0; }
.monitor-app :is(h1,h2,h3,h4) { line-height: 1.4; text-wrap: pretty; }
.monitor-app :is(button,input,select) { font-family: inherit; }
.monitor-app :is(p,span,dd,strong,a) { overflow-wrap: anywhere; }
.monitor-app :is(button,a,summary,input,select,canvas,svg[tabindex]):focus-visible {
  outline: 3px solid var(--market-focus); outline-offset: 3px;
}
.monitor-app :is(button,summary) { -webkit-tap-highlight-color: transparent; }
.monitor-app :is(button,a) { transition: background-color 160ms, color 160ms, border-color 160ms, transform 100ms; }
.monitor-app button:not(:disabled):active { transform: translateY(1px); }
.monitor-app button:disabled { cursor: not-allowed; }
.monitor-topbar {
  display: flex; align-items: center; gap: 34px; min-height: 78px;
  margin: 0 -28px; padding: 10px 28px; border: 0; border-bottom: 1px solid var(--border);
  border-radius: 0; background: var(--panel-bg); box-shadow: none;
}
.monitor-brand { display: flex; flex: 0 0 auto; min-width: 0; width: auto; gap: 0; }
.brand-link { display: flex; align-items: center; min-width: 0; gap: 11px; color: var(--text); text-decoration: none; }
.monitor-brand-mark { display: block; width: 37px; height: 28px; object-fit: contain; flex: 0 0 auto; }
.monitor-app .brand-link h1 {
  color: var(--text); font: 650 20px/1.4 "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  letter-spacing: -.02em; text-shadow: none;
}
.monitor-primary-nav { display: flex; align-self: stretch; gap: 24px; min-width: 0; }
.monitor-primary-nav a {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 0 2px; border: 0; color: var(--text3); font-size: 15px;
  text-decoration: none; white-space: nowrap;
}
.monitor-primary-nav a:hover { color: var(--info-text); }
.monitor-primary-nav a[aria-current="page"] { color: var(--info-text); font-weight: 650; }
.monitor-primary-nav a[aria-current="page"]::after {
  position: absolute; inset: auto 2px -11px; height: 3px; background: var(--info-text);
  content: ""; transform-origin: left; animation: market-nav-entry 360ms ease-out;
}
@keyframes market-nav-entry { from { transform: scaleX(.6); } to { transform: scaleX(1); } }
.monitor-theme-tools { width: auto; margin-left: auto; }
.theme-segment { min-height: 44px; padding: 2px; border: 1px solid var(--border2); border-radius: 6px; background: var(--panel-bg); }
.theme-choice { min-width: 52px; min-height: 38px; padding: 4px 10px; border-radius: 4px; color: var(--text3); font-size: 14px; }
.theme-choice.active { background: var(--panel-soft); color: var(--text); box-shadow: none; }
.monitor-status-strip { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; width: 100%; }
.monitor-time-tools, .monitor-refresh-tools { display: flex; align-items: center; width: auto; min-width: 0; gap: 12px; }
.monitor-refresh-tools { flex: 1; justify-content: flex-end; flex-wrap: wrap; }
.status-chip, .time-chip, .next-refresh-chip, .fixed-schedule-chip, .status-chip.alert {
  min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
  color: var(--text3); font-size: 13px; line-height: 1.65; font-weight: 400; white-space: normal;
}
.status-chip.alert { color: var(--danger-text); }
.fixed-schedule-chip { display: none; }
.refresh-action, .monitor-app .btn.accent.refresh-action {
  min-height: 44px; padding: 8px 18px; border: 1px solid var(--market-primary); border-radius: 6px;
  background: var(--market-primary); color: #fff; font-size: 14px; font-weight: 650; box-shadow: none;
}
.monitor-app .refresh-action:hover { background: var(--market-primary-hover); border-color: var(--market-primary-hover); }
.monitor-shell { display: flex; flex-direction: column; gap: 18px; }
.monitor-side {
  position: static; display: flex; flex-direction: row; align-self: stretch; align-items: stretch; gap: 26px;
  width: 100%; min-height: 44px; padding: 0; border: 0; border-bottom: 1px solid var(--border);
  border-radius: 0; background: transparent; box-shadow: none;
}
html[data-market-theme] body .monitor-app .side-nav {
  position: relative; display: flex; align-items: center; justify-content: center; width: auto; min-height: 44px;
  min-width: 0; padding: 8px 2px; border: 0; border-radius: 0; background: transparent;
  color: var(--text3); font-size: 15px; line-height: 1.5; font-weight: 500; box-shadow: none;
}
html[data-market-theme] body .monitor-app .side-nav:hover { background: transparent; color: var(--text); }
html[data-market-theme] body .monitor-app .side-nav.active { background: transparent; color: var(--info-text); font-weight: 650; }
.side-nav.active::after { position: absolute; inset: auto 0 -1px; content: ""; height: 3px; background: var(--info-text); }
.monitor-main, .monitor-view { min-width: 0; max-width: 100%; }
#viewMonitor { display: flex; flex-direction: column; gap: 24px; }
.panel, .monitor-grid > .panel {
  min-width: 0; padding: 24px; border: 1px solid var(--border); border-radius: 8px;
  background: var(--panel-bg); box-shadow: none;
}
.panel-head { gap: 14px; margin-bottom: 18px; }
.panel-head h2 { font-size: 19px; font-weight: 650; color: var(--text); }
.panel-head span, .rule-strip { font-size: 14px; line-height: 1.6; }
.risk-lights-panel {
  order: 0; display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: start; gap: 22px 24px;
  overflow: visible; padding: 24px; background: var(--panel-bg) !important;
}
.risk-lights-panel::before { display: none; }
.risk-lights-head { grid-column: 1/-1; order: 0; display: block; margin: 0; }
.risk-lights-head h2 { font-size: 24px; font-weight: 650; letter-spacing: 0; }
.risk-lights-title-row { gap: 10px; }
.risk-lights-head p { max-width: 100%; margin-top: 6px; color: var(--text2); font-size: 14px; line-height: 1.65; }
.risk-unified-badge, .risk-current-status { min-height: 28px; padding: 3px 9px; border-radius: 4px; font-size: 13px; line-height: 1.5; }
.risk-daily-dashboard, .risk-daily-grid { display: contents; }
.risk-daily-loading { grid-column: 1/-1; font-size: 15px; }
.risk-episode-banner {
  grid-column: 1/-1; order: 1; display: grid; grid-template-columns: minmax(240px,.95fr) minmax(0,1.7fr);
  gap: 12px 24px; padding: 18px 20px 12px; border: 1px solid color-mix(in srgb,var(--episode-accent) 40%,var(--border));
  border-left-width: 1px; border-radius: 6px; background: color-mix(in srgb,var(--episode-bg) 65%,var(--panel-bg));
  box-shadow: none; animation: none;
}
.risk-episode-banner.needs-attention { box-shadow: none; animation: none; border-width: 2px; }
.risk-episode-banner.unknown { background: var(--panel-soft); }
.risk-episode-kicker, .risk-scenario-kicker, .risk-analysis-card-head > div > span, .risk-comparison-head > div > span { display: none; }
.risk-episode-copy h3 { font-size: 20px; line-height: 1.4; font-weight: 650; letter-spacing: 0; }
.risk-episode-copy p { margin-top: 6px; font-size: 14px; line-height: 1.65; }
.risk-ai-separation { font-size: 13px; line-height: 1.5; border-radius: 4px; }
.risk-episode-facts { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px 16px; }
.risk-episode-facts > div { padding: 0; border: 0; border-radius: 0; background: transparent; }
.risk-episode-facts dt { font-size: 13px; line-height: 1.5; font-weight: 400; letter-spacing: 0; }
.risk-episode-facts dd { margin-top: 2px; font-size: 15px; line-height: 1.5; font-weight: 650; }
.risk-episode-footer { min-height: 28px; padding-top: 10px; font-size: 13px; line-height: 1.6; font-weight: 400; }
.risk-episode-ai, .risk-acknowledged { font-weight: 500; }
.risk-acknowledge-btn { min-height: 44px; padding: 8px 14px; border-radius: 5px; font-size: 14px; font-weight: 650; }
.risk-scenario-panel {
  grid-column: 1/-1; order: 2; display: flex; flex-direction: column; gap: 16px;
  margin: 0; padding: 0 0 22px; border: 0; border-bottom: 1px solid var(--border); border-radius: 0;
  background: transparent; box-shadow: none;
}
.risk-scenario-header { order: 0; align-items: start; gap: 18px; }
.risk-scenario-title-row h3 { font-size: 19px; line-height: 1.4; font-weight: 650; letter-spacing: 0; }
.risk-scenario-header > div:first-child > p { margin-top: 6px; color: var(--text2); font-size: 14px; line-height: 1.65; }
.risk-scenario-role, .risk-scenario-quality { min-height: 26px; padding: 3px 8px; border-radius: 4px; font-size: 13px; line-height: 1.5; }
.risk-scenario-meta { gap: 6px 12px; }
.risk-scenario-meta span { padding: 0; border: 0; border-radius: 0; background: transparent; font-size: 13px; }
.risk-scenario-warning { order: 1; padding: 10px 12px; font-size: 14px; line-height: 1.6; border-radius: 4px; border-left-width: 1px; }
.risk-scenario-body { order: 2; display: grid; grid-template-columns: minmax(0,1fr) minmax(240px,280px); gap: 24px; margin: 0; }
.risk-scenario-fan { min-width: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.risk-scenario-fan-head b, .risk-turning-head b { font-size: 16px; line-height: 1.5; font-weight: 650; }
.risk-scenario-fan-head span, .risk-turning-head span, .risk-fan-source { font-size: 13px; line-height: 1.6; }
.risk-fan-source { margin-top: 3px; color: var(--text3); }
.risk-scenario-fan svg { display: block; width: 100%; height: 300px; margin-top: 10px; border-radius: 0; background: transparent; }
.risk-scenario-fan .risk-fan-grid text,
.risk-scenario-fan .risk-fan-xlabels text { font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.risk-fan-clarity .fan-interactive-plot { position: relative; min-width: 0; }
.risk-fan-clarity .fan-interactive-plot svg { cursor: crosshair; touch-action: pan-y; }
.risk-fan-clarity .fan-cursor-indicator { position: absolute; inset: 0; pointer-events: none; color: var(--risk-orange); }
.risk-fan-clarity .fan-cursor-indicator[hidden] { display: none; }
.risk-fan-clarity .fan-cursor-indicator[data-kind="observed"] { color: var(--info-text); }
.risk-fan-clarity .fan-cursor-line { position: absolute; width: 0; border-left: 1px dashed currentColor; opacity: .8; }
.risk-fan-clarity .fan-cursor-dot { position: absolute; width: 10px; height: 10px; border: 2px solid currentColor; border-radius: 50%; background: var(--panel-bg); transform: translate(-50%,-50%); }
.risk-fan-clarity .fan-cursor-readout { display: grid; gap: 4px; min-width: 0; min-height: 86px; margin-top: 8px; padding: 10px 0; border-block: 1px solid var(--border); color: var(--text); font-size: 14px; line-height: 1.6; font-variant-numeric: tabular-nums; }
.risk-fan-clarity .fan-cursor-readout-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px 16px; flex-wrap: wrap; }
.risk-fan-clarity .fan-cursor-readout-head b { color: var(--text); font-weight: 650; }
.risk-fan-clarity .fan-cursor-readout-head strong { color: var(--risk-orange-ink); font-weight: 650; }
.risk-fan-clarity .fan-cursor-readout[data-kind="observed"] .fan-cursor-readout-head strong { color: var(--info-text); }
.risk-fan-clarity .fan-cursor-readout-grid { display: flex; flex-wrap: wrap; gap: 2px 16px; color: var(--text2); overflow-wrap: anywhere; }
.risk-fan-clarity .fan-cursor-readout small { color: var(--text3); font-size: 13px; line-height: 1.5; }
.risk-fan-clarity .fan-cursor-readout.is-pinned small { color: var(--info-text); }
.risk-scenario-fan figcaption { gap: 10px 16px; margin-top: 10px; color: var(--text3); font-size: 13px; line-height: 1.6; }
.risk-scenario-probabilities { order: 3; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.risk-scenario-probability, .risk-scenario-phase {
  padding: 14px 0; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: transparent;
}
.risk-scenario-probability.triggered { border-color: var(--border); box-shadow: none; }
.risk-scenario-probability > div span, .risk-scenario-phase > span { font-size: 14px; line-height: 1.5; font-weight: 500; }
.risk-scenario-probability > div b { font-size: 13px; }
.risk-scenario-probability > strong { margin-top: 8px; font: 650 28px/1.3 "Segoe UI",sans-serif; font-variant-numeric: tabular-nums; }
.risk-scenario-probability p, .risk-scenario-phase > p, .risk-scenario-phase > small { margin-top: 6px; font-size: 13px; line-height: 1.65; }
.risk-scenario-phase > b { font-size: 17px; line-height: 1.4; }
.risk-scenario-horizons { order: 4; }
.risk-analogues { order: 5; }
.risk-scenario-method { order: 6; }
.risk-scenario-notices { order: 7; gap: 20px; }
.risk-scenario-notices p { padding: 0; border: 0; border-radius: 0; background: transparent; font-size: 13px; line-height: 1.7; }
.risk-scenario-method > p, .risk-scenario-method > ul, .risk-scenario-method > div span { font-size: 13px; line-height: 1.65; }
.risk-scenario-horizons summary, .risk-scenario-method summary { min-height: 44px; padding: 10px 12px; font-size: 14px; line-height: 1.6; }
.risk-scenario-horizon-grid b, .risk-scenario-horizon-grid span { font-size: 13px; line-height: 1.6; }
.risk-scenario-state h3, .risk-scenario-loading b { font-size: 17px; }
.risk-scenario-state p, .risk-scenario-loading span, .risk-scenario-chart-empty, .risk-scenario-subempty { font-size: 14px; line-height: 1.65; }
.risk-turning-card { min-width: 0; padding: 0 0 0 24px; border: 0; border-left: 1px solid var(--border); border-radius: 0; background: transparent; }
.risk-turning-card :is(p,small,dt,dd,span) { font-size: 13px; line-height: 1.65; }
.risk-turning-card :is(strong,b) { font-size: 15px; line-height: 1.55; }
.risk-turning-head h4 { font-size: 16px; line-height: 1.5; font-weight: 650; }
.risk-turning-head > div > span, .risk-analogues-head > div > span { display: none; }
.risk-turning-head > b { padding: 3px 7px; border-radius: 4px; font-size: 13px; line-height: 1.5; font-weight: 500; }
.risk-turning-list { margin-top: 16px; }
.risk-turning-list li { grid-template-columns: 26px minmax(0,1fr); gap: 12px; padding: 8px 0 14px; }
.risk-turning-index { width: 24px; height: 24px; font-size: 13px; font-weight: 500; }
.risk-turning-list li:not(:last-child)::after { left: 12px; top: 32px; }
.risk-turning-foot { font-size: 13px; line-height: 1.65; gap: 6px; }
.risk-analogues-head h4 { font-size: 16px; line-height: 1.5; }
.risk-analogues-head p { font-size: 13px; line-height: 1.6; }
.risk-analogue-card { padding: 16px; border-radius: 5px; background: var(--panel-soft); }
.risk-analogue-card :is(span,p,dt,dd,li,small,a,b,strong) { font-size: 14px; line-height: 1.7; }
.risk-analogue-card a { min-height: 44px; display: inline-flex; align-items: center; }
.risk-analysis-card {
  min-width: 0; margin: 0; padding: 0; gap: 14px; border: 0; border-radius: 0;
  background: transparent; box-shadow: none;
}
.risk-analysis-card.outlook { grid-column: 1/9; order: 3; width: 100%; }
.risk-analysis-card.pipeline { grid-column: 9/-1; order: 3; padding-left: 24px; border-left: 1px solid var(--border); }
.risk-analysis-card.direction { grid-column: 1/-1; order: 4; padding-top: 20px; border-top: 1px solid var(--border); }
.risk-analysis-card-head h3, .risk-analysis-card.outlook .risk-analysis-card-head h3 { font-size: 19px; line-height: 1.4; font-weight: 650; }
.risk-analysis-card.direction .risk-analysis-card-head > div > span,
.risk-analysis-card.outlook .risk-analysis-card-head > div > span {
  display: block; margin: 0 0 4px; color: var(--text3); font-family: inherit;
  font-size: 13px; line-height: 1.6; font-weight: 400; letter-spacing: 0;
}
.risk-analysis-state, .risk-analysis-card.outlook .risk-analysis-state { min-height: 28px; padding: 3px 8px; border-radius: 4px; font-size: 13px; font-weight: 500; }
.risk-analysis-summary, .risk-analysis-empty { font-size: 15px; line-height: 1.75; }
.risk-analysis-card.outlook .risk-analysis-summary, .risk-analysis-card.outlook .risk-analysis-empty { font-size: 16px; line-height: 1.8; }
.daily-outlook-horizons { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.daily-outlook-horizon { padding: 16px 0 0; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: transparent; }
.risk-analysis-card.outlook .daily-outlook-horizon { padding: 16px 0 0; }
.risk-analysis-card.outlook .daily-outlook-horizon > span, .risk-analysis-card.outlook .daily-outlook-horizon small { font-size: 14px; line-height: 1.65; }
.risk-analysis-card.outlook .daily-outlook-horizon strong { margin-top: 5px; font-size: 22px; line-height: 1.5; font-weight: 650; }
.risk-analysis-card.outlook .daily-outlook-horizon p { margin-top: 8px; font-size: 16px; line-height: 1.8; }
.risk-analysis-card.outlook .daily-outlook-disclaimer { font-size: 14px; line-height: 1.7; }
.risk-analysis-card.outlook .daily-outlook-details summary { min-height: 44px; padding: 10px 0; color: var(--info-text); font-size: 15px; line-height: 1.6; font-weight: 650; }
.risk-analysis-card.outlook:has(.daily-outlook-details[open]) { grid-column: 1/-1; }
.daily-outlook-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 28px; padding: 12px 0 20px; }
.risk-analysis-card.outlook .daily-outlook-detail-grid > div { padding: 0; border-radius: 0; background: transparent; }
.risk-analysis-card.outlook .daily-outlook-detail-grid b { font-size: 16px; line-height: 1.7; font-weight: 650; }
.risk-analysis-card.outlook .daily-outlook-detail-grid p { margin-top: 6px; font-size: 16px; line-height: 1.8; }
.risk-analysis-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 18px; }
.risk-analysis-stats > div { padding: 0; border: 0; border-radius: 0; background: transparent; }
.risk-analysis-stats dt { font-size: 13px; line-height: 1.6; font-weight: 400; letter-spacing: 0; }
.risk-analysis-stats dd { margin-top: 3px; font-size: 14px; line-height: 1.6; font-weight: 500; }
.risk-analysis-card-foot, .risk-analysis-warnings { font-size: 13px; line-height: 1.65; border-radius: 4px; }
.direction-horizons { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.direction-horizon { padding: 16px; border: 1px solid var(--border); border-radius: 5px; background: var(--panel-soft); }
.direction-horizon > span, .direction-horizon small, .direction-probability { font-size: 13px; line-height: 1.65; }
.direction-horizon strong { font-size: 21px; line-height: 1.4; }
.direction-probability { padding: 4px 8px; border-radius: 4px; }
.risk-algorithm-guide { grid-column: 1/-1; order: 5; margin: 0; }
.market-model-compare-disclosure { grid-column: 1/-1; order: 6; }
.risk-method-details { grid-column: 1/-1; order: 7; margin: 0; }
.disclosure-card { min-width: 0; border: 1px solid var(--border); border-radius: 5px; background: transparent; }
.disclosure-card > summary { min-height: 48px; padding: 12px 46px 12px 16px; gap: 14px; }
.disclosure-card > summary::after { right: 14px; width: 24px; height: 24px; border: 0; background: transparent; color: var(--text3); border-radius: 0; }
.disclosure-card > summary strong, .risk-algorithm-guide > summary strong { font-size: 15px; line-height: 1.6; font-weight: 650; }
.disclosure-card > summary span, .disclosure-hint, .risk-method-summary-copy > span { font-size: 13px; line-height: 1.6; }
.market-model-compare-disclosure > summary { display: flex; justify-content: space-between; align-items: center; }
.risk-model-comparison { margin: 0; padding: 20px; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: transparent; }
.risk-model-comparison :is(p,dt,small), .risk-algorithm-guide-content :is(p,li,small), .risk-validation-summary { font-size: 14px; line-height: 1.7; }
.risk-model-comparison :is(dd,h3,h4), .risk-algorithm-card h4 { font-size: 17px; line-height: 1.5; }
.risk-model-comparison :is(span,b), .risk-algorithm-guide-content :is(span,b) { font-size: 13px; line-height: 1.65; }
.risk-comparison-row, .risk-comparison-target, .risk-v5-promotion, .risk-algorithm-card { padding: 16px; border-radius: 5px; border-left-width: 1px; background: var(--panel-soft); box-shadow: none; }
.risk-comparison-target { background: transparent; }
.risk-algorithm-card { border-top-width: 1px; }
.risk-method-summary { min-height: 52px; padding: 12px 16px; border-radius: 4px; }
.risk-method-summary-copy strong { font-size: 15px; }
.risk-method-toggle { font-size: 14px; }
.market-risk-history-head { grid-column: 1/-1; order: 8; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 8px; }
.market-risk-history-head h3 { font-size: 19px; font-weight: 650; }
.risk-control-row { gap: 12px; }
.risk-series-switches label { min-height: 44px; padding: 8px 10px; border-radius: 5px; font-size: 14px; }
.risk-range-tabs { border-radius: 5px; }
.risk-range-btn { min-height: 44px; padding: 8px 12px; border-radius: 4px; font-size: 14px; }
.risk-zoom-tools { flex-wrap: wrap; gap: 6px; }
.risk-zoom-tools span { font-size: 13px; line-height: 1.5; }
.risk-zoom-tools button { min-height: 44px; min-width: 44px; padding: 8px 10px; border-radius: 5px; font-size: 15px; }
.risk-chart-layout { grid-column: 1/-1; order: 9; display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,340px); gap: 24px; margin: 0; }
.risk-chart-stage { min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.risk-canvas { height: 420px; border-radius: 0; }
.risk-chart-help { margin-top: 12px; font-size: 14px; line-height: 1.7; }
.risk-signal-detail { max-height: none; padding: 0 0 0 24px; border: 0; border-left: 1px solid var(--border); border-radius: 0; background: transparent; overflow: visible; }
.risk-signal-detail :is(p,span,dt,dd,li,small,b,strong), .risk-detail-note, .risk-environment-note { font-size: 14px; line-height: 1.7; }
.risk-signal-detail :is(h3,h4) { font-size: 18px; line-height: 1.5; }
.risk-detail-eyebrow { display: none; }
.risk-intervals { grid-column: 1/-1; order: 10; margin: 0; }
.risk-intervals > summary.risk-intervals-head { padding: 12px 46px 12px 16px; }
.risk-intervals h3 { font-size: 16px; }
.risk-intervals :is(p,span,small,dt,dd), .risk-recent-head span { font-size: 14px; line-height: 1.7; }
.risk-recent-block { grid-column: 1/-1; order: 11; }
.risk-recent-head h3 { font-size: 18px; }
.risk-recent-list :is(span,b,p,small) { font-size: 14px; line-height: 1.7; }
.risk-recent-item { min-height: 64px; padding: 12px; border-radius: 5px; }
.risk-recent-copy b { white-space: normal; overflow: visible; text-overflow: clip; }
.risk-method-content :is(p,span,small,b,dt,dd) { font-size: 14px; line-height: 1.7; }
.risk-level-card h3 { font-size: 18px; line-height: 1.5; }
.metric-grid { order: 1; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 0; border: 1px solid var(--border); border-radius: 7px; background: var(--panel-bg); overflow: hidden; }
.metric-card, .metric-card:nth-child(4), .metric-card:last-child {
  min-width: 0; min-height: 130px; gap: 5px; padding: 18px 16px; border: 0; border-right: 1px solid var(--border);
  border-radius: 0; background: transparent; box-shadow: none;
}
.metric-card:last-child { border-right: 0; }
.metric-card:hover { box-shadow: none; background: var(--panel-soft); }
.metric-label { font-size: 13px; line-height: 1.5; font-weight: 500; letter-spacing: 0; }
.metric-value { font-size: 26px; line-height: 1.3; font-weight: 650; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.metric-sub { font-size: 13px; line-height: 1.6; }
.metric-source { margin: 0; padding: 4px 0 0; border: 0; font-size: 13px; line-height: 1.6; }
.metric-card-loading .skeleton-line { animation: none; }
.monitor-grid { order: 2; display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
.chart-panel { padding: 24px; }
.chart-head { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.chart-tools { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 14px; max-width: 100%; }
.metric-switches { flex-wrap: wrap; gap: 6px; }
.metric-switches label { min-height: 44px; padding: 8px 11px; border-radius: 5px; font-size: 14px; line-height: 1.5; }
.range-tabs { padding: 2px; border: 1px solid var(--border); border-radius: 5px; background: transparent; }
.range-btn { min-height: 44px; padding: 8px 12px; border-radius: 4px; font-size: 14px; line-height: 1.5; }
.range-menu { border-radius: 5px; }
.range-menu-item { min-height: 44px; font-size: 14px; }
.zoom-tools { gap: 10px; font-size: 14px; }
.text-btn { min-height: 44px; padding: 8px 12px; border: 1px solid var(--border2); border-radius: 5px; color: var(--text2); font-size: 14px; line-height: 1.5; }
.text-btn:hover { background: var(--panel-soft); color: var(--text); }
.overview-chart-block { margin: 0 0 26px; }
.chart-subhead { align-items: start; gap: 10px 24px; font-size: 14px; line-height: 1.65; }
.chart-subhead-spaced { padding-top: 20px; }
.overview-canvas { height: 380px; border-radius: 0; }
.trend-facet-stack { gap: 24px; }
.trend-facet { border: 0; border-top: 1px solid var(--border); border-radius: 0; padding: 20px 0 0; background: transparent; }
.trend-facet-head { flex-wrap: wrap; align-items: start; gap: 16px; padding: 0 0 14px; }
.trend-facet-title { flex: 1 1 300px; min-width: 0; }
.trend-facet-title h3 { font-size: 18px; line-height: 1.45; font-weight: 650; }
.trend-facet-title p { margin-top: 4px; font-size: 14px; line-height: 1.65; }
.trend-facet-tools { flex: 0 1 auto; align-items: center; gap: 12px; }
.trend-facet-legend { gap: 6px; }
.trend-legend-btn, .trend-expand-btn { min-height: 44px; padding: 8px 12px; border-radius: 5px; font-size: 14px; line-height: 1.5; }
.trend-canvas { height: 340px; }
.trend-facet-empty { min-height: 340px; }
.trend-facet.is-expanded .trend-canvas, .trend-facet.is-expanded .trend-facet-empty { height: 540px; min-height: 540px; }
.trend-facet-readout { gap: 10px 20px; padding: 12px 0 0; border: 0; font-size: 14px; line-height: 1.65; }
.trend-facet-readout:not(.trend-facet-tooltip) { display: none; }
.trend-facet-readout.trend-facet-tooltip {
  position: absolute; z-index: 4; display: block; width: max-content; max-width: calc(100% - 16px);
  min-height: 0; margin: 0; padding: 12px 14px; border: 1px solid var(--border2); border-radius: 5px;
  background: var(--monitor-surface-strong); color: var(--text); box-shadow: 0 5px 18px rgba(0,0,0,.14);
  pointer-events: none; overflow: hidden; font-size: 14px; line-height: 1.6;
}
.trend-facet-readout.trend-facet-tooltip[hidden] { display: none; }
.trend-tooltip-title { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding-bottom: 7px; }
.trend-tooltip-title strong { font-weight: 650; white-space: nowrap; }
.trend-tooltip-title > span { color: var(--text3); white-space: nowrap; }
.trend-tooltip-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; align-items: baseline; padding: 3px 0; }
.trend-tooltip-row > span { color: var(--text2); }
.trend-tooltip-row b { font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.trend-tooltip-row.is-focused > span { color: var(--metric-color); font-weight: 650; }
.trend-tooltip-note { padding-top: 6px; color: var(--text3); overflow-wrap: anywhere; }
.detail-panel { position: static; width: 100%; padding: 20px !important; border-radius: 7px; }
.detail-grid, .status-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.detail-panel :is(p,span,small,dt,dd), .hover-metric-note { font-size: 14px; line-height: 1.7; }
.hover-metric-row b, .detail-value { font-size: 17px; }
.hover-metric-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 20px; }
.bottom-grid { order: 3; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 20px; }
.monitor-table { font-size: 14px; }
.monitor-table th, .monitor-table td { padding: 12px 14px; font-size: 14px; line-height: 1.65; }
.monitor-table th { font-weight: 650; }
.return-legend span, .return-legend, #returnChartSummary { font-size: 14px; line-height: 1.65; }
.return-canvas { height: 320px; }
.panel-actions, .signal-controls { gap: 12px; flex-wrap: wrap; }
.inline-switch, .signal-controls .inline-switch { min-height: 44px; font-size: 15px; }
.signal-refresh-meta { min-width: 0; gap: 12px; padding: 12px; border-radius: 5px; font-size: 14px; line-height: 1.7; }
.signal-refresh-meta dt { font-size: 13px; line-height: 1.6; }
.signal-refresh-meta dd { font-size: 14px; line-height: 1.6; }
.rule-strip, .source-help { padding: 14px 16px; border: 1px solid var(--border); border-radius: 5px; font-size: 15px; line-height: 1.75; background: var(--panel-soft); }
.rule-strip span { font-size: 14px; line-height: 1.65; border-radius: 4px; }
.summary-card { padding: 14px 16px; border-radius: 5px; font-size: 15px; line-height: 1.75; }
.source-grid { gap: 20px; }
.source-group { min-width: 0; padding: 0; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: transparent; box-shadow: none; }
.source-group-head { padding: 16px 0; gap: 12px; }
.source-group-head h3 { font-size: 18px; line-height: 1.45; }
.source-group-head p, .source-group-head > span { font-size: 14px; line-height: 1.65; }
.source-group-list { gap: 12px; }
.source-group .source-row { min-width: 0; padding: 16px; border: 1px solid var(--border); border-radius: 5px; background: var(--panel-soft); box-shadow: none; }
.source-group .source-row.attention, .source-group .source-row.ai_recovered, .source-group .source-row.fresh { box-shadow: none; }
.source-name { font-size: 16px; line-height: 1.6; }
.source-state { padding: 3px 7px; border-radius: 4px; font-size: 13px; line-height: 1.6; }
.source-status-pair { gap: 10px; }
.source-dimension { padding: 8px 10px; border-radius: 4px; }
.source-dimension small, .source-dimension b { font-size: 14px; line-height: 1.65; }
.source-msg, .source-url, .source-meta, .source-meta span { font-size: 14px; line-height: 1.7; }
.source-url { display: inline-flex; min-height: 44px; align-items: center; max-width: 100%; white-space: normal; word-break: break-all; }
.self-check-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.self-check-card { padding: 16px; border-radius: 5px; border-left-width: 1px; }
.self-check-title { font-size: 15px; line-height: 1.6; }
.self-check-msg, .self-check-details, .self-check-details span { font-size: 14px; line-height: 1.7; }
.self-check-counts { font-size: 14px; }
.monitor-tooltip { max-width: min(420px,calc(100vw - 24px)); border-radius: 5px; font-size: 14px; line-height: 1.65; }
.tooltip-title { font-size: 15px; }
.tooltip-events, .tooltip-grid { font-size: 14px; line-height: 1.65; }

/* Keep the actual path in the first desktop viewport. Warnings remain beside it. */
@media (min-width:901px) {
  .risk-lights-panel { gap: 16px 24px; }
  .risk-episode-banner { padding: 16px 20px 10px; gap: 10px 24px; }
  .risk-scenario-panel { display: grid; grid-template-columns: minmax(0,1fr) minmax(250px,280px); gap: 14px 24px; }
  .risk-scenario-header { grid-column: 1/-1; grid-row: 1; }
  .risk-scenario-body { display: contents; }
  .risk-scenario-warning { grid-column: 2; grid-row: 2; align-self: start; margin: 0; }
  .risk-scenario-fan { grid-column: 1; grid-row: 2/4; align-self: start; }
  .risk-scenario-fan svg { height: 260px; }
  .risk-turning-card { grid-column: 2; grid-row: 3; }
  .risk-scenario-probabilities, .risk-scenario-horizons, .risk-analogues,
  .risk-scenario-method, .risk-scenario-notices, .risk-scenario-state { grid-column: 1/-1; }
}
@media (max-width:1180px) {
  .monitor-app { padding-inline: 20px; }
  .monitor-topbar { margin-inline: -20px; padding-inline: 20px; gap: 22px; }
  .monitor-status-strip { align-items: start; flex-wrap: wrap; }
  .monitor-refresh-tools { flex-basis: 100%; justify-content: flex-start; }
  .risk-episode-banner { grid-template-columns: minmax(230px,.8fr) minmax(0,1.2fr); }
  .risk-episode-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .risk-analysis-card.outlook { grid-column: 1/8; }
  .risk-analysis-card.pipeline { grid-column: 8/-1; }
  .risk-scenario-body { grid-template-columns: minmax(0,1fr) 240px; }
  .market-risk-history-head { align-items: start; flex-direction: column; gap: 12px; }
  .metric-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .metric-card { border-bottom: 1px solid var(--border); }
  .bottom-grid, .self-check-grid { grid-template-columns: 1fr; }
}
@media (max-width:900px) {
  .risk-lights-panel { gap: 22px; }
  .risk-analysis-card.outlook, .risk-analysis-card.pipeline, .risk-analysis-card.outlook:has(.daily-outlook-details[open]) { grid-column: 1/-1; }
  .risk-analysis-card.pipeline { padding-left: 0; padding-top: 18px; border-left: 0; border-top: 1px solid var(--border); }
  .risk-analysis-stats { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .risk-scenario-body { grid-template-columns: minmax(0,1fr); }
  .risk-turning-card { padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--border); }
  .risk-chart-layout { grid-template-columns: minmax(0,1fr); }
  .risk-signal-detail { padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--border); }
  .detail-grid, .status-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .monitor-app { padding: 0 16px 32px; }
  .monitor-topbar { margin-inline: -16px; padding: 8px 16px 0; gap: 0 16px; flex-wrap: wrap; }
  .monitor-app .brand-link h1 { font-size: 18px; }
  .monitor-primary-nav { flex-basis: 100%; order: 3; gap: 24px; min-height: 48px; }
  .monitor-primary-nav a { min-height: 48px; font-size: 14px; }
  .monitor-primary-nav a[aria-current="page"]::after { bottom: 0; }
  .monitor-theme-tools { margin-left: auto; }
  .monitor-status-strip { gap: 8px; padding: 12px 0; }
  .monitor-time-tools { gap: 12px; width: 100%; }
  .monitor-refresh-tools { display: flex; gap: 8px 14px; width: 100%; justify-content: flex-start; }
  .monitor-refresh-tools .refresh-action { width: auto; margin-left: auto; }
  .status-chip, .time-chip { font-size: 13px; text-align: left; justify-content: flex-start; }
  .monitor-side { gap: 24px; width: 100%; }
  html[data-market-theme] body .monitor-app .side-nav { font-size: 15px; }
  .panel, .chart-panel, .risk-lights-panel { padding: 20px; border-radius: 7px; }
  .risk-lights-head h2 { font-size: 23px; }
  .risk-episode-banner { grid-template-columns: 1fr; gap: 16px; padding: 16px; }
  .risk-episode-facts { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .risk-analysis-card.outlook { grid-column: 1/-1; }
  .risk-scenario-header { flex-direction: column; gap: 8px; }
  .risk-scenario-meta { align-items: start; justify-content: flex-start; }
  .risk-scenario-fan svg { height: 320px; }
  .risk-scenario-probabilities { gap: 18px; }
  .risk-scenario-notices { grid-template-columns: 1fr; gap: 8px; }
  .risk-analysis-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .chart-tools { justify-content: flex-start; }
  .trend-facet-tools { flex: 1 1 100%; justify-content: flex-start; }
  .trend-canvas { height: 320px; }
  .trend-facet-empty { min-height: 320px; }
  .metric-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .source-group-head { flex-wrap: wrap; }
}
@media (max-width:520px) {
  body:has(.monitor-app) { font-size: 16px; }
  .monitor-app { padding-inline: 12px; }
  .monitor-topbar { margin-inline: -12px; padding-inline: 12px; }
  .brand-link { gap: 7px; }
  .monitor-brand-mark { width: 29px; height: 25px; }
  .monitor-app .brand-link h1 { font-size: 17px; }
  .theme-choice { min-width: 48px; padding-inline: 7px; font-size: 13px; }
  .monitor-primary-nav { justify-content: space-between; gap: 14px; }
  .monitor-primary-nav a { font-size: 14px; }
  .monitor-status-strip { display: flex; flex-direction: column; align-items: stretch; }
  .monitor-time-tools { display: flex; gap: 10px; flex-wrap: wrap; }
  .monitor-time-tools .status-chip { width: auto; font-size: 13px; white-space: normal; overflow: visible; text-overflow: clip; }
  .monitor-refresh-tools { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 10px; }
  .monitor-refresh-tools .status-chip { width: auto; overflow: visible; text-overflow: clip; white-space: normal; font-size: 13px; }
  .monitor-refresh-tools .next-refresh-chip { grid-column: 1/-1; }
  .monitor-refresh-tools .alert { grid-column: 1; }
  .monitor-refresh-tools .refresh-action { grid-column: 2; min-height: 44px; padding: 8px 12px; margin: 0; width: 100%; font-size: 14px; }
  .monitor-shell { gap: 16px; }
  .monitor-side { gap: 0; justify-content: space-between; }
  html[data-market-theme] body .monitor-app .side-nav { min-height: 48px; font-size: 15px; }
  .panel, .chart-panel, .risk-lights-panel { padding: 16px; }
  .risk-lights-panel { gap: 20px; }
  .risk-lights-head h2 { font-size: 21px; }
  .risk-lights-title-row { gap: 7px; }
  .risk-lights-head p { font-size: 16px; line-height: 1.75; }
  .risk-episode-banner { padding: 14px; gap: 16px; }
  .risk-episode-copy h3 { font-size: 20px; }
  .risk-episode-copy p { font-size: 16px; line-height: 1.75; }
  .risk-episode-facts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .risk-episode-facts dt { font-size: 14px; }
  .risk-episode-facts dd { font-size: 16px; line-height: 1.6; }
  .risk-episode-footer { align-items: start; flex-wrap: wrap; font-size: 14px; }
  .risk-scenario-title-row { gap: 7px; }
  .risk-scenario-title-row h3 { width: 100%; font-size: 20px; }
  .risk-scenario-header > div:first-child > p { font-size: 16px; line-height: 1.75; }
  .risk-scenario-meta span { font-size: 14px; }
  .risk-scenario-fan-head { align-items: start; flex-wrap: wrap; gap: 6px; }
  .risk-scenario-fan-head b { font-size: 17px; }
  .risk-scenario-fan-head span, .risk-fan-source { font-size: 14px; line-height: 1.65; }
  .risk-scenario-fan svg { height: 255px; }
  .risk-fan-clarity .fan-cursor-readout { font-size: 16px; line-height: 1.65; }
  .risk-fan-clarity .fan-cursor-readout small { font-size: 14px; }
  .risk-scenario-fan figcaption { font-size: 14px; gap: 8px 12px; }
  .risk-scenario-body { gap: 18px; }
  .risk-scenario-probabilities { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .risk-scenario-phase { grid-column: 1/-1; }
  .risk-scenario-probability > div { flex-wrap: wrap; gap: 6px; }
  .risk-scenario-probability > div span, .risk-scenario-probability p, .risk-scenario-phase > p, .risk-scenario-phase > small { font-size: 14px; line-height: 1.7; }
  .risk-turning-card :is(p,small,dt,dd,span), .risk-scenario-notices p, .risk-scenario-method > p { font-size: 16px; line-height: 1.75; }
  .risk-turning-card .risk-turning-index { font-size: 14px; }
  .risk-analogue-card :is(span,p,dt,dd,li,small,a,b,strong) { font-size: 16px; line-height: 1.75; }
  .risk-analysis-card-head { flex-wrap: wrap; gap: 8px; }
  .risk-analysis-card-head h3, .risk-analysis-card.outlook .risk-analysis-card-head h3 { font-size: 20px; }
  .daily-outlook-horizons, .daily-outlook-detail-grid, .direction-horizons { grid-template-columns: 1fr; gap: 18px; }
  .risk-analysis-card.outlook .daily-outlook-horizon > span, .risk-analysis-card.outlook .daily-outlook-horizon small,
  .risk-analysis-card.outlook .daily-outlook-disclaimer { font-size: 16px; line-height: 1.75; }
  .risk-analysis-card.outlook .daily-outlook-details summary { font-size: 16px; line-height: 1.7; }
  .risk-analysis-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .risk-analysis-stats dt { font-size: 14px; }
  .risk-analysis-stats dd, .risk-analysis-summary, .risk-analysis-empty, .risk-analysis-warnings { font-size: 16px; line-height: 1.75; }
  .risk-analysis-card-foot { font-size: 14px; }
  .direction-horizon > span, .direction-horizon small, .direction-probability { font-size: 14px; }
  .disclosure-card > summary { flex-wrap: wrap; padding: 12px 42px 12px 14px; }
  .disclosure-card > summary strong, .risk-algorithm-guide > summary strong { font-size: 16px; }
  .disclosure-card > summary span { font-size: 14px; text-align: left; }
  .risk-model-comparison { padding: 16px 0; }
  .risk-model-comparison :is(p,dt,small), .risk-algorithm-guide-content :is(p,li,small) { font-size: 16px; line-height: 1.75; }
  .risk-algorithm-grid { grid-template-columns: 1fr; }
  .risk-algorithm-card, .risk-comparison-row, .risk-comparison-target, .risk-v5-promotion { padding: 14px; }
  .market-risk-history-head h3 { font-size: 20px; }
  .risk-control-row { justify-content: flex-start; gap: 10px; }
  .risk-range-tabs, .risk-series-switches { flex-wrap: wrap; }
  .risk-range-btn { padding-inline: 10px; }
  .risk-zoom-tools { max-width: 100%; }
  .risk-zoom-tools span { flex-basis: 100%; }
  .risk-canvas { height: 340px; }
  .risk-chart-help, .risk-signal-detail :is(p,span,dt,dd,li,small,b,strong), .risk-intervals :is(p,span,small,dt,dd), .risk-recent-head span { font-size: 16px; line-height: 1.75; }
  .risk-method-content :is(p,span,small,b,dt,dd), .risk-recent-list :is(span,b,p,small) { font-size: 16px; line-height: 1.75; }
  .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .metric-card, .metric-card:nth-child(4), .metric-card:last-child { min-height: 126px; padding: 16px 14px; border: 0; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
  .metric-card:nth-child(even) { border-right: 0; }
  .metric-label, .metric-sub, .metric-source { font-size: 14px; }
  .metric-value { font-size: 25px; }
  .panel-head { flex-wrap: wrap; }
  .panel-head h2, .trend-facet-title h3 { font-size: 20px; }
  .chart-subhead { display: flex; align-items: start; flex-direction: column; font-size: 16px; }
  .chart-tools { width: 100%; gap: 12px; }
  .metric-switches { width: 100%; }
  .metric-switches label { font-size: 14px; padding-inline: 10px; }
  .range-tabs { max-width: 100%; flex-wrap: wrap; gap: 3px; }
  .range-btn { padding-inline: 10px; font-size: 14px; }
  .overview-canvas { height: 300px; }
  .trend-facet-title p { font-size: 16px; line-height: 1.75; }
  .trend-facet-tools { align-items: start; gap: 10px; flex-wrap: wrap; }
  .trend-facet-legend { max-width: 100%; flex-wrap: wrap; }
  .trend-legend-btn, .trend-expand-btn { padding-inline: 10px; font-size: 14px; }
  .trend-canvas { height: 320px; }
  .trend-facet-empty { min-height: 320px; }
  .trend-facet.is-expanded .trend-canvas, .trend-facet.is-expanded .trend-facet-empty { height: 460px; min-height: 460px; }
  .trend-facet-readout { font-size: 16px; line-height: 1.75; }
  .detail-grid, .status-grid, .hover-metric-list { grid-template-columns: 1fr; }
  .detail-panel :is(p,span,small,dt,dd) { font-size: 16px; line-height: 1.75; }
  .monitor-table th, .monitor-table td { padding: 12px; font-size: 15px; }
  .source-help, .rule-strip, .summary-card, .self-check-msg, .self-check-details, .source-msg, .source-meta { font-size: 16px; line-height: 1.75; }
  .source-group-head p, .source-group-head > span { font-size: 16px; line-height: 1.75; }
  .source-group .source-row { padding: 14px; }
  .source-name { font-size: 17px; }
  .source-meta span, .source-url { font-size: 16px; line-height: 1.75; }
  .source-status-pair { flex-wrap: wrap; }
  .source-dimension small, .source-dimension b { font-size: 16px; line-height: 1.75; }
  .self-check-title { font-size: 16px; }
  .tall-table { max-height: none; }
}
@media (prefers-reduced-motion:reduce) {
  .monitor-app *, .monitor-app *::before, .monitor-app *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
