/* ==========================================================================
   EstoriX — Sade kurumsal giriş · 20.10.2026
   Kullananlar: login.php, logintr.php (inc/estorix_auth_banka.php) ve verify.php.
   Kabuk: inc/estorix_auth_sade.php
   Dil: banka girişi gibi — ince beyaz üst çubuk, açık gri zemin, ortada tek beyaz kart,
   lacivert ana düğme, tek satır alt bilgi. Süs yok; bir ekranda bir iş.
   ========================================================================== */

:root {
  --as-lacivert: #0F3460;
  --as-lacivert-2: #0B2848;
  --as-vurgu: #1D5FD1;
  --as-halka: rgba(29, 95, 209, .16);
  --as-zemin: #F3F5F8;
  --as-kart: #FFFFFF;
  --as-m: #0F1B2D;
  --as-m2: #44546A;
  --as-soluk: #6B7A8F;
  --as-c: #D5DCE5;
  --as-c2: #E6EAF0;
  --as-hata: #B42318;
  --as-hata-z: #FEF3F2;
  --as-hata-c: #F7C9C4;
  --as-ok: #067647;
  --as-ok-z: #ECFDF3;
  --as-ok-c: #B5EBCB;
  --as-r: 6px;
  --as-r2: 10px;
}

html { -webkit-text-size-adjust: 100%; }
body.auth-sade {
  margin: 0; min-height: 100vh;
  background: var(--as-zemin); color: var(--as-m);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 14px; line-height: 1.5;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
body.auth-sade *, body.auth-sade *::before, body.auth-sade *::after { box-sizing: border-box; }
body.auth-sade button { font-family: inherit; }
body.auth-sade a { -webkit-tap-highlight-color: transparent; }

.as-kok { min-height: 100vh; display: flex; flex-direction: column; }

/* ── Üst çubuk ─────────────────────────────────────────────────────────── */
.as-ust { background: #fff; border-bottom: 1px solid var(--as-c2); }
.as-ust-ic {
  max-width: 1120px; margin: 0 auto; height: 64px; padding: 0 24px;
  display: flex; align-items: center; gap: 16px;
}
.as-logo { display: inline-flex; align-items: center; text-decoration: none; }
.as-ust-etiket {
  padding-left: 16px; border-left: 1px solid var(--as-c);
  font-size: 13px; font-weight: 600; color: var(--as-m2);
}
.as-ust-sag { margin-left: auto; display: flex; align-items: center; gap: 20px; font-size: 13px; color: var(--as-m2); }
.as-guvenli, .as-tel { display: inline-flex; align-items: center; gap: 7px; }
.as-guvenli i { color: var(--as-ok); font-size: 12px; }
.as-tel { color: var(--as-m2); text-decoration: none; font-weight: 600; }
.as-tel i { color: var(--as-soluk); }
.as-tel:hover { color: var(--as-lacivert); }

/* Electron: trafik ışıkları sağ üstte — çubuk sürükleme alanı + sağ boşluk */
body.has-traffic-lights .as-ust { -webkit-app-region: drag; }
body.has-traffic-lights .as-ust a, body.has-traffic-lights .as-ust button { -webkit-app-region: no-drag; }
body.has-traffic-lights .as-ust-ic { padding-right: 150px; max-width: none; }
body.has-traffic-lights .sd-traffic-lights-root.sd-traffic-lights--right { top: 18px; }

/* ── Orta alan + kart ──────────────────────────────────────────────────── */
.as-ana {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 48px 16px 40px;
}
.as-kart {
  width: 100%; max-width: 420px;
  background: var(--as-kart); border: 1px solid var(--as-c2); border-radius: var(--as-r2);
  box-shadow: 0 1px 2px rgba(15, 27, 45, .04), 0 12px 32px -16px rgba(15, 27, 45, .18);
  padding: 36px 36px 32px;
}
.as-kart h1 { margin: 0; font-size: 22px; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; color: var(--as-m); }
.as-kart-alt { margin: 6px 0 24px; font-size: 14px; color: var(--as-soluk); }
.as-kart-alt b { display: inline-block; max-width: 100%; color: var(--as-m); font-weight: 600; overflow-wrap: anywhere; }
.as-ikon {
  width: 48px; height: 48px; border-radius: 50%; margin-bottom: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #EAF0FA; color: var(--as-lacivert); font-size: 20px;
}

.as-mesaj {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 12px 14px; margin: 0 0 20px; border-radius: var(--as-r); border: 1px solid; font-size: 13.5px;
}
.as-mesaj i { margin-top: 2px; }
.as-mesaj p { margin: 0; }
.as-mesaj p + p { margin-top: 4px; }
.as-mesaj.is-hata { background: var(--as-hata-z); border-color: var(--as-hata-c); color: var(--as-hata); }
.as-mesaj.is-ok { background: var(--as-ok-z); border-color: var(--as-ok-c); color: var(--as-ok); }

/* ── Form ─────────────────────────────────────────────────────────────── */
.as-alan { margin-bottom: 18px; }
.as-etiket-sira { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.as-etiket { display: block; font-size: 13px; font-weight: 600; color: var(--as-m); }
.as-etiket-sira .as-etiket { margin: 0; }
.as-alan > .as-etiket { margin-bottom: 7px; }
.as-girdi { position: relative; }
.as-girdi .form-input {
  width: 100%; height: 48px; padding: 0 14px;
  border: 1px solid var(--as-c); border-radius: var(--as-r); background: #fff;
  font: inherit; font-size: 15px; color: var(--as-m);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.as-girdi .form-input::placeholder { color: #9AA6B6; }
.as-girdi .form-input:hover { border-color: #B9C3D0; }
.as-girdi .form-input:focus { outline: none; border-color: var(--as-vurgu); box-shadow: 0 0 0 3px var(--as-halka); }
.as-girdi .form-input[aria-invalid="true"] { border-color: var(--as-hata); }
.as-girdi .form-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(180, 35, 24, .14); }
.as-girdi.has-goz .form-input { padding-right: 48px; }
.as-girdi .password-toggle {
  position: absolute; top: 4px; right: 4px; width: 40px; height: 40px;
  border: 0; background: transparent; border-radius: var(--as-r); cursor: pointer;
  color: var(--as-soluk); font-size: 15px;
}
.as-girdi .password-toggle:hover { color: var(--as-m); background: #F1F4F8; }
.as-girdi .password-toggle:focus-visible { outline: 2px solid var(--as-vurgu); outline-offset: 0; }

.form-hint { margin: 0; font-size: 12.5px; color: var(--as-hata); display: none; }
.form-hint.is-shown { display: block; margin-top: 6px; }
.as-caps { margin: 6px 0 0; font-size: 12.5px; color: #B54708; display: flex; gap: 6px; align-items: center; }
.as-caps[hidden] { display: none; }

.as-link { color: var(--as-vurgu); text-decoration: none; font-weight: 600; font-size: 13px; }
.as-link:hover { text-decoration: underline; }

.as-hatirla { display: inline-flex; align-items: center; gap: 9px; margin: 2px 0 22px; cursor: pointer; font-size: 13.5px; color: var(--as-m2); user-select: none; }
.as-hatirla input { width: 18px; height: 18px; margin: 0; accent-color: var(--as-lacivert); cursor: pointer; }

.as-gonder {
  width: 100%; height: 48px; border: 0; border-radius: var(--as-r);
  background: var(--as-lacivert); color: #fff; cursor: pointer;
  font: inherit; font-size: 15px; font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  transition: background .15s ease, transform .1s ease;
}
.as-gonder:hover:not(:disabled) { background: var(--as-lacivert-2); }
.as-gonder:focus-visible { outline: none; box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--as-vurgu); }
.as-gonder.is-pressed { transform: scale(.99); }
.as-gonder:disabled { background: #9AA6B6; cursor: not-allowed; }
.as-gonder.is-busy { opacity: .8; pointer-events: none; }

.as-ayrac { height: 1px; background: var(--as-c2); margin: 24px 0 16px; }
.as-kart-son { margin: 0; text-align: center; font-size: 13.5px; color: var(--as-soluk); }

/* Kart altı güvenlik notu */
.as-not {
  max-width: 420px; width: 100%; margin: 18px 0 0;
  display: flex; gap: 8px; align-items: flex-start; justify-content: center; text-align: center;
  font-size: 12.5px; color: var(--as-soluk);
}
.as-not i { color: var(--as-ok); margin-top: 2px; }

/* ── Doğrulama kodu (verify.php) ───────────────────────────────────────── */
.as-kod { display: flex; gap: 8px; justify-content: space-between; margin: 0 0 14px; }
.as-kod .code-input {
  width: 100%; max-width: 52px; height: 56px; padding: 0;
  border: 1px solid var(--as-c); border-radius: var(--as-r); background: #fff;
  text-align: center; font: inherit; font-size: 22px; font-weight: 600; color: var(--as-m);
  font-variant-numeric: tabular-nums;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.as-kod .code-input:focus { outline: none; border-color: var(--as-vurgu); box-shadow: 0 0 0 3px var(--as-halka); }
.as-kod.is-hata .code-input { border-color: var(--as-hata); }
.as-sure { margin: 0 0 22px; font-size: 13px; color: var(--as-soluk); display: flex; align-items: center; gap: 7px; }
.as-sure b { color: var(--as-m); font-variant-numeric: tabular-nums; }
.as-sure.is-bitti { color: var(--as-hata); }

/* ── Alt bilgi ─────────────────────────────────────────────────────────── */
.as-alt {
  display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; justify-content: center;
  padding: 20px 16px 24px; font-size: 12.5px; color: var(--as-soluk);
}
.as-alt nav { display: flex; gap: 20px; }
.as-alt a { color: var(--as-soluk); text-decoration: none; }
.as-alt a:hover { color: var(--as-m); text-decoration: underline; }

/* ── Parola sıfırlama penceresi (inc/estorix_password_reset_modal.php) ──── */
body.auth-sade .pr-modal { border-radius: var(--as-r2); }
body.auth-sade .pr-modal .pr-btn { border-radius: var(--as-r); height: 48px; }
body.auth-sade .pr-modal .pr-btn-primary,
body.auth-sade .pr-modal .pr-btn-primary:hover:not(:disabled) { background: var(--as-lacivert); }
body.auth-sade .pr-modal .form-input { height: 48px; border-radius: var(--as-r); border-color: var(--as-c); }
body.auth-sade .pr-modal .form-input:focus { border-color: var(--as-vurgu); box-shadow: 0 0 0 3px var(--as-halka); outline: none; }

/* ── Duyarlı ───────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .as-ust-ic { height: 56px; padding: 0 16px; gap: 12px; }
  .as-ust-etiket, .as-tel span, .as-guvenli { display: none; }
  .as-logo .exl { --exl-h: 22px !important; }
  .as-ust-sag { gap: 14px; }
  .as-ana { justify-content: flex-start; padding: 24px 16px 24px; }
  .as-kart { padding: 28px 20px 24px; }
  .as-kod { gap: 6px; }
  .as-kod .code-input { height: 52px; font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  body.auth-sade *, body.auth-sade *::after { transition: none !important; animation: none !important; }
}
