:root { color-scheme: light; --green:#1e9e6b; --ink:#14213d; --muted:#5b6070; --line:#dfe3ec; --lime:#34d399; }
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:#eef3ef; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
.login-shell { min-height:100vh; display:grid; grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr); }
.login-brand { position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; padding:clamp(38px,7vw,90px); color:white; background:radial-gradient(circle at 15% 15%,rgba(30,158,107,.28),transparent 30%),linear-gradient(150deg,#1e9e6b,#14213d); }
.login-brand::after { content:""; position:absolute; right:-130px; bottom:-130px; width:420px; height:420px; border:1px solid rgba(52,211,153,.1); border-radius:50%; box-shadow:0 0 0 55px rgba(52,211,153,.025),0 0 0 110px rgba(52,211,153,.018); }
.login-logo { position:relative; z-index:1; display:flex; align-items:center; gap:13px; }
.login-logo img { width:104px; height:104px; filter:drop-shadow(0 10px 20px rgba(52,211,153,.18)); }
.login-logo strong,.login-logo small { display:block; }
.login-logo strong { font-size:24px; font-weight:800; letter-spacing:-.03em; }
.login-logo small { margin-top:3px; color:#8fb3a7; font-size:10px; letter-spacing:.02em; }
.login-brand > p { margin:22px 0 8px; color:#a9c8bc; font-size:12px; font-weight:900; letter-spacing:.16em; }
.login-brand h1 { position:relative; z-index:1; max-width:560px; margin:0; font-size:clamp(30px,4vw,54px); line-height:1.08; letter-spacing:-.045em; }
.login-flow { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:34px 0; }
.login-flow span { padding:11px 13px; border:1px solid rgba(255,255,255,.13); border-radius:9px; color:#d5e4de; background:rgba(255,255,255,.05); font-size:12px; }
.login-brand small { color:#9eb9af; line-height:1.6; }
.login-card { align-self:center; width:min(460px,calc(100% - 40px)); margin:auto; padding:38px; border:1px solid var(--line); border-radius:20px; background:white; box-shadow:0 24px 65px rgba(20,48,38,.12); }
.eyebrow { margin:0 0 7px; color:var(--green); font-size:11px; font-weight:900; letter-spacing:.14em; }
h2 { margin:0; font-size:27px; letter-spacing:-.035em; }
.form-help,#loading-state p { margin:9px 0 24px; color:var(--muted); font-size:13px; line-height:1.55; }
label { display:block; margin-top:14px; color:#405049; font-size:12px; font-weight:750; }
input { display:block; width:100%; min-height:48px; margin-top:6px; padding:11px 13px; border:1px solid #cad6cf; border-radius:11px; outline:none; font:inherit; font-size:15px; transition:border-color .15s, box-shadow .15s; }
input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(30,158,107,.14); }
/* Türkçe alan doğrulama hataları (giriş formu) — SPRINT 7.2'deki .field-invalid/.field-error
   deseniyle aynı isimlendirme, login.css'e kendi renk değerleriyle uyarlanmış. */
input[aria-invalid="true"] { border-color:#9d302c; }
.field-error { display:none; margin-top:5px; color:#9d302c; font-size:11.5px; font-weight:600; line-height:1.4; }
.field-invalid .field-error { display:block; }
button { width:100%; min-height:50px; margin-top:22px; border:0; border-radius:11px; color:white; background:linear-gradient(135deg,var(--green),#16855d); font:inherit; font-weight:850; font-size:15px; cursor:pointer; box-shadow:0 12px 26px rgba(30,158,107,.28); transition:transform .15s, box-shadow .15s; }
button:hover { transform:translateY(-1px); box-shadow:0 16px 32px rgba(30,158,107,.34); }
button:disabled { cursor:wait; opacity:.65; transform:none; }
/* Parola göster/gizle (reset-password.html) — kayit.html'deki AYNI ikon-buton deseni, login
   sayfasının kendi input boyutuna (min-height:48px) uyarlanmış. */
.password-field { position:relative; }
.password-field label { display:block; }
.password-field button { position:absolute; right:8px; bottom:8px; width:34px; height:34px; margin:0; border:0; border-radius:8px; background:transparent; color:var(--muted); font-size:16px; line-height:1; box-shadow:none; cursor:pointer; }
.password-field button:hover { background:#eef3f0; transform:none; box-shadow:none; }
/* FAZ: Şifremi Unuttum — parola alanının altında, sağa hizalı, giriş butonundan ayrık (12px üst boşluk). */
.forgot-password-link { margin:10px 0 0; text-align:right; }
.forgot-password-link a { display:inline-block; padding:12px 2px; margin:-12px -2px; color:var(--green); font-size:12.5px; font-weight:750; text-decoration:none; }
.forgot-password-link a:hover, .forgot-password-link a:focus-visible { text-decoration:underline; }
.forgot-password-link a:focus-visible { outline:2px solid var(--green); outline-offset:2px; border-radius:4px; }
.auth-error { margin-top:15px; padding:11px; border-radius:8px; color:#9d302c; background:#ffebe9; font-size:12px; }.auth-alt { margin:16px 0 0; color:var(--muted); font-size:12.5px; text-align:center; }
.auth-alt a { color:var(--green); font-weight:750; text-decoration:none; }
.auth-alt a:hover { text-decoration:underline; }
.hidden { display:none !important; }
@media(max-width:780px){
  .login-shell{grid-template-columns:1fr}
  .login-brand{padding:26px 24px 44px;min-height:auto}
  .login-logo img{width:56px;height:56px}
  .login-logo strong{font-size:20px}
  .login-brand > p{margin:16px 0 6px;font-size:11px}
  .login-brand h1{font-size:23px;line-height:1.15}
  .login-flow{display:none}
  .login-brand small{display:none}
  .login-card{position:relative;z-index:2;width:calc(100% - 32px);margin:-24px auto 26px;padding:26px 22px;border-radius:22px 22px 20px 20px;box-shadow:0 -6px 20px rgba(20,48,38,.04),0 24px 55px rgba(20,48,38,.16)}
}
