/* ===== SAYFA CSS — kabuk CSS'i reference/diet/css/dd-shell.css'te ===== */
/* =====================================================================
   T5.0 — KİMLİK VE HESAP EKRANLARI
   (giriş · kayıt · şifremi unuttum · şifre sıfırlama · e-posta doğrulama ·
    hesabım)

   🔴 T5.0b (2026-08-18) — GİRİŞ VE KAYIT EKRANLARININ TASARIMI DEĞİŞTİ.
   Beyar yeni bir TASARIM KAYNAĞI verdi (referans sistem değil):
     https://by4r.github.io/<tasarim-kaynagi>/v7-6cu356/giris-v1.html
   ⚠ Adresin ortadaki dizin adı YER TUTUCUDUR: gerçek ad yasaklı marka
     dizgisini taşıyor ve marka kapısı (b) onu kaynak kodda görürse
     KIRMIZI verir. Tam adres Beyar'ın T5.0b görev metnindedir.
   Gerekçesi: eski sistemde Diyet'in giriş ekranı hiç yoktu, kopyalanacak
   referans yok. Bu dosya artık DÖRT blok taşır:

     BLOK 1  Diyet'in kendi alan kiti          (değişmedi)
     BLOK 2  Diyet'in kendi ortalanmış kartı   (değişmedi — şifremi unuttum ·
                                                şifre sıfırlama · e-posta
                                                doğrulama · hesabım hâlâ bunu
                                                kullanır)
     BLOK 3  Diyet'in kendi HESAP yüzeyi dili  (YENİ, Diyet'ten bayt kopya)
     BLOK 4  Mockup'tan alınan `au-*` yerleşimi (YENİ, marka ikameleriyle)

   🔴 MOCKUP'IN MARKASI GELMEDİ. Dizgi, logo ve baskın turuncu aksan
   alınmadı; her aksan kalemi Diyet'in KENDİ dosyasındaki bir satırla
   değiştirildi ve BLOK 4'ün ikame tablosunda tek tek yazıldı.

   🔴 BU DOSYADA TEK SATIR YENİ TASARIM YOKTUR.

   Gerekçe: bu ekranların REFERANSI YOK. `11 §9.2` ölçtü — eski sistemde
   Diyet'in login/logout/register/password/verification/two-factor/auth
   karşılığı **0 rotaydı**; kimlik yüzeyi kardeş markanındı. Kopyalanacak bir
   Diyet ekranı olmadığı için `09 §2` md.5'in hakemi de yok.

   `09 §2` md.3 bağlayıcı: *"Yeni renk, yeni tipografi, yeni spacing, yeni
   radius/gölge, yeni component ismi, yeni sınıf adı — hiçbiri üretilmez."*
   Bu yüzden ekranların dili, DİYET'İN KENDİ public sayfalarından **bayt
   düzeyinde** alınan iki bloktan kuruldu. Her bloğun kaynağı altında yazılı.

   ⚠ ÖLÇÜLEN EKSİK — ALAN DÜZEYİNDE HATA SINIFI YOK.
   `public/reference/diet/css/` ağacında `.fk-err` / `.form-err` / `.field-err`
   benzeri bir kural **0 sonuç** verdi (ölçüldü, 2026-08-18). Yani Diyet'in
   kendi form dili alan altına kırmızı hata satırı basmıyor. Uydurulmadı;
   ekranlar hata mesajını Diyet'in KENDİ mesaj yüzeyiyle (`.pf-disclaimer`,
   `diet/_p/flash.blade.php` deseni) form başında basar. Alan düzeyinde hata
   dili gerekiyorsa Beyar'a sorulur (`docs/parite/T5.0-sapma.md §4`).
   ===================================================================== */

/* =====================================================================
   BLOK 1 — FORM KİTİ
   Kaynak: public/reference/diet/css/pages/beden-kutle-endeksi-v1.css:9-41
   (Diyet'in KENDİ hesaplayıcı şablonu; odak halkası SAĞLIK YEŞİLİ —
    diyetisyen panelinin domates varyantı DEĞİL, public varyant.)
   BAYT KOPYA — tek karakter değiştirilmedi.
   ===================================================================== */
/* ---- FORM KİTİ (tarif-ekle-v1.html VERBATIM — miras) ---- */
.fk-field{margin-bottom:22px}
.fk-field:last-child{margin-bottom:0}
.fk-label{display:flex;align-items:baseline;gap:7px;font-size:14px;font-weight:700;color:var(--slate);margin-bottom:9px}
.fk-label .req{color:var(--tomato);font-weight:700}
.fk-label .opt{font-size:11.5px;color:var(--muted);font-weight:500}
.fk-label .fk-count{margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:500;letter-spacing:.02em}
.fk-input,.fk-select,.fk-textarea{
  width:100%;font-family:inherit;font-size:14px;font-weight:500;color:var(--slate);
  background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md);
  padding:13px 15px;outline:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.fk-input::placeholder,.fk-textarea::placeholder{color:#a7a7a7}
.fk-input:focus,.fk-select:focus,.fk-textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(0,154,68,.12)}
.fk-select{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237E7E7E' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center;padding-right:40px;
}
.fk-select:invalid{color:#a7a7a7}
.fk-help{display:flex;align-items:flex-start;gap:7px;font-size:12.5px;color:var(--muted);font-weight:500;margin-top:8px;line-height:1.5}
.fk-help i{color:var(--green);font-size:12px;margin-top:2px;flex:none}
.fk-grid{display:grid;gap:16px 18px}
.fk-grid .fk-field{margin-bottom:0}
.fk-grid.c2{grid-template-columns:1fr 1fr}
/* 🔴 T5.0d — `.fk-grid.c2` DAR EKRANDA TEK SÜTUNA DÜŞER.
   Beyar (2026-08-18): *".fk-grid.c2'nin 390px'te tek sütuna düşmemesi de bu
   turda kapansın — Gastro'nun formunda karşılığı nasılsa öyle."*
   ÖLÇÜM: kaynağın kendi `tokens.css:345` satırı zaten bunu yazıyor —
     @media (max-width: 640px) { .fk-grid { grid-template-columns: 1fr; } }
   Diyet'in kendi kiti (BLOK 1, `beden-kutle-endeksi-v1.css:9-41`) o dosyanın
   yalnız 9-41 aralığını taşıdığı için kırılım DIŞARIDA kalmıştı; kusurun
   kaynağı buydu. Satır kaynağından alındı, ölçü UYDURULMADI ve kırılım noktası
   bu dosyanın kendi ≤640px eşiğiyle aynı. */
@media (max-width:640px){.fk-grid,.fk-grid.c2{grid-template-columns:1fr}}
.fk-suffix{position:relative}
.fk-suffix .fk-input{padding-right:64px}
.fk-suffix>span{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:700;color:var(--muted);pointer-events:none}
/* segment toggle (cinsiyet) — token dili, sağlık yeşili aktif */
.fk-seg{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md);padding:4px;gap:4px}
.fk-seg button{flex:1;border:none;background:transparent;font-family:inherit;font-weight:700;font-size:14px;color:var(--muted);padding:11px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:.2s var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:8px}
.fk-seg button i{font-size:14px}
.fk-seg button.active{background:var(--tomato-deep);color:#fff}

/* =====================================================================
   BLOK 2 — ORTALANMIŞ KART KABUĞU + AYAK
   Kaynak: public/reference/diet/css/pages/bana-uygun-olani-bul-v1.css
           satır 51-52 (.wz-sec/.wz-card) · 80 (.wz-body) · 83-85 (.wz-q) ·
           112-125 (.wz-nav/.wz-back/.wz-progress-txt/.wz-next) · 162 (.wz-disc)
   (Diyet'in KENDİ sihirbaz kabuğu — tek sütun, ortalanmış kart. Bu markanın
    "tek form, tek kart" deseninin yerleşik hâli.)
   BAYT KOPYA — tek karakter değiştirilmedi. Blok içindeki adım yolu
   (.wz-steps/.wz-step/.wz-num/.wz-lbl) ve seçenek kutucukları (.wz-opt…)
   ALINMADI: kimlik ekranları çok adımlı değil, karşılığı olmayan kural
   taşınmaz.
   ===================================================================== */
.wz-sec{padding:6px 0 70px;background:var(--bg-cream)}
.wz-card{max-width:820px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--sh-md);overflow:hidden}
.wz-body{padding:32px 34px 6px}
.wz-q{text-align:center;margin-bottom:24px}
.wz-q h2{font-size:24px;letter-spacing:-.02em}
.wz-q p{font-size:14px;color:var(--muted);font-weight:500;margin-top:6px}
.wz-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 34px 28px}
.wz-back{display:inline-flex;align-items:center;gap:9px;font-family:inherit;font-weight:700;font-size:14px;color:var(--slate);background:none;border:none;cursor:pointer;padding:12px 6px;transition:.18s var(--ease)}
.wz-back i{font-size:12px;transition:transform .2s var(--ease)}
.wz-back:hover{color:var(--green)}
.wz-back:hover i{transform:translateX(-3px)}
.wz-back:focus-visible{outline:3px solid var(--tomato-tint);outline-offset:2px;border-radius:var(--radius-sm)}
.wz-back[hidden]{visibility:hidden;display:inline-flex}
.wz-progress-txt{font-size:12.5px;font-weight:600;color:var(--muted)}
.wz-next{display:inline-flex;align-items:center;gap:10px;font-family:inherit;font-weight:700;font-size:14.5px;color:#fff;background:var(--green-deep);border:none;border-radius:var(--radius-md);padding:14px 28px;cursor:pointer;transition:.2s var(--ease)}
.wz-next i{font-size:13px;transition:transform .2s var(--ease)}
.wz-next:hover{background:var(--green);transform:translateY(-2px)}
.wz-next:hover i{transform:translateX(3px)}
.wz-next:focus-visible{outline:3px solid var(--tomato-tint);outline-offset:2px}
.wz-next:disabled{background:#c3e4d3;cursor:not-allowed;transform:none}
.wz-disc{max-width:820px;margin:26px auto 0}

/* Kaynağın kendi ≤640px kırılımından, ALINAN sınıflara düşen üç satır
   (bana-uygun-olani-bul-v1.css:175, :181, :182 — BAYT KOPYA). Adım yoluna
   ait satırlar alınmadı çünkü o sınıflar bu dosyada yok. */
@media (max-width:640px){
  .wz-sec{padding:2px 0 46px}
  .wz-body{padding:24px 18px 4px}
  .wz-q h2{font-size:20px}
}



/* =====================================================================
   BLOK 3 — HESAP YÜZEYİNİN KENDİ DİLİ (Diyet, BAYT KOPYA)
   =====================================================================

   🔴 `.pf-tabs`ın İKİ VARYANTI VAR VE BURADA YEŞİL OLANI ALINDI — ölçüm:

     public/reference/diet/css/pages/besin-kutuphanesi-v1.css:38
       .pf-tabs .dt.active{background:var(--tomato-deep)}   ← içerik sayfaları
     public/reference/diet/css/planim.css:191  ·  panel.css:418
       .pf-tabs .dt.active{background:var(--green)}          ← HESAP yüzeyi

   Giriş ve kayıt hesap yüzeyidir; Diyet'in kendi hesap ekranları (Planım ve
   diyetisyen paneli) bu sekmeyi YEŞİL basar. Yani buradaki yeşil bir tercih
   değil, bu markanın kendi ölçülmüş kuralıdır — ve Beyar'ın *"Diyet'in kendi
   yeşilinin içinde kurulacak"* talimatıyla aynı yere düşer.

   Kaynak: planim.css 187-192 (sekme) · 410-411 (yeşil buton) ·
           pages/diyetisyen-ol-v1.css 113-116 (onay grubu + captcha şerhi)
   ===================================================================== */
.pf-tabs{display:flex;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:4px;overflow-x:auto;scrollbar-width:none}
.pf-tabs::-webkit-scrollbar{display:none}
.pf-tabs .dt{font-family:inherit;font-weight:700;font-size:13px;color:var(--muted);background:transparent;border:none;border-radius:var(--radius-sm);padding:9px 16px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.2s var(--ease);white-space:nowrap;flex:none}
.pf-tabs .dt:hover{color:var(--green-deep)}
.pf-tabs .dt.active{background:var(--green);color:#fff}
.pf-pane[hidden]{display:none}
.btn-green{background:var(--green);color:#fff}
.btn-green:hover{background:var(--green-deep);transform:translateY(-2px)}
.ol-consents{display:flex;flex-direction:column;gap:13px}
.ol-consents .fb-kvkk{margin:0}
.captcha-note{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);font-weight:500;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.captcha-note i{color:var(--green-deep);font-size:13px}

/* ---- sifre kurali canli kontrol listesi (fk-pwrules) ----
   🔴 T5.0d — KAYNAK FORMDAN ALINDI, UYDURULMADI.
   Beyar (2026-08-18) kayit formunun YAPISINI kaynak forma hizalamayı istedi;
   o formda sifre alanının altında canli bir kural listesi var:
     <ul class="fk-pwrules" data-pw-rules>
       <li data-pw-rule="len|case|num|sym">…
   Kural tanimi `tokens.css:434-438` (= paketin `sa-form-kit.css:351-355`,
   bayt-ozdes). Davranisi `pages/kimlik-v1.js`e port edildi; panel kiti bu
   ekranlarda YUKLENMEZ (T5.0 §6.1: kapi ekranlarina fazladan kit binmesi
   olculmus bir parite kusuru yaratmisti).

   ⚠ TEK IKAME — ve degeri kaynaktan cozuldu:
     kaynak: gap: var(--sp-2)     →  burada: gap: 8px
   `--sp-2` PANEL token'idir (`sa-form-kit.css:184` `--sp-2: 8px`) ve Diyet'in
   PUBLIC dilinde tanimli DEGILDIR (olculdu: 0 sonuc). Degisken adiyla
   kopyalamak `gap:0` verirdi — yani gorunmez bir kusur. Cozulmus deger yazildi;
   yeni bir olcu uretilmedi. Renkler zaten Diyet'in kendi token'lari
   (`--muted` · `--green-deep` · `--green` · `--ease`, hepsi dd-shell.css'te). */
.fk-pwrules{display:grid;gap:8px;margin-top:2px;list-style:none}
.fk-pwrules li{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted);transition:color .15s var(--ease)}
.fk-pwrules li i{font-size:.78rem;flex:none}
.fk-pwrules li.is-ok{color:var(--green-deep)}
.fk-pwrules li.is-ok i{color:var(--green)}

/* =====================================================================
   BLOK 4 — `au-*` KİMLİK YERLEŞİMİ
   Kaynak: Beyar'ın tasarım kaynağı (mockup) `giris-v1.html`, SAYFA CSS bloğu
   =====================================================================

   ALINAN: sayfa bandı · iki sütunlu yerleşim · sol görsel paneli (vaat +
   sayı şeridi) · sağ form kartı · sekme barı · sosyal buton · ayraç ·
   şifre göster-gizle · beni-hatırla satırı · alt köprü · hata bandı ·
   alan düzeyinde hata · hesap türü segmenti · rol açıklaması · responsive.

   ALINMAYAN ve gerekçesi:
     · `.fk-tel` / `.fk-tel-cc`  → Beyar: telefonla giriş KURULMAYACAK
                                   (SMS altyapısı yok).
     · `.au-rolefields` alan setleri (antrenör/işletme/diyetisyen başvuru
       alanları) → Beyar: yalnız iki sekme; diyetisyen başvurusu bu projede
       AYRI bir ekrandır (T5.7) ve kayıt formuna gömülmez.
     · Antrenör ve İşletme rol renkleri (`--c-green`, `--c-petrol`)
       → Beyar: *"onlar başka markanın."* Token'lar bu projeye hiç girmedi.
     · Mockup'ın `fk-*` kiti → Diyet'in KENDİ kiti (BLOK 1) zaten var ve odak
       halkası yeşil; ikinci bir kit yüklemek çakışırdı.

   🔴 MARKA İKAME TABLOSU — her satırın kaynağı Diyet'in kendi dosyasıdır
   -------------------------------------------------------------------------
   mockup                                   bu projede            kaynak
   .au-visual .eyebrow{color:#ffd9cf}        #99d7b4              beslenme-ipucu-detay-v1.css:39
   .au-visual .eyebrow::before{--tomato}     var(--green)         beslenme-ipucu-detay-v1.css:40
   .au-visual h2 .accent{color:#ff7a5c}      #7fcca1              beslenme-ipucu-detay-v1.css:42
   .au-visual .lead{color:#e7edf1}           #e3ede7              beslenme-ipucu-detay-v1.css:43
   .au-perks i{background:rgba(225,72,39,.9)} var(--green)        planim.css:296 (yesil dolu rozet)
   .au-stats .st span{color:#aebcc6}         #cfe6da              beslenme-ipucu-detay-v1.css:46
   .au-seg-btn:hover{color:var(--tomato)}    var(--green-deep)    planim.css:190
   .au-seg-btn.active{background:--tomato}   var(--green)         planim.css:191
   .au-rseg-lead i{color:var(--tomato)}      var(--green)         beden-kutle-endeksi-v1.css:30
   .au-forgot{color:var(--tomato)}           var(--green-deep)    beden-kutle-endeksi-v1.css:48 (.rd-crumb a:hover)
   .au-alt button{color:var(--tomato)}       var(--green-deep)    ayni
   .au-back:hover{color:var(--tomato)}       var(--green-deep)    ayni
   .fk-eye:hover{color:--tomato;bg:--tomato-tint}  var(--green) / #E3F4EA   diyetisyen-ol-v1.css:96 (.uz-pick.on)
   .au-top / .au-visual gorsel URL'i         Diyet'in KENDI hero gorseli    beslenme-ipucu-detay-v1.css:31

   ⚠ DEGISMEYEN IKI AKSAN — ve neden:
     `.fk-error` ve `.sbanner.rejected` domates ailesinde KALDI. O renk burada
     marka aksani degil HATA rolu tasir; Diyet'in kendi mesaj yuzeyi de
     (`diet/_p/flash.blade.php`) hatayi ayni aileyle basar. Yesile cevirmek
     hatayi basari gibi gosterirdi.
     `.fk-label .req` de ayni sebeple domates kaldi — Diyet'in kendi kitinin
     satiri (BLOK 1, beden-kutle-endeksi-v1.css:13).

   🔴 BEYAR'IN IKI YERLESIM DEGISIKLIGI (mockuptan bilerek sapildi):
     1. Sosyal butonlar ALT ALTA degil YAN YANA. `.soc-col` sinif ADI
        korundu ki mockupla yapisal kiyas 1:1 kalsin; yalnizca yonu degisti
        ve bu satirin yaninda yazili.
     2. Hesap turu segmenti DORT degil IKI sekme (Kullanici · Diyetisyen).
   ===================================================================== */

/* ---- sayfa bandi (mockup .au-top) — gorsel Diyet'in kendi hero'sundan ---- */
.au-top{position:relative;background-color:#15241c;background-image:linear-gradient(90deg,rgba(18,28,22,.94),rgba(20,32,25,.74)),url("../media/photo-1466637574441-749b8f19452f.jpg");background-size:cover;background-position:center;padding-top:128px;padding-bottom:74px}
.au-top .wrap{position:relative;z-index:5}
.au-top .au-card{position:relative;z-index:6}
.au-top .rd-crumb{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:18px 0 14px;font-size:13px;font-weight:500}
.au-top .rd-crumb,.au-top .rd-crumb a{color:#bcd0c4}
.au-top .rd-crumb a:hover{color:#99d7b4}
.au-top .rd-crumb i{color:rgba(255,255,255,.4)}
.au-top .rd-crumb b{color:#fff}
@media (max-width:640px){.au-top{padding-top:74px}}
.au-layout{display:grid;grid-template-columns:minmax(0,1fr) 520px;gap:28px;align-items:stretch;margin-top:6px}

/* ---- sol gorsel paneli ---- */
.au-visual{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:624px;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--sh-md);
  background-color:#15241c;
  background-image:linear-gradient(180deg,rgba(18,28,22,.30) 0%,rgba(20,32,25,.55) 55%,rgba(16,26,20,.86) 100%),
    url("../media/photo-1466637574441-749b8f19452f.jpg");
  background-size:cover;background-position:center;
  padding:38px 40px;
}
.au-visual .eyebrow{color:#99d7b4}
.au-visual .eyebrow::before{background:var(--green)}
.au-visual h2{color:#fff;font-size:36px;letter-spacing:-.03em;margin:14px 0 10px;max-width:420px;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.au-visual h2 .accent{color:#7fcca1}
.au-visual .lead{color:#e3ede7;font-weight:500;font-size:15px;max-width:420px;text-shadow:0 1px 14px rgba(0,0,0,.3);line-height:1.6}
.au-perks{display:flex;flex-direction:column;gap:11px;margin-top:22px}
.au-perks span{display:inline-flex;align-items:center;gap:11px;font-size:13.5px;font-weight:600;color:#e3ede7}
.au-perks i{flex:none;width:26px;height:26px;border-radius:var(--radius-circle);background:var(--green);color:#fff;display:grid;place-items:center;font-size:11px}
.au-stats{display:flex;gap:34px;margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18)}
.au-stats .st b{display:block;font-size:25px;font-weight:700;color:#fff;letter-spacing:-.02em;line-height:1.1}
.au-stats .st span{font-size:12px;color:#cfe6da;font-weight:500}

/* ---- sag form karti ---- */
.au-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--sh-sm);padding:34px 38px 36px;display:flex;flex-direction:column}
.au-head{margin-bottom:20px}
.au-head h1{font-size:25px;letter-spacing:-.02em}
.au-head p{font-size:13.5px;color:var(--muted);font-weight:500;margin-top:5px}
.au-card .pf-tabs{margin-bottom:24px}
.au-card .pf-tabs .dt{flex:1;justify-content:center}
.au-pane{animation:fadeUp .35s var(--ease)}

/* ---- sosyal giris ----
   🔴 BEYAR KARARI: mockupta ALT ALTA, burada YAN YANA. Sinif adi mockup'in
   (`.soc-col`) korundu ki yapisal kiyas 1:1 kalsin. */
.soc-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.soc-btn{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;font-family:inherit;font-size:14px;font-weight:700;color:var(--slate);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:13px 16px;cursor:pointer;transition:.2s var(--ease)}
.soc-btn i{font-size:17px}
.soc-btn:hover{border-color:var(--slate);transform:translateY(-1px);box-shadow:var(--sh-sm)}
/* pasif hal — anahtar gelene kadar. Deger Diyet'in KENDI "kullanilamaz"
   dilinden: dd-shell.css:863 (.fb-emoji button) grayscale + .65 opaklik. */
/* 🔴 T5.0e — PASIF HAL ARTIK `<span>`, `<button disabled>` DEGIL.
   Beyar: "rozetsiz, href'siz" (mağaza butonuyla AYNI karar). `<span>`
   `:disabled` sozde-sinifini ALAMAZ, bu yuzden secici `[aria-disabled]`e
   cevrildi — DEGERLER DEGISMEDI, yalnizca neye tutundugu degisti.
   Emsal Diyet'in kendi footer'i: `dd-shell.css:1206-1207` de tam olarak bu
   deseni kullaniyor — `a.foot-app-store:hover` etkin hal, `span.foot-app-store
   {cursor:default}` pasif hal. `.soon` kurali kaldirildi cunku rozet artik
   hic basilmiyor (bu ekranlarda; kabugun kendi `.soon`u yerinde durur). */
.soc-btn[aria-disabled="true"]{filter:grayscale(1);opacity:.65;cursor:default}
.soc-btn[aria-disabled="true"]:hover{border-color:var(--line);transform:none;box-shadow:none}
@media (max-width:640px){.soc-col{grid-template-columns:1fr}}
.au-div{display:flex;align-items:center;gap:14px;margin:20px 0;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.03em}
.au-div::before,.au-div::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---- sifre goster/gizle ---- */
.fk-pass{position:relative}
.fk-pass .fk-input{padding-right:50px}
.fk-eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:14px;cursor:pointer;display:grid;place-items:center;transition:.18s var(--ease)}
.fk-eye:hover{color:var(--green);background:#E3F4EA}

/* ---- beni hatirla satiri ---- */
.au-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0 20px}
.au-row .fb-kvkk{margin:0;font-size:13px;align-items:center}
.au-row .fb-kvkk input{margin-top:0}
.au-forgot{font-size:13px;font-weight:700;color:var(--green-deep);transition:.18s;background:none;border:none;font-family:inherit;cursor:pointer;padding:0}
.au-forgot:hover{color:var(--green);text-decoration:underline;text-underline-offset:2px}

/* ---- gonder + alt kopru ---- */
.au-card .ol-consents{margin:18px 0 20px}
.au-submit{width:100%;padding:15px 26px;font-size:15px}
.au-alt{text-align:center;font-size:13.5px;color:var(--muted);font-weight:500;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.au-alt button,.au-alt a{background:none;border:none;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--green-deep);cursor:pointer;padding:0;transition:.18s}
.au-alt button:hover,.au-alt a:hover{color:var(--green);text-decoration:underline;text-underline-offset:2px}
.au-back{display:inline-flex;align-items:center;gap:8px;background:none;border:none;font-family:inherit;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;padding:0;margin-bottom:16px;transition:.18s}
.au-back:hover{color:var(--green-deep)}
.au-back i{font-size:11px}

/* ---- durum izleri ---- */
.sbanner{display:none;align-items:flex-start;gap:14px;border:1px solid;border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:22px;animation:fadeUp .35s var(--ease)}
.sbanner.show{display:flex}
.sb-ico{flex:none;width:42px;height:42px;border-radius:var(--radius-md);display:grid;place-items:center;font-size:17px}
.sb-body{flex:1;min-width:0}
.sb-body h4{font-size:15.5px;margin-bottom:4px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.sb-body p{font-size:13.5px;color:var(--slate-2);font-weight:500;line-height:1.6}
.sb-body p b{color:var(--slate)}
.sbanner.rejected{background:var(--tomato-tint);border-color:rgba(225,72,39,.35)}
.sbanner.rejected .sb-ico{background:rgba(225,72,39,.14);color:var(--tomato)}
.fk-error{display:none;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--tomato);margin-top:8px}
.fk-error i{font-size:12px}
.fk-field.has-error .fk-input{border-color:var(--tomato);box-shadow:0 0 0 3px rgba(225,72,39,.10)}
.fk-field.has-error .fk-error{display:flex}

/* ---- hesap turu segmenti (mockup .au-seg / .au-rseg — IKI sekme) ---- */
.au-seg{display:flex;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md);padding:4px;margin-bottom:18px}
.au-seg-btn{flex:1;font-family:inherit;font-weight:700;font-size:13px;color:var(--muted);background:transparent;border:none;border-radius:var(--radius-sm);padding:9px 14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.2s var(--ease);text-decoration:none}
.au-seg-btn:hover{color:var(--green-deep)}
.au-seg-btn.active{background:var(--green);color:#fff}
.au-seg-btn.active i{color:#fff}
.au-seg-btn i{font-size:12px}
.au-rseg{margin-bottom:8px}
/* 🔴 SEGMENT JS'SİZ ÇALIŞIR — mockup `<button>` + JS kullanıyor, burada
   `<label>` + gizli radyo. Gerekçe: değer formla POST edilmeli ve seçim
   JS kapalıyken de tutmalı. Gizleme satırının değerleri Diyet'in KENDİ
   dosyasından: `pages/diyetisyen-ol-v1.css` `.gor-opt input`. Aktif hâlin
   rengi yine `planim.css:191`in yeşilidir — yeni değer yok. */
.au-seg-btn input{position:absolute;opacity:0;pointer-events:none}
.au-seg-btn:has(input:checked){background:var(--green);color:#fff}
.au-seg-btn:has(input:checked) i{color:#fff}
/* Rol açıklaması seçime göre görünür — yine JS'siz (`:has()` + kardeş seçici).
   Diyet'in kendi CSS'i `:has()` desenini zaten kullanıyor
   (`.gor-opt:has(input:checked)`, `.fk-chip:has(input:checked)`). */
.au-rolenote[data-for]{display:none}
.au-rseg:has(input[value="diyetisyen"]:checked)~.au-rolenote[data-for="diyetisyen"]{display:flex}
.au-rseg-lead{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-weight:600;margin:0 0 16px}
.au-rseg-lead i{color:var(--green);font-size:12px}
.au-rolenote{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:11px 13px;background:var(--bg-cream);border:1px solid var(--line);border-radius:var(--radius-md);font-size:12px;line-height:1.5;color:var(--slate-2);font-weight:500}
.au-rolenote i{flex:none;margin-top:1px;color:var(--green-deep);font-size:13px}
.au-rolenote a{color:var(--green-deep);font-weight:700;text-decoration:underline;text-underline-offset:2px}

/* ===================== TABLET (<=1024px) ===================== */
@media (max-width:1024px){
  .au-layout{grid-template-columns:1fr;gap:20px}
  .au-card{order:1;padding:28px 26px 30px}
  .au-visual{order:2;height:auto;min-height:0;padding:30px 28px}
  .au-visual h2{font-size:29px}
  .au-perks{display:none}
}

/* ===================== MOBIL (<=640px) ===================== */
@media (max-width:640px){
  .au-top{padding-bottom:50px}
  .au-card{padding:22px 18px 26px;border-radius:var(--radius-lg)}
  .au-head h1{font-size:22px}
  .au-visual{padding:24px 20px;border-radius:var(--radius-lg)}
  .au-visual h2{font-size:24px}
  .au-stats{gap:22px;margin-top:18px;padding-top:16px}
  .au-stats .st b{font-size:21px}
  .au-row{flex-wrap:wrap;gap:10px}
}

/* =====================================================================
   GİRİŞ.HTML KANONİK KİMLİK YÜZEYİ
   Kaynak: canlı DadaDiet giriş ekranı. Değerler mevcut Diet
   tokenlarına birebir eşlenmiştir; Laravel form adları ve gerçek rotalar
   yalnız davranış katmanını değiştirir.
   ===================================================================== */
.auth-sr-only,.auth-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.giris-hero{position:relative;padding:128px 0 74px;background-color:#15241c;background-image:linear-gradient(90deg,rgba(18,28,22,.94),rgba(20,32,25,.74)),url("../media/photo-1466637574441-749b8f19452f.jpg");background-size:cover;background-position:center}
.giris-hero .kirinti{position:static;display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0;padding:18px 0 14px;font-size:13px;font-weight:500;line-height:1.55;color:#bcd0c4}
.giris-hero .kirinti a{color:#bcd0c4}
.giris-hero .kirinti a:hover{color:#99d7b4}
.giris-hero .kirinti>i{color:rgba(255,255,255,.4)}
.giris-hero .kirinti b{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-weight:700}
.giris-duzen{display:grid;grid-template-columns:minmax(0,1fr) 520px;gap:28px;margin-top:6px;align-items:stretch}
.giris-pano{display:flex;flex-direction:column;justify-content:flex-end;height:clamp(624px,calc(100vh - 220px),1036px);position:sticky;top:124px;padding:38px 40px;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--sh-md);background-color:#15241c;background-image:linear-gradient(180deg,rgba(18,28,22,.30) 0%,rgba(20,32,25,.55) 55%,rgba(16,26,20,.86) 100%),url("../media/photo-1466637574441-749b8f19452f.jpg");background-size:cover;background-position:center}
.giris-pano .ust-etiket{display:inline-flex;align-items:center;gap:8px;color:#99d7b4;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.giris-pano h2{font-size:36px;font-weight:700;line-height:1.12;letter-spacing:-.03em;max-width:420px;margin:14px 0 10px;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.giris-pano h2 .vurgu{color:#7fcca1}
.giris-pano .giris-metni{font-size:15px;font-weight:500;line-height:1.6;max-width:420px;color:#e3ede7;text-align:left;text-align-last:auto;text-shadow:0 1px 14px rgba(0,0,0,.3)}
.giris-avantaj{display:flex;flex-direction:column;gap:11px;margin-top:22px}
.giris-avantaj span{display:inline-flex;align-items:center;gap:11px;font-size:13.5px;font-weight:600;color:#e3ede7}
.giris-avantaj i{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:var(--green);color:#fff}
.giris-sayilar{display:flex;gap:34px;padding-top:22px;margin-top:26px;border-top:1px solid rgba(255,255,255,.18)}
.giris-sayilar b{display:block;font-size:25px;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:#fff}
.giris-sayilar span{display:inline;font-size:12px;font-weight:500;color:#cfe6da}
.giris-kart{position:relative;z-index:6;display:flex;flex-direction:column;padding:34px 38px 36px;border-radius:var(--radius-xl);border:1px solid var(--line);background:var(--paper);box-shadow:var(--sh-sm)}
.auth-tabs{display:flex;gap:4px;width:100%;margin:0 auto 24px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper)}
.auth-tabs .sekme{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}
.auth-tabs .sekme:hover{color:var(--green-deep)}
.auth-tabs .sekme.aktif{background:var(--green);color:#fff}
.giris-bas{margin-bottom:20px}
.giris-bas h1{font-size:25px;font-weight:700;line-height:1.12;letter-spacing:-.02em}
.giris-bas p{margin-top:5px;font-size:13.5px;font-weight:500;color:var(--muted);text-align:left;text-align-last:auto}
.sosyal-kolon{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sosyal-dugme{display:flex;align-items:center;justify-content:center;gap:11px;padding:13px 16px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);font-family:inherit;font-size:14px;font-weight:700;color:var(--slate)}
.sosyal-dugme[aria-disabled="true"]{filter:grayscale(1);opacity:.65;cursor:default}
.sosyal-ikon{width:18px;height:18px;display:grid;place-items:center;flex:none;overflow:hidden;font-size:17px}
.giris-ayrac{display:flex;align-items:center;gap:14px;margin:20px 0;font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--muted)}
.giris-ayrac::before,.giris-ayrac::after{content:"";flex:1;height:1px;background:var(--line)}
.giris-segment{display:flex;gap:4px;padding:4px;margin-bottom:18px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--bg)}
.giris-segment.rol{flex-wrap:wrap;margin-bottom:22px}
.giris-segment .auth-segment-item,.giris-segment .segment-baglanti{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:700;color:var(--muted);text-decoration:none}
.giris-segment .auth-segment-item.aktif{background:var(--green);color:#fff}
.giris-segment .segment-baglanti:hover{color:var(--green-deep);background:var(--paper)}
.giris-yol-secici .auth-method-option{position:relative;flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.giris-yol-secici .auth-method-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.giris-yol-secici .auth-method-option:has(input:checked){background:var(--green);color:#fff}
.giris-yol-secici .auth-method-option:has(input:focus-visible){outline:3px solid rgba(0,154,68,.3);outline-offset:2px}
.auth-page .giris-form .auth-kimlik-panel{display:none}
.auth-page .giris-form:has(#login-method-email:checked) [data-login-panel="eposta"],.auth-page .giris-form:has(#login-method-phone:checked) [data-login-panel="telefon"]{display:block}
.auth-phone-field{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch}
.auth-phone-prefix{display:flex;align-items:center;padding:0 13px;border:1px solid var(--line);border-right:0;border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--bg);color:var(--slate);font-size:13px;font-weight:700;white-space:nowrap}
.auth-phone-field .alan-girdi{border-radius:0 var(--radius-md) var(--radius-md) 0}
.segment-ok{font-size:12px;font-weight:900;line-height:1;opacity:.75}
.giris-segment-giris{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:12px;font-weight:600;color:var(--muted);text-align:left;text-align-last:auto}
.giris-segment-giris i{font-size:12px;color:var(--green)}
.giris-kart .alan{margin-bottom:22px}
.giris-kart .alan-sifre{position:relative}
.giris-kart .alan-sifre .alan-girdi{padding-right:50px}
.giris-hata{display:none;align-items:center;gap:7px;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--tomato-dark);text-align:left;text-align-last:auto}
.giris-hata.acik{display:flex}
.giris-satir{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0 20px}
.giris-satir .onay-kutusu{align-items:center;min-height:44px;margin:0;padding:0;border:none;border-radius:0;background:none;gap:9px;font-size:13px;line-height:1.4}
.giris-satir .onay-kutusu input{margin-top:0}
.giris-unuttum{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;border:none;font-family:inherit;font-size:13px;font-weight:700;color:var(--green-deep)}
.giris-unuttum:hover{color:var(--green);text-decoration:underline;text-underline-offset:2px}
.giris-gonder{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px 26px;border:none;border-radius:var(--radius-md);font-family:inherit;font-size:15px;font-weight:700;background:var(--green);color:#fff;cursor:pointer}
.giris-gonder:hover{background:var(--green-deep);transform:translateY(-2px)}
.giris-not{display:flex;align-items:center;gap:9px;margin-top:16px;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--bg);font-size:12.5px;font-weight:500;color:var(--muted);text-align:left;text-align-last:auto}
.giris-not i{color:var(--green-deep)}
.giris-alt{padding-top:18px;margin-top:20px;border-top:1px solid var(--line);text-align:center;font-size:13.5px;font-weight:500;color:var(--muted)}
.giris-alt a{display:inline-flex;align-items:center;min-height:44px;font-size:13.5px;font-weight:700;color:var(--green-deep)}
.giris-alt a:hover{color:var(--green);text-decoration:underline;text-underline-offset:2px}
.giris-serit{display:none}
.giris-serit.acik{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;margin:0 0 22px;border-radius:var(--radius-lg);border:1px solid rgba(225,72,39,.35);background:#fff0ed}
.serit-ikon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:var(--radius-md);font-size:17px;background:rgba(225,72,39,.14);color:#e14827}
.serit-govde h4{display:flex;align-items:center;gap:9px;margin:0 0 4px;font-size:15.5px;font-weight:700;line-height:1.12}
.serit-govde p{margin:0;font-size:13.5px;line-height:1.6;text-align:left;text-align-last:auto}

@media (max-width:1024px){
  .giris-duzen{grid-template-columns:1fr;gap:20px}
  .giris-kart{order:1;padding:28px 26px 30px}
  .giris-pano{order:2;position:static;height:auto;min-height:0;padding:30px 28px}
  .giris-pano h2{font-size:29px}
  .giris-avantaj{display:none}
}
@media (max-width:640px){
  .giris-hero{padding:74px 0 50px}
  .giris-hero .kirinti{padding:14px 0 10px;font-size:12px}
  .giris-kart{padding:22px 18px 26px;border-radius:var(--radius-lg)}
  .giris-bas h1{font-size:22px}
  .sosyal-kolon{grid-template-columns:1fr}
  .giris-pano{padding:24px 20px;border-radius:var(--radius-lg)}
  .giris-pano h2{font-size:24px}
  .giris-sayilar{gap:22px;margin-top:18px;padding-top:16px}
  .giris-sayilar b{font-size:21px}
  .giris-satir{flex-wrap:wrap;gap:10px}
}

/* Vite public.css bu dosyadan sonra yüklenir. Auth kaynağının bağlayıcı
   yerleşimini daha yüksek özgüllükle koru; burada yeni bir varyant yoktur. */
.auth-page .header{background:transparent;border-color:rgba(255,255,255,.14);box-shadow:none}
.auth-page .header .diet-word-mark{color:var(--tomato)}
.auth-page .header .nav>.nav-item>a,.auth-page .header .icon-btn{color:#fff}
.auth-page .header .icon-btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3)}
.auth-page .header .btn-login{background:#00a84f;color:#fff}
.auth-page .giris-hero{padding:128px 0 74px;background:radial-gradient(900px 380px at 88% 0%,rgba(0,154,68,.34),transparent 62%),linear-gradient(90deg,rgba(14,44,28,.94),rgba(33,30,22,.74)),#102018}
.auth-page .giris-hero>.kap{max-width:1240px;margin:0 auto;padding:0 32px}
.auth-page .giris-duzen{display:grid;grid-template-columns:minmax(0,1fr) 520px;gap:28px;align-items:stretch;margin-top:6px}
.auth-page .giris-pano{display:flex;position:sticky;top:137px;height:clamp(624px,calc(100vh - 233px),1036px);padding:38px 40px;background:linear-gradient(180deg,rgba(14,44,28,.32) 0%,rgba(20,34,25,.58) 55%,rgba(13,22,16,.88) 100%),#102018;border-radius:var(--radius-xl)}
.auth-page .giris-pano h2{font-size:36px;line-height:1.12;margin:14px 0 10px}
.auth-page .giris-pano>p{font-size:15px;line-height:1.6}
.auth-page .giris-kart{padding:34px 38px 36px;border-radius:var(--radius-xl)}
@media (min-width:1025px){
  .auth-page .giris-kart{min-height:1098px}
  .auth-page .au-card{min-height:1439px}
}
@media (max-width:1024px){
  .auth-page .giris-duzen{display:grid;grid-template-columns:1fr;gap:20px}
  .auth-page .giris-kart{order:1;margin:0;padding:28px 26px 30px}
  .auth-page .giris-pano{order:2;position:static;height:auto;min-height:0;padding:30px 28px}
  .auth-page .giris-pano h2{font-size:29px}
}
@media (max-width:640px){
  .auth-page .bottom-nav{display:none}
  .auth-page #pageMain{padding-bottom:env(safe-area-inset-bottom);scroll-padding-bottom:env(safe-area-inset-bottom)}
  .auth-page .header .h-top>.wrap{padding-right:32px;padding-left:32px}
  .auth-page .header .icon-btn,.auth-page #hamburger{width:44px;height:44px}
  .auth-page #drawerClose{width:44px;height:44px}
  .auth-page .fk-eye,.auth-page .alan-goz{width:44px;height:44px}
  .auth-page .giris-hero,.auth-page .au-top{padding-top:96px}
  .auth-page .giris-hero{padding-bottom:50px;background:radial-gradient(900px 380px at 88% 0%,rgba(0,154,68,.34),transparent 62%),linear-gradient(90deg,rgba(14,44,28,.94),rgba(33,30,22,.74)),#102018}
  .auth-page .giris-hero>.kap{padding:0 16px}
  .auth-page .giris-kart{order:1;min-height:1148px;margin:0;padding:22px 18px 26px;border-radius:var(--radius-lg)}
  .auth-page .au-card{min-height:1602px}
  .auth-page .giris-pano{order:2;padding:24px 20px;border-radius:var(--radius-lg)}
  .auth-page .giris-pano h2{font-size:24px}
}
