/* ============================================================================
   FORM YOĞUNLUĞU — floating label alan yüksekliği TEK KAYNAK
   ----------------------------------------------------------------------------
   NEDEN (kullanıcı kararı 08-08-2026):
   Uygulamada üç farklı alan yüksekliği vardı:
       2.85rem  →  hızlı/toplu kayıt modalları (.vd-quick-modal) + Araç modalı (#app-modal)
       3.20rem  →  Bakım Planları filtre çubuğu (.mp-filter-group)
       3.50rem  →  Bootstrap varsayılanı — DİĞER TÜM EKRANLAR
   Kullanıcı "çoklu kayıt ekranlarındaki gibi olsun" dedi → 2.85rem KANON oldu ve
   artık GLOBAL uygulanıyor. Modal-bazlı kopyalar silindi; reçete YALNIZ burada.

   TASARIM NOTU: form-floating KORUNUYOR — hiçbir alan klasik label'a çevrilmedi
   (bkz. CLAUDE.md kanonu). Değişen yalnız yükseklik/padding/font ölçüsü.

   YÜKLEME SIRASI: bu dosya `ui/multi-select.css`'ten SONRA gelmeli. Sebep:
   `.form-floating > .ms-wrap.ms-in-floating .ms-control` kuralı orada 3.5rem'e
   sabitliyor; aynı özgüllükte (0,2,1) olduğumuz için kazanan KAYNAK SIRASI.

   YENİ EKRAN YAZARKEN: alan yüksekliği için CSS yazma. Bu dosya hallediyor.
   Kendi height'ını tanımlayan yeni kural FormDensityContractTests'e takılır.
   ============================================================================ */

:root {
    /* Tek yerden ayarlanabilsin: ölçü değişecekse YALNIZ burası değişir. */
    --form-field-h: calc(2.85rem + 2px);
    --form-field-pt: 1.15rem;
    --form-field-pb: .35rem;
    --form-field-fs: .85rem;
    --form-label-pad: .65rem .75rem;
    /* Açıklama/textarea alanları: iki satır görünsün ama esneyebilsin. */
    --form-textarea-min-h: 68px;
}

/* ---- 1) Temel alanlar: input / select ---- */
.form-floating > .form-control,
.form-floating > .form-select {
    height: var(--form-field-h);
    min-height: var(--form-field-h);
    padding-top: var(--form-field-pt);
    padding-bottom: var(--form-field-pb);
    font-size: var(--form-field-fs);
}

/* ---- 2) Etiket: küçülme oranı yüksekliğe uyarlandı ---- */
.form-floating > label {
    padding: var(--form-label-pad);
    font-size: var(--form-field-fs);
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
    opacity: .75;
    transform: scale(.78) translateY(-.5rem) translateX(.15rem);
}

/* ---- 3) Çok satırlı alanlar ---- */
.form-floating > textarea.form-control {
    height: auto;
    min-height: var(--form-textarea-min-h);
    padding-top: 1.4rem;
}

/* ---- 4) input-group: takvim / [+] butonu alanla aynı boyda kalmalı ---- */
.input-group > .form-floating {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
}

.input-group > .form-floating:not(:last-child) > .form-control,
.input-group > .form-floating:not(:last-child) > .form-select {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group > .form-floating ~ .btn,
.input-group > .form-floating ~ .input-group-text {
    height: var(--form-field-h);
}

/* ---- 5) TlwSelect (aranabilir/çoklu seçim) floating içinde ----
   multi-select.css kutuyu 3.5rem'e sabitliyor; komşu alanlarla aynı boya insin,
   yoksa araç/çoklu seçim alanı tek başına uzun kalıyor. */
.form-floating > .ms-wrap.ms-in-floating .ms-control {
    min-height: var(--form-field-h);
    padding-top: var(--form-field-pt);
    padding-bottom: var(--form-field-pb);
    font-size: var(--form-field-fs);
}

.form-floating > .ms-wrap.ms-in-floating ~ label {
    transform: scale(.78) translateY(-.5rem) translateX(.15rem);
}

/* ---- 6) Datepicker alanları: .datepicker de .form-control'dur, ek kural gerekmez.
   Takvim ikonu input-group içindeyse (4) hallediyor. ---- */
