/*
  China Snapshot single-theme compatibility layer

  New React routes use the stock shadcn neutral foundation. This file loads
  last on retained static routes so they converge on the same light tokens.
  There is no dark palette, saved preference, branded accent or theme toggle.
*/

:root,
html,
html[data-theme],
html[data-theme="light"] {
  color-scheme: light;

  /* Exact shadcn neutral light tokens */
  --background: oklch(1 0 0);
  --foreground: oklch(.145 0 0);
  --card: oklch(1 0 0);
  --card-foreground: oklch(.145 0 0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(.145 0 0);
  --primary: oklch(.205 0 0);
  --primary-foreground: oklch(.985 0 0);
  --secondary: oklch(.97 0 0);
  --secondary-foreground: oklch(.205 0 0);
  --muted: oklch(.97 0 0);
  --muted-foreground: oklch(.556 0 0);
  --accent: oklch(.97 0 0);
  --accent-foreground: oklch(.205 0 0);
  --destructive: oklch(.577 .245 27.325);
  --destructive-foreground: oklch(.985 0 0);
  --border: oklch(.922 0 0);
  --input: oklch(.922 0 0);
  --ring: oklch(.708 0 0);
  --radius: .625rem;
  --sans: 'Geist Variable', Geist, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  --serif: var(--sans);
  --mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Consolas, monospace;

  /* Compatibility aliases for retained route styles */
  --paper: var(--background);
  --paper-2: var(--muted);
  --paper-3: oklch(.94 0 0);
  --paper-deep: var(--background);
  --surface: var(--background);
  --ink: var(--foreground);
  --ink-2: oklch(.439 0 0);
  --ink-3: var(--muted-foreground);
  --ink-soft: oklch(.439 0 0);
  --line: var(--border);
  --line-2: var(--muted);
  --signal: var(--primary);
  --signal-deep: var(--foreground);
  --signal-soft: var(--muted);
  --red: var(--primary);
  --red-deep: var(--foreground);
  --red-soft: var(--muted);
  --china: var(--primary);
  --plasma: var(--foreground);
  --acid: var(--primary);
  --link: var(--foreground);
  --focus-ring: var(--ring);
  --up: #166534;
  --down: var(--destructive);
  --state-success: #166534;
  --state-warning: #854d0e;
  --state-error: var(--destructive);
  --state-live: #166534;
  --state-history: #854d0e;

  /* The old pillar hooks inherit the shadcn neutral chart scale. */
  --p-politics: oklch(.269 0 0);
  --p-economy: oklch(.371 0 0);
  --p-geopolitics: oklch(.439 0 0);
  --p-tech: oklch(.556 0 0);
  --p-regulatory: oklch(.708 0 0);
  --p-society: oklch(.556 0 0);

  --workspace-toolbar: var(--background);
  --workspace-toolbar-hover: var(--muted);
  --workspace-toolbar-line: var(--border);
  --workspace-toolbar-text: var(--foreground);
  --workspace-toolbar-text-muted: var(--muted-foreground);
  --workspace-canvas: var(--muted);
  --workspace-panel-alpha: rgba(255,255,255,.98);
  --workspace-grid: rgba(0,0,0,.05);
  --workspace-node-shadow: 0 1px 2px rgba(0,0,0,.05);
  --workspace-node-shadow-active: 0 1px 3px rgba(0,0,0,.10);
  --r: calc(var(--radius) * .8);
  --r-lg: var(--radius);
  --radius-control: calc(var(--radius) * .8);
  --radius-panel: var(--radius);
  --shadow: 0 1px 2px rgba(0,0,0,.05);
  --shadow-hi: 0 4px 12px rgba(0,0,0,.10);

  background: var(--background);
  color: var(--foreground);
}

body,
html[data-theme] body,
html[data-theme="light"] body {
  background: var(--background);
  color: var(--foreground);
  color-scheme: light;
  font-family: var(--sans);
}

::selection {
  background: var(--accent);
  color: var(--accent-foreground);
}

/* Shared shell */
.brand-logo { filter: none !important; }
:is(.masthead,.masthead-inner,.subnav,.metrics-strip,.ticker-wrapper) {
  background-color: rgba(255,255,255,.96);
  color: var(--foreground);
  border-color: var(--border);
}
.ticker-label {
  background: var(--primary);
  color: var(--primary-foreground);
}
.ticker-label::after { border-left-color: var(--primary); }
.briefing-cta {
  border-color: var(--primary);
  background: var(--primary);
  color: var(--primary-foreground);
}
.briefing-cta:hover {
  border-color: oklch(.269 0 0);
  background: oklch(.269 0 0);
  color: var(--primary-foreground);
}

/* Shared card and popover surfaces */
:is(
  .card,.film,.brief-frame,.brief-hero,.topic-card,.aside-box,
  .org-map-panel,.org-detail,.map-card,.signal-panel,.system-state,
  .tagview-panel,.snapshot-graph-panel,.synthesis-cue-copy,
  .synthesis-cue-topics,.src-list,.plan,.auth-card,.dashboard-card,
  .support-workspace,.support-strip,.support-message,.launch-notice,
  .checkout-return,.cost-inputs,.cost-output,.legal-main pre,.account-message,
  .secret-reveal,.pricing-card,.pricing-close
) {
  background-color: var(--card);
  color: var(--card-foreground);
  border-color: var(--border);
}
:is(.brief-actions-menu,.palette,.section-menu-sheet,.language-popover) {
  background: var(--popover);
  color: var(--popover-foreground);
  border-color: var(--border);
  box-shadow: var(--shadow-hi);
}
:is(.language-popover button:hover,.language-popover button.is-active,.pr-item:hover,.pr-item.is-sel) {
  background: var(--accent);
}

/* Utility, account and acquisition routes share the same neutral foundation. */
:is(.commercial-page,.pricing-page,.landing-page) {
  background: var(--background);
  color: var(--foreground);
}
:is(.commercial-page,.pricing-page,.landing-page) .landing-header {
  background: rgba(255,255,255,.96);
  color: var(--foreground);
  border-color: var(--border);
}
:is(.landing-brand,.landing-brand-type strong,.landing-nav a:hover,.landing-signin:hover,.landing-nav a[aria-current="page"]) {
  color: var(--foreground);
}
:is(.landing-brand-type small,.landing-nav a,.landing-signin) { color: var(--muted-foreground); }
:is(.language-menu-trigger,.auth-form input,.inline-form input,.cost-inputs input,.support-detail textarea) {
  background: var(--background);
  color: var(--foreground);
  border-color: var(--input);
}
:is(.commercial-page,.pricing-page) :is(.commercial-eyebrow,.legal-main h1,.legal-main h2,.legal-main h3,.commercial-main h1,.commercial-main h2,.commercial-main h3) {
  color: var(--foreground);
}
:is(.commercial-page,.pricing-page) :is(.plan-copy,.plan-billing-copy,.commercial-note,.account-trust) {
  color: var(--muted-foreground);
}
:is(.commercial-page,.pricing-page) .auth-tabs button {
  background: var(--muted);
  color: var(--muted-foreground);
}
:is(.commercial-page,.pricing-page) .auth-tabs button.is-active {
  background: var(--background);
  color: var(--foreground);
  box-shadow: var(--shadow);
}

body.landing-page :is(
  .landing-hero,.landing-section,.method-section,.briefing-section,.capability,
  .audience-strip,.proof-bar,.proof-section,.about-architecture,.landing-footer
) {
  background: var(--background);
  color: var(--foreground);
  border-color: var(--border);
}
body.landing-page :is(.audience-strip,.proof-bar,.landing-footer,.proof-section,.about-architecture) {
  background: var(--secondary);
}
body.landing-page :is(.hero-illustration,.capability-art,.method-art) img {
  filter: none;
  opacity: 1;
}
body.landing-page .button-primary,
body.landing-page .landing-cta,
.commercial-action.solid {
  border-color: var(--primary);
  background: var(--primary);
  color: var(--primary-foreground);
}
body.landing-page .button-primary:hover,
body.landing-page .landing-cta:hover,
.commercial-action.solid:hover {
  border-color: oklch(.269 0 0);
  background: oklch(.269 0 0);
  color: var(--primary-foreground);
}

/* Map and graph instruments use neutral work surfaces. */
:is(.map-head,.map-insights,.map-foot,.map-timeline,.snapshot-graph-head,.snapshot-graph-inspector,.snapshot-graph-legend) {
  background: var(--background);
  color: var(--foreground);
}
:is(.map-stage,.leaflet-container,.snapshot-graph-canvas) { background: var(--workspace-canvas); }
.leaflet-tile-pane { filter: grayscale(1) contrast(.94) brightness(1.03); }
:is(.map-legend,.province-tooltip,.map-coordinate,.measure-readout,.map-drawer,.map-drawer-head,.map-toast) {
  background: rgba(255,255,255,.98);
  color: var(--foreground);
  border-color: var(--input);
  box-shadow: var(--shadow);
}
:is(.drawer-note,.border-watch,.context-disclosure,.coverage-badge,.geo-binding code) {
  background: var(--muted);
  color: var(--muted-foreground);
  border-color: var(--border);
}
.snapshot-graph-filters button {
  background: var(--background);
  color: var(--muted-foreground);
  border-color: var(--border);
}
.snapshot-graph-filters button.is-active {
  background: var(--primary);
  color: var(--primary-foreground);
  border-color: var(--primary);
}
.snapshot-graph-node {
  background: var(--card);
  color: var(--card-foreground);
  border-color: var(--input);
}
.snapshot-graph-node[data-kind="snapshot"] {
  background: var(--primary);
  color: var(--primary-foreground);
  border-color: var(--primary);
}
.snapshot-graph-node[data-kind="signal"] {
  background: var(--muted);
  color: var(--foreground);
  border-color: var(--foreground);
}

@media (forced-colors: active) {
  :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
    outline-color: Highlight;
  }
}
