﻿/*
    =================================================
    6. SOL PANEL (ARAÇ PALETİ)
    =================================================
*/

.solPanel {
    width:
        var(--sol-panel-genislik);

    flex-shrink: 0;

    position: relative;
    z-index: 10;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background:
        var(--renk-panel);

    border-right:
        1px solid
        var(--renk-kenarlik);

    transition:
        width 0.12s linear;
}


.solPanelBaslikAlani {
    height:
        var(--bolum-baslik-yukseklik);

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 6px;

    padding:
        0
        4px
        0
        9px;

    border-bottom:
        1px solid
        var(--renk-kenarlik);

    background:
        var(--renk-bolum-baslik);
}


.solPanelBaslik {
    margin: 0;

    color:
        var(--renk-yazi-ikincil);

    font-size:
        var(--yazi-mini);

    font-weight: 700;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}


.solPanelDaraltBtn {
    width: 19px;
    height: 19px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border:
        1px solid
        transparent;

    border-radius: 2px;

    background: transparent;

    color:
        var(--renk-yazi-ikincil);

    font-size: 13px;
    line-height: 1;

    cursor: pointer;

    transition:
        border-color 0.1s linear,
        background 0.1s linear;
}


.solPanelDaraltBtn:hover {
    border-color:
        var(--renk-kenarlik);

    background:
        var(--renk-alan);
}


#solPanelIcerik,
.solPanelIcerik {
    width: 100%;

    flex: 1;
    min-height: 0;

    display: flex;
    flex-direction: column;

    overflow-y: auto;
    overflow-x: hidden;

    padding: 0;
}


.solPanelBosBilgi {
    margin: 8px;

    padding: 10px;

    border:
        1px dashed
        var(--renk-kenarlik);

    border-radius:
        var(--radius-kucuk);

    background:
        var(--renk-alan-vurgu);

    color:
        var(--renk-yazi-ikincil);

    font-size:
        var(--yazi-kucuk);

    line-height: 1.45;

    text-align: center;
}


/*
    =================================================
    7. SOL PANEL BÖLÜMLERİ
    =================================================
*/

.solPanelBolumu {
    width: 100%;

    border: 0;

    border-bottom:
        1px solid
        var(--renk-kenarlik);

    background: transparent;
}


/*
    Bölüm başlığı kaydırırken üstte
    yapışık kalır.
*/
.solPanelAnaBolumBasligi {
    height:
        var(--bolum-baslik-yukseklik);

    position: sticky;
    top: 0;
    z-index: 3;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding:
        0
        9px;

    border-bottom:
        1px solid
        var(--renk-kenarlik-acik);

    background:
        var(--renk-bolum-baslik);

    color:
        var(--renk-yazi-ikincil);

    font-size:
        var(--yazi-mini);

    font-weight: 700;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}


.solPanelBolumIcerigi {
    display: flex;
    flex-direction: column;

    padding: 0;
}


.dinamikKutuphaneBolumu {
    border-bottom: 0;
}


.dinamikKutuphaneIcerigi {
    padding: 0;
}


.solPanelBolumu.modTarafindanGizlendi,
.solPanelAcilirMenu.modTarafindanGizlendi {
    display: none !important;
}


/*
    =================================================
    8. SOL PANEL AÇILIR MENÜLER
    =================================================
*/

.solPanelAcilirMenu {
    width: 100%;

    border: 0;

    border-bottom:
        1px solid
        var(--renk-kenarlik-acik);

    background: transparent;
}


.solPanelAcilirMenuBtn {
    width: 100%;
    height: 24px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 6px;

    padding:
        0
        9px;

    border: 0;

    background: transparent;

    color:
        var(--renk-yazi);

    cursor: pointer;

    text-align: left;

    transition:
        background 0.1s linear;
}


.solPanelAcilirMenuBtn:hover {
    background:
        var(--renk-ana-acik);
}


.solPanelAcilirMenu.acik
> .solPanelAcilirMenuBtn {
    background:
        var(--renk-alan-vurgu);
}


.solPanelAcilirMenuMetni {
    flex: 1;
    min-width: 0;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size:
        var(--yazi-kucuk);

    font-weight: 600;
}


.solPanelAcilirMenuOku {
    width: 12px;

    flex-shrink: 0;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color:
        var(--renk-yazi-soluk);

    font-size: 11px;
    line-height: 1;
}


.solPanelAcilirMenuIcerik {
    display: flex;
    flex-direction: column;

    padding:
        2px
        0
        4px;

    background:
        var(--renk-alan);

    border-top:
        1px solid
        var(--renk-kenarlik-acik);
}


/*
    İç içe menüler girintili gösterilir ve
    bir ağaç çizgisi taşır.
*/
.solPanelAcilirMenuIcerik
> .solPanelAcilirMenu {
    margin-left: 10px;

    border-left:
        1px solid
        var(--renk-kenarlik-acik);
}


/*
    =================================================
    9. SOL PANEL ARAÇ BUTONLARI
    =================================================
*/

.solPanelAracBtn {
    width: 100%;
    min-height: 28px;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    gap: 1px;

    padding:
        4px
        9px
        4px
        16px;

    border: 0;

    border-left:
        2px solid
        transparent;

    background: transparent;

    cursor: pointer;

    text-align: left;

    transition:
        background 0.1s linear,
        border-color 0.1s linear;
}


.solPanelAracBtn:hover:not(:disabled) {
    background:
        var(--renk-ana-acik);
}


.solPanelAracBtn:active:not(:disabled) {
    background:
        #d2e1fa;
}


/*
    Seçili araç kategorisi.

    Daha önce JavaScript içinde satır içi
    stille yapılıyordu, artık sınıfla.
*/
.solPanelAracBtn.aktif {
    border-left-color:
        var(--renk-ana);

    background:
        var(--renk-ana-acik);
}


.solPanelAracBtn.aktif
.solPanelAracAnaMetin {
    color:
        var(--renk-ana-hover);
}


.solPanelAracAnaMetin {
    color:
        var(--renk-yazi);

    font-size:
        var(--yazi-kucuk);

    font-weight: 600;
}


.solPanelAracAltMetin {
    color:
        var(--renk-yazi-soluk);

    font-size:
        var(--yazi-mini);

    line-height: 1.3;
}


.solPanelAracBtn:disabled,
.solPanelAracBtn.devreDisi {
    cursor: not-allowed;

    opacity: 0.45;

    background: transparent;
}


/*
    =================================================
    10. KÜTÜPHANE MODEL SATIRLARI
    =================================================
*/

.dinamikKutuphaneMenusu {
    border-bottom-color:
        var(--renk-kenarlik-acik);
}


.kutuphaneModelSatiri {
    width: 100%;
    min-height: 40px;

    display: flex;
    align-items: stretch;

    border-left:
        2px solid
        transparent;

    transition:
        background 0.1s linear;
}


.kutuphaneModelSatiri:hover {
    background:
        var(--renk-ana-acik);
}


.kutuphaneModelBtn {
    flex: 1;

    min-width: 0;

    display: flex;
    flex-direction: row;
    align-items: center;

    gap: 8px;

    padding:
        4px
        6px
        4px
        12px;

    border: 0;

    background: transparent;

    cursor: pointer;

    text-align: left;
}


/*
    -------------------------------------------------
    MODEL MİNYATÜRÜ

    İkon motorunun ürettiği görsel buraya oturur.
    Görsel gelmeden önce ve hiç gelemezse aynı
    ölçüde soluk bir yer tutucu durur; satırlar
    böylece zıplamaz.
    -------------------------------------------------
*/
.kutuphaneModelIkonu {
    width: 32px;
    height: 32px;

    min-width: 32px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 3px;

    background:
        var(--renk-ana-acik);

    overflow: hidden;
}


.kutuphaneModelIkonu[data-durum="hazir"] {
    background: transparent;
}


.kutuphaneModelIkonGorseli {
    width: 100%;
    height: 100%;

    object-fit: contain;

    /*
        Minyatür küçültülürken kenarlar
        yumuşasın.
    */
    image-rendering: auto;
}


.kutuphaneModelMetni {
    flex: 1;

    min-width: 0;

    display: flex;
    flex-direction: column;
    justify-content: center;
}


.kutuphaneModelAdi {
    width: 100%;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    color:
        var(--renk-yazi);

    font-size:
        var(--yazi-kucuk);

    font-weight: 500;
}


.kutuphaneModelKodu {
    width: 100%;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    color:
        var(--renk-yazi-soluk);

    font-size:
        var(--yazi-mini);

    font-variant-numeric:
        tabular-nums;
}


.kutuphaneModelSilBtn {
    width: 22px;
    min-width: 22px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: 0;

    background: transparent;

    color:
        var(--renk-yazi-soluk);

    font-size: 15px;
    line-height: 1;

    opacity: 0;

    cursor: pointer;

    transition:
        color 0.1s linear,
        background 0.1s linear,
        opacity 0.1s linear;
}


.kutuphaneModelSatiri:hover
.kutuphaneModelSilBtn,
.kutuphaneModelSatiri:focus-within
.kutuphaneModelSilBtn {
    opacity: 1;
}


.kutuphaneModelSilBtn:hover:not(:disabled) {
    background:
        var(--renk-tehlike);

    color: #ffffff;
}


.kutuphaneModelSilBtn:disabled {
    opacity: 0.35;
}


.kutuphaneBosBilgi,
.kutuphaneKategoriBos {
    margin: 6px 8px;

    padding: 8px;

    border:
        1px dashed
        var(--renk-kenarlik);

    border-radius:
        var(--radius-kucuk);

    background:
        var(--renk-alan-vurgu);

    color:
        var(--renk-yazi-soluk);

    font-size:
        var(--yazi-mini);

    line-height: 1.4;

    text-align: center;
}


/*
    =================================================
    11. SOL PANEL DAR DURUMU
    =================================================
*/

.solPanel.solPanelDar {
    width:
        var(--sol-panel-dar-genislik);
}


.solPanel.solPanelDar
.solPanelBaslik {
    display: none;
}


.solPanel.solPanelDar
.solPanelBaslikAlani {
    justify-content: center;

    padding: 0;
}


.solPanel.solPanelDar
#solPanelIcerik,
.solPanel.solPanelDar
.solPanelIcerik {
    display: none;
}




/*
    =================================================
    12. KASA KÖŞE KONTROLLERİ

    Dört köşe için 2x2 ikon ızgarası. Izgara
    fiziksel yerleşimi taklit eder: sol üst
    ikon gerçekten sol üst köşedir.
    =================================================
*/

.kasaKoseKontrolleri {
    display: flex;
    flex-direction: column;

    gap: 6px;

    margin: 6px 8px 10px;
    padding: 8px;

    border:
        1px solid
        var(--renk-kenarlik-acik);

    border-radius:
        var(--radius-kucuk);

    background:
        var(--renk-alan);
}


.kasaKoseBasligi {
    color:
        var(--renk-yazi);

    font-size:
        var(--yazi-kucuk);

    font-weight: 700;
}


.kasaKoseAciklamasi {
    color:
        var(--renk-yazi-soluk);

    font-size:
        var(--yazi-mini);

    line-height: 1.4;
}


.kasaKoseIzgarasi {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 5px;
}


.kasaKoseBtn {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 3px;

    padding: 6px 4px;

    border:
        1px solid
        var(--renk-kenarlik);

    border-radius:
        var(--radius-kucuk);

    background:
        var(--renk-panel);

    color:
        var(--renk-yazi);

    cursor: pointer;

    transition:
        border-color 0.1s linear,
        background 0.1s linear;
}


.kasaKoseBtn:hover:not(:disabled) {
    border-color:
        var(--renk-ana-kenar);

    background:
        var(--renk-ana-acik);
}


.kasaKoseBtn:disabled {
    cursor: not-allowed;

    opacity: 0.45;
}


.kasaKoseIkonu {
    width: 40px;
    height: 40px;

    flex-shrink: 0;
}


/*
    İçeride kalan parça soluk, dışta kalan
    parça vurgulu çizilir. Hangisinin
    hangisinin üstüne bindiği ikondan okunur.
*/
.kasaKoseIkonDikey,
.kasaKoseIkonYatay {
    fill:
        var(--renk-kenarlik-koyu);

    opacity: 0.45;
}


.kasaKoseIkonDista {
    fill:
        var(--renk-ana);

    opacity: 1;
}


.kasaKoseEtiketi {
    font-size:
        var(--yazi-mini);

    font-weight: 600;

    line-height: 1.2;
}


.kasaKoseAltEtiketi {
    color:
        var(--renk-yazi-soluk);

    font-size:
        var(--yazi-mini);

    line-height: 1.2;

    text-align: center;
}


.kasaKoseDurumu {
    padding-top: 4px;

    border-top:
        1px solid
        var(--renk-kenarlik-acik);

    color:
        var(--renk-yazi-ikincil);

    font-size:
        var(--yazi-mini);

    line-height: 1.4;
}


.kasaKoseKontrolleriPasif
.kasaKoseDurumu {
    color:
        var(--renk-yazi-soluk);
}


/*
    Önizleme: fare ikonun üstündeyken tıklamanın
    SONUCU çizilir. Henüz uygulanmadığı için
    çerçeve kesik ve dıştaki parça yarı saydam;
    "olan" ile "olacak" birbirine karışmasın.
*/
.kasaKoseBtn.kasaKoseBtnOnizleme {
    border-style: dashed;

    border-color:
        var(--renk-ana);

    background:
        var(--renk-ana-acik);
}


.kasaKoseBtnOnizleme
.kasaKoseIkonDista {
    opacity: 0.6;
}


.kasaKoseBtnOnizleme
.kasaKoseAltEtiketi {
    color:
        var(--renk-ana-hover);

    font-weight: 600;
}


/*
    =================================================
    13. KASA TİPİ SEÇENEKLERİ

    Kasa tipleri de köşe ikonlarıyla aynı dili
    konuşur: gövde ikonunda köşeye kadar uzanan
    parça dıştadır. Açıklama butonun içinde
    durmaz, üzerine gelince altta belirir.
    =================================================
*/

.kasaTipiSecenekleri {
    display: flex;
    flex-direction: column;

    gap: 6px;

    padding: 6px 8px 8px;
}


.kasaTipiIzgarasi {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 5px;
}


.kasaTipiBtn {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 4px;

    padding: 8px 4px;

    border:
        1px solid
        var(--renk-kenarlik);

    border-radius:
        var(--radius-kucuk);

    background:
        var(--renk-panel);

    color:
        var(--renk-yazi);

    cursor: pointer;

    transition:
        border-color 0.1s linear,
        background 0.1s linear;
}


.kasaTipiBtn:hover,
.kasaTipiBtn:focus-visible {
    border-color:
        var(--renk-ana);

    background:
        var(--renk-ana-acik);

    outline: none;
}


.kasaGovdeIkonu {
    width: 48px;
    height: 48px;

    flex-shrink: 0;
}


/*
    Köşe ikonlarıyla aynı renk sözleşmesi:
    dışta kalan parça vurgulu, içeride kalan
    soluk. Gövde ikonunda hangi parçanın dışta
    olduğu uzunluğundan okunur, bu yüzden dört
    parça da vurgulu çizilir.
*/
.kasaGovdeIkonDikey,
.kasaGovdeIkonYatay {
    fill:
        var(--renk-kenarlik-koyu);

    opacity: 0.45;
}


.kasaGovdeIkonDista {
    fill:
        var(--renk-ana);

    opacity: 1;
}


.kasaTipiEtiketi {
    font-size:
        var(--yazi-mini);

    font-weight: 600;

    line-height: 1.2;
}


.kasaTipiAciklamasi {
    min-height: 30px;

    padding-top: 4px;

    border-top:
        1px solid
        var(--renk-kenarlik-acik);

    color:
        var(--renk-yazi-soluk);

    font-size:
        var(--yazi-mini);

    line-height: 1.4;
}


.kasaTipiAciklamasiVurgulu {
    color:
        var(--renk-yazi-ikincil);
}
