﻿/* Panel Vue ekranlarinin ortak gorsel dili (.gpanel kapsami).
   Destek ile baslayan sayfa-sayfa Vue gecisinde tum ekranlar bunu kullanir. */

    [v-cloak] {
        display: none;
    }

    .gpanel .satir-tikla {
        cursor: pointer;
    }

    /* ================= Index: filtre çubuğu ve iş listesi ================= */

    .gpanel .gfiltre-satir {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 10px;
        align-items: flex-end;
    }

    .gpanel .gfiltre-alan {
        flex: 1 1 130px;
        min-width: 120px;
    }

        .gpanel .gfiltre-alan.dar {
            flex: 0 1 100px;
            min-width: 90px;
        }

        .gpanel .gfiltre-alan.genis {
            flex: 1.5 1 170px;
        }

    .gpanel .gfiltre-btnlar {
        display: flex;
        gap: 8px;
        flex: none;
        align-items: flex-end;
        margin-left: auto;
    }

    /* Compact filtre satiri: veri girisine daha cok yer kalsin (Fiyat ekranlari).
       Mobilde dokunma hedefi kucultulmez. */
    @media (min-width: 768px) {
        .gpanel .gfiltre-satir.gfiltre-compact {
            gap: 4px 8px;
        }

            .gpanel .gfiltre-satir.gfiltre-compact label {
                font-size: 10px;
                margin-bottom: 1px;
            }

            .gpanel .gfiltre-satir.gfiltre-compact .form-control,
            .gpanel .gkart .gfiltre-satir.gfiltre-compact .form-control {
                height: 26px;
                padding: 2px 8px;
                font-size: 12px;
            }

            .gpanel .gfiltre-satir.gfiltre-compact .gonay {
                padding: 3px 0;
                font-size: 11px;
            }

            .gpanel .gfiltre-satir.gfiltre-compact .btn,
            .gpanel .gfiltre-satir.gfiltre-compact .gislem-btn.btn-sm,
            .gpanel .gfiltre-satir.gfiltre-compact .gnotr-btn.btn-sm,
            .gpanel .gfiltre-satir.gfiltre-compact .gsil-btn.btn-sm {
                padding: 3px 12px;
            }
    }

    @media (max-width: 767px) {
        .gpanel .gfiltre-alan,
        .gpanel .gfiltre-alan.dar,
        .gpanel .gfiltre-alan.genis {
            flex: 1 1 calc(50% - 10px);
            min-width: calc(50% - 10px);
        }

        .gpanel .gfiltre-btnlar {
            width: 100%;
        }

            .gpanel .gfiltre-btnlar .btn {
                flex: 1;
            }
    }

    .gpanel .gtesis-link {
        color: #2563eb;
        font-weight: 600;
    }

    /* Panel icinde buton kenarligi tek degerde: ayni satirdaki butonlar ayni yukseklikte. */
    .gpanel .btn {
        border-radius: 8px;
        border-width: 1px;
    }

    /* Kartlar */
    .gpanel .gkart {
        background: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        padding: 10px 12px;
        margin-bottom: 10px;
    }

    .gpanel .gkart-baslik {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 8px;
    }

        .gpanel .gkart-baslik h4 {
            margin: 0;
            font-size: 14px;
            font-weight: 700;
            color: #111827;
        }

    /* Tesis arama */
    .gpanel .garama {
        max-width: 480px;
        display: flex;
    }

        .gpanel .garama .form-control {
            border-radius: 8px 0 0 8px;
            height: 34px;
            flex: 1 1 auto;
        }

        /* oto-tamamla sarmalayicisi da esnesin; yoksa kutu 720px olsa da giris 220px kalir. */
        .gpanel .garama .goto-sar {
            flex: 1 1 auto;
            min-width: 0;
        }

        .gpanel .garama .input-group-btn {
            display: flex;
            width: auto;
        }

        .gpanel .garama .btn {
            border-radius: 0 8px 8px 0;
            height: 34px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 5px;
            padding: 0 14px;
        }

    @media (max-width: 767px) {
        .gpanel .garama .form-control,
        .gpanel .garama .btn {
            height: 38px;
        }
    }

    /* Tesis bilgi */
    .gpanel .gtesis-ust {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        flex-wrap: wrap;
    }

    .gpanel .gtesis-ad {
        margin: 0 0 2px;
        font-size: 15px;
        font-weight: 700;
        color: #111827;
    }

        /* Sözleşme durumu tesis adının hemen yanında */
        .gpanel .gtesis-ad .gpil {
            margin-left: 8px;
            font-size: 12px;
            vertical-align: 2px;
        }

    .gpanel .gtesis-detay {
        display: inline-block;
        margin-right: 14px;
        color: #64748b;
        font-size: 12px;
        margin-bottom: 0;
    }

        .gpanel .gtesis-detay .fa {
            width: 16px;
            text-align: center;
            margin-right: 4px;
            color: #94a3b8;
        }

    /* Durum rozetleri */
    .gpanel .gpil {
        display: inline-block;
        padding: 2px 10px;
        border-radius: 999px;
        font-size: 11px;
        font-weight: 700;
        white-space: nowrap;
    }

    .gpanel .gpil-yesil {
        background: #dcfce7;
        color: #166534;
    }

    .gpanel .gpil-sari {
        background: #fef3c7;
        color: #92400e;
    }

    .gpanel .gpil-kirmizi {
        background: #fee2e2;
        color: #991b1b;
    }

    .gpanel .gpil-gri {
        background: #f1f5f9;
        color: #475569;
        font-weight: 600;
    }

    /* Uyarı bantları */
    .gpanel .guyari {
        border-radius: 8px;
        padding: 5px 10px;
        margin-top: 6px;
        font-size: 12px;
        font-weight: 600;
    }

        .gpanel .guyari .fa {
            margin-right: 6px;
        }

    .gpanel .guyari-kirmizi {
        background: #fee2e2;
        border: 1px solid #fecaca;
        color: #991b1b;
    }

    .gpanel .guyari-mavi {
        background: #e0f2fe;
        border: 1px solid #bae6fd;
        color: #075985;
    }

    /* Form */
    .gpanel .gkart label {
        display: block;
        font-size: 11px;
        font-weight: 600;
        color: #475569;
        margin-bottom: 2px;
    }

    /* Bootstrap 3 izgarasi float tabanli: bir hucre komsularindan yuksek olunca sonraki
       kolonlar ona takilip satir duzeni tirtikli hale geliyor (onay kutusu + giris karisik
       satirlarda gorunuyordu). Izgarayi flex'e cevirince her satir kendi icinde bagimsiz
       kalir; kolon genislikleri yine col-* kurallarindan gelir. */
    .gpanel .row {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
        /* Bootstrap'in 30px olugu bu yogun panelde fazla; ayrica -15px negatif kenar
           bosluk gkart (12px) ve modal govdesinin (10px) dolgusunu asip tasmaya yol
           aciyordu. Oluk 12px'e cekildi. */
        margin-left: -6px;
        margin-right: -6px;
    }

        .gpanel .row > [class*="col-"] {
            flex: 0 0 auto;
            padding-left: 6px;
            padding-right: 6px;
        }

    .gpanel .galan {
        margin-bottom: 8px;
    }

        /* Yalnizca onay kutusu iceren alan hucresinde etiket satiri yoktur; onay kutusu
           hucrenin tepesinde kalip yanindaki girisle ayni hizaya gelmez. Etiket satiri
           kadar (17px) asagi itip giris kutusuyla ortaliyoruz. */
        .gpanel .galan > .gonay:first-child {
            margin-top: 17px;
        }

    /* Onay kutusu satiri: etiket kutunun yaninda, alan yuksekligi galan ile hizali. */
    .gpanel .gonay {
        display: flex;
        align-items: center;
        gap: 7px;
        margin: 0;
        padding: 6px 0;
        font-weight: 600;
        font-size: 12px;
        color: #475569;
        cursor: pointer;
    }

        .gpanel .gonay input[type="checkbox"] {
            margin: 0;
            width: 15px;
            height: 15px;
            cursor: pointer;
        }

    /* Yalnizca onay kutularindan olusan bolum: sik, esit sutunlu izgara. Kutulari
       col-sm-4 + galan ile dagitmak (etiket payi icin 17px ust bosluk) satirlari
       savruk gosteriyordu. Sutun sayisi genislige gore kendiliginden degisir;
       mobilde tek sutun. */
    .gpanel .gonay-izgara {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 0 20px;
        margin-bottom: 10px;
    }

        /* Iki-uc kutuluk kucuk gruplar: esit sutunlara dagilip birbirinden uzaklasmasin,
           yan yana aksin. */
        .gpanel .gonay-izgara.gonay-satir {
            display: flex;
            flex-wrap: wrap;
            gap: 0 24px;
        }

        .gpanel .gonay-izgara.gonay-izgara-dar {
            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        }

        .gpanel .gonay-izgara .gonay {
            padding: 5px 0;
        }

    /* Form bolumleri: ilk bolum haric her bolum ustten ince cizgiyle ayrilir;
       ayni sekmede farkli bir gruba gecildigi gozle gorulsun. */
    .gpanel .row > .gbolum {
        border-top: 1px solid #e5e7eb;
        margin-top: 6px;
        padding-top: 12px;
    }

        .gpanel .row > .gbolum:first-child {
            border-top: 0;
            margin-top: 0;
            padding-top: 0;
        }

    /* Oda tip <-> fiyat tip baglanti formunun basligi: oda tipi buyuk, fiyat altinda. */
    .gpanel .gbag-baslik {
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .gpanel .gbag-oda {
        font-size: 18px;
        font-weight: 700;
        color: #111827;
        line-height: 1.3;
    }

        .gpanel .gbag-oda .fa {
            color: #4f46e5;
            margin-right: 6px;
        }

    .gpanel .gbag-fiyat {
        margin-top: 4px;
        font-size: 13px;
        font-weight: 600;
        color: #475569;
    }

        .gpanel .gbag-fiyat .fa {
            color: #94a3b8;
            margin-right: 6px;
        }

    .gpanel .gbag-aciklama {
        font-weight: 400;
        color: #64748b;
    }

    /* Resim silme onayindaki kucuk onizleme */
    .gpanel .gresim-onay-onizleme img,
    .gmodal .gresim-onay-onizleme img {
        max-width: 100%;
        max-height: 160px;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        padding: 4px;
        background: #f8fafc;
    }

    /* Ceviri girisi baglantisi (alan etiketinin yaninda) */
    .gpanel .gceviri-link {
        margin-left: 6px;
        font-weight: 400;
        font-size: 11px;
        color: #4f46e5;
        cursor: pointer;
    }

        .gpanel .gceviri-link:hover {
            text-decoration: underline;
        }

    .gpanel .gkart .form-control {
        border-radius: 7px;
        border-color: #d1d5db;
        box-shadow: none;
        height: 30px;
        padding: 4px 10px;
        font-size: 13px;
    }

    .gpanel .gkart textarea.form-control {
        height: auto;
    }

    .gpanel .gkart .form-control:focus {
        border-color: #2563eb;
        box-shadow: 0 0 0 3px rgba(37, 99, 235, .15);
    }

    @media (max-width: 767px) {
        /* iOS odaklanınca zoom yapmasın; mobilde dokunma hedefi rahat kalsın */
        .gpanel .form-control,
        .gpanel .gkart .form-control {
            font-size: 16px;
            height: 38px;
        }

        .gpanel .gkart textarea.form-control {
            height: auto;
        }
    }

    /* Kapandı mı switch */
    .gpanel label.gswitch {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        cursor: pointer;
        margin: 0;
        font-size: 12px;
        font-weight: 700;
        color: #334155;
        -webkit-user-select: none;
        user-select: none;
    }

        .gpanel .gswitch input {
            position: absolute;
            opacity: 0;
        }

        .gpanel .gswitch .giz {
            position: relative;
            flex: none;
            width: 36px;
            height: 20px;
            border-radius: 999px;
            background: #cbd5e1;
            transition: background .15s;
        }

            .gpanel .gswitch .giz::after {
                content: '';
                position: absolute;
                top: 3px;
                left: 3px;
                width: 14px;
                height: 14px;
                border-radius: 50%;
                background: #fff;
                box-shadow: 0 1px 2px rgba(0, 0, 0, .25);
                transition: left .15s;
            }

        .gpanel .gswitch input:checked + .giz {
            background: #16a34a;
        }

            .gpanel .gswitch input:checked + .giz::after {
                left: 19px;
            }

    /* Form butonları */
    .gpanel .gbtn-satir {
        display: flex;
        gap: 8px;
        justify-content: flex-end;
        flex-wrap: wrap;
        margin-top: 0;
    }

    /* Kapandı switch'i Yönlendirilen seçiminin yanında, input yüksekliğine ortalı */
    .gpanel .gswitch-hiza {
        display: flex;
        align-items: center;
        min-height: 30px;
    }

    @media (min-width: 768px) {
        /* Yönlendirilen seçimiyle aynı satırda, etiket yüksekliği kadar aşağıda hizala */
        .gpanel .gbtn-hiza,
        .gpanel .gswitch-hiza {
            margin-top: 17px;
        }
    }

    @media (max-width: 767px) {
        .gpanel .gbtn-satir {
            flex-direction: column-reverse;
        }

            .gpanel .gbtn-satir .btn {
                width: 100%;
            }

        /* Kart basligindaki eylemler (Duzenle / Sil) mobilde alt alta ve ters sirada
           degil, basligin altinda tek satirda dursun; column-reverse Sil'i ustte
           gosteriyordu. */
        .gpanel .gkart-baslik .gbtn-satir {
            flex-direction: row;
            flex-wrap: wrap;
            gap: 6px;
        }

            .gpanel .gkart-baslik .gbtn-satir .btn {
                width: auto;
            }

        /* Bu projedeki bootstrap.css'te col-sm/md/lg de "float:left" aliyor ama
           genislik kurali yalnizca >=768px'te tanimli. Mobilde kolon icerigi kadar
           daralip yaniyor; acikca tam genislik verip float'i kapatiyoruz.
           Ayrica col-xs de tasiyan kolonlar bu kuraldan muaf. */
        .gpanel [class*="col-sm-"]:not([class*="col-xs-"]),
        .gpanel [class*="col-md-"]:not([class*="col-xs-"]),
        .gpanel [class*="col-lg-"]:not([class*="col-xs-"]) {
            float: none;
            width: 100%;
        }

        /* Mobilde her hucre tam genislik oldugu icin hizalama bosluguna gerek yok. */
        .gpanel .galan > .gonay:first-child {
            margin-top: 0;
        }

        /* Modal footer mobilde alt alta: asil eylem ustte, Kapat altta. */
        .gpanel .gmodal .modal-footer {
            flex-direction: column;
        }

            .gpanel .gmodal .modal-footer .btn {
                width: 100%;
            }

        /* Detay ekranlarindaki coklu esdeger eylem satiri: alt alta tam genislik yerine
           kendi genisliginde sarilarak dursun (7 buton ekranin tamamini kapliyordu ve
           column-reverse yuzunden ters siralaniyordu). */
        .gpanel .gbtn-satir.gbtn-satir-sar {
            flex-direction: row;
            justify-content: flex-start;
        }

            .gpanel .gbtn-satir.gbtn-satir-sar .btn {
                width: auto;
            }

        /* Kart icindeki islem satiri istisna: butonlar yan yana ve kendi genisliginde. */
        .gpanel .gkayit .gbtn-satir {
            flex-direction: row;
            justify-content: flex-start;
        }

            .gpanel .gkayit .gbtn-satir .btn {
                width: auto;
            }
    }

    /* Açık / Kapalı segment */
    .gpanel .gseg {
        display: inline-flex;
        background: #e5e7eb;
        border-radius: 10px;
        padding: 3px;
        /* Cok ogeli seritler (8 dil sekmesi gibi) dar ekranda tasmasin: kendi
           icinde yatay kaysin. Sarmasi istenen yerlerde gseg-sar kullanilir. */
        max-width: 100%;
        overflow-x: auto;
    }

        .gpanel .gseg > button {
            flex: 0 0 auto;
        }

        .gpanel .gseg button {
            border: 0;
            background: transparent;
            padding: 4px 12px;
            border-radius: 7px;
            font-size: 12px;
            font-weight: 600;
            color: #475569;
        }

            .gpanel .gseg button.aktif {
                background: #fff;
                color: #111827;
                box-shadow: 0 1px 3px rgba(0, 0, 0, .15);
            }

    /* Görüşme tablosu (masaüstü) */
    .gpanel .gtablo-sar {
        overflow-x: auto;
    }

        .gpanel .gtablo-sar table {
            margin: 0;
        }

        .gpanel .gtablo-sar th {
            font-size: 10px;
            text-transform: uppercase;
            letter-spacing: .03em;
            color: #64748b;
            border-bottom: 2px solid #e5e7eb;
            white-space: nowrap;
            padding: 4px 6px;
        }

        .gpanel .gtablo-sar td {
            border-top: 1px solid #f1f5f9;
            vertical-align: middle;
            font-size: 12px;
            padding: 4px 6px;
            white-space: nowrap;
        }

        /* Uzun içerik kolonları tabloyu şişirmesin */
        .gpanel .gtablo-sar td.kisalt {
            max-width: 220px;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .gpanel .gtablo-sar td.kisa {
            max-width: 110px;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .gpanel .gtablo-sar td.gtesis-link {
            max-width: 160px;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .gpanel .gtablo-sar tr.satir-tikla:hover td {
            background: #f8fafc;
        }

        .gpanel .gtablo-sar tr.secili td {
            background: #eff6ff;
        }

    /* Görüşme kartları (mobil) */
    .gpanel .gkayit {
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        padding: 10px 12px;
        margin-bottom: 10px;
        background: #fff;
        cursor: pointer;
    }

        /* Tiklanmayan kart: imlec el olmasin. */
        .gpanel .gkayit.gkayit-duz {
            cursor: default;
        }

        .gpanel .gkayit.secili {
            border-color: #2563eb;
            background: #eff6ff;
        }

    .gpanel .gkayit-ust {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        margin-bottom: 6px;
    }

    .gpanel .gkayit-tarih {
        font-size: 12px;
        color: #64748b;
        white-space: nowrap;
    }

    .gpanel .gkayit-konu {
        font-size: 14px;
        font-weight: 600;
        color: #111827;
        margin-bottom: 4px;
        word-break: break-word;
    }

    .gpanel .gkayit-islem {
        font-size: 13px;
        color: #334155;
        margin-bottom: 6px;
        word-break: break-word;
    }

    .gpanel .gkayit-alt {
        display: flex;
        flex-wrap: wrap;
        gap: 4px 14px;
        font-size: 12px;
        color: #64748b;
    }

        .gpanel .gkayit-alt .fa {
            margin-right: 3px;
            color: #94a3b8;
        }

    .gpanel .gbos {
        text-align: center;
        color: #94a3b8;
        padding: 18px 0;
        font-size: 13px;
    }

/* Kaydet yanindaki gecici onay yazisi */
.gpanel .gkaydedildi {
    color: #16a34a;
    font-size: 12px;
    font-weight: 700;
    align-self: center;
}

/* garama tek basina input olarak kullanilirsa koseler tam yuvarlak kalsin */
.gpanel .garama .form-control:last-child {
    border-radius: 8px;
}

.gpanel .guyari-yesil {
    background: #dcfce7;
    border: 1px solid #bbf7d0;
    color: #166534;
}

/* Modul ici gezinme (CRM vb.) */
.gpanel .gnav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0;
}

.gpanel .gnav-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #e5e7eb;
    color: #334155;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

    .gpanel .gnav-item:hover,
    .gpanel .gnav-item:focus {
        border-color: #94a3b8;
        color: #111827;
        text-decoration: none;
    }

    .gpanel .gnav-item .fa {
        color: #64748b;
    }

    .gpanel .gnav-item.aktif {
        background: #1f2937;
        border-color: #1f2937;
        color: #fff;
    }

        .gpanel .gnav-item.aktif .fa {
            color: #93c5fd;
        }

/* Genel modal iskeleti */
.gpanel .gmodal .modal-dialog {
    width: auto;
    margin: 8px;
    padding: 0;
}

@media (min-width: 768px) {
    .gpanel .gmodal .modal-dialog {
        width: 96%;
        max-width: 860px;
        margin: 24px auto;
    }
}

.gpanel .gmodal .modal-content {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 48px);
    border: 0;
    border-radius: 12px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, .3);
    background: #f4f6f9;
    overflow: hidden;
}

.gpanel .gmodal .modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex: none;
    background: #1f2937;
    border: 0;
    padding: 8px 14px;
}

.gpanel .gmodal .modal-title {
    order: 1;
    flex: 1 1 auto;
    min-width: 0;
    color: #fff;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

    .gpanel .gmodal .modal-title .fa {
        color: #93c5fd;
        margin-right: 6px;
    }

.gpanel .gmodal .modal-header .close {
    /* Bootstrap 3 isaretlemesinde kapat butonu baslikTAN ONCE gelir ve float:right ile
       saga atilir. Baslik flex oldugu icin float calismaz; sirayi order ile duzeltiyoruz:
       baslik solda, kapat sagda. */
    order: 2;
    flex: none;
    float: none;
    margin: 0;
    color: #fff;
    opacity: .7;
    font-size: 22px;
    line-height: 1;
    text-shadow: none;
    padding: 0 4px;
}

    .gpanel .gmodal .modal-header .close:hover {
        opacity: 1;
    }

.gpanel .gmodal .modal-body {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 10px;
}

.gpanel .gmodal .modal-footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    flex: none;
    margin: 0;
    padding: 8px 10px;
    background: #fff;
    border-top: 1px solid #e5e7eb;
}

    /* Isaretlemede kimi buton btn-sm, kimi degil; footer'da hepsi ayni boyda olsun.
       Sira isaretlemeden gelir: once asil eylem (Kaydet), sonra Kapat. */
    .gpanel .gmodal .modal-footer .btn {
        margin: 0;
        padding: 6px 14px;
        font-size: 13px;
        line-height: 1.42857143;
        border-radius: 6px;
    }

    /* Kapat butonu kart zemininden hafifce ayrissin. */
    .gpanel .gmodal .modal-footer .btn-default {
        background: #f8fafc;
        border-color: #d1d5db;
        color: #334155;
        text-shadow: none;
    }

        .gpanel .gmodal .modal-footer .btn-default:hover,
        .gpanel .gmodal .modal-footer .btn-default:focus {
            background: #e2e8f0;
            border-color: #cbd5e1;
            color: #1f2937;
        }

/* Siralanabilir tablo basliklari */
.gpanel .gtablo-sar th.siralanir {
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    white-space: nowrap;
}

    .gpanel .gtablo-sar th.siralanir .fa {
        margin-left: 4px;
        color: #cbd5e1;
    }

    .gpanel .gtablo-sar th.siralanir.aktif {
        color: #1d4ed8;
    }

        .gpanel .gtablo-sar th.siralanir.aktif .fa {
            color: #1d4ed8;
        }

/* Modal ici switch izgarasi */
.gpanel .gswitch-izgara {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 10px 16px;
}

/* Oneri kutusu (oto-tamamla bileseni) */
.gpanel .goto-sar {
    position: relative;
}

.goto-liste {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 9999;
    margin: 2px 0 0;
    padding: 4px 0;
    list-style: none;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .12);
    max-height: 260px;
    overflow-y: auto;
}

    .goto-liste li {
        padding: 5px 12px;
        font-size: 13px;
        color: #1f2937;
        cursor: pointer;
        white-space: nowrap;
    }

        .goto-liste li:hover,
        .goto-liste li.aktif {
            background: #eff6ff;
            color: #1d4ed8;
        }

/* Girdi metinleri okunur renkte olsun. */
.gpanel .form-control,
.gpanel input.form-control,
.gpanel select.form-control,
.gpanel textarea.form-control,
.gmodal .form-control {
    color: #1f2937;
}

    .gpanel .form-control::placeholder,
    .gmodal .form-control::placeholder {
        color: #9ca3af;
        opacity: 1;
    }

    .gpanel select.form-control option {
        color: #1f2937;
    }

    /* Dolu ama kilitli alanlar da okunabilsin. */
    .gpanel .form-control[readonly],
    .gmodal .form-control[readonly] {
        color: #475569;
    }

    .gpanel .form-control[disabled],
    .gpanel select.form-control[disabled],
    .gmodal .form-control[disabled] {
        color: #475569;
        -webkit-text-fill-color: #475569;
        opacity: 1;
    }

    /* ================= g-tarih: tarayici dilinden bagimsiz Turkce tarih alani ================= */

    .gtarih-sar {
        position: relative;
    }

        .gtarih-sar .form-control {
            padding-right: 30px;
        }

    .gtarih-btn {
        position: absolute;
        right: 1px;
        top: 1px;
        bottom: 1px;
        width: 28px;
        border: 0;
        background: transparent;
        color: #6b7280;
        cursor: pointer;
        border-radius: 0 7px 7px 0;
    }

        .gtarih-btn:hover {
            color: #1f2937;
        }

    /* Takvim paneli: tamamen bizim cizdigimiz Turkce takvim (body'ye teleport, fixed) */
    .gtarih-panel {
        width: 234px;
        background: #fff;
        border: 1px solid #d1d5db;
        border-radius: 8px;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
        padding: 8px;
        font-size: 12px;
        color: #1f2937;
    }

    .gtarih-baslik {
        display: flex;
        align-items: center;
        gap: 2px;
        margin-bottom: 6px;
    }

    .gtarih-ay {
        flex: 1;
        text-align: center;
        font-weight: 700;
        color: #111827;
    }

    .gtarih-ok {
        border: 0;
        background: transparent;
        color: #6b7280;
        cursor: pointer;
        font-size: 14px;
        width: 24px;
        height: 24px;
        line-height: 1;
        border-radius: 5px;
        padding: 0;
    }

        .gtarih-ok:hover {
            background: #f3f4f6;
            color: #111827;
        }

    .gtarih-grid {
        display: grid;
        grid-template-columns: repeat(7, 1fr);
        gap: 1px;
    }

    .gtarih-gunad {
        text-align: center;
        font-weight: 700;
        color: #6b7280;
        padding: 2px 0 4px;
    }

    .gtarih-gun {
        border: 1px solid transparent;
        background: transparent;
        color: #1f2937;
        cursor: pointer;
        height: 26px;
        border-radius: 5px;
        padding: 0;
    }

        .gtarih-gun:hover {
            background: #eef2f7;
        }

        .gtarih-gun.dis {
            color: #b6bcc6;
        }

        .gtarih-gun.bugun {
            border-color: #93c5fd;
        }

        .gtarih-gun.secili {
            background: #2563eb;
            color: #fff;
        }

    .gtarih-alt {
        margin-top: 6px;
        text-align: center;
    }

    /* Tiklanabilir satir icinde serbestce secilip kopyalanabilen hucre (or. email) */
    .gpanel .satir-tikla .gsecilebilir {
        cursor: text;
        user-select: text;
    }

    /* ================= Salt okunur detay gosterimi ================= */

    .gpanel .gbaslik-kucuk {
        font-size: 12px;
        font-weight: 700;
        color: #6b7280;
        text-transform: uppercase;
        letter-spacing: .02em;
        margin: 6px 0 8px;
    }

    .gpanel .gdeger {
        font-size: 13px;
        color: #1f2937;
        min-height: 18px;
    }

    .gpanel .gsecilebilir {
        user-select: text;
        cursor: text;
    }

    .gpanel .gozet-satir {
        display: flex;
        flex-wrap: wrap;
        gap: 10px 24px;
    }

    .gpanel .gozet-oge {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .gpanel .gozet-etiket {
        font-size: 11px;
        font-weight: 700;
        color: #6b7280;
        text-transform: uppercase;
    }

    .gpanel .gozet-deger {
        font-size: 16px;
        font-weight: 700;
        color: #b91c1c;
    }

    /* Genis modal: detay ekranlari icin. Ozgullugu .gpanel .gmodal .modal-dialog
       kuralindan yuksek olmali, yoksa 860px sinirina takilir. */
    @media (min-width: 768px) {
        .gpanel .gmodal.gmodal-genis .modal-dialog {
            width: 96%;
            max-width: 1200px;
        }
    }

    /* Sayi ve para kolonlari saga dayali */
    .gpanel .gtablo-sar th.gsag,
    .gpanel .gtablo-sar td.gsag {
        text-align: right;
    }

    /* Toplam satiri: baslik degil, govde olcusunde okunur dursun */
    .gpanel .gtablo-sar tfoot th {
        font-size: 12px;
        text-transform: none;
        letter-spacing: normal;
        color: #1f2937;
        font-weight: 700;
        border-bottom: 0;
        border-top: 2px solid #e5e7eb;
    }

    /* ================= Yazdirma ================= */
    /* gYazdir(secici) hedefe .gyazdir ekler; burada yalnizca o bolge basilir. */

    @media print {
        body * {
            visibility: hidden !important;
        }

        .gyazdir,
        .gyazdir * {
            visibility: visible !important;
        }

        .gyazdir {
            position: absolute !important;
            left: 0 !important;
            top: 0 !important;
            width: 100% !important;
            max-height: none !important;
            overflow: visible !important;
            border: 0 !important;
            box-shadow: none !important;
            background: #fff !important;
        }

            .gyazdir .modal-body {
                max-height: none !important;
                overflow: visible !important;
            }

            /* Kagida basilmasi anlamsiz olan kisimlar */
            .gyazdir .modal-header,
            .gyazdir .modal-footer,
            .gyazdir .gbtn-satir,
            .gyazdir .close,
            .gyazdir .btn {
                display: none !important;
            }

        .modal-backdrop {
            display: none !important;
        }
    }

    /* ================= Islem butonu (detay modallari) ================= */
    /* Renk karmasasi yerine tek notr stil; anlami ikon tasir. */

    .gpanel .gislem-btn {
        background: #4f46e5;
        border: 1px solid #4f46e5;
        color: #fff;
        border-radius: 8px;
        font-weight: 600;
        font-size: 13px;
        line-height: 1.4;
        padding: 7px 14px;
        box-shadow: 0 1px 2px rgba(15, 23, 42, .12);
        text-shadow: none;
    }

        .gpanel .gislem-btn .fa {
            color: #c7d2fe;
            margin-right: 5px;
        }

        /* Tablo hucresi icindeki islem butonu: satiri sismesin diye ince surum.
           `class="btn btn-sm gislem-btn"` ile kullanilir; modal butonlari (btn-sm'siz) etkilenmez. */
        .gpanel .gislem-btn.btn-sm {
            padding: 2px 9px;
            font-size: 12px;
            line-height: 1.35;
            border-radius: 6px;
        }

            .gpanel .gislem-btn.btn-sm .fa {
                margin-right: 4px;
            }

        .gpanel .gislem-btn:hover,
        .gpanel .gislem-btn:focus {
            background: #4338ca;
            border-color: #4338ca;
            color: #fff;
            box-shadow: 0 2px 6px rgba(67, 56, 202, .3);
        }

            .gpanel .gislem-btn:hover .fa {
                color: #fff;
            }

        .gpanel .gislem-btn[disabled],
        .gpanel .gislem-btn[disabled]:hover {
            background: #a5a1e0;
            border-color: #a5a1e0;
            color: #f8fafc;
            box-shadow: none;
        }

    /* btn-sm'in ince surumu tablo hucresi icindi. Filtre satirinda ve form
       satirinda buton yanindaki giris alanlariyla (30px) hizali kalmali;
       oradaki olcu bootstrap'in .btn-sm'i ile ayni. */
    .gpanel .gfiltre-btnlar .gislem-btn.btn-sm,
    .gpanel .gfiltre-btnlar .gnotr-btn.btn-sm,
    .gpanel .gfiltre-btnlar .gsil-btn.btn-sm,
    .gpanel .galan > .gislem-btn.btn-sm,
    .gpanel .galan > .gnotr-btn.btn-sm,
    .gpanel .galan > .gsil-btn.btn-sm {
        padding: 5px 12px;
        font-size: 12px;
        line-height: 1.5;
        border-radius: 6px;
    }

    /* Notr islem butonu: gislem-btn ile ayni olculer, renksiz. Log goruntuleme
       gibi vurgulanmasi gerekmeyen ikincil eylemler icin; indigo butonlarin
       yaninda hangisinin asil eylem oldugu kaybolmasin. Modal footer'daki
       Kapat butonu da ayni paleti kullanir. */
    .gpanel .gnotr-btn {
        background: #f8fafc;
        border: 1px solid #d1d5db;
        color: #334155;
        border-radius: 8px;
        font-weight: 600;
        font-size: 13px;
        line-height: 1.4;
        padding: 7px 14px;
        box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
        text-shadow: none;
    }

        .gpanel .gnotr-btn .fa {
            color: #94a3b8;
            margin-right: 5px;
        }

        /* Tablo hucresi icindeki ince surum; gislem-btn.btn-sm ile ayni olculer. */
        .gpanel .gnotr-btn.btn-sm {
            padding: 2px 9px;
            font-size: 12px;
            line-height: 1.35;
            border-radius: 6px;
        }

            .gpanel .gnotr-btn.btn-sm .fa {
                margin-right: 4px;
            }

        .gpanel .gnotr-btn:hover,
        .gpanel .gnotr-btn:focus {
            background: #e2e8f0;
            border-color: #cbd5e1;
            color: #1f2937;
        }

            .gpanel .gnotr-btn:hover .fa {
                color: #475569;
            }

        .gpanel .gnotr-btn[disabled],
        .gpanel .gnotr-btn[disabled]:hover {
            background: #f8fafc;
            border-color: #e5e7eb;
            color: #94a3b8;
            box-shadow: none;
        }

    /* Silme butonu: gislem-btn ile ayni olculer, kirmizi. */
    .gpanel .gsil-btn {
        background: #e11d48;
        border: 1px solid #e11d48;
        color: #fff;
        border-radius: 8px;
        font-weight: 600;
        font-size: 13px;
        line-height: 1.4;
        padding: 7px 14px;
        box-shadow: 0 1px 2px rgba(15, 23, 42, .12);
        text-shadow: none;
    }

        .gpanel .gsil-btn .fa {
            color: #fecdd3;
            margin-right: 5px;
        }

        .gpanel .gsil-btn:hover,
        .gpanel .gsil-btn:focus {
            background: #be123c;
            border-color: #be123c;
            color: #fff;
        }

            .gpanel .gsil-btn:hover .fa {
                color: #fff;
            }

        .gpanel .gsil-btn.btn-sm {
            padding: 2px 9px;
            font-size: 12px;
            line-height: 1.35;
            border-radius: 6px;
        }

            .gpanel .gsil-btn.btn-sm .fa {
                margin-right: 4px;
            }

    /* ================= Gunluk fiyat izgarasi ================= */
    /* Cok kolonlu giris tablosu: oda tip kolonu sabit kalir, hucreler dar tutulur. */

    .gpanel .gizgara table {
        border-collapse: separate;
        border-spacing: 0;
        /* Icerik kadar genis: sabit kolon ile gun kolonlari arasinda bosluk kalmasin. */
        width: auto;
    }

    .gpanel .gizgara th,
    .gpanel .gizgara td {
        white-space: nowrap;
        vertical-align: top;
        padding: 2px 4px;
    }

        /* Yatay izgara: yatay kaydirirken satir takip edilebilsin. */
        .gpanel .gizgara tbody td {
            border-top: 1px solid #e5e7eb;
        }

        .gpanel .gizgara thead th {
            border-bottom: 2px solid #e5e7eb;
        }

    /* Oda tipi ve alan adi kolonlari sabit kalir; yalnizca deger kolonlari kayar.
       Sticky icin sabit genislik sart: sonraki kolonun left degeri buna dayanir. */
    .gpanel .gizgara .gizgara-sabit {
        position: sticky;
        left: 0;
        z-index: 2;
        background: #fff;
        width: 150px;
        min-width: 150px;
        max-width: 150px;
        white-space: normal;
    }

    .gpanel .gizgara thead .gizgara-sabit {
        z-index: 3;
        background: #f8fafc;
    }

    /* Ikinci sabit kolon (KanalMap: eslenen oda tipi secimi). Genislik sabit,
       left degeri .gizgara-sabit genisligine dayanir; ayirici cizgi burada biter. */
    .gpanel .gizgara .gizgara-sabit2 {
        position: sticky;
        left: 150px;
        z-index: 2;
        background: #fff;
        width: 170px;
        min-width: 170px;
        max-width: 170px;
        box-shadow: 1px 0 0 #e5e7eb;
    }

    .gpanel .gizgara thead .gizgara-sabit2 {
        z-index: 3;
        background: #f8fafc;
    }

    /* Genis ekranda sabit kolonlar ferahlar (KanalMap: uzun oda tipi adlari kirilmadan sigsin).
       Iki kolon birlikte buyur; ikincinin left degeri ilkinin yeni genisligidir. */
    @media (min-width: 1200px) {
        .gpanel .gizgara.gizgara-sabit-genis .gizgara-sabit {
            width: 220px;
            min-width: 220px;
            max-width: 220px;
        }

        .gpanel .gizgara.gizgara-sabit-genis .gizgara-sabit2 {
            left: 220px;
            width: 250px;
            min-width: 250px;
            max-width: 250px;
        }
    }

    @media (min-width: 1600px) {
        .gpanel .gizgara.gizgara-sabit-genis .gizgara-sabit {
            width: 280px;
            min-width: 280px;
            max-width: 280px;
        }

        .gpanel .gizgara.gizgara-sabit-genis .gizgara-sabit2 {
            left: 280px;
            width: 300px;
            min-width: 300px;
            max-width: 300px;
        }
    }

    /* Alan adi satirlari giris kutulariyla ayni yukseklikte olmali:
       giris yuksekligi (22px) + alt bosluk (2px) = 24px. */
    .gpanel .gizgara .gizgara-alan {
        position: sticky;
        left: 150px;
        z-index: 2;
        background: #fff;
        width: 84px;
        min-width: 84px;
        max-width: 84px;
        color: #64748b;
        font-size: 11px;
        font-weight: 600;
        line-height: 24px;
        /* Kaydirma siniri: ayirici cizgi sabit kolonlarin sonunda. */
        box-shadow: 1px 0 0 #e5e7eb;
    }

    .gpanel .gizgara thead .gizgara-alan {
        z-index: 3;
        background: #f8fafc;
    }

    .gpanel .gizgara .gizgara-tatil {
        background: #fef2f2;
    }

    .gpanel .gizgara .gizgara-giris {
        width: 58px;
        height: 22px;
        padding: 1px 4px;
        font-size: 12px;
        line-height: 18px;
        margin-bottom: 2px;
        border-radius: 5px;
    }

    /* Izgara icindeki acilir secim: gizgara-giris ile ayni olculer, satir sismesin. */
    .gpanel .gizgara .gizgara-sec {
        height: 24px;
        padding: 1px 4px;
        font-size: 12px;
        line-height: 20px;
        margin-bottom: 2px;
        border-radius: 5px;
    }

    /* Izgaradaki onay kutusu kolonu: baslik metni kadar dar, kutu ortada.
       Sabit 80px verilince iki onay kolonu arasi gereksiz aciliyordu.
       width verilmez: tablo zaten width:auto, kolon icerik kadar olur. Yuzde
       (1%) verildiginde tablo kabina kadar genisliyor ve az formul kolonlu
       kanallarda bosluk formul kolonlarina dagiliyordu. */
    .gpanel .gizgara .gizgara-onay {
        white-space: nowrap;
        text-align: center;
    }

    /* KanalMap formul kutulari: icerik ("F*1.20" gibi) 58px'e sigmiyordu.
       1.5 kat genislik, hucre dolgusu yariya inerek aradaki bosluk kapatilir. */
    .gpanel .gizgara .gizgara-formul {
        width: 87px;
    }

    .gpanel .gizgara .gizgara-formul-hucre {
        padding-left: 2px;
        padding-right: 2px;
    }

        /* Degisen hucre kaydedilecekleri belli etsin diye isaretlenir. */
        .gpanel .gizgara .gizgara-giris.degisti {
            border-color: #4f46e5;
            background: #eef2ff;
        }

        .gpanel .gizgara .gizgara-giris[disabled] {
            background: #f1f5f9;
            color: #94a3b8;
        }

    /* Cok sekmeli ayar ekranlari: segment secici tasabilir, satira sarilir. */
    .gpanel .gseg.gseg-sar {
        flex-wrap: wrap;
        row-gap: 4px;
        overflow-x: visible;
    }

    /* Ana sayfa kutucuklari: ikon + etiket, otomatik sutunlu izgara. */
    .gpanel .gkutu-izgara {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 10px;
    }

    .gpanel .gkutu {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8px;
        min-height: 96px;
        padding: 14px 10px;
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        background: #fff;
        color: #334155;
        text-align: center;
        text-decoration: none;
        transition: border-color .15s, box-shadow .15s, color .15s;
    }

        .gpanel .gkutu:hover,
        .gpanel .gkutu:focus {
            border-color: #4f46e5;
            color: #4f46e5;
            box-shadow: 0 2px 8px rgba(79,70,229,.15);
            text-decoration: none;
        }

        .gpanel .gkutu .fa {
            font-size: 26px;
            color: #4f46e5;
        }

        .gpanel .gkutu span {
            font-size: 13px;
            font-weight: 600;
            line-height: 1.25;
            word-break: break-word;
        }

    @media (max-width: 767px) {
        .gpanel .gkutu-izgara {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    /* Coklu secim: kapali dururken filtre satirinda tek satir yer kaplar. */
    .gpanel .gcoklu {
        position: relative;
    }

    .gpanel .gcoklu-btn {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        width: 100%;
        text-align: left;
        background: #fff;
        color: #111827;
        border: 1px solid #d1d5db;
        text-shadow: none;
        box-shadow: none;
    }

        .gpanel .gcoklu-btn.acik {
            border-color: #4f46e5;
        }

        .gpanel .gcoklu-btn.gcoklu-bos .gcoklu-ozet {
            color: #94a3b8;
        }

        .gpanel .gcoklu-btn .fa {
            color: #64748b;
        }

    .gpanel .gcoklu-ozet {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* Panel teleport ile body'ye cikar; .gpanel altinda degil. */
    .gcoklu-panel {
        background: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        box-shadow: 0 8px 24px rgba(15, 23, 42, .16);
        padding: 8px 10px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

        .gcoklu-panel .gonay {
            display: flex;
            align-items: center;
            gap: 7px;
            margin: 0;
            padding: 5px 0;
            font-weight: 600;
            font-size: 12px;
            color: #475569;
            cursor: pointer;
        }

            .gcoklu-panel .gonay input[type="checkbox"] {
                margin: 0;
                width: 15px;
                height: 15px;
                cursor: pointer;
            }

        .gcoklu-panel .gceviri-link {
            color: #4f46e5;
            font-size: 11px;
            font-weight: 600;
            cursor: pointer;
        }

    .gcoklu-ust {
        display: flex;
        gap: 12px;
        padding-bottom: 6px;
        margin-bottom: 4px;
        border-bottom: 1px solid #f1f5f9;
        min-height: 18px;
    }

    /* Renk secici: metin kutusunun yaninda kare kutu. */
    .gpanel .grenk-secici {
        width: 34px;
        height: 30px;
        padding: 2px;
        border: 1px solid #d1d5db;
        border-radius: 0 7px 7px 0;
        background: #fff;
        cursor: pointer;
        vertical-align: top;
    }

    /* Logo / arka plan onizlemesi */
    .gpanel .ggorsel-blok {
        margin-bottom: 14px;
    }

    /* Onizleme sabit yukseklikli cercevede durur: resim yokken/yuklenmezken kart
       cokmesin, kirik resim ikonu gorunmesin. */
    .gpanel .ggorsel-cerceve {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 150px;
        border: 1px dashed #d1d5db;
        border-radius: 8px;
        background: #f8fafc;
        padding: 6px;
        overflow: hidden;
    }

    .gpanel .ggorsel-onizleme {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

    .gpanel .gaciklama-kucuk {
        margin-top: 3px;
        font-size: 11px;
        color: #64748b;
    }

    /* Sablon degiskenleri: tiklaninca metne eklenen etiketler */
    .gpanel .gdegisken-satir {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    .gpanel .gdegisken {
        border: 1px solid #c7d2fe;
        background: #eef2ff;
        color: #3730a3;
        border-radius: 999px;
        padding: 2px 10px;
        font-size: 11px;
        font-weight: 600;
        font-family: Consolas, Monaco, monospace;
        cursor: pointer;
    }

        .gpanel .gdegisken:hover {
            background: #e0e7ff;
            border-color: #a5b4fc;
        }

    /* ================= Resim yoneticisi ================= */

    .gpanel .gresim-izgara {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
        gap: 10px;
    }

    .gpanel .gresim-kutu {
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        background: #fff;
        padding: 8px;
    }

    .gpanel .gresim-onizleme {
        width: 100%;
        height: 120px;
        object-fit: cover;
        border-radius: 7px;
        background: #f1f5f9;
    }

    .gpanel .gresim-alt {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 6px;
        margin-top: 6px;
    }

    .gpanel .gresim-islem {
        display: flex;
        gap: 4px;
    }

    .gpanel .gresim-aciklama {
        display: flex;
        gap: 4px;
        margin-top: 6px;
    }

        .gpanel .gresim-aciklama .form-control {
            height: 26px;
            padding: 2px 8px;
            font-size: 12px;
        }

/* Giris ekranlari (Login, Sifremi Unuttum, Sifre Sifirlama, Yetki Onay).
   Panel kabugunun disindadir; menu ve oturum yoktur. */
body.ggiris {
    margin: 0;
    min-height: 100vh;
    background: #1f2937;
    font-family: inherit;
}

.ggiris-sar {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 24px 16px;
}

/* Kart: marka ust seridi + beyaz govde tek parca. Marka eskiden kartin ustunde
   koyu zeminde tek basina duruyordu ve bosluktaymis gibi gorunuyordu. */
.ggiris-kutu {
    width: 100%;
    max-width: 400px;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .35);
}

.ggiris-marka {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 20px;
    background: linear-gradient(135deg, #312e81 0%, #4f46e5 100%);
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .01em;
}

    .ggiris-marka .fa {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border-radius: 9px;
        background: rgba(255, 255, 255, .16);
        color: #fff;
        font-size: 16px;
        margin: 0;
    }

.ggiris-govde {
    padding: 18px 20px 20px;
}

.ggiris-baslik {
    font-size: 15px;
    font-weight: 700;
    color: #111827;
    margin-bottom: 14px;
}

.ggiris-govde .galan {
    margin-bottom: 10px;
}

.ggiris-govde label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    margin-bottom: 2px;
}

.ggiris-govde .form-control {
    border-radius: 7px;
    border-color: #d1d5db;
    box-shadow: none;
    height: 38px;
    padding: 6px 10px;
    font-size: 14px;
}

    .ggiris-govde .form-control:focus {
        border-color: #4f46e5;
        box-shadow: 0 0 0 3px rgba(79, 70, 229, .15);
    }

/* Alt satir: baglanti solda, asil eylem sagda. */
.ggiris-alt {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 14px;
}

    .ggiris-alt a {
        font-size: 12px;
        color: #4f46e5;
    }

    .ggiris-alt .btn {
        flex: none;
    }

@media (max-width: 480px) {
    .ggiris-alt {
        flex-direction: column-reverse;
        align-items: stretch;
    }

        .ggiris-alt .btn {
            width: 100%;
        }

        .ggiris-alt a {
            text-align: center;
        }
}

/* ================= Panel kabugu =================
   Panel iskeleti gpanel diline aittir; disaridan tema yuklenmez.
   .gpanel disinda tanimlanir: kabuk sayfanin kendisidir. */
body.gkabuk {
    margin: 0;
    min-height: 100vh;
    background: #eef1f5;
}

.gust {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #1f2937;
    padding: 0 12px;
    min-height: 46px;
    position: sticky;
    top: 0;
    z-index: 900;
}

.gust-sol {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: none;
}

.gust-marka,
.gust-simge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #e5e7eb;
    font-weight: 700;
    font-size: 13px;
    text-decoration: none;
    padding: 8px 8px;
    white-space: nowrap;
}

    .gust-marka:hover,
    .gust-marka:focus,
    .gust-simge:hover,
    .gust-simge:focus {
        color: #fff;
        text-decoration: none;
    }

    .gust-marka .fa,
    .gust-simge .fa {
        color: #818cf8;
    }

.gust-menu {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    flex: 1 1 auto;
    gap: 2px;
}

.gust-sag {
    flex: none;
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 2px;
}

/* Kullanici adi duz etiket (tiklanmaz); Cikis en sagda tek baglanti. */
.gust-kullanici,
.gust-cikis {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #cbd5e1;
    font-size: 13px;
    font-weight: 600;
    padding: 12px 10px;
    white-space: nowrap;
    text-decoration: none;
}

.gust-kullanici {
    color: #e5e7eb;
}

.gust-cikis:hover,
.gust-cikis:focus {
    color: #fff;
    background: #374151;
    text-decoration: none;
}

/* Mobil menu dugmesi; genis ekranda gizli. */
.gust-ac {
    display: none;
    background: transparent;
    border: 0;
    color: #e5e7eb;
    font-size: 18px;
    padding: 6px 10px;
    margin-left: auto;
}

/* Menu ogesi: tek baglanti ya da acilir baslik */
.gmenu {
    position: relative;
}

.gmenu-tek,
.gmenu-bas {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 0;
    color: #cbd5e1;
    font-size: 13px;
    font-weight: 600;
    padding: 12px 10px;
    text-decoration: none;
    white-space: nowrap;
}

    .gmenu-tek:hover,
    .gmenu-tek:focus,
    .gmenu-bas:hover,
    .gmenu-bas:focus,
    .gmenu.acik .gmenu-bas {
        color: #fff;
        background: #374151;
        text-decoration: none;
    }

    .gmenu-tek .fa,
    .gmenu-bas .fa {
        color: #93c5fd;
    }

.gmenu-panel {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 230px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .18);
    padding: 6px 0;
    z-index: 950;
}

.gmenu.acik .gmenu-panel {
    display: block;
}

.gmenu-panel-sag {
    left: auto;
    right: 0;
    border-radius: 0 0 10px 10px;
    min-width: 160px;
}

.gmenu-panel a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    color: #334155;
    font-size: 13px;
    text-decoration: none;
    white-space: nowrap;
}

    .gmenu-panel a:hover,
    .gmenu-panel a:focus {
        background: #eef2ff;
        color: #4f46e5;
        text-decoration: none;
    }

    .gmenu-panel a .fa {
        width: 16px;
        text-align: center;
        color: #94a3b8;
    }

.gmenu-ayrac {
    height: 1px;
    background: #f1f5f9;
    margin: 6px 0;
}

/* Icerik alani.
   Panel genis ekranlarda uctan uca yayilmaz: icerik sutunu --gicerik-en ile
   sinirlanip ortalanir. Aksi halde tablolar gereksiz genisliyor, buton satirlari
   (gbtn-satir, gfiltre-btnlar) icerikten kopuk duruyordu.
   Deger dolguyu da kapsar (bootstrap border-box): 1320px icerik + 2x12px dolgu. */
:root {
    --gicerik-en: 1344px;
}

.gicerik {
    display: block;
    padding: 10px 12px 24px;
    max-width: var(--gicerik-en);
    margin: 0 auto;
}

    /* Gunluk fiyat / kanal esleme gibi cok kolonlu giris izgaralari icin
       genis sutun. Ekran kendi .gicerik'ine bu sinifi verir. */
    .gicerik.gicerik-genis {
        max-width: 1800px;
    }

/* Ust cubuk tam genislikte kalir ama icerigi ayni sutuna hizalanir; yoksa
   marka solda, kullanici sagda, icerik ortada kopuk duruyor. */
@media (min-width: 1344px) {
    .gust {
        padding-left: calc((100% - var(--gicerik-en)) / 2 + 12px);
        padding-right: calc((100% - var(--gicerik-en)) / 2 + 12px);
    }
}

@media (max-width: 991px) {
    .gust {
        flex-wrap: wrap;
        padding: 0 8px;
    }

    .gust-ac {
        display: inline-block;
        order: 2;
    }

    .gust-sag {
        order: 3;
        margin-left: 0;
    }

    /* Mobilde menu tam genislikte alt satira acilir. */
    .gust-menu {
        display: none;
        order: 4;
        flex-basis: 100%;
        flex-direction: column;
        align-items: stretch;
        border-top: 1px solid #374151;
        padding-bottom: 6px;
    }

        .gust-menu.acik {
            display: flex;
        }

    .gmenu-tek,
    .gmenu-bas {
        width: 100%;
        justify-content: flex-start;
        padding: 11px 8px;
    }

    /* Acilir panel mobilde ustuste binmez, listeye eklenir. */
    .gmenu-panel,
    .gmenu-panel-sag {
        position: static;
        min-width: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        background: #111827;
        padding: 2px 0 6px;
    }

        .gmenu-panel a {
            color: #cbd5e1;
            padding-left: 26px;
        }

            .gmenu-panel a:hover,
            .gmenu-panel a:focus {
                background: #374151;
                color: #fff;
            }

    .gmenu-ayrac {
        background: #374151;
    }

    .gicerik {
        padding: 8px 8px 20px;
    }
}


/* ================= Bildirim seridi (gBildir) =================
   alert() yerine sag ustte kayan kutu; hatalar kapatilana kadar kalir. */
.gbildirim-kutu {
    position: fixed;
    top: 56px;
    right: 14px;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: min(380px, calc(100vw - 28px));
    pointer-events: none;
}

.gbildirim {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid transparent;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .18);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    pointer-events: auto;
    animation: gbildirim-gir .2s ease-out;
}

    .gbildirim .fa {
        margin-top: 2px;
        flex: none;
    }

    .gbildirim span {
        flex: 1 1 auto;
        white-space: pre-line;
        word-break: break-word;
    }

.gbildirim-kapat {
    flex: none;
    border: 0;
    background: transparent;
    font-size: 18px;
    line-height: 1;
    color: inherit;
    opacity: .6;
    cursor: pointer;
    padding: 0 2px;
}

    .gbildirim-kapat:hover {
        opacity: 1;
    }

.gbildirim-hata  { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.gbildirim-bilgi { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.gbildirim-uyari { background: #fffbeb; border-color: #fde68a; color: #92400e; }

.gbildirim-gidiyor {
    opacity: 0;
    transform: translateX(12px);
    transition: opacity .2s, transform .2s;
}

@keyframes gbildirim-gir {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 767px) {
    .gbildirim-kutu {
        top: auto;
        bottom: 12px;
        right: 12px;
        left: 12px;
        width: auto;
    }
}

/* Uzun metin kolonu (emir kanal durumu, emir sorgulama mesaji): kolon kalan genisligi alir
   (width:100% + max-width:0 auto yerlesimde hucreyi "esnek" yapar), sigmayan kisim uc noktayla
   kesilir; baglanti rengi + buyutec ikonu tiklanabildigini soyler, tiklaninca ayri modalda tam metin. */
.gpanel .gtablo-sar td.gmetin-kisa {
    width: 100%;
    max-width: 0;
}

    .gpanel .gtablo-sar td.gmetin-kisa .gmetin-kisa-ac {
        display: flex;
        align-items: center;
        gap: 6px;
        max-width: 100%;
        color: #4338ca;
        text-decoration: none;
    }

        .gpanel .gtablo-sar td.gmetin-kisa .gmetin-kisa-ac > span {
            flex: 1 1 auto;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .gpanel .gtablo-sar td.gmetin-kisa .gmetin-kisa-ac > .fa {
            flex: 0 0 auto;
            font-size: 12px;
            opacity: .7;
        }

        .gpanel .gtablo-sar td.gmetin-kisa .gmetin-kisa-ac:hover,
        .gpanel .gtablo-sar td.gmetin-kisa .gmetin-kisa-ac:focus {
            text-decoration: underline;
        }

            .gpanel .gtablo-sar td.gmetin-kisa .gmetin-kisa-ac:hover > .fa {
                opacity: 1;
            }

/* Modalda tam metin */
.gpanel .gmetin-kisa-tam {
    white-space: pre-wrap;
    word-break: break-word;
    font-family: Consolas, Monaco, monospace;
    font-size: 12px;
    max-height: 60vh;
    overflow: auto;
}
