/**
 * Panel — Apple tarzı sade arayüz (Bootstrap tabanlı)
 * Multi-tenant için ileride tema/tenant bazlı override yapılabilir.
 */
:root,
[data-theme="light"] {
    --panel-bg: #f5f5f7;
    --panel-card: #ffffff;
    --panel-card-hover: #f8f9fa;
    --panel-text: #1d1d1f;
    --panel-text-muted: #6e6e73;
    --panel-border: #d2d2d7;
    --panel-primary: #0071e3;
    --panel-radius: 12px;
    --panel-shadow: 0 2px 12px rgba(0,0,0,.06);
    --panel-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

[data-theme="dark"] {
    --panel-bg: #1c1c1e;
    --panel-card: #2c2c2e;
    --panel-card-hover: #38383a;
    --panel-text: #f5f5f7;
    --panel-text-muted: #98989d;
    --panel-border: #3a3a3c;
    --panel-primary: #0a84ff;
    --panel-shadow: 0 2px 12px rgba(0,0,0,.3);
}
[data-theme="dark"] .text-dark { color: var(--panel-text) !important; }
[data-theme="dark"] .text-muted { color: var(--panel-text-muted) !important; }
[data-theme="dark"] .bg-light { background-color: var(--panel-card) !important; }
[data-theme="dark"] .table-light { background-color: var(--panel-bg); color: var(--panel-text); }
[data-theme="dark"] .border-top { border-color: var(--panel-border) !important; }
[data-theme="dark"] .panel-nav-toggle.text-dark { color: var(--panel-text) !important; }
[data-theme="dark"] .dropdown-menu {
    background: var(--panel-card);
    border: 1px solid var(--panel-border);
    box-shadow: 0 8px 32px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.05);
}
[data-theme="dark"] .dropdown-item { color: var(--panel-text); }
[data-theme="dark"] .dropdown-item:hover { background: var(--panel-card-hover); }
[data-theme="dark"] .dropdown-divider { border-color: var(--panel-border); }
[data-theme="dark"] .panel-theme-menu,
[data-theme="dark"] .panel-nav-user-menu {
    border: 1px solid var(--panel-border);
    box-shadow: 0 8px 32px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.05);
}

/* Koyu tema: tablo ve kart hover uyumu */
[data-theme="dark"] .table,
[data-theme="dark"] .table th,
[data-theme="dark"] .table td { background-color: transparent; color: var(--panel-text); border-color: var(--panel-border); }
[data-theme="dark"] .table-hover tbody tr:hover { background-color: var(--panel-card-hover); color: var(--panel-text); }
[data-theme="dark"] .table-hover tbody tr:hover td { background-color: var(--panel-card-hover); }
[data-theme="dark"] .table-info { background-color: rgba(10, 132, 255, 0.12); color: var(--panel-text); }
[data-theme="dark"] .table-info td { background-color: rgba(10, 132, 255, 0.12); }
[data-theme="dark"] .table-info:hover { background-color: rgba(10, 132, 255, 0.18); }
[data-theme="dark"] .table-info:hover td { background-color: rgba(10, 132, 255, 0.18); }
[data-theme="dark"] .table-warning { background-color: rgba(255, 193, 7, 0.12); color: var(--panel-text); }
[data-theme="dark"] .table-warning td { background-color: rgba(255, 193, 7, 0.12); }
[data-theme="dark"] .table-warning:hover { background-color: rgba(255, 193, 7, 0.18); }
[data-theme="dark"] .table-warning:hover td { background-color: rgba(255, 193, 7, 0.18); }
[data-theme="dark"] .table-light { background-color: var(--panel-card-hover); color: var(--panel-text); }
[data-theme="dark"] .table-light td { background-color: var(--panel-card-hover); }
[data-theme="dark"] tfoot.table-light { background-color: var(--panel-card-hover); }
[data-theme="dark"] tfoot.table-light td { background-color: var(--panel-card-hover); }
[data-theme="dark"] .rfm-segment-card:hover { background-color: var(--panel-card-hover) !important; }
[data-theme="dark"] .cursor-pointer:hover { box-shadow: 0 2px 12px rgba(0,0,0,.4); }
[data-theme="dark"] .payments-customer-row:hover { box-shadow: 0 2px 12px rgba(0,0,0,.4); background-color: var(--panel-card-hover); }
[data-theme="dark"] .payments-stat-card { background: var(--panel-card); }
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select { background-color: var(--panel-card); border-color: var(--panel-border); color: var(--panel-text); }
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus { background-color: var(--panel-card); border-color: var(--panel-primary); color: var(--panel-text); }
[data-theme="dark"] .form-control::placeholder { color: var(--panel-text-muted); }
[data-theme="dark"] .form-check-input { background-color: var(--panel-card); border-color: var(--panel-border); }
[data-theme="dark"] .form-check-input:checked { background-color: var(--panel-primary); border-color: var(--panel-primary); }
[data-theme="dark"] .badge.bg-warning.text-dark { color: var(--panel-text) !important; }

/* Koyu tema: Bootstrap card (settings_general, tenant_settings vb.) */
[data-theme="dark"] .card { background-color: var(--panel-card); border-color: var(--panel-border); color: var(--panel-text); }
[data-theme="dark"] .card-header { background-color: var(--panel-card-hover); border-color: var(--panel-border); color: var(--panel-text); }
[data-theme="dark"] .card-body { background-color: var(--panel-card); color: var(--panel-text); }

/* Koyu tema: tüm modallar */
[data-theme="dark"] .modal-content { background-color: var(--panel-card); border-color: var(--panel-border); color: var(--panel-text); }
[data-theme="dark"] .modal-header { background-color: var(--panel-card); border-color: var(--panel-border); }
[data-theme="dark"] .modal-title { color: var(--panel-text); }
[data-theme="dark"] .modal-body { background-color: var(--panel-card); color: var(--panel-text); }
[data-theme="dark"] .modal-footer { background-color: var(--panel-card); border-color: var(--panel-border); }
[data-theme="dark"] .modal-backdrop { background-color: #000; }
[data-theme="dark"] .modal .btn-close { filter: invert(1); }

/* Koyu tema: input açıklamaları (form-text, small, caption) */
[data-theme="dark"] .form-text { color: var(--panel-text-muted) !important; }
[data-theme="dark"] .form-label { color: var(--panel-text); }
[data-theme="dark"] caption,
[data-theme="dark"] caption.small,
[data-theme="dark"] caption.text-muted { color: var(--panel-text-muted) !important; }
[data-theme="dark"] label:not(.form-check-label):not(.form-label) { color: var(--panel-text); }
[data-theme="dark"] .form-check-label { color: var(--panel-text); }
[data-theme="dark"] .modal .btn-outline-secondary { border-color: var(--panel-border); color: var(--panel-text); }
[data-theme="dark"] .modal .btn-outline-secondary:hover { background-color: var(--panel-card-hover); border-color: var(--panel-border); color: var(--panel-text); }

* { box-sizing: border-box; }
body {
    font-family: var(--panel-font);
    background: var(--panel-bg);
    color: var(--panel-text);
    font-size: 15px;
    line-height: 1.47;
    min-height: 100vh;
}

/* Login */
.panel-login {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 24px;
}
.panel-login-box { width: 100%; max-width: 400px; }
.panel-login-card {
    background: var(--panel-card);
    border-radius: var(--panel-radius);
    box-shadow: var(--panel-shadow);
    padding: 40px;
}
.panel-login-logo { display: block; margin: 0 auto 24px; }
.panel-heading {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 24px;
    text-align: center;
}
.panel-login .form-label { font-weight: 500; color: var(--panel-text); }
.panel-login .form-control {
    border-radius: 8px;
    border-color: var(--panel-border);
    padding: 10px 14px;
}
.panel-login .btn-primary {
    background: var(--panel-primary);
    border: none;
    border-radius: 8px;
    font-weight: 500;
    padding: 12px;
}

/* Layout */
.panel-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: var(--panel-card);
    border-bottom: 1px solid var(--panel-border);
    padding: 0 24px;
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.panel-body {
    padding-top: 52px;
}
.panel-nav-brand {
    font-size: 18px;
    font-weight: 600;
    color: var(--panel-text);
    text-decoration: none;
}
.panel-nav-logo { object-fit: contain; flex-shrink: 0; }
.panel-nav-brand:hover { color: var(--panel-text); }
.panel-nav-tenant-name {
    font-size: 0.85em;
    font-weight: 500;
    color: var(--panel-text-muted);
}
.panel-theme-dropdown .panel-theme-btn {
    display: flex;
    align-items: center;
    padding: 6px 12px;
    border: 1px solid var(--panel-border);
    background: var(--panel-card);
    color: var(--panel-text-muted);
    border-radius: 20px;
    font-size: 14px;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.panel-theme-dropdown .panel-theme-btn:hover {
    background: var(--panel-bg);
    border-color: var(--panel-primary);
    color: var(--panel-text);
}
.panel-theme-dropdown .panel-theme-btn:focus {
    box-shadow: 0 0 0 2px rgba(0, 113, 227, 0.25);
}
.panel-theme-dropdown .panel-theme-btn .panel-theme-icon {
    font-size: 1.1rem;
}
.panel-theme-dropdown .panel-theme-btn.dropdown-toggle::after {
    display: none;
}
.panel-theme-menu {
    min-width: 180px;
    padding: 8px;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0,0,0,.12);
    margin-top: 8px;
}
.panel-theme-menu .dropdown-item {
    padding: 10px 14px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.panel-theme-menu .dropdown-item:hover {
    background: var(--panel-bg);
}
[data-theme="dark"] .panel-theme-menu .dropdown-item,
[data-theme="dark"] .panel-theme-menu .dropdown-item:hover,
[data-theme="dark"] .panel-theme-menu .dropdown-item span { color: var(--panel-text) !important; }
.panel-theme-menu .dropdown-item .panel-theme-check {
    font-size: 1rem;
}
.panel-nav-user {
    white-space: nowrap;
}
.panel-nav-user-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border: 1px solid var(--panel-border);
    background: var(--panel-card);
    color: var(--panel-text);
    border-radius: 20px;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.2s, border-color 0.2s;
}
.panel-nav-user-btn:hover {
    background: var(--panel-bg);
    border-color: var(--panel-primary);
    color: var(--panel-text);
}
.panel-nav-user-btn:focus {
    box-shadow: 0 0 0 2px rgba(0, 113, 227, 0.25);
}
.panel-nav-user-btn.dropdown-toggle::after {
    display: none;
}
.panel-nav-user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--panel-primary);
    color: #fff;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
}
.panel-nav-user-menu {
    min-width: 220px;
    padding: 0;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0,0,0,.12);
    margin-top: 8px;
}
.panel-nav-user-menu .dropdown-item {
    padding: 10px 16px;
}
.panel-nav-user-menu .dropdown-item:hover {
    background: var(--panel-bg);
}
.panel-nav-user-menu .dropdown-item i {
    opacity: 0.7;
}
@media (max-width: 767.98px) {
    .panel-nav { padding: 0 12px; }
    .panel-nav-user-btn { padding: 5px 10px; }
    .panel-nav-user-avatar { width: 26px; height: 26px; font-size: 12px; }
}

.panel-layout { min-height: calc(100vh - 52px); }

.panel-sidebar {
    width: 260px;
    min-width: 260px;
    min-height: calc(100vh - 52px);
    background: var(--panel-card);
    border-right: 1px solid var(--panel-border);
    padding: 16px 0;
    flex-shrink: 0;
}

/* Mobil: sol menü çekmece, hamburger ile açılır */
@media (max-width: 767.98px) {
    .panel-sidebar {
        position: fixed;
        top: 52px;
        left: 0;
        bottom: 0;
        z-index: 1001;
        transform: translateX(-100%);
        transition: transform 0.25s ease-out;
        box-shadow: 4px 0 20px rgba(0,0,0,.1);
        min-height: auto;
        overflow-y: auto;
    }
    .panel-sidebar.panel-sidebar-open {
        transform: translateX(0);
    }
    .panel-sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        top: 52px;
        background: rgba(0,0,0,0.4);
        z-index: 1000;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s ease-out;
    }
    .panel-sidebar-backdrop.show {
        opacity: 1;
        pointer-events: auto;
    }
    .panel-main {
        padding: 16px;
        min-width: 0;
        width: 100%;
    }
    .panel-nav-toggle:focus { box-shadow: none; outline: 0; }
}

@media (min-width: 768px) {
    .panel-sidebar-backdrop { display: none !important; }
}
.panel-sidebar .nav-link {
    color: var(--panel-text);
    padding: 10px 24px;
    border-radius: 8px;
    margin: 0 8px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.panel-sidebar .nav-link:hover { background: var(--panel-bg); }
.panel-sidebar .nav-link.active { background: var(--panel-bg); font-weight: 500; }
.panel-sidebar .nav-link i { font-size: 18px; opacity: .85; }
.panel-sidebar-heading {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--panel-text);
    padding: 8px 24px 8px;
    margin: 8px 8px 0;
    display: block;
}
.panel-sidebar .hr { margin: 12px 24px; border-color: var(--panel-border); }

.panel-main {
    flex: 1;
    padding: 24px 32px;
    min-width: 0;
}

@media (max-width: 767.98px) {
    .panel-page-title { font-size: 22px; margin-bottom: 16px; }
    .panel-card { padding: 16px; margin-bottom: 16px; }
    .panel-table { font-size: 13px; }
}
.panel-page-title {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 24px;
}
.panel-card {
    background: var(--panel-card);
    border-radius: var(--panel-radius);
    box-shadow: var(--panel-shadow);
    padding: 24px;
    margin-bottom: 24px;
}
.panel-card-title { font-size: 17px; font-weight: 600; margin-bottom: 16px; }
.panel-card-wide { max-width: 100%; }
.mw-600 { max-width: 600px; }
.mw-900 { max-width: 900px; }
.panel-table { font-size: 14px; }
.panel-table th { font-weight: 600; color: var(--panel-text-muted); border-color: var(--panel-border); }
.panel-table td { border-color: var(--panel-border); vertical-align: middle; }
.panel-table a { color: var(--panel-primary); text-decoration: none; }
.panel-table a:hover { text-decoration: underline; }
/* Tıklanabilir metin linkleri: altı çizgili, koyu renk (müşteri adı, paket adı vb.) */
.panel-table a.tenant-name-link {
    color: var(--panel-text);
    text-decoration: underline;
}
.panel-table a.tenant-name-link:hover {
    color: var(--panel-text);
    text-decoration: underline;
}
.panel-table a.tenant-name-link.text-danger {
    color: var(--bs-danger) !important;
}
.panel-table a.tenant-name-link.text-danger:hover {
    color: var(--bs-danger) !important;
}

/* Müşteri detay başlık + butonlar */
.panel-detail-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}
.panel-detail-btns-desktop { display: flex; }
.panel-detail-btns-mobile { display: none !important; }
@media (max-width: 767.98px) {
    .panel-detail-btns-desktop { display: none !important; }
    .panel-detail-btns-mobile { display: flex !important; width: 100%; }
}
@media (min-width: 768px) {
    .panel-detail-btns-mobile { display: none !important; }
}

/* Tabs (müşteri detay) */
.panel-tabs .nav-link {
    color: var(--panel-text-muted);
    border: none;
    border-bottom: 2px solid transparent;
    padding: 12px 16px;
    font-weight: 500;
    border-radius: 0;
}
.panel-tabs .nav-link:hover { color: var(--panel-text); }
.panel-tabs .nav-link.active { color: var(--panel-primary); border-bottom-color: var(--panel-primary); background: transparent; }
@media (max-width: 767.98px) {
    .panel-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; margin: 0 -16px; padding: 0 16px; }
    .panel-tabs .nav-item { flex-shrink: 0; }
}
.panel-tab-content { padding-top: 20px; min-height: 200px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.panel-tab-loading { color: var(--panel-text-muted); padding: 24px; text-align: center; }
/* Müşteri detay tablo mobil — yatay kaydırma */
@media (max-width: 767.98px) {
    .panel-tab-content .table { min-width: 480px; font-size: 12px; }
    .panel-tab-content .table th, .panel-tab-content .table td { padding: 6px 8px; }
    .panel-tab-content .table td:nth-child(3) { max-width: 160px; overflow-wrap: break-word; word-break: break-word; }
}

/* Buttons — yazı beyaz; hover’da arka plan aynı kalsın, sadece çerçeve beyaz */
.btn-panel { border-radius: 8px; font-weight: 500; color: #fff; }
.btn-panel:hover { color: #fff; border-color: #fff; }
.btn-panel-primary { background: var(--panel-primary); border: 1px solid var(--panel-primary); color: #fff; }
.btn-panel-primary:hover { background: var(--panel-primary); border-color: #fff; color: #fff; }
.btn-primary { color: #fff; }
.btn-primary:hover { background: var(--bs-primary); border-color: #fff; color: #fff; }
.btn-success { color: #fff; }
.btn-success:hover { background: var(--bs-success); border-color: #fff; color: #fff; }
.btn-danger { color: #fff; }
.btn-danger:hover { background: var(--bs-danger); border-color: #fff; color: #fff; }
.btn-warning { color: #fff; }
.btn-warning:hover { background: var(--bs-warning); border-color: #fff; color: #fff; }

/* Detail empty state */
.panel-detail-empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--panel-text-muted);
}
.panel-detail-empty .bi { font-size: 48px; margin-bottom: 16px; opacity: .5; }
.cursor-pointer { cursor: pointer; }
.cursor-pointer:hover { box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.dashboard-card:hover { background-color: var(--panel-card-hover) !important; }
.panel-card.h-100:hover { background-color: var(--panel-card-hover); }

/* Payments — Detaylı Müşteri Hesapları */
.payments-stat-card {
    border-radius: var(--panel-radius);
    box-shadow: var(--panel-shadow);
}
.payments-stat-value { color: var(--panel-text); }
.payments-customer-list { display: flex; flex-direction: column; gap: 12px; }
.payments-customer-row {
    background: var(--panel-card);
    border: 1px solid var(--panel-border);
    border-radius: var(--panel-radius);
    padding: 16px 20px;
    transition: box-shadow 0.2s;
}
.payments-customer-row:hover { box-shadow: var(--panel-shadow); }
.payments-customer-row-expired { background: rgba(220, 53, 69, 0.04); border-color: rgba(220, 53, 69, 0.2); }
.payments-customer-main {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.payments-customer-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
    flex-shrink: 0;
}
.payments-customer-info { min-width: 0; }
.payments-customer-amount { flex-shrink: 0; white-space: nowrap; }
.payments-customer-actions { display: flex; gap: 8px; flex-shrink: 0; }

/* Payments — Yaklaşan Ödemeler tablo */
.payments-table .payments-th-name { min-width: 200px; }
.payments-table .payments-th-status { min-width: 120px; }
.payments-table .payments-th-actions { width: 100px; text-align: right; }
.payments-tenant-link:hover .fw-semibold { text-decoration: underline; }
.payments-avatar {
    width: 40px; height: 40px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: 600; font-size: 13px; flex-shrink: 0;
}
.payments-avatar-wrap {
    position: relative;
    width: 40px; height: 40px; min-width: 40px; min-height: 40px; max-width: 40px; max-height: 40px;
    border-radius: 50%;
    overflow: hidden; flex-shrink: 0;
}
.payments-avatar-wrap .payments-avatar-img {
    position: absolute;
    top: 0; left: 0;
    width: 40px !important; height: 40px !important;
    max-width: 40px !important; max-height: 40px !important;
    object-fit: cover; object-position: center;
}
.payments-avatar-wrap .payments-avatar-fallback {
    position: absolute;
    top: 0; left: 0;
}
.payments-table .payments-th-actions { text-align: center; }
.payments-table .payments-th-actions + td,
.payments-table tbody td:last-child { text-align: center; }
