﻿/* İşteÇözüm portal stilleri — tema 4.0 (Bootstrap 5.2) üzerine. Temanın kendi dosyalarına dokunulmaz;
   buradaki kurallar yalnız bizim bileşenlerimiz ve iş ekranları içindir (kayıt 345). */

/* ---- Genel yardımcılar ---- */
.h-28px { height: 28px; }
.page-header-logo { max-width: 460px; max-height: 92px; }
*:focus { outline: 0; }
.tooltip { pointer-events: none; }

/* ---- Genel görünüm düzeltmeleri (tasarım turu) ---- */
/* Yan menüde farklı genişlikteki ikonlar (icomoon/fontawesome) metni kaydırmasın */
.nav-sidebar .nav-link > i { width: var(--icon-font-size); flex-shrink: 0; text-align: center; }
/* select2 temizleme (×): açılır okun hemen solunda, arada kısa boşluk; metin iki simgenin altına girmesin */
.select2-selection--single .select2-selection__clear { position: absolute; float: none; top: 50%; right: calc(var(--s2-padding-x) + 1.375rem);
    transform: translateY(-50%); margin: 0; line-height: 1; }
.select2-selection--single .select2-selection__rendered:has(> .select2-selection__clear) { padding-right: calc(var(--s2-padding-x) + 1.875rem + var(--icon-font-size)); }
/* Sayfalama mobilde kartın dışına taşmasın */
.dataTables_paginate .pagination { flex-wrap: wrap; justify-content: center; row-gap: .25rem; }
/* Başlık şeridi: uzun başlık sağdaki aç/kapa düğmesine dayanmasın */
.page-header > .page-header-content:first-child > .d-flex { gap: .5rem; }
.page-header .page-title { min-width: 0; overflow-wrap: anywhere; }
/* Detay kartı anahtar-değer tablosu (app-card-model-detail): etiket sütunu sabit oran, değer sıkışmasın */
.table td.card-model-label { width: 1%; white-space: nowrap; padding-right: 1.5rem; }
.table td.card-model-label + td { overflow-wrap: anywhere; }
/* Tablo filtre satırı: onay kutuları yanındaki seçim kutularıyla aynı hizada (kutu yüksekliğinin ortası) */
.datatable-filters .form-check { min-height: calc(var(--input-height, 2.25rem)); display: flex; align-items: center; gap: .5rem; padding-left: 0; margin-bottom: 0; }
.datatable-filters .form-check .form-check-input { float: none; margin: 0; flex-shrink: 0; }
/* Üst çubuk: avatarlı kullanıcı menüsü diğer ikonlarla aynı dikey hizada */
.navbar .nav > .nav-item > .navbar-nav-link { display: flex; align-items: center; }

/* Sekmeler mobilde sığmazsa alt satıra kaymak yerine yatay kaysın */
@media (max-width: 767.98px) {
    .nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
    .nav-tabs .nav-link { white-space: nowrap; }
}

/* Kart başlığındaki eylem grubu telefonda başlığın altına sarılsın (düğmeler ekran dışına taşmasın) */
@media (max-width: 575.98px) {
    .card-header.d-flex { flex-wrap: wrap; row-gap: .5rem; }
    .card-header.d-flex > .ms-auto:has(.btn) { margin-left: 0 !important; flex-wrap: wrap; gap: .5rem; }
}
/* Dosya bırakma alanının açıklaması okunur kontrastta */
.app-file-drop { --dz-placeholder-color: var(--gray-600); }

/* Boş tablo mesajı: geniş (kaydırılan) tablonun ortasına kayıp kart kenarında kesilmesin */

/* ---- Kart başlıkları: başlık içindeki card-title alt boşluk bırakmasın (şerit gereksiz yükseliyordu) ---- */
.card-header .card-title { margin-bottom: 0; }
/* Eski görünümlerde kart başlığı h3/h4 ile yazılmış; hepsi aynı ölçüde (h5) görünsün */
.card-header .card-title { font-size: 1.0625rem; font-weight: 600; }

/* ---- İşlem menüsü (app-action-menu) ve sekme menüsü (app-tab-menu) ---- */
.AppActionMenu > div { column-gap: 1.5rem; }
/* 07.10: masaüstünde sekme satırına kaydırma çubuğu çıkıyordu (1440'ta 1 px taşma). Masaüstünde sekmeler sığmazsa alt
   satıra geçer (gizli sekme kalmaz) ve aralık biraz daralır; mobilde yatay kayar ama çubuk görünmez. */
.AppTabMenu .nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.AppTabMenu .nav-tabs::-webkit-scrollbar { display: none; }
.AppTabMenu .nav-link { white-space: nowrap; }
@media (min-width: 992px) {
    .AppTabMenu .nav-tabs { flex-wrap: wrap; overflow: visible; }
    .AppTabMenu .nav-link { padding-left: .875rem; padding-right: .875rem; }
}

/* ---- Sağ panel (RightPanelButton) ---- */
.RightPanel { width: 30%; }
@media (max-width: 991.98px) {
    .page-content { flex-wrap: wrap; }
    .RightPanel { width: 100%; }
}

/* ---- Tablolar ---- */
.table-responsive .dataTables_scrollBody { overflow: visible !important; }
.img-preview { max-height: 5rem; }
.fancytree-ext-table tbody tr td:first-child { text-align: left !important; }
.TableTemplate { display: none; }
.line-active { background-color: #f2f2f2; }
/* Kayıt 367: aylık raporlarda ay ayrımı — tema 4.0'da tablo hücre kuralı .line-active zeminini eziyordu (hücre şeffaf kalıyordu);
   zemin tablo değişkeniyle verilir, her ayın ilk sütununa ve ay başlığına dikey ayraç çizilir. */
.table-monthly-data > tbody > tr > td.line-active { --table-accent-bg: rgba(var(--black-rgb), .055); }
.table-monthly-data .month-start { border-left: 1px solid var(--border-color); }
.table-monthly-data > thead th.month-start { text-align: center; }
/* İşlem menüsü sütunu tablo yatay kaydırılsa da sağda sabit kalır (başlık + satırlar) */
.dataTable .dataTableActionButtons { position: sticky; right: 0; z-index: 1; background-color: var(--card-bg, #fff); box-shadow: inset 1px 0 0 var(--table-border-color, var(--border-color)), -6px 0 6px -6px rgba(0, 0, 0, .18); }
.dataTable.table-striped > tbody > tr:nth-of-type(odd) > .dataTableActionButtons { background-image: linear-gradient(var(--table-striped-bg), var(--table-striped-bg)); }
.dataTable tbody tr:hover > .dataTableActionButtons { background-image: linear-gradient(rgba(var(--primary-rgb), .06), rgba(var(--primary-rgb), .06)); }
.dataTable tbody tr.selected > .dataTableActionButtons { background-image: linear-gradient(var(--table-active-bg), var(--table-active-bg)); }

/* Satır vurgusu yalnız veri tablolarında (eskiden bütün tablolarda, detay kartları dahil) */
.dataTable tbody tr:hover,
.app-table-hover { background-color: rgba(var(--primary-rgb), .06) !important; }
/* border-top-0 kısaltması üst kenarlık rengini yazı rengine çeviriyor, satırlar bunu miras alıp koyu çizgi çiziyordu */
.table.border-top-0 { border-top-color: var(--table-border-color) !important; }
.table-bold-column { font-weight: bold; }
.table-short > tbody > tr > td { min-width: 100px; max-width: 250px; padding: 3px 3px 3px 18px !important; }
.datatable-scroll { width: 100%; overflow-x: auto; }
.dataTable { width: 100% !important; }
/* Tema 4.0 hücre dolgusu (0.75rem 1.25rem) eskiden sığan listeleri kestiriyordu: veri tablolarında sıkı dolgu */
.dataTable { --table-cell-padding-x: .75rem; --table-cell-padding-y: .625rem; }
/* table-active tema 4.0'da çok koyu ve zebra satırlarında ezilip desen bozuyordu: açık ton, her satırda aynı */
.table { --table-active-bg: rgba(var(--black-rgb), .045); }
.table-striped > tbody > tr:nth-of-type(odd) > .table-active,
.table-striped > tbody > tr.table-active:nth-of-type(odd) > * { --table-accent-bg: var(--table-active-bg); }
/* Filtre satırı ve arama kutusundaki ikonlar yazıyla orantılı */
.datatable-filters .input-group-text { padding-left: .625rem; padding-right: .625rem; }
.datatable-filters .input-group-text i, .dataTables_filter .form-control-feedback-icon i { font-size: 1rem; }
.dataTable td, .dataTable th { white-space: nowrap; }
.datatable-footer .dataTables_paginate { max-width: 100%; overflow-x: auto; }

/* ---- Dosya seçimi (app.js AppInitFileDrops): tema dropzone görünümü, form içinde daha alçak ---- */
.app-file-drop { --dz-min-height: 7rem; display: flex; flex-direction: column; justify-content: center; }
.app-file-drop.dz-started { justify-content: flex-start; }
.app-file-drop:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.was-validated .app-file-drop:has(input:invalid) { --dz-border-color: var(--danger); }

/* ---- Rapor tabloları: kaydırılabilir kutu + yapışkan başlık (eskiden her raporda ayrı <style>) ---- */
/* Yükseklik ekranı doldurur (başlık/çubuk payı düşülür); rapor kısa görünüp veri eksik sanılmasın */
.table-report-scroll { overflow: auto; max-height: calc(100vh - 13rem); }
/* thead bütün olarak yapışır: çok satırlı başlıklarda (ay + durum ikonları) satırlar birbirini örtmez */
.table-report-scroll > .table > thead { position: sticky; top: 0; z-index: 2; }
.table-report-scroll > .table > thead th { background-color: var(--card-bg, #fff); }
.table-report-scroll > .table > thead > tr:last-child > th { box-shadow: inset 0 -1px 0 var(--border-color); }
.table-monthly-data td { padding: .5rem .25rem; }
/* Aylık raporlarda ilk sütun (şirket/bayi adı) kırılmasın, sayısal hücreler tek satır */
.table-monthly-data td:first-child, .table-monthly-data td { white-space: nowrap; }

/* ---- Select2 ---- */


/* Seçili metin/yer tutucu oka ve × işaretine binmesin (eski temanın dar sağ dolgusu kaldırıldı) */
.select2-selection--single .select2-selection__rendered { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.select2-selection--multiple .select2-selection__clear { display: none !important; }
.select2-result-custom__title { font-weight: bold; word-wrap: break-word; margin-bottom: 2px; }
.select2-result-custom__description { font-size: .75rem; }
.input-group > .select2-container--default { width: auto !important; flex: 1 1 auto !important; }
.input-group > .select2-container--default .select2-selection--single { height: 100%; }

/* ---- Form doğrulama (BS5 invalid-feedback) ----
   select2 ve metin editörü asıl alanı gizlediği için görsel karşılıkları ayrıca boyanır. */
.was-validated select:invalid + .select2 .select2-selection { border-color: var(--danger); }
.was-validated select:valid + .select2 .select2-selection { border-color: var(--success); }
.was-validated .trumbowyg-box:has(textarea:invalid) { border-color: var(--danger); }
.was-validated .trumbowyg-box:has(textarea:invalid) ~ .invalid-feedback { display: block; }

/* ---- Yazdırma şablonu editörü ---- */
.printTemplateContainer { position: relative; }
.pte-item { background-color: #fafafa; border: 1px dashed #ddd; color: #777; overflow: hidden; }
div.pte-item, table.pte-item { position: absolute; table-layout: fixed; }
.printTemplateContainer.active, .pte-item.active { background-color: #e3f2fd; border-color: #2196f3; }
.pte-table-item.active { background-color: #fde1df; color: #7f231c; }

/* ---- Perakende satış ekranı ---- */
.RetailSaleContainer input, .RetailSaleContainer select { font-size: 18px !important; }
.vl { border-left: 1px solid #ddd; height: 32px; }
.ProductSearchResult { font-size: 18px; }
.ProductSearchResult span { font-size: 16px; }
.RetailTotalTable h5 { margin-bottom: 0; }

/* ---- Üst çubuk ---- */
.navbar-nav-link-icon { position: relative; }
.navbar .dropdown-menu .dropdown-menu-scrollable { max-height: 60vh; overflow-y: auto; }
@media (max-width: 991.98px) {
    /* Devam Eden İşlemler görünürlüğünü JS yönetir; mobilde gösterilmez */
    .navbar .ActiveActionContainer { display: none !important; }
}
@media (max-width: 575.98px) {
    /* Telefonda ikon satırı tek satıra sığsın */
    .navbar .nav .navbar-nav-link-icon { padding-left: .4rem; padding-right: .4rem; }
    .navbar > .container-fluid > .nav { gap: 0 !important; }
}

/* ---- Eski temadan kalan küçük yardımcılar ---- */
/* Tema 4.0'da ikon tabanı 20px (eskisi 16px): büyütülmüş ikonlar eski ölçüde kalsın, göstergeler/kartlar şişmesin */
.icon-2x { font-size: 2rem; }
.icon-3x { font-size: 3rem; }
/* Eski temada koyu zemin sınıfları yazıyı beyaz yapıyordu (panel kartları, renkli kart/başlıklar); tema 4.0 yalnız zemini boyar.
   Açık tonlar (bg-opacity-*), açık renkler ve sayfa gövdesi (giriş sayfasının koyu zemini) kapsam dışı. */
.bg-primary:not([class*="bg-opacity-"]):not(body), .bg-success:not([class*="bg-opacity-"]):not(body), .bg-danger:not([class*="bg-opacity-"]):not(body),
.bg-info:not([class*="bg-opacity-"]):not(body), .bg-warning:not([class*="bg-opacity-"]):not(body), .bg-indigo:not([class*="bg-opacity-"]):not(body),
.bg-teal:not([class*="bg-opacity-"]):not(body), .bg-pink:not([class*="bg-opacity-"]):not(body), .bg-purple:not([class*="bg-opacity-"]):not(body),
.bg-secondary:not([class*="bg-opacity-"]):not(body), .bg-dark:not([class*="bg-opacity-"]):not(body), .bg-black:not([class*="bg-opacity-"]):not(body) { color: #fff; }
@keyframes tada {
    0% { transform: scale(1); }
    10%, 20% { transform: scale(.9) rotate(-3deg); }
    30%, 50%, 70%, 90% { transform: scale(1.1) rotate(3deg); }
    40%, 60%, 80% { transform: scale(1.1) rotate(-3deg); }
    100% { transform: scale(1); }
}
.animated.tada { display: inline-block; animation: tada 1s both; }
.animated.delay-1s { animation-delay: 1s; }
.badge-striped-left { border-left-width: 2px !important; border-left-style: solid !important; }
.progress-xxs { height: .25rem; }
.badge-mark { display: inline-block; padding: 0; border: 2px solid; width: .5rem; height: .5rem; border-radius: 100px; }
.border-left-2 { border-left-width: 2px !important; border-left-style: solid !important; }
.border-left-3 { border-left-width: 3px !important; border-left-style: solid !important; }
.border-left-primary { border-left-color: var(--primary) !important; }
.border-left-success { border-left-color: var(--success) !important; }
.border-left-danger { border-left-color: var(--danger) !important; }
.border-left-warning { border-left-color: var(--warning) !important; }
.border-left-info { border-left-color: var(--info) !important; }
.border-left-dark { border-left-color: var(--dark) !important; }

/* ---- Üst çubuk araması (_NavbarSearch, tema 4.0 navbar-search) ---- */
.app-navbar-search { max-width: 34rem; }
.app-navbar-search .form-control { --input-bg: transparent; padding-right: 4.5rem; border-color: rgba(var(--white-rgb), .2); transition: background-color .15s ease, border-color .15s ease; }
.app-navbar-search .form-control:hover { border-color: rgba(var(--white-rgb), .35); }
.app-navbar-search .form-control:focus { background-color: rgba(var(--white-rgb), .1) !important; border-color: rgba(var(--white-rgb), .45); box-shadow: none; }
.app-navbar-search .form-control::-webkit-search-cancel-button { display: none; }
.app-navbar-search-kbd { position: absolute; right: .75rem; top: 50%; transform: translateY(-50%); pointer-events: none; font-size: .6875rem; padding: .125rem .375rem;
    background: rgba(var(--white-rgb), .1); color: rgba(var(--white-rgb), .65); border: 1px solid rgba(var(--white-rgb), .15); border-radius: .25rem; box-shadow: none; }
.app-navbar-search .form-control:focus ~ .app-navbar-search-kbd { opacity: 0; }
.app-navbar-search-menu { margin-top: .5rem !important; top: 100%; left: 0; overflow: hidden; box-shadow: 0 .5rem 1.5rem rgba(var(--black-rgb), .15); }
.app-navbar-search-menu .dropdown-header { font-size: .6875rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; color: var(--gray-600); padding-top: .75rem; padding-bottom: .25rem; }
.app-navbar-search-menu .dropdown-header span { font-weight: 400; }
.app-navbar-search-item { display: flex; align-items: center; gap: .75rem; padding-top: .5rem; padding-bottom: .5rem; white-space: normal; cursor: pointer; }
.app-navbar-search-item mark { padding: 0; background-color: rgba(var(--warning-rgb), .3); color: inherit; border-radius: .125rem; }
.app-navbar-search-item.active { background-color: var(--dropdown-link-hover-bg); color: var(--dropdown-link-hover-color); }
.app-navbar-search-icon { width: 2.25rem; height: 2.25rem; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.app-navbar-search-empty { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 1.5rem 1rem; color: var(--gray-600); text-align: center; }
.app-navbar-search-empty i { font-size: 1.5rem; opacity: .6; }
.app-navbar-search-footer { gap: 1rem; padding: .5rem 1rem; border-top: 1px solid var(--border-color); font-size: .75rem; color: var(--gray-600); background-color: var(--gray-100); }
.app-navbar-search-footer kbd { font-size: .6875rem; padding: .0625rem .3125rem; margin-right: .125rem; background: var(--white); color: var(--body-color); border: 1px solid var(--border-color); box-shadow: none; }
@media (max-width: 991.98px) { .app-navbar-search { max-width: none; } .app-navbar-search .form-control { padding-right: .875rem; } }

/* Kullanıcı harf avatarı: temanın 32px/40px fotoğraf avatarı ölçüsünde; çevrimiçi göstergesi için fotoğraftaki maske uygulanır */
.app-avatar { display: inline-flex; align-items: center; justify-content: center; border-radius: var(--border-radius-pill); background-color: var(--primary); color: var(--white); font-weight: 600; line-height: 1; text-transform: uppercase; user-select: none; }
.status-indicator-container .app-avatar { -webkit-mask-image: radial-gradient(circle at calc(100% - var(--indicator-size)) calc(100% - var(--indicator-size)), rgba(0,0,0,0) calc(var(--indicator-size) + var(--indicator-gap)), #000 0);
    mask-image: radial-gradient(circle at calc(100% - var(--indicator-size)) calc(100% - var(--indicator-size)), rgba(0,0,0,0) calc(var(--indicator-size) + var(--indicator-gap)), #000 0); }

/* ---- Dashboard göstergeleri (kayıt 345): beyaz kart, ikon kutulu başlık, sabit genişlikli sayılar, çubuk ve sütun grafik ---- */
.dashboard-card-header { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.card-header.dashboard-card-header { margin-bottom: 0; }
.dashboard-card-icon { width: 2.25rem; height: 2.25rem; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: .5rem; font-size: 1.125rem; }
.dashboard-card-title { font-size: .9375rem; font-weight: 600; margin: 0; line-height: 1.3; }
.dashboard-card-subtitle { font-size: .8125rem; color: var(--gray-600); line-height: 1.35; margin-top: .125rem; }
.dashboard-empty { color: var(--gray-600); font-size: .8125rem; padding: .5rem 0; }
.dashboard-footnote { color: var(--gray-600); font-size: .75rem; margin-top: .5rem; }
.dashboard-list-row { padding: .4375rem 0; border-top: 1px solid var(--border-color-translucent, var(--border-color)); }
.dashboard-list-row:first-child { border-top: 0; padding-top: 0; }
.dashboard-list-line { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; }
.dashboard-list-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-list-value, .dashboard-grid-value, .dashboard-kpi-value, .dashboard-table td { font-variant-numeric: tabular-nums; }
.dashboard-list-value { font-weight: 600; white-space: nowrap; }
.dashboard-list-value small { font-weight: 400; color: var(--gray-600); margin-left: .375rem; font-size: .75rem; }
.is-zero, .dashboard-list-value.is-zero { color: var(--gray-500) !important; font-weight: 400 !important; }
.dashboard-bar { height: .3125rem; margin-top: .375rem; border-radius: 1rem; background-color: var(--gray-200); overflow: hidden; }
.dashboard-bar > div { height: 100%; border-radius: 1rem; min-width: 2px; }
/* 04.10: satırlar tek ızgaranın alt ızgarası (subgrid) — her satır sütun genişliğini kendi içeriğinden hesaplayınca başlık ve değerler kayıyordu */
/* Sütunlar yalnız burada tanımlanır (satır başına yeniden tanım hizayı bozar); uzun etiket alt satıra geçer, sayı sütunları içeriği kadar */
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) repeat(var(--dashboard-grid-columns), minmax(2.25rem, max-content)); column-gap: .875rem; }
.dashboard-grid-row { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: baseline;
    padding: .4375rem 0; border-top: 1px solid var(--border-color-translucent, var(--border-color)); }
.dashboard-grid-row:first-child { border-top: 0; padding-top: 0; }
.dashboard-grid-row.is-header { border-top: 0; padding-bottom: .125rem; font-size: .6875rem; text-transform: uppercase; letter-spacing: .03em; color: var(--gray-600); }
.dashboard-grid-row.is-header + .dashboard-grid-row { border-top: 0; }
.dashboard-grid-row.is-header:not(:first-child) { margin-top: .5rem; }
.dashboard-grid-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-grid-value { text-align: right; white-space: nowrap; font-weight: 600; }
.dashboard-grid-row.is-header .dashboard-grid-value { font-weight: 600; }
.dashboard-grid-value .dashboard-unit { font-weight: 400; font-size: .75rem; color: var(--gray-600); margin-left: .1875rem; }
.dashboard-grid-value.text-success .dashboard-unit, .dashboard-grid-value.text-warning .dashboard-unit, .dashboard-grid-value.text-danger .dashboard-unit { color: inherit; opacity: .75; }
/* Sistem Aktivitesi kartı (04.10): canlı göstergesi, hız kutusu alt satırı, anlık işlem satırı, kuyruk çubuğu */
.dashboard-live { margin-left: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: .3125rem; font-size: .6875rem; text-transform: uppercase; letter-spacing: .03em; color: var(--gray-600); white-space: nowrap; }
.dashboard-pulse { width: .5rem; height: .5rem; border-radius: 50%; background-color: var(--gray-400); flex-shrink: 0; }
.dashboard-pulse.is-active { background-color: var(--success); box-shadow: 0 0 0 0 rgba(var(--success-rgb), .5); animation: dashboard-pulse 1.8s ease-out infinite; }
@keyframes dashboard-pulse { 70% { box-shadow: 0 0 0 .4375rem rgba(var(--success-rgb), 0); } 100% { box-shadow: 0 0 0 0 rgba(var(--success-rgb), 0); } }
.dashboard-kpi-sub { font-size: .75rem; color: var(--gray-600); margin-top: .125rem; white-space: nowrap; }
.dashboard-kpi-value.is-idle { color: var(--gray-500); }
.dashboard-now { display: flex; align-items: center; gap: .5rem; padding: .5rem .625rem; margin-bottom: 1rem; border-radius: .5rem; font-size: .8125rem; background-color: rgba(var(--success-rgb), .08); }
.dashboard-now.is-idle { background-color: var(--gray-100); color: var(--gray-600); }
.dashboard-now b { font-variant-numeric: tabular-nums; }
.dashboard-queue { padding: .5rem 0; border-top: 1px solid var(--border-color-translucent, var(--border-color)); }
.dashboard-section-label + .dashboard-queue { border-top: 0; padding-top: 0; }
.dashboard-queue-line { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.dashboard-queue-value { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dashboard-queue-value small { font-weight: 400; color: var(--gray-600); font-size: .75rem; margin-left: .25rem; }
.dashboard-queue-empty { font-size: .8125rem; color: var(--success); white-space: nowrap; display: inline-flex; align-items: center; gap: .25rem; }
.dashboard-stack { display: flex; height: .3125rem; margin-top: .375rem; border-radius: 1rem; background-color: var(--gray-200); overflow: hidden; gap: 2px; }
.dashboard-stack > span { height: 100%; min-width: 2px; }
.dashboard-legend { display: flex; gap: 1rem; margin-top: .625rem; font-size: .75rem; color: var(--gray-600); }
.dashboard-legend i { display: inline-block; width: .5rem; height: .5rem; border-radius: 2px; margin-right: .3125rem; }
/* Bildirim paneli (04.10): liste uzayınca sekme çubuğu (overflow nedeniyle) esnek kutuda eziliyordu — mobilde "Bildirimler"
   yazısı kırpılıyordu. Tek sekme görünürken çubuk başlığı tekrar etmesin diye gizlenir. Okunmamış bildirim zemin + noktayla
   ayrılır (yalnız kalın yazı mobilde seçilmiyordu); okunmuşlar soluk. */
#notifications .nav-tabs { flex-shrink: 0; }
#notifications .nav-tabs:not(:has(> .nav-item:not(.d-none) ~ .nav-item:not(.d-none))) { display: none; }
.NotificationItem { position: relative; padding: .625rem .75rem .625rem 1.25rem; margin: 0 -.5rem .25rem; border-radius: .5rem; }
.NotificationItem a { color: inherit; }
.NotificationItem a:hover { color: var(--link-color, var(--primary)); }
.NotificationItem:not(.is-unread) { color: var(--gray-600); }
.NotificationItem.is-unread { background-color: rgba(var(--primary-rgb), .08); }
.NotificationItem.is-unread::before { content: ""; position: absolute; left: .5rem; top: 1.125rem; width: .4375rem; height: .4375rem; border-radius: 50%; background-color: var(--primary); }
.NotificationIcon { width: 2.25rem; height: 2.25rem; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.125rem; background-color: color-mix(in srgb, currentColor 12%, transparent); }
.NotificationItem:not(.is-unread) .NotificationIcon { opacity: .6; }
.dashboard-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-grid-sublabel { font-size: .6875rem; text-transform: uppercase; letter-spacing: .03em; color: var(--gray-600); margin-left: .375rem; }
.dashboard-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(4.5rem, 1fr)); gap: .5rem; margin-bottom: 1rem; }
.dashboard-kpis.is-2x2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-kpi { background-color: var(--gray-100); border-radius: .5rem; padding: .5rem .625rem; min-width: 0; }
.dashboard-kpi-label { font-size: .6875rem; text-transform: uppercase; letter-spacing: .03em; color: var(--gray-600); }
.dashboard-kpi-value { font-size: 1.125rem; font-weight: 600; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dashboard-kpi-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem .5rem; margin-bottom: .75rem; }
.dashboard-kpi-row .dashboard-kpi-value { font-size: 1.5rem; }
.dashboard-kpi-row .dashboard-kpi-label { text-transform: none; letter-spacing: 0; font-size: .8125rem; margin-left: auto; }
.dashboard-kpi-delta { font-size: .8125rem; font-weight: 600; display: inline-flex; align-items: center; gap: .125rem; }
.dashboard-kpi-delta i { font-size: .875rem; }
.dashboard-section-label { font-size: .6875rem; text-transform: uppercase; letter-spacing: .03em; color: var(--gray-600); margin-bottom: .375rem; }
.dashboard-chart { display: block; width: 100%; height: 4.5rem; }
.dashboard-chart rect { transition: fill-opacity .15s ease; }
.dashboard-chart rect:hover { fill-opacity: .8; }
.dashboard-chart-axis { display: flex; justify-content: space-between; gap: .5rem; margin-top: .375rem; font-size: .6875rem; color: var(--gray-600); white-space: nowrap; }
.dashboard-chart-axis span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; }
.dashboard-details { margin-top: .75rem; }
.dashboard-details summary { font-size: .8125rem; color: var(--link-color, var(--primary)); cursor: pointer; list-style-position: inside; }
.dashboard-details[open] summary { margin-bottom: .5rem; }
.dashboard-table { margin-bottom: 0; font-size: .8125rem; }
.dashboard-table > :not(caption) > * > * { padding: .375rem .5rem; white-space: nowrap; }
.dashboard-table > :not(caption) > * > *:first-child { padding-left: 0; }
.dashboard-table > :not(caption) > * > *:last-child { padding-right: 0; }
.dashboard-table thead th { font-size: .6875rem; text-transform: uppercase; letter-spacing: .03em; color: var(--gray-600); font-weight: 600; }
.dashboard-status-dot { width: .5rem; height: .5rem; border-radius: 50%; flex-shrink: 0; margin-top: .4375rem; }

/* Tema 4.0'da min-w-0 yardımcı sınıfı yok: esnek kutudaki uzun metin kısalmıyor, yandaki düğmeleri dışarı itiyordu */
.min-w-0 { min-width: 0 !important; }
.app-navbar-search-action { width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; border: 0; padding: 0; border-radius: 50%;
    background: transparent; opacity: .5; transition: opacity .15s ease, background-color .15s ease; }
.app-navbar-search-action i { font-size: 1.125rem; }
.app-navbar-search-item:hover .app-navbar-search-action, .app-navbar-search-item.active .app-navbar-search-action { opacity: 1; }
.app-navbar-search-action:hover { background-color: rgba(var(--black-rgb), .06); }

.dashboard-list-label, .dashboard-grid-label { white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.dashboard-table > :not(caption) > * > * { padding-left: .3125rem; padding-right: .3125rem; }
.dashboard-item .card-body.overflow-auto { overflow-x: hidden !important; }

/* Oturum dışı sayfalar: temanın giriş kartı ölçüsü */
.app-auth-card { width: 100%; max-width: 24rem; }
.app-auth-card .card { border: 0; border-radius: .75rem; box-shadow: 0 1rem 3rem rgba(var(--black-rgb), .35); }
.app-auth-card .card-footer .alert { border-radius: 0 0 .75rem .75rem; }

/* Boş tablo: ikonlu, ortalı mesaj */
td.dataTables_empty { text-align: center !important; padding-top: 2rem !important; padding-bottom: 2rem !important; }
.app-table-empty { display: inline-flex; flex-direction: column; align-items: center; gap: .5rem; color: var(--gray-600); }
.app-table-empty i { font-size: 2rem; opacity: .5; }
/* Tablo araçları (dışa aktarma + sayfa boyu) tek grup; sayfa boyu kutusu dar */
.app-dt-tools .dataTables_length { margin: 0; }
.app-dt-tools .dataTables_length .form-select, .app-dt-tools .dataTables_length select { width: auto; }
.app-dt-tools .dt-buttons { margin: 0; }
@media (max-width: 575.98px) { .app-dt-tools { width: 100%; justify-content: flex-end; } }
/* Detay kartı etiket-değer tablosu: zebra yok, etiket soluk */
.table:has(td.card-model-label) { --table-striped-bg: transparent; }
.table-striped:has(td.card-model-label) > tbody > tr:nth-of-type(odd) > * { --table-accent-bg: transparent; }
td.card-model-label { color: var(--gray-600) !important; }
/* Yetki ağacında seçili/aktif düğüm: onay kutusu yeterli, hap zemini yok. Zemin kalkınca temanın beyaz yazısı da kalkmalı —
   yoksa ağaç odaktayken (.fancytree-treefocus) seçili satırların yazısı beyaz zeminde kaybolur. */
.fancytree-selected .fancytree-title, span.fancytree-node.fancytree-selected span.fancytree-title,
.fancytree-active .fancytree-title, .fancytree-focused .fancytree-title { background: none !important; color: var(--body-color) !important; }
/* İşlem çubuğunda asıl eylem düğmesi */
.AppActionMenu .AppActionMenuItem.btn { padding-top: .3125rem; padding-bottom: .3125rem; }
.help-card-icon { width: 4rem; height: 4rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 1.75rem; }

/* Satır içi white-space stilleri yerine (kayıt 345 toplu dönüşüm) */
[data-app-pre-line] { white-space: pre-line; }
[data-app-pre-wrap] { white-space: pre-wrap; }
/* Select2 odak: eski temanın mavi dolgusu yerine form kontrolleriyle aynı odak halkası */
.select2-container--focus .select2-selection, .select2-container--open .select2-selection { border-color: var(--focus-ring-border-color, var(--primary)) !important; box-shadow: 0 0 0 .125rem rgba(var(--primary-rgb), .15); }
/* Formun ilk bölüm başlığı kartın üstüne boşluk bırakmasın */
.card-body > fieldset.mt-3:first-child, .card-body > .row:first-child > [class*="col-"] > fieldset.mt-3:first-child { margin-top: 0 !important; }

/* Rapor özet kutusu: beyaz kart, renk yalnız üst çizgi + ikon kutusunda (dashboard KPI diliyle aynı) */
.app-stat-card { --stat-rgb: var(--primary-rgb); height: 100%; margin-bottom: 0; border-top: 3px solid rgba(var(--stat-rgb), 1); }
.app-stat-primary { --stat-rgb: var(--primary-rgb); } .app-stat-success { --stat-rgb: var(--success-rgb); } .app-stat-danger { --stat-rgb: var(--danger-rgb); }
.app-stat-warning { --stat-rgb: var(--warning-rgb); } .app-stat-info { --stat-rgb: var(--info-rgb); } .app-stat-indigo { --stat-rgb: var(--indigo-rgb); }
.app-stat-teal { --stat-rgb: var(--teal-rgb); } .app-stat-dark { --stat-rgb: var(--gray-600-rgb, 108, 117, 125); }
.app-stat-card h3 { font-size: 1.5rem; font-weight: 600; }
.app-stat-label { display: block; font-size: .8125rem; color: var(--gray-600); margin-top: .125rem; }
.app-stat-card .fs-xs.opacity-75 { color: var(--gray-600); opacity: 1 !important; margin-top: .25rem; }
.app-stat-icon { width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border-radius: .5rem;
    font-size: 1.375rem; color: rgb(var(--stat-rgb)); background-color: rgba(var(--stat-rgb), .1); }
/* Aylık rapor tabloları: sayılar sağa yaslı, yıl ayraçları ince */
.table-monthly-data td:not(:first-child), .table-monthly-data th:not(:first-child) { text-align: end; }
.dashboard-table.is-compact { font-size: .75rem; }
.dashboard-table.is-compact > :not(caption) > * > * { padding-left: .25rem; padding-right: .25rem; }
.dashboard-table.is-compact thead th { font-size: .625rem; letter-spacing: 0; }

/* KDV 2 raporu: şirket sütunu yatay kaydırmada sabit, sayı rozeti tıklanabilir */
.kdv2-company { position: sticky; left: 0; z-index: 2; min-width: 16rem; max-width: 22rem; background-color: var(--card-bg, var(--white)); border-right: 1px solid var(--border-color); }
thead .kdv2-company { z-index: 3; }
.kdv2-count { min-width: 2rem; text-decoration: none; }
.kdv2-count:hover { background-color: rgba(var(--danger-rgb), .2) !important; }
.table-monthly-data .kdv2-company { padding-left: 1.25rem !important; }

/* Yığın izi / kod bloğu: açık zemin, okunaklı tek aralıklı yazı */
.app-code-block { background-color: var(--gray-100); border: 1px solid var(--border-color); border-radius: .375rem; padding: .75rem 1rem;
    font-size: .75rem; line-height: 1.5; white-space: pre-wrap; word-break: break-all; max-height: 26rem; overflow: auto; color: var(--body-color); }
.app-dt-inline-filters { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; margin-left: 1rem; }
.app-dt-inline-filters .form-check { display: flex; align-items: center; gap: .5rem; padding-left: 0; margin-bottom: 0; min-height: 0; }
.app-dt-inline-filters .form-check .form-check-input { float: none; margin: 0; }
@media (max-width: 575.98px) { .app-dt-inline-filters { margin-left: 0; width: 100%; } }
tr:has(> td > .app-table-empty) > td { --table-accent-bg: transparent; box-shadow: none !important; background-color: transparent !important; padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }

/* Dashboard KPI kutusu (light): soluk başlık, büyük değer, sağda ikon kutusu, altta ince çizgiyle ayrılmış dipnot */
.dashboard-kpi-card { min-height: 8.5rem; }
.dashboard-kpi-caption { font-size: .8125rem; color: var(--gray-600); margin-bottom: .25rem; }
.dashboard-kpi-number { font-size: 1.5rem; font-weight: 600; line-height: 1.25; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.dashboard-kpi-extra { font-size: .8125rem; color: var(--gray-600); margin-top: .125rem; }
.dashboard-kpi-icon { width: 2.75rem; height: 2.75rem; font-size: 1.375rem; flex-shrink: 0; }
.dashboard-kpi-foot { margin-top: auto; padding-top: .75rem; margin-top: .75rem; border-top: 1px solid var(--border-color); font-size: .75rem; color: var(--gray-600); }
.dashboard-list-label, .dashboard-grid-label { overflow-wrap: break-word !important; word-break: normal; }
.dashboard-more > summary { list-style: none; cursor: pointer; color: var(--link-color, var(--primary)); }
.dashboard-more > summary::-webkit-details-marker { display: none; }
.dashboard-more[open] > summary { display: none !important; }

/* Portal ana sayfaları (müşavir/bayi/partner): KPI kutusu bağlantı olabilir; kutular satır içinde eşit yükseklikte */
.row > [class*="col-"] > .app-dashboard-kpi { height: calc(100% - var(--spacer, 1.25rem)); }
.app-dashboard-kpi { display: flex; flex-direction: column; min-height: 0; }
.app-dashboard-kpi > .dashboard-kpi-foot { margin-top: auto; }
.app-dashboard-kpi > .d-flex:first-child { margin-bottom: .75rem; }
a.dashboard-kpi-link { color: inherit; text-decoration: none; transition: box-shadow .15s ease-in-out, border-color .15s ease-in-out; }
a.dashboard-kpi-link:hover { box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .08); border-color: rgba(var(--primary-rgb), .35); }
.dashboard-profile-avatar { width: 3rem; height: 3rem; font-size: 1.25rem; }

/* Giriş/araç kutuları: input-group içindeki ikonlu alan dar ekranda küçülebilsin (yoksa yanındaki düğme alt satıra düşer) */
.input-group > .form-control-feedback { position: relative; flex: 1 1 auto; width: 1%; min-width: 0; }

/* Adet kutusu (lisans aktivasyonu / yenileme): − / + düğmeli sayaç, app.js .quantity-input'u sarar */
.quantity-stepper { flex-wrap: nowrap; min-width: 9rem; }
.quantity-stepper .form-control { min-width: 3rem; }
.quantity-stepper .form-control { text-align: center; -moz-appearance: textfield; }
.quantity-stepper .form-control::-webkit-outer-spin-button, .quantity-stepper .form-control::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

@media (max-width: 575.98px) {
    /* Telefonda logo işareti çubuk ikonlarıyla aynı ölçüde; büyük süs ikonları ve KPI değerleri küçülür */
    .navbar-brand img.d-sm-none { height: 1.5rem !important; }
    .icon-3x { font-size: 2.25rem; }
    .icon-2x { font-size: 1.5rem; }
    .dashboard-kpi-card { min-height: 0; }
    .dashboard-kpi-number { font-size: 1.25rem; }
    .dashboard-kpi-icon { width: 2.25rem; height: 2.25rem; font-size: 1.125rem; }
}

/* Telefonda liste filtreleri kapalı başlar; "Filtreler" düğmesi açar (app.js) */
@media (max-width: 575.98px) {
    .app-filter-mobile-toggle { display: flex !important; align-items: center; }
    .card-body:not(.is-filters-open) > .app-filter-mobile-toggle + .datatable-filters { display: none; }
}

/* Yardım "Adım Adım" anlatımı (kayıt 351): numaralı adım, kısa açıklama, çerçeveli ekran görüntüsü */
.help-step { padding: 1rem 0; border-top: 1px solid var(--border-color); }
.help-step:first-child { border-top: 0; padding-top: 0; }
.help-step-no { width: 2rem; height: 2rem; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%;
    background-color: rgba(var(--primary-rgb), .1); color: var(--primary); font-weight: 600; }
.help-step-text { color: var(--gray-700, var(--body-color)); }
.help-step-image { max-width: 100%; height: auto; border: 1px solid var(--border-color); border-radius: .375rem; box-shadow: 0 .125rem .5rem rgba(0, 0, 0, .06); }

/* Açık satır işlem menüsü diğer satırların sabit işlem hücrelerinin üstünde kalsın (app.js is-dropdown-open) */
.dataTable .dataTableActionButtons.is-dropdown-open, .dataTable .dataTableActionButtons:has(> .dropdown > .dropdown-menu.show) { z-index: 1070; }

/* Kayıt 355: layout-static'te sayfayı belge kaydırıyor ama temanın .content-inner'ı overflow:auto kalıyordu; sticky öğeler kaymayan
   bu kutuya göre hesaplandığı için hiç yapışmıyordu (Veri Aktarım filtresi). clip kaydırma kutusu oluşturmaz, yatay taşmayı yine keser. */
.layout-static .content-inner { overflow-x: clip; overflow-y: visible; }
/* Sol menü masaüstünde ekranla birlikte kalsın; alt menülere ulaşmak için sayfa başına çıkmak gerekmesin */
@media (min-width: 992px) {
    .layout-static .sidebar-main.sidebar-expand-lg .sidebar-content { position: sticky; top: 0; max-height: 100vh; overflow-y: auto; }
}

/* Kayıt 360: ana sayfa pano düzenleme modu — göstergeler canlı kalır, üstlerinde tutamaç/kaldır çubuğu çıkar */
.dashboard-slot-tools, .dashboard-drop-hint { display: none; }
body.dashboard-editing .dashboard-slot-tools { display: flex; align-items: center; gap: .5rem; padding: .25rem .5rem; margin-bottom: .25rem; border: 1px dashed var(--border-color); border-radius: var(--border-radius); background: var(--card-bg); font-size: .8125rem; }
body.dashboard-editing .dashboard-slot-title { flex: 1; min-width: 0; }
body.dashboard-editing .dashboard-drag-handle { cursor: grab; font-size: 1rem; line-height: 1; }
body.dashboard-editing .dashboard-slot .dashboard-item, body.dashboard-editing .dashboard-slot .card { pointer-events: none; }
body.dashboard-editing .dashboard-column { min-height: 8rem; }
body.dashboard-editing .dashboard-drop-hint { display: block; padding: 1rem; margin-bottom: 1rem; border: 1px dashed var(--border-color); border-radius: var(--border-radius); text-align: center; }
.dashboard-catalog-preview { pointer-events: none; }
.dashboard-catalog-preview .card { margin-bottom: 0; }
/* Kayıt 360: pano sekmeleri çoksa yatay kayar; dikey çubuk ve görünür kaydırma çubuğu yok */
.dashboard-tabs { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.dashboard-tabs::-webkit-scrollbar { display: none; }
/* 30.09: telefonda sekmeler araç düğmeleriyle aynı satırda kalır (sekme kutusu daralıp kayar); düzenleme araçları sığmazsa alt satıra
   iner. Kaydırılacak sekme varsa taşan kenar soluklaşır (Index.cshtml is-scroll-start/end sınıfları), aktif sekme görünüre getirilir. */
.dashboard-tabs { flex: 1 1 12rem; min-width: 0; }
.dashboard-tabs.is-scroll-end { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent); }
.dashboard-tabs.is-scroll-start { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(to left, #000 calc(100% - 2.5rem), transparent); }
.dashboard-tabs.is-scroll-start.is-scroll-end { -webkit-mask-image: linear-gradient(to right, transparent, #000 2.5rem, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(to right, transparent, #000 2.5rem, #000 calc(100% - 2.5rem), transparent); }
/* Kayıt 360: düzenleme modunda pano sekmeleri sürüklenir */
body.dashboard-editing .dashboard-tabs .nav-link { cursor: grab; border-bottom-style: dashed; }

/* ---- Kayıt 370: İşteSmm marka çubuğu — mürekkep laciverti zemin, portal renginde alt çizgi ---- */
.app-brand-navbar { --navbar-bg: #1E1C38; border-bottom: 3px solid var(--portal-accent, #8F86D0); }
.app-footer-parent-logo { height: 14px; width: auto; }
html:not([data-color-theme=dark]) .sidebar-main.sidebar-dark { --sidebar-bg: #1E1C38; }
html:not([data-color-theme=dark]) body.app-auth-body { background-color: #1E1C38 !important; }

/* ---- Kayıt 370: anlık bildirim önerisi — engellemeyen köşe kartı (app.push.js) ---- */
.app-push-prompt { position: fixed; right: 24px; bottom: 24px; z-index: 1080; width: 360px; max-width: calc(100vw - 32px); margin: 0; animation: app-push-in .2s ease-out; }
@media (max-width: 575.98px) { .app-push-prompt { right: 16px; left: 16px; bottom: 16px; width: auto; } }
@keyframes app-push-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
