/* 自动化生产线 · 设计令牌
   Swiss-minimal, high-density operations UI in the 易逊跨境 brand orange (#EF8200, sampled from the logo),
   system CJK fonts (no web fonts — users are in mainland China). Orange fills carry white text like the
   logo (a deliberate brand exception, ~2.7:1); orange text on light backgrounds uses --ps-primary-text. Contrast pairs are checked by tests/test_theme_contract.py.
   Declared on html:root so it outranks every page's own :root regardless of load order; the second
   half maps each page's legacy variables onto these tokens. Loaded last in every <head>. */
html:root {
  --ps-primary: #ef8200;            /* brand fill: buttons, active states, bars, icons */
  --ps-primary-hover: #db7600;
  --ps-primary-active: #c26800;     /* also the focus ring (3.96:1 on white) */
  --ps-primary-soft: #fff5e8;
  --ps-primary-tint: #ffe6c7;
  --ps-primary-text: #a35400;       /* orange text on white and light tints (≥4.5:1) */
  --ps-secondary: #fdba74;          /* light orange for chart bars and highlights — never behind text */
  --ps-accent: #f59e0b;             /* warning dots */
  --ps-on-accent: #0f172a;
  --ps-accent-ink: #92400e;
  --ps-accent-soft: #fef9c3;

  --ps-bg: #f8fafc;
  --ps-surface: #ffffff;
  --ps-surface-muted: #f1f5f9;
  --ps-muted: #e9eef6;
  --ps-text: #0f172a;
  --ps-text-2: #334155;
  --ps-text-muted: #475569;
  --ps-text-subtle: #64748b;        /* white / --ps-bg backgrounds only */
  --ps-border: #e2e8f0;
  --ps-border-accent: #ffe6c7;
  --ps-border-strong: #7c8ba1;      /* form controls: 3:1 against white */

  --ps-success: #166534; --ps-success-bg: #dcfce7; --ps-success-border: #86efac; --ps-success-solid: #15803d;
  --ps-warning: #854d0e; --ps-warning-bg: #fef9c3; --ps-warning-border: #fde047;   /* yellow, distinct from brand orange */
  --ps-danger: #991b1b;  --ps-danger-bg: #fee2e2;  --ps-danger-border: #fca5a5;  --ps-danger-solid: #dc2626;
  --ps-info: #a35400;    --ps-info-bg: #fff5e8;    --ps-info-border: #fdc98a;   /* running / notices in brand orange */
  --ps-neutral: #334155; --ps-neutral-bg: #f1f5f9; --ps-neutral-border: #cbd5e1;
  --ps-rail: #ef8200;               /* sidebar toggles; checked by the workspace browser tests */

  --ps-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI",
    "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", "WenQuanYi Micro Hei", sans-serif;
  --ps-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --ps-radius-control: 6px;
  --ps-radius-card: 8px;
  --ps-shadow-1: 0 1px 2px rgba(15, 23, 42, .06);
  --ps-shadow-2: 0 4px 12px rgba(15, 23, 42, .08);
  --ps-shadow-dialog: 0 24px 64px rgba(15, 23, 42, .24);
  --ps-backdrop: rgba(15, 23, 42, .5);
  --ps-ease: cubic-bezier(.2, 0, 0, 1);
  --ps-fast: 150ms;
  --ps-normal: 200ms;

  /* Legacy page variables → tokens (selection, upload, dashboard, shell, image API add-on). */
  --blue: var(--ps-primary);
  --blue-dark: var(--ps-primary-hover);
  --blue-deep: var(--ps-primary-active);
  --blue-soft: var(--ps-primary-soft);
  --blue-ink: var(--ps-primary-text);
  --green: var(--ps-success-solid);
  --green-soft: var(--ps-success-bg);
  --red: var(--ps-danger-solid);
  --amber: var(--ps-accent-ink);
  --orange-soft: var(--ps-accent-soft);
  --observation: var(--ps-text-2);
  --observation-soft: var(--ps-neutral-bg);
  --observation-line: var(--ps-neutral-border);
  --yellow: var(--ps-warning-bg);
  --notice: var(--ps-info-bg);
  --bg: var(--ps-bg);
  --paper: var(--ps-bg);
  --panel: var(--ps-surface);
  --panel-alt: var(--ps-surface-muted);
  --card: var(--ps-surface);
  --head: var(--ps-surface-muted);
  --ink: var(--ps-text);
  --ink-2: var(--ps-text-2);
  --muted: var(--ps-text-muted);
  --faint: var(--ps-text-subtle);
  --line: var(--ps-border);
  --line-dark: var(--ps-neutral-border);
  --shadow: var(--ps-shadow-1);
  --cyan: var(--ps-secondary);
  --display: var(--ps-font);
  --body: var(--ps-font);
  --mono: var(--ps-mono);
  --api-ink: var(--ps-text);
  --api-line: var(--ps-border);
  --api-accent: var(--ps-primary);
  --api-soft: var(--ps-primary-soft);
  --pipeline-blue: var(--ps-primary);
  --pipeline-blue-dark: var(--ps-primary-hover);
  --pipeline-blue-deep: var(--ps-primary-active);
  --pipeline-blue-soft: var(--ps-primary-soft);
  --pipeline-ink: var(--ps-text);
  --queue-toggle-blue: var(--ps-rail);
  --queue-toggle-dark: var(--ps-primary-hover);
  --queue-toggle-deep: var(--ps-primary-active);
}

/* Inside the shell the inner pages drop their duplicate location bars (see components.css). */
html[data-embedded="shell"] {
  --upload-header: 0px;
  --header: 40px;
}

@media (prefers-reduced-motion: reduce) {
  html:root { --ps-fast: 0ms; --ps-normal: 0ms; }
}
