/* ============================================================
   NovaLibre — Темы
   5 тем интерфейса: light / dark / sepia / night / contrast
   5 тем режима чтения: light / sepia / dark / night / contrast
   + Динамическая тёплость фона чтения (через CSS-переменную)
   ============================================================ */

:root {
  --sidebar-w: 260px;
  --radius: 8px;

  /* Шрифты */
  --font-ui: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-serif: Georgia, "Times New Roman", "Noto Serif SC", serif;
  --font-mono: "JetBrains Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace;
  --font-wenkai: "LXGW WenKai", "Noto Serif SC", serif;
}

/* ============================================================
   ТЕМА: LIGHT (по умолчанию)
   ============================================================ */

[data-theme="light"] {
  --bg: #f5f6f8;
  --surface: #ffffff;
  --surface-2: #f0f1f4;
  --surface-3: #e4e6ea;
  --border: #e1e3e8;
  --text: #1a1a1a;
  --text-secondary: #6b7280;
  --accent: #ff5722;
  --accent-hover: #e64a19;
  --accent-soft: rgba(255, 87, 34, 0.12);
  --success: #10b981;
  --danger: #ef4444;
  --star: #f59e0b;
  --reader-bg: #ffffff;
  --reader-text: #1a1a1a;
  --reader-bg-warm: #faf6f0;
}

/* ============================================================
   ТЕМА: DARK
   ============================================================ */

[data-theme="dark"] {
  --bg: #0e0f12;
  --surface: #181a1f;
  --surface-2: #21242a;
  --surface-3: #2d3138;
  --border: #2d3138;
  --text: #e8eaed;
  --text-secondary: #9aa0a6;
  --accent: #ff7043;
  --accent-hover: #ff8a65;
  --accent-soft: rgba(255, 112, 67, 0.18);
  --success: #34d399;
  --danger: #f87171;
  --star: #fbbf24;
  --reader-bg: #1a1c20;
  --reader-text: #d1d5db;
  --reader-bg-warm: #1f1c18;
}

/* ============================================================
   ТЕМА: SEPIA (для интерфейса)
   ============================================================ */

[data-theme="sepia"] {
  --bg: #efe6d4;
  --surface: #f7f0e0;
  --surface-2: #e8ddc7;
  --surface-3: #d8cdb5;
  --border: #d8cdb5;
  --text: #4a3a28;
  --text-secondary: #8a7a64;
  --accent: #c8651b;
  --accent-hover: #a85316;
  --accent-soft: rgba(200, 101, 27, 0.14);
  --success: #6b8e4e;
  --danger: #c0392b;
  --star: #d4881a;
  --reader-bg: #f7f0e0;
  --reader-text: #4a3a28;
  --reader-bg-warm: #f4ecd8;
}

/* ============================================================
   ТЕМА: CONTRAST (высококонтрастная)
   ============================================================ */

[data-theme="contrast"] {
  --bg: #000000;
  --surface: #0a0a0a;
  --surface-2: #1a1a1a;
  --surface-3: #2a2a2a;
  --border: #444444;
  --text: #ffffff;
  --text-secondary: #cccccc;
  --accent: #ff5722;
  --accent-hover: #ff7043;
  --accent-soft: rgba(255, 87, 34, 0.25);
  --success: #00ff88;
  --danger: #ff4444;
  --star: #ffaa00;
  --reader-bg: #000000;
  --reader-text: #ffffff;
  --reader-bg-warm: #1a0a00;
}

/* ============================================================
   ТЕМЫ РЕЖИМА ЧТЕНИЯ (для .reader-overlay)
   Регулятор тёплости через --reader-warmth (0..100)
   ============================================================ */

/* LIGHT reader */
.reader-overlay[data-reader-theme="light"] {
  --reader-bg: #ffffff;
  --reader-text: #1a1a1a;
  --reader-text-secondary: #6b7280;
  --reader-link: #2563eb;
  --reader-warm-base: 255, 250, 240;  /* warm white */
  --reader-cold-base: 255, 255, 255;
}

/* SEPIA reader (классическая тёплая) */
.reader-overlay[data-reader-theme="sepia"] {
  --reader-bg: #f4ecd8;
  --reader-text: #4a3a28;
  --reader-text-secondary: #8a7a64;
  --reader-link: #8b4513;
  --reader-warm-base: 244, 236, 216;
  --reader-cold-base: 250, 250, 248;
}

/* DARK reader */
.reader-overlay[data-reader-theme="dark"] {
  --reader-bg: #1a1c20;
  --reader-text: #d1d5db;
  --reader-text-secondary: #9aa0a6;
  --reader-link: #ff7043;
  --reader-warm-base: 35, 28, 24;
  --reader-cold-base: 26, 28, 32;
}

/* NIGHT reader (контрастная чёрная для ночи) */
.reader-overlay[data-reader-theme="night"] {
  --reader-bg: #0a0a0a;
  --reader-text: #b8b8b8;
  --reader-text-secondary: #707070;
  --reader-link: #ff7043;
  --reader-warm-base: 15, 10, 5;
  --reader-cold-base: 10, 10, 10;
}

/* CONTRAST reader (максимальный контраст) */
.reader-overlay[data-reader-theme="contrast"] {
  --reader-bg: #000000;
  --reader-text: #ffffff;
  --reader-text-secondary: #aaaaaa;
  --reader-link: #ff5722;
  --reader-warm-base: 20, 5, 0;
  --reader-cold-base: 0, 0, 0;
}

/* ============================================================
   Динамическая тёплость фона
   --reader-warmth: 0 (холодный) .. 100 (тёплый)
   Реальный цвет фона: интерполяция между cold и warm base
   ============================================================ */

.reader-overlay {
  /* Дефолт: средняя тёплость 60% */
  --reader-warmth: 60;

  /* Вычисляем интерполированный цвет фона */
  --reader-bg-color: rgb(
    calc(var(--reader-cold-base-r) + (var(--reader-warm-base-r) - var(--reader-cold-base-r)) * var(--reader-warmth) / 100),
    calc(var(--reader-cold-base-g) + (var(--reader-warm-base-g) - var(--reader-cold-base-g)) * var(--reader-warmth) / 100),
    calc(var(--reader-cold-base-b) + (var(--reader-warm-base-b) - var(--reader-cold-base-b)) * var(--reader-warmth) / 100)
  );

  background: var(--reader-bg-color);
  color: var(--reader-text);
}

/* Поскольку CSS не умеет парсить кортежи "255, 250, 240", разложим в отдельные переменные */
.reader-overlay[data-reader-theme="light"] {
  --reader-cold-base-r: 255; --reader-cold-base-g: 255; --reader-cold-base-b: 255;
  --reader-warm-base-r: 255; --reader-warm-base-g: 250; --reader-warm-base-b: 240;
}

.reader-overlay[data-reader-theme="sepia"] {
  --reader-cold-base-r: 250; --reader-cold-base-g: 250; --reader-cold-base-b: 248;
  --reader-warm-base-r: 244; --reader-warm-base-g: 220; --reader-warm-base-b: 190;
}

.reader-overlay[data-reader-theme="dark"] {
  --reader-cold-base-r: 26; --reader-cold-base-g: 28; --reader-cold-base-b: 32;
  --reader-warm-base-r: 38; --reader-warm-base-g: 28; --reader-warm-base-b: 22;
}

.reader-overlay[data-reader-theme="night"] {
  --reader-cold-base-r: 10; --reader-cold-base-g: 10; --reader-cold-base-b: 10;
  --reader-warm-base-r: 20; --reader-warm-base-g: 12; --reader-warm-base-b: 5;
}

.reader-overlay[data-reader-theme="contrast"] {
  --reader-cold-base-r: 0; --reader-cold-base-g: 0; --reader-cold-base-b: 0;
  --reader-warm-base-r: 25; --reader-warm-base-g: 8; --reader-warm-base-b: 0;
}

/* Для применения тёплости к фону body overlay: */
.reader-overlay {
  background: var(--reader-bg-color, var(--reader-bg));
}

/* Поддержка prefers-color-scheme (автопереключение при первой загрузке) */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --bg: #0e0f12;
    --surface: #181a1f;
    --surface-2: #21242a;
    --surface-3: #2d3138;
    --border: #2d3138;
    --text: #e8eaed;
    --text-secondary: #9aa0a6;
    --accent: #ff7043;
    --accent-hover: #ff8a65;
    --accent-soft: rgba(255, 112, 67, 0.18);
    --success: #34d399;
    --danger: #f87171;
    --star: #fbbf24;
  }
}
