/* Auth presentation uses the shared Roots & Talks tokens; no marketing layout. */
@layer rt.page {
  .rt-auth-page { min-block-size: 100vh; min-block-size: 100svh; display: flex; flex-direction: column; background: var(--rt-surface-default); }
  .rt-auth-header { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 28px 40px; }
  .rt-auth-brand { display: flex; align-items: center; min-block-size: 44px; }
  .rt-auth-brand img { inline-size: 208px; block-size: auto; }
  .rt-auth-home { display: inline-flex; align-items: center; gap: 9px; justify-self: start; min-block-size: 44px; color: var(--rt-text-secondary); text-decoration: none; font-size: 15px; font-weight: 700; }
  .rt-auth-home > span:first-child { font-size: 23px; }
  .rt-auth-languages { justify-self: end; display: flex; padding: 3px; border: 1px solid var(--rt-border-subtle); border-radius: 100px; }
  .rt-auth-languages a { min-inline-size: 44px; min-block-size: 40px; display: grid; place-items: center; border-radius: 100px; font-size: 13px; font-weight: 800; text-decoration: none; color: var(--rt-text-secondary); }
  .rt-auth-languages a[aria-current] { color: var(--rt-action-secondary-text); background: var(--rt-action-secondary-bg); }
  .rt-auth-main { inline-size: 100%; padding: 36px 24px 38px; flex: 1; }
  .rt-auth-card { inline-size: 100%; max-inline-size: 476px; margin-inline: auto; padding: 34px 36px 30px; border: 1px solid var(--rt-border-subtle); border-radius: 28px; background: var(--rt-surface-default); }
  .rt-auth-card h1 { text-align: center; font-size: 32px; line-height: 1.2; font-weight: 800; letter-spacing: -.025em; }
  .rt-auth-intro { text-align: center; margin: 12px 0 28px; color: var(--rt-text-secondary); font-size: 16px; line-height: 1.55; }
  .rt-auth-form { display: grid; gap: 19px; }
  .rt-auth-field { display: grid; gap: 7px; }
  .rt-auth-field > label { font-size: 14px; font-weight: 800; color: var(--rt-text-heading); }
  .rt-auth-field input { inline-size: 100%; min-inline-size: 0; block-size: 54px; border: 1px solid var(--rt-border-strong); border-radius: 12px; background: var(--rt-surface-default); padding: 0 15px; font: inherit; font-size: 16px; color: var(--rt-text-primary); box-shadow: none; }
  .rt-auth-field input::placeholder { color: var(--rt-text-secondary); opacity: 1; }
  .rt-auth-field input:hover { border-color: var(--rt-text-secondary); }
  .rt-auth-field input:focus { border-color: var(--rt-border-focus); outline: 3px solid var(--rt-action-quiet-bg-hover); outline-offset: 1px; }
  .rt-auth-field input[aria-invalid=true] { border-color: var(--rt-status-error-fg); }
  .rt-auth-field-error { font-size: 13px; color: var(--rt-status-error-fg); line-height: 1.45; }
  /* Faz 2 grup B (2026-09-16): yeni şifre sayfasının kural satırı (reset-password.php, aria-describedby). */
  .rt-auth-field-hint { font-size: 13px; color: var(--rt-text-secondary); line-height: 1.45; }
  .rt-auth-password { position: relative; }
  .rt-auth-password input { padding-inline-end: 54px; }
  .rt-auth-eye { position: absolute; inset-inline-end: 4px; inset-block-start: 5px; display: grid; place-items: center; inline-size: 44px; block-size: 44px; padding: 10px; background: transparent; border: 0; border-radius: 9px; color: var(--rt-text-secondary); cursor: pointer; }
  .rt-auth-eye:hover { background: var(--rt-action-quiet-bg-hover); }
  .rt-auth-eye svg { inline-size: 23px; block-size: 23px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
  .rt-auth-eye-slash { display: none; }
  .rt-auth-eye[aria-pressed=true] .rt-auth-eye-slash { display: block; }
  .rt-auth-options { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-block: -7px -3px; font-size: 13px; }
  .rt-auth-remember { display: inline-flex; align-items: center; gap: 8px; min-block-size: 44px; cursor: pointer; color: var(--rt-text-secondary); }
  .rt-auth-remember > label { display: inline-flex; align-items: center; gap: 8px; min-block-size: 44px; cursor: pointer; }
  .rt-auth-remember input[type=checkbox] { inline-size: 18px; block-size: 18px; margin: 0; accent-color: var(--rt-action-secondary-bg); }
  .rt-auth-options a { display: inline-flex; align-items: center; min-block-size: 44px; font-weight: 800; color: var(--rt-text-link); text-decoration: none; }
  /* Sitedeki dokunsal birincil düğme standardı (2026-09-14): kontur + sert gölge, hover yükselir, basınca oturur. */
  .rt-auth-submit { display: block; inline-size: 100%; min-block-size: 54px; border: 1.6px solid var(--rt-action-ink); border-radius: 100px; padding: 13px 20px; background: var(--rt-action-primary-bg); color: var(--rt-action-primary-text); box-shadow: 3px 3px 0 0 var(--rt-action-ink); font: inherit; font-size: 17px; font-weight: 800; line-height: 1.5; cursor: pointer; }
  .rt-auth-submit:hover { background: var(--rt-action-primary-bg-hover); }
  @media (prefers-reduced-motion: no-preference) {
    .rt-auth-submit { transition: transform 120ms ease, box-shadow 120ms ease; }
    .rt-auth-submit:hover { transform: translate(-1px, -1px); box-shadow: 4px 4px 0 0 var(--rt-action-ink); }
    .rt-auth-submit:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 0 var(--rt-action-ink); }
  }
  .rt-auth-submit:disabled { cursor: wait; opacity: .66; transform: none; box-shadow: 3px 3px 0 0 var(--rt-action-ink); }
  .rt-auth-divider { display: flex; align-items: center; gap: 16px; margin-block: 22px; font-size: 13px; color: var(--rt-text-secondary); }
  .rt-auth-divider::before, .rt-auth-divider::after { content: ''; block-size: 1px; flex: 1; background: var(--rt-border-subtle); }
  .rt-auth-providers { display: grid; gap: 10px; }
  .rt-auth-provider { display: flex; align-items: center; justify-content: center; gap: 12px; min-block-size: 52px; padding: 12px 16px; border: 1px solid var(--rt-border-strong); border-radius: 100px; color: var(--rt-text-primary); font-size: 15px; font-weight: 800; text-decoration: none; }
  .rt-auth-provider:hover { background: var(--rt-action-quiet-bg-hover); border-color: var(--rt-border-focus); }
  .rt-auth-provider svg { inline-size: 22px; block-size: 22px; flex: 0 0 22px; }
  .rt-auth-new { text-align: center; font-size: 14px; margin: 24px 0 0; color: var(--rt-text-secondary); line-height: 1.8; }
  .rt-auth-new a { display: inline-block; font-weight: 800; color: var(--rt-text-link); text-underline-offset: 3px; }
  .rt-auth-help { display: flex; align-items: center; justify-content: center; gap: 8px; inline-size: fit-content; min-block-size: 44px; margin: 20px auto 0; font-size: 14px; font-weight: 700; color: var(--rt-text-secondary); text-decoration: none; }
  .rt-auth-help span { display: grid; place-items: center; inline-size: 20px; block-size: 20px; border: 1px solid currentColor; border-radius: 50%; font-size: 12px; }
  .rt-auth-footer { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 24px; padding: 18px 24px 24px; font-size: 12px; color: var(--rt-text-secondary); }
  .rt-auth-footer nav { display: flex; gap: 20px; }
  .rt-auth-footer a { display: inline-flex; align-items: center; min-block-size: 32px; color: inherit; text-decoration: none; }
  .rt-auth-back { display: flex; align-items: center; justify-content: center; gap: 8px; min-block-size: 44px; margin-block-start: 22px; font-size: 14px; font-weight: 800; text-decoration: none; color: var(--rt-text-link); }
  .rt-auth-feedback, .rt-auth-flash { margin-block: 0 20px; padding: 12px 14px; border-radius: 12px; color: var(--rt-status-error-fg); background: var(--rt-status-error-bg); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
  .rt-auth-feedback[data-state=success] { background: var(--rt-status-success-bg); color: var(--rt-status-success-fg); }
  .rt-auth-resend { margin-block: -8px 20px; padding: 8px 0; min-block-size: 44px; background: transparent; border: 0; font: inherit; font-size: 14px; font-weight: 800; color: var(--rt-text-link); text-decoration: underline; cursor: pointer; }
  .rt-auth-captcha { display: flex; justify-content: center; }
  .rt-auth-page [hidden] { display: none !important; }
  .rt-auth-page a:hover { text-decoration: underline; text-underline-offset: 4px; }
  .rt-auth-page :is(a,button):focus-visible { outline: 3px solid var(--rt-border-focus); outline-offset: 3px; }
  @media (max-width: 600px) {
    .rt-auth-header { padding: 19px 20px; gap: 12px; grid-template-columns: 1fr auto; }
    .rt-auth-home { display: none; }
    .rt-auth-brand { grid-column: 1; grid-row: 1; }
    .rt-auth-brand img { inline-size: 178px; max-inline-size: 100%; }
    .rt-auth-languages { grid-column: 2; grid-row: 1; }
    .rt-auth-languages a { min-inline-size: 36px; min-block-size: 36px; font-size: 12px; }
    .rt-auth-main { padding: 21px 20px 28px; }
    .rt-auth-card { padding: 26px 22px; border-radius: 22px; }
    .rt-auth-card h1 { font-size: 28px; }
    .rt-auth-intro { font-size: 15px; margin-block-end: 24px; }
    .rt-auth-options { font-size: 12px; gap: 8px; }
    .rt-auth-footer { padding-inline: 16px; gap: 0 16px; }
  }
  @media (max-width: 359px) {
    .rt-auth-header { padding-inline: 16px; }
    .rt-auth-brand img { inline-size: 154px; }
    .rt-auth-main { padding-inline: 12px; }
    .rt-auth-card { padding-inline: 16px; }
    .rt-auth-options { flex-wrap: wrap; }
    .rt-auth-captcha { justify-content: start; transform: scale(.88); transform-origin: left top; inline-size: 113.64%; margin-block-end: -9px; }
  }
}

/* GIRIS-TEK-EKRAN-2026-10-02:BASLANGIC
   =============================================================================
   GİRİŞ KAPISI TEK EKRAN (Claude, 2026-10-02; aday giris-tek-ekran-2026-10-02). Owner 02.10 ~19:5x (birebir, giriş sayfasının
   ekran görüntüsüyle): "BU SAYFANIIN UX-UI Saas düzeni de berbat. sayfayı aşağıya kaydırmama gerek kalmamalı. tek sayfa olmalı
   burası. gereksiz ağıya uzatma olmuş."
   NEDEN UZUYORDU: bütün dikey ölçüler uzun ekrana göre SABİT px'ti (üst satır 104, ana alan dolgusu 36 + 38, giriş kartı 664,
   yardım bağlantısı kartın altında ikinci ızgara satırı 64, alt bilgi 74) ve görüntü alanı yüksekliğine hiç bakmıyordu: giriş
   sayfası her ekranda 980 px'ti (Owner'ın 1536 × 730 görüntü alanında 250 px taşma). 1100 px altında ana alan ayrıca süs çizimi
   için 7rem (112 px) şerit ayırıyordu. Marka paneli yüksekliğini kartın İÇERİĞİNDEN alıyordu.
   KAPSAM: yalnız guest-user kabuğu (giriş, şifremi unuttum, yeni şifre, e-posta ekleme): _header.php gövdeye rt-auth-page--fit
   ekler. Öğretmen başvurusu da auth.css ve aynı sınıfları kullanır ama bu sınıfı taşımaz; görünümü DEĞİŞMEZ.
   - 768 px ve üstü: gövde üç satırlık ızgaradır (üst satır · ana alan 1fr · alt bilgi), en az 100svh. Dikey aralıklar görüntü
     alanı YÜKSEKLİĞİNE bağlıdır: --rt-auth-fit 640 px yükseklikte 0px, 900 px ve üstünde 1px; her aralık "kısa değer + fark ×
     --rt-auth-fit" ile iki uç arasında doğrusal büyür, 900 px'te eski ölçülere döner. Hiçbir öğe gizlenmez, kaydırma KİLİTLENMEZ
     (overflow yok): içerik sığmazsa (yakınlaştırma %200, çok kısa pencere, açık hata iletisi) sayfa yine kayar.
   - 1024 px ve üstü: form kartı ve marka paneli YAN YANA; ikisi de ana alanın kullanılabilir yüksekliğini doldurur (en çok 44rem,
     uzun ekranda ortada), kartın içeriği dikeyde ortalanır. Yardım bağlantısı kartın altındaki ikinci satırdan panelin alt
     başlangıç köşesine geçer (açık renk, odak halkası beyaz): sol sütun yalnız karttır. DOM ve sekme sırası değişmez
     (kart → yardım → alt bilgi). rt.css paneli ancak 1100 px'te çizer; 1024–1099 px'te panel burada çizilir (rt.css 5. bölümün
     aynı bildirimleri), kart 452 ve panel 340 px'tir: sağ alttaki sohbet düğmesi panele binmez; bu aralıkta panel süsü çizilmez.
   - 768–1023 px: tek sütun; kart ve yardım ortada, süs çizimi ana alanın alt başlangıç köşesinde kartın yanında (7rem şerit yok).
   - 768 px altı (telefon): DEĞİŞMEDİ (kaydırma serbest; form ve "Giriş yap" ilk ekranda, panel çizilmez).
   Dokunma hedefleri: dil bağlantıları 40 → 44 px, alt bilgi bağlantıları 32 → 44 px; alanlar ve düğmeler en az 46 px (hata
   iletisi görünürken en az 44 px).
   ============================================================================= */
@layer rt.page {
  .rt-auth-page--fit { --rt-auth-fit: clamp(0px, calc((100vh - 640px) / 260), 1px); }
  @supports (height: 100svh) {
    .rt-auth-page--fit { --rt-auth-fit: clamp(0px, calc((100svh - 640px) / 260), 1px); }
  }

  @media (min-width: 768px) {
    body.rt-auth-page--fit { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; }
    .rt-auth-page--fit > .rt-auth-header { grid-row: 1; padding-block: calc(6px + var(--rt-auth-fit) * 18); }
    .rt-auth-page--fit .rt-auth-languages a { min-block-size: 44px; }
    .rt-auth-page--fit > .rt-auth-main {
      grid-row: 2; display: flex; flex-direction: column; justify-content: center;
      padding-block: calc(6px + var(--rt-auth-fit) * 18);
    }
    /* rt.css süs bloğu 1100 px altında ana alanın altına 7rem şerit ayırır (aynı özgüllük, auth.css sonra yüklenir). */
    body.rt-auth-page--fit > .rt-auth-main.rt-bg-host { padding-block-end: calc(6px + var(--rt-auth-fit) * 18); }
    .rt-auth-page--fit > .rt-auth-footer { grid-row: 3; padding-block: calc(var(--rt-auth-fit) * 15); }
    .rt-auth-page--fit .rt-auth-footer a { min-block-size: 44px; }

    .rt-auth-page--fit .rt-auth-card { padding-block: calc(18px + var(--rt-auth-fit) * 16) calc(16px + var(--rt-auth-fit) * 14); }
    .rt-auth-page--fit .rt-auth-card h1 { font-size: calc(26px + var(--rt-auth-fit) * 6); }
    .rt-auth-page--fit .rt-auth-intro { margin-block: calc(6px + var(--rt-auth-fit) * 6) calc(12px + var(--rt-auth-fit) * 16); }
    .rt-auth-page--fit .rt-auth-feedback,
    .rt-auth-page--fit .rt-auth-flash { margin-block-end: calc(12px + var(--rt-auth-fit) * 8); }
    .rt-auth-page--fit .rt-auth-resend { margin-block-end: calc(12px + var(--rt-auth-fit) * 8); }
    .rt-auth-page--fit .rt-auth-form { gap: calc(10px + var(--rt-auth-fit) * 9); }
    .rt-auth-page--fit .rt-auth-field { gap: calc(5px + var(--rt-auth-fit) * 2); }
    .rt-auth-page--fit .rt-auth-field input { block-size: calc(46px + var(--rt-auth-fit) * 8); }
    /* Göz düğmesi (44 px) alan ne boyda olursa olsun dikeyde ortadadır (eski 5 px yalnız 54 px'lik alanda ortalıyordu). */
    .rt-auth-page--fit .rt-auth-eye { inset-block-start: 50%; translate: 0 -50%; }
    .rt-auth-page--fit .rt-auth-submit { min-block-size: calc(46px + var(--rt-auth-fit) * 8); padding-block: calc(9px + var(--rt-auth-fit) * 4); }
    .rt-auth-page--fit .rt-auth-divider { margin-block: calc(10px + var(--rt-auth-fit) * 12); }
    .rt-auth-page--fit .rt-auth-provider { min-block-size: calc(46px + var(--rt-auth-fit) * 6); padding-block: 8px; }
    .rt-auth-page--fit .rt-auth-new { margin-block-start: calc(10px + var(--rt-auth-fit) * 14); }
    .rt-auth-page--fit .rt-auth-back { margin-block-start: calc(12px + var(--rt-auth-fit) * 10); }
    .rt-auth-page--fit .rt-auth-help { margin-block-start: calc(4px + var(--rt-auth-fit) * 16); }
    /* Hata görünürken (sunucu iletisi, alan hataları, doğrulama postasını yeniden gönder) kartın iç aralıkları en sıkı ölçüye iner
       (-0,25: alanlar ve düğmeler 46 − 8 × 0,25 = 44 px, altına inmez): ileti satırları kaydırma doğurmadan sığar (Owner'ın 730 px
       yüksekliğinde dört durumun dördü de). Hata gösterimi değişmez; yalnız aralık. :has() yoksa kural düşer, sayfa yalnız kayar. */
    .rt-auth-page--fit .rt-auth-card:has(.rt-auth-feedback:not([hidden]), .rt-auth-field-error:not([hidden]), .rt-auth-resend:not([hidden])) {
      --rt-auth-fit: -0.25px;
    }
  }

  @media (min-width: 1024px) {
    .rt-auth-page--fit .rt-auth-stage {
      --rt-auth-story-pad: 40px;
      min-block-size: min(100%, 44rem);
      grid-template-columns: minmax(0, 476px) minmax(0, 420px);
      grid-template-rows: 1fr;
      grid-template-areas: "card story";
      justify-content: center; column-gap: clamp(2rem, 1rem + 2vw, 3.5rem);
    }
    .rt-auth-page--fit .rt-auth-stage > .rt-auth-card {
      grid-area: card; align-self: stretch; margin-inline: 0;
      display: flex; flex-direction: column; justify-content: center;
    }
    /* Kart artık esnek sütun: satır içi blok "yeniden gönder" düğmesi eskisi gibi başlangıçta kalır (tam genişliğe yayılmaz). */
    .rt-auth-page--fit .rt-auth-card > .rt-auth-resend { align-self: flex-start; }
    .rt-auth-page--fit .rt-auth-stage > .rt-auth-story {
      grid-area: story; align-self: stretch;
      padding: calc(56px + var(--rt-auth-fit) * 8) var(--rt-auth-story-pad);
    }
    .rt-auth-page--fit .rt-auth-stage > .rt-auth-help {
      grid-area: story; align-self: end; justify-self: start;
      position: relative; z-index: 1;
      margin: 0 0 calc(8px + var(--rt-auth-fit) * 12); margin-inline-start: var(--rt-auth-story-pad);
      color: var(--rt-c-navy-on-dark);
      --rt-border-focus: var(--rt-c-white);
    }
    .rt-auth-page--fit .rt-auth-main.rt-bg-host > .rt-bg--auth-page { display: none; }
  }

  @media (min-width: 1024px) and (max-width: 1099.98px) {
    .rt-auth-page--fit .rt-auth-stage {
      --rt-auth-story-pad: 32px;
      grid-template-columns: minmax(0, 452px) minmax(0, 340px); column-gap: 2rem;
    }
    .rt-auth-page--fit .rt-auth-stage > .rt-auth-card { padding-inline: 24px; }
    .rt-auth-page--fit .rt-auth-story {
      position: relative; isolation: isolate; overflow: hidden;
      display: flex; flex-direction: column; justify-content: center; gap: var(--rt-sp-4);
      border-radius: 28px;
      background-color: var(--rt-c-navy-deep); color: var(--rt-c-white);
      box-shadow: calc(var(--rt-offset-3, 6px) * var(--rt-dir, 1)) var(--rt-offset-3, 6px) 0 0 var(--rt-c-lime);
    }
  }
}
/* GIRIS-TEK-EKRAN-2026-10-02:BITIS */
