/*
    =================================================
    25. NESTING (LEVHA YERLEŞİMİ) PENCERESİ

    Diğer pencerelerden geniş: içinde levha
    çizimleri var ve bunlar okunabilir büyüklükte
    olmalı.
    =================================================
*/

.nestingKatmani {
    position: fixed;

    inset: 0;

    z-index: 10000;

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

    padding: 20px;

    background:
        rgba(27, 35, 48, 0.4);

    animation:
        katmanGiris
        0.12s
        linear;
}


.nestingPenceresi {
    width:
        min(100%, 1100px);

    height:
        min(100%, 760px);

    display: flex;
    flex-direction: column;

    overflow: hidden;

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

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

    background:
        var(--renk-panel);

    box-shadow:
        var(--golge-pencere);

    animation:
        pencereGiris
        0.12s
        linear;
}


/*
    -------------------------------------------------
    BAŞLIK
    -------------------------------------------------
*/

.nestingBaslikAlani {
    flex-shrink: 0;

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

    gap: 12px;

    padding:
        10px
        12px;

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

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


.nestingBaslik {
    margin: 0;

    color:
        var(--renk-yazi);

    font-size: 13px;
    font-weight: 600;
}


.nestingDurum {
    margin:
        3px 0 0;

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

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

    font-variant-numeric:
        tabular-nums;
}


.nestingKapatBtn {
    width: 24px;
    height: 24px;

    flex-shrink: 0;

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

    padding: 0;

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

    background: transparent;

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

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

    cursor: pointer;
}


.nestingKapatBtn:hover {
    background:
        var(--renk-tehlike);

    color: #ffffff;
}


.nestingHata {
    padding: 24px;

    color:
        var(--renk-tehlike);

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

    text-align: center;
}


/*
    -------------------------------------------------
    GÖRÜNÜM SEKMELERİ

    Yerleşim sonuçları ile ayarlar arası geçiş.
    -------------------------------------------------
*/

.nestingGorunumSeridi {
    flex-shrink: 0;

    display: flex;

    gap: 2px;

    padding:
        0
        8px;

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

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


.nestingGorunumBtn {
    height: 27px;

    padding:
        0
        14px;

    border: 0;
    border-bottom:
        2px solid
        transparent;

    background: transparent;

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

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

    cursor: pointer;
}


.nestingGorunumBtn:hover {
    color:
        var(--renk-yazi);
}


.nestingGorunumBtn.aktif {
    border-bottom-color:
        var(--renk-ana);

    color:
        var(--renk-ana);

    font-weight: 600;
}


.nestingGorunum {
    flex: 1;

    min-height: 0;

    display: flex;
    flex-direction: column;
}


.nestingGorunum[hidden] {
    display: none;
}


/*
    -------------------------------------------------
    AYAR PANELİ
    -------------------------------------------------
*/

.nestingAyarPaneli {
    flex: 1;

    min-height: 0;

    overflow-y: auto;

    padding: 12px;
}


.nestingAyarIzgarasi {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(250px, 1fr)
        );

    gap: 10px;

    align-items: start;
}


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

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

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


.nestingAyarKutuBasligi {
    padding:
        5px
        9px;

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

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

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

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

    font-weight: 700;

    letter-spacing: 0.4px;

    text-transform: uppercase;
}


.nestingAyarKutuIcerigi {
    padding:
        8px
        9px;
}


.nestingAyarSatiri {
    display: grid;
    grid-template-columns:
        1fr
        auto;

    align-items: center;

    gap: 8px;

    margin-bottom: 5px;
}


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

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


.nestingAyarGirisSarmali {
    display: flex;
    align-items: center;

    gap: 4px;
}


.nestingAyarGirisi {
    width: 108px;

    height:
        var(--alan-yukseklik);

    padding:
        0
        6px;

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

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

    background:
        var(--renk-alan);

    color:
        var(--renk-yazi);

    font-family: inherit;
    font-size:
        var(--yazi-kucuk);
}


.nestingAyarGirisi:focus {
    border-color:
        var(--renk-ana);

    outline: none;
}


.nestingAyarBirimi {
    min-width: 22px;

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

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


.nestingAyarIsareti {
    width: 14px;
    height: 14px;

    margin: 0;

    cursor: pointer;
}


.nestingAyarAciklamasi {
    display: block;

    margin:
        -2px 0 7px;

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

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

    line-height: 1.4;
}


/*
    Sınır mesafeleri şeması: dört kutu bir
    levhanın çevresinde.
*/
.nestingSinirSemasi {
    display: grid;
    grid-template-columns:
        56px
        1fr
        56px;

    grid-template-rows:
        auto
        auto
        auto;

    gap: 4px;

    align-items: center;
    justify-items: center;

    margin-top: 4px;
}


.nestingSinirGirisi {
    width: 54px;

    height: 22px;

    padding:
        0
        4px;

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

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

    background:
        var(--renk-alan);

    color:
        var(--renk-yazi);

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

    text-align: center;
}


.nestingSinirGirisi.ust {
    grid-column: 2;
    grid-row: 1;
}


.nestingSinirGirisi.sol {
    grid-column: 1;
    grid-row: 2;
}


.nestingSinirGirisi.sag {
    grid-column: 3;
    grid-row: 2;
}


.nestingSinirGirisi.alt {
    grid-column: 2;
    grid-row: 3;
}


.nestingSinirLevha {
    grid-column: 2;
    grid-row: 2;

    width: 100%;
    height: 44px;

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

    border:
        1px solid
        #8a6f45;

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

    background:
        #e8d7b8;

    color:
        #6b5326;

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


/*
    Başlangıç köşesi: dört kutucuk, seçili
    olanın köşesinde işaret.
*/
.nestingKoseIzgarasi {
    display: grid;
    grid-template-columns:
        1fr
        1fr;

    gap: 5px;

    margin-top: 4px;
}


.nestingKoseBtn {
    position: relative;

    height: 42px;

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

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

    background:
        #f7f4ee;

    cursor: pointer;
}


.nestingKoseBtn:hover {
    border-color:
        var(--renk-ana-kenar);
}


.nestingKoseBtn.aktif {
    border-color:
        var(--renk-ana);

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


.nestingKoseIsareti {
    position: absolute;

    width: 14px;
    height: 14px;

    border-radius: 2px;

    background:
        #d6b27c;
}


.nestingKoseBtn.aktif
.nestingKoseIsareti {
    background:
        var(--renk-ana);
}


.nestingKoseBtn.solAlt
.nestingKoseIsareti {
    left: 5px;
    bottom: 5px;
}


.nestingKoseBtn.sagAlt
.nestingKoseIsareti {
    right: 5px;
    bottom: 5px;
}


.nestingKoseBtn.solUst
.nestingKoseIsareti {
    left: 5px;
    top: 5px;
}


.nestingKoseBtn.sagUst
.nestingKoseIsareti {
    right: 5px;
    top: 5px;
}


.nestingAyarDugmeleri {
    display: flex;
    justify-content: flex-end;

    gap: 6px;

    margin-top: 12px;
}


.nestingBaslangicBilgisi {
    padding: 40px 20px;

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

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

    line-height: 1.6;

    text-align: center;
}


.nestingAyarSifirlaBtn,
.nestingAyarIptalBtn,
.nestingAyarUygulaBtn {
    height:
        var(--buton-yukseklik);

    padding:
        0
        14px;

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

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

    background:
        var(--renk-alan);

    color:
        var(--renk-yazi);

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

    cursor: pointer;
}


.nestingAyarSifirlaBtn {
    margin-right: auto;

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


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


.nestingAyarIptalBtn:hover {
    border-color:
        var(--renk-tehlike-kenar);

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

    color:
        var(--renk-tehlike);
}


.nestingAyarUygulaBtn {
    border-color:
        var(--renk-ana-kenar);

    background:
        var(--renk-ana);

    color: #ffffff;

    font-weight: 600;
}


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


.nestingAyarBilgisi {
    margin-top: 10px;
    padding:
        6px
        9px;

    border:
        1px solid
        var(--renk-basarili-kenar);

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

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

    color:
        var(--renk-basarili);

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


.nestingAyarBilgisi[data-tur="hata"] {
    border-color:
        var(--renk-tehlike-kenar);

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

    color:
        var(--renk-tehlike);
}


/*
    Kullanılabilir alan sınırı: levhanın
    kırpılmış kenarını gösteren ince çerçeve.
*/
.nestingKullanilabilirAlan {
    position: absolute;

    border:
        1px dashed
        #b9a988;

    pointer-events: none;
}


/*
    -------------------------------------------------
    KAPSAM ŞERİDİ

    Odadaki tüm dolaplar mı, sadece seçili dolap
    mı yerleştirilecek.
    -------------------------------------------------
*/

.nestingKapsamSeridi {
    flex-shrink: 0;

    display: flex;
    align-items: center;

    gap: 6px;

    padding:
        6px
        12px;

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

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


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

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


.nestingKapsamBtn {
    height: 22px;

    padding:
        0
        10px;

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

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

    background:
        var(--renk-alan);

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

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

    cursor: pointer;
}


.nestingKapsamBtn:hover {
    border-color:
        var(--renk-ana-kenar);
}


.nestingKapsamBtn.aktif {
    border-color:
        var(--renk-ana-kenar);

    background:
        var(--renk-ana);

    color: #ffffff;

    font-weight: 600;
}


/*
    -------------------------------------------------
    SONUÇ SEKMELERİ

    Her sekme bir yerleşim seçeneği. Üstte levha
    sayısı, altta artık büyüklüğü.
    -------------------------------------------------
*/

.nestingSekmeSeridi {
    flex-shrink: 0;

    display: flex;

    gap: 3px;

    padding:
        5px
        8px
        0;

    overflow-x: auto;

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

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


.nestingSekme {
    min-width: 86px;

    flex-shrink: 0;

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

    gap: 1px;

    padding:
        5px
        10px;

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

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

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

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

    font-family: inherit;

    cursor: pointer;
}


.nestingSekme
> strong {
    font-size:
        var(--yazi-kucuk);

    font-variant-numeric:
        tabular-nums;
}


.nestingSekme
> small {
    font-size:
        var(--yazi-mini);

    font-variant-numeric:
        tabular-nums;
}


.nestingSekme:hover {
    background:
        var(--renk-alan-vurgu);
}


.nestingSekme.aktif {
    border-color:
        var(--renk-ana-kenar);

    background:
        var(--renk-alan);

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


/*
    -------------------------------------------------
    İÇERİK
    -------------------------------------------------
*/

.nestingIcerik {
    flex: 1;

    min-height: 0;

    overflow-y: auto;

    padding: 12px;
}


.nestingUyarilar {
    margin-bottom: 10px;
    padding:
        7px
        9px;

    border:
        1px solid
        var(--renk-uyari-kenar);

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

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

    color:
        var(--renk-uyari);

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

    line-height: 1.5;
}


/*
    -------------------------------------------------
    ÖZET
    -------------------------------------------------
*/

.nestingOzetYontem {
    margin-bottom: 7px;

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

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


.nestingOzetKutulari {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;

    margin-bottom: 14px;
}


.nestingOzetKutusu {
    min-width: 110px;

    display: flex;
    flex-direction: column;

    gap: 1px;

    padding:
        6px
        10px;

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

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

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


.nestingOzetKutusu.vurgulu {
    border-color:
        var(--renk-ana-kenar);

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


.nestingOzetKutusu
> strong {
    color:
        var(--renk-yazi);

    font-size: 15px;

    font-variant-numeric:
        tabular-nums;
}


.nestingOzetKutusu
> small {
    color:
        var(--renk-yazi-soluk);

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


/*
    -------------------------------------------------
    MALZEME GRUBU
    -------------------------------------------------
*/

.nestingGrup {
    margin-bottom: 16px;
}


.nestingGrupBasligi {
    display: flex;
    align-items: baseline;

    gap: 8px;

    margin-bottom: 6px;
    padding-bottom: 3px;

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


.nestingGrupBasligi
> span {
    color:
        var(--renk-yazi);

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

    font-weight: 600;
}


.nestingGrupBasligi
> small {
    color:
        var(--renk-yazi-soluk);

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

    font-variant-numeric:
        tabular-nums;
}


.nestingSigmayanUyarisi {
    margin-bottom: 7px;
    padding:
        5px
        8px;

    border:
        1px solid
        var(--renk-tehlike-kenar);

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

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

    color:
        var(--renk-tehlike);

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

    line-height: 1.5;
}


/*
    -------------------------------------------------
    LEVHA ÇİZİMİ
    -------------------------------------------------
*/

.nestingPlakalar {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fill,
            minmax(240px, 1fr)
        );

    gap: 12px;
}


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

    gap: 4px;
}


.nestingPlakaBasligi {
    display: flex;
    align-items: baseline;
    justify-content: space-between;

    gap: 6px;
}


.nestingPlakaBasligi
> span {
    color:
        var(--renk-yazi);

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

    font-weight: 600;
}


.nestingPlakaBasligi
> small {
    color:
        var(--renk-yazi-soluk);

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

    font-variant-numeric:
        tabular-nums;
}


/*
    Levhanın kendisi. Oranı JS'ten aspect-ratio
    ile geliyor.
*/
.nestingPlakaAlani {
    position: relative;

    width: 100%;

    overflow: hidden;

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

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

    background:
        #f7f4ee;
}


.nestingParca {
    position: absolute;

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

    overflow: hidden;

    border:
        1px solid
        #8a6f45;

    background:
        #d6b27c;

    color:
        #3b2c15;

    line-height: 1.1;

    text-align: center;
}


/*
    Çevrilmiş parçalar farklı renkte; damarlı
    levhada bu hiç görünmemeli, görünüyorsa
    damar işareti unutulmuş demektir.
*/
.nestingParca.cevrildi {
    border-color:
        #6f7f52;

    background:
        #bcc98f;
}


.nestingParcaEtiketi {
    max-width: 100%;

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

    padding:
        0
        2px;

    font-size: 9px;
}


.nestingParcaOlcusu {
    font-size: 8px;

    font-variant-numeric:
        tabular-nums;

    opacity: 0.75;
}


/*
    Delik ve frezeler parçanın üstüne çiziliyor.
    Parça kutusunun İÇİNE koyulsalardı kenara
    yakın olanlar overflow:hidden yüzünden
    kırpılırdı.
*/
.nestingDelik {
    position: absolute;

    min-width: 2px;
    min-height: 2px;

    border-radius: 50%;

    background:
        rgba(24, 32, 48, 0.72);

    pointer-events: none;
}


.nestingFreze {
    position: absolute;

    min-width: 1px;
    min-height: 1px;

    border-radius: 1px;

    background:
        rgba(180, 40, 40, 0.62);

    pointer-events: none;
}


.nestingArtik {
    position: absolute;

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

    border:
        1px dashed
        #c3bcae;

    background:
        repeating-linear-gradient(
            45deg,
            transparent,
            transparent 4px,
            rgba(0, 0, 0, 0.035) 4px,
            rgba(0, 0, 0, 0.035) 8px
        );

    pointer-events: none;
}


.nestingArtik.enBuyuk {
    border-color:
        var(--renk-basarili);

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


.nestingArtikEtiketi {
    color:
        var(--renk-basarili);

    font-size: 8px;

    font-variant-numeric:
        tabular-nums;
}


/*
    Temiz artığı ayıran tek düz kesim.
    Operatör bu çizgiden keserse elinde stoğa
    konabilecek düzgün bir parça kalır.
*/
.nestingKesimCizgisi {
    position: absolute;

    background:
        var(--renk-basarili);

    pointer-events: none;
}


.nestingKesimCizgisi.yatay {
    height: 2px;
}


.nestingKesimCizgisi.dikey {
    width: 2px;
}


/*
    Stoktan gelen levha: tam levha değil, raftaki
    artık parça. Operatör karıştırmasın diye
    başlıkta rozet, çizimde farklı zemin.
*/
.nestingStokRozeti {
    margin-left: 5px;
    padding:
        1px
        4px;

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

    background:
        var(--renk-basarili);

    color: #ffffff;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.5px;

    vertical-align: middle;
}


.nestingPlakaAlani.stoktan {
    border-color:
        var(--renk-basarili);

    background:
        #f2f7f2;
}


/*
    -------------------------------------------------
    ALT ÇUBUK
    -------------------------------------------------
*/

.nestingAltCubuk {
    flex-shrink: 0;

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

    gap: 6px;

    padding:
        8px
        12px;

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

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


.nestingDurdurBtn,
.nestingListeBtn,
.nestingCsvBtn,
.nestingEtiketBtn,
.nestingNcBtn,
.nestingKullanBtn {
    height:
        var(--buton-yukseklik);

    padding:
        0
        14px;

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

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

    background:
        var(--renk-alan);

    color:
        var(--renk-yazi);

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

    cursor: pointer;
}


.nestingDurdurBtn {
    margin-right: auto;
}


.nestingDurdurBtn:hover,
.nestingListeBtn:hover,
.nestingCsvBtn:hover,
.nestingEtiketBtn:hover,
.nestingNcBtn:hover {
    border-color:
        var(--renk-ana-kenar);

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


/*
    NC dosyaları asıl çıktı; diğer indirmelerden
    ayrılsın.
*/
.nestingNcBtn {
    border-color:
        var(--renk-basarili-kenar);

    color:
        var(--renk-basarili);

    font-weight: 600;
}


.nestingNcBtn:hover {
    border-color:
        var(--renk-basarili);

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


.nestingKullanBtn {
    border-color:
        var(--renk-ana-kenar);

    background:
        var(--renk-ana);

    color: #ffffff;

    font-weight: 600;
}


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