/**
 * Appearance tokens: scheme (light/dark) × theme (ocean/material/cupertino)
 * Applied on document.documentElement via appearance.ts
 */

/* Fallback before JS hydrates (ocean · dark) */
html {
  color-scheme: dark;
  --app-theme-color: #0b0c10;
  --app-body-bg: radial-gradient(circle at center, #1b264f 0%, #0b0c10 100%);
  --app-text: #f1f5f9;
  --app-text-heading: #f8fafc;
  --app-text-muted: #94a3b8;
  --app-text-subtle: #64748b;
  --app-surface: rgba(11, 12, 16, 0.75);
  --app-surface-alt: rgba(11, 12, 16, 0.6);
  --app-surface-hover: rgba(11, 12, 16, 0.85);
  --app-surface-inset: rgba(255, 255, 255, 0.02);
  --app-border: rgba(212, 175, 55, 0.25);
  --app-border-subtle: rgba(255, 255, 255, 0.08);
  --app-border-muted: rgba(212, 175, 55, 0.15);
  --app-input-bg: rgba(11, 12, 16, 0.85);
  --app-input-bg-focus: #0b0c10;
  --app-input-border: rgba(148, 163, 184, 0.25);
  --app-input-text: #f1f5f9;
  --app-accent: #d97706;
  --app-accent-light: #fbbf24;
  --app-accent-gradient: linear-gradient(135deg, #fef08a 0%, #d97706 100%);
  --app-accent-bg: rgba(217, 119, 6, 0.1);
  --app-accent-border: rgba(217, 119, 6, 0.2);
  --app-accent-focus-ring: rgba(217, 119, 6, 0.2);
  --app-btn-primary-text: #0b0c10;
  --app-btn-secondary-bg: rgba(255, 255, 255, 0.05);
  --app-btn-secondary-border: rgba(255, 255, 255, 0.12);
  --app-btn-secondary-text: #e2e8f0;
  --app-btn-secondary-hover-bg: rgba(255, 255, 255, 0.08);
  --app-icon-btn-bg: rgba(255, 255, 255, 0.05);
  --app-icon-btn-border: rgba(255, 255, 255, 0.1);
  --app-divider: rgba(255, 255, 255, 0.06);
  --app-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  --app-card-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
  --app-error-bg: rgba(244, 63, 94, 0.08);
  --app-error-text: #fda4af;
  --app-error-border: #f43f5e;
  --app-warning-text: #f43f5e;
  --app-warning-bg: rgba(244, 63, 94, 0.08);
  --app-warning-border: rgba(244, 63, 94, 0.2);
  --app-empty-border: rgba(255, 255, 255, 0.08);
  --app-empty-bg: rgba(255, 255, 255, 0.02);
  --app-sidebar-active-bg: rgba(217, 119, 6, 0.12);
  --app-sidebar-active-border: #d97706;
  --app-sidebar-active-text: #fbbf24;
  --app-header-border: rgba(212, 175, 55, 0.15);
  --app-table-border: rgba(255, 255, 255, 0.08);
  --app-progress-bar: linear-gradient(90deg, #d97706, #fbbf24, #d97706);
  --app-backdrop: blur(20px);
  --app-radius-card: 16px;
  --app-radius-input: 10px;
  --app-radius-btn: 10px;
}

/* ===== OCEAN · DARK (default) ===== */
html.scheme-dark.theme-ocean {
  color-scheme: dark;
  --app-theme-color: #0b0c10;
  --app-body-bg: radial-gradient(circle at center, #1b264f 0%, #0b0c10 100%);
  --app-text: #f1f5f9;
  --app-text-heading: #f8fafc;
  --app-text-muted: #94a3b8;
  --app-text-subtle: #64748b;
  --app-surface: rgba(11, 12, 16, 0.75);
  --app-surface-alt: rgba(11, 12, 16, 0.6);
  --app-surface-hover: rgba(11, 12, 16, 0.85);
  --app-surface-inset: rgba(255, 255, 255, 0.02);
  --app-border: rgba(212, 175, 55, 0.25);
  --app-border-subtle: rgba(255, 255, 255, 0.08);
  --app-border-muted: rgba(212, 175, 55, 0.15);
  --app-input-bg: rgba(11, 12, 16, 0.85);
  --app-input-bg-focus: #0b0c10;
  --app-input-border: rgba(148, 163, 184, 0.25);
  --app-input-text: #f1f5f9;
  --app-accent: #d97706;
  --app-accent-light: #fbbf24;
  --app-accent-gradient: linear-gradient(135deg, #fef08a 0%, #d97706 100%);
  --app-accent-bg: rgba(217, 119, 6, 0.1);
  --app-accent-border: rgba(217, 119, 6, 0.2);
  --app-accent-focus-ring: rgba(217, 119, 6, 0.2);
  --app-btn-primary-text: #0b0c10;
  --app-btn-secondary-bg: rgba(255, 255, 255, 0.05);
  --app-btn-secondary-border: rgba(255, 255, 255, 0.12);
  --app-btn-secondary-text: #e2e8f0;
  --app-btn-secondary-hover-bg: rgba(255, 255, 255, 0.08);
  --app-icon-btn-bg: rgba(255, 255, 255, 0.05);
  --app-icon-btn-border: rgba(255, 255, 255, 0.1);
  --app-divider: rgba(255, 255, 255, 0.06);
  --app-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  --app-card-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
  --app-error-bg: rgba(244, 63, 94, 0.08);
  --app-error-text: #fda4af;
  --app-error-border: #f43f5e;
  --app-warning-text: #f43f5e;
  --app-warning-bg: rgba(244, 63, 94, 0.08);
  --app-warning-border: rgba(244, 63, 94, 0.2);
  --app-empty-border: rgba(255, 255, 255, 0.08);
  --app-empty-bg: rgba(255, 255, 255, 0.02);
  --app-sidebar-active-bg: rgba(217, 119, 6, 0.12);
  --app-sidebar-active-border: #d97706;
  --app-sidebar-active-text: #fbbf24;
  --app-header-border: rgba(212, 175, 55, 0.15);
  --app-table-border: rgba(255, 255, 255, 0.08);
  --app-progress-bar: linear-gradient(90deg, #d97706, #fbbf24, #d97706);
  --app-backdrop: blur(20px);
  --app-radius-card: 16px;
  --app-radius-input: 10px;
  --app-radius-btn: 10px;
}

/* ===== OCEAN · LIGHT ===== */
html.scheme-light.theme-ocean {
  color-scheme: light;
  --app-theme-color: #e2e8f0;
  --app-body-bg: linear-gradient(165deg, #dbeafe 0%, #f8fafc 42%, #e2e8f0 100%);
  --app-text: #1e293b;
  --app-text-heading: #0f172a;
  --app-text-muted: #475569;
  --app-text-subtle: #64748b;
  --app-surface: rgba(255, 255, 255, 0.88);
  --app-surface-alt: rgba(255, 255, 255, 0.78);
  --app-surface-hover: rgba(255, 255, 255, 0.96);
  --app-surface-inset: rgba(15, 23, 42, 0.03);
  --app-border: rgba(217, 119, 6, 0.28);
  --app-border-subtle: rgba(15, 23, 42, 0.1);
  --app-border-muted: rgba(217, 119, 6, 0.18);
  --app-input-bg: #ffffff;
  --app-input-bg-focus: #ffffff;
  --app-input-border: rgba(100, 116, 139, 0.35);
  --app-input-text: #0f172a;
  --app-accent: #b45309;
  --app-accent-light: #d97706;
  --app-accent-gradient: linear-gradient(135deg, #fcd34d 0%, #b45309 100%);
  --app-accent-bg: rgba(217, 119, 6, 0.12);
  --app-accent-border: rgba(217, 119, 6, 0.25);
  --app-accent-focus-ring: rgba(217, 119, 6, 0.25);
  --app-btn-primary-text: #0b0c10;
  --app-btn-secondary-bg: rgba(15, 23, 42, 0.04);
  --app-btn-secondary-border: rgba(15, 23, 42, 0.12);
  --app-btn-secondary-text: #334155;
  --app-btn-secondary-hover-bg: rgba(15, 23, 42, 0.07);
  --app-icon-btn-bg: rgba(15, 23, 42, 0.04);
  --app-icon-btn-border: rgba(15, 23, 42, 0.1);
  --app-divider: rgba(15, 23, 42, 0.08);
  --app-shadow: 0 16px 40px rgba(15, 23, 42, 0.12), inset 0 0 0 1px rgba(255, 255, 255, 0.6);
  --app-card-shadow: 0 8px 24px rgba(15, 23, 42, 0.1);
  --app-error-bg: rgba(244, 63, 94, 0.08);
  --app-error-text: #be123c;
  --app-error-border: #e11d48;
  --app-warning-text: #be123c;
  --app-warning-bg: rgba(244, 63, 94, 0.06);
  --app-warning-border: rgba(244, 63, 94, 0.2);
  --app-empty-border: rgba(15, 23, 42, 0.12);
  --app-empty-bg: rgba(15, 23, 42, 0.02);
  --app-sidebar-active-bg: rgba(217, 119, 6, 0.1);
  --app-sidebar-active-border: #d97706;
  --app-sidebar-active-text: #b45309;
  --app-header-border: rgba(217, 119, 6, 0.2);
  --app-table-border: rgba(15, 23, 42, 0.1);
  --app-progress-bar: linear-gradient(90deg, #d97706, #fbbf24, #d97706);
  --app-backdrop: blur(20px);
  --app-radius-card: 16px;
  --app-radius-input: 10px;
  --app-radius-btn: 10px;
}

/* ===== MATERIAL · DARK ===== */
html.scheme-dark.theme-material {
  color-scheme: dark;
  --app-theme-color: #121212;
  --app-body-bg: #121212;
  --app-text: #f1f5f9;
  --app-text-heading: #f8fafc;
  --app-text-muted: #94a3b8;
  --app-text-subtle: #64748b;
  --app-surface: #1e1e1e;
  --app-surface-alt: #1e1e1e;
  --app-surface-hover: #252525;
  --app-surface-inset: #2a2a2a;
  --app-border: #2d2d2d;
  --app-border-subtle: #2d2d2d;
  --app-border-muted: #2d2d2d;
  --app-input-bg: #2a2a2a;
  --app-input-bg-focus: #2a2a2a;
  --app-input-border: #3d3d3d;
  --app-input-text: #f1f5f9;
  --app-accent: #00adb5;
  --app-accent-light: #00adb5;
  --app-accent-gradient: linear-gradient(135deg, #00adb5 0%, #008f95 100%);
  --app-accent-bg: rgba(0, 173, 181, 0.12);
  --app-accent-border: rgba(0, 173, 181, 0.3);
  --app-accent-focus-ring: rgba(0, 173, 181, 0.2);
  --app-btn-primary-text: #ffffff;
  --app-btn-secondary-bg: #2a2a2a;
  --app-btn-secondary-border: #3d3d3d;
  --app-btn-secondary-text: #f1f5f9;
  --app-btn-secondary-hover-bg: #333333;
  --app-icon-btn-bg: #2a2a2a;
  --app-icon-btn-border: #3d3d3d;
  --app-divider: #2d2d2d;
  --app-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
  --app-card-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
  --app-error-bg: rgba(244, 63, 94, 0.08);
  --app-error-text: #fda4af;
  --app-error-border: #f43f5e;
  --app-warning-text: #f43f5e;
  --app-warning-bg: rgba(244, 63, 94, 0.08);
  --app-warning-border: rgba(244, 63, 94, 0.2);
  --app-empty-border: #2d2d2d;
  --app-empty-bg: #1a1a1a;
  --app-sidebar-active-bg: rgba(0, 173, 181, 0.08);
  --app-sidebar-active-border: #00adb5;
  --app-sidebar-active-text: #00adb5;
  --app-header-border: #2d2d2d;
  --app-table-border: #2d2d2d;
  --app-progress-bar: linear-gradient(90deg, #00adb5, #008f95, #00adb5);
  --app-backdrop: none;
  --app-radius-card: 4px;
  --app-radius-input: 4px;
  --app-radius-btn: 4px;
}

/* ===== MATERIAL · LIGHT ===== */
html.scheme-light.theme-material {
  color-scheme: light;
  --app-theme-color: #fafafa;
  --app-body-bg: #fafafa;
  --app-text: #212121;
  --app-text-heading: #111827;
  --app-text-muted: #616161;
  --app-text-subtle: #757575;
  --app-surface: #ffffff;
  --app-surface-alt: #ffffff;
  --app-surface-hover: #f5f5f5;
  --app-surface-inset: #f5f5f5;
  --app-border: #e0e0e0;
  --app-border-subtle: #eeeeee;
  --app-border-muted: #e0e0e0;
  --app-input-bg: #ffffff;
  --app-input-bg-focus: #ffffff;
  --app-input-border: #bdbdbd;
  --app-input-text: #212121;
  --app-accent: #00838f;
  --app-accent-light: #00838f;
  --app-accent-gradient: linear-gradient(135deg, #00838f 0%, #006064 100%);
  --app-accent-bg: rgba(0, 131, 143, 0.1);
  --app-accent-border: rgba(0, 131, 143, 0.25);
  --app-accent-focus-ring: rgba(0, 131, 143, 0.2);
  --app-btn-primary-text: #ffffff;
  --app-btn-secondary-bg: #f5f5f5;
  --app-btn-secondary-border: #e0e0e0;
  --app-btn-secondary-text: #424242;
  --app-btn-secondary-hover-bg: #eeeeee;
  --app-icon-btn-bg: #f5f5f5;
  --app-icon-btn-border: #e0e0e0;
  --app-divider: #e0e0e0;
  --app-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
  --app-card-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  --app-error-bg: rgba(244, 63, 94, 0.08);
  --app-error-text: #be123c;
  --app-error-border: #e11d48;
  --app-warning-text: #be123c;
  --app-warning-bg: rgba(244, 63, 94, 0.06);
  --app-warning-border: rgba(244, 63, 94, 0.2);
  --app-empty-border: #e0e0e0;
  --app-empty-bg: #fafafa;
  --app-sidebar-active-bg: rgba(0, 131, 143, 0.08);
  --app-sidebar-active-border: #00838f;
  --app-sidebar-active-text: #00838f;
  --app-header-border: #e0e0e0;
  --app-table-border: #e0e0e0;
  --app-progress-bar: linear-gradient(90deg, #00838f, #00adb5, #00838f);
  --app-backdrop: none;
  --app-radius-card: 4px;
  --app-radius-input: 4px;
  --app-radius-btn: 4px;
}

/* ===== CUPERTINO · DARK ===== */
html.scheme-dark.theme-cupertino {
  color-scheme: dark;
  --app-theme-color: #000000;
  --app-body-bg: #000000;
  --app-text: #ffffff;
  --app-text-heading: #ffffff;
  --app-text-muted: #aeaeb2;
  --app-text-subtle: #8e8e93;
  --app-surface: rgba(28, 28, 30, 0.72);
  --app-surface-alt: rgba(28, 28, 30, 0.72);
  --app-surface-hover: rgba(44, 44, 46, 0.85);
  --app-surface-inset: rgba(255, 255, 255, 0.05);
  --app-border: rgba(255, 255, 255, 0.1);
  --app-border-subtle: rgba(255, 255, 255, 0.1);
  --app-border-muted: rgba(255, 255, 255, 0.08);
  --app-input-bg: rgba(255, 255, 255, 0.05);
  --app-input-bg-focus: rgba(255, 255, 255, 0.07);
  --app-input-border: rgba(255, 255, 255, 0.12);
  --app-input-text: #ffffff;
  --app-accent: #0a84ff;
  --app-accent-light: #0a84ff;
  --app-accent-gradient: linear-gradient(135deg, #0a84ff 0%, #007aff 100%);
  --app-accent-bg: rgba(10, 132, 255, 0.12);
  --app-accent-border: rgba(10, 132, 255, 0.3);
  --app-accent-focus-ring: rgba(10, 132, 255, 0.25);
  --app-btn-primary-text: #ffffff;
  --app-btn-secondary-bg: rgba(255, 255, 255, 0.08);
  --app-btn-secondary-border: rgba(255, 255, 255, 0.12);
  --app-btn-secondary-text: #ffffff;
  --app-btn-secondary-hover-bg: rgba(255, 255, 255, 0.12);
  --app-icon-btn-bg: rgba(255, 255, 255, 0.08);
  --app-icon-btn-border: rgba(255, 255, 255, 0.12);
  --app-divider: rgba(255, 255, 255, 0.08);
  --app-shadow: none;
  --app-card-shadow: none;
  --app-error-bg: rgba(255, 69, 58, 0.12);
  --app-error-text: #ff6961;
  --app-error-border: #ff453a;
  --app-warning-text: #ff6961;
  --app-warning-bg: rgba(255, 69, 58, 0.12);
  --app-warning-border: rgba(255, 69, 58, 0.25);
  --app-empty-border: rgba(255, 255, 255, 0.1);
  --app-empty-bg: rgba(255, 255, 255, 0.04);
  --app-sidebar-active-bg: rgba(10, 132, 255, 0.15);
  --app-sidebar-active-border: #0a84ff;
  --app-sidebar-active-text: #0a84ff;
  --app-header-border: rgba(255, 255, 255, 0.1);
  --app-table-border: rgba(255, 255, 255, 0.1);
  --app-progress-bar: linear-gradient(90deg, #0a84ff, #007aff, #0a84ff);
  --app-backdrop: blur(25px);
  --app-radius-card: 12px;
  --app-radius-input: 8px;
  --app-radius-btn: 9999px;
}

/* ===== CUPERTINO · LIGHT ===== */
html.scheme-light.theme-cupertino {
  color-scheme: light;
  --app-theme-color: #f2f2f7;
  --app-body-bg: #f2f2f7;
  --app-text: #1c1c1e;
  --app-text-heading: #000000;
  --app-text-muted: #636366;
  --app-text-subtle: #8e8e93;
  --app-surface: rgba(255, 255, 255, 0.82);
  --app-surface-alt: rgba(255, 255, 255, 0.82);
  --app-surface-hover: rgba(255, 255, 255, 0.95);
  --app-surface-inset: rgba(0, 0, 0, 0.03);
  --app-border: rgba(0, 0, 0, 0.08);
  --app-border-subtle: rgba(0, 0, 0, 0.06);
  --app-border-muted: rgba(0, 0, 0, 0.08);
  --app-input-bg: #ffffff;
  --app-input-bg-focus: #ffffff;
  --app-input-border: rgba(0, 0, 0, 0.12);
  --app-input-text: #1c1c1e;
  --app-accent: #007aff;
  --app-accent-light: #007aff;
  --app-accent-gradient: linear-gradient(135deg, #007aff 0%, #0a84ff 100%);
  --app-accent-bg: rgba(0, 122, 255, 0.1);
  --app-accent-border: rgba(0, 122, 255, 0.25);
  --app-accent-focus-ring: rgba(0, 122, 255, 0.2);
  --app-btn-primary-text: #ffffff;
  --app-btn-secondary-bg: rgba(0, 0, 0, 0.05);
  --app-btn-secondary-border: rgba(0, 0, 0, 0.08);
  --app-btn-secondary-text: #1c1c1e;
  --app-btn-secondary-hover-bg: rgba(0, 0, 0, 0.08);
  --app-icon-btn-bg: rgba(0, 0, 0, 0.05);
  --app-icon-btn-border: rgba(0, 0, 0, 0.08);
  --app-divider: rgba(0, 0, 0, 0.08);
  --app-shadow: none;
  --app-card-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  --app-error-bg: rgba(255, 59, 48, 0.1);
  --app-error-text: #d70015;
  --app-error-border: #ff3b30;
  --app-warning-text: #d70015;
  --app-warning-bg: rgba(255, 59, 48, 0.08);
  --app-warning-border: rgba(255, 59, 48, 0.2);
  --app-empty-border: rgba(0, 0, 0, 0.08);
  --app-empty-bg: rgba(0, 0, 0, 0.02);
  --app-sidebar-active-bg: rgba(0, 122, 255, 0.1);
  --app-sidebar-active-border: #007aff;
  --app-sidebar-active-text: #007aff;
  --app-header-border: rgba(0, 0, 0, 0.08);
  --app-table-border: rgba(0, 0, 0, 0.08);
  --app-progress-bar: linear-gradient(90deg, #007aff, #0a84ff, #007aff);
  --app-backdrop: blur(25px);
  --app-radius-card: 12px;
  --app-radius-input: 8px;
  --app-radius-btn: 9999px;
}

/* Utility classes for inline-style migration */
.text-muted { color: var(--app-text-muted); }
.text-subtle { color: var(--app-text-subtle); }
.text-heading { color: var(--app-text-heading); }

html.scheme-light #root {
  border-inline-color: var(--app-border-subtle);
}

/* Bridge legacy index.css tokens to appearance (avoids system color-scheme drift) */
html.scheme-light,
html.scheme-dark {
  --text: var(--app-text);
  --text-h: var(--app-text-heading);
  --code-bg: var(--app-icon-btn-bg);
  --border: var(--app-border-subtle);
}
