/*
Theme Name: Desa Krandegan Chatbot
Theme URI: https://desakrandegan.id
Author: Tim Digital Desa Krandegan
Author URI: https://desakrandegan.id
Description: Tema WordPress untuk Chatbot Digital Desa Krandegan. Menyediakan antarmuka chat warga (Quick Actions, riwayat percakapan) berbasis Design System "Civic Pulse", dengan Custom Post Type untuk Layanan & Knowledge Base. Pengelolaan admin (statistik, LLM settings, knowledge base, user management) disediakan lewat halaman admin custom terpisah dari CPT.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: krandegan-chatbot
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* ==========================================================================
   Civic Pulse Design Tokens
   Sumber: DESIGN.md — jangan edit nilai di sini secara manual,
   selaraskan dengan DESIGN.md bila ada perubahan brand.
   ========================================================================== */
:root{
  /* Colors */
  --cp-surface:#f8f9ff;
  --cp-surface-dim:#ccdbf3;
  --cp-surface-bright:#f8f9ff;
  --cp-surface-container-lowest:#ffffff;
  --cp-surface-container-low:#eff4ff;
  --cp-surface-container:#e6eeff;
  --cp-surface-container-high:#dce9ff;
  --cp-surface-container-highest:#d5e3fc;
  --cp-on-surface:#0d1c2e;
  --cp-on-surface-variant:#444653;
  --cp-inverse-surface:#233144;
  --cp-inverse-on-surface:#eaf1ff;
  --cp-outline:#757684;
  --cp-outline-variant:#c4c5d5;
  --cp-surface-tint:#3755c3;

  --cp-primary:#00288e;
  --cp-on-primary:#ffffff;
  --cp-primary-container:#1e40af;
  --cp-on-primary-container:#a8b8ff;
  --cp-inverse-primary:#b8c4ff;

  --cp-secondary:#006d30;
  --cp-on-secondary:#ffffff;
  --cp-secondary-container:#92f5a4;
  --cp-on-secondary-container:#007233;

  --cp-tertiary:#323537;
  --cp-on-tertiary:#ffffff;
  --cp-tertiary-container:#484c4e;
  --cp-on-tertiary-container:#b9bcbe;

  --cp-error:#ba1a1a;
  --cp-on-error:#ffffff;
  --cp-error-container:#ffdad6;
  --cp-on-error-container:#93000a;

  --cp-primary-fixed:#dde1ff;
  --cp-primary-fixed-dim:#b8c4ff;
  --cp-on-primary-fixed:#001453;
  --cp-on-primary-fixed-variant:#173bab;

  --cp-secondary-fixed:#95f8a7;
  --cp-secondary-fixed-dim:#79db8d;
  --cp-on-secondary-fixed:#00210a;
  --cp-on-secondary-fixed-variant:#005323;

  --cp-tertiary-fixed:#e0e3e5;
  --cp-tertiary-fixed-dim:#c4c7c9;
  --cp-on-tertiary-fixed:#191c1e;
  --cp-on-tertiary-fixed-variant:#444749;

  --cp-background:#f8f9ff;
  --cp-on-background:#0d1c2e;
  --cp-surface-variant:#d5e3fc;

  /* Elevation levels (dari DESIGN.md) */
  --cp-level0-bg:#f8fafc;
  --cp-level1-border:#e2e8f0;
  --cp-level1-shadow:0 4px 12px rgba(0,0,0,0.05);
  --cp-level2-shadow:0 8px 24px rgba(0,0,0,0.08);

  /* Bot bubble */
  --cp-bot-bubble-bg:#f1f5f9;

  /* Typography */
  --cp-font-family:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --cp-display-lg-size:48px;   --cp-display-lg-weight:700; --cp-display-lg-lh:56px; --cp-display-lg-ls:-0.02em;
  --cp-headline-lg-size:32px;  --cp-headline-lg-weight:600; --cp-headline-lg-lh:40px; --cp-headline-lg-ls:-0.01em;
  --cp-headline-lg-mobile-size:24px; --cp-headline-lg-mobile-weight:600; --cp-headline-lg-mobile-lh:32px;
  --cp-title-md-size:20px; --cp-title-md-weight:600; --cp-title-md-lh:28px;
  --cp-body-lg-size:18px; --cp-body-lg-weight:400; --cp-body-lg-lh:28px;
  --cp-body-md-size:16px; --cp-body-md-weight:400; --cp-body-md-lh:24px;
  --cp-label-md-size:14px; --cp-label-md-weight:500; --cp-label-md-lh:20px; --cp-label-md-ls:0.01em;
  --cp-label-sm-size:12px; --cp-label-sm-weight:600; --cp-label-sm-lh:16px;

  /* Radius */
  --cp-radius-sm:0.25rem;
  --cp-radius:0.5rem;
  --cp-radius-md:0.75rem;
  --cp-radius-lg:1rem;
  --cp-radius-xl:1.5rem;
  --cp-radius-full:9999px;

  /* Spacing (8px base) */
  --cp-space-base:8px;
  --cp-space-xs:4px;
  --cp-space-sm:12px;
  --cp-space-md:24px;
  --cp-space-lg:48px;
  --cp-space-xl:80px;
  --cp-gutter:24px;
  --cp-margin-mobile:16px;
  --cp-container-max:1280px;
  --cp-chat-max-width:600px;
}

/* ==========================================================================
   Dark Mode — Civic Pulse (Dark)
   Hanya me-redefine token WARNA (--cp-surface*, --cp-primary*, dst), token
   tipografi/radius/spacing tetap sama di kedua mode. Sengaja discope ke
   `.krandegan-shell` DAN `.krandegan-dash-shell` (bukan :root/html) supaya
   saat widget ini ditanam lewat shortcode [krandegan_chat] di halaman situs
   desa yang lain, dark mode TIDAK ikut menggelapkan seluruh halaman host —
   hanya widget chat-nya (`.krandegan-shell`) / halaman dashboard perangkat
   desa (`.krandegan-dash-shell`, lihat assets/css/dashboard.css) saja.
   Dua jalur aktivasi:
   1) Preferensi sistem (prefers-color-scheme:dark) — dipakai sebagai default
      HANYA jika warga belum pernah memilih manual (ditandai lewat absennya
      atribut data-theme, lihat guard :not([data-theme="light"]) di bawah).
   2) Pilihan manual lewat tombol toggle (ikon matahari/bulan) — menimpa
      preferensi sistem lewat atribut data-theme="dark"/"light" eksplisit,
      disimpan ke localStorage oleh assets/js/chat.js.
   ========================================================================== */
@media (prefers-color-scheme: dark){
  .krandegan-shell:not([data-theme="light"]),
  .krandegan-dash-shell:not([data-theme="light"]){
    --cp-surface:#10131c;
    --cp-surface-dim:#0a0c12;
    --cp-surface-bright:#1b1f2c;
    --cp-surface-container-lowest:#0a0c12;
    --cp-surface-container-low:#161a26;
    --cp-surface-container:#1b1f2c;
    --cp-surface-container-high:#232838;
    --cp-surface-container-highest:#2b3145;
    --cp-on-surface:#e7ebfa;
    --cp-on-surface-variant:#b7bacb;
    --cp-inverse-surface:#e7ebfa;
    --cp-inverse-on-surface:#1b1f2c;
    --cp-outline:#8b8ea0;
    --cp-outline-variant:#3a3f52;
    --cp-surface-tint:#b8c4ff;

    --cp-primary:#b8c4ff;
    --cp-on-primary:#0b1a5c;
    --cp-primary-container:#1e40af;
    --cp-on-primary-container:#dde1ff;
    --cp-inverse-primary:#00288e;

    --cp-secondary:#79db8d;
    --cp-on-secondary:#00390f;
    --cp-secondary-container:#007233;
    --cp-on-secondary-container:#92f5a4;

    --cp-tertiary:#c4c7c9;
    --cp-on-tertiary:#2e3133;
    --cp-tertiary-container:#484c4e;
    --cp-on-tertiary-container:#e0e3e5;

    --cp-error:#ffb4ab;
    --cp-on-error:#690005;
    --cp-error-container:#93000a;
    --cp-on-error-container:#ffdad6;

    /* Token "fixed" (dipakai di antara lain untuk gradasi promo-banner Home
       & highlight hasil pencarian, lihat assets/css/chat.css) — di skema
       terang sengaja selalu warna terang meski elemen di sekitarnya gelap.
       Kalau tidak diredefinisi di sini, elemen itu tetap tampil sebagai
       "tambalan" terang mencolok di tengah tampilan gelap, terutama di
       layar Home mobile yang jadi tampilan default di HP. */
    --cp-primary-fixed:#232f5c;
    --cp-primary-fixed-dim:#1a2447;
    --cp-on-primary-fixed:#dde1ff;
    --cp-on-primary-fixed-variant:#b8c4ff;

    --cp-secondary-fixed:#0f3d1e;
    --cp-secondary-fixed-dim:#0a2e15;
    --cp-on-secondary-fixed:#95f8a7;
    --cp-on-secondary-fixed-variant:#79db8d;

    --cp-tertiary-fixed:#33373a;
    --cp-tertiary-fixed-dim:#26292b;
    --cp-on-tertiary-fixed:#e0e3e5;
    --cp-on-tertiary-fixed-variant:#c4c7c9;

    --cp-background:#10131c;
    --cp-on-background:#e7ebfa;
    --cp-surface-variant:#3a3f52;

    --cp-level0-bg:#10131c;
    --cp-level1-border:#2b3145;
    --cp-level1-shadow:0 4px 12px rgba(0,0,0,0.3);
    --cp-level2-shadow:0 8px 24px rgba(0,0,0,0.4);

    --cp-bot-bubble-bg:#232838;
  }
}
.krandegan-shell[data-theme="dark"],
.krandegan-dash-shell[data-theme="dark"]{
  --cp-surface:#10131c;
  --cp-surface-dim:#0a0c12;
  --cp-surface-bright:#1b1f2c;
  --cp-surface-container-lowest:#0a0c12;
  --cp-surface-container-low:#161a26;
  --cp-surface-container:#1b1f2c;
  --cp-surface-container-high:#232838;
  --cp-surface-container-highest:#2b3145;
  --cp-on-surface:#e7ebfa;
  --cp-on-surface-variant:#b7bacb;
  --cp-inverse-surface:#e7ebfa;
  --cp-inverse-on-surface:#1b1f2c;
  --cp-outline:#8b8ea0;
  --cp-outline-variant:#3a3f52;
  --cp-surface-tint:#b8c4ff;

  --cp-primary:#b8c4ff;
  --cp-on-primary:#0b1a5c;
  --cp-primary-container:#1e40af;
  --cp-on-primary-container:#dde1ff;
  --cp-inverse-primary:#00288e;

  --cp-secondary:#79db8d;
  --cp-on-secondary:#00390f;
  --cp-secondary-container:#007233;
  --cp-on-secondary-container:#92f5a4;

  --cp-tertiary:#c4c7c9;
  --cp-on-tertiary:#2e3133;
  --cp-tertiary-container:#484c4e;
  --cp-on-tertiary-container:#e0e3e5;

  --cp-error:#ffb4ab;
  --cp-on-error:#690005;
  --cp-error-container:#93000a;
  --cp-on-error-container:#ffdad6;

  --cp-primary-fixed:#232f5c;
  --cp-primary-fixed-dim:#1a2447;
  --cp-on-primary-fixed:#dde1ff;
  --cp-on-primary-fixed-variant:#b8c4ff;

  --cp-secondary-fixed:#0f3d1e;
  --cp-secondary-fixed-dim:#0a2e15;
  --cp-on-secondary-fixed:#95f8a7;
  --cp-on-secondary-fixed-variant:#79db8d;

  --cp-tertiary-fixed:#33373a;
  --cp-tertiary-fixed-dim:#26292b;
  --cp-on-tertiary-fixed:#e0e3e5;
  --cp-on-tertiary-fixed-variant:#c4c7c9;

  --cp-background:#10131c;
  --cp-on-background:#e7ebfa;
  --cp-surface-variant:#3a3f52;

  --cp-level0-bg:#10131c;
  --cp-level1-border:#2b3145;
  --cp-level1-shadow:0 4px 12px rgba(0,0,0,0.3);
  --cp-level2-shadow:0 8px 24px rgba(0,0,0,0.4);

  --cp-bot-bubble-bg:#232838;
}

/* Base reset kecil khusus tema (styling detail ada di assets/css/*.css) */
body.krandegan-theme{
  background:var(--cp-background);
  color:var(--cp-on-background);
  font-family:var(--cp-font-family);
}
