/* GnsUetds ortak stilleri. Renkler yalnız tema.css değişkenlerinden. */

/* ---- Genel ---- */
html[data-tema] body { background: var(--gns-zemin); color: var(--gns-yazi); }
html[data-tema] .card:not(.card-bordered) { border-radius: var(--gns-kose); box-shadow: var(--gns-golge); border: var(--gns-kart-kenar); background: var(--gns-yuzey); }
html[data-tema] .card.card-bordered { border: 1px solid var(--gns-cizgi); box-shadow: none; border-radius: var(--gns-kose-kucuk); background: var(--gns-yuzey); }
html[data-tema] .btn.btn-primary { background-color: var(--gns-vurgu); border-color: var(--gns-vurgu); color: var(--gns-vurgu-yazi); }
html[data-tema] .btn.btn-primary:hover, html[data-tema] .btn.btn-primary:focus-visible { background-color: var(--gns-vurgu-koyu); border-color: var(--gns-vurgu-koyu); color: var(--gns-vurgu-yazi); }
/* İkincil eylem (Yeni sefer, + düğmesi; spec §3 --gns-ikincil). Sade/Koyu'da ikincil = vurgu; Yumuşak'ta sarı zemin + koyu yazı (7.3). */
html[data-tema] .btn.gns-btn-ikincil { background-color: var(--gns-ikincil); border-color: var(--gns-ikincil); color: var(--gns-ikincil-yazi); }
html[data-tema] .btn.gns-btn-ikincil:hover, html[data-tema] .btn.gns-btn-ikincil:focus-visible, html[data-tema] .btn.gns-btn-ikincil:active { background-color: var(--gns-ikincil-koyu); border-color: var(--gns-ikincil-koyu); color: var(--gns-ikincil-yazi); }
/* theme38'in durum düğmesi renkleri AA'yı hiçbir temada geçmiyordu (light-success #1B84FF/#E9F3FF 3.2, light-danger #F8285A/#FFEEF3 3.5,
   light-warning #F6C000/#FFF8DD 1.6, btn-success beyaz/#1B84FF 3.6). Renk değişkenleri düğmenin kendisinde yeniden tanımlanır; Metronic'in
   normal ve hover/focus/active kuralları (zeminde !important dahil) aynı değişkenleri okur. Normal: koyu yazı/açık zemin (4.9 / 5.9 / 5.8),
   hover ve dolgulu düğme: beyaz yazı/koyu zemin (5.4 / 6.4 / 6.6). Renkler spec §3 durum renkleri. */
html[data-tema] .btn.btn-light-success, html[data-tema] .btn.btn-success { --bs-success: #127a3c; --bs-success-active: #0e6b34; --bs-success-light: #e7f6ec; --bs-success-inverse: #ffffff; }
html[data-tema] .btn.btn-light-warning { --bs-warning: #7a5a00; --bs-warning-active: #5c4400; --bs-warning-light: #fff7d6; --bs-warning-inverse: #ffffff; }
html[data-tema] .btn.btn-light-danger, html[data-tema] .btn.btn-danger { --bs-danger: #b42318; --bs-danger-active: #912018; --bs-danger-light: #fdecec; --bs-danger-inverse: #ffffff; }
/* TEST rozeti (spec §3 uyarı rengi, 8.5:1); badge-warning'in beyaz yazısı sarı zeminde 1.7 kalıyordu. */
.badge.gns-test-rozeti { background-color: #ffc700; color: #3d2e00; }
:where(html[data-tema]) a:where(:not(.btn):not(.menu-link)) { color: var(--gns-vurgu); }
:focus-visible { outline: 3px solid rgba(var(--gns-vurgu-rgb), .45); outline-offset: 2px; }
h1:focus, h1:focus-visible, [tabindex="-1"]:focus { outline: none; }

/* ---- Yerleşim (eski mycss.css) ---- */
@media only screen and (min-width: 992px) {
    #kt_app_header { display: none; }
    #kt_app_wrapper { margin-top: 0px !important; }
    body:has(#test-ortami-rozeti) #kt_app_content { padding-top: 2.5rem !important; }
}
#kt_app_sidebar { overflow: auto; }
#kt_app_content_container > .row { margin-left: 0; margin-right: 0; }

/* ---- Menü ve üst çubuk ---- */
html[data-tema] #kt_app_sidebar { background-color: var(--gns-menu-zemin); }
html[data-tema] #kt_app_sidebar .menu-heading { color: var(--gns-menu-baslik); }
html[data-tema] #kt_app_sidebar .menu-link .menu-title,
html[data-tema] #kt_app_sidebar .menu-link .menu-icon i { color: var(--gns-menu-yazi); }
html[data-tema] #kt_app_sidebar .menu-link.active,
html[data-tema] #kt_app_sidebar .menu-link:hover { background-color: var(--gns-menu-etkin-zemin); border-radius: var(--gns-kose-kucuk); }
html[data-tema] #kt_app_sidebar .menu-link.active .menu-title,
html[data-tema] #kt_app_sidebar .menu-link.active .menu-icon i,
html[data-tema] #kt_app_sidebar .menu-link:hover .menu-title,
html[data-tema] #kt_app_sidebar .menu-link:hover .menu-icon i { color: var(--gns-menu-etkin-yazi); font-weight: 600; }
html[data-tema="yumusak"] #kt_app_sidebar .menu-link.active { box-shadow: var(--gns-golge); }
html[data-tema] .app-sidebar-separator { border-color: var(--gns-cizgi); opacity: .5; }
html[data-tema] #kt_app_header { background-color: var(--gns-ust-zemin); color: var(--gns-ust-yazi); border-bottom: 1px solid var(--gns-cizgi); }
html[data-tema] #kt_app_header .ki-outline { color: var(--gns-ust-yazi); }

/* ---- Yardım içeriği (eski mycss.css) ---- */
.yardim-icerik img { max-width: 100%; height: auto; }
.yardim-icerik pre { white-space: pre-wrap; word-break: break-word; }
.yardim-icerik table { width: 100%; }
.yardim-icerik td, .yardim-icerik th { word-break: break-word; }

/* ---- Hesap sayfaları (giriş, kayıt, parola) ---- */
.gns-hesap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px 16px; background: var(--gns-zemin); }
.gns-hesap__kart { width: 100%; max-width: 480px; background: var(--gns-yuzey); border: 1px solid var(--gns-cizgi); border-radius: var(--gns-kose); box-shadow: var(--gns-golge); padding: 32px 28px; }
.gns-hesap__logo { display: block; margin: 0 auto 24px; height: 48px; }
@media (max-width: 575.98px) {
    .gns-hesap { align-items: flex-start; padding-top: 32px; }
    .gns-hesap__kart { padding: 24px 18px; }
}

/* ---- Blazor yeniden bağlanma penceresi ---- */
#components-reconnect-modal { font-family: Inter, sans-serif; color: var(--gns-yazi) !important; background-color: rgba(0, 0, 0, .35) !important; }

/* ---- Görünüm sayfası ---- */
.gns-tema-aciklama { color: var(--gns-yazi-soluk); margin: 0 .25rem 1.25rem; }
.gns-tema-secenegi { width: 100%; text-align: left; display: flex; flex-direction: column; gap: .5rem; padding: 12px; background: var(--gns-yuzey); border: 2px solid var(--gns-cizgi); border-radius: var(--gns-kose); cursor: pointer; color: var(--gns-yazi); }
.gns-tema-secenegi.secili { border-color: var(--gns-vurgu); box-shadow: 0 0 0 3px rgba(var(--gns-vurgu-rgb), .2); }
.gns-tema-secenegi__ad { font-weight: 700; font-size: 1.05rem; display: flex; align-items: center; gap: .5rem; }
.gns-tema-secenegi__isaret { font-size: .8rem; font-weight: 600; color: var(--gns-vurgu); }
.gns-tema-secenegi__aciklama { color: var(--gns-yazi-soluk); font-size: .875rem; }
.gns-tema-onizleme { display: flex; height: 140px; border-radius: var(--gns-kose-kucuk); overflow: hidden; background: var(--gns-zemin); border: 1px solid var(--gns-cizgi); }
.gns-tema-onizleme__menu { width: 28%; background: var(--gns-menu-zemin); padding: 10px 8px; display: flex; flex-direction: column; gap: 6px; }
.gns-tema-onizleme__menu span { height: 8px; border-radius: 4px; background: var(--gns-menu-yazi); opacity: .35; }
.gns-tema-onizleme__menu span.etkin { background: var(--gns-menu-etkin-yazi); opacity: 1; }
.gns-tema-onizleme__icerik { flex: 1; padding: 10px; display: flex; flex-direction: column; gap: 6px; font-size: .7rem; color: var(--gns-yazi); }
.gns-tema-onizleme__kart { display: flex; justify-content: space-between; align-items: center; background: var(--gns-yuzey); border: var(--gns-kart-kenar); border-left: var(--gns-kart-sol); border-radius: var(--gns-kose-kucuk); box-shadow: var(--gns-golge); padding: 6px 8px; }
.gns-tema-onizleme__dugme { align-self: flex-start; background: var(--gns-ikincil); color: var(--gns-ikincil-yazi); border-radius: var(--gns-kose-kucuk); padding: 4px 10px; font-weight: 700; }
.gns-tema-onizleme .gns-durum { font-size: .6rem; padding: .1rem .45rem; }

/* ---- Sayfa başlığı ---- */
.gns-sayfa-basligi { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin: 1rem .25rem 1.25rem; }
.gns-sayfa-basligi__sol { display: flex; align-items: center; gap: .5rem; min-width: 0; flex: 1 1 auto; }
.gns-sayfa-basligi__baslik { font-size: 1.5rem; font-weight: 700; margin: 0; color: var(--gns-yazi); overflow-wrap: anywhere; }
.gns-sayfa-basligi__islemler { display: flex; flex-wrap: wrap; gap: .5rem; }
.gns-sayfa-basligi__yol { flex-basis: 100%; order: 3; font-size: .85rem; }
/* Telefonda konum yolu gizlidir; yerine başlığın üstünde bölüme dönen bağlantı (yalnız < 768 px, dokunma hedefi ≥ 44 px). */
.gns-sayfa-basligi__geri { flex-basis: 100%; margin-bottom: -.5rem; }
.gns-geri-baglantisi { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding-right: .5rem; font-weight: 600; color: var(--gns-vurgu); text-decoration: none; overflow-wrap: anywhere; }
@media (max-width: 767.98px) {
    .gns-sayfa-basligi__baslik { font-size: 1.25rem; }
    .gns-sayfa-basligi__islemler { width: 100%; }
    .gns-sayfa-basligi__islemler > .btn { flex: 1; }
}

/* ---- Duyarlı liste ---- */
/* overflow görünür kalır: satırdaki işlem menüsü (mutlak konumlu liste) kırpılmasın; köşeler başlık hücrelerinde yuvarlanır. */
.gns-liste-tablo { border: 1px solid var(--gns-cizgi); border-radius: var(--gns-kose-kucuk); overflow: visible; }
.gns-tablo { --bs-table-bg: transparent; margin: 0; border-collapse: separate; border-spacing: 0; }
.gns-tablo thead th:first-child { border-top-left-radius: var(--gns-kose-kucuk); }
.gns-tablo thead th:last-child { border-top-right-radius: var(--gns-kose-kucuk); }
/* .table öneki: Metronic'in ".table:not(.table-bordered) th { color/font: inherit }" kuralı (özgüllük 0,2,1) başlık rengini ezmesin; Koyu temada koyu zemin üstünde koyu metin kalıyordu. */
.table.gns-tablo thead th { background: var(--gns-tablo-baslik-zemin); color: var(--gns-tablo-baslik-yazi); font-weight: 600; font-size: .8rem; padding: .75rem; border-bottom: 1px solid var(--gns-cizgi); }
/* Metronic ilk/son hücre dolgusunu sıfırlar; metin tablo kenarına yapışmasın. */
.table.gns-tablo th:first-child, .table.gns-tablo td:first-child { padding-left: 1rem; }
.table.gns-tablo th:last-child, .table.gns-tablo td:last-child { padding-right: 1rem; }
/* Kod benzeri değerler (plaka, UETDS no, TC, telefon, vergi no) sözcük ortasından kırılmaz; serbest metin `anywhere` ile kırılmaya devam eder. */
.gns-tablo .gns-kod { white-space: nowrap; overflow-wrap: normal; }
.gns-tablo td { padding: .75rem; border-bottom: 1px solid var(--gns-cizgi); overflow-wrap: anywhere; color: var(--gns-yazi); }
.gns-tablo tbody tr:last-child td { border-bottom: 0; }
.gns-tablo td.gns-islemler { white-space: nowrap; text-align: right; }
.gns-liste-kartlar { display: flex; flex-direction: column; gap: .75rem; }
.gns-liste-karti { background: var(--gns-yuzey); border: var(--gns-kart-kenar); border-left: var(--gns-kart-sol); border-radius: var(--gns-kose); box-shadow: var(--gns-golge); padding: .875rem 1rem; overflow-wrap: anywhere; min-width: 0; }
[data-tema="koyu"] .gns-liste-karti:has(.gns-durum--iptal) { border-left-color: var(--gns-iptal-zemin); }
.gns-kart-ust { display: flex; justify-content: space-between; align-items: flex-start; gap: .5rem; }
.gns-kart-baslik { font-weight: 700; font-size: 1rem; color: var(--gns-yazi); min-width: 0; }
.gns-kart-alt { color: var(--gns-yazi-soluk); font-size: .875rem; margin-top: .25rem; }
.gns-kart-satir { margin-top: .25rem; }
.gns-kart-islemler { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.gns-kart-islemler > .btn { flex: 1 1 auto; }
.gns-kart-islemler:not(:has(*)) { display: none; }
.gns-liste-bos { padding: 2rem 1rem; text-align: center; color: var(--gns-yazi-soluk); }
/* Telefonda liste öğeleri zaten kart: listeyi taşıyan dış kart çerçevesiz, zeminsiz ve dolgusuz olur (kart içinde kart olmasın). */
@media (max-width: 767.98px) {
    html[data-tema] .card:has(> .card-body > .gns-liste-kartlar) { background: transparent; border: 0; box-shadow: none; }
    html[data-tema] .card:has(> .card-body > .gns-liste-kartlar) > .card-body { padding: 0; }
}

/* ---- Durum rozeti ---- */
.gns-durum { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .65rem; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.gns-durum--gecerli { background: var(--gns-gecerli-zemin); color: var(--gns-gecerli-yazi); }
.gns-durum--iptal { background: var(--gns-iptal-zemin); color: var(--gns-iptal-yazi); }
.gns-durum--bekliyor { background: var(--gns-bekliyor-zemin); color: var(--gns-bekliyor-yazi); }
[data-tema="yumusak"] .gns-durum::before { content: "●"; font-size: .7em; }

/* ---- İşlem menüsü ---- */
.gns-islem-menusu { position: relative; display: inline-block; }
.gns-islem-menusu__dugme { min-width: 44px; font-weight: 700; letter-spacing: .05em; }
.gns-islem-menusu__perde { position: fixed; inset: 0; z-index: 1045; }
.gns-islem-menusu__liste { position: absolute; right: 0; top: calc(100% + 4px); z-index: 1046; min-width: 200px; background: var(--gns-yuzey); border: 1px solid var(--gns-cizgi); border-radius: var(--gns-kose-kucuk); box-shadow: 0 8px 24px rgba(16, 24, 40, .14); padding: .35rem; display: flex; flex-direction: column; }
.gns-islem-menusu__oge { display: flex; align-items: center; min-height: 44px; padding: 0 .85rem; border: 0; background: transparent; text-align: left; border-radius: 6px; color: var(--gns-yazi) !important; text-decoration: none; font-weight: 500; white-space: nowrap; }
.gns-islem-menusu__oge:hover { background: var(--gns-zemin); }
.gns-islem-menusu__oge--tehlike { color: #b42318 !important; }
.gns-islem-menusu__oge:disabled { opacity: .5; }
.gns-liste-karti .gns-islem-menusu__liste { left: auto; right: 0; }
/* Listenin sağ kenarı düğmeye hizalıdır; düğme kart işlem satırında sağa dayalı olunca liste ekran dışına taşmaz. */
.gns-kart-islemler > .gns-islem-menusu { margin-left: auto; }

/* ---- Alt sekme çubuğu (telefon) ---- */
.gns-alt-sekme { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035; display: flex; justify-content: space-around; align-items: center; height: calc(60px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: var(--gns-cubuk-zemin); border-top: 1px solid var(--gns-cizgi); box-shadow: 0 -2px 10px rgba(16, 24, 40, .06); }
.gns-alt-sekme__oge { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 48px; border: 0; background: transparent; color: var(--gns-cubuk-yazi) !important; font-size: .7rem; font-weight: 600; text-decoration: none; }
.gns-alt-sekme__oge i { color: inherit !important; }
.gns-alt-sekme__oge.etkin { color: var(--gns-cubuk-etkin) !important; }
.gns-alt-sekme__ekle { flex: none; width: 52px; height: 52px; margin-top: -22px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: var(--gns-ikincil); color: var(--gns-ikincil-yazi) !important; box-shadow: 0 6px 14px rgba(0, 0, 0, .18); }
.gns-alt-sekme__ekle i { color: inherit !important; }
@media (max-width: 767.98px) {
    body:has(.gns-alt-sekme) #kt_app_content { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
    body:has(.gns-alt-sekme) #kt_app_footer { display: none; }
    body:has(.gns-alt-sekme) #kt_scrolltop { display: none !important; }
}

/* ---- Sabit işlem çubuğu ---- */
.gns-sabit-islem { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }
@media (max-width: 767.98px) {
    .gns-sabit-islem { position: fixed; left: 0; right: 0; bottom: calc(60px + env(safe-area-inset-bottom)); z-index: 1030; margin: 0; padding: .625rem 1rem; background: var(--gns-yuzey); border-top: 1px solid var(--gns-cizgi); box-shadow: 0 -2px 10px rgba(16, 24, 40, .06); }
    .gns-sabit-islem > .btn { flex: 1; }
    body:has(.gns-sabit-islem) #kt_app_content { padding-bottom: calc(150px + env(safe-area-inset-bottom)); }
}

/* ---- Dokunmatik kullanım ---- */
@media (pointer: coarse), (max-width: 991.98px) {
    .form-control, .form-select { min-height: 44px; font-size: 1rem; }
    .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
    .btn.btn-icon { min-width: 44px; }
    .form-check-input { width: 1.375rem; height: 1.375rem; }
    .menu-link { min-height: 44px; }
    .breadcrumb a { display: inline-block; padding: .6rem 0; }
}

/* ---- Açılır menü (çekmece, < 992 px): sabit çubukların ve alt sekme çubuğunun üstünde açılır (perde z-index'i buna göre bir eksik) ---- */
@media (max-width: 991.98px) {
    #kt_app_sidebar.drawer { z-index: 1050; }
}

/* ---- Blazor hata çubuğu: yalnız devrede beklenmeyen hata olunca görünür (blazor.server.js display:block yapar) ---- */
#blazor-error-ui { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1060; padding: .75rem 3rem .75rem 1rem;
    background: #ffc700; color: #3d2e00; font-weight: 600; box-shadow: 0 -2px 10px rgba(0, 0, 0, .15); }
#blazor-error-ui .reload { color: #3d2e00; text-decoration: underline; margin-left: .5rem; }
#blazor-error-ui .dismiss { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); cursor: pointer; color: #3d2e00; text-decoration: none; }
