/* Forums module — traditional board index, topics table, and threaded-looking
   (but structurally flat) post list. Unlayered, .ac-plugin-scoped, tokens only,
   so it survives the active theme's global styles (see tokens.css note). */

/* ---- Shared mastheads ---- */
.ac-plugin .ac-forums__masthead,
.ac-plugin .ac-forum__masthead,
.ac-plugin .ac-topic__masthead { margin-bottom: 1.4rem; }

.ac-plugin .ac-forums__title,
.ac-plugin .ac-forum__title,
.ac-plugin .ac-topic__title {
  font-family: var(--ac-font-display);
  color: var(--ac-ink);
  margin: 0;
  line-height: 1.15;
}
.ac-plugin .ac-forums__lede { color: var(--ac-muted); margin: .35rem 0 0; }
.ac-plugin .ac-forum__desc { color: var(--ac-muted); margin: .5rem 0 0; max-width: 60ch; }

.ac-plugin .ac-forum__crumbs,
.ac-plugin .ac-topic__crumbs { margin: 0 0 .9rem; }

.ac-plugin .ac-topic__masthead { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }

/* ---- Board index (forums-list) ---- */
.ac-plugin .ac-board-list {
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-card-radius);
  overflow: hidden;
  background: var(--ac-surface);
  box-shadow: var(--ac-card-shadow);
}
.ac-plugin .ac-board-list__head {
  display: grid;
  grid-template-columns: 1fr 84px 84px minmax(170px, 1.4fr);
  gap: 1rem;
  align-items: center;
  padding: .7rem 1.15rem;
  background: var(--ac-primary);
  color: var(--ac-primary-ink);
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.ac-plugin .ac-board-list__head .ac-board-list__col-stat,
.ac-plugin .ac-board-list__head .ac-board-list__col-last { text-align: center; }
.ac-plugin .ac-board-list__col-last { text-align: left; }

.ac-plugin .ac-board-row {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 84px 84px minmax(170px, 1.4fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.15rem;
  border-top: 1px solid var(--ac-line);
  transition: background .15s ease;
}
.ac-plugin .ac-board-list__head + .ac-board-row { border-top: 0; }
.ac-plugin .ac-board-row:hover { background: var(--ac-paper); }
.ac-plugin .ac-board-row__link { position: absolute; inset: 0; z-index: 1; }
.ac-plugin .ac-board-row > :not(.ac-board-row__link) { position: relative; z-index: 0; }

.ac-plugin .ac-board-row__forum { display: flex; align-items: center; gap: .85rem; min-width: 0; }
.ac-plugin .ac-board-row__icon {
  flex: 0 0 auto;
  width: 46px; height: 46px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--ac-accent-soft);
  color: var(--ac-accent);
}
.ac-plugin .ac-board-row__icon svg { width: 24px; height: 24px; }
.ac-plugin .ac-board-row__title { margin: 0; font-size: 1.08rem; color: var(--ac-ink); }
.ac-plugin .ac-board-row:hover .ac-board-row__title { color: var(--ac-primary); }
.ac-plugin .ac-board-row__desc {
  margin: .2rem 0 0; color: var(--ac-muted); font-size: .88rem; line-height: 1.4;
}

.ac-plugin .ac-board-row__stat { text-align: center; }
.ac-plugin .ac-board-row__stat-num { display: block; font-weight: 700; color: var(--ac-ink); font-size: 1.05rem; }
.ac-plugin .ac-board-row__stat-label {
  display: block; color: var(--ac-muted); font-size: .72rem;
  text-transform: uppercase; letter-spacing: .04em;
}
.ac-plugin .ac-board-row__last { min-width: 0; font-size: .85rem; line-height: 1.35; }
.ac-plugin .ac-board-row__last-title {
  display: block; color: var(--ac-ink); font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ac-plugin .ac-board-row__last-meta { display: block; color: var(--ac-muted); }
.ac-plugin .ac-board-row__last-meta--empty { font-style: italic; }

/* ---- Topics table (forum-single) ---- */
.ac-plugin .ac-topic-table {
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-card-radius);
  overflow: hidden;
  background: var(--ac-surface);
  box-shadow: var(--ac-card-shadow);
}
.ac-plugin .ac-topic-table__head {
  display: grid;
  grid-template-columns: 1fr 96px minmax(150px, .9fr);
  gap: 1rem;
  align-items: center;
  padding: .7rem 1.15rem;
  background: var(--ac-primary);
  color: var(--ac-primary-ink);
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.ac-plugin .ac-topic-table__head .ac-topic-table__col-stat { text-align: center; }
.ac-plugin .ac-topic-table__empty { margin: 0; padding: 1.4rem 1.15rem; }

.ac-plugin .ac-topic-row {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 96px minmax(150px, .9fr);
  gap: 1rem;
  align-items: center;
  padding: .9rem 1.15rem;
  border-top: 1px solid var(--ac-line);
  transition: background .15s ease;
}
.ac-plugin .ac-topic-row:hover { background: var(--ac-paper); }
.ac-plugin .ac-topic-row__link { position: absolute; inset: 0; z-index: 1; }
.ac-plugin .ac-topic-row > :not(.ac-topic-row__link) { position: relative; z-index: 0; }

.ac-plugin .ac-topic-row__main { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.ac-plugin .ac-topic-row__main .ac-avatar { margin: 0; flex: 0 0 auto; }
.ac-plugin .ac-topic-row__meta { min-width: 0; }
.ac-plugin .ac-topic-row__title {
  margin: 0; font-size: 1rem; color: var(--ac-ink);
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
}
.ac-plugin .ac-topic-row:hover .ac-topic-row__title { color: var(--ac-primary); }
.ac-plugin .ac-topic-row__started { display: block; color: var(--ac-muted); font-size: .82rem; margin-top: .15rem; }

.ac-plugin .ac-topic-row__stat { text-align: center; }
.ac-plugin .ac-topic-row__stat-num { display: block; font-weight: 700; color: var(--ac-ink); }
.ac-plugin .ac-topic-row__stat-label {
  display: block; color: var(--ac-muted); font-size: .72rem;
  text-transform: uppercase; letter-spacing: .04em;
}
.ac-plugin .ac-topic-row__last { font-size: .85rem; line-height: 1.35; min-width: 0; }
.ac-plugin .ac-topic-row__last-author { display: block; color: var(--ac-ink); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-plugin .ac-topic-row__last-time { display: block; color: var(--ac-muted); }

/* ---- Post list (topic-single) — flat, but styled as a threaded forum ---- */
.ac-plugin .ac-post-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.ac-plugin .ac-post {
  display: grid;
  grid-template-columns: 160px 1fr;
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-card-radius);
  overflow: hidden;
  background: var(--ac-surface);
}
.ac-plugin .ac-post--op { border-color: color-mix(in srgb, var(--ac-accent) 45%, var(--ac-line)); }
.ac-plugin .ac-post__author {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: .4rem;
  padding: 1.15rem 1rem;
  background: var(--ac-paper);
  border-right: 1px solid var(--ac-line);
}
.ac-plugin .ac-post__author .ac-avatar {
  margin: 0; width: 52px; height: 52px; font-size: 1.15rem;
}
.ac-plugin .ac-post__author-name { font-weight: 700; color: var(--ac-ink); font-size: .92rem; line-height: 1.25; }
.ac-plugin .ac-post__author-badge {
  font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  color: var(--ac-accent); background: var(--ac-accent-soft);
  padding: .12rem .5rem; border-radius: 999px;
}
.ac-plugin .ac-post__main { padding: 1.15rem 1.25rem; min-width: 0; }
.ac-plugin .ac-post__meta { color: var(--ac-muted); font-size: .8rem; margin-bottom: .6rem; padding-bottom: .6rem; border-bottom: 1px solid var(--ac-line); }
.ac-plugin .ac-post__body { color: var(--ac-ink); line-height: 1.6; overflow-wrap: anywhere; }
.ac-plugin .ac-post__body p { margin: 0 0 .8rem; }
.ac-plugin .ac-post__body p:last-child { margin-bottom: 0; }

/* ---- Photo avatars (profile picture fills the chip) ---- */
.ac-plugin .ac-avatar--photo { padding: 0; overflow: hidden; background: none; }
.ac-plugin .ac-avatar__img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---- New-topic disclosure (forum-single) ---- */
.ac-plugin .ac-new-topic {
  margin-top: 1.4rem;
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-card-radius);
  background: var(--ac-surface);
  overflow: hidden;
}
.ac-plugin .ac-new-topic__summary {
  cursor: pointer;
  padding: .9rem 1.15rem;
  font-weight: 700;
  color: var(--ac-primary);
  list-style: none;
  display: flex; align-items: center; gap: .55rem;
}
.ac-plugin .ac-new-topic__summary::-webkit-details-marker { display: none; }
.ac-plugin .ac-new-topic__summary::before {
  content: "+"; font-size: 1.2rem; line-height: 1; color: var(--ac-accent);
  transition: transform .15s ease;
}
.ac-plugin .ac-new-topic[open] .ac-new-topic__summary::before { transform: rotate(45deg); }
.ac-plugin .ac-new-topic__summary:hover { background: var(--ac-paper); }
.ac-plugin .ac-new-topic__body { padding: 0 1.15rem 1.15rem; border-top: 1px solid var(--ac-line); padding-top: 1.15rem; }
.ac-plugin .ac-new-topic .ac-form-field { margin-bottom: 1rem; }
.ac-plugin .ac-new-topic label { display: block; font-weight: 600; color: var(--ac-ink); margin-bottom: .35rem; font-size: .9rem; }

/* ---- Reply box (comment_form) ---- */
.ac-plugin .ac-reply-box { margin-top: 1.4rem; }
.ac-plugin .ac-reply-box #respond {
  border: 1px solid var(--ac-line);
  border-radius: var(--ac-card-radius);
  background: var(--ac-surface);
  padding: 1.25rem;
}
.ac-plugin .ac-reply-box .comment-reply-title {
  font-family: var(--ac-font-display);
  color: var(--ac-ink);
  margin: 0 0 .9rem;
  font-size: 1.2rem;
}
.ac-plugin .ac-reply-box .comment-form { display: grid; gap: 1rem; }
.ac-plugin .ac-reply-box .logged-in-as { color: var(--ac-muted); font-size: .82rem; margin: 0; }
.ac-plugin .ac-reply-box .form-submit { margin: 0; }
.ac-plugin .ac-reply-box input[type="submit"] { cursor: pointer; }

/* ---- Errors ---- */
.ac-plugin .ac-form-errors {
  border: 1px solid var(--ac-crit);
  background: var(--ac-crit-soft);
  color: var(--ac-crit);
  border-radius: var(--ac-radius-sm);
  padding: .8rem 1rem;
  margin-bottom: 1rem;
}
.ac-plugin .ac-form-errors ul { margin: 0; padding-left: 1.1rem; }

/* ---- Responsive: collapse the multi-column rows on narrow screens ---- */
@media (max-width: 680px) {
  .ac-plugin .ac-board-list__head,
  .ac-plugin .ac-topic-table__head { display: none; }

  .ac-plugin .ac-board-row {
    grid-template-columns: 1fr auto;
    grid-template-areas: "forum forum" "last last" "topics posts";
    gap: .5rem 1rem;
  }
  .ac-plugin .ac-board-row__forum { grid-area: forum; }
  .ac-plugin .ac-board-row__stat:first-of-type { grid-area: topics; }
  .ac-plugin .ac-board-row__stat + .ac-board-row__stat { grid-area: posts; }
  .ac-plugin .ac-board-row__stat { text-align: left; display: flex; align-items: baseline; gap: .35rem; }
  .ac-plugin .ac-board-row__stat-num, .ac-plugin .ac-board-row__stat-label { display: inline; }
  .ac-plugin .ac-board-row__last { grid-area: last; padding-left: calc(46px + .85rem); }

  .ac-plugin .ac-topic-row {
    grid-template-columns: 1fr auto;
    grid-template-areas: "main main" "last replies";
    gap: .5rem 1rem;
  }
  .ac-plugin .ac-topic-row__main { grid-area: main; }
  .ac-plugin .ac-topic-row__stat { grid-area: replies; text-align: right; }
  .ac-plugin .ac-topic-row__last { grid-area: last; }

  .ac-plugin .ac-post { grid-template-columns: 1fr; }
  .ac-plugin .ac-post__author {
    flex-direction: row; text-align: left; justify-content: flex-start;
    border-right: 0; border-bottom: 1px solid var(--ac-line); padding: .8rem 1rem;
  }
  .ac-plugin .ac-post__author .ac-avatar { width: 40px; height: 40px; font-size: .95rem; }
}
