/* ============================================================
   devran design tokens — app + landing ortak tek-gerçek-kaynağı
   Kaynak: ADR-0018 + ADR-0022. Bileşen selector'ları bu dosyaya
   eklenmez; yalnız tema ve tasarım token'ları burada yaşar.
   ============================================================ */
:root {
  --bg: #FFF9F0;
  --surface: #FFFFFF;
  --ink: #3B2A1E;
  --ink-soft: #7A6350;
  --dawn: #F97316;
  --dawn-deep: #A63A08;
  --peach: #FFB27D;
  --honey: #FDE68A;
  --sky-top: #FFE8C7;
  --sky-mid: #FFCE9E;
  --sky-low: #FFAF6E;
  --card-glass: rgba(255, 251, 244, 0.42);
  --card-border: rgba(255, 255, 255, 0.65);
  --shadow: 0 18px 50px rgba(194, 65, 12, 0.14);
  --shadow-soft: 0 8px 28px rgba(122, 99, 80, 0.10);
  --radius: 22px;
  --radius-s: 14px;
  --hairline: rgba(122, 99, 80, 0.14);
  --sidebar-bg: #FFF4E4;
  --code-bg: #2A1D14;
  --code-ink: #F5E9DC;
  --ok: #4C8C4A;
  /* Yeşil yüzey/çerçeve semantiğini değiştirmeden küçük metni AA eşiğinin üstünde tutar. */
  --ok-text: #3B7339;
  --err: #B3402A;
  /* --err çift rol taşır: 15 tüketicinin 13'ü ön plan (metin/kenarlık), 2'si saf-grafik dolgu
     (noktacık, metinsiz). --err-solid YALNIZ metin taşıyan tek dolgu tüketici için (silme-onayla
     düğmesi, style.css:343) — koyu modda --err parlatılınca metin-üstü-dolgu aynı tona çöker
     (2026-08-12 km-lane deneyi: v1 aday --err'i tek token olarak parlattığında bu düğmenin
     etiketi 4.77→2.01'e düşüyordu). Işık modda değer aynı: sıfır görsel fark. */
  --err-solid: var(--err);
  --glow-rgb: 194, 65, 12;
  --dawn-rgb: 249, 115, 22;
  --code-comment: #C4A98F;
  --code-keyword: #FDBA74;
  --code-string: #FDE68A;

  /* ---------- eski-yetim türetmeler (ADR-0018 amendment 2026-07-09/2 —
     token-refactor'un 12 yetim literali; değerler AYNEN taşındı) ---------- */
  --ink-deep: #3A1804;
  --ink-toffee: #5B2E0D;
  --peach-wash: rgba(255, 178, 125, 0.20);
  --peach-tint: rgba(255, 178, 125, 0.25);
  --peach-veil: rgba(255, 178, 125, 0.34);
  --honey-veil: rgba(253, 230, 138, 0.30);
  --honey-glow: rgba(253, 230, 138, 0.45);
  --ink-soft-wash: rgba(122, 99, 80, 0.08);
  --cream-glass: rgba(255, 249, 240, 0.14);
  --cream-glass-hover: rgba(255, 249, 240, 0.26);
  --white-sheen: rgba(255, 255, 255, 0.75);
  --scrim: rgba(59, 42, 30, 0.35);

  /* ---------- radius (ADR-0022 §1) ---------- */
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* ---------- spacing (ADR-0022 §1) ---------- */
  --space-1: 1px;
  --space-1-5: 1.5px;
  --space-2: 2px;
  --space-3: 3px;
  --space-4: 4px;
  --space-5: 5px;
  --space-6: 6px;
  --space-7: 7px;
  --space-8: 8px;
  --space-9: 9px;
  --space-10: 10px;
  --space-12: 12px;
  --space-13: 13px;
  --space-14: 14px;
  --space-15: 15px;
  --space-16: 16px;
  --space-17: 17px;
  --space-18: 18px;
  --space-19: 19px;
  --space-20: 20px;
  --space-22: 22px;
  --space-26: 26px;
  --space-28: 28px;
  --space-30: 30px;
  --space-32: 32px;
  --space-34: 34px;
  --space-36: 36px;
  --space-38: 38px;
  --space-40: 40px;
  --space-44: 44px;
  --space-46: 46px;
  --space-64: 64px;
  --space-120: 120px; /* Y15 (2026-08-22): iOS personButton .frame(maxWidth:) — ADR-0018 Amendment 2026-08-22 */
  --space-180: 180px;
  --space-292: 292px;
  --space-320: 320px;
  --space-380: 380px;
  --space-430: 430px;
  --space-720: 720px;
  /* 900px mobil kırılma noktası custom property olamaz. */

  /* ---------- typography (ADR-0022 §1) ---------- */
  --font-size-0-7: 0.7rem;
  --font-size-0-72: 0.72rem;
  --font-size-0-72-em: 0.72em;
  --font-size-0-74: 0.74rem;
  --font-size-0-76: 0.76rem;
  --font-size-0-8: 0.8rem;
  --font-size-0-82: 0.82rem;
  --font-size-0-84: 0.84rem;
  --font-size-0-84-em: 0.84em;
  --font-size-0-85: 0.85rem; /* Y15 (2026-08-22): partner.html label/.note/.error/.status-badge — ADR-0018 Amendment 2026-08-22 */
  --font-size-0-86: 0.86rem;
  --font-size-0-88: 0.88rem;
  --font-size-0-88-em: 0.88em;
  --font-size-0-9: 0.9rem;
  --font-size-0-92: 0.92rem;
  --font-size-0-94: 0.94rem;
  --font-size-0-95: 0.95rem; /* Y15 (2026-08-22): partner.html h2 — ADR-0018 Amendment 2026-08-22 */
  --font-size-0-97: 0.97rem;
  --font-size-1: 1rem;
  --font-size-1-02: 1.02rem;
  --font-size-1-06: 1.06rem;
  --font-size-1-25: 1.25rem; /* Y15 (2026-08-22): partner.html h1 — ADR-0018 Amendment 2026-08-22 */
  --font-size-1-28: 1.28rem;
  --font-size-hero: clamp(1.4rem, 4vw, 1.9rem);
  --font-size-hero-lg: clamp(1.9rem, 5vw, 2.6rem);
  --font-weight-500: 500;
  --font-weight-600: 600;
  --font-weight-640: 640;
  --font-weight-650: 650;
  --font-weight-680: 680;
  --font-weight-700: 700;
  --font-weight-760: 760;
  --line-height-1: 1;
  --line-height-1-2: 1.2;
  --line-height-1-3: 1.3;
  --line-height-1-35: 1.35;
  --line-height-1-5: 1.5;
  --line-height-1-6: 1.6;
  --letter-spacing-n0-01: -0.01em;
  --letter-spacing-0-03: 0.03em; /* Y15 (2026-08-22): partner.html h2 — ADR-0018 Amendment 2026-08-22 */
  --letter-spacing-0-08: 0.08em;
  --letter-spacing-0-1: 0.1em;
  --letter-spacing-0-12: 0.12em;
  --letter-spacing-0-13: 0.13em;

  /* ---------- duration / easing (ADR-0022 §1) ---------- */
  --duration-0: 0s; /* reduced-motion çökme hedefi (ADR-0031) */
  --duration-150: .15s;
  --duration-200: .2s;
  --duration-250: .25s;
  --duration-1000: 1s;
  --duration-1100: 1.1s;
  --duration-2400: 2.4s;
  --ease-standard: ease;
  --ease-emphasized: ease-in-out;
  --ease-steps2: steps(2);
  --ease-decelerate: ease-out; /* giriş: hızlı başlar, yumuşak durur (ADR-0031) */
  --ease-accelerate: ease-in;  /* çıkış: yumuşak başlar, hızlanarak gider (ADR-0031) */

  /* ---------- hareket: semantik katman (ADR-0031) ----------
     Ham sayı yok; her semantik token yukarıdaki duration/easing/spacing
     ölçeğinden türetilir. Çıkış her zaman girişten kısadır (gerekçe ADR-0031). */
  --motion-micro: var(--duration-150);          /* mikro geri bildirim: hover/press */
  --motion-surface-enter: var(--duration-200);  /* panel/dialog/dropdown girişi */
  --motion-surface-exit: var(--duration-150);   /* panel/dialog/dropdown çıkışı */
  --motion-page-enter: var(--duration-250);     /* sayfa-seviyesi: drawer/scrim girişi */
  --motion-page-exit: var(--duration-200);      /* sayfa-seviyesi: drawer/scrim çıkışı */
  --ease-enter: var(--ease-decelerate);
  --ease-exit: var(--ease-accelerate);
  --motion-distance: var(--space-8);            /* yüzey girişinin kökene mesafesi */

  /* ---------- yüzey çapası (ADR-0031 ek, 2026-07-27) ----------
     İçeriği değişen yüzeyler ekran ORTASINDAN değil ÜST kenarından büyür:
     üst kenar sabit kalır, yeni içerik AŞAĞI doğru açılır. Ortalanmış bir
     yüzey her yükseklik değişiminde kendini yeniden ortalar — okuma çapası
     kayar ve az önce nişan alınan tıklama hedefi yerinden oynar.
     clamp: küçük ekranda kenar boşluğuna iner, büyük ekranda 64px'te durur. */
  --surface-anchor-top: clamp(var(--space-20), 8dvh, var(--space-64));

  /* ---------- z-index (ADR-0022 §1) ---------- */
  --z-scrim: 30;
  --z-drawer: 40;
  --z-auth: 50;

  /* ---------- ince semantik katman (ADR-0022 §4) ---------- */
  --accent: var(--dawn-deep);
  --warn: var(--dawn-deep);
  --warn-wash: var(--honey-glow);
  --auth-cta-start: var(--peach);
  --auth-cta-end: var(--dawn);
  --auth-cta-ink: var(--ink-deep);
  /* Y15 (2026-08-22): partner.html button.primary/.danger BEYAZ metni — ADR-0018 Amendment
     2026-08-22. `--surface` KULLANILAMAZ: ışıkta #FFFFFF eşleşir ama koyu temada #2A1D14'e
     döner (ölçüldü) — bağlanırsa koyu modda buton metni okunmaz olurdu. Bu token yalnız bu
     :root'ta tanımlı, ne @media (prefers-color-scheme: dark) ne [data-theme] bloklarında
     override edilir — tema-bağımsız invariant, orijinal #fff'in davranışıyla birebir. */
  --ink-on-accent: #FFFFFF;

  /* UA-widget'ları (scrollbar, form kontrolleri) temayı izlesin. */
  color-scheme: light;
}

/* Hareket azaltma sözleşmesi (ADR-0031): süre ölçeği TEK NOKTADA sıfıra iner,
   dolayısıyla ham --duration-* kullanan app + landing geçişleri de semantik
   --motion-* kullanan yüzeyler de aynı kapsamda çöker. Opaklık hedefleri
   DEĞİŞMEZ; durum değişimi anında ve tam okunur kalır. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-150: var(--duration-0);
    --duration-200: var(--duration-0);
    --duration-250: var(--duration-0);
    --duration-1000: var(--duration-0);
    --duration-1100: var(--duration-0);
    --duration-2400: var(--duration-0);
    --motion-distance: 0px; /* transform kökeni kalkar; 0px = "hareket yok", spacing kararı değil */
  }
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #1C130D;
    --surface: #2A1D14;
    --ink: #F5E9DC;
    --ink-soft: #C4A98F;
    --dawn: #FB923C;
    --dawn-deep: #FDBA74;
    --peach: #B45309;
    --honey: #92400E;
    --sky-top: #3B2113;
    --sky-mid: #4A2A17;
    --sky-low: #5A3319;
    --card-glass: rgba(42, 29, 20, 0.55);
    --card-border: var(--peach-tint);
    --shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
    --shadow-soft: 0 8px 28px rgba(0, 0, 0, 0.30);
    --hairline: rgba(196, 169, 143, 0.18);
    --sidebar-bg: #241811;
    --code-bg: #140D08;
    --code-ink: #F5E9DC;
    --glow-rgb: 251, 146, 60;
    --dawn-rgb: 251, 146, 60;
    --auth-cta-start: var(--dawn);
    --auth-cta-end: var(--dawn-deep);
    --auth-cta-ink: var(--ink-deep);
    /* ---------- 2026-08-12 ödeme-ui review (km-01/02/03/05/06/07, bakiye-05, hesap-11 kökü):
       bu 4 token'ın koyu-mod karşılığı yoktu, ışık-mod değeri koyu yüzeye orta-ton bindiriyordu.
       Değerler km-lane'in km_11/km_12 deneyiyle önce/sonra ölçüldü (bkz. rapor lanes/koyu-mod-token.md
       §3, verdikt §2: 27 hedefte 18 düşük→geçti, 0 regresyon, açık modda 27/27 no-op). ---------- */
    --honey-glow: rgba(146, 64, 14, 0.38);
    --peach-wash: rgba(180, 83, 9, 0.22);
    --ok: #7BC47F;
    --ok-text: #7BC47F;
    --err: #F08C7A;
    --err-solid: #8C2F1E;
    color-scheme: dark;
  }
}

/* Elle tema seçimi prefers-color-scheme'i geçersiz kılar. */
:root[data-theme="dark"] {
  --bg: #1C130D; --surface: #2A1D14; --ink: #F5E9DC; --ink-soft: #C4A98F;
  --dawn: #FB923C; --dawn-deep: #FDBA74; --peach: #B45309; --honey: #92400E;
  --sky-top: #3B2113; --sky-mid: #4A2A17; --sky-low: #5A3319;
  --card-glass: rgba(42, 29, 20, 0.55); --card-border: var(--peach-tint);
  --shadow: 0 18px 50px rgba(0, 0, 0, 0.45); --shadow-soft: 0 8px 28px rgba(0, 0, 0, 0.30);
  --hairline: rgba(196, 169, 143, 0.18); --sidebar-bg: #241811;
  --code-bg: #140D08; --code-ink: #F5E9DC;
  --glow-rgb: 251, 146, 60; --dawn-rgb: 251, 146, 60;
  --auth-cta-start: var(--dawn); --auth-cta-end: var(--dawn-deep); --auth-cta-ink: var(--ink-deep);
  /* bkz. yukarıdaki @media (prefers-color-scheme: dark) bloğundaki not — aynı 5 token, aynı gerekçe. */
  --honey-glow: rgba(146, 64, 14, 0.38); --peach-wash: rgba(180, 83, 9, 0.22);
  --ok: #7BC47F; --ok-text: #7BC47F; --err: #F08C7A; --err-solid: #8C2F1E;
  color-scheme: dark;
}

:root[data-theme="light"] {
  --bg: #FFF9F0; --surface: #FFFFFF; --ink: #3B2A1E; --ink-soft: #7A6350;
  --dawn: #F97316; --dawn-deep: #A63A08; --peach: #FFB27D; --honey: #FDE68A;
  --sky-top: #FFE8C7; --sky-mid: #FFCE9E; --sky-low: #FFAF6E;
  --card-glass: rgba(255, 251, 244, 0.42); --card-border: rgba(255, 255, 255, 0.65);
  --shadow: 0 18px 50px rgba(194, 65, 12, 0.14); --shadow-soft: 0 8px 28px rgba(122, 99, 80, 0.10);
  --hairline: rgba(122, 99, 80, 0.14); --sidebar-bg: #FFF4E4;
  --code-bg: #2A1D14; --code-ink: #F5E9DC;
  --ok-text: #3B7339;
  --auth-cta-start: var(--peach); --auth-cta-end: var(--dawn); --auth-cta-ink: var(--ink-deep);
  color-scheme: light;
}
