/* ==================== RESET ==================== */
*{margin:0;padding:0;box-sizing:border-box}

/* ==================== DESIGN TOKENS — DARK (default) ==================== */
:root,[data-theme="dark"]{
  /* --- Brand --- */
  --accent:#c9956b;
  --accent2:#a67a52;
  --accent-soft:rgba(201,149,107,.12);
  --accent-softer:rgba(201,149,107,.06);
  --accent-border:rgba(201,149,107,.2);
  --accent-glow:rgba(201,149,107,.35);

  /* --- Surfaces --- */
  --bg-root:#09090b;
  --bg-primary:#111113;
  --bg-secondary:#161618;
  --bg-tertiary:#1c1c1f;
  --bg-elevated:#1e1e22;
  --bg-overlay:rgba(0,0,0,.6);
  --bg-input:#09090b;

  /* --- Foreground --- */
  --fg-primary:#e4e4e7;
  --fg-secondary:#a1a1aa;
  --fg-tertiary:#71717a;
  --fg-muted:#3f3f46;
  --fg-inverted:#09090b;

  /* --- Borders --- */
  --border-primary:#1e1e22;
  --border-secondary:#2a2a2e;
  --border-hover:#3f3f46;
  --border-focus:var(--accent);

  /* --- Shadows --- */
  --shadow-xs:0 1px 2px rgba(0,0,0,.3);
  --shadow-sm:0 2px 4px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.15);
  --shadow-md:0 4px 12px rgba(0,0,0,.25),0 2px 4px rgba(0,0,0,.15);
  --shadow-lg:0 8px 24px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.2);
  --shadow-xl:0 16px 48px rgba(0,0,0,.4),0 8px 16px rgba(0,0,0,.25);
  --shadow-accent:0 4px 20px rgba(201,149,107,.25);
  --shadow-float:0 8px 32px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.3);

  /* --- Glass --- */
  --glass-bg:rgba(22,22,24,.75);
  --glass-border:rgba(255,255,255,.06);
  --glass-blur:12px;

  /* --- Status --- */
  --danger:#ef4444;
  --danger-soft:rgba(239,68,68,.1);
  --danger-border:rgba(239,68,68,.2);
  --success:#10b981;
  --success-soft:rgba(16,185,129,.1);
  --warning:#f59e0b;
  --info:#6366f1;
  --info-soft:rgba(99,102,241,.1);

  /* --- Scrollbar --- */
  --scrollbar-track:transparent;
  --scrollbar-thumb:#222;

  /* --- Dot grid on stage --- */
  --stage-dot:#141416;
  --stage-dot-size:18px;

  /* --- Animation --- */
  --ease-out:cubic-bezier(.4,0,.2,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-smooth:cubic-bezier(.22,1,.36,1);
  --duration-fast:.12s;
  --duration-normal:.2s;
  --duration-slow:.35s;

  /* --- Layout --- */
  --radius-sm:4px;
  --radius-md:8px;
  --radius-lg:12px;
  --radius-xl:16px;
  --radius-full:9999px;
  --sb-w:270px;

  /* --- Legacy compat (so old classes keep working) --- */
  --bg:var(--bg-root);
  --card:var(--bg-primary);
  --card2:var(--bg-secondary);
  --hover:var(--bg-tertiary);
  --border:var(--border-primary);
  --border2:var(--border-secondary);
  --text:var(--fg-primary);
  --dim:var(--fg-tertiary);
  --muted:var(--fg-muted);
  --radius:var(--radius-md);
}

/* ==================== DESIGN TOKENS — LIGHT ==================== */
[data-theme="light"]{
  /* --- Brand (warm gold stays, slightly deeper for contrast) --- */
  --accent:#b07d4f;
  --accent2:#8f6340;
  --accent-soft:rgba(176,125,79,.1);
  --accent-softer:rgba(176,125,79,.05);
  --accent-border:rgba(176,125,79,.25);
  --accent-glow:rgba(176,125,79,.2);

  /* --- Surfaces --- */
  --bg-root:#fafafa;
  --bg-primary:#ffffff;
  --bg-secondary:#f5f5f5;
  --bg-tertiary:#ebebeb;
  --bg-elevated:#ffffff;
  --bg-overlay:rgba(0,0,0,.4);
  --bg-input:#ffffff;

  /* --- Foreground --- */
  --fg-primary:#171717;
  --fg-secondary:#525252;
  --fg-tertiary:#737373;
  --fg-muted:#a3a3a3;
  --fg-inverted:#fafafa;

  /* --- Borders --- */
  --border-primary:#e5e5e5;
  --border-secondary:#d4d4d4;
  --border-hover:#a3a3a3;
  --border-focus:var(--accent);

  /* --- Shadows (lighter, softer) --- */
  --shadow-xs:0 1px 2px rgba(0,0,0,.04);
  --shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 4px 12px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.05);
  --shadow-lg:0 8px 24px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.05);
  --shadow-xl:0 16px 48px rgba(0,0,0,.12),0 4px 12px rgba(0,0,0,.06);
  --shadow-accent:0 4px 16px rgba(176,125,79,.15);
  --shadow-float:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06);

  /* --- Glass (light mode glassmorphism) --- */
  --glass-bg:rgba(255,255,255,.7);
  --glass-border:rgba(0,0,0,.06);
  --glass-blur:12px;

  /* --- Status --- */
  --danger:#dc2626;
  --danger-soft:rgba(220,38,38,.08);
  --danger-border:rgba(220,38,38,.15);
  --success:#059669;
  --success-soft:rgba(5,150,105,.08);
  --warning:#d97706;
  --info:#4f46e5;
  --info-soft:rgba(79,70,229,.08);

  /* --- Scrollbar --- */
  --scrollbar-track:transparent;
  --scrollbar-thumb:#d4d4d4;

  /* --- Dot grid on stage --- */
  --stage-dot:#e8e8e8;
  --stage-dot-size:18px;
}

/* ==================== BASE STYLES ==================== */
html{
  color-scheme:dark light;
  transition:background var(--duration-slow) var(--ease-smooth);
}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--bg-root);
  color:var(--fg-primary);
  display:flex;
  height:100vh;
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  letter-spacing:-.01em;
  transition:background var(--duration-slow) var(--ease-smooth),color var(--duration-slow) var(--ease-smooth);
}

/* ==================== SCROLLBAR ==================== */
::-webkit-scrollbar{width:3px}
::-webkit-scrollbar-track{background:var(--scrollbar-track)}
::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}

/* ==================== FOCUS VISIBLE ==================== */
:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:var(--radius-sm);
}
button:focus-visible,input:focus-visible,select:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:1px;
}

/* ==================== SELECTION ==================== */
::selection{
  background:var(--accent-soft);
  color:var(--fg-primary);
}

/* ==================== SMOOTH THEME TRANSITION ==================== */
[data-theme] *{
  transition-property:background-color,border-color,color,box-shadow,outline-color;
  transition-duration:var(--duration-normal);
  transition-timing-function:var(--ease-out);
}
/* Exclude elements that need their own transitions */
[data-theme] .stage-cv,
[data-theme] .ms,
[data-theme] input[type="range"],
[data-theme] .tog::after,
[data-theme] .txt-el,
[data-theme] .shape-el,
[data-theme] .anno-marker,
[data-theme] .canvas-badge{
  transition:none;
}
