/* ── Reset & Base ─────────────────────────────────────────────────────────── */
* { margin: 0; padding: 0; box-sizing: border-box; }

:root {
    /* Palette ported from upload-portal/style.css */
    --bg: #1a1a1a;
    --card: #2a2a2a;
    --header: #1e1e1e;
    --surface: #252525;
    --text: #e0e0e0;
    --text-dim: #aaa;
    --text-faint: #888;
    --accent: #FFD700;
    --accent-hover: #FFC700;
    --accent-fg: #1a1a1a;
    --red: #f44336;
    --green: #4CAF50;
    --warning: #ff9800;
    --warning-soft: #ffcc80;
    --border: #333;
    --border-strong: #444;
}

body {
    background: var(--bg);
    color: var(--text);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    padding: 15px;
    display: flex;
    justify-content: center;
}

/* The "KING" wordmark — same Times New Roman treatment as the sister site. */
.king {
    font-family: 'Times New Roman', Times, serif;
}

/* ── Layout shell ─────────────────────────────────────────────────────────── */
.container { width: 100%; max-width: 900px; }
.container-wide { max-width: 1050px; }
.container-narrow { max-width: 700px; }

.card {
    background: var(--card);
    padding: 25px;
    border-radius: 12px;
    border: 1px solid var(--border);
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}

/* ── Header / topbar ──────────────────────────────────────────────────────── */
.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    gap: 10px;
    flex-wrap: wrap;
    border-bottom: 2px solid var(--accent);
}
.topbar h2 { margin: 0; }

.whoami {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #aaa;
    font-size: 13px;
}
.whoami img { width: 28px; height: 28px; border-radius: 5px; }

.logout-btn {
    color: #ccc;
    text-decoration: none;
    border: 1px solid var(--border-strong);
    background: var(--surface);
    padding: 6px 14px;
    border-radius: 5px;
    font-size: 12px;
    transition: 0.2s;
}
.logout-btn:hover { color: #fff; border-color: var(--accent); background: #2f2f2f; }

a.back {
    color: #888;
    text-decoration: none;
    font-size: 13px;
}
a.back:hover { color: var(--accent); }

.nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-bottom: 8px;
}

/* ── Tables ───────────────────────────────────────────────────────────────── */
table { width: 100%; border-collapse: collapse; }
th {
    text-align: left;
    color: #777;
    padding: 12px;
    border-bottom: 2px solid var(--border);
    font-size: 13px;
    text-transform: uppercase;
}
td {
    padding: 15px 12px;
    border-bottom: 1px solid #222;
    vertical-align: middle;
}

/* ── Forms / inputs ───────────────────────────────────────────────────────── */
input, select, textarea {
    flex: 1;
    min-width: 0;
    padding: 12px;
    background: #222;
    border: 1px solid var(--border);
    color: #fff;
    border-radius: 6px;
    outline: none;
    box-sizing: border-box;
}
input:focus, select:focus, textarea:focus { border-color: var(--accent); }

.filter-input {
    width: 100%;
    margin-bottom: 15px;
    background: transparent;
    border: none;
    border-bottom: 2px solid var(--accent);
    padding: 10px;
    color: white;
    font-size: 14px;
}

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.btn-ban {
    background: var(--red);
    border: none;
    padding: 12px 24px;
    color: white;
    border-radius: 6px;
    font-weight: bold;
    cursor: pointer;
}
.btn-query {
    background: var(--accent);
    border: none;
    padding: 12px 24px;
    color: var(--accent-fg);
    border-radius: 6px;
    font-weight: bold;
    cursor: pointer;
}
.btn-ban:hover { background: #d32f2f; }
.btn-query:hover { background: var(--accent-hover); }

.search-box {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.reason-input { flex: 1; }

.unban-btn {
    background: var(--surface);
    border: 1px solid var(--border-strong);
    color: var(--text-dim);
    padding: 7px 14px;
    border-radius: 5px;
    cursor: pointer;
    transition: 0.2s;
}
.unban-btn:hover {
    background: var(--red);
    color: white;
    border-color: var(--red);
}

.ctrl-btn {
    border: 1px solid var(--border);
    background: var(--surface);
    color: #ccc;
    padding: 6px 12px;
    border-radius: 5px;
    font-size: 12px;
    cursor: pointer;
}
.ctrl-btn.start:hover { background: var(--green); color: #063; border-color: var(--green); }
.ctrl-btn.stop:hover, .ctrl-btn.restart:hover { background: var(--red); color: #fff; border-color: var(--red); }

/* ── Flash / status messages ──────────────────────────────────────────────── */
.flash-msg {
    padding: 10px;
    border-radius: 5px;
    margin: 15px 0;
    border-left: 5px solid;
}
.flash-error { background: rgba(244,67,54,0.1); color: var(--red); border-color: var(--red); }
.flash-ok    { background: rgba(76,175,80,0.1); color: var(--green); border-color: var(--green); }

/* ── Log action badges ────────────────────────────────────────────────────── */
.log-action {
    font-weight: bold;
    font-size: 11px;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 4px;
}
.log-ban        { background: rgba(244,67,54,0.15); color: var(--red); }
.log-unban      { background: rgba(76,175,80,0.12); color: var(--green); }
.log-blocked    { background: rgba(255,170,0,0.15); color: #ffaa00; }
.log-ban-ip     { background: rgba(255,215,0,0.15); color: var(--accent); }
.log-auto-ban   { background: rgba(180,120,255,0.15); color: #c08bff; }
.log-start      { background: rgba(76,175,80,0.12); color: var(--green); }
.log-stop       { background: rgba(244,67,54,0.15); color: var(--red); }
.log-restart    { background: rgba(255,170,0,0.15); color: #ffaa00; }
.log-send       { background: rgba(255,215,0,0.15); color: var(--accent); }
.log-plugin-enable,
.log-plugin-add  { background: rgba(76,175,80,0.12); color: var(--green); }
.log-plugin-disable      { background: rgba(255,170,0,0.15); color: #ffaa00; }
.log-plugin-remove       { background: rgba(244,67,54,0.15); color: var(--red); }
.log-plugin-restore      { background: rgba(255,215,0,0.15); color: var(--accent); }
.log-plugin-move         { background: rgba(180,140,255,0.15); color: #c4a8ff; }
.log-plugin-reload       { background: rgba(255,215,0,0.15); color: var(--accent); }

/* ── Players / avatars ────────────────────────────────────────────────────── */
.avatar {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    border: 1px solid #444;
    background: #333;
    flex-shrink: 0;
}
.player-info { min-width: 0; flex: 1; }
.player-name {
    font-weight: bold;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sid-label {
    font-size: 11px;
    color: #666;
    font-family: monospace;
}

/* ── Common helpers ───────────────────────────────────────────────────────── */
.flag {
    height: 14px;
    margin-right: 6px;
    vertical-align: middle;
}
.flag-link { display: inline-block; line-height: 0; margin-right: 6px; }
.flag-link:hover .flag { outline: 1px solid var(--accent); }

.stats-link {
    display: inline-block;
    margin-top: 8px;
    padding: 7px 14px;
    font-size: 12px;
    font-weight: bold;
    color: var(--accent);
    text-decoration: none;
    background: #202a38;
    border: 1px solid var(--accent);
    border-radius: 5px;
    transition: 0.2s;
}
.stats-link:hover { background: var(--accent); color: var(--accent-fg); }

.empty {
    color: #555;
    text-align: center;
    padding: 25px;
}

details.logbox { margin-top: 25px; }
details.logbox > summary {
    cursor: pointer;
    color: #999;
    font-size: 14px;
    padding: 8px 0;
}

.auto-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: bold;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 4px;
    margin-left: 6px;
    background: rgba(180,120,255,0.18);
    color: #c08bff;
    border: 1px solid rgba(180,120,255,0.4);
    vertical-align: middle;
}

.ddos-reason {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    color: #c08bff;
}
.ddos-reason .label {
    color: #888;
    font-weight: bold;
    text-transform: uppercase;
    margin-right: 4px;
}

.whitelist-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    font-size: 11px;
    color: #888;
    cursor: pointer;
    user-select: none;
}
.whitelist-toggle input {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    padding: 0;
    accent-color: #c08bff;
}
.whitelist-toggle:hover { color: #ccc; }

/* ── Status dots ──────────────────────────────────────────────────────────── */
.status-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 8px;
    vertical-align: middle;
}
.status-on  { background: var(--green); box-shadow: 0 0 6px var(--green); }
.status-off { background: var(--red); }

/* ── Login-specific ───────────────────────────────────────────────────────── */
.login-card {
    background: var(--card);
    padding: 40px;
    border-radius: 12px;
    border: 1px solid var(--border);
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    text-align: center;
    max-width: 360px;
    width: 100%;
}
.steam-btn {
    display: inline-block;
    margin-top: 10px;
    padding: 14px 28px;
    background: #171a21;
    color: #fff;
    border: 1px solid #66c0f4;
    border-radius: 6px;
    text-decoration: none;
    font-weight: bold;
}
.steam-btn:hover { background: #66c0f4; color: #171a21; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    body { padding: 8px; }
    .card { padding: 16px; }
    .topbar h2 { font-size: 20px; }
    .search-box { gap: 8px; }
    .search-box input,
    .search-box button { flex: 1 1 100%; width: 100%; }

    /* turn each table row into a self-contained card */
    thead { display: none; }
    tr {
        display: block;
        border: 1px solid var(--border);
        margin-bottom: 15px;
        border-radius: 10px;
        padding: 10px;
    }
    td {
        display: block;
        border: none;
        padding: 6px 4px;
        text-align: left !important;
    }
    td[data-label]::before {
        content: attr(data-label);
        display: block;
        color: #555;
        font-size: 11px;
        font-weight: bold;
        text-transform: uppercase;
        margin-bottom: 5px;
    }
    td.empty { text-align: center !important; }
    td.empty::before { content: none; }
    .stats-link { margin: 8px 8px 0 0; }
}
