/*
 * Protaverse administration theme
 * Adapted from the user-provided style.css to the existing admin markup.
 * Loaded after admin.css so the original layout and functionality stay intact.
 */
:root {
  --accent: #fd3171;
  --accent-dark: #d42056;
  --accent-light: #ff6b99;
  --accent-glow: rgba(253, 49, 113, .2);
  --bg: #191919;
  --panel: #111;
  --ink: #fff;
  --muted: rgba(255, 255, 255, .62);
  --line: rgba(255, 255, 255, .12);
  --aqua: var(--accent);
  --aqua-dark: var(--accent-light);
  --nav: #111;
  --danger: #e64955;
  --success: #31b777;
  --shadow: 0 10px 28px rgba(0, 0, 0, .35);
}

html,
body {
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

body,
input,
button,
textarea,
select {
  font-family: Roboto, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

::selection { color: #fff; background: var(--accent); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #292929; border-radius: 10px; }
::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent-dark); }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .sidebar,
  .sidebar nav a,
  .button,
  .primary,
  .danger-button,
  .small-danger,
  .topbar > a,
  .stats > * { transition: transform .2s, filter .2s, color .2s, background-color .2s, border-color .2s; }
}

.sidebar {
  background: #111;
  border-right: 1px solid rgba(255, 255, 255, .06);
  box-shadow: 8px 0 28px rgba(0, 0, 0, .28);
}

.brand > span,
.auth-logo {
  background: linear-gradient(145deg, var(--accent-light), var(--accent) 52%, var(--accent-dark));
  box-shadow: 0 8px 22px var(--accent-glow);
}

.brand small,
.sidebar-account small { color: rgba(255, 255, 255, .55); }
.sidebar nav a { color: rgba(255, 255, 255, .75); }
.sidebar nav a:hover,
.sidebar nav a.active {
  color: #fff;
  background: var(--accent-glow);
}
.sidebar nav a.active { box-shadow: inset 3px 0 0 var(--accent); }
.sidebar-account { border-color: rgba(255, 255, 255, .12); }
.sidebar-account button { color: rgba(255, 255, 255, .78); }
.sidebar-account button:hover { color: var(--accent-light); }

.topbar p,
a { color: var(--accent-light); }
.topbar h1,
.panel-head h2,
.stats strong,
.user-summary h2,
.auth-card h1 { font-family: Quicksand, Roboto, sans-serif; }

.topbar > a,
.button {
  color: #fff;
  border-color: var(--line);
  background: #242424;
}
.topbar > a:hover,
.button:hover { border-color: var(--accent); background: #2c2025; transform: translateY(-1px); }

.panel,
.stats > *,
.auth-card {
  color: var(--ink);
  border-color: var(--line);
  background: var(--panel);
  box-shadow: var(--shadow);
}
.stats > * { position: relative; overflow: hidden; }
.stats > *::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--accent-light), var(--accent), var(--accent-dark));
}
.stats > *:hover { filter: brightness(1.12); transform: translateY(-2px); }
.stats span,
.panel-head p,
td small,
.stack small,
.community-form small,
.breadcrumbs,
.user-summary p,
.timeline small,
.announcement-status small,
.announcement-note span { color: var(--muted); }

.panel-head,
th,
td,
.timeline article { border-color: var(--line); }
th { color: var(--muted); background: #181818; }
tbody tr { background: transparent; }
tbody tr:hover { background: rgba(253, 49, 113, .055); }
code { color: #ff8eb1; }

.badge { color: #e8e8e8; background: #292929; }
.badge.admin { color: #ffd28b; background: rgba(255, 155, 31, .18); }
.badge.verified { color: #ff9cba; background: var(--accent-glow); }
.badge.danger { color: #ff9ba2; background: rgba(230, 73, 85, .18); }
.badge.ok { color: #72e0ad; background: rgba(49, 183, 119, .17); }

.primary,
.danger-button {
  color: #fff;
  background: linear-gradient(180deg, var(--accent-light), var(--accent) 50%, var(--accent-dark));
  box-shadow: 0 7px 18px rgba(253, 49, 113, .22);
}
.primary:hover,
.danger-button:hover { filter: brightness(.92); transform: translateY(-1px); }
.small-danger { color: #ffabb5; background: rgba(230, 73, 85, .18); }

input,
textarea,
select {
  color: #fff;
  border-color: rgba(255, 255, 255, .18);
  background: #242424;
}
input::placeholder,
textarea::placeholder { color: rgba(255, 255, 255, .4); }
select option { color: #fff; background: #242424; }
input:focus,
textarea:focus,
select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-glow);
}
.check { border-color: var(--line); background: #181818; }
.check:has(input:checked) { border-color: var(--accent); background: var(--accent-glow); }
.search button { color: #fff; background: var(--accent); }

.flash.success,
.upload-result.success { color: #8aebbd; border-color: rgba(49, 183, 119, .45); background: rgba(49, 183, 119, .13); }
.flash.error,
.upload-result.error { color: #ffabb5; border-color: rgba(230, 73, 85, .45); background: rgba(230, 73, 85, .13); }
.ban-info { color: #ffd4d7; background: rgba(230, 73, 85, .12); }
.danger-zone { border-color: rgba(230, 73, 85, .45); }
.dropzone { border-color: rgba(253, 49, 113, .45); background: rgba(253, 49, 113, .06); }
.dropzone:hover { background: var(--accent-glow); }
.thumb { background: #2b2b2b; }

.auth-page {
  background:
    radial-gradient(circle at 20% 0, rgba(253, 49, 113, .17), transparent 36%),
    radial-gradient(circle at 100% 100%, rgba(212, 32, 86, .12), transparent 34%),
    #191919;
}
.auth-card .eyebrow { color: var(--accent-light); }
.auth-card .muted { color: var(--muted); }

.discord-preview { border: 1px solid rgba(255, 255, 255, .09); }
.discord-embed { border-left-color: var(--accent); }
.announcement-note { color: #ffd4e2; border-color: rgba(253, 49, 113, .35); background: rgba(253, 49, 113, .09); }

@media (max-width: 1000px) {
  .sidebar { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
  .sidebar nav a.active { box-shadow: inset 0 -3px 0 var(--accent); }
}

@media (max-width: 650px) {
  .sidebar nav a { text-align: center; }
  .topbar h1 { font-size: 25px; }
  .panel,
  .stats > * { border-radius: 12px; }
}


/* Reports workflow dark-theme contrast */
.report-card {
  color: #f4f4f4;
  border-color: rgba(255,255,255,.14);
  background: #181818;
}
.report-card > header {
  color: #fff;
  border-color: rgba(255,255,255,.12);
  background: #202020;
}
.report-card > header strong { color: #fff; }
.report-card time { color: rgba(255,255,255,.58); }
.report-grid small { color: rgba(255,255,255,.58); }
.report-grid strong { color: #fff; }
.report-grid span { color: rgba(255,255,255,.72); }
.report-grid a { color: var(--accent-light); font-weight: 700; }
.report-card blockquote {
  color: #f2f2f2;
  border-left-color: var(--accent);
  background: #242424;
}
.report-resolution { color: rgba(255,255,255,.78); }
.report-actions { border-color: rgba(255,255,255,.12); background: #181818; }
.report-actions textarea { color: #fff; background: #242424; }
.report-actions .button { color: #fff; background: #242424; }
.report-status.pending { color: #ffd47a; background: rgba(255,184,38,.18); }
.report-status.reviewing { color: #83e5ff; background: rgba(48,190,228,.17); }
.report-status.actioned { color: #78e4af; background: rgba(49,183,119,.17); }
.report-status.dismissed { color: #d0d6d9; background: rgba(180,190,195,.16); }

/* Moderation appeals dark-theme contrast */
.appeal-card{color:#f4f4f4;border-color:rgba(255,255,255,.14);background:#181818}.appeal-card>header{color:#fff;border-color:rgba(255,255,255,.12);background:#202020}.appeal-card>header strong,.appeal-grid strong{color:#fff}.appeal-card time,.appeal-grid small{color:rgba(255,255,255,.58)}.appeal-grid span{color:rgba(255,255,255,.72)}.appeal-grid a{color:var(--accent-light);font-weight:700}.appeal-warning{color:#f5e9ca;background:#29251d}.appeal-card blockquote{color:#f2f2f2;border-left-color:var(--accent);background:#242424}.appeal-response{color:rgba(255,255,255,.78)}.appeal-actions{border-color:rgba(255,255,255,.12);background:#181818}.appeal-actions textarea{color:#fff;background:#242424}.appeal-actions .button{color:#fff;background:#242424}.appeal-status.pending{color:#ffd47a;background:rgba(255,184,38,.18)}.appeal-status.reviewing{color:#83e5ff;background:rgba(48,190,228,.17)}.appeal-status.accepted{color:#78e4af;background:rgba(49,183,119,.17)}.appeal-status.rejected{color:#ff9ca8;background:rgba(215,67,67,.2)}
