*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg-dark:    #0d1117;
  --bg-card:    #161b22;
  --bg-input:   #21262d;
  --border:     #30363d;
  --accent:     #e63946;
  --text:       #e6edf3;
  --text-muted: #8b949e;
  --success:    #3fb950;
  --warn:       #d29922;
  --info:       #388bfd;
}

body { font-family:'Segoe UI',system-ui,sans-serif; background:var(--bg-dark); color:var(--text); height:100vh; overflow:hidden; }

.admin-wrapper { display:flex; height:100vh; }

/* SIDEBAR */
.admin-sidebar { width:230px; background:var(--bg-card); border-right:1px solid var(--border); display:flex; flex-direction:column; flex-shrink:0; }
.admin-logo { display:flex; align-items:center; gap:12px; padding:20px 16px; border-bottom:1px solid var(--border); font-size:18px; }
.admin-logo span { font-size:28px; }
.admin-logo div  { font-weight:700; font-size:14px; line-height:1.3; }
.admin-logo small { color:var(--accent); font-size:11px; }
.admin-nav { flex:1; padding:12px 8px; display:flex; flex-direction:column; gap:4px; overflow-y:auto; }
.admin-nav-btn { background:transparent; border:none; color:var(--text-muted); padding:10px 12px; border-radius:8px; text-align:left; font-size:13px; cursor:pointer; transition:all 0.2s; font-weight:500; }
.admin-nav-btn:hover { background:var(--bg-input); color:var(--text); }
.admin-nav-btn.active { background:rgba(230,57,70,0.1); color:var(--accent); border-left:2px solid var(--accent); }
.admin-nav-btn:disabled { opacity:0.3; cursor:not-allowed; }
.admin-sidebar-footer { padding:16px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:8px; }
.admin-back-btn { color:var(--text-muted); text-decoration:none; font-size:13px; transition:color 0.2s; }
.admin-back-btn:hover { color:var(--accent); }

/* MAIN */
.admin-main { flex:1; overflow-y:auto; padding:28px; }
.admin-banner { padding:12px 20px; border-radius:10px; margin-bottom:20px; font-size:14px; font-weight:600; }
.admin-section { display:none; }
.admin-section.active { display:block; }
.admin-section h1 { font-size:24px; font-weight:700; margin-bottom:20px; padding-bottom:12px; border-bottom:1px solid var(--border); }

/* STATS */
.stats-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; margin-bottom:24px; }
.stat-card { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; padding:20px 16px; text-align:center; transition:border-color 0.2s; }
.stat-card:hover { border-color:var(--accent); }
.stat-card-icon  { font-size:28px; margin-bottom:8px; }
.stat-card-value { font-size:26px; font-weight:700; }
.stat-card-label { font-size:12px; color:var(--text-muted); margin-top:4px; }

/* CARDS */
.admin-cards-row { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; margin-bottom:16px; }
.admin-card { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; padding:20px; margin-bottom:16px; }
.admin-card h3 { font-size:12px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.6px; margin-bottom:16px; }

/* FORM */
.admin-form label { display:block; font-size:12px; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:6px; }
.admin-input { width:100%; background:var(--bg-input); border:1px solid var(--border); border-radius:8px; padding:10px 12px; color:var(--text); font-size:13px; outline:none; font-family:inherit; transition:border-color 0.2s; resize:vertical; }
.admin-input:focus { border-color:var(--accent); }

/* BUTTONS */
.admin-btn { padding:9px 16px; border:none; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; transition:opacity 0.2s,transform 0.1s; width:100%; margin-top:8px; }
.admin-btn:hover  { opacity:0.85; }
.admin-btn:active { transform:scale(0.98); }
.admin-btn.success { background:var(--success); color:#000; }
.admin-btn.danger  { background:var(--accent);  color:#fff; }
.admin-btn.warn    { background:var(--warn);    color:#000; }
.admin-btn.info    { background:var(--info);    color:#fff; }
.admin-btn-sm { padding:3px 9px; border:none; border-radius:6px; font-size:11px; font-weight:600; cursor:pointer; transition:opacity 0.2s; white-space:nowrap; }
.admin-btn-sm.danger  { background:rgba(230,57,70,0.15);  color:var(--accent);  border:1px solid var(--accent); }
.admin-btn-sm.warn    { background:rgba(210,153,34,0.15); color:var(--warn);    border:1px solid var(--warn); }
.admin-btn-sm.success { background:rgba(63,185,80,0.15);  color:var(--success); border:1px solid var(--success); }
.admin-btn-sm.info    { background:rgba(56,139,253,0.15); color:var(--info);    border:1px solid var(--info); }
.admin-btn-sm:hover { opacity:0.8; }

/* TABLE */
.admin-table { width:100%; border-collapse:collapse; font-size:12px; }
.admin-table th { padding:8px 10px; text-align:left; font-size:10px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.5px; border-bottom:2px solid var(--border); white-space:nowrap; }
.admin-table td { padding:8px 10px; border-bottom:1px solid var(--border); vertical-align:middle; }
.admin-table tr:hover td { background:rgba(255,255,255,0.02); }

/* BADGES */
.badge { display:inline-block; padding:2px 8px; border-radius:12px; font-size:11px; font-weight:700; }
.badge-banned  { background:rgba(230,57,70,0.2);  color:var(--accent); }
.badge-muted   { background:rgba(210,153,34,0.2); color:var(--warn); }
.badge-normal  { background:rgba(63,185,80,0.2);  color:var(--success); }

/* ===== TEAM-ROLLEN BADGES ===== */
.role-badge { display:inline-flex; align-items:center; gap:4px; padding:2px 10px; border-radius:20px; font-size:11px; font-weight:700; white-space:nowrap; }
.role-spieler    { background:rgba(139,148,158,0.2);  color:#8b949e;  border:1px solid #8b949e; }
.role-supporter  { background:rgba(56,139,253,0.2);   color:#388bfd;  border:1px solid #388bfd; }
.role-moderator  { background:rgba(210,153,34,0.2);   color:#d29922;  border:1px solid #d29922; }
.role-admin      { background:rgba(230,57,70,0.2);    color:#e63946;  border:1px solid #e63946; }
.role-superadmin { background:rgba(167,139,250,0.2);  color:#a78bfa;  border:1px solid #a78bfa; }

.role-badge-large { font-size:13px; padding:4px 14px; border-radius:20px; font-weight:700; margin-bottom:4px; text-align:center; }

/* STATUS */
.admin-status-box { padding:10px 14px; border-radius:8px; font-size:13px; border:1px solid var(--border); background:var(--bg-input); color:var(--text-muted); }
.search-row { display:flex; gap:8px; margin-bottom:4px; }
.search-row .admin-input { flex:1; margin-top:0; }
.search-row .admin-btn { width:auto; margin-top:0; white-space:nowrap; }
.quick-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.quick-actions .admin-btn { margin-top:0; }

/* RESTART */
.restart-countdown { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:rgba(210,153,34,0.1); border:1px solid var(--warn); border-radius:8px; margin-top:12px; font-size:13px; color:var(--warn); }
.restart-countdown strong { font-size:20px; font-variant-numeric:tabular-nums; }

/* ANNOUNCE */
.announce-item { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:8px; margin-bottom:8px; border:1px solid var(--border); font-size:13px; }
.announce-item.info    { background:rgba(56,139,253,0.08);  border-color:var(--info); }
.announce-item.warn    { background:rgba(210,153,34,0.08);  border-color:var(--warn); }
.announce-item.danger  { background:rgba(230,57,70,0.08);   border-color:var(--accent); }
.announce-item.success { background:rgba(63,185,80,0.08);   border-color:var(--success); }

/* SERVER LOG LEVELS */
.log-info     { color:var(--info); }
.log-warn     { color:var(--warn); }
.log-error    { color:var(--accent); }
.log-critical { color:#ff0000; font-weight:700; }

/* ROLE STATS */
.role-stat-row { display:flex; align-items:center; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--border); font-size:13px; }
.role-stat-row:last-child { border-bottom:none; }

/* PLAYER DETAIL */
.player-stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px; }
.player-stat-box  { background:var(--bg-input); border-radius:8px; padding:10px; font-size:12px; text-align:center; }
.player-stat-box .val { font-size:18px; font-weight:700; color:var(--text); }
.player-stat-box .lbl { color:var(--text-muted); margin-top:2px; }

/* INGAME STYLES (für game.html) */
.ingame-announcement { position:fixed; top:70px; left:50%; transform:translateX(-50%); z-index:8000; padding:12px 24px; border-radius:10px; font-size:14px; font-weight:600; box-shadow:0 4px 20px rgba(0,0,0,0.5); display:flex; align-items:center; gap:12px; max-width:600px; white-space:nowrap; animation:slideDown 0.3s ease; }
@keyframes slideDown { from{transform:translateX(-50%) translateY(-20px);opacity:0} to{transform:translateX(-50%) translateY(0);opacity:1} }
.ingame-announcement.info    { background:#161b22; border:1px solid var(--info);    color:var(--info); }
.ingame-announcement.warn    { background:#161b22; border:1px solid var(--warn);    color:var(--warn); }
.ingame-announcement.danger  { background:#161b22; border:1px solid var(--accent);  color:var(--accent); }
.ingame-announcement.success { background:#161b22; border:1px solid var(--success); color:var(--success); }
.ingame-restart-banner { position:fixed; bottom:44px; left:50%; transform:translateX(-50%); z-index:8000; background:#161b22; border:1px solid var(--warn); color:var(--warn); padding:10px 24px; border-radius:10px; font-size:13px; font-weight:600; display:flex; align-items:center; gap:12px; box-shadow:0 4px 20px rgba(0,0,0,0.5); }
.ingame-maintenance-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.9); z-index:9998; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:16px; text-align:center; }
.ingame-maintenance-overlay h2 { font-size:28px; color:var(--warn); }
.ingame-maintenance-overlay p  { color:var(--text-muted); font-size:15px; max-width:400px; }

/* ROLE BADGES in Chat / Profile */
.chat-role-badge { font-size:10px; padding:1px 6px; border-radius:10px; font-weight:700; vertical-align:middle; margin-right:4px; }