/* ==========================================================================
   shell.css — Portal (Jazzmin/AdminLTE) görünümünü taklit eden kabuk.
   Sol koyu sidebar + üstte beyaz logo kutusu + beyaz navbar + açık gri içerik.
   Bileşenler (kart/tablo/buton) flatly + portal.css'ten gelir.
   ========================================================================== */

:root {
    --pm-sidebar-w: 264px;
    --pm-topbar-h: 58px;
    --pm-sidebar-bg: #2c3e50;      /* flatly primary — koyu lacivert */
    --pm-sidebar-bg-2: #26374a;
    --pm-sidebar-hover: #34495e;
    --pm-sidebar-text: #c4ccd6;
    --pm-accent: #18bc9c;          /* flatly teal — aktif vurgu */
    --pm-content-bg: #f4f6f9;      /* AdminLTE içerik gri'si — beyaz kartlar öne çıksın */
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    background: var(--pm-content-bg);
    min-height: 100vh;
}

/* ------------------------------ Sidebar ------------------------------ */
.pm-sidebar {
    position: fixed;
    top: 0; left: 0; bottom: 0;
    width: var(--pm-sidebar-w);
    background: var(--pm-sidebar-bg);
    color: var(--pm-sidebar-text);
    display: flex;
    flex-direction: column;
    box-shadow: 0 0 20px rgba(15, 23, 42, 0.18);
    z-index: 1040;
    transition: transform 0.22s ease;
}

.pm-brand {
    background: #ffffff;                 /* beyaz logo kutusu — portaldaki gibi */
    padding: 0.85rem 0.75rem;
    text-align: center;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    min-height: var(--pm-topbar-h);
    display: flex;
    align-items: center;
    justify-content: center;
}
.pm-brand-logo {
    max-width: 82%;
    max-height: 40px;
    object-fit: contain;
}

.pm-nav {
    padding: 0.9rem 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    flex: 1 1 auto;
    overflow-y: auto;
}
.pm-nav-link {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.62rem 0.8rem;
    color: var(--pm-sidebar-text);
    text-decoration: none;
    border-radius: 0.55rem;
    font-size: 0.95rem;
    font-weight: 500;
    border-left: 3px solid transparent;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.pm-nav-link .nav-icon {
    width: 1.25rem;
    text-align: center;
    font-size: 0.95rem;
    opacity: 0.9;
}
.pm-nav-link:hover {
    background: var(--pm-sidebar-hover);
    color: #ffffff;
}
.pm-nav-link.active {
    background: var(--pm-sidebar-bg-2);
    color: #ffffff;
    border-left-color: var(--pm-accent);
}
.pm-nav-link.active .nav-icon { color: var(--pm-accent); opacity: 1; }

/* Alt menü grubu (Komisyon) */
.pm-nav-group-label {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.62rem 0.8rem 0.35rem;
    color: #8b98a7;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.pm-nav-group-label .nav-icon {
    width: 1.25rem;
    text-align: center;
    font-size: 0.9rem;
    opacity: 0.85;
}
.pm-nav-link.pm-nav-sub {
    margin-left: 1.35rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.9rem;
}
.pm-nav-link.pm-nav-sub .nav-icon { font-size: 0.42rem; }

.pm-sidebar-foot {
    padding: 0.8rem 1rem 1.1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.pm-sidebar-foot .badge {
    background: rgba(24, 188, 156, 0.16);
    color: #7ef0d6;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* ------------------------------ Main / Topbar ------------------------------ */
.pm-main {
    margin-left: var(--pm-sidebar-w);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.pm-topbar {
    position: sticky;
    top: 0;
    height: var(--pm-topbar-h);
    background: #ffffff;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0 1.15rem;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.03);
    z-index: 1030;
}
.pm-page-title {
    font-size: 1.08rem;
    font-weight: 700;
    color: #1f2937;
    margin: 0;
}
/* Surumler: ust barin SAG UCU (eski "prim opt" yazisinin yeri) */
.pm-topbar-surum { margin-left: auto; white-space: nowrap; }
.pm-burger {
    display: none;
    border: 1px solid rgba(15, 23, 42, 0.12);
    color: #1f2937;
    background: #fff;
}

.pm-content {
    padding: 1.25rem;
    flex: 1 1 auto;
}
/* base.html'deki gibi içerik bir "row g-3" — #app-content zaten row */
#app-content { margin: 0; }

/* ------------------------------ Mock'a özgü ufak stiller ------------------------------ */

/* Hedef ekranı tab'ları (Bootstrap nav-tabs üstüne ince ayar) */
.pm-tabs {
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.12);
}
.pm-tabs .nav-link {
    color: #6c757d;
    font-weight: 600;
    border: 1px solid transparent;
    border-top-left-radius: 0.6rem;
    border-top-right-radius: 0.6rem;
    padding: 0.6rem 1.2rem;
    cursor: pointer;
    background: none;
}
.pm-tabs .nav-link:hover { color: #0d6efd; }
.pm-tabs .nav-link.active {
    color: #1f2937;
    background: #ffffff;
    border-color: rgba(15, 23, 42, 0.12) rgba(15, 23, 42, 0.12) #ffffff;
}

/* Filtre barı */
.pm-filter-bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.9rem;
}
.pm-filter-bar .portal-filter-dropdown > summary {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
.pm-filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.3rem;
    border-radius: 1rem;
    background: rgba(13, 110, 253, 0.12);
    color: #0d6efd;
    font-size: 0.72rem;
    font-weight: 700;
}
.pm-filter-body-list {
    max-height: 15rem;
    overflow-y: auto;
    margin-top: 0.5rem;
}
.pm-filter-body-list .form-check { margin-bottom: 0.15rem; }
.pm-filter-group-title {
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
    font-weight: 700;
    margin: 0.55rem 0 0.25rem;
}

/* ============================== Oturum / login ============================
   Login, portalın "kapısı"dır: içerideki aydınlık ekranların aksine sidebar
   kimliğinin koyu lacivertini kullanır; vurgu (odak halkası) portalın teal'i. */
body.pm-loginsiz {
    background: linear-gradient(160deg, var(--pm-sidebar-bg) 0%, var(--pm-sidebar-bg-2) 55%, #1f2d3d 100%);
}

body.pm-loginsiz #pm-sidebar,
body.pm-loginsiz .pm-burger,
body.pm-loginsiz .pm-topbar {
    display: none;
}

body.pm-loginsiz .pm-main {
    margin-left: 0;
}

body.pm-loginsiz .pm-content {
    background: transparent;
}

.pm-login-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 92vh;
    padding: 2rem 1rem;
}

.pm-login-card {
    width: 100%;
    max-width: 23rem;
    background: #fff;
    border-radius: 0.9rem;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
    padding: 1.8rem 1.7rem 1.6rem;
    text-align: left;
    animation: pm-login-gir 0.28s ease-out;
}

@keyframes pm-login-gir {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .pm-login-card { animation: none; }
}

.pm-login-marka {
    text-align: center;
    margin-bottom: 0.9rem;
}

.pm-login-logo {
    height: 36px;
}

.pm-login-baslik {
    text-align: center;
    font-weight: 700;
    color: var(--pm-sidebar-bg);
}

.pm-login-not {
    text-align: center;
    font-size: 0.82rem;
    color: #6c757d;
    margin: 0.15rem 0 1.1rem;
}

/* Şifre alanı: göster/gizle göz butonu */
/* Edge/Chromium'un YERLEŞİK şifre-göster ikonu bizimkiyle çift görünmesin */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
    display: none;
}

.pm-sifre-grup {
    position: relative;
}

.pm-sifre-grup input {
    padding-right: 2.4rem;
}

.pm-sifre-goz {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: none;
    color: #6c757d;
    padding: 0.25rem 0.45rem;
    line-height: 1;
}

.pm-sifre-goz:hover {
    color: var(--pm-sidebar-bg);
}

/* Odak halkası portal teal'i; buton sidebar laciverti (beyaz metinle 9:1 kontrast) */
.pm-login-card .form-control:focus {
    border-color: var(--pm-accent);
    box-shadow: 0 0 0 0.2rem rgba(24, 188, 156, 0.2);
}

.pm-login-card button[type="submit"] {
    background: var(--pm-sidebar-bg);
    border-color: var(--pm-sidebar-bg);
}

.pm-login-card button[type="submit"]:hover,
.pm-login-card button[type="submit"]:focus {
    background: var(--pm-sidebar-hover);
    border-color: var(--pm-sidebar-hover);
    box-shadow: 0 0 0 0.2rem rgba(24, 188, 156, 0.25);
}

/* Sidebar kullanıcı bloğu */
.pm-kullanici {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.6rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 0.55rem;
}

.pm-kullanici-bilgi {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pm-kullanici-ad {
    font-weight: 600;
    font-size: 0.85rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm-kullanici-rol {
    font-size: 0.72rem;
    opacity: 0.75;
}

/* Salt-okunur rol: değişiklik aksiyonları görünmez (API zaten 403 döner) */
body.pm-salt-okunur [data-ka-yeni],
body.pm-salt-okunur [data-ka-duzenle],
body.pm-salt-okunur [data-ka-sil],
body.pm-salt-okunur [data-km-yeni],
body.pm-salt-okunur [data-km-duzenle],
body.pm-salt-okunur [data-km-sil],
body.pm-salt-okunur [data-bulk-apply],
body.pm-salt-okunur .pm-bulk-bar,
body.pm-salt-okunur [data-kaydet],
body.pm-salt-okunur [data-reset] {
    display: none !important;
}

/* Kategori2 panelinde kategori2 adının yanındaki bağlı-kategori rozeti */
/* Kategori rozeti: bağlı kategoriyi taşır; rengi satır zeminiyle AYNI
   hue'dan gelir (pm-kat-c*), böylece aynı kategorinin satırları görsel
   olarak gruplanır. Renk tek başına anlam taşımaz — ad rozette yazılı. */
.pm-kat-rozet {
    display: inline-block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .01em;
    color: #495057;
    background: #e9edf1;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: .5rem;
    padding: .02rem .45rem;
    vertical-align: middle;
}

/* Kategori paleti — kurumsal, birbirinden ayırt edilebilir 6 hue.
   Satır zemini %7 alpha (koyu gövde metninin kontrastını bozmaz),
   rozet aynı hue'nun koyu tonu (açık zeminde 4.5:1 üstü). */
.pm-kat-c0 { --kat-h:  15, 118, 110; }   /* teal   */
.pm-kat-c1 { --kat-h: 180,  83,   9; }   /* amber  */
.pm-kat-c2 { --kat-h:  67,  56, 202; }   /* indigo */
.pm-kat-c3 { --kat-h: 190,  18,  60; }   /* rose   */
.pm-kat-c4 { --kat-h:  21, 128,  61; }   /* green  */
.pm-kat-c5 { --kat-h: 109,  40, 217; }   /* violet */

/* Seçici, panelin "hücre zemini şeffaf" kuralından (.pm-budget-panel .table >
   :not(caption) > * > *) DAHA SPESİFİK olmak zorunda — eşit ağırlıkta olsaydı
   sonra gelen kural tint'i ezerdi. */
.pm-budget-panel .table > tbody > tr.pm-kat-row > * {
    background: rgba(var(--kat-h), .07);
}
.pm-kat-row .pm-kat-rozet {
    color: rgb(var(--kat-h));
    background: rgba(var(--kat-h), .13);
    border-color: rgba(var(--kat-h), .28);
}

/* İki kanal tablosu arasında ayırıcı: geniş ekranda dikey, dar ekranda yatay */
@media (min-width: 992px) {
    .pm-panel-ayrik .row > .col-lg-6 + .col-lg-6 {
        border-left: 1px solid rgba(13, 110, 253, .18);
    }
}
@media (max-width: 991.98px) {
    .pm-panel-ayrik .row > .col-lg-6 + .col-lg-6 {
        border-top: 1px solid rgba(13, 110, 253, .18);
        padding-top: .6rem;
    }
}

/* Rota/tab geçişi: eski içerik görünür kalır ama tıklanamaz (bayat butonlara
   basılmasın); üstbardaki küçük gösterge yanar */
#app-content.pm-gecis {
    pointer-events: none;
    opacity: .65;
}
.pm-yukleniyor {
    margin-left: .6rem;
    color: #6c757d;
}

/* Çoklu seçim kutusundaki "Tümünü seç" satırı — listeden ince çizgiyle ayrılır */
.pm-ka-tumu {
    border-bottom: 1px solid #dee2e6;
    padding-bottom: .3rem;
    margin-bottom: .3rem;
}

/* Geniş filtre paneli (uzun takım adları rahat okunsun) */
.pm-fd-genis .portal-filter-dropdown-body {
    min-width: 28rem;
}

/* Tanım formu — geniş modal + çift sütun + çoklu seçim kutuları */
.pm-modal-card.pm-modal-genis {
    max-width: 46rem;
    width: 94vw;
}

/* Hedef surumleri listesi — uzun gecmiste modal buyumesin, ici kaysin */
.pm-surum-liste {
    max-height: 24rem;
    overflow-y: auto;
    border: 1px solid var(--pm-cizgi, #dee2e6);
    border-radius: .375rem;
}
.pm-surum-satir {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--pm-cizgi, #dee2e6);
}
.pm-surum-satir:last-child { border-bottom: 0; }
.pm-surum-no {
    flex: 0 0 auto;
    min-width: 2.5rem;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: #6c757d;
}
.pm-surum-orta { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
/* Ekranda gorulen durum = listenin en ustu; "don" yerine rozet */
.pm-surum-satir.pm-surum-aktif { background: rgba(24, 188, 156, .07); }
.pm-surum-rozet {
    flex: 0 0 auto;
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    color: #0f6b5c;
    background: rgba(24, 188, 156, .16);
    white-space: nowrap;
}

.pm-ka-form-2s {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 0.9rem;
}

@media (max-width: 640px) {
    .pm-ka-form-2s { grid-template-columns: 1fr; }
}

/* Coklu secim kutulari. auto-fit: Kampanya modalinda 2 kutu (Donemler,
   Markalar), Komisyon Alani modalinda 3 kutu (Donemler, Markalar, Malzemeler)
   — sabit 1fr 1fr olsaydi ucuncu kutu alt satirda yarim kalirdi. */
.pm-ka-coklu {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 0.9rem;
    margin-top: 0.7rem;
}

@media (max-width: 640px) {
    .pm-ka-coklu { grid-template-columns: 1fr; }
}

.pm-ka-coklu-kutu {
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 0.55rem;
    padding: 0.55rem;
}

.pm-ka-coklu-baslik {
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.pm-ka-coklu-liste {
    max-height: 13rem;
    overflow-y: auto;
    margin-top: 0.4rem;
    font-size: 0.85rem;
}

/* Marka tabı Takım filtresi — aramalı tek seçimli dropdown */
.pm-tf summary .pm-tf-etiket {
    display: inline-block;
    max-width: 18rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}

.pm-tf .portal-filter-dropdown-body {
    min-width: 22rem;
}

.pm-tf .pm-reset-link {
    margin-top: 0.35rem;
}

/* "Tum takimlarin markalari" — tekil takim listesinin USTUNDE, ayri bir blok:
   tek tikla takim hedefine giren her sey isaretlenir (Unifree talebi 27.08) */
/* Aranabilir tek secimli acilir liste (tanim formlarindaki Grup alanlari).
   Filtre dropdown'lariyla ayni iskelet; fark: cok secimli checkbox yerine
   tiklanabilir tek secim ve form alani gibi tam genislik. */
.pm-sec-dd { display: block; }
.pm-sec-dd > summary {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    font-weight: 400;
    text-align: left;
}
.pm-sec-dd .portal-filter-dropdown-body { min-width: 100%; }
.pm-sec-item {
    padding: .25rem .4rem;
    border-radius: .25rem;
    cursor: pointer;
}
.pm-sec-item:hover { background: rgba(13, 110, 253, .08); }
.pm-sec-item.pm-sec-secili { background: rgba(13, 110, 253, .14); font-weight: 600; }
/* Ust alan secilmeden ("Once kategori secin") panel acilmasin */
.pm-sec-dd.pm-sec-kilit > summary {
    pointer-events: none;
    opacity: .6;
}

/* padding-left'e DOKUNULMAZ: .form-check checkbox'i margin-left:-1.5em ile
   sola cekip karsiliginda padding-left:1.5em veriyor. Shorthand `padding`
   yazilirsa o padding ezilir ve kutu panelin disina tasar. */
.pm-tf-tumu {
    padding-top: .35rem;
    padding-bottom: .45rem;
    margin: .35rem 0;
    border-top: 1px solid var(--pm-cizgi, #dee2e6);
    border-bottom: 1px solid var(--pm-cizgi, #dee2e6);
}

/* Toplu aksiyon barı */
.pm-bulk-bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(13, 110, 253, 0.14);
    background: rgba(13, 110, 253, 0.04);
    border-radius: 0.7rem;
    margin-bottom: 0.9rem;
}
.pm-bulk-bar .pm-bulk-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: #1f2937;
    white-space: nowrap;
}
.pm-bulk-bar select { max-width: 9.5rem; }
.pm-bulk-bar .pm-bulk-pct { max-width: 6.5rem; text-align: right; }

/* Sıralanabilir başlıklar */
th[data-sort] {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}
th[data-sort]:hover { color: #0d6efd; }

/* Salt okunur oran hücresi */
.pm-ratio-cell {
    font-weight: 700;
    color: #0d6efd;
    font-variant-numeric: tabular-nums;
}

/* Bütçe → Hedef mini paneli (Ekran 1) */
.pm-budget-panel {
    background: linear-gradient(180deg, rgba(13, 110, 253, 0.04), rgba(13, 110, 253, 0));
    border: 1px solid rgba(13, 110, 253, 0.12);
    border-radius: 0.8rem;
    padding: 0.5rem 0.75rem;
}
.pm-budget-panel .table { margin-bottom: 0; }
.pm-budget-panel .table > :not(caption) > * > * { background: transparent; }
.pm-hint {
    color: #6c757d;
    font-size: 0.8rem;
}

/* Düzenlenebilir hücre girişleri */
.pm-inp {
    max-width: 100%;
}
.pm-inp-money { text-align: right; }
.pm-inp-num   { text-align: right; max-width: 6.5rem; }
/* Komisyon oran girdileri: pm-inp-num'un 6.5rem tavanı kaldırılır; hücre
   min-width'li olduğundan input küçük ekranda okunur tabanın altına inmez,
   büyük ekranda hücreyle birlikte genişler */
.pm-kom-oran  { max-width: none; }
/* 4 ondalik basamak + % eki + sayi girdisinin oklari: 7rem'de "1,3868" kirpiliyordu */
td.pm-kom-oran-td { min-width: 8.5rem; }
/* Vardiya planinda CALISILAN ama orani girilmemis hucre: "vardiyamdaki bir
   bireyin komisyonu bulunamadi". Renk tek basina anlam tasimasin diye hucrede
   ayrica title (tooltip) var; sol kenar cizgisi de renk korlugunde ayirt eder. */
td.pm-kom-eksik {
    background: rgba(220, 53, 69, .08);
    box-shadow: inset 3px 0 0 0 #dc3545;
}
td.pm-kom-eksik .pm-inp { border-color: #dc3545; }
/* Excel indirme suruyor: <a> ogesinde disabled ozelligi olmadigi icin
   tiklama CSS ile kapatilir (JS tarafinda ayrica data-indiriliyor bayragi var) */
a.pm-indiriliyor {
    pointer-events: none;
    opacity: .75;
}
/* Vardiya planinda OLMAYAN kolon: doldurulmasi beklenmiyor, geri planda kalir */
td.pm-kom-plansiz { opacity: .55; }
/* Komisyon: Marka kolonu dar tutulur, uzun adlar alt satira sarar.
   Secici, genel nowrap kuralinin (.pm-wide-table.portal-combined-table >
   tbody > tr > *) OZGULLUGUNU GECMEK ZORUNDA — tbody/tr de sayildigi icin
   kisa secici yenilir ve normal ezilirdi. overflow-wrap:anywhere SART:
   bosluksuz/+'li uzun adlar da kelime icinden kirilir. */
.pm-wide-table.portal-combined-table > tbody > tr > td.pm-kom-marka {
    max-width: 10rem;
    min-width: 7rem;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;   /* eski tarayici yedegi */
}
/* Takim hucresi: ust satir kod, alt satir DimTeam.teamname (uzun ve tireli —
   marka hucresiyle ayni kirilma kurali, ayni ozgulluk zorunlulugu). */
.pm-wide-table.portal-combined-table > tbody > tr > td.pm-kom-takim {
    max-width: 13rem;
    min-width: 8rem;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}
td .pm-inp { min-width: 6rem; }
td .pm-inp-comment { min-width: 11rem; }

/* Kaydet/Güncelle butonu satırı */
.pm-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-top: 0.9rem;
}
.pm-reset-link {
    font-size: 0.82rem;
    color: #6c757d;
    text-decoration: none;
    border: 0;
    background: none;
    cursor: pointer;
}
.pm-reset-link:hover { color: #0d6efd; text-decoration: underline; }

/* "Her şey dahil üst sınır" vurgu kutusu (Ekran 3) */
.pm-cap-callout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: linear-gradient(180deg, rgba(24, 188, 156, 0.10), rgba(24, 188, 156, 0));
    border: 1px solid rgba(24, 188, 156, 0.22);
    border-radius: 0.9rem;
    padding: 0.9rem 1.15rem;
}
.pm-cap-callout .pm-cap-label { font-weight: 600; color: #1f2937; }
.pm-cap-callout .pm-cap-value {
    font-size: 1.45rem;
    font-weight: 700;
    color: #0f5132;
}

/* Pay toplamı rozeti (Ekran 3) */
.pm-sum-badge { font-weight: 600; }
.pm-sum-ok    { color: #0f5132; background: rgba(25, 135, 84, 0.12); }
.pm-sum-warn  { color: #842029; background: rgba(220, 53, 69, 0.12); }

/* Notlar / açık sorular kutusu (Ekran 2) */
.pm-note-card {
    border: 1px dashed rgba(13, 110, 253, 0.28);
    background: rgba(13, 110, 253, 0.03);
    border-radius: 0.8rem;
    padding: 0.85rem 1rem;
}
.pm-note-card .pm-note-title {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

/* Toast */
.pm-toast-wrap {
    position: fixed;
    right: 1.1rem;
    bottom: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    z-index: 1080;
}
.pm-toast {
    min-width: 240px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-left: 4px solid var(--pm-accent);
    border-radius: 0.7rem;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
    padding: 0.7rem 0.95rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    color: #1f2937;
    font-size: 0.9rem;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.pm-toast.show { opacity: 1; transform: translateY(0); }
.pm-toast.pm-toast-warn { border-left-color: #f39c12; }
.pm-toast .fa-circle-check { color: var(--pm-accent); }
.pm-toast.pm-toast-warn .fa-triangle-exclamation { color: #f39c12; }

/* Bilgi etiketleri (stoksuzluk/kasa önü) */
.pm-tag {
    display: inline-block;
    padding: 0.12rem 0.5rem;
    border-radius: 0.5rem;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.4;
}
.pm-tag-low  { color: #0f5132; background: rgba(25, 135, 84, 0.12); }
.pm-tag-mid  { color: #664d03; background: rgba(255, 193, 7, 0.18); }
.pm-tag-high { color: #842029; background: rgba(220, 53, 69, 0.12); }
.pm-tag-yes  { color: #0f5132; background: rgba(25, 135, 84, 0.12); }
.pm-tag-no   { color: #6c757d; background: rgba(108, 117, 125, 0.12); }

/* ------------------------------ Responsive ------------------------------ */
@media (max-width: 991.98px) {
    .pm-sidebar { transform: translateX(-100%); }
    .pm-sidebar.open { transform: translateX(0); }
    .pm-main { margin-left: 0; }
    .pm-burger { display: inline-flex; align-items: center; }
}

/* Masaüstünde menü TAMAMEN kapanabilir (body.pm-menu-kapali; ☰ butonu
   toggle eder, seçim localStorage'da). Mobil aç/kapa üstteki blokta ayrı. */
@media (min-width: 992px) {
    .pm-burger { display: inline-flex; align-items: center; }
    .pm-main { transition: margin-left 0.2s ease; }
    body.pm-menu-kapali .pm-sidebar { transform: translateX(-100%); }
    body.pm-menu-kapali .pm-main { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .pm-sidebar, .pm-main { transition: none; }
}

/* Çok kolonlu tablolar: sabit yerleşim yerine içeriğe göre genişle + gerekirse
   .table-responsive ile yatay kaydır. (portal-combined-table varsayılanı table-layout:fixed
   olduğundan çok kolonda başlıklar taşıp üst üste biniyordu.) */
.pm-wide-table.portal-combined-table {
    table-layout: auto;
    width: auto;
    min-width: 100%;
}
.pm-wide-table.portal-combined-table thead th,
.pm-wide-table.portal-combined-table > tbody > tr > * {
    white-space: nowrap;
}
.pm-wide-table.portal-combined-table th,
.pm-wide-table.portal-combined-table td {
    padding-left: 0.7rem;
    padding-right: 0.7rem;
}

/* Takım Adı kolonu: başlığın sağ kenarından sürüklenerek genişletilip
   daraltılabilir; genişlik tablo üzerindeki --tk-adi değişkeninden gelir. */
th.pm-col-resize { position: relative; }
th.pm-col-resize::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 8px;
    height: 100%;
    cursor: col-resize;
}
/* Takım Kodu kolonu: içerik 4-5 hane — width:1% auto-layout'ta kolonu
   içerik minimumuna indirir, fazla genişlik diğer kolonlara kalır */
.pm-wide-table th.pm-tk-kodu,
.pm-wide-table td.pm-tk-kodu { width: 1%; }

.pm-wide-table th.pm-tk-adi { width: var(--tk-adi, 22rem); }
.pm-wide-table td.pm-tk-adi {
    max-width: var(--tk-adi, 22rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Alt Grup tabı üst özet tablosu — Excel görseli düzeni (CIGAR+ / WINE+) */
.pm-altgrup-ozet {
    table-layout: fixed;
    width: 100%;
    min-width: 56rem;
    border-collapse: collapse;
    font-size: .85rem;
}
.pm-altgrup-ozet th,
.pm-altgrup-ozet td {
    border: 1px solid #b7c4d8;
    padding: .3rem .6rem;
}
.pm-altgrup-ozet th:first-child,
.pm-altgrup-ozet td:first-child { width: 13rem; }
.pm-to-bos { background: transparent; border: none !important; }
.pm-to-oranlar { background: #ffffff; font-weight: 600; text-align: left; }
.pm-to-magaza { background: #1f4e9c; color: #fff; text-align: center; font-weight: 700; }
.pm-to-ltc { background: #9dc3e6; color: #1b2a41; font-weight: 700; }
.pm-to-hedef { background: #21a366; color: #fff; text-align: center; font-weight: 700; }
.pm-to-kategori { background: #d92b2b; color: #fff; font-weight: 600; white-space: nowrap; }
.pm-to-deger { background: #eaf2fb; text-align: right; }
.pm-to-blok { background: #0070c0; color: #fff; font-size: 1.15rem; font-weight: 800; }
.pm-to-toplam { background: #ffc000; text-align: right; font-weight: 700; }

/* Onay modalı (Sistemi Sıfırla) */
.pm-modal {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1080;
}
.pm-modal[hidden] { display: none; }
.pm-modal-card {
    background: #fff;
    border-radius: .5rem;
    padding: 1.25rem 1.5rem;
    max-width: 27rem;
    width: calc(100% - 2rem);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .25);
}
.pm-modal-title {
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: .75rem;
    color: #b02a37;
}
.pm-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
}

/* Tanım formu modalı */
.pm-modal-title-notr { color: #1b2a41; }
.pm-ka-form label {
    display: block;
    margin-bottom: .65rem;
    font-size: .85rem;
    font-weight: 600;
    color: #344054;
}
.pm-ka-form select { margin-top: .2rem; width: 100%; }
