/* ============================================================
   DYS - PUBLIC KIMLIK YUZEYI (giris, etkinlestirme, admin)
   DYS UI VISUAL STANDARD: dark navy academic SaaS.

   ⛔ DIS BAGIMLILIK YOK: harici yazi tipi, CDN, arka plan gorseli,
      UI cercevesi veya animasyon kutuphanesi KULLANILMAZ (CSP 'self').
      Derinlik etkisi saf CSS gradyan ve golgeyle uretilir; boylece
      sayfa agir gorsel indirmeden acilir ve cevrimdisi da dogru gorunur.
   ⛔ Bu dosya YALNIZCA kimlik ekranlarinda yuklenir; yonetici kabugu
      `dys.css` ile calismaya devam eder (gerileme yuzeyi yok).
   ============================================================ */

:root{
  --auth-bg-0:#070b14;
  --auth-bg-1:#0d1526;
  --auth-bg-2:#122038;
  --auth-card:#111a2bdd;
  --auth-card-line:#ffffff1f;
  --auth-fg:#eef2f8;
  --auth-muted:#9fb0c9;
  --auth-primary:#2f7df6;
  --auth-primary-hi:#4d93ff;
  --auth-primary-fg:#ffffff;
  --auth-focus:#7fb2ff;
  --auth-err:#ff9b9b;
  --auth-err-bg:#3a1a1e;
  --auth-ok:#8ee0b0;
  --auth-ok-bg:#12291f;
  --auth-radius:16px;
}

/* ⛔ Kutu modeli: bu dosya `dys.css`ten BAGIMSIZ yuklenir, dolayisiyla
   `box-sizing` kuralini KENDISI tanimlamalidir. Eksikligi 560px'lik karti
   gercek tarayicida 630px yapiyordu (2026-09-19'da olculdu). */
.auth-body,.auth-body *,.auth-body *::before,.auth-body *::after{
  box-sizing:border-box;
}

html{overflow-x:hidden}

.auth-body{
  margin:0;
  overflow-x:hidden;
  min-height:100dvh;
  color:var(--auth-fg);
  background:
    radial-gradient(1100px 620px at 12% -10%, #1d3a6b3d 0%, transparent 60%),
    linear-gradient(160deg, var(--auth-bg-0) 0%, var(--auth-bg-1) 52%, var(--auth-bg-2) 100%);
  font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  -webkit-font-smoothing:antialiased;
  display:flex;
  flex-direction:column;
}

/* Soyut isik/egri: tek bir sozde eleman, gorsel dosyasi yok. */
.auth-body::before{
  content:"";
  position:fixed;
  inset:-12vh 0 auto 0;
  height:70vh;
  pointer-events:none;
  background:
    radial-gradient(60% 55% at 22% 20%, #2f7df62e 0%, transparent 70%),
    radial-gradient(45% 45% at 82% 8%, #37d0c72b 0%, transparent 72%);
  filter:blur(2px);
}
.auth-body::after{
  content:"";
  position:fixed;
  left:0; right:0; bottom:-38vh;
  height:70vh;
  pointer-events:none;
  border-radius:50%;
  background:radial-gradient(closest-side, #2f7df614, transparent 70%);
}

.auth-shell{
  position:relative;
  z-index:1;
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:32px 16px 40px;      /* 320px'te bile yatay tasma yok */
}

.auth-brand{
  font-size:1.5rem;
  font-weight:700;
  letter-spacing:.18em;
  margin:0 0 22px;
  color:#ffffff;
  text-align:center;
}

.auth-card{
  width:100%;
  max-width:560px;
  background:var(--auth-card);
  border:1px solid var(--auth-card-line);
  border-radius:var(--auth-radius);
  padding:36px 34px 32px;
  box-shadow:0 26px 60px -22px #000000b8, 0 2px 0 #ffffff0d inset;
  backdrop-filter:blur(10px);
}

.auth-card h1{
  margin:0 0 8px;
  font-size:1.45rem;
  font-weight:650;
  letter-spacing:-.01em;
}
.auth-lead{
  margin:0 0 26px;
  color:var(--auth-muted);
  font-size:.96rem;
}

.auth-field{display:block;margin-bottom:18px}
.auth-field > span{
  display:block;
  margin-bottom:7px;
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--auth-muted);
}
.auth-input{
  width:100%;
  min-height:48px;
  padding:12px 14px;
  color:var(--auth-fg);
  background:#0a1120c7;
  border:1px solid #ffffff26;
  border-radius:10px;
  font:inherit;
}
.auth-input::placeholder{color:#7387a3}
.auth-input:hover{border-color:#ffffff3d}

/* Gorunur odak: klavye gezinmesi icin ZORUNLU. */
.auth-input:focus-visible,
.auth-btn:focus-visible,
.auth-link:focus-visible,
.auth-check input:focus-visible{
  outline:3px solid var(--auth-focus);
  outline-offset:2px;
}

.auth-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:48px;                /* dokunma hedefi */
  padding:12px 18px;
  border:1px solid transparent;
  border-radius:10px;
  font:inherit;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
  background:var(--auth-primary);
  color:var(--auth-primary-fg);
  transition:background .15s ease, transform .15s ease;
}
.auth-btn:hover{background:var(--auth-primary-hi)}
.auth-btn:active{transform:translateY(1px)}

.auth-btn.secondary{
  background:#ffffff0f;
  color:var(--auth-fg);
  border-color:#ffffff2e;
}
.auth-btn.secondary:hover{background:#ffffff1c}

.auth-sep{
  display:flex;
  align-items:center;
  gap:14px;
  margin:28px 0 22px;
  color:#ffffff1f;
}
.auth-sep::before,.auth-sep::after{
  content:"";flex:1;height:1px;background:currentColor;
}
.auth-sep span{
  color:var(--auth-muted);font-size:.78rem;letter-spacing:.12em;
}

.auth-secondary-block{text-align:center}
.auth-secondary-block p{margin:0 0 6px;font-weight:600;font-size:.98rem}
.auth-secondary-block .auth-lead{margin-bottom:16px}

.auth-foot{
  margin-top:26px;
  text-align:center;
  font-size:.9rem;
}
.auth-link{color:#a9c6f2;text-decoration:none;border-radius:6px;padding:4px 6px}
.auth-link:hover{text-decoration:underline}

.auth-note{
  border-radius:10px;
  padding:12px 14px;
  margin:0 0 20px;
  font-size:.92rem;
  border:1px solid #ffffff24;
  background:#ffffff0a;
  color:var(--auth-fg);
}
.auth-note.err{background:var(--auth-err-bg);border-color:#ff9b9b47;color:var(--auth-err)}
.auth-note.ok{background:var(--auth-ok-bg);border-color:#8ee0b047;color:var(--auth-ok)}

.auth-check{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:22px;
  font-size:.96rem;
}
.auth-check input{
  width:22px;height:22px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--auth-primary);
}

/* --- adim gostergesi --------------------------------------------------- */
.auth-steps{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 24px;
  padding:0;
  list-style:none;
  font-size:.78rem;
  color:var(--auth-muted);
}
.auth-steps li{
  display:flex;align-items:center;gap:7px;
  padding:5px 11px 5px 6px;
  border:1px solid #ffffff1c;
  border-radius:999px;
}
.auth-steps b{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;border-radius:50%;
  background:#ffffff14;color:var(--auth-muted);
  font-size:.72rem;font-weight:700;
}
.auth-steps li[aria-current="step"]{
  border-color:#2f7df68a;color:var(--auth-fg);background:#2f7df61f;
}
.auth-steps li[aria-current="step"] b{background:var(--auth-primary);color:#fff}
.auth-steps li[data-done="1"] b{background:#8ee0b029;color:var(--auth-ok)}

.auth-legal{margin-top:20px;font-size:.82rem;color:var(--auth-muted)}
.auth-legal a{color:#a9c6f2}

/* --- kucuk ekran ------------------------------------------------------- */
@media (max-width:420px){
  .auth-shell{padding:22px 12px 30px}
  .auth-card{padding:26px 20px 24px;border-radius:14px}
  .auth-card h1{font-size:1.28rem}
}

/* --- hareket azaltma tercihi ------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .auth-btn{transition:none}
  .auth-btn:active{transform:none}
}

/* --- yuksek karsitlik --------------------------------------------------- */
@media (prefers-contrast: more){
  .auth-card{background:#0a1120;border-color:#ffffff66}
  .auth-lead,.auth-steps,.auth-legal{color:#d6e2f2}
}
