:root {
  /* Master Default: Slate / Steel Blue / Emerald */
  --color-bg-app: #1E293B;
  --color-bg-panel: #334155;
  --color-border: #475569;
  --color-primary: #3B82F6;
  --color-success: #10B981;
  --color-text-primary: #F8FAFC;
  --color-text-secondary: #94A3B8;
  --color-danger: #F87171;

  /* Existing semantic aliases used by the component styles. */
  --canvas: var(--color-bg-app);
  --surface: var(--color-bg-panel);
  --surface-2: var(--color-border);
  --line: var(--color-border);
  --line-soft: #475569b8;
  --text: var(--color-text-primary);
  --muted: var(--color-text-secondary);
  --dim: var(--color-text-secondary);
  --accent: var(--color-primary);
  --accent-soft: #3B82F633;
  --accent-ink: #F8FAFC;
  --blue: var(--color-primary);
  --success: var(--color-success);
  --danger: var(--color-danger);
}

/* Reserved extension points for future themes. */
:root[data-theme="luminous"] { --canvas: var(--color-bg-app); --surface: var(--color-bg-panel); --surface-2: var(--color-border); --line: var(--color-border); --text: var(--color-text-primary); --muted: var(--color-text-secondary); --accent: var(--color-primary); }
:root[data-theme="contrast"] { --canvas: #0F172A; --surface: #1E293B; --surface-2: #334155; --line: #64748B; --text: #F8FAFC; --muted: #CBD5E1; --accent: #60A5FA; }

/* Master chrome overrides keep legacy components on the shared token system. */
body { background: var(--color-bg-app); }
.app-header { background: #1E293BEE; border-color: var(--color-border); }
.panel-surface, .source-action, .analysis-section, .analysis-results-sidebar { background: var(--color-bg-panel); border-color: var(--color-border); }
.source-action:hover, .source-action.is-selected { background: #3B82F61A; border-color: var(--color-primary); box-shadow: 0 0 20px #3B82F633; }
.source-modal { background: #1E293BCC; }
.source-modal-card { background: var(--color-bg-panel); border-color: var(--color-border); }
.media-preview, .spatial-viewport { background-color: var(--color-bg-app); }
.media-controls, .preview-toolbar button, .analysis-icon-button, .analysis-fit-button { background: var(--color-bg-app); }
.analysis-section select, .analysis-search, .analysis-range output { background: var(--color-bg-panel); }
.workspace-tab.is-active, .button-primary, .configure-tab.is-active { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-text-primary); }
.workspace-tab.is-active { box-shadow: 0 0 22px #3B82F633; }
.button-outline, .button-quiet, .preview-toolbar button, .analysis-icon-button, .analysis-fit-button { border-color: var(--color-border); background: var(--color-bg-panel); color: var(--color-text-primary); }
.button-outline:hover, .button-quiet:hover, .preview-toolbar button:hover, .analysis-icon-button:hover, .analysis-fit-button:hover { border-color: var(--color-primary); }
.analysis-status i, #analysis-status-dot, .log-dot:not(.error) { background: var(--color-success); }
.analysis-status.is-running i { background: var(--color-primary); }
.status-success, .calibrated, .ready { color: var(--color-success); }
input, select, textarea { border-color: var(--color-border); background: var(--color-bg-panel); color: var(--color-text-primary); }
input:focus, select:focus, textarea:focus { border-color: var(--color-primary); outline-color: var(--color-primary); }
