/* === CORE UI v6.0 - MOBILE FIRST === */
:root{--primary-color:#0d6efd;--bg-color:#f4f6f9;--text-color:#344767;--nav-height:60px;--mob-nav-height:70px;}

body{background:var(--bg-color);font-family:'Segoe UI',system-ui,sans-serif;color:var(--text-color);font-size:.9rem;padding-bottom:var(--mob-nav-height);top:0!important;}
.cursor-pointer{cursor:pointer;}
#dashGroupFilter{padding:5px;}

/* === NAVBAR === */
.navbar{background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.03);padding:.6rem 1rem;height:var(--nav-height);}
.navbar-brand{font-size:1.2rem;letter-spacing:-.5px;}

/* === FORM ELEMENTS === */
.form-control,.form-select{font-size:.9rem;padding:.6rem .8rem;border-color:#e9ecef;border-radius:8px;}
.form-control:focus,.form-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(13,110,253,.15);}
.btn{border-radius:8px;font-weight:600;padding:.5rem 1rem;letter-spacing:.3px;}
.btn-sm{font-size:.8rem;padding:.4rem .8rem;}
.input-group-mobile{display:flex;gap:5px;}
.input-group-mobile .form-control{flex:1;}
.input-group-mobile .form-select{width:90px;flex:none;}

/* === LOGIN & PRELOADER === */
#loginOverlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#e2e8f0;z-index:9999;display:none;align-items:center;justify-content:center;}
.login-card{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1);width:90%;max-width:400px;}
#appPreloader{position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.app-shell-ready #appPreloader{display:none!important;}
.dash-skeleton{position:relative;overflow:hidden;border-radius:24px;background:linear-gradient(110deg,#eef2f7 8%,#f8fafc 18%,#eef2f7 33%);background-size:200% 100%;animation:dashSkeleton 1.25s linear infinite;box-shadow:0 18px 45px rgba(15,23,42,.06);}
.dash-skeleton-hero{min-height:188px;padding:28px;background-color:#172033;}
.dash-skeleton-card{height:170px;}
.dash-skeleton-side{height:420px;}
.dash-skeleton-pill,.dash-skeleton-line,.dash-skeleton-chips span{display:block;border-radius:999px;background:rgba(255,255,255,.55);}
.dash-skeleton-pill{width:150px;height:28px;margin-bottom:26px;}
.dash-skeleton-line{height:24px;margin-bottom:14px;}
.dash-skeleton-line.w-70{width:70%;}.dash-skeleton-line.w-55{width:55%;}
.dash-skeleton-chips{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.dash-skeleton-chips span{width:140px;height:38px;}
#onboardingSlot{min-height:0;}
#onboardingSlot:has(#onboardingWidget){min-height:0;}
@keyframes dashSkeleton{to{background-position:-200% 0;}}

/* === MOBILE MODALS === */
@media(max-width:768px){
.modal-dialog{max-width:100%;width:100%;height:100%;margin:0;padding:0;}
.modal-content{height:100%;border:none;border-radius:0;display:flex;flex-direction:column;}
.modal-header{background:#f8f9fa;padding:1rem;border-bottom:1px solid #e9ecef;flex-shrink:0;}
.modal-body{flex:1;overflow-y:auto;padding:1rem;-webkit-overflow-scrolling:touch;}
.modal-footer{background:#fff;border-top:1px solid #e9ecef;padding:.75rem;flex-shrink:0;position:sticky;bottom:0;}
.form-control,.form-select,.btn{font-size:16px!important;}
}

/* === DESKTOP MODALS === */
@media(min-width:769px){
.modal-content{border-radius:12px;border:0;box-shadow:0 10px 30px rgba(0,0,0,.1); height:90vh;}
.modal-header{border-bottom:1px solid #f1f1f1;}
}

/* === MOBILE BOTTOM NAV === */
.mobile-bottom-nav{position:fixed;bottom:0;left:0;width:100%;height:var(--mob-nav-height);background:#fff;border-top:1px solid #eef1f6;display:none;justify-content:space-around;align-items:center;z-index:1040;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -5px 20px rgba(0,0,0,.05);}
.mob-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:#94a3b8;background:transparent;border:none;width:100%;height:100%;font-size:.7rem;font-weight:600;}
.mob-nav-item i{font-size:1.4rem;margin-bottom:4px;color:#cbd5e1;transition:.2s;}
.mob-nav-item.active i,.mob-nav-item:active i{color:var(--primary-color);transform:translateY(-2px);}
.mob-nav-item.active span{color:var(--primary-color);}

@media(max-width:991.98px){
.mobile-bottom-nav{display:flex;}
.navbar .container-fluid{justify-content:center;}
.navbar-toggler,.navbar-collapse{display:none!important;}
.navbar-brand{margin:0;}
.desktop-only{display:none!important;}
}

/* === GOOGLE TRANSLATE HIDE === */
iframe.goog-te-banner-frame,.skiptranslate{display:none!important;}

/* === LICENSE BADGE === */
#licenseBadge{position:fixed;bottom:15px;left:90px;z-index:99999;opacity:.8;transform:scale(.8);transform-origin:left bottom;}

/* === HEADER SEARCH === */
.header-search-container{width:350px;transition:.3s;}
.search-input{height:40px;padding-left:40px!important;border-radius:20px!important;border:1px solid #e2e8f0!important;background:#f8fafc!important;font-size:.85rem;font-weight:500;}
.search-input:focus{width:400px;background:#fff!important;border-color:#3b82f6!important;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)!important;}
.search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#94a3b8;z-index:5;pointer-events:none;}
.search-suggestions-panel{position:absolute;top:45px;left:0;right:0;background:#fff;border-radius:12px;z-index:1050;max-height:350px;overflow-y:auto;border:1px solid #e2e8f0;}

@media(max-width:991px){
.header-search-container{width:100%;margin:10px 0;}
.search-input:focus{width:100%;}
#licenseBadge{position:fixed;bottom:85px;left:15px;z-index:99999;opacity:.8;transform:scale(.8);transform-origin:left bottom;}
}

/* === RGB ROTATING BORDER === */
.rgb-license-card{position:relative;z-index:1;overflow:hidden;border:none!important;}
.rgb-license-card::before{content:'';position:absolute;z-index:-2;left:-50%;top:-50%;width:200%;height:200%;background:#fff no-repeat;background-size:50% 50%;background-position:0 0,100% 0,100% 100%,0 100%;background-image:conic-gradient(#ff0000,#ff7f00,#ffff00,#00ff00,#0000ff,#4b0082,#8b00ff,#ff0000);animation:rotate-rgb 4s linear infinite;}
.rgb-license-card::after{content:'';position:absolute;z-index:-1;left:2px;top:2px;width:calc(100% - 4px);height:calc(100% - 4px);background:#fff;border-radius:inherit;}
.rgb-license-card:hover::before{animation-duration:2s;}

@keyframes rotate-rgb{100%{transform:rotate(1turn);}}

/* Eski mobil kart donusumleri temizlendi */

.master-only, .admin-only { display: none; }
.keep-btn-float { position: fixed; bottom: 90px; right: 20px; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 1000; box-shadow: 0 4px 15px rgba(0,0,0,0.2); }

/* === SIDEBAR CORE & VARIABLES === */
:root{--sidebar-width:260px;--sidebar-collapsed-width:75px;--sidebar-bg:#ffffff;--sidebar-accent:#0d6efd;}
body{background-color:#f8f9fa;transition:all 0.3s ease;overflow-x:hidden;}
#sidebar{position:fixed;left:0;top:0;height:100vh;width:var(--sidebar-collapsed-width);background:var(--sidebar-bg);box-shadow:4px 0 10px rgba(0,0,0,0.05);z-index:1050;transition:width 0.3s cubic-bezier(0.4,0,0.2,1),left 0.3s ease;overflow:hidden;display:flex;flex-direction:column;}
#sidebar:hover,body.sidebar-pinned #sidebar{width:var(--sidebar-width);}#main-wrapper{margin-left:var(--sidebar-collapsed-width);padding:20px;transition:margin-left 0.3s ease;}body.sidebar-pinned #main-wrapper{margin-left:var(--sidebar-width);}

/* === SIDEBAR VISIBILITY & TYPOGRAPHY === */
.brand-text,.nav-link-custom span,.nav-section-title span{opacity:0;white-space:nowrap;transition:opacity 0.2s;pointer-events:none;}
#sidebar:hover .brand-text,body.sidebar-pinned .brand-text,#sidebar:hover .nav-link-custom span,body.sidebar-pinned .nav-link-custom span,#sidebar.mobile-show .brand-text,#sidebar.mobile-show .nav-link-custom span,#sidebar:hover .nav-section-title span,body.sidebar-pinned .nav-section-title span{opacity:1;pointer-events:auto;}
.nav-section-title{position:relative;display:flex;align-items:center;height:30px;margin-top:15px;margin-bottom:5px;}
.nav-section-title::before{content:"";flex-grow:1;height:1px;background:rgba(0,0,0,0.08);margin:0 15px;}
.nav-section-title span{position:absolute;left:25px;background:var(--sidebar-bg);padding:0 10px;font-size:0.65rem;font-weight:700;text-transform:uppercase;color:#94a3b8;letter-spacing:0.5px;}

/* === SIDEBAR LINKS & HEADER === */
.sidebar-header{line-height: 70px; height:70px;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid #eee;cursor:pointer;}
.nav-link-custom{display:flex;align-items:center;padding:15px 25px;color:#64748b;text-decoration:none;border-left:3px solid transparent;}
.nav-link-custom i{min-width:25px;font-size:1.3rem;text-align:center;}.nav-link-custom span{margin-left:20px;font-weight:500;}
.nav-link-custom:hover{background:#f1f5f9;color:var(--sidebar-accent);border-left-color:var(--sidebar-accent);}

/* === MOBILE & TOP BAR === */
@media(max-width:991.98px){#sidebar{left:calc(-1*var(--sidebar-width));width:var(--sidebar-width)!important;}#sidebar.mobile-show{left:0;}#main-wrapper{margin-left:0!important;padding-top:70px;padding-bottom:80px;}.mobile-top-bar{display:flex!important;}}
.mobile-top-bar{display:none;position:fixed;top:0;width:100%;height:60px;background:#fff;padding:0 20px;border-bottom:1px solid #eee;align-items:center;justify-content:space-between;z-index:1040;}
.user-dropdown-btn{background:#fff;border:none;padding:5px 15px;border-radius:10px;transition:all 0.2s;}.user-dropdown-btn:hover{background:#f1f5f9;}
.search-container{max-width:25%!important;}

/* === DARK MODE FULL OVERRIDE === */
.dark-mode{--bg-color:#0f1115;--text-color:#e4e6eb;--sidebar-bg:#15181e;--primary-color:#3b82f6;background:#0f1115;color:#e4e6eb;}
.dark-mode body,.dark-mode #main-wrapper{background:#0f1115!important;color:#e4e6eb;}
.dark-mode .navbar,.dark-mode .mobile-top-bar,.dark-mode .mobile-bottom-nav{background:#15181e!important;border-color:#2a2f38!important;box-shadow:none;}
.dark-mode .login-card,.dark-mode .modal-content,.dark-mode .search-suggestions-panel,.dark-mode .rgb-license-card::after{background:#15181e!important;color:#e4e6eb;border-color:#2a2f38;}
.dark-mode .modal-header,.dark-mode .modal-footer{background:#15181e!important;border-color:#2a2f38;}
.dark-mode .form-control,.dark-mode .form-select,.dark-mode .search-input{background:#1b1f27!important;color:#e4e6eb;border-color:#2a2f38;}
.dark-mode .form-control:focus,.dark-mode .form-select:focus{background:#1b1f27;border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.3);}
.dark-mode .btn{background:#1f2937;color:#e4e6eb;border-color:#2a2f38;}
.dark-mode .btn:hover{background:#2a3441;}
.dark-mode .nav-link-custom{color:#cbd5e1;}
.dark-mode .nav-link-custom:hover{background:#1b1f27;color:#3b82f6;border-left-color:#3b82f6;}
.dark-mode #sidebar{background:#15181e;box-shadow:4px 0 10px rgba(0,0,0,.6);}
.dark-mode .sidebar-header{border-color:#2a2f38;}
.dark-mode .nav-section-title::before{background:#2a2f38;}
.dark-mode .card{background:#15181e;border-color:#2a2f38;color:#e4e6eb;}
.dark-mode .card-header{background:#15181e!important;border-color:#2a2f38;color:#e4e6eb;}
.dark-mode .card-header.bg-white{background:#15181e!important;}
.dark-mode .card-header h6{color:#e4e6eb!important;}
.dark-mode .card-header .text-primary{color:#60a5fa!important;}
.dark-mode .card-header .btn-primary{background:#2563eb;border-color:#2563eb;}
.dark-mode .card-header .btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8;}
.dark-mode table,.dark-mode .table{--bs-table-bg:#15181e;--bs-table-color:#e4e6eb;--bs-table-border-color:#2a2f38;background:#15181e;color:#e4e6eb;}
.dark-mode .table>:not(caption)>*>*{background:#15181e!important;color:#e4e6eb;border-color:#2a2f38;}
.dark-mode .table th{color:#cbd5e1!important;font-weight:600;}
.dark-mode .table td{color:#e4e6eb!important;}
.dark-mode .table-striped>tbody>tr:nth-of-type(odd)>*{background:#1b1f27!important;}
.dark-mode .table-hover>tbody>tr:hover>*{background:#222833!important;}
.dark-mode .table-light,
.dark-mode .table-light>th,
.dark-mode .table-light>td,
.dark-mode .table-light>thead>tr>th,
.dark-mode .table-light>tbody>tr>td{background:#1b1f27!important;color:#e4e6eb;border-color:#2a2f38;}
.dark-mode #kasaList tr,.dark-mode #staffList tr,.dark-mode #tblItemBody tr{background:#15181e!important;border-color:#2a2f38!important;}
.dark-mode #kasaList tr td,.dark-mode #staffList tr td,.dark-mode #tblItemBody tr td{background:#15181e!important;color:#e4e6eb;}
.dark-mode .search-icon{color:#94a3b8;}
.dark-mode .user-dropdown-btn{background:#15181e;color:#e4e6eb;}
.dark-mode .user-dropdown-btn:hover{background:#1b1f27;}
.dark-mode .bg-white,.dark-mode .bg-light{background:#15181e!important;border-color:#2a2f38;color:#e4e6eb;}
.dark-mode .text-dark{color:#cbd5e1!important;}
.dark-mode .text-muted{color:#cbd5e1!important;}
.dark-mode iframe.goog-te-banner-frame,.dark-mode .skiptranslate{background:#0f1115!important;}
.dark-mode #loginOverlay,.dark-mode #appPreloader{background:#0f1115!important;color:#e4e6eb;}
.dark-mode .rgb-license-card::before{opacity:.6;}
.dark-mode .btn-close {filter: var(--bs-btn-close-white-filter); margin-top: 0px;}
/* --- SELECT2 MODERN TASARIM (DARK MODE) --- */
body.dark-mode .select2-container--default .select2-selection--single { background-color: #1e293b !important; border-color: #334155 !important; }
body.dark-mode .select2-container--default .select2-selection--single .select2-selection__rendered { color: #f1f5f9 !important; }
body.dark-mode .select2-dropdown { background-color: #1e293b !important; border-color: #334155 !important; color: #f1f5f9 !important; }
body.dark-mode .select2-search--dropdown .select2-search__field { background-color: #0f172a !important; border-color: #334155 !important; color: #f1f5f9 !important; }
body.dark-mode .select2-results__option[aria-selected="true"] { background-color: #334155 !important; }
body.dark-mode .select2-results__option--selectable:hover { background-color: #1e40af !important; }

/* --- UI GENEL VE MODAL KONTROLLERİ --- */
#toastContainer { z-index: 100000 !important; }
.toast { min-width: 250px; }
.modal-body { min-height: 80vh; }
.btn-close { margin-top: 0px !important; }
.select2-container { z-index: 1000000 !important; }

/* --- DARK MODE GENEL VE POS ARAMA --- */
.dark-mode input::placeholder, .dark-mode textarea::placeholder { color: #cbd5e1 !important; opacity: 0.8; }
#posSearchResults { background-color: #ffffff; color: #1e293b; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1); }
.dark-mode #posSearchResults { background-color: #1e293b !important; border-color: #334155 !important; color: #f8fafc !important; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.5); }
.dark-mode #posSearchResults .list-group-item { background-color: #1e293b; border-color: #334155; color: #f8fafc; }
.dark-mode #posSearchResults .list-group-item:hover { background-color: #334155; }

/* --- SELECT2 MODERN TASARIM (LIGHT) --- */
.select2-container--default .select2-selection--single { height: 45px !important; padding: 8px 12px; border: 1px solid #dee2e6 !important; border-radius: 8px !important; background-color: #fff !important; transition: all 0.2s ease; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 28px !important; color: #334155 !important; font-weight: 500; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 43px !important; }
.select2-container--default.select2-container--focus .select2-selection--single { border-color: #3b82f6 !important; box-shadow: 0 0 0 3px rgba(59,130,246,0.1) !important; }
.select2-dropdown { border: 1px solid #e2e8f0 !important; border-radius: 8px !important; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1) !important; overflow: hidden; }
.select2-search--dropdown .select2-search__field { padding: 8px 12px !important; border-radius: 6px !important; border: 1px solid #e2e8f0 !important; }
.select2-results__option { padding: 10px 15px !important; font-size: 14px; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: #3b82f6 !important; }

/* 1. Kaydırma çubuğunun genel genişliği */
::-webkit-scrollbar { width: 8px; height: 8px;}

/* 2. Kaydırma çubuğunun geçtiği yol (Track) */
::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; }

/* 3. Hareket eden çubuk (Thumb) */
::-webkit-scrollbar-thumb { background: #888; border-radius: 10px; border: 2px solid #f1f1f1;}

/* 4. Çubuğun üzerine gelindiğinde (Hover) */
::-webkit-scrollbar-thumb:hover { background: #555; }

.toast .btn-close {margin-top: 5px !important;}

/* Logo ve Favicon Alanı Konteynırları */
#area_biz_logo div.position-relative, #area_biz_favicon div.position-relative { display: inline-block; transition: all 0.3s ease; }

/* Liste içi hızlı düzenleme alanları normal metin gibi kompakt görünür. */
input.form-control[onchange*="Inline"],
input.form-control[onblur*="Inline"] {
    min-height: 0 !important;
    height: auto !important;
    padding: 0.05rem 0.12rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    line-height: inherit;
}

input.form-control[onchange*="Inline"]:focus,
input.form-control[onblur*="Inline"]:focus {
    background: rgba(13, 110, 253, 0.06) !important;
    box-shadow: inset 0 -1px 0 rgba(13, 110, 253, 0.45) !important;
    outline: 0;
}

/* Mevcut butonları varsayılan olarak gizle */
#area_biz_logo .btn-danger, #area_biz_favicon .btn-danger { opacity: 0; visibility: hidden; transition: all 0.2s ease-in-out; transform: scale(0.8); z-index: 10; }

/* ID altındaki div'e hover veya click (active) olunca butonu göster */
#area_biz_logo div.position-relative:hover .btn-danger, #area_biz_favicon div.position-relative:hover .btn-danger, #area_biz_logo div.position-relative:active .btn-danger, #area_biz_favicon div.position-relative:active .btn-danger { opacity: 1; visibility: visible; transform: scale(1); }

/* Görseli karartma efekti */
#area_biz_logo div.position-relative:hover img, #area_biz_favicon div.position-relative:hover img { filter: brightness(0.6); transition: 0.3s; } 

.media-card { transition: transform 0.2s; }
.media-card:hover { transform: translateY(-3px); }
.extra-small { font-size: 0.7rem; }
.btn-xs { padding: 0.1rem 0.3rem; font-size: 0.75rem; }

#loginOverlay::after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 20% 30%,rgba(255,0,0,.12),transparent 40%),radial-gradient(circle at 80% 40%,rgba(0,255,0,.12),transparent 40%),radial-gradient(circle at 50% 80%,rgba(0,0,255,.12),transparent 40%);filter:blur(100px);animation:rgbMove 30s linear infinite;z-index:1}
@keyframes rgbMove{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.15)}100%{transform:rotate(360deg) scale(1)}}
#loginOverlay::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,rgba(13,110,253,.4) 0%,rgba(0,0,0,.7) 100%);z-index:2}
.login-card{position:relative;z-index:3;background:rgba(255,255,255,.3);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.3);border-radius:24px;padding:3rem;width:100%;max-width:420px;box-shadow:0 25px 50px rgba(0,0,0,.3);animation:fadeInUp .8s ease-out}
#loginBrandTitle{letter-spacing:-.5px;color:#0d6efd;font-size:1.8rem}
.login-card .text-muted{color:#495057!important;font-size:.85rem;text-transform:uppercase;letter-spacing:1px}
.login-card .form-control{background:rgba(255,255,255,.9);border:2px solid transparent;border-radius:12px;padding:12px 15px;transition:.3s;font-size:1rem}
.login-card .form-control:focus{background:#fff;border-color:#0d6efd;box-shadow:0 0 0 4px rgba(13,110,253,.15);transform:translateY(-2px)}
.login-card .btn-primary{border-radius:12px;background:linear-gradient(90deg,#0d6efd,#0b5ed7);border:none;font-weight:700;letter-spacing:.5px;transition:.3s;box-shadow:0 10px 20px rgba(13,110,253,.3)}
.login-card .btn-primary:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(13,110,253,.4);filter:brightness(1.1)}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:576px){.login-card{margin:20px;padding:2rem}}
#main-wrapper{position:relative;min-height:100vh;overflow:hidden;background:#fff}
#main-wrapper::before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 20% 30%,rgba(255,0,0,.15),transparent 40%),radial-gradient(circle at 80% 40%,rgba(0,255,0,.15),transparent 40%),radial-gradient(circle at 50% 80%,rgba(0,0,255,.15),transparent 40%);filter:blur(80px);animation:rgbFlow 25s linear infinite;pointer-events:none}
@keyframes rgbFlow{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.1)}100%{transform:rotate(360deg) scale(1)}}

/* === MOBILE SCROLLABLE LISTS === */
@media (max-width: 768px) {
    /* Modul tablolarini mobilde yatay kaydirilabilir yapalim */
    #modalKasa table,
    #modalFinanceList table,
    #modalInvoiceList table,
    #modalFirms table,
    #modalFirmDetail table,
    #modalNews table,
    #modalPages table,
    #modalSettings table {
        min-width: 800px !important;
        table-layout: auto !important;
        width: 100% !important;
    }

    #modalKasa .table-responsive,
    #modalFinanceList .table-responsive,
    #modalInvoiceList .table-responsive,
    #modalFirms .table-responsive,
    #modalFirmDetail .table-responsive,
    #modalNews .table-responsive,
    #modalPages .table-responsive,
    #modalSettings .table-responsive {
        display: block !important;
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Kategori agaci yatay kaydirma */
    #categoryTreeArea {
        overflow-x: auto !important;
        white-space: nowrap !important;
    }
}

/* === MODAL PERFORMANCE FIX ===
   Büyük CRMPlus modalları açılırken Bootstrap fade + backdrop + zorunlu 80vh body
   birleşince özellikle mobilde kademeli/kasılı görünüyordu. Modal açılışını direkt,
   içerik kaydırmasını daha stabil hale getiriyoruz. */
.modal.fade,
.modal-backdrop.fade,
.modal.fade .modal-dialog {
    transition: none !important;
}

.modal.fade .modal-dialog {
    transform: none !important;
}

/* Bootstrap CDN'i gecikse bile sekme panellerinin tamamının aynı anda
   görünmesini engelleyen yerel güvenlik katmanı. */
.tab-content > .tab-pane {
    display: none;
}

.tab-content > .tab-pane.active {
    display: block;
}

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

.modal .modal-body {
    min-height: 0 !important;
}

.modal-dialog {
    will-change: auto !important;
}

@media (min-width: 769px) {
    .modal-dialog.modal-xl,
    .modal-dialog.modal-lg {
        max-height: calc(100vh - 2rem);
    }

    .modal-dialog.modal-xl .modal-content,
    .modal-dialog.modal-lg .modal-content {
        max-height: calc(100vh - 2rem);
        overflow: hidden;
    }

    .modal-dialog.modal-xl .modal-body,
    .modal-dialog.modal-lg .modal-body {
        overflow: auto;
    }
}

@media (max-width: 768px) {
    .modal-content {
        min-height: 0;
    }

    .modal-body {
        min-height: 0 !important;
        overscroll-behavior: contain;
    }
}

/* Modal surface hierarchy and shared text style. Input values are excluded. */
body:not(.dark-mode) .modal .modal-header:not(.bg-primary):not(.bg-secondary):not(.bg-success):not(.bg-danger):not(.bg-warning):not(.bg-info):not(.bg-dark):not(.bg-transparent):not(.pos-payments-header),
body:not(.dark-mode) .modal .modal-header.bg-light {
    background: #fff !important;
    border-bottom-color: #dfe7f1;
    box-shadow: 0 .2rem .8rem rgba(15, 23, 42, .045);
}

body:not(.dark-mode) .modal .modal-body,
body:not(.dark-mode) .modal .modal-body.bg-light {
    background: #f6f8fc !important;
}

/* Tabs, headings and static UI labels use capitalized words. Input values stay untouched. */
.modal .nav-link,
.modal .nav-tabs .nav-link,
.modal .nav-pills .nav-link,
.modal .modal-title,
.modal h1,
.modal h2,
.modal h3,
.modal h4,
.modal h5,
.modal h6,
.modal .card-title,
.modal .card-header,
.modal .section-title,
.modal label,
.modal .form-label,
.modal legend,
.modal th,
.modal .btn:not(.btn-close),
.modal .dropdown-item,
.modal .badge:not(.text-uppercase),
.tab-menu,
.tab-menu *,
.tab-pane h1,
.tab-pane h2,
.tab-pane h3,
.tab-pane h4,
.tab-pane h5,
.tab-pane h6 {
    text-transform: capitalize !important;
}

#main-wrapper h1,
#main-wrapper h2,
#main-wrapper h3,
#main-wrapper h4,
#main-wrapper h5,
#main-wrapper h6,
#main-wrapper .nav-link,
#main-wrapper .nav-tabs .nav-link,
#main-wrapper .nav-pills .nav-link,
#main-wrapper .dropdown-item,
#main-wrapper .btn:not(.btn-close),
#main-wrapper label,
#main-wrapper .form-label,
#main-wrapper legend,
#main-wrapper th,
#main-wrapper .section-title,
#main-wrapper .card-title,
#main-wrapper .card-header {
    text-transform: capitalize !important;
}

.modal input::placeholder,
.modal textarea::placeholder,
.modal .form-control::placeholder,
#main-wrapper input::placeholder,
#main-wrapper textarea::placeholder,
#main-wrapper .form-control::placeholder,
.modal .form-select::placeholder,
#main-wrapper .form-select::placeholder {
    text-transform: capitalize !important;
}

[data-i18n-ignore="1"],
[data-i18n-ignore="1"] *,
.no-text-transform,
.no-text-transform * {
    text-transform: none !important;
}

/* Ortak modül görünümü: ürün, firma, içerik, haber ve kategori ekranları */
.mod-items .modal-content,
.mod-firms .modal-content,
#modalPages .modal-content,
#modalPageDetail .modal-content,
#modalNews .modal-content,
#modalNewsDetail .modal-content,
#modalCategoryForm .modal-content {
    border-radius: 14px;
    overflow: hidden;
}

.mod-items table > thead > tr > th,
.mod-firms table > thead > tr > th,
#modalPages table > thead > tr > th,
#modalNews table > thead > tr > th,
#modalCategoryForm table > thead > tr > th {
    height: 42px;
    padding: .65rem .75rem;
    vertical-align: middle;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .02em;
    color: #334155;
    background: #f8fafc;
    border-bottom: 1px solid #dbe3ee;
}

.mod-items table > tbody > tr > td,
.mod-firms table > tbody > tr > td,
#modalPages table > tbody > tr > td,
#modalNews table > tbody > tr > td,
#modalCategoryForm table > tbody > tr > td {
    min-height: 48px;
    padding: .6rem .75rem;
    vertical-align: middle;
    border-color: #e5eaf1;
}

.mod-items form label,
.mod-firms form label,
#modalPageDetail form label,
#modalNewsDetail form label,
#modalCategoryForm form label {
    color: #334155;
    margin-bottom: .3rem;
}

.mod-items .modal-footer,
.mod-firms form > .col-12:last-child,
#modalPageDetail form > .col-12:last-child,
#modalNewsDetail form > .col-12:last-child,
#modalCategoryForm form > .row > .col-12:last-child {
    border-top: 1px solid #e2e8f0;
    padding-top: 1rem;
}

/* Core module color families: a strong list surface paired with a softer
   detail and create surface keeps navigation clear without visual fatigue. */
#modalItemList, #modalItemDetail, #modalItemBlock, #modalVariantEdit, #modalCategories, #modalCategoryForm {
    --module-strong: #f8e0b5;
    --module-ink: #75470d;
    --module-soft: #fff9ed;
    --module-border: #f1d5a1;
}

#modalFirms, #modalFirmDetail, #modalQuickAddFirm {
    --module-strong: #dbeafe;
    --module-ink: #1e3a8a;
    --module-soft: #f7fbff;
    --module-border: #bfdbfe;
}

#modalPages, #modalPageDetail, #modalPageBlock, #modalAddMedia {
    --module-strong: #e0e7ff;
    --module-ink: #312e81;
    --module-soft: #f8f9ff;
    --module-border: #c7d2fe;
}

#modalNews, #modalNewsDetail, #modalAddNewsMedia {
    --module-strong: #ffe4e6;
    --module-ink: #881337;
    --module-soft: #fff8f8;
    --module-border: #fecdd3;
}

#modalInvoiceList, #modalInvoice, #modalInvoiceItemEdit, #modalKasa, #modalFinanceList {
    --module-strong: #ccfbf1;
    --module-ink: #134e4a;
    --module-soft: #f7fffd;
    --module-border: #99f6e4;
}

#modalItemList .modal-header, #modalCategories .modal-header,
#modalFirms .modal-header,
#modalPages .modal-header,
#modalNews .modal-header,
#modalInvoiceList .modal-header {
    background: var(--module-strong) !important;
    border-bottom-color: var(--module-border) !important;
    color: var(--module-ink) !important;
}

#modalItemDetail .modal-header,
#modalItemBlock .modal-header,
#modalVariantEdit .modal-header,
#modalCategoryForm .modal-header,
#modalFirmDetail .modal-header,
#modalQuickAddFirm .modal-header,
#modalPageDetail .modal-header,
#modalPageBlock .modal-header,
#modalAddMedia .modal-header,
#modalNewsDetail .modal-header,
#modalAddNewsMedia .modal-header,
#modalInvoice .modal-header,
#modalInvoiceItemEdit .modal-header,
#modalKasa .modal-header,
#modalFinanceList .modal-header {
    background: var(--module-soft) !important;
    border-bottom-color: var(--module-border) !important;
    color: var(--module-ink) !important;
}

#modalItemList .modal-title, #modalCategories .modal-title, #modalFirms .modal-title, #modalPages .modal-title, #modalNews .modal-title, #modalInvoiceList .modal-title,
#modalItemList .modal-title *, #modalCategories .modal-title *, #modalFirms .modal-title *, #modalPages .modal-title *, #modalNews .modal-title *, #modalInvoiceList .modal-title * {
    color: var(--module-ink) !important;
}

#modalItemDetail .modal-title, #modalItemBlock .modal-title, #modalVariantEdit .modal-title, #modalCategoryForm .modal-title,
#modalFirmDetail .modal-title, #modalQuickAddFirm .modal-title,
#modalPageDetail .modal-title, #modalPageBlock .modal-title, #modalAddMedia .modal-title,
#modalNewsDetail .modal-title, #modalAddNewsMedia .modal-title,
#modalInvoice .modal-title, #modalInvoiceItemEdit .modal-title, #modalKasa .modal-title, #modalFinanceList .modal-title,
#modalItemDetail .modal-title *, #modalItemBlock .modal-title *, #modalVariantEdit .modal-title *, #modalCategoryForm .modal-title *,
#modalFirmDetail .modal-title *, #modalQuickAddFirm .modal-title *,
#modalPageDetail .modal-title *, #modalPageBlock .modal-title *, #modalAddMedia .modal-title *,
#modalNewsDetail .modal-title *, #modalAddNewsMedia .modal-title *,
#modalInvoice .modal-title *, #modalInvoiceItemEdit .modal-title *, #modalKasa .modal-title *, #modalFinanceList .modal-title * {
    color: var(--module-ink) !important;
}

#modalItemDetail .form-control:focus, #modalItemDetail .form-select:focus, #modalFirmDetail .form-control:focus, #modalFirmDetail .form-select:focus,
#modalPageDetail .form-control:focus, #modalPageDetail .form-select:focus, #modalNewsDetail .form-control:focus, #modalNewsDetail .form-select:focus,
#modalInvoice .form-control:focus, #modalInvoice .form-select:focus, #modalCategoryForm .form-control:focus, #modalCategoryForm .form-select:focus {
    border-color: var(--module-strong);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--module-strong) 18%, transparent);
}

@media (max-width: 767.98px) {
    .mod-items .modal-footer .row > div,
    .mod-firms form > .col-12:last-child .row > div,
    #modalPageDetail form > .col-12:last-child .row > div,
    #modalNewsDetail form > .col-12:last-child .row > div,
    #modalCategoryForm form > .row > .col-12:last-child .row > div {
        width: 100%;
    }
}

/* === MODUL SIMETRISI: URUN / FIRMA / SAYFA / HABER / AYARLAR === */
#modalItemList .modal-dialog,
#modalFirms .modal-dialog,
#modalPages .modal-dialog,
#modalNews .modal-dialog,
#modalSettings .modal-dialog,
#modalItemDetail .modal-dialog,
#modalFirmDetail .modal-dialog,
#modalPageDetail .modal-dialog,
#modalNewsDetail .modal-dialog {
    margin-left: auto;
    margin-right: auto;
}

.module-list-toolbar {
    min-width: 0;
}

.module-list-toolbar .input-group,
.module-list-toolbar > .form-control,
.module-list-toolbar > .form-select {
    min-height: 42px;
}

.module-list-toolbar > .input-group {
    flex: 1 1 0;
    min-width: 0;
}

#modalItemList #itemCategoryFilter {
    width: 190px;
    flex: 0 0 190px;
}

#modalFirms .modal-body > .mb-3.px-1,
#modalPages .module-list-toolbar,
#modalNews .module-list-toolbar {
    min-height: 42px;
}

#modalFirms .modal-body > .mb-3.px-1 .input-group {
    flex: 1 1 0;
    min-width: 0;
}

#modalItemList table,
#modalFirms table,
#modalPages table,
#modalNews table {
    width: 100%;
    table-layout: fixed;
}

#modalItemList th:first-child { width: 76px !important; }
#modalItemList th:nth-child(2) { width: auto; }
#modalItemList th:nth-child(3) { width: 18%; }
#modalItemList th:nth-child(4) { width: 15%; }
#modalItemList th:nth-child(5) { width: 14%; }
#modalItemList th:last-child { width: 92px; }

#modalFirms th:first-child { width: 25%; }
#modalFirms th:nth-child(2) { width: 16%; }
#modalFirms th:nth-child(3) { width: 22%; }
#modalFirms th:nth-child(4) { width: auto; }
#modalFirms th:last-child { width: 92px; }

#modalPages th:first-child { width: 82px; }
#modalPages th:nth-child(2) { width: auto; }
#modalPages th:nth-child(3),
#modalPages th:nth-child(4),
#modalPages th:nth-child(5) { width: 15%; }
#modalPages th:last-child { width: 92px; }

#modalNews th:first-child { width: 76px; }
#modalNews th:nth-child(2) { width: auto; }
#modalNews th:nth-child(3),
#modalNews th:nth-child(4) { width: 20%; }
#modalNews th:last-child { width: 92px; }

/* Liste modallari ayni calisma alani boyutunu kullanir. Liste, modalin kalan
   yuksekligini doldurur; sadece satirlar alanini asarsa kendi icinde kayar. */
#modalItemList .modal-dialog,
#modalFirms .modal-dialog,
#modalPages .modal-dialog,
#modalNews .modal-dialog,
#modalInvoiceList .modal-dialog {
    height: calc(100vh - 52px);
    max-height: calc(100vh - 52px);
}

#modalItemList .modal-content,
#modalFirms .modal-content,
#modalPages .modal-content,
#modalNews .modal-content,
#modalInvoiceList .modal-content {
    height: 100%;
}

#modalItemList .modal-body,
#modalFirms .modal-body,
#modalPages .modal-body,
#modalNews .modal-body,
#modalInvoiceList .modal-body {
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#modalItemList .table-responsive,
#modalFirms .table-responsive,
#modalPages .table-responsive,
#modalNews .table-responsive,
#modalInvoiceList .table-responsive {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow-y: auto;
}

.module-detail-grid > [class*="col-"] {
    min-width: 0;
}

#modalItemDetail .module-detail-grid .form-control:not(textarea),
#modalItemDetail .module-detail-grid .form-select,
#modalFirmDetail #formFirmUpdate .form-control:not(textarea),
#modalFirmDetail #formFirmUpdate .form-select,
#modalPageDetail #formPageUpdate .form-control:not(textarea),
#modalPageDetail #formPageUpdate .form-select,
#modalNewsDetail #formNewsUpdate .form-control:not(textarea),
#modalNewsDetail #formNewsUpdate .form-select {
    height: 42px;
    min-height: 42px;
}

#modalItemDetail .modal-footer .row,
#modalFirmDetail #formFirmUpdate > .col-12:last-child > .row,
#modalPageDetail #formPageUpdate > .col-12:last-child > .row,
#modalNewsDetail #formNewsUpdate > .col-12:last-child > .row {
    min-height: 58px;
}

/* Detay modallari icerik miktarindan bagimsiz olarak liste modali gibi 90vh
   yukseklige zorlanmamali; aksi halde formun altinda buyuk bir bosluk kalir. */
@media (min-width: 769px) {
    #modalItemDetail .modal-dialog {
        min-height: 0;
    }

    #modalItemDetail .modal-content,
    #modalFirmDetail .modal-content,
    #modalPageDetail .modal-content,
    #modalNewsDetail .modal-content {
        height: auto !important;
        min-height: 0 !important;
        max-height: calc(100vh - 2rem);
    }

    #modalItemDetail .modal-content {
        min-height: min(680px, calc(100vh - 2rem)) !important;
    }

    #modalItemDetail .modal-body,
    #modalFirmDetail .modal-body,
    #modalPageDetail .modal-body,
    #modalNewsDetail .modal-body {
        overflow-y: auto;
    }

    #modalItemDetail .modal-body {
        display: flex;
        flex-direction: column;
        overflow-x: hidden;
    }

    #modalItemDetail .modal-body > form {
        display: flex;
        flex-direction: column;
        min-height: 0;
        flex: 1 1 auto;
    }

    #modalItemDetail .tab-content {
        min-height: 0;
        flex: 1 1 auto;
        overflow-x: hidden;
    }

    #modalItemDetail .tab-content > .tab-pane {
        display: none !important;
    }

    #modalItemDetail .tab-content > .tab-pane.active {
        display: block !important;
    }

    #modalItemDetail #item-tab-var .table-responsive {
        max-width: 100%;
        overflow-x: auto;
    }
}

#modalSettings .module-settings-layout .card {
    height: 100%;
}

#modalSettings .module-settings-layout .row > [class*="col-"] {
    min-width: 0;
}

#modalSettings .module-settings-layout .form-control:not(textarea),
#modalSettings .module-settings-layout .form-select,
#modalSettings .module-settings-layout .input-group {
    min-height: 42px;
}

#modalSettings .module-settings-layout table > thead > tr > th {
    height: 42px;
    padding: .65rem .75rem;
    vertical-align: middle;
}

#modalSettings .module-settings-layout table > tbody > tr > td {
    min-height: 48px;
    padding: .6rem .75rem;
    vertical-align: middle;
}

@media (max-width: 767.98px) {
    .module-list-toolbar,
    #modalFirms .modal-body > .mb-3.px-1 {
        flex-wrap: wrap !important;
    }

    .module-list-toolbar > .form-select,
    #modalFirms #firmSortSelect,
    #modalPages #pageSortSelect,
    #modalNews #newsSortSelect {
        width: 100% !important;
        max-width: none !important;
    }

    #modalItemList table,
    #modalFirms table,
    #modalPages table,
    #modalNews table {
        table-layout: auto;
    }

    #modalItemList #itemCategoryFilter {
        width: 100%;
        flex: 1 0 100%;
    }
}

/* === ORTAK LISTE / DETAY ORAN SISTEMI ===
   Modullerde filtre, tablo ve detay alanlarinin ayni hizada kalmasini saglar. */
.module-list-layout .module-filter-row > [class*="col-"] {
    display: flex;
    align-items: stretch;
}

.module-list-layout .module-filter-row .form-control,
.module-list-layout .module-filter-row .form-select,
.module-list-layout .module-filter-row .input-group {
    width: 100%;
    min-height: 42px;
}

.module-list-layout .table-responsive {
    width: 100%;
}

.module-list-layout table > thead > tr > th {
    height: 42px;
    padding: .65rem .9rem;
    vertical-align: middle;
    white-space: nowrap;
}

.module-list-layout table > tbody > tr > td {
    min-height: 48px;
    padding: .65rem .9rem;
    vertical-align: middle;
}

/* Fatura detayinda ana calisma alani 8/12, hesap ozeti 4/12'dir.
   Ana alandaki ilk satir cari odakli 5/2/3/2 oranini kullanir. */
#modalInvoice .invoice-workspace {
    min-height: 580px;
}

#modalInvoice .invoice-main-panel,
#modalInvoice .invoice-summary-panel {
    min-width: 0;
}

#modalInvoice .invoice-meta-grid > [class*="col-"],
#modalInvoice .invoice-product-tools > [class*="col-"] {
    display: flex;
    flex-direction: column;
}

#modalInvoice .invoice-meta-grid .form-control,
#modalInvoice .invoice-meta-grid .form-select,
#modalInvoice .invoice-meta-grid .input-group,
#modalInvoice .invoice-product-tools .form-control,
#modalInvoice .invoice-product-tools .input-group,
#modalInvoice .invoice-product-tools .btn {
    min-height: 42px;
}

#modalInvoice .invoice-meta-grid .input-group > .select2-container {
    flex: 1 1 auto;
    width: 1% !important;
    min-width: 0;
}

#modalInvoice .invoice-meta-grid .select2-selection--single {
    height: 42px !important;
    min-height: 42px;
    display: flex;
    align-items: center;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

#modalInvoice .invoice-meta-grid .select2-selection__arrow {
    height: 40px !important;
}

#modalInvoice .invoice-cart-card {
    width: 100%;
    max-height: 400px;
    overflow-y: auto;
}

#modalInvoice .invoice-cart-card table {
    width: 100%;
    table-layout: fixed;
}

#modalInvoice .invoice-cart-card th:first-child { width: 42%; }
#modalInvoice .invoice-cart-card th:nth-child(2) { width: 13%; }
#modalInvoice .invoice-cart-card th:nth-child(3),
#modalInvoice .invoice-cart-card th:nth-child(4) { width: 18%; }
#modalInvoice .invoice-cart-card th:last-child { width: 9%; }

/* Liste filtreleri tek satirda; eski sekme isaretleyicisi geriye uyumluluk icin
   DOM'da kalir ancak yeni acilir filtreyle yinelenmez. */
#modalInvoiceList #invTabs { display: none; }

#modalInvoiceList .invoice-list-filter-row .dropdown-toggle {
    min-height: 42px;
}

#modalInvoiceList .invoice-list-filter-row .dropdown-menu {
    width: 100%;
    min-width: 0;
    max-height: 300px;
    overflow-y: auto;
}

/* Genel filtre kuralindaki width:100%, input-group icindeki arama inputunu
   ikinci satira itiyordu. Bootstrap'in grup ici esnek genisligini geri ver. */
#modalInvoiceList .invoice-list-filter-row .input-group > .form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
}

/* Compact list actions stay readable without turning each row into a toolbar. */
#modalInvoiceList .invoice-row-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: max-content;
}

#modalInvoiceList .invoice-row-action {
    display: inline-grid;
    place-items: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
    padding: 0;
    border: 1px solid #d9e2f0;
    border-radius: 10px;
    background: #fff;
    color: #52647f;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease;
}

#modalInvoiceList .invoice-row-action:hover {
    transform: translateY(-1px);
}

#modalInvoiceList .invoice-row-action-edit { color: #2563eb; }
#modalInvoiceList .invoice-row-action-edit:hover { border-color: #93c5fd; background: #eff6ff; }
#modalInvoiceList .invoice-row-action-delete { color: #dc2626; }
#modalInvoiceList .invoice-row-action-delete:hover { border-color: #fecaca; background: #fef2f2; }
#modalInvoiceList .invoice-row-action-link { color: #64748b; }
#modalInvoiceList .invoice-row-action-link:hover { border-color: #cbd5e1; background: #f8fafc; }
#modalInvoiceList .invoice-row-action-mail { color: #059669; }
#modalInvoiceList .invoice-row-action-mail:hover { border-color: #a7f3d0; background: #ecfdf5; }

/* Shared edit/delete controls for the primary application lists. */
.list-row-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: max-content;
}

.list-row-action {
    display: inline-grid;
    place-items: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
    padding: 0;
    border: 1px solid #d9e2f0;
    border-radius: 10px;
    background: #fff;
    color: #52647f;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease;
}

.list-row-action:hover { transform: translateY(-1px); }
.list-row-action-edit { color: #2563eb; }
.list-row-action-edit:hover { border-color: #93c5fd; background: #eff6ff; }
.list-row-action-delete { color: #dc2626; }
.list-row-action-delete:hover { border-color: #fecaca; background: #fef2f2; }

@media (max-width: 768px) {
    #modalInvoiceList .invoice-row-actions { gap: 4px; }
    #modalInvoiceList .invoice-row-action {
        width: 32px;
        min-width: 32px;
        height: 32px;
        min-height: 32px;
        border-radius: 9px;
    }

    .list-row-actions { gap: 4px; }
    .list-row-action {
        width: 32px;
        min-width: 32px;
        height: 32px;
        min-height: 32px;
        border-radius: 9px;
    }
}

/* Core POS payment history modal, shared by all extensions. */
.pos-payments-modal .modal-dialog { max-width: 1180px; }
.pos-payments-modal .modal-content { overflow: hidden; border-radius: 1rem; }
.pos-payments-header { min-height: 68px; padding: .9rem 1.25rem; color: #fff; background: linear-gradient(135deg, #123767, #1677ff) !important; border: 0; }
.pos-payments-icon { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; color: #1677ff; background: #fff; border-radius: .8rem; box-shadow: 0 .45rem 1rem rgba(0, 0, 0, .16); }
.pos-payments-refresh { min-width: 2.35rem; }
.pos-payments-table-wrap { max-height: min(70vh, 720px); overflow: auto; background: #fff; }
.pos-payments-table-wrap thead th { position: sticky; top: 0; z-index: 1; padding: .85rem 1rem; font-size: .73rem; font-weight: 800; color: #60718a; letter-spacing: .035em; text-transform: uppercase; background: #f7f9fc; border-bottom: 1px solid #e5ebf3; }
.pos-payments-table-wrap tbody td { padding: .85rem 1rem; border-color: #edf1f5; }
.pos-payments-table-wrap tbody tr:hover { background: #f7fbff; }

@media (max-width: 767.98px) {
    .pos-payments-header { min-height: 62px; padding: .75rem 1rem; }
    .pos-payments-table-wrap { max-height: none; }
    .pos-payments-table-wrap table { min-width: 760px; }
    .pos-payments-table-wrap thead th, .pos-payments-table-wrap tbody td { padding: .7rem .75rem; }
    .pos-payments-refresh { width: 2.3rem; padding: 0; }
}

#modalInvoice .invoice-summary-panel {
    align-self: stretch;
}

@media (max-width: 991.98px) {
    #modalInvoice .invoice-main-panel {
        border-right: 0 !important;
    }

    #modalInvoice .invoice-summary-panel {
        border-top: 1px solid #dee2e6;
    }

    #modalInvoice .invoice-workspace {
        min-height: 0;
    }
}

@media (max-width: 767.98px) {
    .module-list-layout .module-filter-row > [class*="col-"] {
        width: 100%;
    }

    #modalInvoice .invoice-cart-card {
        max-height: 340px;
        overflow-x: auto;
    }

    #modalInvoice .invoice-cart-card table {
        min-width: 680px;
    }
}

/* Sol menü, içerik ekranı aşarsa kendi içinde kayar. */
.sidebar-nav {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
/* Core detail modals share the same compact mobile layout. */
.core-detail-tabs {
    gap: 2px;
    scrollbar-width: none;
}

#operationPreloader {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: rgba(15, 23, 42, .38);
    backdrop-filter: blur(3px);
}

#operationPreloader.is-visible {
    display: flex;
}

.operation-preloader-card {
    width: min(100%, 340px);
    padding: 1.5rem;
    text-align: center;
    color: #fff;
    background: linear-gradient(145deg, #0f172a, #1e3a5f);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 1rem;
    box-shadow: 0 1.5rem 3rem rgba(15, 23, 42, .35);
}

.operation-preloader-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    margin-bottom: .85rem;
    font-size: 1.35rem;
    color: #fff;
    background: #1677ff;
    border-radius: 50%;
}

.operation-preloader-title {
    font-weight: 700;
    font-size: 1.05rem;
}

.operation-preloader-note {
    margin-top: .35rem;
    font-size: .85rem;
    color: rgba(255, 255, 255, .72);
}

.core-detail-tabs::-webkit-scrollbar {
    display: none;
}

.core-mobile-table {
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}

.core-mobile-table table {
    min-width: 680px;
}

.core-mobile-table th,
.core-mobile-table td {
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .modal-dialog.core-mobile-detail {
        margin: .35rem;
        max-width: calc(100% - .7rem);
    }

    .core-mobile-detail .modal-header,
    .core-mobile-detail .modal-body {
        padding-left: .75rem;
        padding-right: .75rem;
    }

    .core-mobile-detail .modal-header {
        gap: .5rem;
    }

    .core-detail-tabs .nav-link {
        min-width: 42px;
        padding: .55rem .65rem !important;
        text-align: center;
    }

    .mobile-icon-button {
        width: 38px;
        height: 38px;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .mobile-icon-button .mobile-action-label {
        display: none;
    }

    .core-mobile-table {
        margin-left: -.75rem;
        margin-right: -.75rem;
        border-radius: 0 !important;
    }

    .core-mobile-table table {
        min-width: 620px;
        font-size: .78rem;
    }

    .core-mobile-table th,
    .core-mobile-table td {
        padding: .65rem .55rem;
    }

    #stockCountFilters {
        min-width: 154px;
        max-width: calc(100% - 46px);
    }
}

.drive-modal-content { overflow: hidden; background: #f6f8fc; }
.drive-modal-header { padding: 1.1rem 1.35rem; color: #fff; background: linear-gradient(135deg, #102a56, #1667d9); border: 0; }
.drive-modal-header .btn-close { filter: invert(1) grayscale(1) brightness(3); }
.drive-brand-icon { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; color: #1667d9; background: #fff; border-radius: .85rem; box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .16); }
.drive-modal-body { display: flex; flex-direction: column; min-height: 0; }
.drive-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.15rem; background: rgba(255, 255, 255, .92); border-bottom: 1px solid #e8edf5; }
.drive-icon-btn { width: 2.35rem; padding: 0; }
.drive-upload-btn { display: inline-flex; align-items: center; gap: .45rem; }
.drive-stat-chip, .drive-size-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .32rem .55rem; font-size: .72rem; font-weight: 700; color: #50627c; background: #f6f8fc; border: 1px solid #e1e8f2; border-radius: 999px; }
.drive-breadcrumb-wrap { padding: .72rem 1.15rem; background: #fff; border-bottom: 1px solid #e8edf5; }
.drive-breadcrumb-wrap .breadcrumb-item a { color: #1667d9; text-decoration: none; }
.drive-drop-zone { flex: 1; min-height: 360px; max-height: 62vh; padding: 1.25rem; overflow-y: auto; }
.drive-item-card { height: 100%; min-height: 158px; padding: 1rem; text-align: center; background: #fff; border: 1px solid #e5ebf4; border-radius: 1rem; box-shadow: 0 .5rem 1.25rem rgba(29, 50, 85, .05); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.drive-item-card:hover { border-color: #a9c9ff; box-shadow: 0 1rem 1.8rem rgba(29, 87, 177, .12); transform: translateY(-3px); }
.drive-system-folder { cursor: pointer; background: linear-gradient(145deg, #fffdf3, #fff); }
.drive-item-icon { display: grid; width: 3.25rem; height: 3.25rem; margin: 0 auto .8rem; place-items: center; font-size: 1.55rem; color: #1667d9; background: #edf4ff; border-radius: .9rem; }
.drive-item-icon .text-warning { color: #e5a500 !important; }
.drive-item-name { font-size: .84rem; font-weight: 750; color: #263957; }
.drive-item-meta { margin-top: .35rem; font-size: .72rem; color: #8b9ab0; }
.drive-item-actions { display: flex; justify-content: center; gap: .4rem; margin-top: .8rem; padding-top: .7rem; border-top: 1px solid #edf1f6; }
.drive-item-actions .btn { width: 2rem; padding: .25rem; }
.drive-backup-table { overflow: hidden; background: #fff; border: 1px solid #e5ebf4; border-radius: 1rem; box-shadow: 0 .5rem 1.25rem rgba(29, 50, 85, .05); }
.drive-backup-table table { table-layout: fixed; min-width: 760px; }
.drive-backup-table thead th { padding: .85rem 1rem; font-size: .72rem; color: #667894; background: #f7f9fc; border-bottom-color: #e8edf5; }
.drive-backup-table td { padding: .85rem 1rem; }
.drive-backup-table th:nth-child(1), .drive-backup-table td:nth-child(1) { width: 34%; }
.drive-backup-table th:nth-child(2), .drive-backup-table td:nth-child(2) { width: 25%; }
.drive-backup-table th:nth-child(3), .drive-backup-table td:nth-child(3) { width: 18%; }
.drive-backup-table th:nth-child(4), .drive-backup-table td:nth-child(4) { width: 23%; }
.drive-backup-action-cell { text-align: right; white-space: nowrap; }
.drive-backup-actions { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; flex-wrap: nowrap; }
.drive-backup-actions .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 2.15rem; white-space: nowrap; }
.drive-empty-state { display: grid; min-height: 260px; place-content: center; gap: .75rem; text-align: center; color: #8b9ab0; }
.drive-empty-state i { font-size: 2.5rem; color: #b4c4da; }
.drive-modal-footer { padding: .75rem 1.15rem; font-size: .78rem; color: #6a7b93; background: #fff; border-top: 1px solid #e8edf5; }

@media (max-width: 767.98px) {
    .drive-modal-header { padding: 1rem; }
    .drive-toolbar { padding: .7rem .85rem; }
    .drive-upload-btn { width: 2.35rem; padding: 0; justify-content: center; }
    .drive-upload-btn span { display: none; }
    .drive-drop-zone { min-height: 0; max-height: none; padding: .85rem; }
    .drive-item-card { min-height: 142px; padding: .75rem; }
    .drive-breadcrumb-wrap, .drive-modal-footer { padding-left: .85rem; padding-right: .85rem; }
    .drive-backup-table table { min-width: 560px; }
    .drive-backup-table th:nth-child(2), .drive-backup-table td:nth-child(2) { display: none; }
    .drive-backup-table th:nth-child(1), .drive-backup-table td:nth-child(1) { width: 42%; }
    .drive-backup-table th:nth-child(3), .drive-backup-table td:nth-child(3) { width: 20%; }
    .drive-backup-table th:nth-child(4), .drive-backup-table td:nth-child(4) { width: 38%; }
    .drive-backup-actions { gap: .4rem; }
    .drive-backup-actions .btn { width: 2.2rem; padding-left: 0; padding-right: 0; }
}

/* Core workspaces use the full desktop canvas while compact helper dialogs stay focused. */
@media (min-width: 992px) {
    #modalItemList .modal-dialog,
    #modalItemDetail .modal-dialog,
    #modalFirms .modal-dialog,
    #modalFirmDetail .modal-dialog,
    #modalPages .modal-dialog,
    #modalPageDetail .modal-dialog,
    #modalNews .modal-dialog,
    #modalNewsDetail .modal-dialog,
    #modalInvoiceList .modal-dialog,
    #modalInvoice .modal-dialog,
    #modalKasa .modal-dialog,
    #modalFinanceList .modal-dialog {
        width: 100vw;
        max-width: none;
        height: 100dvh;
        max-height: none;
        margin: 0;
    }

    #modalItemList .modal-content,
    #modalItemDetail .modal-content,
    #modalFirms .modal-content,
    #modalFirmDetail .modal-content,
    #modalPages .modal-content,
    #modalPageDetail .modal-content,
    #modalNews .modal-content,
    #modalNewsDetail .modal-content,
    #modalInvoiceList .modal-content,
    #modalInvoice .modal-content,
    #modalKasa .modal-content,
    #modalFinanceList .modal-content {
        height: 100dvh !important;
        max-height: none !important;
        border-radius: 0 !important;
    }

    #modalItemList .modal-header,
    #modalItemDetail .modal-header,
    #modalFirms .modal-header,
    #modalFirmDetail .modal-header,
    #modalPages .modal-header,
    #modalPageDetail .modal-header,
    #modalNews .modal-header,
    #modalNewsDetail .modal-header,
    #modalInvoiceList .modal-header,
    #modalInvoice .modal-header,
    #modalKasa .modal-header,
    #modalFinanceList .modal-header {
        min-height: 66px;
        padding: .9rem 1.5rem;
        box-shadow: 0 .15rem .7rem rgba(15, 23, 42, .06);
        z-index: 1;
    }

    #modalItemList .modal-body,
    #modalFirms .modal-body,
    #modalPages .modal-body,
    #modalNews .modal-body,
    #modalInvoiceList .modal-body,
    #modalKasa .modal-body,
    #modalFinanceList .modal-body {
        display: flex;
        flex: 1 1 auto;
        flex-direction: column;
        padding: 1.25rem 1.5rem !important;
        overflow: hidden;
    }

    #modalItemDetail .modal-body,
    #modalFirmDetail .modal-body,
    #modalPageDetail .modal-body,
    #modalNewsDetail .modal-body,
    #modalInvoice .modal-body {
        flex: 1 1 auto;
        padding: 1.25rem 1.5rem !important;
        overflow-y: auto;
    }

    #modalItemList .table-responsive,
    #modalFirms .table-responsive,
    #modalPages .table-responsive,
    #modalNews .table-responsive,
    #modalInvoiceList .table-responsive,
    #modalKasa .table-responsive,
    #modalFinanceList .table-responsive {
        flex: 1 1 auto;
        min-height: 0;
        overflow: auto;
    }

    #modalItemList table > thead > tr > th,
    #modalFirms table > thead > tr > th,
    #modalPages table > thead > tr > th,
    #modalNews table > thead > tr > th,
    #modalInvoiceList table > thead > tr > th,
    #modalKasa table > thead > tr > th,
    #modalFinanceList table > thead > tr > th {
        padding: .85rem 1rem;
        font-size: .78rem;
        letter-spacing: .035em;
    }

    #modalItemList table > tbody > tr > td,
    #modalFirms table > tbody > tr > td,
    #modalPages table > tbody > tr > td,
    #modalNews table > tbody > tr > td,
    #modalInvoiceList table > tbody > tr > td,
    #modalKasa table > tbody > tr > td,
    #modalFinanceList table > tbody > tr > td {
        padding: .82rem 1rem;
        font-size: .9rem;
    }

    #modalItemList .btn,
    #modalItemDetail .btn,
    #modalFirms .btn,
    #modalFirmDetail .btn,
    #modalPages .btn,
    #modalPageDetail .btn,
    #modalNews .btn,
    #modalNewsDetail .btn,
    #modalInvoiceList .btn,
    #modalInvoice .btn,
    #modalKasa .btn,
    #modalFinanceList .btn {
        min-height: 38px;
        font-size: .86rem;
    }

    #modalItemList .btn-sm,
    #modalFirms .btn-sm,
    #modalPages .btn-sm,
    #modalNews .btn-sm,
    #modalInvoiceList .btn-sm,
    #modalKasa .btn-sm,
    #modalFinanceList .btn-sm {
        min-height: 34px;
        font-size: .8rem;
    }
}

/* Keep modal actions on an opaque off-white surface instead of transparent
   Bootstrap variants; the header color remains the only module accent. */
.modal .btn:not(.btn-link):not(.btn-close) {
    background-color: #fffdf8 !important;
    border-color: #d9e1ea !important;
    color: #334155 !important;
    box-shadow: 0 .1rem .25rem rgba(15, 23, 42, .05);
}

.modal .btn:not(.btn-link):not(.btn-close):hover,
.modal .btn:not(.btn-link):not(.btn-close):focus {
    background-color: #fff !important;
    border-color: #b8c6d6 !important;
    color: #172033 !important;
}

.modal .modal-header .btn-close {
    width: 34px;
    height: 34px;
    padding: 0;
    margin: 0 0 0 .5rem;
    background-color: #fffdf8;
    background-size: .72rem;
    border: 1px solid #d9e1ea;
    border-radius: 9px;
    filter: none !important;
    opacity: 1;
    box-shadow: 0 .1rem .25rem rgba(15, 23, 42, .06);
}

.modal .modal-header .btn-close:hover,
.modal .modal-header .btn-close:focus {
    background-color: #fff;
    border-color: #b8c6d6;
    opacity: 1;
}

/* Full workspace modals retain a small breathing room on every edge. */
.modal-dialog.modal-fullscreen,
#modalItemList .modal-dialog, #modalFirms .modal-dialog, #modalPages .modal-dialog,
#modalNews .modal-dialog, #modalInvoiceList .modal-dialog, #modalKasa .modal-dialog, #modalFinanceList .modal-dialog,
#modalItemDetail .modal-dialog, #modalFirmDetail .modal-dialog, #modalPageDetail .modal-dialog,
#modalNewsDetail .modal-dialog, #modalInvoice .modal-dialog {
    width: calc(100vw - 2rem) !important;
    max-width: calc(100vw - 2rem) !important;
    height: calc(100dvh - 2rem) !important;
    max-height: calc(100dvh - 2rem) !important;
    margin: 1rem auto !important;
}

.modal-dialog.modal-fullscreen .modal-content,
#modalItemList .modal-content, #modalFirms .modal-content, #modalPages .modal-content,
#modalNews .modal-content, #modalInvoiceList .modal-content, #modalKasa .modal-content, #modalFinanceList .modal-content,
#modalItemDetail .modal-content, #modalFirmDetail .modal-content, #modalPageDetail .modal-content,
#modalNewsDetail .modal-content, #modalInvoice .modal-content {
    height: 100% !important;
    max-height: 100% !important;
    border-radius: 14px !important;
}

@media (max-width: 768px) {
    .modal-dialog.modal-fullscreen,
    #modalItemList .modal-dialog, #modalFirms .modal-dialog, #modalPages .modal-dialog,
    #modalNews .modal-dialog, #modalInvoiceList .modal-dialog, #modalKasa .modal-dialog, #modalFinanceList .modal-dialog,
    #modalItemDetail .modal-dialog, #modalFirmDetail .modal-dialog, #modalPageDetail .modal-dialog,
    #modalNewsDetail .modal-dialog, #modalInvoice .modal-dialog {
        width: calc(100vw - 1rem) !important;
        max-width: calc(100vw - 1rem) !important;
        height: calc(100dvh - 1rem) !important;
        max-height: calc(100dvh - 1rem) !important;
        margin: .5rem auto !important;
    }
}
