
  /* Şablon sözleşmesi: `.nx-auth` kabuk yerleşimi DEĞİL — ortalanmış kutu kendi
     akışını ister (bkz. sablonlar/auth.html başlığındaki bilinçli istisna). */
  .nx-auth {
    min-height: 100dvh;
    display: grid;
    grid-template-rows: 1fr auto;      /* üst: kutu (dikeyde ortalı) · alt: tema */
    padding: var(--nx-space-lg);
    padding-top: calc(var(--nx-space-lg) + var(--nx-sa-ust, env(safe-area-inset-top, 0px)));
    padding-bottom: calc(var(--nx-space-lg) + var(--nx-sa-alt, env(safe-area-inset-bottom, 0px)));
  }
  /* Simetrik dikey dolgu — giris.html'in aynısı (kör denetçi İ1, 1 Eki; aynı kalıp aynı yapı): kutu sığarken
     ortası aynı yerde kalır, taşınca tema anahtarıyla arasında `lg` kalır. */
  .gr-orta { display: flex; align-items: center; justify-content: center;
             padding-block: var(--nx-space-lg); }
  .gr-kutu {
    width: min(420px, 100%);
    display: flex; flex-direction: column; align-items: stretch;
    gap: var(--nx-space-lg);
  }

  /* Logo: yalnız YÜKSEKLİK ölçeğe bağlanır, `width` auto kalır — en-boy oranı
     korunur (ölçeklenebilirlik kuralı: logo iki eksende ayrı ölçeklenmez). */
  .gr-logo { height: calc(34px * var(--nx-nesne-olcek)); width: auto; align-self: center; }

  .gr-baslik { text-align: center; }
  .gr-baslik h1 { font-size: var(--nx-fs-h2); }
  .gr-baslik p  { color: var(--nx-muted); margin-top: var(--nx-space-xs); }

  .gr-form { display: flex; flex-direction: column; gap: var(--nx-space-md); }

  /* Yasal satır: eylemden SONRA, tema anahtarından ÖNCE. Ayrı bir kart değil —
     sessiz bir dipnot; okunur ama giriş akışıyla yarışmaz. */
  .gr-yasal {
    text-align: center; font-size: var(--nx-fs-caption); color: var(--nx-muted);
    line-height: var(--nx-lh-body); text-wrap: pretty;
  }
  .gr-yasal a { color: inherit; text-underline-offset: 3px; }

  /* ── TEMA ANAHTARI (Efe: güneş + ay, orta en altta) ──
     Sistemdeki `.nx-segmented` kalıbının iki-seçenekli, ikon-only hâli değil;
     kendi kabı, çünkü burada kabuk YOK ve öğe ekranın dibine çıpalı.
     ⭐ DOLGU KURALI: seçili olan LİME dolgu + İNK ikon; glow yönü temadan gelir
     (koyuda dışa, açıkta içe) — `--nx-glow-sm` token'ları bunu zaten taşıyor. */
  /* 🔴 `--nx-space-2xs` TANIMSIZDI — merdivende yok (taban `xs: 4px`), yani bu
     kabın dolgusu ve boşluğu HİÇ uygulanmıyordu (token kapısı 17 Eyl'de yakaladı).
     `giris.html` ile birlikte yedi yerde ölüydü. HATALARIM §95 sınıfı. */
  .gr-tema { justify-self: center; display: inline-flex; gap: var(--nx-space-xs);
             padding: var(--nx-space-xs); border-radius: var(--nx-radius-full);
             background: var(--nx-surface-2);
             /* Gösterge `::before` ile geliyor ⇒ kap konumlandırılmış olmalı. */
             position: relative; }

  /* ⭐⭐ SEÇİM DOLGUSU KAYARAK GEÇER (Efe kuralı, 19 Ağu 2026 — burada 17 Eyl'de
     uygulandı). ⚠️ Bu blok `giris.html` ile BİREBİR aynı ve bu bilinçli:
     kalıbı tabana çıkarmak `catal-kapisi`na takılıyor (dondurulmuş 12 dosya),
     ekran-yerel iki kopya ise ölçülebilir ve `butunluk-tip-birligi-ogrenci`
     aletinin kapsamında. ⛔ Biri değişirse ÖTEKİ DE değişmeli.
     🔴 Düzeltilen kusur: dolgu bir düğmeden **yok olup** komşusunda **beliriyordu**
       (0 ms). Animasyon kalite ölçütü **O5 — fiziksel devamlılık**.
       → [[karar-animasyon-kalite-olcutu]] */
  .gr-tema::before {
    content: "";
    position: absolute; z-index: 0; pointer-events: none;
    top: 0; left: 0;
    width: var(--nx-seg-w, 0px);
    height: var(--nx-seg-h, 0px);
    transform: translate(var(--nx-seg-x, 0px), var(--nx-seg-y, 0px));
    background: var(--nx-dolgu);
    border-radius: var(--nx-radius-full);
    box-shadow: var(--nx-glow-md);
  }
  .gr-tema.is-gosterge-hazir::before {
    transition: transform var(--nx-dur-base) var(--nx-ease),
                width     var(--nx-dur-base) var(--nx-ease);
  }
  @media (prefers-reduced-motion: reduce) {
    .gr-tema.is-gosterge-hazir::before { transition: none; }
  }

  .gr-tema__dugme {
    width: var(--nx-tap-min); height: var(--nx-tap-min);
    display: inline-flex; align-items: center; justify-content: center;
    border: 0; background: none; border-radius: var(--nx-radius-full);
    color: var(--nx-muted); cursor: pointer; padding: 0;
    /* Düğme göstergenin ÜSTÜNDE kalmalı, yoksa dolgu ikonu yutar. */
    position: relative; z-index: 1;
  }
  .gr-tema__dugme .nx-icon { width: var(--nx-ikon-md); height: var(--nx-ikon-md); }
  .gr-tema__dugme:hover { color: var(--nx-text); }
  .gr-tema__dugme:focus-visible { outline: 2px solid var(--nx-accent-on); outline-offset: 2px; }
  /* ⭐ O3 BÜTÜNLÜK: ikon rengi göstergeyle AYNI sürede döner. */
  .gr-tema__dugme,
  .gr-tema__dugme .nx-icon { transition: color var(--nx-dur-base) var(--nx-ease); }
  .gr-tema__dugme[aria-pressed="true"] {
    /* ⚠️ `--nx-on-dolgu` TANIMSIZDI (aynı hatanın ikinci kopyası — bkz. kimlik.html
       `.aura-cta`). Tanımsız token sessizce miras alınan renge düşer; doğru ad
       `--nx-dolgu-yazi` (iki temada da ink, dolgu kuralının kendisi).
       🔴 `background` ve `box-shadow` BURADAN KALKTI — artık `::before` taşıyor. */
    color: var(--nx-dolgu-yazi);
  }

  /* Yasal okuyucu — girişteki panelin KOPYASI (`giris.html` `.gr-panel`, Tur B L-91 S1, 1 Eki 2026).
     İki tüketicili kalıp ⇒ BÜTÜNLÜK DEFTERİ'nde «taban adayı» (tabana `nxYasal` terfisi ayrı karar). */
  .gr-panel { display: flex; flex-direction: column; gap: var(--nx-space-md);
              padding: var(--nx-space-lg); text-align: left; }
  .gr-panel[hidden] { display: none; }
  .gr-panel__baslik { font-size: var(--nx-fs-h3); font-weight: var(--nx-fw-bold); }
  .gr-panel__baslik:focus-visible { outline: 2px solid var(--nx-accent-on);
                                    outline-offset: 2px; }
  .gr-panel__uyari { font-size: var(--nx-fs-body-sm); color: var(--nx-muted);
                     line-height: var(--nx-lh-body); }
  .gr-panel__liste { margin: 0; padding-left: 1.15em; display: flex;
                     flex-direction: column; gap: var(--nx-space-xs);
                     font-size: var(--nx-fs-body-sm); color: var(--nx-text);
                     line-height: var(--nx-lh-body); }
