/* ===========================================================================
   Başvuru formu — /basvuru
   ---------------------------------------------------------------------------
   Form YENİDEN YAZILMADI. 810 satırlık işaretleme çok sayıda koşul taşıyor
   (üye girişli/girişsiz akış, 18 yaş altı için veli alanları, TC/YKN tipi,
   kaynak seçimi + "diğer", üç onay metni, reCAPTCHA). Yeniden yazmak bu
   mantığı kırma riski taşıdığı için yapı korunup Bulma varsayılanları
   tasarım sistemine bağlandı.

   Kurallar `.bv` altında kapsanıyor; Bulma'nın `.input`, `.select`,
   `.notification` sınıfları sitenin başka yerlerinde de kullanılıyor ve
   genel bir ezme onları da bozardı.
   =========================================================================== */

/* Gövde tam siyah — YALNIZCA bu sayfada.
   `bodyClass` bölümüyle gövdeye `is-bg-black` ekleniyor (bkz.
   layout/template.php). Sayfanın varsayılan zemini #0b0c0c'ye yakın bir koyu
   gri; TFE görselinin renkli kanatları onun üstünde soluk duruyordu. */
/* Kısayol ŞART, `background-color` yetmiyor: gövdede
   `linear-gradient(to right, #232526, #111212)` bir background-image var ve
   rengin üstünü örtüyor. `background: #000` görseli de sıfırlayıp gerçekten
   tam siyah veriyor. */
body.is-bg-black { background: #000 !important; }
body.is-bg-black main { background: transparent; }

/* --- Arka plan ------------------------------------------------------------
   `data-background` işleyicisi arka planı SATIR İÇİ olarak `cover` yazıyor;
   ezmek için !important şart. `cover` görselin kenarlarını kırpıyordu,
   `contain` tamamını gösterip sayfaya oturtuyor. */
.bv.auth-wrapper {
    background-size: contain !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
}

/* Eski giriş düzeni kartı GÖRÜNTÜ ALANININ DİKEY ORTASINA yaslıyordu
   (`.single-form-wrap { min-height: 690px; align-items: center }`). Kahraman
   alanı kabın içine alındıktan sonra bu ortalama, marka ile kart arasındaki
   boşluğu içerik yüksekliğine göre değiştiriyordu: uzun form ekranında 64px,
   kısa sonuç ekranında 171px. İki ekran yan yana gezildiğinde başlangıçları
   aynı, gövdeleri kaymış görünüyordu. Akış yukarıdan aşağı sabitlendi. */
.bv .single-form-wrap {
    display: block;
    min-height: 0;
}

/* --- Sayfa başlığı (HERO) --------------------------------------------------
   Program sayfasındaki `.tfe-hero` ile AYNI ritim: üst boşluk, şerit → marka
   aralığı ve marka → içerik aralığı birebir aynı değerlerde. İki sayfa arka
   arkaya gezildiğinde başlangıç hizası oynamıyor.
   Not: `.auth-wrapper`ın kendi `m-t-100` sınıfı zaten 100px veriyor; kalan
   36px burada tamamlanıyor (8,5rem = 136px). */
.bv-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    /* Üst boşluğun TAMAMI burada: kap artık marj taşımıyor, böylece arka plan
       görseli program sayfasındaki gibi y=0'dan başlıyor ve iki sayfanın
       kahraman başlangıcı birebir aynı. */
    padding: var(--tfe-hero-ust, 8.5rem) 0 0;
}
/* Program markası ortak `.tfe-mark` plakasında (partials/tfe_mark.php);
   `.bv-logo` yalnız geriye dönük uyumluluk için duruyor. */
/* Program sayfasındaki `.tfe-hero > .tfe-brands` ile AYNI merdiven basamağı. */
.bv-head .tfe-brands { margin: 0 auto var(--tfe-blok, 2rem); }
/* Marka → kart: bir BÖLÜM sınırı (program sayfasında kahramanın alt boşluğu da
   aynı jeton). Ölçümde 40px idi; kart kahramana yapışık duruyordu.
   Şablonun `.inner-wrap` kabı kendi 40px'lik üst marjını taşıyordu — merdivende
   olmayan bir ara değer ve boşluğu iki yere bölüyordu. Marj sıfırlandı,
   boşluğun tamamı burada. */
.bv-head .tfe-mark { margin: 0 auto var(--tfe-bolum, 4rem); }
/* main.css seçicisi `.auth-wrapper .single-form-wrap .inner-wrap` (0,3,0) —
   eşleşmek için kapsam aynı derinlikte yazılıyor. */
.bv.auth-wrapper .single-form-wrap .inner-wrap { margin-top: 0; }
/* Kart içi başlık — form ekranındaki "Başvuru Formu" başlığıyla aynı ölçek. */
.bv-card-baslik {
    margin: 0 0 var(--tfe-ogr, 1rem);
    color: #fff;
    font-size: clamp(1.25rem, 2.4vw, 1.6rem);
    font-weight: 800;
    letter-spacing: -.01em;
    text-align: center;
}
.bv-logo { display: block; max-width: 420px; margin: 0 auto 1.75rem; height: auto; }
.bv-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .3rem .8rem;
    margin-bottom: 1rem;
    border-radius: 999px;
    border: 1px solid rgba(243, 122, 82, .35);
    background: rgba(243, 122, 82, .1);
    color: #ffbe9c;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.bv-eyebrow svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* --- Kart ----------------------------------------------------------------- */
.bv .form-card {
    max-width: 820px;
    margin: 0 auto;
    padding: 1.9rem 2rem 2rem !important;
    border-radius: 1.5rem !important;
    border: 1px solid #1f2222;
    background: rgba(255, 255, 255, .022) !important;
    -webkit-backdrop-filter: blur(16px) saturate(130%);
            backdrop-filter: blur(16px) saturate(130%);
    box-shadow: 0 40px 80px -50px rgba(0, 0, 0, .95);
}

/* İş birliği logoları şeridi */
.bv .form-card > div:first-child {
    border-radius: 1rem !important;
    border-color: #1f2222 !important;
}

/* Form başlığı — ince Bulma başlığı yerine markanın ağırlığı. */
.bv .bv-form-baslik,
.bv #preview_course {
    color: #fff !important;
    font-family: "Montserrat", sans-serif;
    font-size: 1.45rem !important;
    font-weight: 800 !important;
    letter-spacing: -.02em;
    /* 1,1rem / 1,4rem idi — merdivende olmayan ara değerler. */
    padding-bottom: var(--tfe-ogr, 1rem) !important;
    margin-bottom: var(--tfe-orta, 1.5rem) !important;
    border-bottom: 1px solid #1f2222;
}

/* --- Alanlar -------------------------------------------------------------- */
.bv .label {
    color: #9aa1a1 !important;
    font-size: .78rem !important;
    font-weight: 600 !important;
    letter-spacing: .04em;
    margin-bottom: .3rem !important;
}
/* Dikey ritim.
   Yatay satırlarda (`.field.is-horizontal > .field-body > .field`) iç ve dış
   `.field`ın alt boşluğu ÜST ÜSTE BİNİYORDU: satırlardan sonra 66px, tek
   alanlardan sonra 43px boşluk kalıyor, form hem seyrek hem düzensiz
   duruyordu. İç alanların boşluğu sıfırlandı, ritim tek yerden veriliyor. */
/* Alanlar arası: aynı grubun öğeleri (.85rem = 13,6px idi). */
.bv .field { margin-bottom: var(--tfe-ogr, 1rem); }
.bv .field-body .field { margin-bottom: 0; }
.bv .field-body { gap: var(--tfe-orta, 1.5rem); }

/* Bulma'nın beyaz `.input`u koyu sayfada göz alıyordu. */
.bv .input,
.bv .select select,
.bv textarea {
    width: 100%;
    height: 48px;
    padding: 0 1rem !important;
    border-radius: .75rem !important;
    border: 1px solid #262b2b !important;
    background-color: #0e1212 !important;
    box-shadow: none !important;
    color: #e9eded !important;
    font-size: .94rem !important;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.bv .input::placeholder, .bv textarea::placeholder { color: #5f6666 !important; }
.bv .input:hover, .bv .select select:hover { border-color: #313737 !important; }
.bv .input:focus,
.bv .select select:focus,
.bv textarea:focus {
    border-color: rgba(243, 122, 82, .75) !important;
    /* Odak yalnızca kenar rengiyle yeterince belli olmuyordu. */
    box-shadow: 0 0 0 3px rgba(243, 122, 82, .16) !important;
    outline: none;
}
/* Tarih alanının tarayıcı ikonu koyu zeminde görünmüyordu. */
.bv input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(.75); cursor: pointer; }

/* Alan içi ikonlar */
.bv .control.has-icons-left .icon,
.bv .control.has-icons-right .icon { height: 48px !important; width: 44px; color: #5f6666 !important; }
.bv .control.has-icons-left .input { padding-left: 2.75rem !important; }
.bv .control.has-icons-right .input { padding-right: 2.75rem !important; }
.bv .icon svg { width: 17px; height: 17px; }

/* Seçim kutusu — kendi oku */
.bv .select { width: 100%; height: 48px; }
.bv .select:not(.is-multiple):not(.is-loading)::after {
    border-color: #9aa1a1;
    right: 1.1rem;
    z-index: 2;
}
.bv .select select { appearance: none; }

/* Hata metni */
.bv .text-danger { display: block; margin-top: .35rem; color: #ff9d8a !important; font-size: .78rem; }
/* Hata kutusu boşken hiç yer kaplamasın: `margin-top` boş bir blokta da
   uygulanıyor ve alanlar arasına görünmez bir boşluk ekliyordu. Bu yüzden
   yatay satırlardan sonraki aralık tek alanlardakinden 6px fazlaydı. */
.bv .text-danger:empty { display: none; }

/* --- Bilgi kutuları ------------------------------------------------------- */
.bv .notification {
    border-radius: 1rem !important;
    border: 1px solid #262b2b;
    background: rgba(255, 255, 255, .03) !important;
    color: #c5cbcb !important;
    font-size: .9rem;
}
.bv .notification strong { color: #fff; }
.bv .notification.is-danger { border-color: rgba(255, 157, 138, .35); background: rgba(255, 96, 72, .08) !important; color: #ffc9be !important; }
.bv .notification.is-success { border-color: rgba(253, 168, 113, .35); background: rgba(243, 122, 82, .08) !important; color: #ffd0ae !important; }
.bv .notification .delete { background-color: rgba(255, 255, 255, .12); }

/* --- Onay satırları ------------------------------------------------------- */
.bv .setting-item { margin-bottom: var(--tfe-yakin, .5rem); }
.bv .setting-meta span { color: #9aa1a1; font-size: .84rem; line-height: 1.65; }
.bv .setting-meta a { color: #ffbe9c; font-weight: 600; }
.bv .setting-meta a:hover { color: #fda871; }

/* --- Bağlantılar ---------------------------------------------------------- */
.bv a:not(.button):not(.bv-btn) { color: #ffbe9c; }
.bv a:not(.button):not(.bv-btn):hover { color: #fda871; }

/* --- Gönder düğmesi ------------------------------------------------------- */
.bv #btn_register,
.bv .button.is-primary,
.bv button[type="submit"] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    height: 50px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(243, 122, 82, .55) !important;
    background: linear-gradient(96deg,
        rgba(253, 168, 113, .12) 0%, rgba(243, 122, 82, .12) 45%, rgba(236, 56, 125, .12) 100%) !important;
    box-shadow: none !important;
    color: #fff !important;
    font-size: .96rem !important;
    font-weight: 700 !important;
    transition: background .25s ease, border-color .25s ease;
}
.bv #btn_register:hover,
.bv .button.is-primary:hover,
.bv button[type="submit"]:hover {
    border-color: rgba(253, 168, 113, .95) !important;
    background: linear-gradient(96deg,
        rgba(253, 168, 113, .38) 0%, rgba(243, 122, 82, .38) 45%, rgba(236, 56, 125, .38) 100%) !important;
}

@media screen and (max-width: 768px) {
    .bv .form-card { padding: 1.3rem 1.15rem 1.5rem !important; border-radius: 1.15rem !important; }
    .bv .field-body { gap: 0; }
    .bv-logo { max-width: 280px; }
}

/* Kırılım kuralı YOK: merdiven jetonları public-ui.css'te kırılıyor
   (`--tfe-hero-ust` ≤1023, `--tfe-bolum` ≤767) ve buradaki her kural o
   jetonlara baktığı için başvuru ekranları program sayfasıyla otomatik aynı
   ritimde kalıyor. Eskiden burada tek bir 768px eşiği ve elle yazılmış
   1,75/1,35/1,5rem değerleri vardı; tablet aralığında iki sayfa farklı
   boşluklara düşüyordu. */

/* Yeni yardımcılar (form revizyonu) */
.bv-program-bag { margin: var(--tfe-ogr, 1rem) 0; color: #9aa1a1; font-size: .88rem; line-height: 1.7; text-align: center; }
.bv-program-bag a { color: #ffbe9c; font-weight: 600; }
.bv-yardim { display: block; margin-top: .3rem; color: #7f8686; font-size: .76rem; line-height: 1.5; }
/* `position: relative`: bulma-tooltip kutusu simgeye göre konumlansın —
   konumlanmış ata olmadığında balon uzaktaki bir kutuya göre hizalanıyor ve
   dar ekranda görüntü alanının dışına taşabiliyordu. */
.bv-ipucu { position: relative; display: inline-flex; align-items: center; margin-left: .3rem; color: #8a9191; cursor: help; vertical-align: -2px; }
.bv-ipucu:hover, .bv-ipucu:focus-visible { color: #ffbe9c; outline: none; }
.bv-veli {
    padding: 1rem 1.1rem .35rem;
    border-radius: .9rem;
    border: 1px solid rgba(251, 191, 36, .22);
    background: rgba(251, 191, 36, .06);
}
.bv-veli[hidden] { display: none; }
.bv-veli-baslik { display: flex; align-items: center; gap: .45rem; margin: 0 0 var(--tfe-ogr, 1rem); color: #e7cf9d; font-size: .82rem; font-weight: 700; }
.bv-veli-baslik svg { width: 15px; height: 15px; }
.bv-gonder-not { margin: var(--tfe-yakin, .5rem) 0 0; color: #7f8686; font-size: .78rem; text-align: center; }
.bv-gonder-not[hidden] { display: none; }

/* Dar ekran: yan yana alanlar alt alta insin. Bulma'nın kendi kuralı
   `.field-body`ye flex verip bırakıyor; buradaki `gap` ile birlikte satır
   304px kutuda 24px taşıyordu (ölçüldü). */
@media screen and (max-width: 768px) {
    .bv .field.is-horizontal .field-body { flex-direction: column; gap: 0; }
    .bv .field.is-horizontal .field-body .field { margin-bottom: var(--tfe-ogr, 1rem); }
}

/* Alt bağlantı satırı — üç bağ eşit aralıkta, sarılabilir. */
/* Kart → bağlantı satırı ölçüyle SABİT. Şablonlar Bulma yardımcılarına
   (`mb-6` / `mb-3`) bırakmıştı: form ekranında 48px, sonuç ekranında 16px
   çıkıyordu. Kartın alt marjı (48px) + satırın üst dolgusu (16px) = 64px,
   yani bir bölüm boşluğu. */
.bv .form-card { margin-bottom: calc(var(--tfe-bolum, 4rem) - var(--tfe-ogr, 1rem)) !important; }
.bv .forgot-link {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    padding-top: var(--tfe-ogr, 1rem);
    padding-bottom: var(--tfe-ogr, 1rem) !important;  /* şablondaki `pb-5` yerine */
}
.bv .forgot-link a { display: inline-flex; align-items: center; gap: .4rem; color: #9aa1a1 !important; font-size: .9rem; }
.bv .forgot-link a:hover { color: #ffbe9c !important; }
.bv .forgot-link .icon-inner { display: inline-flex; }
