/* PUSK Design System — semantic tokens, 5 theme modes (one component layer). */
@import url("https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&display=swap");

html {
  --font-sans: "Onest", system-ui, -apple-system, sans-serif;
  --font-display: "Source Serif 4", Georgia, serif;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 12px;
  --radius-full: 999px;
  --shadow-xs: 0 1px 1px rgba(25, 26, 28, 0.04);
  --shadow-sm: 0 1px 2px rgba(25, 26, 28, 0.06), 0 4px 12px rgba(25, 26, 28, 0.04);
  --shadow-md: 0 8px 24px rgba(25, 26, 28, 0.08);
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
}

html[data-pusk-theme="nebo"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f8f6f2;
  --bg-muted: #f2efe9;
  --bg-accent: #1e6fc4;
  --bg-accent-subtle: #eef6fe;
  --bg-accent-pressed: #1a5fad;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f4f3fe;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #191a1c;
  --text-secondary: #5c5953;
  --text-tertiary: #6e6a62;
  --text-accent: #1a64b3;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #a8a49c;
  --border-default: #eae6de;
  --border-control: #8c877d;
  --border-accent: #56a6f0;
  --border-danger: #efa79f;
  --focus-ring: #56a6f0;
  --timeline-now: #e5484d;
}

html[data-pusk-theme="grafit"] {
  --bg-canvas: #111315;
  --bg-surface: #181b1e;
  --bg-warm: #1a1d21;
  --bg-muted: #22262b;
  --bg-accent: #2bb3a6;
  --bg-accent-subtle: #1e3432;
  --bg-accent-pressed: #239e93;
  --bg-danger-subtle: #3a2228;
  --bg-warning-subtle: #3a3220;
  --bg-success-subtle: #1f3329;
  --bg-court-subtle: #2a2840;
  --bg-emphasis-subtle: #3a2430;
  --text-primary: #eceef0;
  --text-secondary: #b8bcc2;
  --text-tertiary: #8f959c;
  --text-accent: #4fd1c3;
  --text-on-accent: #0d1413;
  --text-danger: #f4a5a0;
  --text-warning: #e8c27a;
  --text-court: #c4b5fd;
  --text-emphasis: #e88aa2;
  --text-disabled: #6d737a;
  --border-default: #2c3137;
  --border-control: #5c636b;
  --border-accent: #4fd1c3;
  --border-danger: #c96a62;
  --focus-ring: #4fd1c3;
  --timeline-now: #ff6b6b;
}

html[data-pusk-theme="indigo"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f6f7fc;
  --bg-muted: #eef1fa;
  --bg-accent: #3b4bc8;
  --bg-accent-subtle: #eef1ff;
  --bg-accent-pressed: #3342b8;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f0f0ff;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #141a2e;
  --text-secondary: #4f5670;
  --text-tertiary: #6a718a;
  --text-accent: #3342b8;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #a0a6ba;
  --border-default: #e3e7f4;
  --border-control: #8a90a8;
  --border-accent: #6b7ae8;
  --border-danger: #efa79f;
  --focus-ring: #6b7ae8;
  --timeline-now: #e5484d;
}

html[data-pusk-theme="shalfey"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #f5f8f6;
  --bg-muted: #eaf1ec;
  --bg-accent: #2f6b4f;
  --bg-accent-subtle: #e8f3ed;
  --bg-accent-pressed: #2a6348;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #e3f2e9;
  --bg-court-subtle: #f0f5f2;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #17201a;
  --text-secondary: #4f5f55;
  --text-tertiary: #6a7a70;
  --text-accent: #2a6348;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #9aa89f;
  --border-default: #dfe8e2;
  --border-control: #7f9186;
  --border-accent: #4f8a6c;
  --border-danger: #efa79f;
  --focus-ring: #4f8a6c;
  --timeline-now: #e5484d;
}

html[data-pusk-theme="terrakota"] {
  --bg-canvas: #ffffff;
  --bg-surface: #ffffff;
  --bg-warm: #faf6f3;
  --bg-muted: #f3ebe5;
  --bg-accent: #a94f2d;
  --bg-accent-subtle: #fbf0ea;
  --bg-accent-pressed: #9a4526;
  --bg-danger-subtle: #fdf0ee;
  --bg-warning-subtle: #faf4e8;
  --bg-success-subtle: #edf7f1;
  --bg-court-subtle: #f6f0ec;
  --bg-emphasis-subtle: #f9eef1;
  --text-primary: #231b16;
  --text-secondary: #6a5a50;
  --text-tertiary: #8a7a70;
  --text-accent: #9a4526;
  --text-on-accent: #ffffff;
  --text-danger: #b42318;
  --text-warning: #8c5a0e;
  --text-court: #4a3ca6;
  --text-emphasis: #8e2a43;
  --text-disabled: #b0a49a;
  --border-default: #ebe2da;
  --border-control: #9a8f84;
  --border-accent: #c97852;
  --border-danger: #efa79f;
  --focus-ring: #c97852;
  --timeline-now: #e5484d;
}

/* Bridge legacy approved chrome to PUSK tokens */
html[data-pusk-theme] {
  --approved-bg: var(--bg-warm);
  --approved-side: var(--bg-muted);
  --approved-line: var(--border-default);
  --approved-ink: var(--text-primary);
  --approved-muted: var(--text-secondary);
  --approved-teal: var(--bg-accent);
  --approved-teal-dark: var(--bg-accent-pressed);
  --approved-teal-soft: var(--bg-accent-subtle);
  --approved-burg: var(--text-emphasis);
  --approved-burg-soft: var(--bg-emphasis-subtle);
  --bg: var(--bg-warm);
  --ink: var(--text-primary);
  --graphite: var(--text-secondary);
  --muted: var(--text-tertiary);
  --line: var(--border-default);
  --card: var(--bg-surface);
  --accent: var(--bg-accent);
  --accent-s: var(--bg-accent-subtle);
}

html[data-pusk-theme] body {
  background: var(--bg-warm);
  color: var(--text-primary);
  font-family: var(--font-sans);
}

html[data-pusk-theme] :where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}
