/*
 * xenoware-theme.css - full MyBB redesign that makes forum.xenoware.xyz
 * read as a continuation of xenoware.xyz, not a separate property.
 *
 * Install as an Additional Stylesheet attached to "Global" via MyBB
 * AdminCP -> Templates & Style -> Themes -> [theme] -> Stylesheets.
 *
 * Companions:
 *   - forum/xenoware-header.html : brand bar at the top of every page
 *   - forum/xenoware-footer.html : brand footer at the bottom
 *   - forum/postbit.html         : modern post layout template
 *
 * Token palette mirrors src/app/globals.css on the marketing site, so
 * every surface uses the same hexes.
 */

@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap');

:root {
  --bg:            #0E0F11;
  --bg-elev:       #15171A;
  --bg-elev-2:     #1B1E22;
  --line:          #23262B;
  --line-hi:       #2F3339;
  --accent:        #FF3B3B;
  --accent-bright: #FF5454;
  --accent-deep:   #C81818;
  --accent-soft:   rgba(255, 59, 59, 0.08);
  --accent-glow:   rgba(255, 59, 59, 0.35);
  --ink:           #F5F6F7;
  --text:          #D8DADE;
  --text-dim:      #9098A1;
  --text-faint:    #5E6571;
  --green:         #5BE876;
  --yellow:        #F5C04A;
  --red:           #FF5C5C;
}

/* ─── Reset MyBB's default chrome ───────────────────────────────────────── */
html, body {
  background: var(--bg) !important;
  color: var(--text) !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 100vh;
}
body {
  font-family: 'Geist', -apple-system, 'Segoe UI', Roboto, sans-serif !important;
  font-size: 14px !important;
  letter-spacing: -0.005em !important;
  line-height: 1.55 !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }

a, a:link, a:visited {
  color: var(--accent) !important;
  text-decoration: none !important;
  transition: color 140ms ease;
}
a:hover { color: var(--accent-bright) !important; }

::selection { background: rgba(255, 59, 59, 0.25); color: var(--ink); }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb {
  background: var(--line-hi);
  border: 2px solid var(--bg);
  border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* ─── Layout ───────────────────────────────────────────────────────────── */
#container, .container, .wrapper {
  background: transparent !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 0 32px 64px !important;
}

/* MyBB's own header bar - we replace it with the brand bar. */
#header, #panel,
.welcome, .welcomeblock_member, .welcomeblock_guest,
#welcomeblock_member, #welcomeblock_guest,
.headerlogo, #logo {
  display: none !important;
}

/* ─── Xenoware brand header (sticky bar across the top) ────────────────── */
/* Full-viewport bleed via the calc(-50vw + 50%) trick so the bar bg spans
   edge-to-edge regardless of MyBB's container chrome, while the inner
   content stays at the same 1280px / 32px-pad container as xenoware.xyz. */
.xw-brand-header {
  background: rgba(14, 15, 17, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  margin-top: 0;
  margin-bottom: 24px;
}
.xw-brand-header-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.xw-brand-logo {
  display: inline-flex;
  align-items: center;
  height: 28px;
  text-decoration: none !important;
}
.xw-brand-logo-img {
  height: 22px !important;
  width: auto !important;
  display: block;
}
.xw-brand-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
}
.xw-brand-nav a {
  padding: 6px 10px !important;
  color: var(--text-dim) !important;
  border-radius: 6px;
}
.xw-brand-nav a:hover {
  color: var(--ink) !important;
  background: var(--bg-elev);
}
.xw-brand-cta {
  background: var(--accent) !important;
  color: #fff !important;
  padding: 6px 14px !important;
  border-radius: 6px;
  font-weight: 500;
  margin-left: 8px;
}
.xw-brand-cta:hover {
  background: var(--accent-bright) !important;
  color: #fff !important;
}

/* Legacy text-wordmark kept as a fallback if anyone left the old header
   snippet in place. */
.xw-brand-wordmark {
  font-weight: 600;
  font-size: 15px;
  letter-spacing: -0.02em;
  color: var(--ink) !important;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
}
.xw-brand-wordmark::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 10px rgba(255, 59, 59, 0.55);
}

/* ─── Page title bar ───────────────────────────────────────────────────── */
.menu {
  background: transparent !important;
  padding: 0 !important;
  margin: 12px 0 18px !important;
  color: var(--text-dim) !important;
  font-size: 13px !important;
}

/* MyBB renders breadcrumbs in .navigation - style as a subtle path. */
.navigation {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 0 22px !important;
  color: var(--text-dim) !important;
  font-size: 12.5px !important;
  letter-spacing: 0;
}
.navigation strong, .navigation .active { color: var(--ink) !important; }
.navigation a, .navigation a:link, .navigation a:visited {
  color: var(--text-dim) !important;
}
.navigation a:hover { color: var(--ink) !important; }
.navigation .crumbs li { display: inline; }
.navigation .crumbs li + li::before {
  content: '/';
  color: var(--text-faint);
  padding: 0 8px;
}

/* ─── Headings ─────────────────────────────────────────────────────────── */
h1, h2, h3, h4 {
  color: var(--ink) !important;
  letter-spacing: -0.02em !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
}
h1 { font-size: 32px !important; margin: 24px 0 16px !important; }
h2 { font-size: 22px !important; margin: 20px 0 12px !important; }
h3 { font-size: 17px !important; margin: 16px 0 8px !important; }

/* ─── Tables (forum index + thread list) ───────────────────────────────── */
table.tborder, .tborder {
  border: 1px solid var(--line) !important;
  background: var(--bg-elev) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: 8px !important;
  overflow: hidden;
  width: 100%;
  margin-bottom: 18px;
}

/* Category headers (Forum sections) */
.thead, .thead td {
  background: var(--bg-elev-2) !important;
  color: var(--ink) !important;
  font-weight: 500 !important;
  border-bottom: 1px solid var(--line) !important;
  padding: 14px 18px !important;
  font-size: 13.5px !important;
  letter-spacing: -0.005em;
  text-transform: none !important;
}
.thead a, .thead a:link, .thead a:visited { color: var(--ink) !important; }

.tcat, .tcat_collapse, td.tcat, .tcat_menu, .tcat_collapse_collapsed {
  background: var(--bg-elev-2) !important;
  color: var(--text-dim) !important;
  border-bottom: 1px solid var(--line) !important;
  padding: 10px 16px !important;
  font-weight: 500 !important;
  font-size: 11px !important;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.tcat a, .tcat a:link, .tcat a:visited { color: var(--text-dim) !important; }
.tcat a:hover { color: var(--ink) !important; }

/* Forum rows / thread rows */
.trow1, .trow2, td.trow1, td.trow2 {
  background: var(--bg-elev) !important;
  border-bottom: 1px solid var(--line) !important;
  padding: 14px 18px !important;
  vertical-align: middle;
}
tr:hover .trow1, tr:hover .trow2,
.trow1:hover, .trow2:hover { background: var(--bg-elev-2) !important; }
.trow_shaded, .trow_selected, td.trow_shaded {
  background: var(--accent-soft) !important;
}

.tfoot, .tfoot td {
  background: var(--bg-elev-2) !important;
  border-top: 1px solid var(--line) !important;
  padding: 12px 16px !important;
  color: var(--text-dim) !important;
}

/* Forum titles in the index */
.tcat strong, .trow1 strong, .trow2 strong {
  color: var(--ink) !important;
  font-weight: 500 !important;
}
.forum_description, td.forumbit_inline_description, .forum_status {
  color: var(--text-faint) !important;
  font-size: 12px !important;
  margin-top: 2px !important;
}

/* Forum icon column on the index. */
.forumicon, .forum_icon {
  width: 44px !important;
  text-align: center;
}
.forumicon img, .forum_icon img {
  width: 22px !important;
  height: 22px !important;
  opacity: 0.55;
  filter: hue-rotate(290deg) saturate(2);
}

/* Last post column */
.lastpost {
  color: var(--text-dim) !important;
  font-size: 12px !important;
  line-height: 1.45;
}
.lastpost a { color: var(--text) !important; }

/* Thread / post counts on the index */
td[align="center"].trow1, td[align="center"].trow2 {
  color: var(--text-dim);
  font-variant-numeric: tabular-nums;
}

/* ─── Posts (thread view) ──────────────────────────────────────────────── */
.post {
  background: var(--bg-elev) !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  margin: 0 0 14px 0 !important;
  overflow: hidden;
}
.post_head, .post_head td {
  background: var(--bg-elev-2) !important;
  border-bottom: 1px solid var(--line) !important;
  color: var(--text-dim) !important;
  padding: 10px 16px !important;
  font-size: 12px !important;
}
.post_head .post_date,
.post_head a { color: var(--text-dim) !important; }
.post_head a:hover { color: var(--ink) !important; }
.post_head .postnumber { color: var(--text-faint) !important; font-variant-numeric: tabular-nums; }

/* The new postbit uses block layout instead of a <table>; lay it out as
   a CSS grid so the author rail still sits beside the post content. */
.post {
  display: grid;
  grid-template-columns: 200px 1fr;
  grid-template-areas:
    "head    head"
    "author  content"
    "controls controls";
}
.post_head     { grid-area: head; }
.post_author   { grid-area: author; }
.post_content  { grid-area: content; }
.post_controls { grid-area: controls; }

/* Left rail: author sidebar */
.post_author {
  background: var(--bg-elev-2) !important;
  border-right: 1px solid var(--line) !important;
  color: var(--text) !important;
  padding: 18px !important;
  width: auto !important;
  min-width: 0;
}
.post_author .largetext {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  display: block;
  margin-bottom: 4px;
}
.post_author strong, .author_information strong { color: var(--ink) !important; }
.author_information,
.post_author .author_information {
  margin-bottom: 12px;
}
.author_statistics, .post_author .smalltext {
  color: var(--text-faint) !important;
  font-size: 11px !important;
  line-height: 1.6;
}
.post_author img.avatar,
.post_author .avatar,
.author_avatar img,
.post_avatar img {
  width: 64px !important;
  height: 64px !important;
  border-radius: 8px !important;
  border: 1px solid var(--line) !important;
  margin-bottom: 12px !important;
  display: block !important;
}

/* User group label (Admin, Moderator, etc.) */
.usergroup, .group_image {
  display: inline-block !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.18em !important;
  color: var(--accent) !important;
  margin-top: 4px !important;
}

/* Main message body */
.post_content {
  padding: 18px !important;
  color: var(--text) !important;
}
.post_body {
  color: var(--text) !important;
  line-height: 1.7 !important;
  font-size: 14.5px !important;
}
.post_body p { margin: 0 0 12px; }
.post_body img { max-width: 100%; border-radius: 6px; }

/* Post controls (author actions + moderation buttons) */
.post_controls {
  padding: 10px 16px !important;
  background: transparent !important;
  border-top: 1px solid var(--line) !important;
  display: flex !important;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: space-between;
}
.postbit_buttons {
  display: inline-flex !important;
  gap: 6px;
  flex-wrap: wrap;
}
.postbit_buttons a, .postbit_button, .post_buttons a {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 6px 12px !important;
  background: transparent !important;
  border: 1px solid var(--line-hi) !important;
  color: var(--text-dim) !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  letter-spacing: -0.005em;
}
.postbit_buttons a:hover, .postbit_button:hover, .post_buttons a:hover {
  color: var(--ink) !important;
  border-color: var(--ink) !important;
  background: var(--bg-elev-2) !important;
}

/* Post subject line + meta row */
.post_subject {
  display: block;
  margin: 0 0 10px;
  color: var(--ink) !important;
  font-weight: 500;
  font-size: 15px;
}
.post_meta {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--line);
  color: var(--text-faint) !important;
  font-size: 11px;
}

/* Signature */
.signature {
  margin-top: 18px !important;
  padding-top: 14px !important;
  border-top: 1px dashed var(--line) !important;
  color: var(--text-faint) !important;
  font-size: 11.5px !important;
}

/* ─── Buttons + inputs ─────────────────────────────────────────────────── */
.button,
input.button,
input[type=submit],
input[type=button],
input[type=reset],
button {
  background: var(--accent) !important;
  border: 1px solid var(--accent) !important;
  color: #fff !important;
  border-radius: 6px !important;
  padding: 8px 16px !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  cursor: pointer !important;
  font-family: inherit !important;
  letter-spacing: -0.005em !important;
  transition: background 140ms ease, border-color 140ms ease;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.button:hover,
input.button:hover,
input[type=submit]:hover,
button:hover {
  background: var(--accent-bright) !important;
  border-color: var(--accent-bright) !important;
}

/* Secondary buttons (e.g. "Cancel") get a ghost treatment. MyBB doesn't
   distinguish them via class, so this targets the standard "input.button"
   inside reply forms when it has a non-submit value. */
input.button.reset, input[type=reset].button {
  background: transparent !important;
  color: var(--text) !important;
  border-color: var(--line-hi) !important;
}
input.button.reset:hover, input[type=reset].button:hover {
  border-color: var(--ink) !important;
  background: var(--bg-elev-2) !important;
  color: var(--ink) !important;
}

input[type=text],
input[type=password],
input[type=email],
input[type=url],
input[type=number],
input[type=search],
textarea,
select {
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  color: var(--ink) !important;
  border-radius: 6px !important;
  padding: 9px 12px !important;
  font-family: inherit !important;
  font-size: 14px !important;
  letter-spacing: -0.005em;
  width: auto;
  transition: border-color 140ms ease, box-shadow 140ms ease;
}
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
textarea:focus,
select:focus {
  border-color: var(--accent) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(255, 59, 59, 0.12) !important;
}
textarea { font-family: inherit !important; line-height: 1.55; min-height: 140px; }

/* Search input in the header strip (if MyBB renders one) */
input[type=search], input[name="keywords"] { min-width: 240px; }

/* Form labels */
label, .smalltext label {
  color: var(--text-dim) !important;
  font-size: 12px !important;
  display: inline-block;
}

/* ─── Quick reply / posting form ───────────────────────────────────────── */
#quick_reply_form, .quick_reply_form, #posting_form {
  background: var(--bg-elev) !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  padding: 16px !important;
  margin-top: 16px;
}

/* MyCode toolbar (BBCode buttons) */
.sceditor-container {
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  border-radius: 6px !important;
}
.sceditor-toolbar {
  background: var(--bg-elev-2) !important;
  border-bottom: 1px solid var(--line) !important;
}
.sceditor-button {
  background: transparent !important;
  color: var(--text-dim) !important;
}
.sceditor-button:hover {
  background: var(--bg-elev) !important;
  color: var(--ink) !important;
}
.sceditor-button.active { background: var(--accent-soft) !important; color: var(--accent) !important; }

/* ─── Quote / code blocks (BBCode output) ──────────────────────────────── */
.quote_header, .codeblock_header {
  background: var(--bg-elev-2) !important;
  color: var(--text-dim) !important;
  border-bottom: 1px solid var(--line) !important;
  padding: 6px 12px !important;
  font-size: 11px !important;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-family: 'Geist Mono', Consolas, monospace !important;
  border-radius: 6px 6px 0 0;
}
.quote_body, .codeblock_body, .codeblock, blockquote {
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  font-family: 'Geist Mono', Consolas, monospace !important;
  font-size: 13px !important;
  padding: 12px 14px !important;
  border-radius: 0 0 6px 6px !important;
  line-height: 1.6;
}
.code {
  font-family: 'Geist Mono', Consolas, monospace !important;
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  padding: 1px 6px !important;
  border-radius: 4px;
  font-size: 12.5px;
}

/* ─── Pagination ───────────────────────────────────────────────────────── */
.pagination, .pagination_current, .pagination span {
  color: var(--text-dim) !important;
}
.pagination a,
.pagination_first, .pagination_last, .pagination_prev, .pagination_next {
  background: var(--bg-elev) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  border-radius: 4px !important;
  padding: 5px 10px !important;
  margin: 0 2px !important;
  display: inline-block;
  font-variant-numeric: tabular-nums;
}
.pagination a:hover {
  border-color: var(--accent) !important;
  color: var(--accent) !important;
}
.pagination_current {
  background: var(--accent) !important;
  color: #fff !important;
  border: 1px solid var(--accent) !important;
  border-radius: 4px !important;
  padding: 5px 10px !important;
}

/* ─── Alerts / errors / system messages ────────────────────────────────── */
.red_alert, .error, .error_messages {
  background: rgba(255, 92, 92, 0.06) !important;
  border: 1px solid rgba(255, 92, 92, 0.35) !important;
  color: var(--red) !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  margin: 16px 0 !important;
}
.green_alert, .success, .success_messages, .completed {
  background: rgba(91, 232, 118, 0.06) !important;
  border: 1px solid rgba(91, 232, 118, 0.35) !important;
  color: var(--green) !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  margin: 16px 0 !important;
}
.confirm_action, .notice {
  background: var(--bg-elev) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
}

/* ─── Member / profile pages ───────────────────────────────────────────── */
.profile, .profile_container {
  background: var(--bg-elev) !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
}
.profile h1, .profile h2 { color: var(--ink) !important; }

/* ─── User CP (usercp) ─────────────────────────────────────────────────── */
.usercp_nav, #usercp_menu, .usercp_container {
  background: var(--bg-elev) !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
}

/* ─── Small text + meta ───────────────────────────────────────────────── */
.smalltext, .float_right.smalltext, .float_left.smalltext {
  color: var(--text-faint) !important;
  font-size: 11.5px !important;
}

/* ─── Brand footer (mirrors SiteFooter on xenoware.xyz) ────────────────── */
/* Same full-viewport bleed trick as the header so the dark band spans
   edge-to-edge while the inner content sits at 1280px / 32px-pad. */
.xw-brand-footer {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  margin-top: 96px;
  padding: 56px 0 40px;
  background: rgba(11, 12, 14, 0.7) !important;
  border-top: 1px solid var(--line);
  color: var(--text-faint);
}
.xw-brand-footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}
.xw-brand-footer-cols {
  display: grid;
  grid-template-columns: 2.2fr 1fr 1fr 1fr;
  gap: 40px;
  align-items: start;
}
.xw-brand-footer-cols .xw-fc-title {
  font-size: 12px;
  font-weight: 500;
  color: var(--ink) !important;
  margin-bottom: 14px;
}
.xw-brand-footer-cols a {
  display: block;
  color: var(--text-dim) !important;
  margin-bottom: 10px;
  font-size: 13px;
  text-decoration: none !important;
}
.xw-brand-footer-cols a:hover { color: var(--ink) !important; }
.xw-brand-footer-lede {
  color: var(--text-dim) !important;
  max-width: 320px;
  line-height: 1.55;
  margin-top: 16px;
  font-size: 13px;
}
.xw-brand-footer-bottom {
  margin: 48px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  color: var(--text-faint);
  font-size: 12px;
}
.xw-brand-footer-pays {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  opacity: 0.85;
}
.xw-brand-footer-pays svg {
  display: block;
}

/* Hide MyBB's own footer credit + bottommenu when our footer is present. */
#copyright, .bottommenu, #footer .float_right { display: none !important; }
#footer, .footer {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* ─── Bloat hides (board stats, online list, birthdays, etc.) ──────────── */
#stats, #boardstats, .statsidebar,
.online, table[summary="online"],
.birthdaybg, .birthdays, table[summary="birthdays"],
table[summary="board statistics"],
table[summary="member statistics"],
.away, .expcolimage,
.subforumicons,
.collapse_thead,
.poll_results img,
ul.thread_tools li.thread_tool_separator {
  display: none !important;
}

/* "Mark this Forum Read" / "Mark all Forums Read" link clutter. */
.float_right > a[href*="misc.php?action=markread"],
.float_right > a[title="Mark this Forum Read"],
.float_right > a[title*="Mark All Forums Read"] {
  display: none !important;
}

/* ─── Mobile ───────────────────────────────────────────────────────────── */
@media (max-width: 720px) {
  #container, .container { padding: 0 16px 48px !important; }
  .xw-brand-header-inner { padding: 0 16px; height: 52px; }
  .xw-brand-footer { margin-top: 64px; padding: 40px 0 32px; }
  .xw-brand-footer-inner { padding: 0 16px; }
  .xw-brand-footer-cols { grid-template-columns: 1fr; gap: 28px; }
  .post {
    grid-template-columns: 1fr;
    grid-template-areas: "head" "author" "content" "controls";
  }
  .post_author {
    width: 100% !important;
    min-width: 0 !important;
    border-right: none !important;
    border-bottom: 1px solid var(--line) !important;
  }
  h1 { font-size: 26px !important; }
}
