/* ========== ADMIN LAYOUT ========== */
.admin-layout {
    display: flex; min-height: 100vh;
    position: relative; z-index: 1;
}

/* ========== SIDEBAR ========== */
.sidebar {
    width: 260px; min-width: 260px;
    background: var(--gray-900);
    border-right: 1px solid var(--white-05);
    display: flex; flex-direction: column;
    position: fixed; top: 0; left: 0; bottom: 0;
    z-index: 100;
    transition: transform .35s cubic-bezier(.4,0,.2,1);
}

.sidebar-header {
    padding: 1.2rem 1.5rem;
    border-bottom: 1px solid var(--white-05);
    display: flex; align-items: center; justify-content: space-between;
}
.admin-badge {
    font-size: .65rem; font-weight: 700;
    padding: .2rem .6rem; border-radius: 6px;
    background: rgba(239,68,68,.15); color: #ef4444;
    letter-spacing: 1.5px; text-transform: uppercase;
    border: 1px solid rgba(239,68,68,.3);
}

.sidebar-nav {
    flex: 1; overflow-y: auto; padding: .8rem 0;
}
.nav-section-title {
    font-size: .68rem; font-weight: 600;
    color: var(--gray-400); text-transform: uppercase;
    letter-spacing: 1.5px; padding: 1rem 1.5rem .4rem;
}
.sidebar-link {
    display: flex; align-items: center; gap: .7rem;
    padding: .6rem 1.5rem; margin: 1px .5rem;
    border-radius: 8px; font-size: .88rem; font-weight: 500;
    color: var(--gray-200); transition: var(--transition);
    text-decoration: none;
}
.sidebar-link i { font-size: .85rem; width: 20px; text-align: center; }
.sidebar-link:hover {
    background: var(--white-05); color: var(--white);
}
.sidebar-link.active {
    background: var(--white-10); color: var(--white);
    box-shadow: inset 3px 0 0 var(--white);
}

.sidebar-footer {
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--white-05);
}

/* ========== ADMIN TOPBAR (mobile) ========== */
.admin-topbar {
    display: none;
    position: fixed; top: 0; left: 0; right: 0;
    height: 60px; z-index: 99;
    background: rgba(0,0,0,.85);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--white-05);
    align-items: center; justify-content: space-between;
    padding: 0 1rem;
}
.admin-topbar-title {
    font-size: .95rem; font-weight: 600; color: var(--white);
}
.sidebar-toggle {
    background: var(--white-05); border: 1px solid var(--white-05);
    color: var(--white); width: 36px; height: 36px;
    border-radius: 8px; cursor: pointer; font-size: 1rem;
    display: flex; align-items: center; justify-content: center;
    transition: var(--transition);
}
.sidebar-toggle:hover { background: var(--white-10); }

/* ========== MAIN CONTENT ========== */
.admin-main {
    flex: 1; margin-left: 260px;
    padding: 2rem 2.5rem; min-height: 100vh;
}

/* ========== PANELS ========== */
.panel { display: none; animation: fadeUp .4s ease-out both; }
.panel.active { display: block; }

.panel-header {
    margin-bottom: 2rem;
}
.panel-header h2 {
    font-size: 1.6rem; font-weight: 700; color: var(--white);
    display: flex; align-items: center; gap: .6rem;
}
.panel-header h2 i { font-size: 1.3rem; color: var(--gray-200); }
.panel-header p { font-size: .88rem; color: var(--gray-300); margin-top: .3rem; }

.panel-section {
    margin-top: 2rem;
}
.panel-section h3 {
    font-size: 1.1rem; font-weight: 600; color: var(--white);
    margin-bottom: 1rem; display: flex; align-items: center; gap: .5rem;
}
.panel-section h3 i { color: var(--gray-300); font-size: .95rem; }

/* ========== STAT CARDS ========== */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
}
.stat-card {
    background: var(--gray-850);
    border: 1px solid var(--white-05);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    display: flex; align-items: center; gap: 1rem;
    transition: var(--transition);
}
.stat-card:hover {
    border-color: var(--white-10);
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(0,0,0,.4);
}
.stat-card-icon {
    width: 48px; height: 48px; border-radius: 12px;
    background: var(--white-05); color: var(--white);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.2rem;
}
.stat-card-icon.online { color: var(--success); }
.stat-card-icon.offline { color: var(--danger); }
.stat-card-value {
    font-size: 1.6rem; font-weight: 800;
    font-family: var(--mono); color: var(--white);
    display: block;
}
.stat-card-label {
    font-size: .75rem; color: var(--gray-300);
    text-transform: uppercase; letter-spacing: 1px;
}

/* ========== SEARCH BOX ========== */
.search-box {
    display: flex; gap: .8rem; align-items: flex-end;
    flex-wrap: wrap; margin-bottom: 1.5rem;
}
.search-box .input-group { flex: 1; min-width: 200px; }
.search-results { min-height: 50px; }

/* ========== USERS TABLE ========== */
.users-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap;
}
.user-count {
    font-size: .85rem; color: var(--gray-300); font-weight: 500;
}

.users-table-wrap {
    overflow-x: auto; border-radius: var(--radius);
    border: 1px solid var(--white-05);
}
.users-table {
    width: 100%; border-collapse: collapse;
    font-size: .88rem;
}
.users-table thead { background: var(--gray-800); }
.users-table th {
    padding: .8rem 1rem; text-align: left;
    font-weight: 600; color: var(--gray-200);
    font-size: .75rem; text-transform: uppercase;
    letter-spacing: 1px; border-bottom: 1px solid var(--white-05);
}
.users-table td {
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--white-03);
    color: var(--gray-100);
}
.users-table tbody tr { transition: var(--transition); }
.users-table tbody tr:hover { background: var(--white-03); }
.users-table tbody tr:last-child td { border-bottom: none; }

.user-status {
    display: inline-flex; align-items: center; gap: .35rem;
    font-size: .78rem; font-weight: 500;
}
.user-status .dot {
    width: 6px; height: 6px; border-radius: 50%;
}
.user-status.active .dot { background: var(--success); box-shadow: 0 0 6px var(--success); }
.user-status.banned .dot { background: var(--danger); box-shadow: 0 0 6px var(--danger); }

.action-btn {
    background: var(--white-05); border: 1px solid var(--white-05);
    color: var(--gray-200); padding: .35rem .6rem;
    border-radius: 6px; cursor: pointer; font-size: .78rem;
    transition: var(--transition); margin-right: .3rem;
}
.action-btn:hover { background: var(--white-10); color: var(--white); }
.action-btn.danger:hover { background: rgba(239,68,68,.2); color: #ef4444; border-color: rgba(239,68,68,.3); }

/* ========== CREDITS CELL ========== */
.credits-cell {
    display: flex; align-items: center; gap: .6rem;
}
.credits-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 32px; padding: .2rem .5rem;
    border-radius: 6px; font-size: .82rem; font-weight: 700;
    font-family: var(--mono);
    background: rgba(234,179,8,.1); color: #eab308;
    border: 1px solid rgba(234,179,8,.25);
}
.credits-badge.empty {
    background: rgba(239,68,68,.1); color: #ef4444;
    border-color: rgba(239,68,68,.25);
}
.credits-actions {
    display: flex; align-items: center; gap: .3rem;
}
.credits-input {
    width: 52px; padding: .25rem .4rem;
    background: var(--gray-800); border: 1px solid var(--white-05);
    border-radius: 6px; color: var(--white);
    font-size: .78rem; font-family: var(--mono);
    text-align: center; outline: none;
    transition: var(--transition);
}
.credits-input:focus {
    border-color: var(--white-20);
    box-shadow: 0 0 0 2px var(--white-05);
}
.credits-input::-webkit-inner-spin-button { opacity: 0; }

/* ========== LOGS ========== */
.logs-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; margin-bottom: 1.2rem; flex-wrap: wrap;
}
.logs-filters { display: flex; gap: .4rem; }
.filter-btn {
    background: var(--white-05); border: 1px solid var(--white-05);
    color: var(--gray-200); padding: .4rem .9rem;
    border-radius: 8px; cursor: pointer; font-size: .8rem;
    font-weight: 500; transition: var(--transition);
    font-family: var(--font);
}
.filter-btn:hover { background: var(--white-10); color: var(--white); }
.filter-btn.active {
    background: var(--white); color: var(--black);
    border-color: var(--white);
}

.logs-list { display: flex; flex-direction: column; gap: .4rem; }
.full-logs { max-height: 65vh; overflow-y: auto; }

.log-entry {
    display: flex; align-items: flex-start; gap: .8rem;
    padding: .7rem 1rem; border-radius: var(--radius);
    background: var(--gray-850); border: 1px solid var(--white-03);
    font-size: .84rem; transition: var(--transition);
}
.log-entry:hover { border-color: var(--white-05); background: var(--gray-800); }
.log-time {
    font-family: var(--mono); font-size: .75rem;
    color: var(--gray-400); white-space: nowrap; min-width: 140px;
}
.log-type {
    font-size: .68rem; font-weight: 600;
    padding: .15rem .5rem; border-radius: 4px;
    text-transform: uppercase; letter-spacing: .5px;
    white-space: nowrap;
}
.log-type.auth { background: rgba(59,130,246,.15); color: #60a5fa; }
.log-type.search { background: rgba(34,197,94,.15); color: #4ade80; }
.log-type.admin { background: rgba(239,68,68,.15); color: #f87171; }
.log-type.system { background: var(--white-05); color: var(--gray-200); }
.log-msg { color: var(--gray-100); flex: 1; }

/* ========== SETTINGS ========== */
.settings-section { margin-bottom: 1.5rem; }

.setting-card {
    background: var(--gray-850);
    border: 1px solid var(--white-05);
    border-radius: var(--radius-lg);
    padding: 1.3rem 1.5rem;
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; transition: var(--transition);
}
.setting-card:hover { border-color: var(--white-10); }
.setting-card.danger-zone { border-color: rgba(239,68,68,.2); }
.setting-card.danger-zone:hover { border-color: rgba(239,68,68,.4); }

.setting-info {
    display: flex; align-items: center; gap: 1rem;
}
.setting-icon {
    width: 44px; height: 44px; border-radius: 12px;
    background: var(--white-05); color: var(--white);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; flex-shrink: 0;
}
.setting-info h3 { font-size: 1rem; font-weight: 600; color: var(--white); margin-bottom: .2rem; }
.setting-info p { font-size: .8rem; color: var(--gray-300); }

.setting-form {
    display: flex; gap: .8rem; margin-top: .8rem; align-items: flex-end; flex-wrap: wrap;
}
.setting-form .input-group { flex: 1; min-width: 180px; }

/* Toggle switch */
.toggle-switch {
    position: relative; width: 50px; height: 28px;
    flex-shrink: 0;
}
.toggle-switch input { opacity: 0; width: 0; height: 0; }
.toggle-slider {
    position: absolute; inset: 0; cursor: pointer;
    background: var(--gray-600); border-radius: 28px;
    transition: var(--transition);
}
.toggle-slider::before {
    content: ''; position: absolute;
    width: 22px; height: 22px; border-radius: 50%;
    left: 3px; bottom: 3px;
    background: var(--white);
    transition: var(--transition);
    box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.toggle-switch input:checked + .toggle-slider {
    background: var(--danger);
}
.toggle-switch input:checked + .toggle-slider::before {
    transform: translateX(22px);
}

/* Danger button */
.btn-danger {
    background: rgba(239,68,68,.15); color: #ef4444;
    border: 1px solid rgba(239,68,68,.3);
}
.btn-danger:hover {
    background: rgba(239,68,68,.25);
    box-shadow: 0 4px 20px rgba(239,68,68,.2);
    transform: translateY(-2px);
}

/* ========== RESPONSIVE ========== */
@media (max-width: 900px) {
    .sidebar {
        transform: translateX(-100%);
    }
    .sidebar.open { transform: translateX(0); }

    .admin-topbar { display: flex; }
    .admin-main {
        margin-left: 0;
        padding: 5rem 1.2rem 2rem;
    }

    .stats-grid { grid-template-columns: 1fr 1fr; }
    .search-box { flex-direction: column; }
    .search-box .input-group { min-width: 100%; }

    .users-toolbar { flex-direction: column; align-items: flex-start; }
    .logs-toolbar { flex-direction: column; align-items: flex-start; }
}

/* ========== CRITERIA SYSTEM ========== */
.criteria-section {
    background: var(--gray-850); border:1px solid var(--white-05);
    border-radius: var(--radius-lg); padding: 1.2rem; overflow:hidden;
}
.criteria-header {
    display:flex; align-items:center; gap:.8rem; margin-bottom:1rem;
}
.criteria-icon {
    width:40px; height:40px; min-width:40px; border-radius:12px;
    background:rgba(56,189,248,.1); display:flex; align-items:center; justify-content:center;
    color:#38bdf8; font-size:1rem;
}
.criteria-header strong { display:block; font-size:.9rem; color:var(--white); }
.criteria-header span { font-size:.75rem; color:var(--gray-400); }
.criteria-grid {
    display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center;
}
.criteria-btn {
    display:flex; align-items:center; gap:.5rem;
    padding:.6rem .8rem; border-radius:10px; cursor:pointer;
    background:var(--gray-800); border:1px solid var(--white-05);
    color:var(--gray-200); font-size:.8rem; font-family:var(--font); font-weight:500;
    transition:var(--transition); text-align:left;
}
.criteria-btn i { color:var(--cr-color, var(--gray-400)); font-size:.78rem; width:16px; text-align:center; }
.criteria-btn:hover {
    background:var(--gray-700); border-color:var(--cr-color, var(--white-20));
    color:var(--white); transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.criteria-more {
    grid-column:1/-1; display:flex; align-items:center; justify-content:space-between;
    padding:.5rem .8rem; border:1.5px dashed var(--white-10); border-radius:10px;
    color:var(--gray-500); font-size:.78rem; margin-top:.2rem;
}
.criteria-more i { font-size:.7rem; }

#adminIdActiveFields { display:flex; flex-direction:column; gap:.5rem; }
.criteria-field {
    display:flex; align-items:center; gap:.6rem;
    background:var(--gray-800); border:1px solid rgba(255,255,255,.08);
    border-left:3px solid var(--cr-color, var(--white-20));
    border-radius:10px; padding:.1rem .6rem .1rem .1rem;
    animation:criteriaIn .25s ease-out;
}
@keyframes criteriaIn { from { opacity:0; transform:translateY(-8px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
.criteria-field-icon {
    width:36px; height:36px; min-width:36px; border-radius:8px;
    background:var(--gray-700); display:flex; align-items:center; justify-content:center;
    color:var(--cr-color, var(--gray-300)); font-size:.8rem;
}
.criteria-input {
    flex:1; background:none; border:none; outline:none;
    color:var(--white); font-size:.88rem; font-family:var(--font);
    padding:.6rem .3rem; min-width:0;
}
.criteria-input::placeholder { color:var(--gray-500); }
.criteria-field-remove {
    background:none; border:none; color:var(--gray-500); cursor:pointer;
    font-size:.72rem; padding:.3rem; border-radius:6px; transition:var(--transition);
    display:flex; align-items:center; justify-content:center;
    width:24px; height:24px;
}
.criteria-field-remove:hover { color:var(--danger); background:rgba(239,68,68,.1); }
@media(max-width:600px){ .criteria-grid { grid-template-columns:1fr; } }

/* B2BZ Summary */
.b2bz-summary {
    background: linear-gradient(135deg, rgba(255,255,255,.03), rgba(255,255,255,.06));
    border:1px solid var(--white-10); border-radius:var(--radius-lg);
    padding:1.2rem 1.5rem; margin-bottom:1rem;
}
.b2bz-summary-row { display:flex; align-items:center; gap:.5rem; font-size:.88rem; color:var(--white-70); margin-bottom:.3rem; }
.b2bz-summary-row strong { color:var(--white); }
.b2bz-summary-row i { width:18px; text-align:center; color:var(--gray-300); }
.b2bz-credits { font-size:.78rem; color:var(--gray-300); }
.b2bz-summary-hint { font-size:.78rem; color:var(--gray-400); margin-top:.5rem; font-style:italic; }

/* B2BZ Profile Cards */
.b2bz-profiles { display:flex; flex-direction:column; gap:.6rem; }
.b2bz-card {
    display:flex; align-items:center; gap:1rem;
    padding:1rem 1.2rem; cursor:pointer;
    background:var(--gray-850); border:1px solid var(--white-05);
    border-radius:var(--radius); transition:var(--transition);
}
.b2bz-card:hover { border-color:var(--white-20); background:var(--gray-700); transform:translateX(4px); box-shadow:0 4px 20px rgba(0,0,0,.4); }
.b2bz-card-num {
    width:36px; height:36px; min-width:36px; border-radius:50%;
    background:var(--white-10); display:flex; align-items:center; justify-content:center;
    font-size:.85rem; font-weight:700; color:var(--white);
}
.b2bz-card:hover .b2bz-card-num { background:var(--white-20); }
.b2bz-card-body { flex:1; min-width:0; }
.b2bz-card-top { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-bottom:.25rem; }
.b2bz-card-name { font-size:.92rem; font-weight:600; color:var(--white); }
.b2bz-card-score { font-size:.72rem; color:var(--gray-300); background:var(--white-05); padding:.15rem .5rem; border-radius:4px; }
.b2bz-card-src { font-size:.72rem; color:var(--gray-400); display:inline-flex; align-items:center; gap:.3rem; }
.b2bz-card-tags { display:flex; flex-wrap:wrap; gap:.4rem; }
.b2bz-card-tags span { font-size:.72rem; color:var(--gray-300); display:inline-flex; align-items:center; gap:.25rem; }
.b2bz-card-tags span i { font-size:.65rem; color:var(--gray-400); }
.b2bz-card-arrow { color:var(--gray-400); font-size:.85rem; transition:var(--transition); }
.b2bz-card:hover .b2bz-card-arrow { color:var(--white); transform:translateX(4px); }

/* B2BZ Back */
.b2bz-back {
    display:inline-flex; align-items:center; gap:.5rem;
    background:var(--white-05); border:1px solid var(--white-10);
    color:var(--gray-200); padding:.5rem 1rem; border-radius:8px;
    cursor:pointer; font-size:.82rem; font-family:var(--font); font-weight:500;
    transition:var(--transition); margin-bottom:1rem;
}
.b2bz-back:hover { background:var(--white-10); color:var(--white); transform:translateX(-3px); }

/* B2BZ Detail Header */
.b2bz-detail-header {
    display:flex; align-items:center; gap:1rem;
    background:var(--gray-850); border:1px solid var(--white-10);
    border-radius:var(--radius-lg); padding:1rem 1.2rem; margin-bottom:.8rem;
}
.b2bz-detail-info { flex:1; }
.b2bz-detail-name { font-size:1rem; font-weight:700; color:var(--white); }
.b2bz-detail-meta { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:.2rem; }
.b2bz-detail-meta span { font-size:.75rem; color:var(--gray-300); display:inline-flex; align-items:center; gap:.3rem; }
.b2bz-btn-copy {
    background:var(--white-05); border:1px solid var(--white-10);
    color:var(--gray-200); padding:.4rem .8rem; border-radius:6px;
    cursor:pointer; font-size:.78rem; font-family:var(--font);
    display:flex; align-items:center; gap:.3rem; transition:var(--transition); white-space:nowrap;
}
.b2bz-btn-copy:hover { background:var(--white-10); color:var(--white); }
.b2bz-btn-copy.copied { background:rgba(34,197,94,.15); color:#22c55e; border-color:rgba(34,197,94,.3); }

/* B2BZ Fields */
.b2bz-fields { display:flex; flex-direction:column; gap:2px; }
.b2bz-field {
    display:flex; align-items:center; gap:.8rem;
    padding:.7rem 1rem; background:var(--gray-850);
    border:1px solid var(--white-03); border-radius:10px;
    transition:var(--transition);
}
.b2bz-field:hover { background:var(--gray-800); border-color:var(--white-10); }
.b2bz-field-icon {
    width:36px; height:36px; min-width:36px; border-radius:10px;
    background:var(--white-05); display:flex; align-items:center; justify-content:center;
    color:var(--gray-300); font-size:.82rem; transition:var(--transition);
}
.b2bz-field:hover .b2bz-field-icon { background:var(--white-10); color:var(--white); }
.b2bz-field-body { flex:1; min-width:0; }
.b2bz-field-label { font-size:.72rem; color:var(--gray-400); text-transform:uppercase; letter-spacing:.5px; font-weight:500; }
.b2bz-field-value { font-size:.88rem; color:var(--white); word-break:break-word; margin-top:.1rem; }
.b2bz-field-copy {
    background:none; border:none; color:var(--gray-500); cursor:pointer;
    font-size:.72rem; padding:.3rem; border-radius:4px; transition:var(--transition);
    opacity:0; flex-shrink:0;
}
.b2bz-field:hover .b2bz-field-copy { opacity:1; }
.b2bz-field-copy:hover { color:var(--white); background:var(--white-05); }
.b2bz-field-copy.copied { color:#22c55e; opacity:1; }

/* B2BZ Parent */
.b2bz-field-parent { border-color:rgba(139,92,246,.15); }
.b2bz-field-parent .b2bz-field-icon { background:rgba(139,92,246,.1); color:#a78bfa; }
.b2bz-field-parent:hover .b2bz-field-icon { background:rgba(139,92,246,.2); }
.b2bz-btn-parent {
    background:rgba(139,92,246,.1); border:1px solid rgba(139,92,246,.3);
    color:#a78bfa; padding:.35rem .7rem; border-radius:6px;
    cursor:pointer; font-size:.75rem; font-family:var(--font); font-weight:500;
    display:flex; align-items:center; gap:.3rem; transition:var(--transition);
    white-space:nowrap; flex-shrink:0;
}
.b2bz-btn-parent:hover { background:rgba(139,92,246,.2); color:#c4b5fd; }
.b2bz-parent-details{background:var(--gray-800);border:1px solid rgba(139,92,246,.12);border-radius:8px;padding:.5rem;display:flex;flex-direction:column;gap:2px;margin-left:.5rem}
.b2bz-parent-field{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border-radius:6px;font-size:.8rem;transition:var(--transition)}
.b2bz-parent-field:hover{background:var(--gray-700)}
.b2bz-parent-field i{font-size:.7rem;color:var(--gray-400);width:14px;text-align:center;flex-shrink:0}
.b2bz-parent-label{color:var(--gray-400);font-size:.72rem;min-width:80px;flex-shrink:0}
.b2bz-parent-value{flex:1;color:var(--white);word-break:break-word}
.b2bz-parent-field .b2bz-field-copy{opacity:0;font-size:.68rem}
.b2bz-parent-field:hover .b2bz-field-copy{opacity:1}

@media (max-width: 500px) {
    .stats-grid { grid-template-columns: 1fr; }
    .log-entry { flex-direction: column; gap: .3rem; }
    .log-time { min-width: auto; }
}
