/*
 * Webonom — sunucu modülü uyum katmanı.
 *
 * deamspeak (TS3), dinusbot, melodibot modülleri kendi CSS'lerini sayfa
 * gövdesinde, temadan SONRA yükler ve sabit açık renk kullanır. Bu dosya
 * modül dosyalarına dokunmadan .service-admin-module iskeletini token'lara
 * bağlar. Seçiciler modül CSS'ini yenecek özgüllükte yazıldı; modülün
 * inline style'ları için !important gerekiyor.
 */

/* ---------- İskelet ---------- */

.wb-body .service-admin-module {
    min-height: 0;
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius);
    background: var(--wb-surface);
    box-shadow: none;
    color: var(--wb-text);
}

.wb-body .service-admin-module .service-sidebar {
    width: 230px;
    border-right: 1px solid var(--wb-border);
    background: var(--wb-surface) !important;
}

.wb-body .service-admin-module .service-nav {
    padding: 12px;
}

.wb-body .service-admin-module .service-nav-item {
    gap: 10px;
    margin-bottom: 2px;
    padding: 9px 12px;
    border-left: 0;
    border-radius: var(--wb-radius-sm);
    color: var(--wb-text-muted) !important;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none !important;
    transition: background-color .15s ease, color .15s ease;
}

.wb-body .service-admin-module .service-nav-item:hover {
    background: var(--wb-surface-2);
    color: var(--wb-text) !important;
}

.wb-body .service-admin-module .service-nav-item.active {
    background: var(--wb-accent-soft);
    color: var(--wb-text) !important;
    box-shadow: inset 3px 0 0 var(--wb-accent);
}

/* Emoji ikonlar yerine Font Awesome (sekmeler data-tab ile eşleşir) */
.wb-body .service-admin-module .service-nav-item .icon {
    width: 18px;
    font-size: 0;
    text-align: center;
}

.wb-body .service-admin-module .service-nav-item .icon::before {
    color: var(--wb-text-subtle);
    font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free";
    font-size: 14px;
    font-weight: 900;
    content: "\f111";
}

.wb-body .service-admin-module .service-nav-item.active .icon::before {
    color: var(--wb-accent-text);
}

.wb-body .service-admin-module [data-tab="ozet"] .icon::before { content: "\f200"; }
.wb-body .service-admin-module [data-tab="sunucu-ayarlari"] .icon::before { content: "\f013"; }
.wb-body .service-admin-module [data-tab="tsdns-ayarlari"] .icon::before { content: "\f0ac"; }
.wb-body .service-admin-module [data-tab="hazir-yetkiler"] .icon::before { content: "\f46d"; }
.wb-body .service-admin-module [data-tab="gruplar"] .icon::before { content: "\f505"; }
.wb-body .service-admin-module [data-tab="kanallar"] .icon::before { content: "\f086"; }
.wb-body .service-admin-module [data-tab="yedekler"] .icon::before { content: "\f1c0"; }
.wb-body .service-admin-module [data-tab="kullanicilar"] .icon::before { content: "\f007"; }
.wb-body .service-admin-module [data-tab="ban-listesi"] .icon::before { content: "\f05e"; }
.wb-body .service-admin-module [data-tab="kayitli-kullanicilar"] .icon::before { content: "\f2b9"; }
.wb-body .service-admin-module [data-tab="sunucu-goruntusu"] .icon::before { content: "\f0e8"; }
.wb-body .service-admin-module .service-nav-item[target="_blank"] .icon::before { content: "\f35d"; }

.wb-body .service-admin-module .service-nav-item .fa,
.wb-body .service-admin-module .service-nav-item .fas {
    color: var(--wb-text-subtle);
}

.wb-body .service-admin-module .refresh-status {
    margin-left: auto;
    color: var(--wb-text-subtle);
    font-size: 12px;
}

.wb-body .service-admin-module .service-content {
    padding: 24px;
    background: transparent !important;
    color: var(--wb-text);
}

/* ---------- Başlıklar ve metin ---------- */

.wb-body .service-admin-module h2,
.wb-body .service-admin-module h3,
.wb-body .service-admin-module h4,
.wb-body .service-admin-module h5 {
    color: var(--wb-text) !important;
}

.wb-body .service-admin-module .service-tab-content > h3,
.wb-body .service-admin-module .service-tab-content h3:first-child {
    margin: 0 0 16px;
    font-size: 20px;
}

.wb-body .service-admin-module h4 {
    font-size: 16px;
}

.wb-body .service-admin-module h3 i,
.wb-body .service-admin-module h4 i {
    color: var(--wb-text-subtle);
}

.wb-body .service-admin-module p,
.wb-body .service-admin-module label,
.wb-body .service-admin-module li,
.wb-body .service-admin-module span,
.wb-body .service-admin-module td {
    color: inherit;
}

.wb-body .service-admin-module .text-muted,
.wb-body .service-admin-module small,
.wb-body .service-admin-module .help-block {
    color: var(--wb-text-muted) !important;
}

.wb-body .service-admin-module [style*="color: #64748b"] {
    color: var(--wb-text-muted) !important;
}

.wb-body .service-admin-module [style*="border-top: 1px solid #eee"] {
    border-top-color: var(--wb-border) !important;
}

/* ---------- Üst bilgi kartı ---------- */

.wb-body .service-admin-module .service-header,
.wb-body .service-admin-module .service-details,
.wb-body .service-admin-module .stat-card,
.wb-body .service-admin-module .info-card-item {
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius);
    background: var(--wb-bg);
    box-shadow: none;
    color: var(--wb-text);
}

.wb-body .service-admin-module .service-header {
    margin-bottom: 16px;
    padding: 16px 18px;
}

.wb-body .service-admin-module .service-icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: var(--wb-accent-soft);
    color: var(--wb-accent-text);
    font-size: 26px;
}

.wb-body .service-admin-module .service-info h2,
.wb-body .service-admin-module .service-info h5 {
    margin: 0 0 6px;
    font-size: 18px;
}

.wb-body .service-admin-module .service-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: var(--wb-radius-pill);
    font-size: 12px;
    font-weight: 600;
}

.wb-body .service-admin-module .service-status.running {
    background: var(--wb-success-soft);
    color: var(--wb-success);
}

.wb-body .service-admin-module .service-status.stopped {
    background: var(--wb-danger-soft);
    color: var(--wb-danger);
}

.wb-body .service-admin-module .service-status.error {
    background: var(--wb-warning-soft);
    color: var(--wb-warning);
}

.wb-body .service-admin-module .service-actions {
    gap: 8px;
}

/* ---------- İstatistik ve detay kartları ---------- */

.wb-body .service-admin-module .service-stats {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.wb-body .service-admin-module .stat-card {
    padding: 14px 16px;
    border-left: 1px solid var(--wb-border);
}

.wb-body .service-admin-module .stat-label {
    margin-bottom: 4px;
    color: var(--wb-text-muted);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.wb-body .service-admin-module .stat-value {
    color: var(--wb-text);
    font-family: var(--wb-font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.wb-body .service-admin-module .service-details {
    padding: 18px;
}

.wb-body .service-admin-module .detail-row,
.wb-body .service-admin-module .info-card-body .detail-row {
    border-bottom-color: var(--wb-border);
}

.wb-body .service-admin-module .detail-label,
.wb-body .service-admin-module .info-card-body .detail-label {
    color: var(--wb-text-muted);
    font-size: 13px;
    font-weight: 500;
}

.wb-body .service-admin-module .detail-value,
.wb-body .service-admin-module .info-card-body .detail-value {
    color: var(--wb-text);
    font-size: 14px;
}

.wb-body .service-admin-module .detail-value code {
    padding: 2px 6px;
    border-radius: 4px;
    background: var(--wb-surface-2);
    color: var(--wb-accent-text);
}

.wb-body .service-admin-module .info-cards-grid {
    gap: 12px;
    margin-bottom: 16px;
}

.wb-body .service-admin-module .info-card-item:hover {
    transform: none;
    box-shadow: none;
}

.wb-body .service-admin-module .info-card-title {
    border-bottom: 1px solid var(--wb-border);
    background: transparent;
    color: var(--wb-text-muted);
    font-size: 12px;
    letter-spacing: .04em;
}

.wb-body .service-admin-module .detail-value .text-danger,
.wb-body .service-admin-module .detail-value a {
    color: var(--wb-accent-text) !important;
}

/* ---------- Butonlar ---------- */

.wb-body .service-admin-module .btn {
    border-radius: var(--wb-radius-sm);
    box-shadow: none;
    transform: none !important;
}

.wb-body .service-admin-module .btn-success,
.wb-body .service-admin-module .btn-primary {
    border: 1px solid var(--wb-accent) !important;
    background: var(--wb-accent) !important;
    color: var(--wb-accent-contrast) !important;
}

.wb-body .service-admin-module .btn-info,
.wb-body .service-admin-module .btn-default {
    border: 1px solid var(--wb-border) !important;
    background: transparent !important;
    color: var(--wb-text) !important;
}

.wb-body .service-admin-module .btn-info:hover,
.wb-body .service-admin-module .btn-default:hover {
    border-color: var(--wb-text-subtle) !important;
    background: var(--wb-surface-2) !important;
}

.wb-body .service-admin-module .btn-warning {
    border: 1px solid transparent !important;
    background: var(--wb-warning-soft) !important;
    color: var(--wb-warning) !important;
}

.wb-body .service-admin-module .btn-danger,
.wb-body .service-admin-module .btn-delete-ban {
    border: 1px solid transparent !important;
    background: var(--wb-danger-soft) !important;
    color: var(--wb-danger) !important;
}

.wb-body .service-admin-module .btn-danger:hover,
.wb-body .service-admin-module .btn-delete-ban:hover {
    background: var(--wb-danger) !important;
    color: #fff !important;
}

.wb-body .service-admin-module .btn:disabled,
.wb-body .service-admin-module .btn.disabled {
    opacity: .55;
}

/* Tablo satırlarındaki küçük ikon butonları */
.wb-body .service-admin-module .btn-group-sm > .btn,
.wb-body .service-admin-module .btn-sm {
    padding: 4px 9px;
    font-size: 12px;
}

/* "Sunucuya Bağlan" / "Sunucuya Bak" (inline style'lı bağlantılar) */
.wb-body .service-admin-module a[style*="linear-gradient"],
.wb-body .service-admin-module .connect-btn {
    border: 1px solid var(--wb-accent) !important;
    border-radius: var(--wb-radius-sm) !important;
    background: var(--wb-accent) !important;
    color: var(--wb-accent-contrast) !important;
    box-shadow: none !important;
    transform: none !important;
}

.wb-body .service-admin-module a[style*="border: 2px solid #3498db"] {
    border: 1px solid var(--wb-border) !important;
    border-radius: var(--wb-radius-sm) !important;
    background: transparent !important;
    color: var(--wb-text) !important;
}

.wb-body .service-admin-module a[style*="border: 2px solid #3498db"]:hover {
    background: var(--wb-surface-2) !important;
}

.wb-body .service-admin-module [style*="background: #0891b2"] {
    border: 1px solid var(--wb-border) !important;
    background: transparent !important;
    color: var(--wb-text) !important;
}

/* ---------- Formlar ---------- */

.wb-body .service-admin-module .form-control,
.wb-body .service-admin-module input[type="text"],
.wb-body .service-admin-module input[type="number"],
.wb-body .service-admin-module input[type="password"],
.wb-body .service-admin-module select,
.wb-body .service-admin-module textarea {
    border: 1px solid var(--wb-border) !important;
    border-radius: var(--wb-radius-sm) !important;
    background: var(--wb-bg) !important;
    color: var(--wb-text) !important;
}

.wb-body .service-admin-module .form-control:focus,
.wb-body .service-admin-module input:focus,
.wb-body .service-admin-module select:focus {
    border-color: var(--wb-accent) !important;
    box-shadow: 0 0 0 3px var(--wb-accent-soft) !important;
}

.wb-body .service-admin-module label {
    color: var(--wb-text-muted);
    font-size: 13px;
    font-weight: 500;
}

/* Bölüm kutuları (Sunucuya Mesaj Gönder, Giriş Şifresi, İkon Yönetimi) */
.wb-body .service-admin-module .service-tab-content > div[style*="margin-top: 30px"],
.wb-body .service-admin-module .service-tab-content > div[style*="margin-top: 25px"],
.wb-body .service-admin-module .service-details + .service-details {
    margin-top: 16px !important;
}

/* ---------- Uyarılar ---------- */

.wb-body .service-admin-module .alert,
.wb-body .service-admin-module .service-status-alert {
    border: 1px solid transparent;
    border-radius: var(--wb-radius-sm);
    color: var(--wb-text) !important;
}

.wb-body .service-admin-module .alert-info,
.wb-body .service-admin-module .service-status-alert.info {
    background: var(--wb-info-soft) !important;
}

.wb-body .service-admin-module .alert-warning,
.wb-body .service-admin-module .service-status-alert.warning {
    background: var(--wb-warning-soft) !important;
}

.wb-body .service-admin-module .alert-danger,
.wb-body .service-admin-module .service-status-alert.danger {
    background: var(--wb-danger-soft) !important;
}

.wb-body .service-admin-module .alert strong,
.wb-body .service-admin-module .alert b {
    color: var(--wb-text);
}

/* ---------- Tablolar ---------- */

.wb-body .service-admin-module .table,
.wb-body .service-admin-module #ban-listesi .table {
    overflow: hidden;
    border: 1px solid var(--wb-border) !important;
    border-radius: var(--wb-radius-sm);
    background: var(--wb-bg) !important;
    color: var(--wb-text);
}

.wb-body .service-admin-module .table-bordered,
.wb-body .service-admin-module .table-bordered th,
.wb-body .service-admin-module .table-bordered td {
    border-color: var(--wb-border) !important;
}

.wb-body .service-admin-module .table-bordered th,
.wb-body .service-admin-module .table-bordered td {
    border-left: 0 !important;
    border-right: 0 !important;
}

.wb-body .service-admin-module .table thead th,
.wb-body .service-admin-module #ban-listesi .table thead th {
    border-bottom: 1px solid var(--wb-border) !important;
    background: var(--wb-surface-2) !important;
    color: var(--wb-text-subtle) !important;
    font-size: 11px;
}

.wb-body .service-admin-module .table td,
.wb-body .service-admin-module #ban-listesi .table tbody td {
    padding: 10px 14px !important;
    border-top: 0;
    border-bottom: 1px solid var(--wb-border) !important;
    background: transparent !important;
    color: var(--wb-text) !important;
    font-size: 14px;
}

.wb-body .service-admin-module .table td:first-child {
    text-align: left !important;
}

.wb-body .service-admin-module .table tbody tr:last-child td {
    border-bottom: 0 !important;
}

.wb-body .service-admin-module .table-striped tbody tr:nth-of-type(odd),
.wb-body .service-admin-module #ban-listesi .table tbody tr:hover,
.wb-body .service-admin-module .table tbody tr:hover {
    background: var(--wb-surface-2) !important;
}

.wb-body .service-admin-module #ban-listesi small {
    border-color: var(--wb-border);
    background: var(--wb-surface-2);
}

.wb-body .service-admin-module #ban-listesi strong,
.wb-body .service-admin-module #ban-listesi b {
    color: var(--wb-text);
}

/* ---------- Listeler (odalar, yetkiler, TSDNS) ---------- */

.wb-body .service-admin-module .list-group {
    overflow: hidden;
    border: 1px solid var(--wb-border);
    border-radius: var(--wb-radius-sm);
    background: var(--wb-bg);
}

.wb-body .service-admin-module .list-group-item {
    padding: 10px 14px;
    border: 0;
    border-bottom: 1px solid var(--wb-border);
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--wb-text);
    font-size: 14px;
}

.wb-body .service-admin-module .list-group-item:last-child {
    border-bottom: 0;
}

.wb-body .service-admin-module .list-group-item:hover {
    background: var(--wb-surface-2) !important;
}

/* Yetki / oda kutuları: JS'in ürettiği beyaz kapsayıcılar */
.wb-body .service-admin-module .service-tab-content .row > [class*="col-"] > div:not(.btn-group):not(.form-group):not([class]),
.wb-body .service-admin-module [id$="-list"],
.wb-body .service-admin-module #table-channels,
.wb-body .service-admin-module #group-list,
.wb-body .service-admin-module #token-list,
.wb-body .service-admin-module #client-list {
    background: transparent;
}

/* ---------- Sunucu görüntüsü ---------- */

.wb-body .service-admin-module #sunucu-goruntusu {
    color: var(--wb-text);
}

.wb-body .service-admin-module #sunucu-goruntusu img {
    filter: none;
}

/* ---------- Modallar ---------- */

.wb-body .modal-header {
    background: transparent !important;
    color: var(--wb-text);
}

.wb-body .modal-title {
    color: var(--wb-text) !important;
    font-size: 17px;
}

.wb-body .modal-body .text-danger {
    color: var(--wb-danger) !important;
}

.wb-body .deamspeak-backdrop.show,
.wb-body .modal-backdrop.show {
    background: var(--wb-overlay);
    opacity: 1;
}

.wb-body #group-client-list {
    padding-left: 18px;
    color: var(--wb-text);
}

/* ---------- Bildirim (sağ üst toast) ---------- */

.wb-body .service-notification {
    border: 1px solid var(--wb-border) !important;
    border-radius: var(--wb-radius-sm) !important;
    background: var(--wb-surface) !important;
    color: var(--wb-text) !important;
    box-shadow: var(--wb-shadow-lg) !important;
}

/* ---------- Bot modülleri (tailwind benzeri sınıflar) ---------- */

.wb-body .service-admin-module .border-b {
    border-bottom: 1px solid var(--wb-border) !important;
}

.wb-body .service-admin-module .w-full {
    width: 100%;
}

.wb-body .service-admin-module .service-details hr {
    border-color: var(--wb-border);
}

/* ---------- Mobil ---------- */

@media (max-width: 768px) {
    .wb-body .service-admin-module .service-sidebar {
        width: 100%;
        border-right: 0;
        border-bottom: 1px solid var(--wb-border);
    }

    .wb-body .service-admin-module .service-nav {
        gap: 4px;
        padding: 8px;
    }

    .wb-body .service-admin-module .service-nav-item {
        flex-direction: row;
        flex-shrink: 0;
        margin: 0;
        white-space: nowrap;
    }

    .wb-body .service-admin-module .service-nav-item.active {
        box-shadow: inset 0 -2px 0 var(--wb-accent);
    }

    .wb-body .service-admin-module .service-content {
        padding: 16px;
    }
}

/* ---------- Satır içi butonlar: amber yalnızca asıl eylemde ---------- */

/* "Yenile" (araç çubuğundaki ilk buton) ve tablo/liste satır butonları sade */
.wb-body .service-admin-module .btn-group-sm > h3 + .btn,
.wb-body .service-admin-module .table .btn-primary,
.wb-body .service-admin-module #server-channels .btn-primary,
.wb-body .service-admin-module #server-groups .btn-primary,
.wb-body .service-admin-module #server-clients .btn-primary,
.wb-body .service-admin-module #server-tokens .btn-primary,
.wb-body .service-admin-module #tsdns-list .btn-primary {
    border: 1px solid var(--wb-border) !important;
    background: transparent !important;
    color: var(--wb-text) !important;
}

.wb-body .service-admin-module .btn-group-sm > h3 + .btn:hover,
.wb-body .service-admin-module .table .btn-primary:hover,
.wb-body .service-admin-module #server-channels .btn-primary:hover,
.wb-body .service-admin-module #server-groups .btn-primary:hover,
.wb-body .service-admin-module #server-clients .btn-primary:hover,
.wb-body .service-admin-module #server-tokens .btn-primary:hover,
.wb-body .service-admin-module #tsdns-list .btn-primary:hover {
    border-color: var(--wb-text-subtle) !important;
    background: var(--wb-surface-2) !important;
}

.wb-body .service-admin-module .btn-group-sm > h3 + .btn .fa,
.wb-body .service-admin-module .table .btn-primary .fa,
.wb-body .service-admin-module .table .btn-primary .fas {
    color: var(--wb-text-subtle);
}

.wb-body .service-admin-module .btn-group-sm > .btn {
    margin-bottom: 4px;
}
