/* /Components/Layout/BosLayout.razor.rz.scp.css */
.bos-icerik[b-cw9cqylo7h] {
    min-height: 100vh;
    padding: 1.5rem;
}

/* 🐞 2026-08-06: bu blok EKSİKTİ → BosLayout'un `#blazor-error-ui` kopyası hiç gizlenmiyordu
   (kural MainLayout.razor.css'te ve SCOPED olduğu için oraya uygulanmıyor) ve dört ekranın
   dibinde görünür bir hata şeridi + kaydırma çubuğu bırakıyordu.
   ⚠️ MainLayout.razor.css'teki eşiyle AYNI tutulmalı — ikisi ayrı scope'ta yaşıyor. */
#blazor-error-ui[b-cw9cqylo7h] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-cw9cqylo7h] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/LisansUyariSeridi.razor.rz.scp.css */
/* 🆕 Lisans uyarı şeridi (dalga 84) — MAUI: sabit bant (kayan yazı DEĞİL), ortalı kalın 13 pt, uzun metinde sarar.
   Renkler temanın uyarı dilinden (`.fora-uyari-sari` / `.fora-uyari-kirmizi`, fora-tema.css); burada yalnız yerleşim. */
.lisans-serit[b-v9iovybsv8] {
    display: block;
    margin-block-end: .5rem;
    padding-block: .4rem;
    padding-inline: .75rem;
    text-align: center;
    font-weight: 700;
    font-size: .8125rem;
    border-inline-start-width: 4px;
    border-inline-start-style: solid;
    overflow-wrap: anywhere;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-ikcuxdlu0m] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-ikcuxdlu0m] {
    flex: 1;
}

/* Menü zemini (2026-08-06, 3. tur kullanıcı kararı): menünün TAMAMI tek renk — mobil
   çekmecenin baskın gövde rengi `PopupBack` **#ede8e5**
   (`Maui/ForaYazilim.Maui.ForaMobil/Resources/Styles/Colors.xaml`). Mobil paleti değişirse elle eşle.
   ⚠️ RENGİ TEK NOKTADAN VERİYORUZ: marka satırı ve kullanıcı bloğu kendi zeminini BOYAMAZ,
   bu rengi miras alır (bantları yalnız saç teli çizgiler ayırır). Renk tarihçesi ve açık
   zeminin zorunlu sonuçları (renkli logo + koyu yazılar) → NavMenu.razor.css başındaki not.
   `display:flex` + kolon: NavMenu'nün marka satırı / link listesi / kullanıcı bloğu bu kabın
   doğrudan çocuklarıdır; kullanıcı bloğunu dibe yapıştıran kural onlara bağlı (madde 7). */
.sidebar[b-ikcuxdlu0m] {
    background-color: #ede8e5;
    display: flex;
    flex-direction: column;
}

/* ⚠️ `.top-row` kuralları KALDIRILDI (2026-08-06, madde 7): üst bar artık YOK
   (bkz. MainLayout.razor içindeki not). NavMenu'nün kendi scoped CSS'indeki `.marka-satiri`
   ile karıştırma — o ayrı bileşenin şeridi. */

/* 🔄 2026-09-25 (Serhat toparlama 3 md.4): içerik boşlukları küçüldü ve TEK yerden (erp.css `--icerik-bosluk-*`).
   Öncesi: üst 1,1rem (app.css `.content`) · sol 2rem · sağ 1,5rem ⇒ sekme şeridi menüden ve üstten kopuk duruyordu.
   Sekme satırı bu boşluğu negatif kenarla geri alıp kenara YAPIŞIR; `!important` Bootstrap `px-4`'ü ve `.content`'i ezer. */
article.content[b-ikcuxdlu0m] {
    padding-top: var(--icerik-bosluk-ust) !important;
    padding-left: var(--icerik-bosluk-yan) !important;
    padding-right: var(--icerik-bosluk-yan) !important;
}

@media (min-width: 641px) {
    .page[b-ikcuxdlu0m] {
        flex-direction: row;
    }

    .sidebar[b-ikcuxdlu0m] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
        /* md.4: menü ile içerik arasında ince çizgi (yapışık şeridin sol sınırı). */
        border-inline-end: 1px solid var(--fora-ayrac-koyu);
    }

    /* 🆕 md.5: sol menü GİZLİ — sınıf `<html>`'de (App.razor ilk çizimden önce `localStorage`'dan koyar, sekme şeridindeki
       ☰ düğmesi `foraMenu.degistir()` ile değiştirir) ⇒ Blazor yeniden çizimleri tercihi bozmaz, açılışta titreme olmaz. */
    html.menu-kapali .sidebar[b-ikcuxdlu0m] {
        display: none;
    }
}

#blazor-error-ui[b-ikcuxdlu0m] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-ikcuxdlu0m] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* Oturum geri yükleme kapısının bekleme göstergesi (2026-08-07) — bkz. MainLayout.razor
   baş yorumu. Normalde tek gidiş-dönüş kadar görünür; `sessionStorage`'da oturum yoksa hiç
   görünmez (sayfa doğrudan /login'e gider). Ortalanmış ve sessiz: burada bir "yükleme ekranı"
   tasarlamak istemiyoruz, yalnızca boş bir alan bırakmamak. */
.oturum-bekleme[b-ikcuxdlu0m] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1rem;
    color: #6B645E;
    font-size: 0.85rem;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-3girt61xcx] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-3girt61xcx] {
    background-color: rgba(255, 255, 255, 0.5);
}

/* ══ MENÜ RENGİ — TEK RENK #ede8e5 (2026-08-06, 3. tur kullanıcı kararı) ═══════════════════
   Renk tarihçesi (üç tur, dördüncü kez değiştirmeden önce oku):
     ① menünün tamamı #555555  → "çok koyu" (haklı: o değer mobil menünün rengi değil, yalnız
        iOS güvenli-alan şeridi için — AppShell.xaml yorumu bunu yazıyor)
     ② mobilin üç bandı birebir (koyu başlık + açık gövde + koyu alt bilgi)
        → "alt ve üstteki renk farklılıkları çok kötü olmuş, hepsi ortadaki renk ile aynı olsun"
     ③ ŞİMDİ: menünün TAMAMI mobil gövde rengi **#ede8e5** (`Colors.xaml` → `PopupBack`).
        Renk `MainLayout.razor.css` `.sidebar`'da bir kez verilir; marka satırı ve kullanıcı
        bloğu KENDİ ZEMİNİNİ BOYAMAZ (şeffaf kalır), bantları yalnız saç teli çizgiler ayırır.
   ⚠️ AÇIK ZEMİNİN İKİ ZORUNLU SONUCU (koyu banda dönerseniz ikisini de geri alın):
     · logo RENKLİ varyant olmalı — beyaz metinli varyant krem zeminde okunmaz
     · firma/kullanıcı yazıları KOYU olmalı (#3F3A36 / #7A736D)
   ══════════════════════════════════════════════════════════════════════════════════════════ */

/* ── Marka satırı ──
   ⚠️ `background-color` YOK: menü tek renk (bkz. yukarıdaki not). Ayırıcı için yalnız
   saç teli bir alt çizgi — bu bir "bant" değil, sınır. */
.marka-satiri[b-3girt61xcx] {
    min-height: 3.5rem;
    display: flex;
    align-items: center;
    padding: 0.5rem 1rem;
    border-bottom: 1px solid rgba(0,0,0,0.07);
}

/* Logo 538.93x132.82 (oran ~4.06) — genişliğe göre ölçekleniyor, yükseklik serbest. */
.marka-logo[b-3girt61xcx] {
    width: 100%;
    max-width: 190px;
    height: auto;
    display: block;
}

/* ── ALT BAND (2026-08-07) ──
   `margin-top: auto` DİBE YAPIŞTIRAN kuraldır ve `.nav-scrollable`ın flex kolon olmasına
   bağlıdır (aşağıdaki min-width:641px media query'si). Mobilde (menü açıkken) band linklerin
   hemen altında akar — orada dibe yapıştırmak gereksiz, menü zaten kısa.

   ⚠️ Kural 2026-08-07'de `.kullanici-blogu`dan BURAYA taşındı: üstüne veritabanı bloğu eklenince
   iki kardeşin ikisine de `auto` vermek gerekirdi ve flexbox boş alanı ARALARINDA paylaştırıp
   bloklar arasına kocaman bir boşluk koyardı. Tek `auto` taşıyan kap ikisini birlikte yapıştırır.
   ⚠️ `auto`yu `.kullanici-blogu`ya geri KOYMA.

   🐞 2026-10-11 (TODO "dil seçici son menü satırının üstüne biniyor", Serhat: "düzeltelim"): ÜST ÜSTE BİNME YOKTU —
   ölçüldü (Depo → Evraklar açık, pencere 905): kayan `nav` 686,9'da bitiyor, band ve dil seçici TAM o çizgiden
   başlıyordu (boşluk 0 px, çizgi yok) ⇒ kayan bölgenin kenarında kırpılan satır seçicinin ALTINA girmiş gibi
   görünüyordu. Çözüm menünün kendi dili: bloklar saç teli çizgiyle ayrılır (marka satırı, veritabanı bloğu) +
   seçici kırpma çizgisine yapışmasın diye üst boşluk. 🔒 `MenuYapisiKapilariTests.ALT_BAND_kayan_menuden_AYRILIR` */
.alt-band[b-3girt61xcx] {
    margin-top: auto;
    border-top: 1px solid rgba(0,0,0,0.07);
    padding-top: 0.5rem;
}

/* ── Veritabanı bloğu — alt bandın ÜST katı (2026-08-07, Mehmet isteği) ──
   Kullanıcı hangi Mikro veritabanında çalıştığını görür ve buradan değiştirir. Mobil çekmece
   başlığında da veritabanı adı EN ÜSTTEDİR (`AppShell.xaml` → `l_menu_veritabani`), yani
   hiyerarşi mobille tutarlı: veritabanı → firma → kullanıcı.
   ⚠️ `background-color` YOK — menü tek renk (bkz. dosya başındaki renk tarihçesi); bloklar
   birbirinden yalnız saç teli çizgilerle ayrılır. */
.veritabani-blogu[b-3girt61xcx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.28rem;
    padding: 0.6rem 0.75rem;
    border-top: 1px solid rgba(0,0,0,0.07);
    min-width: 0; /* alt satırlardaki text-overflow için şart */
}

/* "VERİTABANI" etiketi — küçük, harf aralıklı, sessiz. Rengi kullanıcı adıyla AYNI tondan
   (#6B645E): #ede8e5 üzerinde 4.78:1, WCAG AA ✓ (bu dosyadaki kontrast notuna bak). */
.vt-etiket[b-3girt61xcx] {
    color: #6B645E;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

/* Veritabanı ADI — baskın satır (firma adıyla aynı ağırlık: yanlış veritabanında çalışmak
   yanlış firmada evrak kesmek kadar ciddi bir hatadır). Uzun adlar tek satırda kırpılır. */
.vt-adi[b-3girt61xcx] {
    max-width: 100%;
    color: #3F3A36;
    font-size: 0.81rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* "Veritabanı Değiştir" — Çıkış chip'iyle aynı dil ama NÖTR ton (kiremit DEĞİL): kiremit bu
   menüde "oturumu bitiren" eylemin rengidir, veritabanı değiştirmek yıkıcı bir işlem değil.
   Aksan (#22628A) kenarlı, şeffaf zeminli bir chip → göze batmaz ama tıklanabilir okunur. */
.vt-degistir-chip[b-3girt61xcx] {
    display: block;
    margin: 0.1rem auto 0 auto;
    padding: 0.22rem 0.8rem;
    background-color: transparent;
    border: 1px solid #A8BCC9;
    border-radius: 8px;
    color: #22628A;
    font-size: 0.7rem;
    line-height: 1.4;
    cursor: pointer;
}

    .vt-degistir-chip:hover[b-3girt61xcx],
    .vt-degistir-chip:focus[b-3girt61xcx] {
        background-color: #E3EDF4;
        border-color: #22628A;
        color: #1B4E6E;
    }

/* ── Kullanıcı bloğu = alt bandın ALT katı (2026-08-06, madde 7 + 6. geri bildirim) ──
   Tipografi mobil çekmece BAŞLIĞINDAN alındı (AppShell.xaml `l_menu_veritabani` /
   `l_menu_kullaniciadi`): boyutlar 13px / 11.5px, renkler #fef9f5 (TextLight) / #C6BFB9, ortalı.
   ⚠️ HİYERARŞİ BİLİNÇLİ — FİRMA BASKIN, kullanıcı ikincil. Gerekçe mobil XAML'de yazılı:
   "yanlış FİRMADA evrak kesmek gerçek bir hata olduğu için firma baskın". İlk web denemesinde
   ters yapılmıştı (kullanıcı adı baskındı); mobil paritesine çevrildi. TERS ÇEVİRME. */
.kullanici-blogu[b-3girt61xcx] {
    padding: 0.6rem 0.75rem 0.7rem 0.75rem;
    /* ⚠️ `background-color` YOK — menü tek renk (bkz. dosya başındaki renk tarihçesi). */
    border-top: 1px solid rgba(0,0,0,0.07);
}

.kullanici-satiri[b-3girt61xcx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 0.5rem;
    min-width: 0; /* alt satırlardaki text-overflow için şart */
}

/* FİRMA — baskın satır. Boyut/kalınlık/aralık mobil çekmece başlığından (13px semibold,
   CharacterSpacing 0.6); RENK ise açık zemine uyarlandı: mobildeki #fef9f5 krem üzerinde
   görünmez, o yüzden menü linkleriyle aynı koyu ton (#3F3A36) kullanılır. */
.kullanici-firma[b-3girt61xcx] {
    max-width: 100%;
    color: #3F3A36;
    font-size: 0.81rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Kullanıcı adı — ikincil satır (mobil: 11.5px). Renk açık zemin için uyarlandı: mobildeki
   #C6BFB9 krem üzerinde okunmuyor.
   ⚠️ TON HESAPLANDI, gözle seçilmedi: #7A736D denendi → #ede8e5 üzerinde **3.84:1**, yani
   11.5px metin için WCAG AA eşiği 4.5:1'in ALTINDA. #6B645E = **4.78:1** ✓. Daha açık bir
   griye çekerken kontrastı yeniden hesapla. */
.kullanici-adi[b-3girt61xcx] {
    max-width: 100%;
    color: #6B645E;
    font-size: 0.72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Çıkış — mobil çekmecedeki kiremit "chip" düğmenin karşılığı (#8A3A2B zemin + #C1704F kenar).
   ⚠️ Mobilde bu düğme bilinçli olarak DAR bir dokunma hedefi (kazara çıkış yaşanmıştı, docs
   AppShell.xaml notu) → web'de de tam genişlik DEĞİL, ortalı küçük bir chip. */
.cikis-chip[b-3girt61xcx] {
    display: block;
    margin: 0 auto;
    padding: 0.25rem 1.1rem;
    background-color: #8A3A2B;
    border: 1px solid #C1704F;
    border-radius: 8px;
    color: #FDEDE8;
    font-size: 0.74rem;
    line-height: 1.4;
    cursor: pointer;
    text-decoration: none;
}

    .cikis-chip:hover[b-3girt61xcx],
    .cikis-chip:focus[b-3girt61xcx] {
        background-color: #A0432F;
        color: #fff;
    }

.bi[b-3girt61xcx] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-3girt61xcx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-3girt61xcx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-3girt61xcx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

/* ══ MENÜ İKONLARI (2026-08-06 geri bildirimi) ═══════════════════════════════════════════
   Eskiden emoji vardı ("💬 Yapay Zeka" / "🔐 Yönetim"). Kullanıcı: "sohbet işareti kötü
   duruyor… böyle soluk, ölü gibi bir şey olmasın." Emoji glifi tarayıcı/işletim sistemine
   göre çiziliyor ve krem zeminde soluk bir dış çizgi gibi duruyordu (mobilde de tam bu
   yüzden emoji ikonlardan vazgeçilmişti — docs/IKON_SISTEMI.md).
   ÇÖZÜM: sohbet balonu KORUNDU ama artık **aksan renginde DOLGULU** SVG + içinde beyaz üç
   nokta → uzaktan bile "canlı" okunuyor. Yönetim de aynı dilde (dolgulu kalkan+kilit).

   ⚠️ Bunlar `Tools/ikon_uret.py` ürünü DEĞİL ve olmamalı: o üretici mobil ikon ailesi
   (24x24, KabukIkonu ölçeği) içindir ve mobilde YZ menüsüne ait devralınacak bir ikon YOK
   (`yz_*` ailesi sohbet giriş çubuğu ikonlarıdır). Bunlar web menüsüne ait, CSS'e gömülü
   data URI'lar — dış istek yok, CSP dostu. Aynı gerekçe Login.razor.css'teki alan ikonları
   için de yazılı; bkz. docs/IKON_SISTEMI.md §3 "Marka varlıkları ≠ ikon ailesi".
   ⚠️ RENK data URI'nin İÇİNDE gömülü (%23 = #): tonu değiştirmek için URI'yi düzenle.
   ══════════════════════════════════════════════════════════════════════════════════════ */
.menu-ikon[b-3girt61xcx] {
    flex: 0 0 auto;      /* .nav-link flex kabı; ikon sıkışmasın */
    width: 18px;
    height: 18px;
    margin-right: 0.6rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
}

/* Sohbet balonu — dolgulu aksan + beyaz üç nokta */
.ikon-yz[b-3girt61xcx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2' y='4' width='20' height='13' rx='3.5' fill='%2322628A'/%3E%3Cpath d='M7 16.2h4.5L7 21z' fill='%2322628A'/%3E%3Ccircle cx='8' cy='10.5' r='1.35' fill='%23ffffff'/%3E%3Ccircle cx='12' cy='10.5' r='1.35' fill='%23ffffff'/%3E%3Ccircle cx='16' cy='10.5' r='1.35' fill='%23ffffff'/%3E%3C/svg%3E");
}

/* Yönetim — dolgulu kalkan + beyaz kilit deliği */
.ikon-yonetim[b-3girt61xcx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4l7.6 2.8v5.5c0 4.7-3.2 8.8-7.6 10.3-4.4-1.5-7.6-5.6-7.6-10.3V5.2z' fill='%2322628A'/%3E%3Ccircle cx='12' cy='10.6' r='1.7' fill='%23ffffff'/%3E%3Crect x='11.2' y='11.2' width='1.6' height='3.6' rx='0.8' fill='%23ffffff'/%3E%3C/svg%3E");
}

/* Destek — menüde gizli, blok geri açılırsa hazır (kulaklık) */
.ikon-destek[b-3girt61xcx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a8 8 0 0 0-8 8v4a3 3 0 0 0 3 3h1v-7H6v-.2A6 6 0 0 1 18 11v.2h-2v7h1a3 3 0 0 0 3-3v-4a8 8 0 0 0-8-8z' fill='%2322628A'/%3E%3C/svg%3E");
}

.nav-item[b-3girt61xcx] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-3girt61xcx] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-3girt61xcx] {
        padding-bottom: 1rem;
    }

    /* ⚠️ Link renkleri AÇIK gövde içindir (#ede8e5). Eskiden koyu zemin varsayılıyordu
       (#d7d7d7 yazı + beyaz hover/active) — gövde krem olunca okunmuyordu.
       Renk mobil menü satırından: `TextColor="#3F3A36"`, satır yüksekliği 48px = 3rem (aynı). */
    .nav-item[b-3girt61xcx]  .nav-link {
        color: #3F3A36;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
        /* Etkin satırdaki 3px şerit metni kaydırmasın diye yer şimdiden ayrılır
           (mobil menü ızgarasının ilk kolonu da 3px'lik bir şerittir). */
        border-left: 3px solid transparent;
        padding-left: 0.55rem;
    }

/* Etkin satır: krem bir ton koyu + solda aksan şeridi (mobil ızgaradaki şerit kolonunun karşılığı) */
.nav-item[b-3girt61xcx]  a.active {
    background-color: #ded7d1;
    border-left-color: #22628A;
    color: #23201d;
    font-weight: 600;
}

.nav-item[b-3girt61xcx]  .nav-link:hover {
    background-color: #e4ddd7;
    color: #23201d;
}

.nav-scrollable[b-3girt61xcx] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-3girt61xcx] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-3girt61xcx] {
        display: none;
    }

    /* 🐞 DÜZELTİLEN HATA (2026-08-06 geri bildirimi): menüdeki bir linke tıklayınca kullanıcı
       bloğu yukarı zıplıyor, tekrar tıklayınca dibe iniyordu.
       KÖK NEDEN — CSS ÖZGÜLLÜĞÜ: `.nav-scrollable` kabında hamburger'i kapatan
       `onclick="…navbar-toggler.click()"` var; masaüstünde toggler `display:none` olsa da
       CHECKBOX yine işaretlenir. İşaretlenince yukarıdaki temel kural
       `.navbar-toggler:checked ~ .nav-scrollable { display: block }` (özgüllük 0,3,0) devreye
       girip buradaki `display: flex`i (0,1,0) EZİYORDU → flex kolon çöküyor, alt bandı
       (`.alt-band`, 2026-08-07'ye kadar `.kullanici-blogu`) dibe yapıştıran `margin-top:auto` +
       `nav { flex:1 }` çalışmıyor, band linklerin altına sıçrıyordu. Tarayıcıda ölçüldü:
       blok 850px → 64px, ikinci tıklamada geri.
       ÇÖZÜM: seçiciyi burada da yazıp özgüllüğü eşitle (0,3,0) — media query sonra geldiği için
       kazanır. ⚠️ Bu iki seçiciyi AYIRMA, yoksa hata geri gelir.
       (Hata eskiden görünmüyordu: iki kural da `block`tu, çakışmanın etkisi yoktu.) */
    .nav-scrollable[b-3girt61xcx],
    .navbar-toggler:checked ~ .nav-scrollable[b-3girt61xcx] {
        /* Never collapse the sidebar for wide screens.
           ⚠️ `block` DEĞİL `flex` (2026-08-06, madde 7): alt bandı (`.alt-band`) dibe yapıştıran
           `margin-top: auto` yalnız flex kolonda çalışır. */
        display: flex;
        flex-direction: column;

        /* ⚠️ `height: calc(100vh - 3.5rem)` DEĞİL (denendi, 7px kayıyordu): marka satırı logo
           + padding ile 3.5rem'i aşıp 63px oluyor, sabit hesap taşma yaratıp flexbox'ın
           küçültmesine kalıyordu. `flex: 1` kalan alanı KESİN doldurur ve marka satırının
           yüksekliğine bağımlılığı tamamen kaldırır (`.sidebar` 100vh + kolon flex olduğu için).
           min-height: 0 → flex item içeriğinden kısa olamaz kuralını kır, yoksa uzun menüde taşar. */
        flex: 1 1 auto;
        min-height: 0;
    }

        /* Kaydırma artık KABIN kendisinde değil link listesinde: böylece menü uzasa bile
           alt band (veritabanı + kullanıcı) görünür kalır (kap kayarsa band ekran dışına çıkardı). */
        .nav-scrollable > nav[b-3girt61xcx] {
            flex: 1 1 auto;
            overflow-y: auto;
            min-height: 0; /* flex item içeriğinden kısa olamaz kuralını kır — yoksa taşar */

            /* ⚠️ TUZAK (tarayıcıda ölçüldü 2026-08-06): Bootstrap `.nav` = `display:flex` +
               `flex-wrap: wrap`. `flex-direction: column` ile birleşince menü taşınca DİKEY
               kaymaz, İKİNCİ KOLONA SARAR (20 sahte öğeyle denendi: son öğe left=121px, yani
               250px'lik menünün içinde iki kolon; scrollHeight == clientHeight olduğu için
               `overflow-y: auto` hiç tetiklenmiyordu). `nowrap` olmadan yukarıdaki overflow
               kuralı ÖLÜ. Bugün menüde 1-2 madde olduğu için görünmüyor — madde eklenince
               ortaya çıkardı. */
            flex-wrap: nowrap;
        }
}


/* ══════════════════════════════════════════════════════════════════════════════════════
   🆕 ERP MENÜSÜ (web altyapısı FAZ 2, 2026-09-05) — docs/spec-web-altyapi-v1.md §7.7

   Ana giriş YAPAY ZEKA kalır; ERP modülleri onun altında KATLANIR gruplar hâlinde
   (Serhat, 2026-09-05: "menüyü gerçek yerine sol tarafa koy, ana giriş yapay zeka kalsın").

   ⚠️ Akordeon (aynı anda tek grup açık) bilinçli: 11 grup × ~7 öğe hepsi açıkken 75 satır
   eder ve dar bir yan panelde kaydırma dışında hiçbir şey görünmez.

   🔵 Grup rengi MAUI'nin CANLI tonudur ve KATALOGDAN gelir (`--grup-renk` inline yazılır) —
   burada hex YOKTUR, olsaydı palet iki yerde tutulurdu (docs/IKON_SISTEMI.md §4).
   ══════════════════════════════════════════════════════════════════════════════════════ */

.erp-grup[b-3girt61xcx] {
    padding: 0 0.75rem;
}

.erp-grup-baslik[b-3girt61xcx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.42rem 0.75rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: inherit;
    font-size: 0.9rem;
    text-align: left;
    cursor: pointer;
    /* Sol şerit yalnız AÇIK grupta — kapalıyken 11 renkli çizgi gürültü olurdu. */
    border-left: 3px solid transparent;
}

.erp-grup-baslik:hover[b-3girt61xcx] {
    background: rgba(0, 0, 0, 0.05);
}

.erp-grup-baslik.acik[b-3girt61xcx] {
    border-left-color: var(--grup-renk);
    font-weight: 600;
}

/* 🆕 2026-09-25 (Serhat toparlama 3 md.2): Yapay Zeka ve Yönetim MODÜL SATIRI görünümünde. İkisi de NavLink ⇒ `<a>` alt
   bileşenin (NavLink) çıktısı, bu dosyanın kapsam özniteliğini TAŞIMAZ ⇒ `::deep`. Kurallar yukarıdaki grup başlığıyla BİREBİR
   (iki görünüm ayrışmasın): etkin (URL eşleşmesi) = açık grup gibi sol şerit + kalın. */
.erp-grup[b-3girt61xcx]  a.erp-grup-baslik {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.42rem 0.75rem;
    border-radius: 6px;
    color: inherit;
    font-size: 0.9rem;
    text-decoration: none;
    border-left: 3px solid transparent;
}

.erp-grup[b-3girt61xcx]  a.erp-grup-baslik:hover {
    background: rgba(0, 0, 0, 0.05);
}

.erp-grup[b-3girt61xcx]  a.erp-grup-baslik.active {
    border-left-color: var(--grup-renk);
    font-weight: 600;
}

/* YZ en üstte: marka satırıyla arasında nefes payı (eskiden `.nav-item:first-of-type` veriyordu). */
.erp-grup-yz[b-3girt61xcx] {
    margin-top: 0.6rem;
}

.erp-grup-yonetim[b-3girt61xcx] {
    margin-top: 0.35rem;
}

/* İkon kutunun İÇİNDE: satır içi ikonun sağ boşluğu burada anlamsız. */
.erp-grup-chip .menu-ikon[b-3girt61xcx] {
    margin: 0;
}

.erp-grup-chip[b-3girt61xcx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 6px;
    /* Grubun canlı tonunun düşük alfalı hâli — MAUI'deki chip zemininin karşılığı. */
    background: color-mix(in srgb, var(--grup-renk) 18%, transparent);
}

.erp-grup-ad[b-3girt61xcx] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.erp-grup-sayi[b-3girt61xcx] {
    flex: 0 0 auto;
    font-size: 0.72rem;
    opacity: 0.55;
}

.erp-oge-liste[b-3girt61xcx] {
    list-style: none;
    margin: 0 0 0.35rem;
    padding: 0.1rem 0 0.1rem 1.55rem;
}

    .erp-oge-liste li[b-3girt61xcx] {
        display: flex;
        align-items: center;
        gap: 0.45rem;
        padding: 0.24rem 0.4rem;
        font-size: 0.83rem;
        opacity: 0.85;
        border-radius: 4px;
        /* ⏳ Öğeler FAZ 3'e kadar tıklanamaz: imleç DEĞİŞMEZ ki tıklanabilir sanılmasın. */
    }

/* 🖼️ Öğe ikonu — MAUI ile ORTAK (2026-09-09). Önceki 6px'lik iki renkli tür noktası
   (`.erp-oge-tur`) kaldırıldı: dokuz gerçek ikon, "evrak mı rapor mu"dan FAZLASINI söylüyor
   (tahsilat ⟂ sevk ⟂ sayım ⟂ etiket…) ve MAUI'de kullanıcının alıştığı görsel dil bu.
   🔴 Renk SVG'ye GÖMÜLÜ (runtime tint YOK) ⇒ burada `fill`/`filter` verilmez; ikonu
   renklendirmek isteyen docs/IKON_SISTEMI.md'deki üreticiden geçer. */
.erp-oge-ikon[b-3girt61xcx] {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    /* Grup ikonu 18px; öğe ikonu bilinçle bir tık küçük — hiyerarşi boyutla da anlatılır. */
}

/* Ekranı olmayan öğe zaten sönük (li.yakinda opacity); ikon ayrıca soldurulmaz —
   iki kere solmak okunmaz hâle getiriyordu. */

/* Ekranı OLAN öğe link; olmayan sönük ve tıklanamaz (FAZ 3). */
.erp-oge-ad[b-3girt61xcx] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.erp-oge-liste li.yakinda[b-3girt61xcx] {
    opacity: 0.5;
}

/* ══ 🧭 MENÜ YAPISI (2026-10-11) — 3. basamak + tek basamak ═══════════════════════════════════════════
   Ağaç ortak katmandan gelir (`MenuKurucu.Agac`); burada yalnız görünüm. 📖 docs/spec-web-altyapi-v1.md §7.7 */

/* Alt grup satırı (Kartlar · Evraklar · Operasyonlar · Raporlar) — öğe satırı gibi flex DEĞİL: başlık + iç liste
   alt alta. Öğe satırının sönüklüğü (opacity) başlığa da düşmesin. */
.erp-oge-liste li.erp-altgrup[b-3girt61xcx] {
    display: block;
    padding: 0;
    opacity: 1;
}

.erp-altgrup-baslik[b-3girt61xcx] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    padding: 0.32rem 0.4rem;
    border: 0;
    border-radius: 4px;
    background: transparent;
    /* 🔄 2026-10-11 (Serhat: "2. kademe başlıklarının yazısı küçük, 3. kademe daha büyük gözüküyor"): başlık artık
       öğeden BÜYÜK (.87rem ⟂ öğe .83rem) ve tam koyu (öğe satırı .85 opaklıkta) — eskiden .74rem, soluk #6B645E, harf
       aralıklı etiketti ve hiyerarşi tersti. Grup başlığını (.9rem + renkli çip) geçmez. */
    color: #3F3A36;
    font-size: 0.87rem;
    font-weight: 600;
    text-align: start;
    cursor: pointer;
}

    .erp-altgrup-baslik:hover[b-3girt61xcx] {
        background: rgba(0, 0, 0, 0.05);
    }

    /* Açılır işaret: iki kenarlıklı kutu (metin/ikon değil). Kapalı › (okuma yönüne), açık ⌄.
       ⚠️ Kenarlıklar BİLİNÇLİ fiziksel (bottom/right): mantıksal (inline-end) olsaydı sağdan sola arayüzde köşe
       sola geçer ve aynı döndürme oku AŞAĞI çevirirdi — yön, aşağıdaki [dir=rtl] aynasıyla verilir. */
    .erp-altgrup-baslik[b-3girt61xcx]::before {
        content: "";
        flex: 0 0 auto;
        width: 0.42rem;
        height: 0.42rem;
        border-bottom: 1.5px solid currentColor;
        border-right: 1.5px solid currentColor;
        transform: rotate(-45deg);
        transition: transform 120ms ease;
    }

        .erp-altgrup-baslik.acik[b-3girt61xcx]::before {
            transform: rotate(45deg);
        }

[dir="rtl"] .erp-altgrup-baslik[b-3girt61xcx]::before {
    transform: scaleX(-1) rotate(-45deg);
}

[dir="rtl"] .erp-altgrup-baslik.acik[b-3girt61xcx]::before {
    transform: rotate(45deg);
}

.erp-altgrup-ad[b-3girt61xcx] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Alt grubun öğeleri: grubun listesinden bir kademe içeride. */
.erp-oge-liste.erp-altgrup-liste[b-3girt61xcx] {
    margin: 0 0 0.2rem;
    padding-inline-start: 0.95rem;
}

/* Tek basamak: öğe EN ÜSTTE — grup satırı görünümünde (aynı yükseklik/çip), çip grubun canlı tonunda (`--grup-renk`,
   bağlam işareti). NavLink ⇒ `<a>` alt bileşenin çıktısı: kurallar yukarıdaki `.erp-grup ::deep a.erp-grup-baslik`'ten gelir. */
.erp-tek-oge .erp-grup-chip .erp-oge-ikon[b-3girt61xcx] {
    width: 16px;
    height: 16px;
}

.erp-tek-oge .erp-grup-baslik.yakinda[b-3girt61xcx] {
    opacity: 0.5;
    cursor: default;
}

    .erp-tek-oge .erp-grup-baslik.yakinda:hover[b-3girt61xcx] {
        background: transparent;
    }

[b-3girt61xcx] a.erp-oge-link {
    color: inherit;
    text-decoration: none;
}

    [b-3girt61xcx] a.erp-oge-link:hover {
        text-decoration: underline;
    }

    [b-3girt61xcx] a.erp-oge-link.active {
        font-weight: 700;
    }

/* ══ 🆕 dalga 84: ANA SAYFA BARKOD KUTUSU + FAVORİLER (MAUI ana sayfası) ══════════════════════════════════════════
   Yön-bağımsız (border/padding-inline): Arapça arayüzde ayna olur. */
.ana-barkod[b-3girt61xcx] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding-block: 0.5rem 0.2rem;
    padding-inline: 0.75rem;
}

    /* 🆕 dalga 85: kutu gizli ve kamera desteklenmiyorsa kap BOŞ kalır (bileşen hiçbir şey çizmez) — boşluk bırakmasın. */
    .ana-barkod:empty[b-3girt61xcx] {
        display: none;
    }

.ana-barkod-kutu[b-3girt61xcx] {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    min-height: 32px;
    padding-block: 0.3rem;
    padding-inline: 0.6rem;
    border: 1px solid var(--fora-ayrac-koyu);
    border-radius: 6px;
    background: var(--fora-yuzey);
    color: inherit;
    font-size: 0.88rem;
}

    .ana-barkod-kutu:focus[b-3girt61xcx] {
        outline: 2px solid var(--fora-aksan);
        outline-offset: 0;
        border-color: var(--fora-aksan);
    }

/* Favoriler grubu — başlık TIKLANMAZ (akordeon değil, liste hep açık: MAUI şeridi de sabit). Renk temanın para vurgusu
   (MAUI yıldızının #A97700'ü ile aynı aile); grup kataloğu dışında olduğu için inline değil burada. */
.erp-grup-favori[b-3girt61xcx] {
    --grup-renk: var(--fora-vurgu-para);
    margin-top: 0.35rem;
}

.erp-grup-baslik.favori-baslik[b-3girt61xcx] {
    cursor: default;
    font-weight: 600;
    border-left: 0;
    border-inline-start: 3px solid var(--grup-renk);
}

    .erp-grup-baslik.favori-baslik:hover[b-3girt61xcx] {
        background: transparent;
    }

/* Yıldız — MAUI `Resources/Images/ikon_favori.svg`'nin TÜRETİLMİŞ kopyası (Material Symbols Rounded star:fill1, Apache 2.0; yol ve
   #A97700 dolgusu birebir) — üstteki `.ikon-yz` deseni. İkon değişirse kaynak MAUI dosyasıdır. */
.ikon-favori[b-3girt61xcx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M480-269 314-169q-11 7-23 6t-21-8q-9-7-14-17.5t-2-23.5l44-189-147-127q-10-9-12.5-20.5T140-571q4-11 12-18t22-9l194-17 75-178q5-12 15.5-18t21.5-6q11 0 21.5 6t15.5 18l75 178 194 17q14 2 22 9t12 18q4 11 1.5 22.5T809-528L662-401l44 189q3 13-2 23.5T690-171q-9 7-21 8t-23-6L480-269Z' fill='%23A97700'/%3E%3C/svg%3E");
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-9lvdx3qt6y],
.components-reconnect-repeated-attempt-visible[b-9lvdx3qt6y],
.components-reconnect-failed-visible[b-9lvdx3qt6y],
.components-pause-visible[b-9lvdx3qt6y],
.components-resume-failed-visible[b-9lvdx3qt6y],
.components-rejoining-animation[b-9lvdx3qt6y] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-9lvdx3qt6y],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-9lvdx3qt6y],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-9lvdx3qt6y],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-9lvdx3qt6y],
#components-reconnect-modal.components-reconnect-retrying[b-9lvdx3qt6y],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-9lvdx3qt6y],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-9lvdx3qt6y],
#components-reconnect-modal.components-reconnect-failed[b-9lvdx3qt6y],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-9lvdx3qt6y] {
    display: block;
}


#components-reconnect-modal[b-9lvdx3qt6y] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-9lvdx3qt6y 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-9lvdx3qt6y 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-9lvdx3qt6y 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-9lvdx3qt6y]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-9lvdx3qt6y 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-9lvdx3qt6y {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-9lvdx3qt6y {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-9lvdx3qt6y {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-9lvdx3qt6y] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-9lvdx3qt6y] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-9lvdx3qt6y] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-9lvdx3qt6y] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-9lvdx3qt6y] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-9lvdx3qt6y] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-9lvdx3qt6y] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-9lvdx3qt6y 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-9lvdx3qt6y] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-9lvdx3qt6y {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/ErpPazaryeriAktarim.razor.rz.scp.css */
/* 🆕 dalga 122 — pazaryeri sipariş aktarımı (MAUI PazaryeriSiparisAktarim satırı; b2'ye kadar ErpTrendyolAktarim). Sınıf adları (`trendyol-*`)
   BİLİNÇLE korundu: ölçüm aracı (Tools/olcum_trendyol_aktarim.ps1) bunlarla sürer.
   Yön bağımsız (inline/block mantıksal özellikler, text-align start/end). Renkler ortak belirteçlerden: MAUI turuncu durum → vurgu-para,
   yeşil tutar → basari-metin, kırmızı durum → uyari-kirmizi-metin. */
.trendyol-aciklama[b-vo6onj82dk] {
    margin-block: 0 .5rem;
}

.trendyol-durum[b-vo6onj82dk] {
    margin-block: .25rem .5rem;
    font-size: .8rem;
    color: var(--fora-basari-metin);
}

.trendyol-durum.hata[b-vo6onj82dk] {
    color: var(--fora-uyari-kirmizi-metin);
}

/* Kayan kap — otomatik yükleme gözcüsünün kökü (secici.js `sonuGozle`). */
.trendyol-liste[b-vo6onj82dk] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    max-block-size: 70vh;
    overflow-y: auto;
}

.trendyol-satir[b-vo6onj82dk] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .15rem .75rem;
    inline-size: 100%;
    padding: .6rem .75rem;
    border: 1px solid var(--fora-kart-cerceve);
    border-radius: 8px;
    background: var(--fora-yuzey);
    color: inherit;
    font: inherit;
    text-align: start;
    cursor: pointer;
}

.trendyol-satir:hover[b-vo6onj82dk],
.trendyol-satir:focus-visible[b-vo6onj82dk] {
    background: var(--fora-yuzey-alt);
}

.ts-no[b-vo6onj82dk] {
    font-weight: 700;
}

.ts-durum[b-vo6onj82dk] {
    font-size: .8rem;
    font-weight: 700;
    color: var(--fora-vurgu-para);
    text-align: end;
}

.ts-musteri[b-vo6onj82dk] {
    font-size: .85rem;
    color: var(--fora-metin-ikincil);
}

.ts-tutar[b-vo6onj82dk] {
    font-weight: 700;
    color: var(--fora-basari-metin);
    text-align: end;
}

.ts-ozet[b-vo6onj82dk] {
    min-inline-size: 0;
    overflow: hidden;
    font-size: .75rem;
    color: #6B7280;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ts-tarih[b-vo6onj82dk] {
    font-size: .75rem;
    color: #6B7280;
    text-align: end;
}

/* ── Detay penceresi ── 🔄 dalga 125: ortak bileşene taşındı (`Components/Shared/PazaryeriSiparisDetayPenceresi.razor.css`). */
/* /Components/Pages/ErpPazaryeriGelistirici.razor.rz.scp.css */
/* 🆕 dalga 125 — pazaryeri geliştirici ekranı (MAUI PazaryeriSiparisleri; b2'ye kadar adı ErpTrendyolGelistirici). Sipariş satırı müşteri
   aktarım listesinin aynı düzeni (`ErpPazaryeriAktarim` kuralları yalıtılmış olduğu için burada tekrarlanır); ürün satırı MAUI şablonu
   (görsel · başlık/barkod/stok kodu/HB kodu/marka · fiyat/stok). 🔄 b2: üst şerit (pazaryeri seçici + Ayarlar/Liste düğmesi) ve ayar paneli.
   Yön bağımsız (mantıksal özellikler). */
.tg-serit[b-vxj9hgap8q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-block-end: .5rem;
    max-inline-size: 560px;
}

.tg-serit select[b-vxj9hgap8q] {
    min-inline-size: 11rem;
}

.tg-ayarlar-dugme[b-vxj9hgap8q] {
    padding: .35rem .9rem;
}

.tg-ayar-paneli[b-vxj9hgap8q] {
    max-inline-size: 560px;
}

.tg-kimlik[b-vxj9hgap8q],
.tg-suzgec[b-vxj9hgap8q],
.tg-test[b-vxj9hgap8q] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-block-end: .6rem;
    max-inline-size: 560px;
}

.tg-girdi[b-vxj9hgap8q] {
    padding: .4rem .6rem;
}

.tg-satir[b-vxj9hgap8q] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .9rem;
}

.tg-adet[b-vxj9hgap8q] {
    inline-size: 4.5rem;
    padding: .3rem .5rem;
}

.tg-etiket[b-vxj9hgap8q] {
    font-size: .8rem;
    color: #6B7280;
}

.tg-tarihler[b-vxj9hgap8q] {
    display: flex;
    gap: .6rem;
}

.tg-tarihler label[b-vxj9hgap8q] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.tg-ipucu[b-vxj9hgap8q] {
    margin: 0;
    font-size: .75rem;
}

.tg-ayrac[b-vxj9hgap8q] {
    margin: .25rem 0;
    border: 0;
    border-block-start: 1px solid var(--fora-kart-cerceve);
}

.tg-kipler[b-vxj9hgap8q] {
    display: flex;
    gap: .5rem;
    margin-block-end: .5rem;
    max-inline-size: 560px;
}

.tg-kip[b-vxj9hgap8q] {
    flex: 1;
    padding: .45rem .9rem;
    border: 1px solid var(--fora-kart-cerceve);
    border-radius: 6px;
    background: var(--fora-yuzey-alt);
    color: inherit;
    font: inherit;
    cursor: pointer;
}

.tg-kip.etkin[b-vxj9hgap8q] {
    background: var(--fora-vurgu-para);
    border-color: var(--fora-vurgu-para);
    color: #fff;
    font-weight: 700;
}

.tg-durum[b-vxj9hgap8q] {
    margin-block: .25rem .5rem;
    font-size: .8rem;
    color: var(--fora-basari-metin);
}

.tg-durum.hata[b-vxj9hgap8q] {
    color: var(--fora-uyari-kirmizi-metin);
}

/* Kayan kap — otomatik yükleme gözcüsünün kökü (secici.js `sonuGozle`). */
.tg-liste[b-vxj9hgap8q] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    max-block-size: 60vh;
    overflow-y: auto;
}

/* ── Ürün satırı (MAUI şablonu) ── */
.tg-urun[b-vxj9hgap8q] {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: .6rem;
    align-items: center;
    padding: .5rem .6rem;
    border: 1px solid var(--fora-kart-cerceve);
    border-radius: 8px;
    background: var(--fora-yuzey);
}

.tu-gorsel[b-vxj9hgap8q] {
    inline-size: 60px;
    block-size: 60px;
    object-fit: contain;
}

.tu-bilgi[b-vxj9hgap8q] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-inline-size: 0;
}

.tu-baslik[b-vxj9hgap8q] {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    font-size: .9rem;
}

.tu-kucuk[b-vxj9hgap8q] {
    font-size: .75rem;
    color: #6B7280;
}

.tu-marka[b-vxj9hgap8q] {
    font-size: .75rem;
    color: var(--fora-metin-ikincil);
}

.tu-sag[b-vxj9hgap8q] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .1rem;
}

.tu-fiyat[b-vxj9hgap8q] {
    color: var(--fora-basari-metin);
}

/* ── Sipariş satırı (müşteri aktarım listesiyle aynı) ── */
.trendyol-satir[b-vxj9hgap8q] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .15rem .75rem;
    inline-size: 100%;
    padding: .6rem .75rem;
    border: 1px solid var(--fora-kart-cerceve);
    border-radius: 8px;
    background: var(--fora-yuzey);
    color: inherit;
    font: inherit;
    text-align: start;
    cursor: pointer;
}

.trendyol-satir:hover[b-vxj9hgap8q],
.trendyol-satir:focus-visible[b-vxj9hgap8q] {
    background: var(--fora-yuzey-alt);
}

.ts-no[b-vxj9hgap8q] {
    font-weight: 700;
}

.ts-durum[b-vxj9hgap8q] {
    font-size: .8rem;
    font-weight: 700;
    color: var(--fora-vurgu-para);
    text-align: end;
}

.ts-musteri[b-vxj9hgap8q] {
    font-size: .85rem;
    color: var(--fora-metin-ikincil);
}

.ts-tutar[b-vxj9hgap8q] {
    font-weight: 700;
    color: var(--fora-basari-metin);
    text-align: end;
}

.ts-ozet[b-vxj9hgap8q] {
    min-inline-size: 0;
    overflow: hidden;
    font-size: .75rem;
    color: #6B7280;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ts-tarih[b-vxj9hgap8q] {
    font-size: .75rem;
    color: #6B7280;
    text-align: end;
}
/* /Components/Pages/Login.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════════════════════
   Giriş ekranı — "iki panelli bölünmüş ekran" (2026-08-06, madde 2 + 5. geri bildirim)
   Tarihçe: Bootstrap `card` → ortalanmış tek kolon → BU (solda marka paneli, sağda form).
   Scoped CSS (Login.razor'a bağlı) → sınıf adları başka sayfaya sızmaz.
   ⚠️ Platform tek temada (light) çalışır → koyu tema varyantı bilinçli olarak yok.
   ═══════════════════════════════════════════════════════════════════════════════════════ */

/* ⚠️ 100vh DEĞİL: BosLayout `.bos-icerik` 1.5rem padding veriyor (üst+alt = 3rem).
   Düz 100vh sayfayı 3rem kaydırırdı. BosLayout'a dokunulmadı (üç ekran daha kullanıyor). */
.giris-kabi[b-7lb5221ary] {
    min-height: calc(100vh - 3rem);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* İki panelin ortak kabı. `overflow: hidden` + `border-radius`: sol panelin koyu zemini
   yuvarlak köşenin DIŞINA taşmasın (taşarsa köşeler kare görünür). */
.giris-panel[b-7lb5221ary] {
    display: flex;
    width: 100%;
    max-width: 900px;
    min-height: 540px;
    border-radius: 16px;
    overflow: hidden;
    background-color: #fff;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.12), 0 2px 6px rgba(17, 24, 39, 0.06);
}

/* ── SOL: marka paneli ────────────────────────────────────────────────────────────────
   Zemin mobil çekmece başlığının koyu tonundan türetilmiş bir gradyan (#555555 ailesi) —
   uygulamanın geri kalanıyla aynı gri dünyada kalır, yeni bir marka rengi icat etmez. */
.marka-panel[b-7lb5221ary] {
    flex: 0 0 42%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2.5rem 2rem;
    background-image: linear-gradient(160deg, #5f5f5f 0%, #4a4a4a 55%, #3E3E3E 100%);
    color: #fff;
}

/* Logo: KOYU panelde beyaz metinli varyant. Renkli olan yalnız mobil dar ekranda
   (aşağıdaki media query) görünür — orada panel açık zemine dönüyor. */
.marka-panel-logo[b-7lb5221ary] {
    display: block;
    width: 100%;
    max-width: 220px;
    height: auto;
    margin-bottom: 2rem;
}

.marka-panel-logo-renkli[b-7lb5221ary] {
    display: none; /* yalnız dar ekranda açılır */
}

/* ⚠️ Panelde tanıtım cümlesi YOK (2026-08-06, 3. tur): `.marka-metin` kuralı ve markup'ı
   kullanıcı isteğiyle kaldırıldı. Yalnız logo + selamlama + dipnot. */
.marka-baslik[b-7lb5221ary] {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 0;
}

/* `margin-top: auto` panelin DİBİNE yapıştırır (kolon flex). */
.marka-dipnot[b-7lb5221ary] {
    margin-top: auto;
    padding-top: 2rem;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #A8A19C;
}

/* ── SAĞ: form paneli ── */
.form-panel[b-7lb5221ary] {
    flex: 1 1 auto;
    min-width: 0; /* flex item içeriğinden ince olamaz kuralını kır (uzun DB adları taşırmasın) */
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2.5rem 2.25rem;
}

.giris-alt-metin[b-7lb5221ary] {
    color: #6B7280;
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

/* ⚖️ §6.2 telafi metni — tek tip hata mesajının zorunlu karşılığı (2026-09-05).
   Bilinçli olarak SÖNÜK: bir uyarı değil, kaybolan kullanıcı için bir çıkış kapısı. */
.giris-yardim[b-7lb5221ary] {
    color: #9CA3AF;
    font-size: 0.82rem;
    margin-top: 1rem;
    margin-bottom: 0;
    text-align: center;
}

.giris-yardim a[b-7lb5221ary] {
    color: #6B7280;
}

/* 🆕 dalga 113 — devre bağlanana kadar formun PASİF olduğunu söyleyen işaret (ön-render yarışı; spec-platform-tenant §17.5b).
   🔑 AKIŞTAKİ NET YÜKSEKLİĞİ SIFIR: işaret `.adim-etiketleri`'nin 1.75rem alt boşluğuna oturur (-1.5rem + 1.25rem + 0.25rem = 0) ⇒
   kalkınca hiçbir şey kaymaz. İlk sürümde akışta 32 px yer kaplıyordu: etkileşim kurulunca kart yeniden ortalanıyor, alanlar 16 px
   yukarı zıplıyordu (ölçüldü: kullanıcı kutusu 373 → 357 px). Kapı: `WebGirisOnRenderKapilariTests` toplamı sıfıra kilitler. */
.giris-hazirlaniyor[b-7lb5221ary] {
    color: #6B7280;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    height: 1.25rem;
    margin-block: -1.5rem 0.25rem;
}

/* ── Adım göstergesi: iki eşit çubuk ──
   Eski hâli "1️⃣ Bilgiler / 2️⃣ Veritabanı" metin satırıydı (emoji glifleri cihazdan cihaza
   farklı render ediyordu — mobilde de bu yüzden emoji ikonlardan vazgeçilmişti). */
.adim-cubugu[b-7lb5221ary] {
    display: flex;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
}

.adim-parca[b-7lb5221ary] {
    flex: 1 1 0;
    height: 4px;
    border-radius: 2px;
    background-color: #E5E7EB;
}

    .adim-parca.dolu[b-7lb5221ary] {
        background-color: #22628A; /* uygulama aksanı — sohbet toolbar'ındaki "+ Yeni Sohbet" ile aynı */
    }

.adim-etiketleri[b-7lb5221ary] {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.75rem;
    font-size: 0.75rem;
    color: #9CA3AF;
}

    .adim-etiketleri .etkin[b-7lb5221ary] {
        color: #22628A;
        font-weight: 600;
    }

/* Etiket: BÜYÜK HARF + geniş harf aralığı bırakıldı (2026-08-06, 3. tur — "daha şık"):
   sert/teknik duruyordu. Artık normal yazım, biraz daha koyu ve orta kalınlıkta. */
.giris-etiket[b-7lb5221ary] {
    font-size: 0.8rem;
    font-weight: 500;
    color: #4B5563;
    margin-bottom: 0.35rem;
}

/* ══ ALANLAR (2026-08-06, 3. tur "bilgi giriş kısımlarını daha şık hale getir") ═══════════
   Üç iyileştirme: ① solda alan tipini anlatan ikon, ② yumuşak zemin + belirgin odak halkası
   (Bootstrap'ın varsayılan mavi gölgesi yerine uygulama aksanı), ③ şifrede göster/gizle.
   ⚠️ İKONLAR `Tools/ikon_uret.py` ürünü DEĞİL ve olmamalı: o üretici mobil ikon ailesi
   (24x24, KabukIkonu ölçeği) içindir. Buradakiler web formuna ait jenerik "affordance"
   işaretleri, CSS'e gömülü data URI olarak yaşar (dış istek yok, CSP dostu) — aynı gerekçe
   docs/IKON_SISTEMI.md §3 "Marka varlıkları ≠ ikon ailesi" notunda da yazılı.
   ⚠️ Renk data URI'nin İÇİNDE gömülüdür (%23 = #): tonu değiştirmek için URI'yi düzenle. */
.alan-sarmal[b-7lb5221ary] {
    position: relative;
}

/* ⚠️⚠️ `::deep` ZORUNLU — KALDIRMA (2026-08-06, tarayıcıda ölçülerek yakalandı):
   Alan `<InputText>` ile üretilir, yani ALT BİLEŞEN çıktısıdır. Blazor'un scoped CSS'i scope
   niteliğini (`b-xxxx`) YALNIZ bu bileşenin KENDİ markup'ındaki elementlere ekler; alt
   bileşenin ürettiği `<input>` niteliği ALMAZ. Bu yüzden düz `.giris-alan { … }` yazıldığında
   derlenen seçici `.giris-alan[b-xxxx]` olur ve HİÇBİR ŞEYE UYMAZ — kural sessizce ölür.
   İlk denemede tam bu oldu: ölçümde alanlar 38px/6px, yani Bootstrap varsayılanıyla kalmıştı,
   üstüne ikonlar için ayırdığım sol boşluk da uygulanmadığı için ikon yazının üstüne binecekti.
   `::deep` seçiciyi `.alan-sarmal[b-xxxx] .giris-alan` yapar → alt bileşen çıktısına uyar.
   (Aynı desen `NavMenu.razor.css`'te `.nav-item ::deep .nav-link` olarak da kullanılıyor.)
   Özgüllük yan faydası: (0,3,0) > Bootstrap `.form-control` (0,1,0). */
.alan-sarmal[b-7lb5221ary]  .giris-alan {
    height: 52px;
    padding: 0.5rem 0.9rem 0.5rem 2.85rem; /* sol boşluk ikon içindir */
    border: 1.5px solid #E4E1DE;
    border-radius: 10px;
    background-color: #FCFCFB;
    font-size: 0.98rem;
    color: #1F2937;
    transition: border-color .12s ease, box-shadow .12s ease, background-color .12s ease;
}

    /* Yer tutucu: #B6B0AA denenmişti, kontrastı ~2.4:1 (çok zayıf) → koyulaştırıldı (~3.6:1).
       Tam 4.5:1'e çıkarılmadı çünkü yer tutucu burada YALNIZ ÖRNEK ("FIRMA001"); alanın ne
       istediğini üstteki ETİKET taşıyor. Yer tutucuya zorunlu bilgi yazılacaksa bu tonu
       koyulaştır (ya da bilgiyi etikete/yardım metnine taşı). */
    .alan-sarmal[b-7lb5221ary]  .giris-alan::placeholder {
        color: #8D867F;
    }

    /* Odak: Bootstrap'ın `.form-control:focus` mavi gölgesini EZER (app.css'te de bir kural var,
       bu yüzden `box-shadow` burada açıkça yeniden tanımlanıyor). */
    .alan-sarmal[b-7lb5221ary]  .giris-alan:focus {
        border-color: #22628A;
        background-color: #fff;
        box-shadow: 0 0 0 3px rgba(34, 98, 138, 0.15);
        outline: none;
    }

/* İkonlar — sol boşluğa yerleştirilen zemin görselleri (ikon = ::before değil `background`:
   `input` elemanı çocuk kabul etmez, sözde eleman da alamaz). */
.alan-sarmal[b-7lb5221ary]::before {
    content: "";
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
    pointer-events: none; /* ikon tıklamayı yutmasın, odak alana gitsin */
    z-index: 2;
}

/* Firma — bina */
.ikon-firma[b-7lb5221ary]::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A938C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18'/%3E%3Cpath d='M5 21V5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v16'/%3E%3Cpath d='M15 21V9h2a2 2 0 0 1 2 2v10'/%3E%3Cpath d='M9 7h2M9 11h2M9 15h2'/%3E%3C/svg%3E");
}

/* Kullanıcı — kişi */
.ikon-kullanici[b-7lb5221ary]::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A938C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21v-1a6 6 0 0 1 6-6h4a6 6 0 0 1 6 6v1'/%3E%3C/svg%3E");
}

/* Şifre — kilit */
.ikon-sifre[b-7lb5221ary]::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A938C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
}

/* Şifre göster/gizle — alanın SAĞ iç kenarında İKON düğme (2026-08-07, Mehmet).
   ⚠️ Burada da `::deep` şart (input alt bileşen çıktısı — yukarıdaki uzun nota bak); onsuz
   sağ boşluk uygulanmaz ve düğme şifrenin üstüne biner.
   ⚠️ Sağ boşluk 4.4rem → 3rem'e İNDİ: düğme artık metin değil 34px'lik kare bir ikon.
   Metin sürümünde bu boşluk "Göster"in genişliğine göre ayarlanmıştı. */
.alan-sarmal[b-7lb5221ary]  .alan-sifre {
    padding-right: 3rem; /* düğmenin altına metin girmesin */
}

/* ⚠️ İKON `background-image` OLARAK, düğme metni olarak DEĞİL: metin sürümünde ("Göster" ↔
   "Gizle") düğmenin genişliği duruma göre değişiyordu ve alanın sabit sağ boşluğu iki duruma
   birden yetmiyordu. Kare ikon düğme bu bağlantıyı tamamen koparır.
   ⚠️ Bu ikonlar `Tools/ikon_uret.py` ürünü DEĞİL ve olmamalı — o üretici mobil ikon ailesi
   içindir; bunlar web giriş ekranına ait CSS'e gömülü data URI'lar (dış istek yok, CSP dostu).
   Aynı gerekçe yukarıdaki alan ikonları (`ikon-firma`/`ikon-kullanici`/`ikon-sifre`) için de
   yazılı; bkz. docs/IKON_SISTEMI.md §3 "Marka varlıkları ≠ ikon ailesi".
   ⚠️ RENK data URI'nin İÇİNDE gömülü (%239A938C = #9A938C, alan ikonlarıyla AYNI ton — düğme
   alanın parçası gibi dursun). CSS ile renklendirilemez; ton değişecekse iki URI'yi de düzenle. */
.sifre-goz[b-7lb5221ary] {
    position: absolute;
    right: 0.45rem;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 20px 20px;
    cursor: pointer;
    z-index: 3;
}

    /* Kapalı durum → "göster" eylemi: AÇIK göz. */
    .sifre-goz.goster[b-7lb5221ary] {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A938C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
    }

    /* Açık durum → "gizle" eylemi: ÜSTÜ ÇİZİLİ göz. */
    .sifre-goz.gizle[b-7lb5221ary] {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A938C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.6 6.2A7.9 7.9 0 0 1 12 6c6.4 0 10 6 10 6a18 18 0 0 1-2.4 3.1M6.5 7.6A18 18 0 0 0 2 12s3.6 6 10 6a9.2 9.2 0 0 0 4-.9'/%3E%3Cpath d='M9.9 9.9a3 3 0 0 0 4.2 4.2'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E");
    }

    /* Hover/odak: yalnız ZEMİN değişir. Rengin SVG'ye gömülü olması yüzünden ikonun tonu
       değiştirilemiyor — bu bilinçli bir kabul, ikinci bir URI çifti eklemeye değmez. */
    .sifre-goz:hover[b-7lb5221ary],
    .sifre-goz:focus[b-7lb5221ary] {
        background-color: #F1EFED;
    }

    .sifre-goz:focus-visible[b-7lb5221ary] {
        outline: 2px solid #22628A;
        outline-offset: 1px;
    }

/* Birincil aksiyon — Bootstrap `btn-primary` (#1b6ec2) yerine uygulama aksanı.
   ⚠️ `btn-success` (yeşil) da kalktı: iki adımın birincil butonu artık AYNI renk, çünkü
   ikisi de aynı akışın devamı; renk değişimi "farklı bir iş yapıyorum" sinyali veriyordu. */
.giris-btn[b-7lb5221ary] {
    background-color: #22628A;
    border-color: #22628A;
    color: #fff;
    font-weight: 600;
}

    .giris-btn:hover:not(:disabled)[b-7lb5221ary],
    .giris-btn:focus:not(:disabled)[b-7lb5221ary] {
        background-color: #1B4E6E;
        border-color: #1B4E6E;
        color: #fff;
    }

    .giris-btn:disabled[b-7lb5221ary] {
        background-color: #22628A;
        border-color: #22628A;
        color: #fff;
        opacity: 0.55;
    }

/* ── Adım 2: veritabanı listesi ──
   ⚠️ `.vt-listesi` / `.vt-satiri` (+ `.secili`) KURALLARI BURADA DEĞİL, `wwwroot/app.css`'te
   (2026-08-07'de taşındı). Neden: aynı liste düzeni artık sol menüdeki "Veritabanı Değiştir"
   popup'ında da kullanılıyor (`Components/Shared/VeritabaniDegistirPopup.razor`) ve bu dosya
   Login.razor'a SCOPED olduğu için oraya uygulanmıyordu. İki kopya çıkarsa iki yüzey sessizce
   ayrışır → tek doğruluk kaynağı global CSS. Buraya geri KOPYALAMA. */

/* ══ DAR EKRAN (< 768px): iki panel TEK KOLONA iner ═══════════════════════════════════
   Marka paneli koyu bir blok olarak üstte kalsaydı küçük ekranda formu aşağı itip
   ekranın yarısını yiyordu → burada AÇIK zeminli, yalnız logo taşıyan ince bir banda
   dönüşür; tanıtım metni ve dipnot gizlenir (form öncelikli). Bu yüzden logo da RENKLİ
   varyanta geçer (beyaz olan açık zeminde okunmaz). */
@media (max-width: 767.98px) {
    .giris-panel[b-7lb5221ary] {
        flex-direction: column;
        min-height: 0;
    }

    /* 🐞 dalga 113 yan düzeltmesi (2026-09-27): zemin beyaza dönerken YAZI RENGİ de dönmeli — masaüstündeki `color: #fff`
       kalıyordu ve `currentColor` devralan dil seçicisi beyaz zeminde beyaz yazıyla BOŞ KUTU gibi görünüyordu
       (ölçüldü, 390 px: yazı rgb(255,255,255) · panel zemini rgb(255,255,255)). Kapı: `WebGirisDarEkranKapilariTests`. */
    .marka-panel[b-7lb5221ary] {
        flex: 0 0 auto;
        align-items: center;
        padding: 1.5rem 1.25rem 0.75rem 1.25rem;
        background-image: none;
        background-color: #fff;
        color: #4B5563;
    }

    .marka-panel-logo[b-7lb5221ary] {
        display: none; /* beyaz varyant: açık zeminde okunmaz */
    }

    .marka-panel-logo-renkli[b-7lb5221ary] {
        display: block;
        width: 100%;
        max-width: 230px;
        height: auto;
        margin-bottom: 0;
    }

    /* (`.marka-metin` bu listede DEĞİL — o element 3. turda tamamen kaldırıldı.) */
    .marka-baslik[b-7lb5221ary],
    .marka-dipnot[b-7lb5221ary] {
        display: none;
    }

    .form-panel[b-7lb5221ary] {
        padding: 1.25rem 1.5rem 2rem 1.5rem;
    }
}
/* /Components/Shared/KameraBarkodu.razor.rz.scp.css */
/* 🆕 Kameralı barkod (dalga 85). Yön-bağımsız (inline/block mantıksal özellikleri): Arapça arayüzde panel sol alta geçer. */
.kamera-dugmesi[b-ijgamp70pc] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    white-space: nowrap;
}

    .kamera-dugmesi.acik[b-ijgamp70pc] {
        border-color: var(--fora-aksan);
        color: var(--fora-aksan);
    }

/* İkon — MAUI `Resources/Images/ikon_barkod.svg`'nin (Material Symbols Rounded barcode_scanner, Apache 2.0) TÜRETİLMİŞ kopyası: yol birebir,
   tek fark renk — MAUI dosyası koyu başlık için açık mavi (#4FC3F7); burada MASKE ⇒ düğmenin metin rengini alır (açık zeminde okunur). */
.kamera-ikon[b-ijgamp70pc] {
    display: inline-block;
    width: 18px;
    height: 18px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M228.5-131.5Q217-120 200-120H80q-17 0-28.5-11.5T40-160v-120q0-17 11.5-28.5T80-320q17 0 28.5 11.5T120-280v80h80q17 0 28.5 11.5T240-160q0 17-11.5 28.5Zm680-177Q920-297 920-280v120q0 17-11.5 28.5T880-120H760q-17 0-28.5-11.5T720-160q0-17 11.5-28.5T760-200h80v-80q0-17 11.5-28.5T880-320q17 0 28.5 11.5ZM180-240q-8 0-14-6t-6-14v-440q0-8 6-14t14-6h40q8 0 14 6t6 14v440q0 8-6 14t-14 6h-40Zm106-6q-6-6-6-14v-440q0-8 6-14t14-6q8 0 14 6t6 14v440q0 8-6 14t-14 6q-8 0-14-6Zm134 6q-8 0-14-6t-6-14v-440q0-8 6-14t14-6h40q8 0 14 6t6 14v440q0 8-6 14t-14 6h-40Zm120 0q-8 0-14-6t-6-14v-440q0-8 6-14t14-6h80q8 0 14 6t6 14v440q0 8-6 14t-14 6h-80Zm146-6q-6-6-6-14v-440q0-8 6-14t14-6q8 0 14 6t6 14v440q0 8-6 14t-14 6q-8 0-14-6Zm80 0q-6-6-6-14v-440q0-8 6-14t14-6q8 0 14 6t6 14v440q0 8-6 14t-14 6q-8 0-14-6ZM228.5-771.5Q217-760 200-760h-80v80q0 17-11.5 28.5T80-640q-17 0-28.5-11.5T40-680v-120q0-17 11.5-28.5T80-840h120q17 0 28.5 11.5T240-800q0 17-11.5 28.5Zm503-57Q743-840 760-840h120q17 0 28.5 11.5T920-800v120q0 17-11.5 28.5T880-640q-17 0-28.5-11.5T840-680v-80h-80q-17 0-28.5-11.5T720-800q0-17 11.5-28.5Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M228.5-131.5Q217-120 200-120H80q-17 0-28.5-11.5T40-160v-120q0-17 11.5-28.5T80-320q17 0 28.5 11.5T120-280v80h80q17 0 28.5 11.5T240-160q0 17-11.5 28.5Zm680-177Q920-297 920-280v120q0 17-11.5 28.5T880-120H760q-17 0-28.5-11.5T720-160q0-17 11.5-28.5T760-200h80v-80q0-17 11.5-28.5T880-320q17 0 28.5 11.5ZM180-240q-8 0-14-6t-6-14v-440q0-8 6-14t14-6h40q8 0 14 6t6 14v440q0 8-6 14t-14 6h-40Zm106-6q-6-6-6-14v-440q0-8 6-14t14-6q8 0 14 6t6 14v440q0 8-6 14t-14 6q-8 0-14-6Zm134 6q-8 0-14-6t-6-14v-440q0-8 6-14t14-6h40q8 0 14 6t6 14v440q0 8-6 14t-14 6h-40Zm120 0q-8 0-14-6t-6-14v-440q0-8 6-14t14-6h80q8 0 14 6t6 14v440q0 8-6 14t-14 6h-80Zm146-6q-6-6-6-14v-440q0-8 6-14t14-6q8 0 14 6t6 14v440q0 8-6 14t-14 6q-8 0-14-6Zm80 0q-6-6-6-14v-440q0-8 6-14t14-6q8 0 14 6t6 14v440q0 8-6 14t-14 6q-8 0-14-6ZM228.5-771.5Q217-760 200-760h-80v80q0 17-11.5 28.5T80-640q-17 0-28.5-11.5T40-680v-120q0-17 11.5-28.5T80-840h120q17 0 28.5 11.5T240-800q0 17-11.5 28.5Zm503-57Q743-840 760-840h120q17 0 28.5 11.5T920-800v120q0 17-11.5 28.5T880-640q-17 0-28.5-11.5T840-680v-80h-80q-17 0-28.5-11.5T720-800q0-17 11.5-28.5Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Köşe paneli — ekranın sonucu görünür kalsın (MAUI SparkScan de küçük önizleme). Modal perdenin (popup kabı) ALTINDA: popup açıkken
   okuma zaten düşüyor (`Mesgul`), panel perdeyi delmemeli. */
.kamera-paneli[b-ijgamp70pc] {
    position: fixed;
    inset-block-end: 1rem;
    inset-inline-end: 1rem;
    z-index: 1040;
    width: min(360px, calc(100vw - 2rem));
    aspect-ratio: 4 / 3;
    background: #000;
    border-radius: 10px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .35);
    overflow: hidden;
}

    .kamera-paneli video[b-ijgamp70pc] {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.kamera-kapat[b-ijgamp70pc] {
    position: absolute;
    inset-block-start: .4rem;
    inset-inline-end: .4rem;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}

@media (max-width: 640px) {
    .kamera-paneli[b-ijgamp70pc] {
        inset-inline: .5rem;
        width: auto;
    }
}

/* Menünün içindeki kullanım (ana sayfa kutusu): masaüstünde menünün (250 px) sol altında — ana içerikle çakışmaz. */
@media (min-width: 641px) {
    .kamera-paneli.yan-panel[b-ijgamp70pc] {
        inset-inline-start: .5rem;
        inset-inline-end: auto;
        width: 234px;
    }
}
/* /Components/Shared/KarsilamaSayfasi.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════════════════════
   www karşılama sayfası (2026-09-24) — Login.razor.css'in iki panelli düzeninin SADE kopyası.
   Scoped CSS: sınıf adları başka bileşene sızmaz. Değerler (renk/ölçü) giriş ekranıyla AYNI;
   giriş ekranının tasarımı değişirse bunu da gözden geçir.
   ═══════════════════════════════════════════════════════════════════════════════════════ */

/* ⚠️ 100vh DEĞİL: BosLayout `.bos-icerik` 1.5rem padding veriyor (üst+alt = 3rem). */
.karsilama-kabi[b-89d56004o6] {
    min-height: calc(100vh - 3rem);
    display: flex;
    align-items: center;
    justify-content: center;
}

.karsilama-panel[b-89d56004o6] {
    display: flex;
    width: 100%;
    max-width: 900px;
    min-height: 460px;
    border-radius: 16px;
    overflow: hidden;
    background-color: #fff;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.12), 0 2px 6px rgba(17, 24, 39, 0.06);
}

.marka-panel[b-89d56004o6] {
    flex: 0 0 42%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2.5rem 2rem;
    background-image: linear-gradient(160deg, #5f5f5f 0%, #4a4a4a 55%, #3E3E3E 100%);
    color: #fff;
}

.marka-panel-logo[b-89d56004o6] {
    display: block;
    width: 100%;
    max-width: 220px;
    height: auto;
    margin-bottom: 2rem;
}

.marka-panel-logo-renkli[b-89d56004o6] {
    display: none;
}

.marka-baslik[b-89d56004o6] {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 0;
}

.marka-dipnot[b-89d56004o6] {
    margin-top: auto;
    padding-top: 2rem;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #A8A19C;
}

.form-panel[b-89d56004o6] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2.5rem 2.25rem;
}

.karsilama-alt-metin[b-89d56004o6] {
    color: #6B7280;
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

.karsilama-etiket[b-89d56004o6] {
    font-size: 0.8rem;
    font-weight: 500;
    color: #4B5563;
    margin-bottom: 0.35rem;
}

.alan-sarmal[b-89d56004o6] {
    position: relative;
}

/* Düz <input> (alt bileşen DEĞİL) ⇒ scope niteliği kendisine iner, `::deep` gerekmez. */
.karsilama-alan[b-89d56004o6] {
    height: 52px;
    padding: 0.5rem 0.9rem 0.5rem 2.85rem;
    border: 1.5px solid #E4E1DE;
    border-radius: 10px;
    background-color: #FCFCFB;
    font-size: 0.98rem;
    color: #1F2937;
    transition: border-color .12s ease, box-shadow .12s ease, background-color .12s ease;
}

    .karsilama-alan[b-89d56004o6]::placeholder {
        color: #8D867F;
    }

    .karsilama-alan:focus[b-89d56004o6] {
        border-color: #22628A;
        background-color: #fff;
        box-shadow: 0 0 0 3px rgba(34, 98, 138, 0.15);
        outline: none;
    }

.alan-sarmal[b-89d56004o6]::before {
    content: "";
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
    pointer-events: none;
    z-index: 2;
}

/* Firma — bina (giriş ekranındaki ikonla AYNI data URI) */
.ikon-firma[b-89d56004o6]::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A938C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18'/%3E%3Cpath d='M5 21V5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v16'/%3E%3Cpath d='M15 21V9h2a2 2 0 0 1 2 2v10'/%3E%3Cpath d='M9 7h2M9 11h2M9 15h2'/%3E%3C/svg%3E");
}

.karsilama-onizleme[b-89d56004o6] {
    margin: 0.5rem 0 0 0;
    font-size: 0.82rem;
    color: #6B7280;
    word-break: break-all;
}

    .karsilama-onizleme span[b-89d56004o6] {
        color: #22628A;
        font-weight: 600;
    }

.karsilama-btn[b-89d56004o6] {
    background-color: #22628A;
    border-color: #22628A;
    color: #fff;
    font-weight: 600;
}

    .karsilama-btn:hover[b-89d56004o6],
    .karsilama-btn:focus[b-89d56004o6] {
        background-color: #1B4E6E;
        border-color: #1B4E6E;
        color: #fff;
    }

/* "X ile devam et" — ikincil eylem: çerçeveli, aksan rengi metin. */
.karsilama-devam[b-89d56004o6] {
    border: 1.5px solid #22628A;
    color: #22628A;
    background-color: #fff;
    font-weight: 600;
}

    .karsilama-devam:hover[b-89d56004o6],
    .karsilama-devam:focus[b-89d56004o6] {
        background-color: #EEF4F8;
        color: #1B4E6E;
    }

@media (max-width: 767.98px) {
    .karsilama-panel[b-89d56004o6] {
        flex-direction: column;
        min-height: 0;
    }

    .marka-panel[b-89d56004o6] {
        flex: 0 0 auto;
        align-items: center;
        padding: 1.5rem 1.25rem 0.75rem 1.25rem;
        background-image: none;
        background-color: #fff;
    }

    .marka-panel-logo[b-89d56004o6] {
        display: none;
    }

    .marka-panel-logo-renkli[b-89d56004o6] {
        display: block;
        width: 100%;
        max-width: 230px;
        height: auto;
        margin-bottom: 0;
    }

    .marka-baslik[b-89d56004o6],
    .marka-dipnot[b-89d56004o6] {
        display: none;
    }

    .form-panel[b-89d56004o6] {
        padding: 1.25rem 1.5rem 2rem 1.5rem;
    }
}
/* /Components/Shared/KartLink.razor.rz.scp.css */
.kart-link[b-m5v1xk66i7] {
    transition: box-shadow 0.15s ease-in-out, transform 0.15s ease-in-out;
}

.kart-link:hover[b-m5v1xk66i7] {
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}
/* /Components/Shared/PazaryeriSiparisDetayPenceresi.razor.rz.scp.css */
/* 🆕 dalga 125 — pazaryeri sipariş detayı (ortak pencere; b2'ye kadar adı TrendyolSiparisDetayPenceresi — kurallar dalga 122'de aktarım
   ekranının CSS'indeydi; yalıtılmış CSS alt bileşene UYGULANMAZ, pencereyle birlikte buraya taşındı). Sınıf adları (`trendyol-*`) ölçüm aracı
   için korundu. Yön bağımsız (mantıksal özellikler). Renkler ortak belirteçlerden. */
.ts-durum[b-bu63cui3g5] {
    font-size: .8rem;
    font-weight: 700;
    color: var(--fora-vurgu-para);
    text-align: end;
}

.trendyol-detay[b-bu63cui3g5] {
    inline-size: 560px;
    max-inline-size: 94vw;
}

.trendyol-detay .fora-popup-govde[b-bu63cui3g5] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    max-block-size: 78vh;
    overflow-y: auto;
}

.trendyol-kart[b-bu63cui3g5] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: .75rem;
    border: 1px solid var(--fora-kart-cerceve);
    border-radius: 8px;
    background: var(--fora-yuzey);
    font-size: .85rem;
}

.tk-satir[b-bu63cui3g5] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: .75rem;
}

.tk-no[b-bu63cui3g5] {
    font-size: 1rem;
}

.tk-baslik[b-bu63cui3g5] {
    font-weight: 700;
}

.tk-ikincil[b-bu63cui3g5] {
    color: var(--fora-metin-ikincil);
}

.tk-soluk[b-bu63cui3g5] {
    color: #6B7280;
}

.tk-para[b-bu63cui3g5] {
    color: var(--fora-basari-metin);
    text-align: end;
}

.tk-ayrac[b-bu63cui3g5] {
    margin: .25rem 0;
    border: 0;
    border-block-start: 1px solid var(--fora-kart-cerceve);
}

.trendyol-kalem[b-bu63cui3g5] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding-block: .5rem;
    border-block-end: 1px solid var(--fora-kart-cerceve);
}

.trendyol-kalem:last-child[b-bu63cui3g5] {
    border-block-end: 0;
}

.tk-urun[b-bu63cui3g5] {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.tk-kucuk[b-bu63cui3g5] {
    font-size: .75rem;
    color: #6B7280;
}
/* /Components/Shared/TelefondanLisansAktar.razor.rz.scp.css */
/* 🔁 K21 (2026-10-11) — telefondan lisans aktarma kartı. QR beyaz zeminde ve yeterli sessiz bölgeyle (QRCoder
   kenar boşluğunu kendisi ekler) durur ki telefon kamerası ekrandan güvenle okusun. */
.lisans-devir[b-g5syiku9rj] {
    border-color: rgba(0, 0, 0, 0.12);
}

.lisans-devir-qr[b-g5syiku9rj] {
    background: #fff;
    padding: 0.25rem;
    border-radius: 0.25rem;
    line-height: 0;
}

.lisans-devir-qr[b-g5syiku9rj]  svg {
    width: 200px;
    height: 200px;
}

.lisans-devir-yazi[b-g5syiku9rj] {
    max-width: 26rem;
}

.lisans-devir-kod[b-g5syiku9rj] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 1.6rem;
    font-weight: 600;
    letter-spacing: 0.15em;
}
/* /Components/Shared/YzDosyaEkle.razor.rz.scp.css */
/* 🆕 dalga 121 — YZ "Dosya ekle" penceresi (MAUI YZDosyaEklePopup: 380 px kart, başlık + alt başlık, üç kaynak satırı).
   Yön bağımsız (inline/block mantıksal özellikler). Ortak pencere kabuğu erp.css'ten (fora-popup-zemin · fora-popup · fora-popup-baslik). */
.yz-dosya-ekle[b-9yk7iph966] {
    inline-size: 380px;
    max-inline-size: 92vw;
}

.yz-dosya-ekle-baslik[b-9yk7iph966] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-inline-size: 0;
}

.yz-dosya-ekle-baslik small[b-9yk7iph966] {
    font-size: .72rem;
    font-weight: 400;
    opacity: .75;
}

.yz-kaynak[b-9yk7iph966] {
    display: flex;
    align-items: center;
    gap: .75rem;
    inline-size: 100%;
    margin: 0;
    padding: .6rem .75rem;
    border: 1px solid var(--fora-kart-cerceve);
    border-radius: 10px;
    background: var(--fora-yuzey);
    color: inherit;
    font: inherit;
    text-align: start;
    cursor: pointer;
}

.yz-kaynak:hover[b-9yk7iph966],
.yz-kaynak:focus-visible[b-9yk7iph966],
.yz-kaynak:focus-within[b-9yk7iph966] {
    background: var(--fora-yuzey-alt);
}

.yz-kaynak-metin[b-9yk7iph966] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-inline-size: 0;
}

.yz-kaynak-metin small[b-9yk7iph966] {
    font-size: .75rem;
    color: #6B7280;
}

.yz-kaynak-ok[b-9yk7iph966] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #6B7280;
}

.yz-kamera-video[b-9yk7iph966] {
    inline-size: 100%;
    max-block-size: 60vh;
    border-radius: 8px;
    background: #000;
}

.yz-kamera-dugmeler[b-9yk7iph966] {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
}
