/*
Theme Name: Acts-celerate Classic Board
Theme URI: https://acts20.com
Author: acts20.dev
Description: A WordPress theme styled to resemble the classic phpBB "Acts-celerate" forum look (circa 2012) -- purple/indigo header, forum-index topic tables, and viewtopic-style single post pages. Categories act as forums, posts act as topics, comments act as replies.
Version: 1.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: acts-celerate
*/

/* -------------------------------------------------
   Design tokens (pulled from the archived board)
------------------------------------------------- */
:root {
  --board-purple-dark: #35357c;   /* logo box / table header */
  --board-purple-mid:  #4a4a91;   /* logo box gradient edge */
  --link-blue: #0000cc;
  --link-visited: #551a8b;
  --text-dark: #000000;
  --text-muted: #666666;
  --border-color: #98aab1;
  --row-alt: #eeeeee;
  --row-base: #ffffff;
  --bg-page: #ffffff;
  --sticky-icon: #f2c94c;
  --board-width: 1330px;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg-page);
  color: var(--text-dark);
  font-family: Verdana, Arial, Helvetica, sans-serif;
  font-size: 12px;
}

a {
  color: var(--link-blue);
  text-decoration: none;
}
a:hover { text-decoration: underline; }
a:visited { color: var(--link-visited); }

.board-wrap {
  max-width: var(--board-width);
  margin: 0 auto;
  padding: 12px 16px 40px;
  border-top: 4px solid #cfd6da;
}

/* -------------------------------------------------
   Header: logo box + site title + tagline
------------------------------------------------- */
.board-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 10px 0 6px;
}

.logo-box {
  position: relative;
  background: linear-gradient(180deg, var(--board-purple-mid), var(--board-purple-dark));
  color: #ffffff;
  font-weight: bold;
  font-size: 22px;
  font-family: Verdana, Arial, sans-serif;
  padding: 22px 28px 26px;
  border-radius: 10px 10px 10px 2px;
  display: inline-block;
  letter-spacing: 0.5px;
  box-shadow: 1px 1px 0 rgba(0,0,0,0.1);
}

.logo-box::after {
  content: "";
  position: absolute;
  left: 22px;
  bottom: -14px;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 22px solid transparent;
  border-top: 16px solid var(--board-purple-dark);
}

.site-title-block {
  flex: 1;
  text-align: center;
  padding-top: 6px;
}

.site-title {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  font-weight: bold;
  color: var(--text-dark);
}
.site-title a { color: var(--text-dark); }
.site-title a:hover { text-decoration: none; }

.site-tagline {
  margin: 2px 0 0;
  font-size: 12px;
  color: var(--text-dark);
}

.header-spacer { width: 220px; }

/* -------------------------------------------------
   Nav link rows (FAQ / Search / ... )
------------------------------------------------- */
.board-nav {
  text-align: center;
  padding: 8px 0 4px;
}

.board-nav ul.nav-row {
  list-style: none;
  margin: 3px 0;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 22px;
  flex-wrap: wrap;
}

.board-nav ul.nav-row li {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
}

.nav-icon {
  width: 13px;
  height: 13px;
  display: inline-block;
  border: 1px solid var(--link-blue);
  border-radius: 2px;
  position: relative;
  flex: none;
}
.nav-icon.check::after {
  content: "";
  position: absolute;
  left: 2px;
  top: 5px;
  width: 7px;
  height: 3px;
  border-left: 2px solid var(--link-blue);
  border-bottom: 2px solid var(--link-blue);
  transform: rotate(-45deg);
}

.board-divider {
  border: none;
  border-top: 1px solid var(--border-color);
  margin: 10px 0 14px;
}

/* -------------------------------------------------
   Forum / topic title block
------------------------------------------------- */
.forum-title-block { margin-bottom: 6px; }

.forum-title {
  margin: 0;
  font-size: 22px;
  font-weight: bold;
  color: var(--board-purple-dark);
}
.forum-title a { color: var(--board-purple-dark); }

.forum-moderators {
  margin: 2px 0 10px;
  color: var(--text-muted);
  font-size: 12px;
}

.forum-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 12px;
  margin-bottom: 6px;
}

.forum-meta-row .browsing-users strong { font-weight: bold; }

.pagination-top a, .pagination-bottom a {
  margin: 0 2px;
}

/* -------------------------------------------------
   Action row: new topic / breadcrumb / mark read
------------------------------------------------- */
.forum-action-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  padding: 6px 4px;
  margin-bottom: 4px;
  font-size: 12px;
}

.btn-new-topic {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 3px 12px 3px 6px;
  background: #f5f6f7;
  color: var(--link-blue);
  font-weight: bold;
}
.btn-new-topic:hover { background: #eceff1; text-decoration: none; }

.icon-newtopic {
  width: 16px;
  height: 12px;
  background: #ffe08a;
  border: 1px solid #b8860b;
  border-radius: 2px;
  display: inline-block;
}

.breadcrumb { color: var(--text-dark); }
.breadcrumb a { font-weight: bold; }

.mark-read { white-space: nowrap; }

/* -------------------------------------------------
   Topics table (forum index of one category)
------------------------------------------------- */
table.topics-table,
table.forums-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--border-color);
  margin-bottom: 10px;
}

table.topics-table thead th,
table.forums-table thead th {
  background: var(--board-purple-dark);
  color: #ffffff;
  font-weight: bold;
  font-size: 12px;
  text-align: center;
  padding: 6px 8px;
  border: 1px solid #24245a;
}

table.topics-table thead th.col-topics,
table.forums-table thead th.col-forum {
  text-align: left;
}

table.topics-table tbody td,
table.forums-table tbody td {
  padding: 7px 8px;
  border-bottom: 1px solid var(--border-color);
  vertical-align: middle;
  font-size: 12px;
}

table.topics-table tbody tr:nth-child(odd),
table.forums-table tbody tr:nth-child(odd) { background: var(--row-base); }
table.topics-table tbody tr:nth-child(even),
table.forums-table tbody tr:nth-child(even) { background: var(--row-alt); }

.col-topics { width: 56%; }
.col-replies, .col-views { width: 8%; text-align: center; }
.col-author { width: 14%; text-align: center; }
.col-lastpost { width: 20%; text-align: left; }

.topic-icon {
  display: inline-block;
  width: 16px;
  height: 13px;
  background: var(--sticky-icon);
  border: 1px solid #b8860b;
  border-radius: 2px;
  margin-right: 6px;
  vertical-align: middle;
}

.topic-icon.normal { background: #dfe6ea; border-color: var(--border-color); }

.sticky-label { font-weight: bold; }

.topic-link { font-weight: bold; }

.topic-subpages {
  display: block;
  font-size: 11px;
  margin-top: 2px;
  color: var(--text-muted);
}

.lastpost-date { font-size: 11px; }
.lastpost-author { font-size: 11px; }
.lastpost-arrow { color: var(--link-blue); margin-left: 3px; }

/* -------------------------------------------------
   Forum index (category list) rows
------------------------------------------------- */
.forums-table td.col-forum {
  text-align: left;
}
.forum-name { font-weight: bold; font-size: 13px; }
.forum-desc { display: block; color: var(--text-muted); font-size: 11px; margin-top: 2px; }

/* -------------------------------------------------
   Single "viewtopic" page
------------------------------------------------- */
.topic-post {
  border: 1px solid var(--border-color);
  margin-bottom: 10px;
}

.topic-post .post-head {
  background: var(--board-purple-dark);
  color: #ffffff;
  font-size: 11px;
  padding: 4px 8px;
  display: flex;
  justify-content: space-between;
}

.topic-post .post-body {
  display: flex;
  gap: 0;
}

.topic-post .post-author-col {
  width: 160px;
  border-right: 1px solid var(--border-color);
  padding: 10px;
  background: #f7f8f9;
  font-size: 11px;
}

.topic-post .post-author-col .author-name {
  font-weight: bold;
  color: var(--board-purple-dark);
  display: block;
  margin-bottom: 4px;
}

.topic-post .post-content-col {
  flex: 1;
  padding: 10px 14px;
  font-size: 13px;
  line-height: 1.5;
}

.topic-post .post-content-col p:first-child { margin-top: 0; }

/* -------------------------------------------------
   Replies (WP comments styled as posts)
------------------------------------------------- */
.replies-heading {
  font-weight: bold;
  color: var(--board-purple-dark);
  font-size: 15px;
  margin: 18px 0 6px;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 4px;
}

.reply-form-wrap {
  border: 1px solid var(--border-color);
  padding: 10px 14px;
  margin-top: 14px;
}

.reply-form-wrap input[type="text"],
.reply-form-wrap textarea {
  width: 100%;
  border: 1px solid var(--border-color);
  padding: 4px;
  font-family: inherit;
  font-size: 12px;
}

.reply-form-wrap textarea { min-height: 100px; margin-top: 6px; }

.reply-form-wrap .submit-btn {
  margin-top: 8px;
  background: #f5f6f7;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 4px 16px;
  color: var(--link-blue);
  font-weight: bold;
  cursor: pointer;
}

/* -------------------------------------------------
   Viewtopic page (single post + replies)
------------------------------------------------- */
:root {
  --header-accent: #ff8c42;   /* "Message" column label color */
  --badge-red: #cc0000;
  --status-green: #2e8b2e;
}

.viewtopic-title {
  font-size: 19px;
  font-weight: bold;
  color: var(--board-purple-dark);
  margin: 6px 0 10px;
}

.viewtopic-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.viewtopic-toolbar-bottom { margin-top: 6px; }

.btn-post-reply {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--border-color);
  border-radius: 3px;
  padding: 4px 12px;
  background: #ffffff;
  color: #cc3300;
  font-weight: bold;
  font-size: 12px;
}
.btn-post-reply:hover { background: #f5f6f7; text-decoration: none; }

.btn-icon-square {
  width: 28px;
  height: 24px;
  border: 1px solid var(--border-color);
  border-radius: 3px;
  background: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--link-blue);
}
.btn-icon-square:hover { background: #f5f6f7; text-decoration: none; }

.page-info { font-size: 12px; color: var(--text-dark); }

.viewtopic-links {
  font-size: 12px;
  margin-bottom: 10px;
}
.viewtopic-links a { margin: 0 2px; }

/* Table head bar */
.posts-table-head {
  display: flex;
  background: var(--board-purple-dark);
  border: 1px solid #24245a;
  border-bottom: none;
}
.posts-table-head .th-author {
  width: 170px;
  padding: 6px 8px;
  color: #ffffff;
  font-weight: bold;
  font-size: 12px;
  text-align: center;
  border-right: 1px solid #4c4c9a;
}
.posts-table-head .th-message {
  flex: 1;
  padding: 6px 8px;
  color: var(--header-accent);
  font-weight: bold;
  font-size: 12px;
  text-align: center;
}

/* Post / reply rows */
.post-row {
  border: 1px solid var(--border-color);
  border-top: none;
  background: #ffffff;
}
.post-row.alt { background: var(--row-alt); }

.post-columns { display: flex; }

.post-authorcol {
  width: 170px;
  flex: none;
  padding: 10px;
  font-size: 11px;
  border-right: 1px solid var(--border-color);
  display: flex;
  flex-direction: column;
}

.author-badge {
  color: var(--badge-red);
  font-weight: bold;
  font-size: 13px;
  display: block;
}

.author-role {
  font-weight: bold;
  color: var(--text-dark);
  display: block;
  margin-top: 2px;
}

.author-status {
  display: block;
  font-weight: bold;
  margin-bottom: 6px;
}
.author-status.online { color: var(--status-green); }
.author-status.offline { color: var(--text-muted); }

.author-meta {
  line-height: 1.5;
  margin-bottom: 8px;
}

.contact-pm { color: var(--text-muted); }

.btn-small {
  display: inline-block;
  border: 1px solid var(--border-color);
  border-radius: 3px;
  background: #ffffff;
  padding: 3px 12px;
  font-size: 11px;
  color: var(--link-blue);
  cursor: pointer;
  font-family: inherit;
}
.btn-small:hover { background: #f5f6f7; text-decoration: none; }

.btn-profile { margin-top: auto; align-self: flex-start; }

.post-messagecol {
  flex: 1;
  padding: 10px 14px;
  min-width: 0;
}

.post-subject-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  font-size: 12px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.post-subject-line .subject-text a { font-weight: normal; }
.post-subject-line .posted-date {
  color: var(--text-dark);
  white-space: nowrap;
  font-size: 11px;
}

.post-message-body {
  font-size: 13px;
  line-height: 1.55;
  word-wrap: break-word;
}
.post-message-body p:first-child { margin-top: 0; }

.post-message-icons {
  text-align: right;
  margin-top: 10px;
}
.mini-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 16px;
  border: 1px solid var(--border-color);
  border-radius: 2px;
  margin-left: 4px;
  font-size: 10px;
  font-weight: bold;
  color: var(--text-muted);
  background: #ffffff;
}
.mini-icon:hover { background: #f5f6f7; text-decoration: none; }

.post-footer-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 10px;
  border-top: 1px solid var(--border-color);
}
.post-top-link { font-size: 11px; }
.post-actions { display: flex; gap: 6px; }

#respond-wrap { margin-top: 16px; }

@media (max-width: 800px) {
  .post-columns { flex-direction: column; }
  .post-authorcol { width: auto; border-right: none; border-bottom: 1px solid var(--border-color); flex-direction: row; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
  .btn-profile { align-self: auto; }
  .posts-table-head .th-author { display: none; }
  .posts-table-head .th-message { text-align: left; }
}

@media print {
  .board-header, .board-nav, .board-divider, .viewtopic-toolbar,
  .viewtopic-links, .post-message-icons, .post-footer-row, #respond-wrap,
  .board-footer { display: none !important; }
}

/* -------------------------------------------------
   Footer
------------------------------------------------- */
.board-footer {
  border-top: 1px solid var(--border-color);
  margin-top: 20px;
  padding-top: 8px;
  font-size: 11px;
  color: var(--text-muted);
  text-align: center;
}

/* -------------------------------------------------
   Responsive fallback
------------------------------------------------- */
@media (max-width: 800px) {
  .board-header { flex-direction: column; align-items: center; text-align: center; }
  .header-spacer { display: none; }
  .forum-meta-row, .forum-action-row { flex-direction: column; gap: 6px; align-items: flex-start; }
  table.topics-table thead { display: none; }
  table.topics-table tbody tr { display: block; border-bottom: 2px solid var(--border-color); padding: 6px 0; }
  table.topics-table tbody td { display: block; border: none; padding: 2px 8px; }
  .col-replies::before { content: "Replies: "; font-weight: bold; }
  .col-author::before { content: "Author: "; font-weight: bold; }
  .col-views::before { content: "Views: "; font-weight: bold; }
  .topic-post .post-body { flex-direction: column; }
  .topic-post .post-author-col { width: auto; border-right: none; border-bottom: 1px solid var(--border-color); }
}
