/* Nabz Codal theme system: the only source of reusable light/dark color values. */
:root {
  color-scheme: light;
  --bg-canvas: #f6f8fc;
  --bg-surface: #ffffff;
  --bg-surface-secondary: #f8fafd;
  --bg-elevated: #ffffff;
  --bg-muted: #f1f5f9;
  --bg-brand: #eaf0ff;
  --text-primary: #101828;
  --text-strong: #0f172a;
  --text-secondary: #475467;
  --text-muted: #596579;
  --text-disabled: #667085;
  --text-inverse: #ffffff;
  --border-default: #dce4f0;
  --border-subtle: #e8edf5;
  --border-strong: #cbd5e1;
  --brand-primary: #0e34fa;
  --brand-hover: #0928c7;
  --brand-action: #0e34fa;
  --brand-action-hover: #0928c7;
  --brand-soft: #eaf0ff;
  --brand-on: #ffffff;
  --success-text: #0f703a;
  --success-bg: #e8f7ee;
  --success-border: #b7e0c8;
  --success-on: #ffffff;
  --warning-text: #965600;
  --warning-bg: #fff4d9;
  --warning-border: #edcf8b;
  --warning-on: #ffffff;
  --danger-text: #c82035;
  --danger-bg: #fdecee;
  --danger-border: #f1b9c0;
  --danger-on: #ffffff;
  --info-text: #0e34fa;
  --info-bg: #eaf0ff;
  --info-border: #b9c8ff;
  --accent-violet: #6d4dcc;
  --positive: #0f703a;
  --negative: #d92d3a;
  --focus-ring: #0e34fa;
  --hover-surface: #f1f5ff;
  --selected-surface: #eaf0ff;
  --overlay: rgba(15, 23, 42, .5);
  --shadow-sm: 0 2px 8px rgba(20, 33, 61, .06);
  --shadow-md: 0 8px 24px rgba(20, 33, 61, .08);
  --shadow-lg: 0 20px 50px rgba(20, 33, 61, .12);
  --chart-grid: #e6ebf2;
  --chart-axis: #cbd5e1;
  --chart-label: #64748b;
  --chart-tooltip-bg: #172033;
  --chart-tooltip-text: #ffffff;
  --accent-dollar: #0b7a66;
  --accent-dollar-soft: #e8f7ee;
  --accent-gold: #805500;
  --accent-gold-soft: #fff4d9;
  --accent-silver: #526174;
  --accent-silver-soft: #edf1f5;

  /* Compatibility aliases for the existing presentation layers. */
  --market-bg: var(--bg-canvas);
  --market-surface: var(--bg-surface);
  --market-line: var(--border-default);
  --market-text: var(--text-primary);
  --market-muted: var(--text-muted);
  --market-brand: var(--brand-primary);
  --market-positive: var(--positive);
  --market-negative: var(--negative);
  --market-amber: var(--warning-text);
  --ti-bg: var(--bg-canvas);
  --ti-bg-deep: var(--bg-surface-secondary);
  --ti-panel: var(--bg-surface);
  --ti-panel-solid: var(--bg-surface);
  --ti-panel-alt: var(--bg-muted);
  --ti-ink: var(--text-primary);
  --ti-muted: var(--text-muted);
  --ti-line: var(--border-subtle);
  --ti-line-strong: var(--border-default);
  --ti-brand: var(--brand-primary);
  --ti-cyan: var(--info-text);
  --ti-green: var(--positive);
  --ti-green-soft: var(--success-bg);
  --ti-red: var(--negative);
  --ti-red-soft: var(--danger-bg);
  --ti-amber: var(--warning-text);
  --ti-violet: #6d4dcc;
  --ti-shadow: var(--shadow-md);
  --asset-blue: var(--brand-primary);
  --asset-cyan: var(--info-text);
  --asset-ink: var(--text-primary);
  --asset-muted: var(--text-muted);
  --asset-border: var(--border-default);
  --asset-canvas: var(--bg-canvas);
  --asset-card: var(--bg-surface);
}

html[data-market-theme="dark"] {
  color-scheme: dark;
  --bg-canvas: #0b111b;
  --bg-surface: #111827;
  --bg-surface-secondary: #151e2d;
  --bg-elevated: #182235;
  --bg-muted: #1f2937;
  --bg-brand: #172554;
  --text-primary: #f8fafc;
  --text-strong: #ffffff;
  --text-secondary: #cbd5e1;
  --text-muted: #94a3b8;
  --text-disabled: #94a3b8;
  --text-inverse: #ffffff;
  --border-default: #263244;
  --border-subtle: #202b3b;
  --border-strong: #334155;
  --brand-primary: #8da2ff;
  --brand-hover: #b2c0ff;
  --brand-action: #405bea;
  --brand-action-hover: #3048c7;
  --brand-soft: #172554;
  --success-text: #4ade80;
  --success-bg: #123523;
  --success-border: #245a3b;
  --success-on: #07170d;
  --warning-text: #fbbf24;
  --warning-bg: #3a2b10;
  --warning-border: #69501d;
  --warning-on: #1a1200;
  --danger-text: #fb7185;
  --danger-bg: #3a1820;
  --danger-border: #6f2936;
  --danger-on: #21050c;
  --info-text: #8da2ff;
  --info-bg: #172554;
  --info-border: #344ba0;
  --accent-violet: #c4b5fd;
  --positive: #4ade80;
  --negative: #fb7185;
  --focus-ring: #8198ff;
  --hover-surface: #1e2a44;
  --selected-surface: #172554;
  --overlay: rgba(2, 6, 23, .78);
  --shadow-sm: 0 0 0 1px rgba(148, 163, 184, .03);
  --shadow-md: 0 12px 30px rgba(0, 0, 0, .22);
  --shadow-lg: 0 26px 70px rgba(0, 0, 0, .34);
  --chart-grid: #273447;
  --chart-axis: #3b4a60;
  --chart-label: #aab7c8;
  --chart-tooltip-bg: #f8fafc;
  --chart-tooltip-text: #101828;
  --accent-dollar: #4ade80;
  --accent-dollar-soft: #123523;
  --accent-gold: #fbbf24;
  --accent-gold-soft: #3a2b10;
  --accent-silver: #cbd5e1;
  --accent-silver-soft: #263244;
  --ti-violet: #b8a7ff;
}

html { background: var(--bg-canvas); }
body,
html[data-market-theme] body {
  background: var(--bg-canvas) !important;
  color: var(--text-primary) !important;
  accent-color: var(--brand-primary);
}

html.theme-ready body,
html.theme-ready header,
html.theme-ready footer,
html.theme-ready main,
html.theme-ready section,
html.theme-ready article,
html.theme-ready aside,
html.theme-ready nav,
html.theme-ready input,
html.theme-ready textarea,
html.theme-ready select,
html.theme-ready button {
  transition-property: background-color, color, border-color, box-shadow;
  transition-duration: 180ms;
  transition-timing-function: ease;
}

::selection { background: var(--brand-action); color: var(--brand-on); }
* { scrollbar-color: var(--border-strong) var(--bg-surface-secondary); }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: var(--bg-surface-secondary); }
*::-webkit-scrollbar-thumb { border: 2px solid var(--bg-surface-secondary); border-radius: 999px; background: var(--border-strong); }
*::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--focus-ring) !important;
  outline-offset: 3px;
}
:where(button, input, select, textarea):disabled,
:where(button, input, select, textarea)[aria-disabled="true"] {
  color: var(--text-disabled) !important;
  cursor: not-allowed;
  opacity: .72;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
textarea,
select {
  border-color: var(--border-default) !important;
  background-color: var(--bg-surface-secondary) !important;
  color: var(--text-primary) !important;
}
input::placeholder,
textarea::placeholder { color: var(--text-muted) !important; opacity: 1; }
input:read-only,
textarea:read-only { background-color: var(--bg-muted) !important; }
input:invalid:not(:placeholder-shown),
textarea:invalid:not(:placeholder-shown) { border-color: var(--danger-text) !important; }
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-text-fill-color: var(--text-primary) !important;
  caret-color: var(--text-primary);
  box-shadow: 0 0 0 1000px var(--bg-surface-secondary) inset !important;
  transition: background-color 9999s ease-out 0s;
}

/* Legacy utility colors are mapped to semantic roles without changing markup. */
html[data-market-theme] body [class*="bg-slate-950"] { background-color: var(--bg-canvas) !important; }
html[data-market-theme] body [class*="bg-slate-900"] { background-color: var(--bg-surface) !important; }
html[data-market-theme] body [class*="bg-slate-800"] { background-color: var(--bg-muted) !important; }
html[data-market-theme] body [class*="bg-slate-700"] { background-color: var(--border-strong) !important; }
html[data-market-theme] body :is(.text-slate-100, .text-slate-200, .text-slate-300, .text-white) { color: var(--text-primary) !important; }
html[data-market-theme] body .text-slate-400 { color: var(--text-secondary) !important; }
html[data-market-theme] body :is(.text-slate-500, .text-slate-600, .text-gray-400, .text-gray-500) { color: var(--text-muted) !important; }
html[data-market-theme] body :is(.border-slate-950, .border-slate-900, .border-slate-800, .border-slate-700) { border-color: var(--border-default) !important; }
html[data-market-theme] body [class*="shadow-black"], html[data-market-theme] body [class*="shadow-slate"] { --tw-shadow-color: transparent !important; box-shadow: var(--shadow-md) !important; }
html[data-market-theme] body [class*="text-blue-"], html[data-market-theme] body [class*="text-indigo-"], html[data-market-theme] body [class*="text-purple-"] { color: var(--info-text) !important; }
html[data-market-theme] body [class*="text-cyan-"], html[data-market-theme] body [class*="text-sky-"] { color: var(--info-text) !important; }
html[data-market-theme] body [class*="text-emerald-"], html[data-market-theme] body [class*="text-green-"] { color: var(--success-text) !important; }
html[data-market-theme] body [class*="text-rose-"], html[data-market-theme] body [class*="text-red-"] { color: var(--danger-text) !important; }
html[data-market-theme] body [class*="text-amber-"], html[data-market-theme] body [class*="text-yellow-"] { color: var(--warning-text) !important; }
html[data-market-theme] body [class*="text-fuchsia-"], html[data-market-theme] body [class*="text-violet-"] { color: var(--accent-violet) !important; }

html[data-market-theme] body [class~="bg-blue-600"], html[data-market-theme] body [class~="bg-blue-500"],
html[data-market-theme] body [class~="bg-indigo-600"], html[data-market-theme] body [class~="bg-purple-600"], html[data-market-theme] body [class~="bg-fuchsia-600"],
html[data-market-theme] body [class~="bg-cyan-600"], html[data-market-theme] body [class~="bg-sky-600"] {
  background-color: var(--brand-action) !important;
  color: var(--brand-on) !important;
}
html[data-market-theme] body [class~="bg-emerald-600"], html[data-market-theme] body [class~="bg-emerald-500"] {
  background-color: var(--success-text) !important;
  color: var(--success-on) !important;
}
html[data-market-theme] body [class~="bg-amber-600"], html[data-market-theme] body [class~="bg-amber-500"] {
  background-color: var(--warning-text) !important;
  color: var(--warning-on) !important;
}
html[data-market-theme] body [class~="bg-rose-600"], html[data-market-theme] body [class~="bg-rose-500"] {
  background-color: var(--danger-text) !important;
  color: var(--danger-on) !important;
}
html[data-market-theme] body [class~="bg-blue-500/10"], html[data-market-theme] body [class~="bg-blue-500/20"],
html[data-market-theme] body [class~="bg-blue-400/10"], html[data-market-theme] body [class~="bg-blue-400/20"],
html[data-market-theme] body [class~="bg-indigo-500/10"], html[data-market-theme] body [class~="bg-indigo-500/15"], html[data-market-theme] body [class~="bg-purple-500/10"] {
  border-color: var(--info-border) !important;
  background: var(--info-bg) !important;
  color: var(--info-text) !important;
}
html[data-market-theme] body [class~="bg-emerald-500/10"], html[data-market-theme] body [class~="bg-emerald-500/20"],
html[data-market-theme] body [class~="bg-emerald-400/10"], html[data-market-theme] body [class~="bg-emerald-400/20"] {
  border-color: var(--success-border) !important;
  background: var(--success-bg) !important;
  color: var(--success-text) !important;
}
html[data-market-theme] body [class~="bg-amber-500/10"], html[data-market-theme] body [class~="bg-amber-500/20"],
html[data-market-theme] body [class~="bg-amber-400/10"], html[data-market-theme] body [class~="bg-amber-400/20"] {
  border-color: var(--warning-border) !important;
  background: var(--warning-bg) !important;
  color: var(--warning-text) !important;
}
html[data-market-theme] body [class~="bg-rose-500/10"], html[data-market-theme] body [class~="bg-rose-500/20"],
html[data-market-theme] body [class~="bg-rose-400/10"], html[data-market-theme] body [class~="bg-rose-400/20"] {
  border-color: var(--danger-border) !important;
  background: var(--danger-bg) !important;
  color: var(--danger-text) !important;
}
body [class*="bg-gradient"][class*="via-slate-900"] {
  border-color: var(--info-border) !important;
  background: linear-gradient(135deg, var(--info-bg), var(--bg-surface) 52%, var(--bg-surface-secondary)) !important;
}
html[data-market-theme] body :is([class~="bg-blue-600"], [class~="bg-blue-500"], [class~="bg-indigo-600"], [class~="bg-purple-600"], [class~="bg-fuchsia-600"], [class~="bg-cyan-600"], [class~="bg-sky-600"]).text-white,
html[data-market-theme] body :is([class~="bg-blue-600"], [class~="bg-blue-500"], [class~="bg-indigo-600"], [class~="bg-purple-600"], [class~="bg-fuchsia-600"], [class~="bg-cyan-600"], [class~="bg-sky-600"]) .text-white { color: var(--brand-on) !important; }
html[data-market-theme] body :is([class~="bg-emerald-600"], [class~="bg-emerald-500"], [class~="bg-green-600"], [class~="bg-green-500"]).text-white,
html[data-market-theme] body :is([class~="bg-emerald-600"], [class~="bg-emerald-500"], [class~="bg-green-600"], [class~="bg-green-500"]) .text-white { color: var(--success-on) !important; }
html[data-market-theme] body :is([class~="bg-amber-600"], [class~="bg-amber-500"], [class~="bg-yellow-600"], [class~="bg-yellow-500"]).text-white,
html[data-market-theme] body :is([class~="bg-amber-600"], [class~="bg-amber-500"], [class~="bg-yellow-600"], [class~="bg-yellow-500"]) .text-white { color: var(--warning-on) !important; }
html[data-market-theme] body :is([class~="bg-rose-600"], [class~="bg-rose-500"], [class~="bg-red-600"], [class~="bg-red-500"]).text-white,
html[data-market-theme] body :is([class~="bg-rose-600"], [class~="bg-rose-500"], [class~="bg-red-600"], [class~="bg-red-500"]) .text-white { color: var(--danger-on) !important; }
html[data-market-theme] body :is([class~="bg-emerald-400/10"], [class~="bg-emerald-500/10"], [class~="bg-emerald-500/20"]).text-white,
html[data-market-theme] body :is([class~="bg-emerald-400/10"], [class~="bg-emerald-500/10"], [class~="bg-emerald-500/20"]) .text-white { color: var(--success-text) !important; }
html[data-market-theme] body :is([class~="bg-amber-400/10"], [class~="bg-amber-500/10"], [class~="bg-amber-500/20"]).text-white,
html[data-market-theme] body :is([class~="bg-amber-400/10"], [class~="bg-amber-500/10"], [class~="bg-amber-500/20"]) .text-white { color: var(--warning-text) !important; }
html[data-market-theme] body :is([class~="bg-rose-400/10"], [class~="bg-rose-500/10"], [class~="bg-rose-500/20"]).text-white,
html[data-market-theme] body :is([class~="bg-rose-400/10"], [class~="bg-rose-500/10"], [class~="bg-rose-500/20"]) .text-white { color: var(--danger-text) !important; }

html[data-market-theme] body :is([class~="hover:bg-blue-500"], [class~="hover:bg-blue-600"], [class~="hover:bg-indigo-500"], [class~="hover:bg-purple-500"], [class~="hover:bg-fuchsia-500"], [class~="hover:bg-cyan-500"], [class~="hover:bg-sky-500"]):hover {
  background-color: var(--brand-action-hover) !important;
  color: var(--brand-on) !important;
}
html[data-market-theme] body :is([class~="hover:bg-emerald-500"], [class~="hover:bg-green-500"]):hover {
  background-color: var(--success-text) !important;
  color: var(--success-on) !important;
}
html[data-market-theme] body :is([class~="hover:bg-amber-500"], [class~="hover:bg-yellow-500"]):hover {
  background-color: var(--warning-text) !important;
  color: var(--warning-on) !important;
}

table { border-color: var(--border-default) !important; color: var(--text-primary); }
thead, th { border-color: var(--border-default) !important; background: var(--bg-muted) !important; color: var(--text-secondary) !important; }
tbody tr { border-color: var(--border-subtle) !important; }
tbody tr:hover { background: var(--hover-surface) !important; }

.market-theme-toggle {
  position: fixed;
  right: auto;
  left: 1rem;
  width: max-content;
  max-width: calc(100vw - 2rem);
  bottom: 1rem;
  z-index: 120;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .5rem;
  border: 1px solid var(--border-default);
  border-radius: 999px;
  padding: .65rem .9rem;
  background: var(--bg-elevated);
  color: var(--text-primary);
  box-shadow: var(--shadow-lg);
  font: 800 .76rem Vazirmatn, Tahoma, sans-serif;
  cursor: pointer;
}
.market-theme-toggle:hover { border-color: var(--brand-primary); background: var(--hover-surface); color: var(--brand-primary); }
.market-theme-toggle [data-theme-icon] { display: grid; width: 1.25rem; height: 1.25rem; place-items: center; font-size: 1rem; }
.ti-command-nav .ti-command-cta,
.command-actions .command-primary { background: var(--brand-action); color: var(--brand-on) !important; }
.ti-command-nav .ti-command-cta:hover,
.command-actions .command-primary:hover { background: var(--brand-action-hover); color: var(--brand-on) !important; }
.company-page-header h1 > span,
.company-analysis-link,
.report-primary-action,
.directory-search button,
.market-watch-page .market-watch-toolbar button[type="submit"],
.market-watch-page .market-watch-account-nav .is-primary {
  border-color: var(--brand-action) !important;
  background: var(--brand-action) !important;
  color: var(--brand-on) !important;
}
.company-analysis-link:hover,
.report-primary-action:hover,
.directory-search button:hover,
.market-watch-page .market-watch-toolbar button[type="submit"]:hover,
.market-watch-page .market-watch-account-nav .is-primary:hover { background: var(--brand-action-hover) !important; color: var(--brand-on) !important; }

.account-plan-preview-grid article { border-color: var(--border-default); background: var(--bg-surface); box-shadow: var(--shadow-sm); }
.account-plan-preview-grid article.is-featured { border-color: var(--info-border); background: var(--info-bg); }
.account-plan-preview-grid span { color: var(--info-text); }
.account-plan-preview-grid h3 { color: var(--text-primary); }
.account-plan-preview-grid p { color: var(--text-muted); }
.terminal-home .primary-cta { border-color: var(--brand-action); background: var(--brand-action); color: var(--brand-on) !important; box-shadow: var(--shadow-md); }
.terminal-home .primary-cta:hover { background: var(--brand-action-hover); color: var(--brand-on) !important; }
.terminal-home .final-cta {
  border: 1px solid color-mix(in srgb, var(--brand-on) 22%, transparent);
  background-color: var(--brand-action-hover);
  background-image: linear-gradient(125deg, var(--brand-action), var(--brand-action-hover));
  color: var(--brand-on);
  box-shadow: var(--shadow-lg);
}

.ti-context-help > summary { border-color: var(--info-border); background: var(--info-bg); color: var(--info-text); box-shadow: var(--shadow-sm); }
.ti-context-help[open] > summary { background: var(--brand-action); color: var(--brand-on); }
.ti-context-help-panel { border-color: var(--border-default); background: var(--bg-elevated); color: var(--text-primary); box-shadow: var(--shadow-lg); }
.ti-context-help-brand { border-color: var(--info-border); background: var(--info-bg); color: var(--info-text); }
.ti-context-help-brand small { color: var(--text-muted); }
.ti-context-help-panel h3 { color: var(--text-primary); }
.ti-context-help-lead,
.ti-context-help-panel li { color: var(--text-secondary); }
.ti-context-help-note { border-color: var(--warning-border); background: var(--warning-bg); color: var(--warning-text); }
.ti-context-help-note strong { color: var(--warning-text); }

/* Reports: retain all table geometry while changing only presentation colors. */
.nc-reports .table-shell { scrollbar-color: var(--border-strong) var(--bg-surface-secondary); }
.nc-reports .data-grid th,
.nc-reports .data-grid td { border-color: var(--border-default) !important; }
.nc-reports .data-grid thead tr:first-child th,
.nc-reports .data-grid thead .descriptor { background: var(--brand-action) !important; color: var(--brand-on) !important; }
.nc-reports .data-grid thead tr:nth-child(2) th { background: var(--bg-muted) !important; color: var(--text-secondary) !important; }
.nc-reports .data-grid tbody .descriptor { background: var(--bg-surface-secondary) !important; color: var(--text-primary) !important; box-shadow: var(--shadow-sm) !important; }
.nc-reports .data-grid tbody tr:nth-child(even):not(.section-row):not(.total-row) td:not(.descriptor) { background: var(--bg-surface-secondary) !important; }
.nc-reports .data-grid tbody tr:hover td { background: var(--hover-surface) !important; color: var(--text-primary) !important; }
.nc-reports .data-grid .section-row td { background: var(--info-bg) !important; color: var(--info-text) !important; }
.nc-reports .data-grid .total-row td { background: var(--success-bg) !important; color: var(--success-text) !important; border-bottom-color: var(--success-border) !important; }
.nc-reports .data-grid .total-row .descriptor { background: var(--success-bg) !important; color: var(--success-text) !important; }
.nc-reports .data-grid .positive { color: var(--positive) !important; }
.nc-reports .data-grid .negative { color: var(--negative) !important; }
.nc-reports .data-grid .zero,
.nc-reports .data-grid .row-no { color: var(--text-muted) !important; opacity: .82; }
.nc-reports a[class~="bg-blue-600"] .text-blue-100 { color: var(--brand-on) !important; }
.nc-reports a[class~="bg-blue-600"] [class~="bg-white/15"] { background: color-mix(in srgb, var(--brand-on) 16%, transparent) !important; color: var(--brand-on) !important; }

/* Analysis: presentation-only overrides; existing layout and chart data colors stay intact. */
.nc-analysis .analysis-page-header { border-color: var(--border-default) !important; background: color-mix(in srgb, var(--bg-surface) 94%, transparent) !important; }
.nc-analysis .trend-grid { stroke: var(--chart-grid); }
.nc-analysis .trend-zero-grid { stroke: var(--chart-axis); }
.nc-analysis .trend-axis-label { fill: var(--chart-label); }
.nc-analysis .monthly-bar-value,
.nc-analysis .trend-value-label { fill: var(--text-strong); stroke: var(--bg-canvas); }
.nc-analysis .trend-point { fill: var(--bg-surface); }
.nc-analysis line.gauge-base { stroke: var(--text-strong); }
.nc-analysis circle.gauge-base { fill: var(--text-strong); }
.nc-analysis .gauge-center { fill: var(--brand-on); }
.nc-analysis .analysis-social-trigger {
  border-color: var(--info-border);
  background: var(--info-bg);
  color: var(--info-text);
}
.nc-analysis .analysis-social-backdrop { background: var(--overlay); }
.nc-analysis .analysis-social-dialog,
.nc-analysis .analysis-social-preset,
.nc-analysis .analysis-social-quality,
.nc-analysis .analysis-social-slide,
.nc-analysis .analysis-social-telegram-copy { border-color: var(--border-default); background: var(--bg-elevated); color: var(--text-primary); }
.nc-analysis .analysis-social-dialog-head { border-color: var(--border-default); }
.nc-analysis .analysis-social-dialog-head h2,
.nc-analysis .analysis-social-controls b { color: var(--text-primary); }
.nc-analysis .analysis-social-dialog-head span,
.nc-analysis .analysis-social-controls span,
.nc-analysis .analysis-social-controls small,
.nc-analysis .analysis-social-controls > p,
.nc-analysis .analysis-social-slide > span { color: var(--text-muted); }
.nc-analysis .analysis-social-close { border-color: var(--border-default); background: var(--bg-muted); color: var(--text-secondary); }
.nc-analysis .analysis-social-body { background: var(--bg-surface); }
.nc-analysis .analysis-social-preview { border-color: var(--border-default); background: var(--bg-surface-secondary); }
.nc-analysis .analysis-social-telegram-copy textarea { border-color: var(--border-default); background: var(--bg-surface-secondary); color: var(--text-primary); }
.nc-analysis .analysis-social-telegram-copy button { border-color: var(--info-border); background: var(--info-bg); color: var(--info-text); }
.nc-analysis .analysis-social-downloads [data-social-download-slide] { border-color: var(--border-default); background: var(--bg-muted); color: var(--text-primary); }

/* Account/auth and operations components that previously carried a fixed theme. */
.nc-account .auth-aside { background: var(--bg-brand); color: var(--text-primary); border: 1px solid var(--info-border); }
.nc-account .auth-aside :is(h1, p, li) { color: var(--text-primary); }
.nc-account .auth-aside .eyebrow { color: var(--info-text) !important; }
.nc-account .message { border-color: var(--info-border); background: var(--info-bg); color: var(--info-text); }
.nc-account .notice { border-color: var(--warning-border); background: var(--warning-bg); color: var(--warning-text); }
.nc-account .highlight { border-color: var(--success-border); background: var(--success-bg); color: var(--success-text); }
.nc-account .status { color: var(--success-text); }
.nc-account .errorlist { color: var(--danger-text); }
.nc-account .app-brand small { color: var(--text-muted); }

/* Asset tools keep their financial accents while every surrounding surface follows the global theme. */
.asset-calculator-page { background: var(--bg-canvas) !important; color: var(--text-primary); }
.asset-calculator-page :is(.asset-hero, .asset-input-card, .asset-results, .asset-image-stage, .asset-chart-card) {
  border-color: var(--border-default);
  background: var(--bg-surface);
  color: var(--text-primary);
  box-shadow: var(--shadow-md);
}
.asset-calculator-page .asset-kpi-grid article { border-color: var(--border-default); background: var(--bg-surface); color: var(--text-primary); }
.asset-calculator-page .asset-tab { border-color: var(--border-default); background: var(--bg-surface); color: var(--text-secondary); }
.asset-calculator-page .asset-tab.is-active { border-color: var(--brand-primary); background: var(--brand-soft); color: var(--brand-primary); }
.asset-calculator-page .asset-tab-icon.usd { background: var(--accent-dollar-soft); color: var(--accent-dollar); }
.asset-calculator-page .asset-tab-icon.gold { background: var(--accent-gold-soft); color: var(--accent-gold); }
.asset-calculator-page .asset-tab-icon.silver { background: var(--accent-silver-soft); color: var(--accent-silver); }
.asset-calculator-page :is(.asset-price-grid label, .asset-month-inputs label, .asset-summary-card strong, .asset-card-heading h2, .asset-results-heading h2, .asset-image-stage-head h2) { color: var(--text-primary); }
.asset-calculator-page :is(.asset-brand-note small, .asset-price-grid label span, .asset-inflation-head small, .asset-inflation-head > span, .asset-input-note, .asset-summary-card small, .asset-summary-card span, .asset-chart-head small, .asset-image-stage-head p, .asset-image-stage span, .asset-disclaimer) { color: var(--text-muted); }
.asset-calculator-page .asset-card-heading > span { background: var(--success-bg); color: var(--success-text); }
.asset-calculator-page .asset-inflation-head { border-color: var(--border-subtle); }
.asset-calculator-page .asset-month-inputs b,
.asset-calculator-page .asset-summary-card,
.asset-calculator-page .asset-image-preview { background: var(--bg-muted); color: var(--text-secondary); }
.asset-calculator-page .asset-summary-card { border-color: var(--border-default); }
.asset-calculator-page .asset-month-inputs label.is-current { background: var(--brand-soft); color: var(--text-primary); }
.asset-calculator-page .asset-month-inputs label.is-current b { background: var(--brand-action); color: var(--brand-on); }
.asset-calculator-page :is(.asset-card-heading p, .asset-results-heading p, .asset-image-stage p) { color: var(--info-text); }
.asset-calculator-page .asset-kpi-grid :is(small, span) { color: var(--text-muted); }
.asset-calculator-page .asset-kpi-grid article strong { color: var(--info-text); }
.asset-calculator-page .asset-kpi-grid .asset-priority-card { border-color: var(--info-border); background: var(--info-bg); }
.asset-calculator-page .asset-kpi-grid .asset-priority-card strong { color: var(--text-strong); }
.asset-calculator-page .asset-results-heading button { border-color: var(--border-default); background: var(--bg-surface-secondary); color: var(--text-primary); }
.asset-calculator-page .asset-results-heading button:hover { border-color: var(--brand-primary); color: var(--brand-primary); }
.asset-calculator-page .asset-image-stage-head button,
.asset-calculator-page .asset-account-nav .is-primary { border-color: var(--brand-action); background: var(--brand-action); color: var(--brand-on); }
.asset-calculator-page .asset-account-nav a { border-color: var(--border-default); color: var(--text-secondary); }
.asset-calculator-page .asset-chart-grid { stroke: var(--chart-grid); }
.asset-calculator-page .asset-chart-axis { stroke: var(--chart-axis); }
.asset-calculator-page .asset-chart-label { fill: var(--chart-label); }
.asset-calculator-page .asset-chart-value { fill: var(--text-primary); }
.asset-calculator-page .asset-chart-dot { fill: var(--bg-surface); stroke: var(--brand-primary); }

/* Gold keeps its asset identity while using the same semantic surfaces and readable text. */
.asset-calculator-page .asset-tab.is-gold { border-color: var(--warning-border); background: var(--warning-bg); color: var(--accent-gold); }
.asset-calculator-page .asset-tab.is-gold .asset-tab-icon.gold,
.asset-calculator-page .asset-gold-formula-note > span,
.asset-calculator-page .asset-gold-section > header > b { border-color: var(--warning-border); background: var(--accent-gold-soft); color: var(--accent-gold); }
.asset-calculator-page :is(.asset-input-card-gold, .asset-results-gold, .asset-gold-formula-note, .asset-gold-market-strip, .asset-gold-section) { border-color: var(--border-default); background: var(--bg-surface); color: var(--text-primary); }
.asset-calculator-page .asset-gold-section > header { border-color: var(--border-subtle); background: var(--bg-surface-secondary) !important; box-shadow: none !important; }
.asset-calculator-page .asset-gold-market-strip > div + div,
.asset-calculator-page .asset-gold-pair article + article { border-color: var(--border-subtle); }
.asset-calculator-page :is(.asset-gold-formula-note b, .asset-gold-section h3, .asset-gold-pair strong) { color: var(--text-primary); }
.asset-calculator-page :is(.asset-gold-formula-note p, .asset-gold-market-strip small, .asset-gold-market-strip span, .asset-gold-section p, .asset-gold-pair small, .asset-gold-pair span) { color: var(--text-muted); }
.asset-calculator-page :is(.asset-results-gold .asset-results-heading p, .asset-gold-market-strip strong, .asset-gold-pair em) { color: var(--accent-gold); }
.asset-calculator-page .asset-gold-pair i { border-color: var(--warning-border); background: var(--bg-elevated); color: var(--accent-gold); }
.asset-calculator-page .asset-gold-bubble { border-color: var(--warning-border); background: var(--warning-bg); color: var(--warning-text); }
.asset-calculator-page .asset-gold-bubble span { color: var(--warning-text); }
.asset-calculator-page .asset-gold-year-end .asset-gold-pair strong { color: var(--text-secondary); }

.branding-controls,
.branding-preview-panel { border-color: var(--border-default); background: var(--bg-surface); }
.branding-upload { border-color: var(--info-border); background: var(--info-bg); }
.branding-upload:hover,
.branding-upload.is-dragover { border-color: var(--brand-primary); background: var(--hover-surface); }
.branding-upload b,
.branding-preview-head h3,
.branding-empty b { color: var(--text-primary); }
.branding-upload small,
.branding-control-grid label,
.branding-field,
.branding-export-options label,
.branding-preview-head > span,
.branding-empty { color: var(--text-muted); }
.branding-studio select,
.branding-studio input[type="text"] { border-color: var(--border-default); background: var(--bg-surface-secondary); color: var(--text-primary); }
.branding-switch-row label { color: var(--text-secondary); }
.branding-preset-row button { border-color: var(--info-border); background: var(--info-bg); color: var(--info-text); }
.branding-export-options output { color: var(--info-text); }
.branding-empty span { border-color: var(--info-border); background: var(--info-bg); color: var(--info-text); }
.branding-preview-panel { background: var(--bg-surface); }
.branding-canvas-wrap { border-color: var(--border-default); background: var(--bg-muted); }
.branding-download { border-color: var(--brand-action); background: var(--brand-action); color: var(--brand-on); }
.branding-download:hover:not(:disabled) { background: var(--brand-action-hover); color: var(--brand-on); }
.branding-download:disabled { border-color: var(--border-default); background: var(--bg-muted); color: var(--text-disabled); opacity: 1; }

.nc-error .button { background: var(--brand-action); color: var(--brand-on); }
.nc-error .code,
.nc-error .brand { color: var(--brand-primary); }

@media (max-width: 640px) {
  .market-theme-toggle { right: auto; left: .75rem; bottom: .75rem; max-width: calc(100vw - 1.5rem); padding: .62rem .76rem; }
}

@media print {
  :root,
  html[data-market-theme="dark"] {
    color-scheme: light;
    --bg-canvas: #ffffff;
    --bg-surface: #ffffff;
    --bg-surface-secondary: #ffffff;
    --bg-elevated: #ffffff;
    --bg-muted: #f1f5f9;
    --text-primary: #101828;
    --text-strong: #0f172a;
    --text-secondary: #475467;
    --text-muted: #667085;
    --border-default: #cbd5e1;
    --border-subtle: #e2e8f0;
  }
  .market-theme-toggle { display: none !important; }
  body { background: #ffffff !important; color: #101828 !important; }
}

@media (prefers-reduced-motion: reduce) {
  html.theme-ready *,
  html.theme-ready *::before,
  html.theme-ready *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
