/* ESHIK · P5.4 · S3 Doğrulama hatası — KEŞİF PROTOTİPİ. Onaylı tasarım değildir.
   threshold-light.css / .js P5.1 referansıyla bayt bayt aynıdır ve değiştirilmez (GÖNDER butonu).
   Bu dosya: (1) gösterim sayfası, (2) metin alanı ve doğrulama hatası.
   Kurallar: yalnız dört MASTER rengi · hata göstergesi grafit, safran yok · form ve hata bilgisi kireç yüzeyde ·
   saydamlık, yeni renk, sallama ya da animasyon yok (hata anında görünür, düzeltilince anında kalkar) ·
   alan odağında ve hover'da safran yok (ön karar 5; M33 istisnası form alanını kapsamaz). */

*, *::before, *::after { box-sizing:border-box; }
:root { --olive:#6A7840; --chalk:#ECEBE6; --graphite:#3B3F39; --saffron:#E1A623; color-scheme:light; }
html { background:var(--chalk); color:var(--graphite); }
body { margin:0; font:400 16px/1.55 Manrope, sans-serif; -webkit-font-smoothing:antialiased; }
.k { font:400 10.5px/1.5 Michroma, sans-serif; letter-spacing:.14em; text-transform:uppercase; font-kerning:none; }
.flag { display:inline-block; padding:4px 8px 3px; border:1px solid currentColor; font:400 9px/1.3 Michroma, sans-serif; letter-spacing:.12em; text-transform:uppercase; font-kerning:none; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip { position:absolute; left:16px; top:-80px; z-index:50; background:var(--graphite); color:var(--chalk); padding:12px 16px; font-weight:600; }
.skip:focus { top:10px; outline:2px solid var(--graphite); outline-offset:2px; }
.bar { min-height:56px; display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; padding:8px clamp(16px, 4vw, 48px); background:var(--chalk); border-bottom:1px solid var(--graphite); }
.bar .brand { font:400 12px/1 Michroma, sans-serif; letter-spacing:.14em; font-kerning:none; white-space:nowrap; }
.bar .flag { margin-left:auto; }
.wrap { padding:0 clamp(16px, 4vw, 48px); }
.head { padding:clamp(32px, 5vh, 64px) 0 12px; }
.head h1 { font:600 clamp(30px, 4vw, 52px)/1.06 Syne, Manrope, sans-serif; letter-spacing:-.012em; margin:12px 0 0; }
.head p { margin:10px 0 0; max-width:56em; font-size:14px; }
h2.sec { font:600 clamp(24px, 2.6vw, 32px)/1.15 Syne, Manrope, sans-serif; margin:44px 0 6px; }
.lead { margin:0 0 12px; max-width:60em; font-size:14px; }
.notes { margin:12px 0 0; padding-left:18px; max-width:64em; font-size:13.5px; }
.notes li { margin-bottom:5px; }
footer { padding:40px 0 64px; font-size:12.5px; line-height:1.6; max-width:70em; }

/* gösterim denetimleri (yalnız demo; tasarımın parçası değildir) */
.ctl { display:flex; flex-wrap:wrap; gap:10px 12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--graphite); }
.btn { font:600 12.5px/1 Manrope, sans-serif; min-height:36px; padding:0 14px; border:1px solid var(--graphite); background:var(--graphite); color:var(--chalk); cursor:pointer; }
.btn.ghost { background:none; color:var(--graphite); }
.btn:focus { outline:none; }
.btn:focus-visible { outline:2px solid transparent; box-shadow:0 0 0 2px var(--chalk), 0 0 0 4px var(--graphite); }
.demo-st { margin:0; font-size:13.5px; }
.demo-st:empty { display:none; }
table.cmp { width:100%; max-width:64em; border-collapse:collapse; font-size:13.5px; }
table.cmp th, table.cmp td { text-align:left; vertical-align:top; padding:7px 10px 7px 0; border-top:1px solid var(--graphite); }
table.cmp thead th { border-top:0; font-weight:600; }
.cmp-wrap { overflow-x:auto; }

/* ---------- sahne: zeytin atmosfer, form kireç yüzeyde ---------- */
.stage { padding:clamp(28px, 5vw, 56px) clamp(16px, 5vw, 56px) clamp(32px, 5vw, 64px); }
.stage-h { margin:0 0 20px; font:600 32px/1.15 Syne, Manrope, sans-serif; } /* zeytinde yalnız ≥ 24 px metin */
.card { max-width:560px; padding:32px 32px 24px; }
.req { margin:0 0 24px; font-size:16px; }

/* ---------- metin alanı ---------- */
/* alan: etiket → (ipucu) → giriş → (hata). Giriş kutusu 1 px grafit çerçeve + 2 px alt eşik. */
.f { display:grid; gap:8px; margin:0 0 24px; }
.f-lbl { font:600 16px/1.3 Manrope, sans-serif; }
.f-hint { margin:0; font:400 16px/1.45 Manrope, sans-serif; }
.f-in { display:block; width:100%; height:52px; margin:0; padding:0 14px; border:1px solid var(--graphite); border-bottom-width:2px; border-radius:0;
  background:var(--chalk); color:var(--graphite); font:400 18px/1.3 Manrope, sans-serif; -webkit-appearance:none; appearance:none; }
.f-in:focus { outline:2px solid transparent; outline-offset:3px; box-shadow:0 0 0 3px var(--chalk), 0 0 0 5px var(--graphite); } /* P5.1 odak halkasıyla aynı ölçü; safran yok */
/* tarayıcı otomatik doldurması: Chromium (Chrome / Edge) doldurulan alana UA stilinde !important ile açık mavi zemin verir (#E8F0FE);
   yazar CSS'i background-color ile bunu ezemez. İçe gölge zemini kireçle örter, metin grafit kalır. Otomatik doldurma işlevi açık kalır.
   Seçiciler ayrı kurallarda: desteklenmeyen bir seçici bütün kuralı geçersiz kılmasın. */
.f-in:-webkit-autofill { box-shadow:inset 0 0 0 100px var(--chalk); -webkit-text-fill-color:var(--graphite); caret-color:var(--graphite); }
.f-in:autofill { box-shadow:inset 0 0 0 100px var(--chalk); -webkit-text-fill-color:var(--graphite); caret-color:var(--graphite); }
.f-in:-webkit-autofill:focus { box-shadow:inset 0 0 0 100px var(--chalk), 0 0 0 3px var(--chalk), 0 0 0 5px var(--graphite); }
.f-in:autofill:focus { box-shadow:inset 0 0 0 100px var(--chalk), 0 0 0 3px var(--chalk), 0 0 0 5px var(--graphite); }

/* ---------- doğrulama hatası ---------- */
/* giriş: üst / sol / sağ çerçeve 1 px kalır, alt eşik 4 px (yükseklik sabit) */
.f.is-err .f-in { border-bottom-width:4px; }
/* mesaj: grafit ünlem + sorun (600) + düzeltme (400); girişin hemen altında, hizalı */
.f-err { display:flex; align-items:flex-start; gap:10px; margin:0; font:400 16px/1.45 Manrope, sans-serif; color:var(--graphite); }
.f-err[hidden] { display:none; }
.f-mark { flex:none; width:6px; height:20px; margin-top:1.6px; fill:currentColor; } /* ünlem: 4 px çubuk + 4 px nokta (eşik kalınlığı) */
.f-err-t { min-width:0; max-width:36em; }
.f-err-t b { font-weight:600; }

.card .tl { margin:8px 0 0 -16px; }

/* ---------- kart üstü: zorunluluk notu ve arayüz dili ---------- */
.card-top { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:12px 16px; margin:0 0 24px; }
.card-top .req { margin:0; }
.lang { display:inline-flex; margin:0; padding:0; min-width:0; border:1px solid var(--graphite); }
.lang label { position:relative; display:inline-flex; align-items:center; min-height:36px; padding:0 12px; font:600 14px/1 Manrope, sans-serif; cursor:pointer; }
.lang label + label { border-left:1px solid var(--graphite); }
.lang input { position:absolute; inset:0; margin:0; border:0; background:none; color:inherit; -webkit-appearance:none; appearance:none; cursor:pointer; } /* görünmez ama tıklanabilir; saydamlık kullanılmaz */
.lang label:has(input:checked) { background:var(--graphite); color:var(--chalk); }
.lang label:has(input:focus-visible) { outline:2px solid transparent; box-shadow:0 0 0 2px var(--chalk), 0 0 0 4px var(--graphite); z-index:1; }

/* ---------- telefon: ülke seçici + numara (tek fieldset) ---------- */
fieldset.f { margin:0 0 24px; padding:0; border:0; min-width:0; }
fieldset.f > legend { padding:0; margin:0 0 8px; }
.f-phone { gap:16px; }
.cc, .f-num { display:grid; grid-template-columns:minmax(0, 1fr); gap:8px; min-width:0; }
.f-tel .f-in { width:0; }
.f-sub { font:400 16px/1.3 Manrope, sans-serif; }
.f-note { margin:0; font:400 16px/1.45 Manrope, sans-serif; }
.f-note[hidden] { display:none; }

/* ülke kutusu: bayrak · ad + arama kodu (aranabilir metin kutusu) · liste düğmesi */
.cc { position:relative; }
.cc-box { display:flex; align-items:center; height:52px; border:1px solid var(--graphite); border-bottom-width:2px; background:var(--chalk); }
.cc-box:focus-within { outline:2px solid transparent; outline-offset:3px; box-shadow:0 0 0 3px var(--chalk), 0 0 0 5px var(--graphite); }
.cc-flag { flex:none; margin-left:14px; --CountryFlagIcon-height:16px; box-shadow:0 0 0 1px var(--graphite); }   /* bayrak: dar kapsamlı renk istisnası */
.cc-in { flex:1; width:0; min-width:0; height:100%; margin:0; padding:0 8px 0 12px; border:0; border-radius:0; background:transparent; color:var(--graphite); font:400 18px/1.3 Manrope, sans-serif; outline:none; text-overflow:ellipsis; }
.cc-in::placeholder { color:var(--graphite); opacity:1; } /* tarayıcının gri yer tutucusu marka dışı; yalnız arama kutusu boşken görünür */
.cc-btn { flex:none; align-self:stretch; display:grid; place-items:center; width:48px; margin:0; padding:0; border:0; background:none; color:var(--graphite); cursor:pointer; }
.cc-btn svg { width:12px; height:8px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:square; }
.cc.is-open .cc-btn svg { transform:scaleY(-1); }
.cc-list { position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:20; max-height:min(320px, 50vh); overflow-y:auto; overscroll-behavior:contain; margin:0; padding:4px 0; list-style:none;
  background:var(--chalk); border:1px solid var(--graphite); border-bottom-width:2px; }
.cc-list[hidden] { display:none; }
.cc-opt { display:flex; align-items:center; gap:10px; min-height:44px; padding:6px 14px 6px 10px; font:400 16px/1.3 Manrope, sans-serif; cursor:pointer; }
.cc-chk { flex:none; width:13px; height:11px; visibility:hidden; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:square; }
.cc-opt[aria-selected="true"] .cc-chk { visibility:visible; }
.cc-oflag { flex:none; --CountryFlagIcon-height:14px; box-shadow:0 0 0 1px var(--graphite); }
.cc-name { flex:1; min-width:0; }
.cc-code { flex:none; font-variant-numeric:tabular-nums; }
.cc-opt.is-active { background:var(--graphite); color:var(--chalk); }      /* etkin seçenek: ters yüzey; safran yok */
.cc-opt.is-active .cc-oflag { box-shadow:0 0 0 1px var(--chalk); }
.cc-empty { padding:10px 14px; font:400 16px/1.3 Manrope, sans-serif; }

/* numara kutusu: arama kodu öneki + giriş; çerçeve kutunun kendisinde */
.f-tel { display:flex; align-items:stretch; height:52px; border:1px solid var(--graphite); border-bottom-width:2px; background:var(--chalk); }
.f-pre { flex:none; display:flex; align-items:center; padding:0 12px 0 14px; border-right:1px solid var(--graphite); font:400 18px/1 Manrope, sans-serif; font-variant-numeric:tabular-nums; }
.f-tel .f-in, .f.is-err .f-tel .f-in { flex:1; min-width:0; height:auto; border:0; padding:0 14px; }
.f-tel .f-in:focus { box-shadow:none; }
.f-tel:focus-within { outline:2px solid transparent; outline-offset:3px; box-shadow:0 0 0 3px var(--chalk), 0 0 0 5px var(--graphite); }
.f.is-err .f-tel { border-bottom-width:4px; }
.f-tel .f-in:-webkit-autofill, .f-tel .f-in:-webkit-autofill:focus { box-shadow:inset 0 0 0 100px var(--chalk); }
.f-tel .f-in:autofill, .f-tel .f-in:autofill:focus { box-shadow:inset 0 0 0 100px var(--chalk); }

/* ---------- azaltılmış hareket ---------- */
/* alan ve hata hiç geçiş kullanmaz; P5.1 butonu kendi kuralını uygular */
@media (prefers-reduced-motion: reduce) { .f *, .f { transition:none !important; animation:none !important; } }

/* ---------- forced-colors ---------- */
@media (forced-colors: active) {
  .f-in:focus { outline:3px solid CanvasText; outline-offset:3px; }
  .btn:focus-visible { outline:3px solid CanvasText; outline-offset:2px; }
  .cc-box:focus-within, .f-tel:focus-within { outline:3px solid CanvasText; outline-offset:3px; }
  .cc-opt.is-active { forced-color-adjust:none; background:Highlight; color:HighlightText; }
  .lang label:has(input:checked) { forced-color-adjust:none; background:Highlight; color:HighlightText; }
  .lang label:has(input:focus-visible) { outline:3px solid CanvasText; outline-offset:2px; }
}

@media (max-width: 559.98px) {
  .bar .flag { display:none; }
  .bar .brand { font-size:10.5px; }
  .stage-h { font-size:28px; }
  .card { padding:24px 16px 16px; }
  .card .tl { margin-left:-12px; } /* P5.1 dar ekran iç boşluğu 12 px: etiket alan kenarına hizalı */
}
