/* ============================================
   Theme System — 4 color themes
   Switch themes by changing html[data-theme]
   ============================================ */

/* --- Default (Light) Theme --- */
:root {
    --bg-primary: #ffffff;
    --bg-secondary: #f8fafc;
    --bg-card: #ffffff;
    --bg-card-hover: #f1f5f9;
    --accent-primary: #6366f1;
    --accent-secondary: #8b5cf6;
    --accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);
    --text-primary: #1e293b;
    --text-secondary: #64748b;
    --text-muted: #94a3b8;
    --border-color: #e2e8f0;
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    --shadow-glow: 0 0 40px rgba(99, 102, 241, 0.1);
    --nav-bg: rgba(255, 255, 255, 0.95);
    --input-bg: #f8fafc;
    --code-bg: #f0f0f0;
    --code-border: #d0d0d0;
    --code-text: #1e293b;
    --success: #10b981;
    --warning: #f59e0b;
    --error: #ef4444;
}

/* --- Dark Theme --- */
[data-theme="dark"] {
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-card: #1e293b;
    --bg-card-hover: #334155;
    --text-primary: #f1f5f9;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;
    --border-color: #334155;
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.6);
    --shadow-glow: 0 0 40px rgba(99, 102, 241, 0.15);
    --nav-bg: rgba(15, 23, 42, 0.95);
    --input-bg: #1e293b;
    --code-bg: #0d1117;
    --code-border: #30363d;
    --code-text: #f8f8f2;
}

/* --- Warm Theme --- */
[data-theme="warm"] {
    --bg-primary: #fef7ed;
    --bg-secondary: #fff7ed;
    --bg-card: #ffffff;
    --bg-card-hover: #fff7ed;
    --accent-primary: #ea580c;
    --accent-secondary: #f97316;
    --accent-gradient: linear-gradient(135deg, #ea580c 0%, #f97316 50%, #fb923c 100%);
    --text-primary: #431407;
    --text-secondary: #9a3412;
    --text-muted: #c2410c;
    --border-color: #fed7aa;
    --shadow-glow: 0 0 40px rgba(234, 88, 12, 0.1);
    --nav-bg: rgba(254, 247, 237, 0.95);
    --input-bg: #fff7ed;
    --code-bg: #fef3e2;
    --code-border: #fed7aa;
    --code-text: #431407;
}

/* --- Ocean Theme --- */
[data-theme="ocean"] {
    --bg-primary: #f0fdfa;
    --bg-secondary: #ccfbf1;
    --bg-card: #ffffff;
    --bg-card-hover: #f0fdfa;
    --accent-primary: #0d9488;
    --accent-secondary: #14b8a6;
    --accent-gradient: linear-gradient(135deg, #0d9488 0%, #14b8a6 50%, #2dd4bf 100%);
    --text-primary: #134e4a;
    --text-secondary: #0f766e;
    --text-muted: #5eead4;
    --border-color: #99f6e4;
    --shadow-glow: 0 0 40px rgba(13, 148, 136, 0.1);
    --nav-bg: rgba(240, 253, 250, 0.95);
    --input-bg: #f0fdfa;
    --code-bg: #e0f7f4;
    --code-border: #99f6e4;
    --code-text: #134e4a;
}

/* ============================================
   Global Base Styles
   ============================================ */

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

html {
    scroll-behavior: smooth;
    -webkit-tap-highlight-color: transparent;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    background: var(--bg-primary);
    color: var(--text-primary);
    line-height: 1.6;
    min-height: 100vh;
    transition: background 0.3s ease, color 0.3s ease;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ── Code block copy button ── */
.code-block-wrap {
  position: relative;
  margin: 1.25rem 0;
}
.code-block-wrap .copy-code-btn {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 2;
  padding: 0.3rem 0.7rem;
  font-size: 0.75rem;
  font-family: inherit;
  color: #6b7280;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--border-color, #e5e7eb);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
  opacity: 0;
  line-height: 1.4;
}
.code-block-wrap:hover .copy-code-btn,
.code-block-wrap .copy-code-btn:focus-visible {
  opacity: 1;
}
.code-block-wrap .copy-code-btn:hover {
  color: #fff;
  background: var(--accent, #7c3aed);
  border-color: var(--accent, #7c3aed);
}
.code-block-wrap .copy-code-btn.copied {
  color: #10b981;
  background: rgba(16,185,129,0.12);
  border-color: #10b981;
  opacity: 1;
}
/* Mobile: always show copy button */
@media (max-width: 768px) {
  .code-block-wrap .copy-code-btn {
    opacity: 0.7;
    font-size: 0.7rem;
    padding: 0.25rem 0.5rem;
  }
}

/* Dark theme overrides */
[data-theme="dark"] .code-block-wrap .copy-code-btn {
  color: #9ca3af;
  background: rgba(255,255,255,0.06);
}
[data-theme="dark"] .code-block-wrap .copy-code-btn:hover {
  color: #fff;
  background: var(--accent, #7c3aed);
}
