/*
  Copyright (c) 2026 Tayfun Simsek. All rights reserved.
  Proprietary. See LICENSE at the repository root.

  Purpose:      Single source of every visual value (color, space, radius, type, motion).
  Reason:       GLOBAL_CORE_MANIFESTO §30 DesignTokens — a visual value is defined
                in ONE place, never in a screen file. Light and dark themes are
                derived from the SAME token set; a second palette is not defined.
  Dependencies: None. Loaded before every stylesheet.
  Input:        The viewer's theme preference (system / light / dark).
  Output:       CSS custom properties consumed by every component.
  Risks:        A hard-coded hex in a screen file silently forks the palette (R-11).

  Amac:         Her gorsel degerin tek kaynagi (renk, bosluk, yaricap, tip, sure).
  Gerekce:      §30 — gorsel deger ekranda degil, tek bir yerde tanimlanir.
                Aydinlik ve karanlik tema AYNI belirtec kumesinden turetilir.
  Riskler:      Ekran dosyasindaki sabit hex paleti sessizce catallar (R-11).

  Kontrast: tools/kontrast.py her iki temada CIFTLER sozlesmesini olcer
  (tests/test_tokens.py). Eski "henuz olculmedi" TODO'su 2026-09'da kapanmisti
  ama burada kalmisti — bayat beyan 2026-10-07'de silindi.

  Yazi tipi: Nunito, URUNE GOMULU (web/fonts/nunito, SIL OFL 1.1). Dis kaynak
  YOK — §12/§25: kullanicinin tarayicisi ucuncu bir sunucuya gitmez. Turkce
  kapsam olculdu: i I s S g G c C o O u U a i u (sapkali) ve TL simgesi
  (tests/test_fonts.py). Secim D-47 — sahibi "yazi tipi iyi gibi, yap;
  gerekirse sonra degistiririz" dedi: GERI ALINABILIR bir karar.
*/

/* Degisken agirlik 200-1000; tek dosya her kalinligi tasir. */
@font-face {
  font-family: "Nunito";
  src: url("fonts/nunito/Nunito.ttf") format("truetype");
  font-weight: 200 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Nunito";
  src: url("fonts/nunito/Nunito-Italic.ttf") format("truetype");
  font-weight: 200 1000;
  font-style: italic;
  font-display: swap;
}

:root {
  /* [1] Marka / Brand — kaynak: core/identity.APP_BRAND_SEED */
  --brand:            #1B4F72;   /* koyu safir — guven, sorumluluk */
  --brand-strong:     #143d59;
  --brand-soft:       #e8eef3;
  --accent:           #2ECC71;   /* canli yesil — dogal, saglik, park */
  --accent-warm:      #F39C12;   /* amber — enerji, oyun */

  /* [2] Anlam renkleri / Semantic
     DIKKAT / CAUTION: §30 MUST — bunlar paletten BAGIMSIZDIR ve
     kisisellestirmeye KAPALIDIR. Hata kirmizisi her kullanicida aynidir;
     aksi halde ekran goruntusu, yardim icerigi ve destek konusmasi
     ortak dilini kaybeder. Marka rengiyle ASLA ayni belirtece baglanmaz. */
  --success:          #10b981;
  --warning:          #f59e0b;
  --danger:           #dc2626;   /* SOS, kayip hayvan, acil */
  /* NEDEN / WHY: ilk deger #ef4444 idi ve uzerindeki BEYAZ metin 3.76:1
     kaliyordu — yani SOS dugmesinin yazisi esigin altindaydi. Deger
     TAHMIN EDILMEDI, tools/kontrast.py ile arandi: #dc2626 -> 4.83:1.
     SOS dugmesi panik aninda okunacak; burada 'yakin' yetmez. */
  --info:             #3b82f6;   /* yalniz DOLGU - uzerine metin gelmez */
  --info-ink:         #2563eb;   /* metin hali - olculdu: 4.94:1 */

  /* Dolgunun UZERINDEKI metin. Ayri belirtec olmasi sart:
     ayni rengin uzerinde beyaz da siyah da calismaz ve hangisinin
     calistigi OLCULUR, secilmez (tools/kontrast.py). */
  --on-brand:         #ffffff;
  --on-danger:        #ffffff;
  --on-accent:        #05301d;   /* yesil dolgu uzerinde beyaz metin ~2:1 kalir */
  --on-warning:       #3d2600;   /* amber uzerinde beyaz metin ~2:1 kalir */

  /* Anlam renklerinin METIN hali. Dolgu icin secilen ton, zemin uzerinde
     metin olarak KULLANILAMAZ; ayri ve daha koyu bir ton gerekir. */
  --danger-ink:       #b91c1c;
  --success-ink:      #047857;
  --warning-ink:      #92400e;
  --brand-ink:        #1B4F72;

  /* [3] Notr olcek / Neutral scale — slate, maviye calar */
  --gray-900: #0f172a;
  --gray-800: #1e293b;
  --gray-700: #334155;
  --gray-600: #475569;
  --gray-500: #64748b;
  --gray-400: #94a3b8;
  --gray-300: #cbd5e1;
  --gray-200: #e2e8f0;
  --gray-100: #f1f5f9;
  --gray-50:  #f8fafc;

  /* [4] Yuzey ve metin — TEMAYA GORE COZULUR */
  --bg:               var(--gray-50);
  --surface:          #ffffff;
  --surface-raised:   #ffffff;
  --ink:              var(--gray-900);
  --ink-muted:        var(--gray-600);
  --border:           var(--gray-200);  /* dekoratif ayirici */
  --border-strong:    var(--gray-500);  /* etkilesimli oge siniri - WCAG 1.4.11 */
  --shadow:           0 1px 3px rgb(15 23 42 / 0.08), 0 1px 2px rgb(15 23 42 / 0.04);

  /* [5] Bosluk / Spacing — 4px tabanli */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px;

  /* [6] Yaricap / Radius */
  --radius-sm: 6px; --radius-md: 10px; --radius-lg: 16px; --radius-full: 999px;

  /* [7] Tipografi / Typography
     DIKKAT / CAUTION: yedek yigin her tanimda yazilir — yazi tipi yuklenemezse
     urun OKUNUR kalir (§30 typography MUST). Ayrica secilen yuz Turkce i/I ve
     tum destekli yazi sistemlerini kapsamak zorundadir (§30 fontRule). */
  --font-sans: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, Consolas, monospace;

  --font-size-xs: 12px; --font-size-sm: 14px; --font-size-md: 16px;
  --font-size-lg: 20px; --font-size-xl: 26px; --font-size-2xl: 34px;
  --line-tight: 1.25; --line-normal: 1.5;

  /* [8] Hareket / Motion
     AYAR / TUNABLE: sure ve egri belirtectir; her ekran kendi suresini uydurmaz. */
  --duration-fast: 120ms; --duration-base: 200ms; --duration-slow: 320ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);

  /* [9] Dokunma hedefi / Touch target
     §15 MUST: en az 44x44. Saha kosulu (eldivenli el, gunes alti) 56'ya cikariyor
     — AGROIQ DESIGN_SYSTEM deseni. Gezinme ogeleri de KAPSAM ICINDEDIR (QMS dersi). */
  --tap-min: 44px;
  --tap-field: 56px;

  /* [10] Uyarlanir denetim / Adaptive control — §15.1 adaptiveContrast
     NEDEN / WHY: bu denetimler her zeminin ustunde durur (acik tema, koyu tema,
     harita, fotograf). Sabit bir renk zeminlerin BIRINDE mutlaka kaybolur;
     bu yuzden renk secilmez, ZEMINDEN TURETILIR (currentColor + dusuk alfa). */
  --control-fill-alpha: 0.16;
  --control-edge-alpha: 0.34;
}

/* Karanlik tema — YALNIZCA belirtecler yeniden tanimlanir, ikinci palet YOK.
   Uc durum: acik secim (data-theme), sistem tercihi, ve varsayilan. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg:             #0D2137;   /* .docx'in gece kullanimi rengi */
    --surface:        var(--gray-900);
    --surface-raised: var(--gray-800);
    --ink:            var(--gray-100);
    --ink-muted:      var(--gray-400);
    --border:         var(--gray-700);
    --border-strong:  var(--gray-400);
    --brand-soft:     #16344a;
    --on-accent:      #05301d;
    --on-warning:     #3d2600;
    --danger-ink:     #fca5a5;
    --success-ink:    #6ee7b7;
    --warning-ink:    #fcd34d;
    --brand-ink:      #93c5fd;
    --info-ink:       #93c5fd;
  --info-ink:       #93c5fd;
    --shadow:         0 1px 3px rgb(0 0 0 / 0.4), 0 1px 2px rgb(0 0 0 / 0.3);
  }
}

:root[data-theme="dark"] {
  --bg:             #0D2137;
  --surface:        var(--gray-900);
  --surface-raised: var(--gray-800);
  --ink:            var(--gray-100);
  --ink-muted:      var(--gray-400);
  --border:         var(--gray-700);
  --border-strong:  var(--gray-400);
  --brand-soft:     #16344a;
  --on-accent:      #05301d;
  --on-warning:     #3d2600;
  --danger-ink:     #fca5a5;
  --success-ink:    #6ee7b7;
  --warning-ink:    #fcd34d;
  --brand-ink:      #93c5fd;
  --info-ink:       #93c5fd;
  --shadow:         0 1px 3px rgb(0 0 0 / 0.4), 0 1px 2px rgb(0 0 0 / 0.3);
}

/* §15 MUST: isletim sisteminin 'hareketi azalt' ayarina uyulur. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms; --duration-base: 0ms; --duration-slow: 0ms;
  }
}

/* §15 MUST: dokunmatik girdide hedef buyur — gezinme ogeleri DAHIL. */
@media (pointer: coarse) {
  :root { --tap-min: var(--tap-field); }
}
