/* DateControl — tasarım jetonlarının TEK kaynağı (Faz A).
   Faz A'dan önce palet hem burada hem app.css'te tanımlıydı ve ikisi ayrışmıştı
   (--wash #F7F7F7 vs #F5F5F5, --ink2 #3A3A3A vs #454545 …). app.css sonra
   yüklendiği için buradaki değerler ölüydü. Artık tek yer burası; app.css yalnız
   bileşen taşıyor. Aşağıdaki değerler o güne kadar EKRANDA GEÇERLİ OLANLARDIR —
   birleştirme görünümü değiştirmez. */

/* ============ yazı tipleri ============
   Self-host: Google Fonts'a çalışma anında bağlanmıyoruz (gizlilik + CSP + kesinti).
   Archivo değişken (100–900) tek dosya; IBM Plex Mono statik, yalnız 400 ve 600
   taşınıyor — 500 ve 700 istekleri CSS eşleşmesiyle bunlara düşer ve 11 px'lik
   sayaçlarda fark görünmez (dört ağırlık 112 KB yerine 56 KB).
   Alt kümeler unicode-range ile ayrı: tarayıcı yalnız gereken dosyayı indirir.
   Türkçe için ikisi de gerekli — ı U+0131 latin'de, İ ğ Ğ ş Ş latin-ext'te. */
@font-face{
  font-family:Archivo; font-style:normal; font-weight:100 900; font-display:swap;
  src:url("../fonts/archivo-latin.cd56e2ec63d7.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:Archivo; font-style:normal; font-weight:100 900; font-display:swap;
  src:url("../fonts/archivo-latin-ext.c5e41aa17045.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"IBM Plex Mono"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/plexmono-400-latin.79936b18df9f.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Mono"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/plexmono-400-latin-ext.8450d5944de2.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"IBM Plex Mono"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/plexmono-600-latin.5a2ce7798732.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Mono"; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/plexmono-600-latin-ext.f2fe87d55f72.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* Yedek metrikleri: yazı tipi inerken sayfa Helvetica/Arial ile çiziliyor. Ölçüler
   eşitlenmezse yükleme bittiğinde satırlar kayar (CLS). Aşağıdaki değerler tahmin
   değil, tarayıcıda ölçüldü (canvas TextMetrics, 100 px, Türkçe örnek dizge):

     Archivo   genişlik 28.247  yükselen 0.88  alçalan 0.21
     Helvetica genişlik 28.510  yükselen 0.95  alçalan 0.21
     Plex Mono genişlik 35.400  yükselen 1.02  alçalan 0.27
     Menlo     genişlik 35.521  yükselen 0.93  alçalan 0.24

   Archivo genişlikte Helvetica'ya çok yakın (%99.08) — kayma asıl yükselen
   farkından geliyordu (0.95 → 0.88). Denetimi tests/test_faz_a_fonts.py yapar. */
@font-face{
  font-family:"Archivo Yedek"; src:local("Helvetica Neue"),local("Helvetica"),local("Arial");
  size-adjust:99.08%; ascent-override:88.82%; descent-override:21.20%; line-gap-override:0%;
}
@font-face{
  font-family:"Plex Mono Yedek"; src:local("Menlo"),local("Consolas"),local("Courier New");
  size-adjust:99.66%; ascent-override:102.35%; descent-override:27.09%; line-gap-override:0%;
}

/* ============ VADE katmanı — öz birim ve editoryal ses (Vade programı, Faz 1)
   İki yüz, iki rol. Gövde, arayüz, tablo ve form metni `system-ui`da KALIR:
   Dynamic Type zinciri ve erişilebilirlik programının tamamı ona dayanıyor.
   Bu iki yüz ekrandaki glifin %4'ünden azına dokunur — cesaret tek yere harcanır.

   1) Martian Mono — ürünün ÖZ BİRİMİ: işaretli gün mesafesi (−152g, +23g).
      Neden kendi yüzü: bu sayı DateControl'ün tek özgün ölçü birimi ve her
      satırda tekrarlanıyor. Sistem yazı tipinin tabular rakamlarıyla çizilince
      "bir sütun daha" oluyor; kendi yüzüyle çizilince ürünün imzası oluyor.
      Kapsam `day_label_html`in üretebildiği karakterlerle SINIRLI (26 glif,
      4.0 KB): işaret, rakam, birim `g`, sıfır günün "bugün"ü, tarihsizin uzun
      tiresi. Ağırlık ekseni (100–800) korundu. unicode-range bu dosyayı bir
      firma adının ya da bir Türkçe harfin indirtmesini ENGELLER.
      Ölçüldü: ilerleme genişliği 0.70em — Menlo'nun (0.602) %16 üstünde.
      Bu, rakam sütunlarının genişlemesini gerektirdi (app.css, `.rw .d`).

   2) Bricolage Grotesque — EDİTORYAL SES: manşet cümlesi ve bülten başlığı.
      Google'ın üç eksenli tam sürümü (opsz+wdth+wght) latin altkümesinde
      128 KB'dı. opsz ve wdth düşürülüp yalnız wght 600–800 bırakıldı → 41 KB,
      Archivo'yla (35 KB) aynı ligde. Ağırlık ekseni KALDI çünkü bu yüz iki
      farklı ölçüde çiziliyor (manşet ~26px, bülten ~40px) ve büyük puntoda
      göze daha az ağırlık gerekiyor — tipografik ihtiyaç, süs değil.

   Yedek metrikleri TAHMİN DEĞİL: mevcut Archivo/Plex ölçümüyle aynı yöntemle
   (canvas TextMetrics, 100px, gerçek dizgeler) tarayıcıda ölçüldü.
     Martian Mono  genişlik 70.000  yükselen 1.00  alçalan 0.20
     Menlo         genişlik 60.205  yükselen 0.93  alçalan 0.24
     Bricolage     genişlik 47.800  yükselen 0.93  alçalan 0.27
     Helvetica     genişlik 46.161  yükselen 0.95  alçalan 0.21
   ============================================================================ */
@font-face{
  font-family:"Martian Mono"; font-style:normal; font-weight:100 800; font-display:swap;
  src:url("../fonts/martianmono-num.88ec2e7ac0e9.woff2") format("woff2");
  unicode-range:U+0020,U+0025,U+002B-002F,U+0030-0039,U+0062,U+0067,U+006E,U+0075,U+00B7,U+00FC,U+2013-2014,U+2212;
}
@font-face{
  font-family:"Bricolage Grotesque"; font-style:normal; font-weight:600 800; font-display:swap;
  src:url("../fonts/bricolage-latin.b7df97614c8e.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Bricolage Grotesque"; font-style:normal; font-weight:600 800; font-display:swap;
  src:url("../fonts/bricolage-latin-ext.deca0e4e8d0e.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Martian Yedek"; src:local("Menlo"),local("Consolas"),local("Courier New");
  size-adjust:116.27%; ascent-override:86.01%; descent-override:17.20%; line-gap-override:0%;
}
@font-face{
  font-family:"Bricolage Yedek"; src:local("Helvetica Neue"),local("Helvetica"),local("Arial");
  size-adjust:103.55%; ascent-override:89.81%; descent-override:26.07%; line-gap-override:0%;
}

/* ============================================================================
   APPLE JETON KATMANI (Apple UX programı, Faz 1)
   ============================================================================
   Kaynaklar: Apple HIG (developer.apple.com) + iOS 26.5 çalışma zamanından
   ölçülen değerler. DİKKAT: iOS 26 renkleri, satır yüksekliklerini, ayraç
   alfalarını ve köşe yarıçapını DEĞİŞTİRDİ. İnternetteki jeton dosyalarının
   çoğu hâlâ iOS 11–18'i anlatıyor (mavi #007AFF, kırmızı #FF3B30, ayraç .29).
   Aşağıdakiler güncel değerlerdir.

   Bilinçli sapma — Apple'ın kendi değerleri WCAG AA'yı geçmiyor:
     · systemBlue beyaz üstünde 3.52:1, systemGreen 2.22:1 (metin değil, vurgu rengi)
     · Apple'ın secondaryLabel'ı (%60 alfa) beyaz üstünde 3.44:1
   Bu yüzden METİN taşıyan her yerde Apple'ın "yüksek kontrast" sütunu kullanılır
   ve etiket alfaları AA tutacak şekilde yükseltilir. Varsayılan sütun yalnız
   dolgu, rozet zemini ve simge için.                                          */

:root{
  color-scheme: light dark;

  /* ---- yazı tipi ----------------------------------------------------------
     system-ui: Apple cihazında GERÇEK SF Pro çizilir (lisans sorunu yok, yazı
     tipi cihazdan gelir, indirilmez). Windows'ta Segoe UI, Android'de Roboto.
     Archivo/Inter/Plex dosyaları duruyor; yalnız data-font tercihiyle seçilir. */
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, "IBM Plex Mono", "Plex Mono Yedek", Menlo, Consolas, monospace;
  /* Vade programı, Faz 1 — iki rol, iki belirteç. `--num` yalnız işaretli gün
     mesafesini, `--display` yalnız manşet/bülten cümlesini taşır. Her ikisi de
     mevcut yığına düşer, yani yazı tipi inmezse ya da kullanıcı kapatırsa ekran
     bugünküyle aynı kalır. `data-num="sans"` tercihi ikisini de değil, yalnız
     rakamı geri alır (aşağıda) — o tercih zaten "rakamlar sans olsun" demek. */
  --num:     "Martian Mono", "Martian Yedek", var(--mono);
  --display: "Bricolage Grotesque", "Bricolage Yedek", var(--sans);
  font-optical-sizing: auto;

  /* ---- Dynamic Type: Apple'ın 11 basamağı, rem tabanlı --------------------
     rem tabanı = tarayıcının yazı boyu ayarı. Sabit px kullanılmaz, yoksa
     kullanıcının metin boyu tercihi yok sayılır (Apple'ın açık kuralı).
     Aşağıdaki değerler macOS ölçeği (işaretçi); dokunmada iOS ölçeğine geçilir. */
  /* MASAUSTU OLCEGI — web metrikleri (kullanici karari 09.09.2026).
     Onceki degerler Apple'in macOS YEREL uygulama olcegiydi (body 13px,
     caption 10px). Olculdu: alti ekranda gorunur metnin %45'i 11px ve
     altinda, %96'si 13px ve altinda; takvimin %50'si tek basina 10px'ti.
     macOS'ta 13px yerel uygulama icin dogru; tarayicida 16px varsayilan
     govdeye alisik gozde sikisik okunuyor. Dokunma olcegi (pointer:coarse,
     asagida) zaten iOS metriklerinde ve degismedi. 10px metin kalmadi. */
  --t-largetitle: 2rem;      --lh-largetitle: 1.250; --tr-largetitle:  0.012em;
  --t-title1:     1.625rem;  --lh-title1:     1.231; --tr-title1:      0.014em;
  --t-title2:     1.25rem;   --lh-title2:     1.300; --tr-title2:     -0.012em;
  --t-title3:     1.0625rem; --lh-title3:     1.294; --tr-title3:     -0.023em;
  --t-headline:   0.9375rem; --lh-headline:   1.294; --tr-headline:   -0.026em;
  --t-body:       0.9375rem; --lh-body:       1.333; --tr-body:       -0.026em;
  --t-callout:    0.875rem;  --lh-callout:    1.286; --tr-callout:    -0.020em;
  --t-subhead:    0.8125rem; --lh-subhead:    1.308; --tr-subhead:    -0.016em;
  --t-footnote:   0.75rem;   --lh-footnote:   1.333; --tr-footnote:   -0.006em;
  --t-caption1:   0.75rem;   --lh-caption1:   1.333; --tr-caption1:    0;
  --t-caption2:   0.6875rem; --lh-caption2:   1.273; --tr-caption2:    0.006em;
  --w-regular: 400; --w-emphasis: 600;

  /* ---- uzay ---------------------------------------------------------------
     Apple'ın YAYIMLANMIŞ bir ızgarası yok (HIG'in 116 sayfasında "8pt ızgara"
     ifadesi hiç geçmiyor) ve 4'ün katlarını da izlemiyor — 49, 35, 15, 26, 22,
     55.33pt değerleri gönderiyor. Aşağıdaki ölçek BİZİM tutarlılığımız için;
     Apple'ın gerçek bileşen ölçüleri ayrıca aşağıda, ölçülen adlarıyla. */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px;

  /* Satir icerigi ile kartin SAG kenari arasindaki nefes payi. Olculdu:
     sifirdi, tarih kart cizgisine degiyordu. Mobil degeri kapsayici
     sorgusunda (app.css) daraltilir. */
  --row-end: 20px;
  --sp-6: 24px; --sp-7: 28px; --sp-8: 32px; --sp-11: 44px;

  /* Apple'ın iOS 26.5'te ölçülen gerçek bileşen ölçüleri */
  --margin-compact: 16px;   /* ≤402pt genişlik */
  --margin-regular: 20px;   /* ≥420pt genişlik ve iPad */
  --row-h: 52px;            /* tek satırlı liste satırı */
  --row-h-sub: 62px;        /* alt satırlı */
  --separator-inset: 20px;  /* satır metninin başladığı yer */
  --group-gap: 35px;        /* gruplanmış listede gruplar arası */
  --hit-min: 44px;          /* dokunma varsayılanı (asgari 28) */
  /* Yapışkan araç çubuğunun yüksekliği: bölüm başlıkları onun ALTINA yapışır.
     Ölçülen değer; dar ekranda çubuk iki satıra sarıp yapışkanlığı bıraktığı
     için orada 0. */
  --tb-h: 65px;
  /* VADE Faz 3 — listedeki bugun cizgisinin yuksekligi. Cizginin kendisi ve
     gelecek bolum basliklarinin yapisma payi (`.sec.fut`) AYNI degeri okur;
     ayrisirlarsa ust bantta ya bosluk ya ortusme olur.
     Sabit px DEGIL, cizginin kendi puntosunun kati: Dynamic Type buyudugunde
     bant da payi da birlikte buyur, yapisik durum hicbir boyutta ayrismaz.
     Icerigin dogal yuksekligi punto x 1.308; 2.6 kat her zaman onun ustunde. */
  --tdl-h: calc(var(--t-xs) * 2.6);
  --hit-min-pointer: 28px;  /* işaretçide meşru asgari */
  /* E1: denetçi (üçüncü bölme) genişliği; ≥1440'ta genişler. */
  --insp-w: 400px;

  /* ---- şekil --------------------------------------------------------------
     26px gruplanmış liste yarıçapı iOS 26.5'te ölçüldü (ekran görüntüsü piksel
     analizi + UIBackgroundConfiguration.listSidebarCell().cornerRadius = 26).
     Klasik kaynakların söylediği 10px iOS 11–18 değeri.
     corner-shape:squircle iOS Safari 26.5'te YOK (Faz 0'da doğrulandı) —
     dairesel yarıçapa düşer, squircle yalnız Chromium'da ilerlemeli iyileştirme. */
  --radius-sm: 8px; --radius-md: 12px; --radius-xl: 26px;
  --radius-pill: 999px;

  /* ---- hareket: yay fiziği ------------------------------------------------
     CSS'te spring() yok (hiçbir kararlı tarayıcıda, şartnamede bile). Eğriler
     sönümlü harmonik salınımdan üretildi: ζ = 1 − bounce, ω₀ = 2π/süre;
     oturma anına kadar integre edildi, örnekler başa yoğunlaştırıldı (p^0.72),
     son nokta tam 1.0'a sabitlendi. Dördü de tarayıcıda doğrulandı. */
  --spring-quick:  linear(0.0000 0%, 0.2634 10.8%, 0.4889 17.79%, 0.6455 23.82%, 0.7525 29.3%, 0.8260 34.41%, 0.8767 39.24%, 0.9120 43.85%, 0.9368 48.27%, 0.9543 52.54%, 0.9668 56.68%, 0.9757 60.71%, 0.9822 64.63%, 0.9869 68.47%, 0.9903 72.22%, 0.9928 75.9%, 0.9946 79.51%, 0.9960 83.06%, 0.9970 86.55%, 0.9977 89.98%, 0.9983 93.37%, 0.9987 96.71%, 1 100%);
  --spring-snappy: linear(0.0000 0%, 0.2571 10.8%, 0.4939 17.79%, 0.6639 23.82%, 0.7808 29.3%, 0.8596 34.41%, 0.9121 39.24%, 0.9467 43.85%, 0.9690 48.27%, 0.9833 52.54%, 0.9921 56.68%, 0.9975 60.71%, 1.0005 64.63%, 1.0021 68.47%, 1.0028 72.22%, 1.0030 75.9%, 1.0028 79.51%, 1.0025 83.06%, 1.0022 86.55%, 1.0018 89.98%, 1.0015 93.37%, 1.0012 96.71%, 1 100%);
  --spring-smooth: linear(0.0000 0%, 0.2634 10.8%, 0.4889 17.79%, 0.6455 23.82%, 0.7525 29.3%, 0.8260 34.41%, 0.8767 39.24%, 0.9120 43.85%, 0.9368 48.27%, 0.9543 52.54%, 0.9668 56.68%, 0.9757 60.71%, 0.9822 64.63%, 0.9869 68.47%, 0.9903 72.22%, 0.9928 75.9%, 0.9946 79.51%, 0.9960 83.06%, 0.9970 86.55%, 0.9977 89.98%, 0.9983 93.37%, 0.9987 96.71%, 1 100%);
  --spring-bouncy: linear(0.0000 0%, 0.2298 10.8%, 0.4706 17.79%, 0.6594 23.82%, 0.7970 29.3%, 0.8928 34.41%, 0.9567 39.24%, 0.9971 43.85%, 1.0209 48.27%, 1.0332 52.54%, 1.0380 56.68%, 1.0379 60.71%, 1.0351 64.63%, 1.0307 68.47%, 1.0258 72.22%, 1.0209 75.9%, 1.0164 79.51%, 1.0124 83.06%, 1.0090 86.55%, 1.0061 89.98%, 1.0039 93.37%, 1.0021 96.71%, 1 100%);
  /* E5/K10: Apple'ın ön ayarları — .smooth/.snappy/.bouncy 0.5 s ALGISAL süre;
     CSS süresi oturma süresidir (734 / 696 / 818 ms). Basılı/hover interactiveSpring
     (response 0.15 s, ζ .86) ≈ 210 ms. Eğri şekli %'lik olduğu için değişmedi. */
  --d-quick: 210ms; --d-snappy: 696ms; --d-smooth: 734ms; --d-bouncy: 818ms;

  /* ---- malzeme (Apple'ın katman modeli) -----------------------------------
     Yalnız DENETİM katmanında: araç çubuğu, kenar çubuğu, kağıt, menü.
     İçerik katmanında (liste, tablo, kart) asla — Apple'ın açık kuralı:
     "Liquid Glass'ı içerik katmanında kullanmayın." */
  --material-thin:    saturate(180%) blur(20px);
  --material-regular: saturate(180%) blur(30px);
  --material-thick:   saturate(180%) blur(40px);
  --material-bg: color-mix(in srgb, var(--bg) 72%, transparent);
}

@media (min-width:1440px){ :root{ --insp-w: 460px; } }

/* ---- Dokunma: iOS ölçeği. Apple masaüstü ve dokunmada AYNI ölçeği kullanmaz. */
/* E8: iPhone'da tek satır 54 pt gezinme çubuğu yapışkan; güvenli alan üstüne eklenir. */
@media (max-width:680px){ :root{ --tb-h: calc(54px + env(safe-area-inset-top)); } }

@media (pointer: coarse){
  :root{
    --t-largetitle: 2.125rem; --lh-largetitle: 1.206;
    --t-title1:     1.75rem;  --lh-title1:     1.214;
    --t-title2:     1.375rem; --lh-title2:     1.273;
    --t-title3:     1.25rem;  --lh-title3:     1.250;
    --t-headline:   1.0625rem;--lh-headline:   1.294;
    --t-body:       1.0625rem;--lh-body:       1.294;
    --t-callout:    1rem;     --lh-callout:    1.312;
    --t-subhead:    0.9375rem;--lh-subhead:    1.333;
    --t-footnote:   0.8125rem;--lh-footnote:   1.385;
    --t-caption1:   0.75rem;  --lh-caption1:   1.333;
    --t-caption2:   0.6875rem;--lh-caption2:   1.182;
  }
}

/* ============ RENK: açık tema ============
   Apple iOS 26 sistem renkleri. Metin taşıyan her jeton "yüksek kontrast"
   sütunundan; varsayılan sütun yalnız dolgu/rozet/simge için (-fill sonekli). */
:root{
  /* etkileşim ve durum — her rengin TEK bir işi var.
     Faz 4'te hepsi ~%6 koyulaştı: bu renkler BEYAZ zemine göre 4.55:1'e
     ayarlanmıştı, sayfa zemini gruplanmış griye (#F2F2F7) dönünce 4.08'e
     düştüler. Yeni değerler gri zeminde 4.67, beyaz kapta 5.10.
     Zemin daha da açılırsa (#F7F7F9) eski değerler yine geçmez: 4.26. */
  /* Üç ayrı iş, üç ayrı jeton — karıştırmak kontrast hatası üretir:
       --tint       zemin üstünde METİN/simge rengi (tıklanabilir, seçili)
       --tint-fill  dekoratif dolgu, üstünde metin YOK
       --tint-solid BEYAZ METİN taşıyan dolu düğmenin zemini
     Koyu temada --tint açık bir mavidir (siyah üstünde okunsun diye); onu dolu
     düğme zemini yapmak beyaz metni 2.15:1'e düşürüyordu. --tint-solid her iki
     temada da beyaz metinle ≥4.5 tutacak şekilde seçildi. */
  --tint:   #1C67E5;  --tint-fill:   #0088FF;  --tint-solid: #1C67E5;  /* beyazla 5.10:1 */
  --red:    #DA142A;  --red-fill:    #FF383C;   /* gecikmiş · yıkıcı */
  --orange: #B84E00;  --orange-fill: #FF8D28;   /* 7 gün içinde */
  --yellow: #966300;  --yellow-fill: #FFCC00;   /* 30 gün · eksik veri */
  --green:  #00802F;  --green-fill:  #34C759;   /* tamamlandı */
  --purple: #B02FC2;  --purple-fill: #CB30E0;   /* paylaşılan kayıt */
  --gray:   #6C6C70;  --gray-fill:   #8E8E93;   /* tarihsiz · nötr */

  /* gri skalası (systemGray 1–6) */
  --gray1:#8E8E93; --gray2:#AEAEB2; --gray3:#C7C7CC;
  --gray4:#D1D1D6; --gray5:#E5E5EA; --gray6:#F2F2F7;

  /* metin: alfa tabanlı, tonlu gri taban (#3C3C43) — Apple'ın modeli.
     Alfalar AA tutacak şekilde yükseltildi (Apple'ın %60'ı 3.44:1 ile kalıyor). */
  --label-base: 60,60,67;
  --label:   rgb(0,0,0);
  --label-2: rgba(var(--label-base), .80);   /* 5.97:1 — Apple'ın HC değeri */
  /* Faz 4: .72 → .74. Alfa tabanlı etiket zemine göre hesaplanır; sayfa
     gruplanmış griye dönünce .72 beyazda 4.74 iken gride 4.52'ye düştü.
     .74 gride 4.79, beyaz kapta 5.00 verir — ikisi de AA'nın üstünde. */
  --label-3: rgba(var(--label-base), .74);
  --label-4: rgba(var(--label-base), .30);   /* süs; metin için ASLA */

  /* ---- ZAMAN RAMPASI (VADE Faz 4) --------------------------------------
     Renk artık kovanın adını değil kaydın ZAMANDAKİ YERİNİ söyler. Duraklar
     `apps/core/dates.py::HEAT` ile birebir; sınırlar zaman birimleri (ay,
     hafta, çeyrek), kova sınırları değil.

     Kırmızı YALNIZ geçmişte kalır — "gecikmiş = kırmızı" sezgisi rampanın
     içinde korunur; değişen doygunluktur. `p2` ile `p1` neredeyse aynı
     AÇIKLIKTA (L .540 / .565) ama doygunlukları 0.089 / 0.221: eski borç
     kurumuş, taze borç canlı. Gelecek tarafında sıcaklık renkle değil
     AĞIRLIKLA anlatılır, yoksa bugün vadeli kayıt "geç kalmış" okunurdu.

     Ölçüldü (WCAG 2.1, satır kartı #FFFFFF / gruplanmış zemin #F5F5F7):
       p2 5.29 / 4.86 · p1 5.10 / 4.69 · p0 21.0 / 19.3
       f1 7.18 / 6.69 · f2 5.00 / 4.79      — hepsi AA'nın üstünde. */
  --vd-p2: #9C5954;                        /* bir aydan eski — kurumuş */
  --vd-p1: var(--red);                     /* son bir ayın borcu */
  --vd-p0: var(--label);                   /* şimdi bandı (0 … +7) */
  --vd-f1: rgba(var(--label-base), .86);   /* çeyrek ufku (+8 … +90) */
  --vd-f2: var(--label-3);                 /* uzak ufuk (+91 …) ve tarihsiz */

  /* zemin: açık temada taban/yükseltilmiş ayrımı yoktur */
  --bg:   #FFFFFF;
  /* Gruplanmış listelerin ARKASI. Apple'ın systemGroupedBackground'u:
     açık temada gri (#F5F5F7 -- apple.com'un kendi zemini), koyuda taban
     siyah -- kap orada beyaz
     yerine #1C1C1E ile ayrılır. Kapla zemin aynı olursa kap görünmez. */
  --bg-grouped: #F5F5F7;
  --bg-2: #F2F2F7;
  --bg-3: #FFFFFF;
  /* Yukseltilmis zeminler acik temada tabanla ayni; koyuda basamaklanir.
     Bunlar TABAN blokta tanimli olmali -- eskiden dosyanin sonundaki
     `:root:not([data-theme="dark"])` kurali tanimliyordu ve o kural,
     ayni ozgullukte ama DAHA SONRA geldigi icin medya sorgusundaki koyu
     degerleri eziyordu: sistem koyusunda --bg-elevated #1C1C1E yerine
     #2C2C2E cikiyordu, uc basamakli merdiven ikiye cokuyordu. */
  --bg-elevated: #FFFFFF; --bg-elevated-2: #FFFFFF; --bg-elevated-3: #F2F2F7;

  /* ayraç — iOS 26'da yeniden ayarlandı (.29 → .12) */
  --separator: rgba(60,60,67,.12);
  --separator-opaque: #C6C6C8;

  /* dolgu */
  --fill-1: rgba(120,120,128,.20); --fill-2: rgba(120,120,128,.16);
  --fill-3: rgba(118,118,128,.12); --fill-4: rgba(116,116,128,.08);

  --shadow-1: 0 1px 2px rgba(0,0,0,.04), 0 1px 1px rgba(0,0,0,.06);
  --shadow-2: 0 4px 16px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.06);
  --shadow-3: 0 16px 48px rgba(0,0,0,.18), 0 2px 8px rgba(0,0,0,.08);
}

/* ============ RENK: koyu tema ============
   Koyu temada gölge işe yaramaz; Apple derinliği YÜKSELTİLMİŞ ZEMİN ile anlatır
   (#000000 → #1C1C1E → #2C2C2E → #3A3A3C). Panel ve kağıt yükseltilmiş sütunu alır. */
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --tint:#5CB8FF; --tint-fill:#0091FF; --tint-solid:#0B5ED7; /* beyazla 5.84:1 */
  --red:#FF6165; --red-fill:#FF4245;
  --orange:#FFA056; --orange-fill:#FF9230;
  --yellow:#FEDF43; --yellow-fill:#FFD600;
  --green:#4AD968; --green-fill:#30D158;
  --purple:#EA8DFF; --purple-fill:#DB34F2;
  --gray:#AEAEB2; --gray-fill:#8E8E93;
  --gray1:#8E8E93; --gray2:#636366; --gray3:#48484A;
  --gray4:#3A3A3C; --gray5:#2C2C2E; --gray6:#1C1C1E;
  --label-base: 235,235,245;
  --label: rgb(255,255,255);
  --label-2: rgba(var(--label-base), .60);   /* 6.36:1 — koyuda Apple'ın kendi değeri geçiyor */
  --label-3: rgba(var(--label-base), .55);   /* 5.44:1 */
  --label-4: rgba(var(--label-base), .28);
  /* Zaman rampası, koyu tema. Ölçüldü (satır kartı #1C1C1E):
     p2 5.49 · p1 5.79 · p0 17.0 · f1 9.12 · f2 5.22 — hepsi AA'nın üstünde. */
  --vd-p2: #BF8380;
  --vd-f1: rgba(var(--label-base), .78);
  --bg:#000000; --bg-2:#1C1C1E; --bg-3:#2C2C2E;
  --bg-elevated:#1C1C1E; --bg-elevated-2:#2C2C2E; --bg-elevated-3:#3A3A3C;
  --bg-grouped:#000000;
  --separator: rgba(84,84,88,.50);
  --separator-opaque:#38383A;
  --fill-1: rgba(120,120,128,.36); --fill-2: rgba(120,120,128,.32);
  --fill-3: rgba(118,118,128,.24); --fill-4: rgba(118,118,128,.18);
  --shadow-1: none; --shadow-2: 0 4px 16px rgba(0,0,0,.5); --shadow-3: 0 16px 48px rgba(0,0,0,.6);
}}
:root[data-theme="dark"]{
  --tint:#5CB8FF; --tint-fill:#0091FF; --tint-solid:#0B5ED7; /* beyazla 5.84:1 */
  --red:#FF6165; --red-fill:#FF4245;
  --orange:#FFA056; --orange-fill:#FF9230;
  --yellow:#FEDF43; --yellow-fill:#FFD600;
  --green:#4AD968; --green-fill:#30D158;
  --purple:#EA8DFF; --purple-fill:#DB34F2;
  --gray:#AEAEB2; --gray-fill:#8E8E93;
  --gray1:#8E8E93; --gray2:#636366; --gray3:#48484A;
  --gray4:#3A3A3C; --gray5:#2C2C2E; --gray6:#1C1C1E;
  --label-base: 235,235,245;
  --label: rgb(255,255,255);
  --label-2: rgba(var(--label-base), .60);
  --label-3: rgba(var(--label-base), .55);
  --label-4: rgba(var(--label-base), .28);
  /* Zaman rampası, koyu tema. Ölçüldü (satır kartı #1C1C1E):
     p2 5.49 · p1 5.79 · p0 17.0 · f1 9.12 · f2 5.22 — hepsi AA'nın üstünde. */
  --vd-p2: #BF8380;
  --vd-f1: rgba(var(--label-base), .78);
  --bg:#000000; --bg-2:#1C1C1E; --bg-3:#2C2C2E;
  --bg-elevated:#1C1C1E; --bg-elevated-2:#2C2C2E; --bg-elevated-3:#3A3A3C;
  --bg-grouped:#000000;
  --separator: rgba(84,84,88,.50);
  --separator-opaque:#38383A;
  --fill-1: rgba(120,120,128,.36); --fill-2: rgba(120,120,128,.32);
  --fill-3: rgba(118,118,128,.24); --fill-4: rgba(118,118,128,.18);
  --shadow-1: none; --shadow-2: 0 4px 16px rgba(0,0,0,.5); --shadow-3: 0 16px 48px rgba(0,0,0,.6);
}
:root[data-theme="light"]{ --bg-elevated: #FFFFFF; --bg-elevated-2: #FFFFFF; --bg-elevated-3: #F2F2F7; }

/* ============ ESKİ ADLAR → yeni jetonlar ============
   app.css ve şablonlar 1000+ yerde eski adları kullanıyor. Faz 1'in sözü
   "hiçbir yerleşim değişmez"; o yüzden eski adlar KALIYOR ve yenilerine
   bağlanıyor. Sonraki fazlarda kademeli olarak yeni adlara geçilecek. */
:root{
  --paper: var(--bg);
  --wash:  var(--bg-2);
  --wash2: var(--gray5);
  --ink:   var(--label);
  --ink2:  var(--label-2);
  --ink3:  var(--label-3);
  --hair:  var(--separator);
  --hair2: var(--separator-opaque);
  --rule:  var(--label);
  --sig:   var(--red);          /* aciliyet ve yıkıcı — Apple'ın semantiği */
  --sigbg: color-mix(in srgb, var(--red-fill) 12%, var(--bg));
  --blue:  var(--tint);
  --ok:    var(--green);
  --okbg:  color-mix(in srgb, var(--green-fill) 12%, var(--bg));

  /* Iki eski ad, iki AYRI is (Faz 3'te ayrildi):
     en kucuk basamak gercek altyazi ve sus icin (macOS 10 / iOS 11);
     bir ustu ikincil veri ve denetim etiketi icin (macOS 11 / iOS 15).
     Onceden ikisi de caption1'e bagliydi ve caption1 macOS'ta caption2
     ile AYNI 10px -- merdivenin iki adimi tek adima cokmustu. Apple'in
     liste satirindaki ikincil metni subhead basamagindadir. */
  --t-2xs: var(--t-caption2); --t-xs: var(--t-subhead);
  --t-sm:  var(--t-body);     --t-md: var(--t-body);
  --t-lg:  var(--t-title3);   --t-xl: var(--t-title1);
  --t-2xl: var(--t-largetitle);
  --t-hero:  clamp(2.5rem, 6vw, 4rem);
  --t-hero2: clamp(1.75rem, 3.4vw, 2.5rem);

  --pad: clamp(20px, 3.6vw, 52px);
  --dur: var(--d-quick);  --ease: var(--spring-quick);
  /* İçerik girişleri (detay parçaları) sık tekrarlanır: Apple 'sık etkileşime hareket
     ekleme' der — giriş yayı hızlı. */
  --d-micro: var(--d-quick); --d-enter: var(--d-quick);
  --d-exit: var(--d-quick);  --d-panel: var(--d-smooth);
  --e-out: var(--spring-smooth); --e-in: var(--spring-quick);
}

/* ============ görünüm tercihleri ============ */
/* Yazı tipi: system-ui varsayılan; diğerleri self-host dosyalardan (fonts-alt.css) */
:root[data-font="archivo"]{--sans:Archivo,"Archivo Yedek",system-ui,-apple-system,sans-serif}
:root[data-font="inter"]{--sans:Inter,"Archivo Yedek",system-ui,-apple-system,sans-serif}
:root[data-font="plex"]{--sans:"IBM Plex Sans","Archivo Yedek",system-ui,-apple-system,sans-serif}
:root[data-font="system"]{--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
:root[data-num="sans"]{--mono:var(--sans); --num:var(--sans)}

/* Yazı boyu: Dynamic Type köküne bağlanır — TEK yerden, tüm ölçek birlikte büyür.
   Apple'ın kuralı: yerleşim %200'e kadar (AX3 = %235) ayakta kalmalı. */
:root[data-fs="s"]{font-size:93.75%}   /* 15px */
:root[data-fs="l"]{font-size:112.5%}   /* 18px */

/* Yüksek kontrast: etiket alfaları Apple'ın HC sütununa, ayraç opaklaşır. */
/* Isletim sisteminin KENDI yuksek kontrast ayari. Gercek bir macOS/iOS
   ayari ve Safari'de destekleniyor; uygulamanin `data-hc` anahtari duruyor,
   bu blok ayni degerleri OS'tan da tetikliyor. */
@media (prefers-contrast: more){
  :root:not([data-hc="0"]){
    --label-2: rgba(var(--label-base), .92);
    --label-3: rgba(var(--label-base), .84);
    --separator: var(--separator-opaque);
    /* `--vd-f2` tabanı .74'ten .84'e çıkıyor; `f1` de çıkmazsa rampanın
       gelecek yarısı tek renge çöker. */
    --vd-f1: rgba(var(--label-base), .95);
  }
}

:root[data-hc="1"]{
  --label-2: rgba(var(--label-base), .92);
  --label-3: rgba(var(--label-base), .84);
  --separator: var(--separator-opaque);
  --fill-3: rgba(118,118,128,.24);
  --vd-f1: rgba(var(--label-base), .95);
}

/* Vurgu rengi: artık ETKİLEŞİM rengini (--tint) sürüyor, aciliyeti değil.
   Apple'ın modelinde mavi tıklanabilirliği söyler; kırmızı her zaman gecikmiştir. */
:root[data-accent="blue"]{--tint:#1E6EF4; --tint-fill:#0088FF; --tint-solid:#1E6EF4}
:root[data-accent="green"]{--tint:#008932; --tint-fill:#34C759; --tint-solid:#006B27}
:root[data-accent="violet"]{--tint:#B02FC2; --tint-fill:#CB30E0; --tint-solid:#8E1F9E}
:root[data-accent="ink"]{--tint:var(--label); --tint-fill:var(--label); --tint-solid:var(--label)}
:root[data-accent="red"]{--tint:#C11A2B; --tint-fill:#FF383C; --tint-solid:#B01426}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  &[data-accent="blue"]{--tint:#5CB8FF; --tint-fill:#0091FF}
  &[data-accent="green"]{--tint:#4AD968; --tint-fill:#30D158}
  &[data-accent="violet"]{--tint:#EA8DFF; --tint-fill:#DB34F2}
  &[data-accent="ink"]{--tint:var(--label); --tint-fill:var(--label)}
  &[data-accent="red"]{--tint:#FF6165; --tint-fill:#FF4245}
}}
:root[data-theme="dark"][data-accent="blue"]{--tint:#5CB8FF; --tint-fill:#0091FF}
:root[data-theme="dark"][data-accent="green"]{--tint:#4AD968; --tint-fill:#30D158}
:root[data-theme="dark"][data-accent="violet"]{--tint:#EA8DFF; --tint-fill:#DB34F2}
:root[data-theme="dark"][data-accent="ink"]{--tint:var(--label); --tint-fill:var(--label)}
:root[data-theme="dark"][data-accent="red"]{--tint:#FF6165; --tint-fill:#FF4245}

/* Kâğıt tonu: Apple'ın gruplanmış zemin skalasını kaydırır */
:root[data-paper="warm"]{--bg:#FBF8F1; --bg-2:#F4F0E6; --bg-3:#FFFFFF}
:root[data-paper="cool"]{--bg:#F5F8FB; --bg-2:#ECF1F6; --bg-3:#FFFFFF}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  &[data-paper="warm"]{--bg:#0D0C09; --bg-2:#1A1712; --bg-3:#26221A}
  &[data-paper="cool"]{--bg:#070A0E; --bg-2:#141920; --bg-3:#1E242C}
}}
:root[data-theme="dark"][data-paper="warm"]{--bg:#0D0C09; --bg-2:#1A1712; --bg-3:#26221A}
:root[data-theme="dark"][data-paper="cool"]{--bg:#070A0E; --bg-2:#141920; --bg-3:#1E242C}

/* ============ erişilebilirlik anahtarları ============
   Apple'ın dört ayarının web karşılığı. prefers-reduced-transparency'nin gerçek
   iOS Safari 26.5'te ÇALIŞTIĞI Faz 0'da doğrulandı (MDN ve caniuse "yok" diyor). */
@media (prefers-reduced-transparency: reduce){
  :root{ --material-thin:none; --material-regular:none; --material-thick:none;
         --material-bg: var(--bg); }
}
@media (prefers-contrast: more){
  :root{
    --label-2: rgba(var(--label-base), .92);
    --label-3: rgba(var(--label-base), .84);
    --separator: var(--separator-opaque);
    --material-thin:none; --material-regular:none; --material-thick:none;
    --material-bg: var(--bg);
  }
}
/* Azaltılmış hareket: Apple'ın yaklaşımı hareketi KALDIRMAK değil — yayı
   sıkılaştır, x/y/z geçişini solunmaya çevir, bulanıklığı hiç animasyonlama. */
@media (prefers-reduced-motion: reduce){
  :root{
    --spring-quick: linear(0,1); --spring-snappy: linear(0,1);
    --spring-smooth: linear(0,1); --spring-bouncy: linear(0,1);
    --d-quick:1ms; --d-snappy:120ms; --d-smooth:150ms; --d-bouncy:120ms;
    --ease: linear; --e-out: linear; --e-in: linear;
    --dur:1ms; --d-micro:1ms; --d-enter:120ms; --d-exit:1ms; --d-panel:150ms;
  }
}

/* Sürekli köşe (squircle): iOS Safari 26.5'te YOK — Faz 0'da doğrulandı.
   Destekleyen tarayıcıda Apple'ın gerçek eğrisi, diğerlerinde dairesel. */
@supports (corner-shape: squircle){
  :root{ --corner-shape: squircle; }
}

/* ---- E8: Dynamic Type — yalnız iOS ---------------------------------------------------
   `font: -apple-system-body` kökü kullanıcının iOS "Metin Boyutu" ayarına bağlar (varsayılan
   17 px, "büyük"te 21–23, erişilebilirlik boyutlarında 53'e kadar). Yalnız iOS: macOS
   Safari'de kök 13 px'e düşerdi — `-webkit-touch-callout` sadece iOS WebKit'te var.
   Kısaltma line-height'ı `normal`e sıfırlar → birimsiz yeniden yazılır. Kökte `font-size`
   bir daha YAZILMAZ (bağ kopar; kullanıcı Ayarlar'da açıkça boyut seçtiyse [data-fs] kazanır).
   Dokunma jetonları 16 px köke göre yazılmıştı; 17 px kökte AYNI pikseli vermek için 16/17
   ile ölçeklenir — varsayılanda hiçbir şey değişmez, "büyük"te her şey orantılı büyür. */
@supports (font: -apple-system-body) and (-webkit-touch-callout: default){
  html{ font: -apple-system-body; font-family: var(--sans); line-height: 1.294; }
  @media (pointer: coarse){
    :root{
    --t-largetitle: calc(2.125rem * 16 / 17);
    --t-title1: calc(1.75rem * 16 / 17);
    --t-title2: calc(1.375rem * 16 / 17);
    --t-title3: calc(1.25rem * 16 / 17);
    --t-headline: calc(1.0625rem * 16 / 17);
    --t-body: calc(1.0625rem * 16 / 17);
    --t-callout: calc(1rem * 16 / 17);
    --t-subhead: calc(0.9375rem * 16 / 17);
    --t-footnote: calc(0.8125rem * 16 / 17);
    --t-caption1: calc(0.75rem * 16 / 17);
    --t-caption2: calc(0.6875rem * 16 / 17);
    }
  }
}
