/* ============================================================
   NUDGE — DESIGN TOKENS (single source of truth)
   ============================================================
   Bu blok daha önce nudge_app.html, auth_base.html ve admin.html
   icinde uc kez kopyalanmisti ve birbirinden ayrismisti: auth_base
   ile admin'de --up-bg, --ease, --shadow-card ve --grid-line eksikti,
   base.html ise hicbirini kullanmayip elle yazilmis slate/indigo
   hex'lerle tamamen baska bir dilde duruyordu.

   Artik tek dosya. Palet, tipografi ve gecis egrisi degismedi —
   sadece dagitildi. Sayfa-ozel kurallar buraya girmez; burasi
   yalnizca token tanimidir.

   Katmanlar (design-system skill, three-layer token architecture):
     1) Primitive  — ham degerler (--ink*, --v*, --up/--dn/--warn)
     2) Semantic   — amac takma adlari (--surface, --text, --focus-ring)
     3) Scale      — ritim (--r-*, --sp-*, --fs-*)
   ============================================================ */

:root {
  /* ── 1. PRIMITIVE: yuzeyler ───────────────────────────── */
  --ink:#08090D; --ink-2:#0D0F17; --ink-3:#14161F; --ink-4:#1A1D2A; --ink-5:#232636;

  /* ── 1. PRIMITIVE: cizgiler ───────────────────────────── */
  --line:rgba(255,255,255,0.05); --line-2:rgba(255,255,255,0.09); --line-3:rgba(255,255,255,0.14);

  /* ── 1. PRIMITIVE: marka moru ─────────────────────────── */
  --v:#7B6FF0; --v2:#9B91F4; --v3:rgba(123,111,240,0.12); --v4:rgba(123,111,240,0.06);

  /* ── 1. PRIMITIVE: durum renkleri ─────────────────────── */
  --up:#34D399;   --up-bg:rgba(52,211,153,0.08);
  --dn:#F87171;   --dn-bg:rgba(248,113,113,0.08);
  --warn:#FBBF24; --warn-bg:rgba(251,191,36,0.08);

  /* ── 1. PRIMITIVE: metin ──────────────────────────────── */
  --t1:#F0EFFB; --t2:#8B8AA8; --t3:#4A4961;

  /* ── 1. PRIMITIVE: tipografi ──────────────────────────── */
  --fh:'Plus Jakarta Sans',sans-serif;
  --fm:'JetBrains Mono',monospace;

  /* ── 1. PRIMITIVE: hareket ve golge ───────────────────── */
  --ease:cubic-bezier(.4,0,.2,1);
  --shadow-card:0 24px 64px rgba(0,0,0,.5);
  --grid-line:rgba(255,255,255,0.04);

  /* ── 1. PRIMITIVE: uygulama kabugu olculeri ───────────── */
  --sidebar-w:240px; --sidebar-collapsed-w:60px; --chat-w:380px; --topbar-h:60px;

  /* ── 2. SEMANTIC: amac takma adlari ───────────────────────
     Yeni kod bunlari kullanmali. Eski --ink-3 gibi dogrudan
     kullanimlar calismaya devam ediyor; ikisi ayni degeri
     gosterdigi icin tema degisimi tek yerden yonetiliyor. */
  --surface-page:var(--ink);
  --surface-card:var(--ink-3);
  --surface-sunken:var(--ink-2);
  --surface-raised:var(--ink-4);
  --surface-hover:var(--ink-3);

  --text-strong:var(--t1);
  --text-muted:var(--t2);
  --text-faint:var(--t3);
  /* Placeholder ayri bir token: --t3 koyu girdi zemininde 1.9:1 kaliyor
     ve okunmuyordu. Bu deger --ink-2 uzerinde 4.5:1 veriyor, yani
     WCAG AA govde metni esigini geciyor, ama --t2'den bir tik soluk
     kalarak "girilmis deger" ile karismiyor. */
  --text-placeholder:#7A798F;

  --border-subtle:var(--line);
  --border-default:var(--line-2);
  --border-strong:var(--line-3);

  --accent:var(--v);
  --accent-hover:var(--v2);
  --accent-wash:var(--v3);
  /* Uzerine BEYAZ metin binen dolu mor. --v (#7B6FF0) beyazla 3.91:1
     veriyor; WCAG AA govde metni icin 4.5 gerekiyor, yani "Filtrele",
     "Taramayi baslat", "Giris yap" gibi butonlarin etiketi esigin
     altinda kaliyordu. Ayni ton, %6 daha koyu: 4.84:1.
     Yalnizca beyaz-metin-uzerine-dolu-zemin durumunda kullanilir;
     kenarlik, ikon ve --v3 yikamalari --v'yi kullanmaya devam eder. */
  --accent-solid:#6B5FE0;
  /* Dolu butonun hover'i. Onceden --v2'ye (#9B91F4) gidiyordu, yani
     ACILIYORDU: beyaz metinle kontrast 2.71:1'e dusuyor ve hover hali
     normal halinden okunaksiz oluyordu. Dolu zeminde hover koyulasmali.
     Bu deger 6.04:1. */
  --accent-solid-hover:#5B4FD0;

  /* Focus halkasi. Tek yerden tanimli olmasi, klavye gezintisinin
     her sayfada ayni gorunmesini garantiliyor. */
  --focus-ring:0 0 0 3px var(--v4);
  --focus-ring-strong:0 0 0 3px rgba(123,111,240,0.45);

  /* ── 3. SCALE: kose yaricaplari ───────────────────────────
     nudge_app.html'de fiilen kullanilan degerlerden cikarildi. */
  --r-xs:6px; --r-sm:7px; --r-md:9px; --r-lg:14px; --r-pill:999px;

  /* ── 3. SCALE: bosluk ritmi ───────────────────────────── */
  --sp-1:4px;  --sp-2:6px;  --sp-3:8px;  --sp-4:12px; --sp-5:14px;
  --sp-6:16px; --sp-7:20px; --sp-8:24px; --sp-9:32px; --sp-10:48px;

  /* ── 3. SCALE: tip olcegi ─────────────────────────────── */
  --fs-10:10px; --fs-11:11px; --fs-12:12px; --fs-13:13px; --fs-14:14px;
  --fs-16:16px; --fs-20:20px; --fs-24:24px; --fs-28:28px; --fs-36:36px;
}

/* ============================================================
   ACIK TEMA
   Palet nudge_app.html'deki orijinaliyle birebir ayni.
   Semantic takma adlar var() ile bagli oldugu icin burada
   yeniden tanimlanmalari gerekmiyor — kendiliginden takip
   ediyorlar. Sadece primitive'ler degisiyor.
   ============================================================ */
[data-theme="light"] {
  --ink:#F5F4FB; --ink-2:#EDECF7; --ink-3:#FFFFFF; --ink-4:#F0EFF9; --ink-5:#E5E3F5;
  --line:rgba(0,0,0,0.06); --line-2:rgba(0,0,0,0.1); --line-3:rgba(0,0,0,0.16);
  --v:#6254E8; --v2:#5046D0; --v3:rgba(98,84,232,0.08); --v4:rgba(98,84,232,0.04);
  --up:#0B9E6E;   --up-bg:rgba(11,158,110,0.08);
  --dn:#D94545;   --dn-bg:rgba(217,69,69,0.08);
  --warn:#B07300; --warn-bg:rgba(176,115,0,0.08);
  --t1:#0D0C1A; --t2:#4A4868; --t3:#9896B0;
  --shadow-card:0 8px 32px rgba(98,84,232,.08),0 2px 8px rgba(0,0,0,.06);
  --grid-line:rgba(0,0,0,0.035);
  --focus-ring-strong:0 0 0 3px rgba(98,84,232,0.35);
  --text-placeholder:#6A6885;
  /* Acik temada --v zaten beyazla 5.4:1 veriyor; ton korunuyor. */
  --accent-solid:#5A4EDB;
  --accent-solid-hover:#4A3EC4;
}
