/* forum.css — the DIRECT ACTION forums (forked 2026-10-28) (owner, 2026-10-22: "Professional EPic Gaming Style Fourms … keeping our Website theme style
   colors"). Tokens only (renderer/rv-theme.css values in cb.css); hairlines are the only fixed widths. The "epic" look is the site's
   own: square cards with a red top edge and red corner brackets (the side widgets'), uppercase Barlow Condensed headings, red icon
   plates. The accent is a fill and an icon colour, never small text. Category markers: each category's colour from the theme's
   state colours (red, blue, green, amber, grey), used only to say which category a topic is in. */

/* the category colours, as one variable per card/marker */
.fr-c-red{--fr-c:var(--rv-accent)}
.fr-c-blue{--fr-c:var(--rv-info)}
.fr-c-green{--fr-c:var(--rv-success)}
.fr-c-amber{--fr-c:var(--rv-warning)}
.fr-c-grey{--fr-c:var(--rv-text-dim)}

/* ── the tabs: CATEGORIES · TOP · LATEST · RV TRACKER ── */
.fr-tabs{display:flex;align-items:center;gap:var(--rv-s-2);border-bottom:1px solid var(--rv-border-2);margin-bottom:var(--rv-s-6);overflow-x:auto;scrollbar-width:none}
.fr-tabs::-webkit-scrollbar{display:none}
.fr-tab{position:relative;display:inline-flex;align-items:center;gap:var(--rv-s-2);padding:var(--rv-s-3) var(--rv-s-4);font-family:var(--cb-font-display);font-size:var(--rv-fs-h3);font-weight:800;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-dim);text-decoration:none;white-space:nowrap}
.fr-tab:hover{color:var(--rv-text-strong)}
.fr-tab.is-on{color:var(--rv-text-strong)}
.fr-tab.is-on::after{content:"";position:absolute;left:var(--rv-s-3);right:var(--rv-s-3);bottom:-1px;height:3px;background:var(--rv-accent)}
.fr-tab:focus-visible{outline:2px solid var(--rv-focus);outline-offset:-2px}
.fr-tabs__grow{flex:1}
.fr-newtopic[hidden]{display:none}
/* the RV mark: the site's red RV badge in small, for the tracker tab and for staff topics */
.fr-rvmark{display:inline-grid;place-items:center;padding:0 var(--rv-s-1);min-width:var(--rv-s-5);height:var(--rv-s-4);font-family:var(--cb-font-display);font-size:var(--rv-fs-micro);font-weight:800;letter-spacing:var(--cb-track-wide);color:#fff;background:var(--rv-accent);margin-right:var(--rv-s-2)}

/* ── CATEGORIES: two columns of cards ── */
.fr-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--rv-s-5);align-items:start}
.fr-col{display:flex;flex-direction:column;gap:var(--rv-s-5)}
.fr-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--rv-s-4);padding:var(--rv-s-5);background:var(--rv-surface-1);border:1px solid var(--rv-border-1);border-top:2px solid var(--fr-c,var(--rv-accent));box-shadow:0 2px 2px var(--cb-shadow)}
.fr-card::before,.fr-card::after{content:"";position:absolute;bottom:-1px;width:var(--rv-s-4);height:var(--rv-s-4);border-bottom:2px solid var(--fr-c,var(--rv-accent-contrast));pointer-events:none}
.fr-card::before{left:-1px;border-left:2px solid var(--fr-c,var(--rv-accent-contrast))}
.fr-card::after{right:-1px;border-right:2px solid var(--fr-c,var(--rv-accent-contrast))}
.fr-card:hover{border-color:var(--rv-border-2);border-top-color:var(--fr-c,var(--rv-accent))}
.fr-card__icon{display:grid;place-items:center;width:calc(var(--rv-s-7) + var(--rv-s-3));height:calc(var(--rv-s-7) + var(--rv-s-3));background:var(--rv-surface-3);border:1px solid var(--rv-border-2);color:var(--fr-c,var(--rv-accent-contrast));clip-path:polygon(0 0,calc(100% - var(--rv-s-2)) 0,100% var(--rv-s-2),100% 100%,0 100%)}
.fr-card__icon .cb-icon{width:var(--rv-s-6);height:var(--rv-s-6)}
.fr-card__main{display:flex;flex-direction:column;gap:var(--rv-s-2);min-width:0}
.fr-card__title{margin:0;font-family:var(--cb-font-display);font-size:var(--rv-fs-h2);font-weight:800;text-transform:uppercase;letter-spacing:var(--cb-track-wide);line-height:1.1}
.fr-card__title a{color:var(--rv-text-strong);text-decoration:none}
.fr-card__title a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--fr-c,var(--rv-accent))}
.fr-card__desc{margin:0;font-size:var(--rv-fs-small);color:var(--rv-text-dim);max-width:68ch}
.fr-card__stats{display:flex;gap:var(--rv-s-4);font-size:var(--rv-fs-small);color:var(--rv-text-dim)}
.fr-card__stats b{color:var(--rv-text-strong);font-family:var(--cb-font-display);font-weight:700}
.fr-card__subs{display:flex;flex-wrap:wrap;gap:var(--rv-s-2) var(--rv-s-5);margin-top:var(--rv-s-2)}
.fr-sub{display:inline-flex;align-items:center;gap:var(--rv-s-2);font-size:var(--rv-fs-body);font-weight:600;color:var(--rv-text);text-decoration:none;padding:var(--rv-s-1) 0}
.fr-sub .cb-icon{color:var(--fr-c,var(--rv-accent-contrast));width:var(--rv-s-4);height:var(--rv-s-4)}
.fr-sub:hover{color:var(--rv-text-strong)}
.fr-sub:hover span{text-decoration:underline;text-underline-offset:3px}
.fr-card__last{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--rv-s-1) var(--rv-s-3);margin-top:var(--rv-s-3);padding-top:var(--rv-s-3);border-top:1px solid var(--rv-border-1);text-decoration:none;min-width:0}
.fr-card__lastt{font-size:var(--rv-fs-small);font-weight:700;color:var(--rv-text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.fr-card__lastm{font-size:var(--rv-fs-micro);color:var(--rv-text-dim)}
a.fr-card__last:hover .fr-card__lastt{text-decoration:underline;text-underline-offset:3px}
.fr-card__last--none{font-size:var(--rv-fs-small);color:var(--rv-text-faint)}

/* ── topic tables: Topic · Author · Replies · Views · Activity ── */
.fr-table{border:1px solid var(--rv-border-1);background:var(--rv-surface-1)}
.fr-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(8rem,12rem) 5.5rem 5rem 5rem;align-items:center;gap:var(--rv-s-3);padding:var(--rv-s-3) var(--rv-s-4);border-top:1px solid var(--rv-border-1)}
.fr-row:first-child{border-top:0}
.fr-row:not(.fr-row--head):hover{background:var(--rv-surface-2)}
.fr-row--head{font-size:var(--rv-fs-small);color:var(--rv-text-dim);padding-top:var(--rv-s-3);padding-bottom:var(--rv-s-3);background:var(--rv-surface-2);text-transform:uppercase;letter-spacing:var(--cb-track-wide);font-weight:700}
.fr-row--staff{background:var(--rv-accent-weak);box-shadow:inset 3px 0 0 var(--rv-accent)}
.fr-row--staff:hover{background:var(--rv-accent-weak)}
.fr-topic{display:flex;flex-direction:column;gap:var(--rv-s-1);min-width:0}
.fr-topic__t{display:inline-flex;align-items:center;font-size:var(--rv-fs-body);font-weight:600;color:var(--rv-text-strong);text-decoration:none;min-width:0}
.fr-topic__t:hover{text-decoration:underline;text-underline-offset:3px}
.fr-flag{display:inline-flex;margin-right:var(--rv-s-2);color:var(--rv-text-dim)}
.fr-flag .cb-icon{width:var(--rv-s-4);height:var(--rv-s-4)}
.fr-sublink{display:inline-flex;align-items:center;gap:var(--rv-s-2);align-self:flex-start;font-size:var(--rv-fs-micro);color:var(--rv-text-dim);text-decoration:none}
.fr-sublink:hover{color:var(--rv-text)}
.fr-mark{display:inline-block;width:var(--rv-s-2);height:var(--rv-s-2);background:var(--fr-c,var(--rv-accent))}
.fr-author{font-weight:600;color:var(--rv-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fr-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--rv-text);white-space:nowrap}
.fr-replies{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--rv-s-1)}
.fr-replies .cb-icon{width:var(--rv-s-3);height:var(--rv-s-3);color:var(--rv-text-dim)}
/* a hot topic (100+ replies, 2,000+ views): amber, the theme's own state colour (the references light these up) */
.fr-hot{color:var(--rv-warning);font-weight:700}
.fr-hot .cb-icon{color:var(--rv-warning)}
.fr-dim{color:var(--rv-text-dim)}

/* ── TOP: the period heading ── */
.fr-period{display:flex;align-items:center;gap:var(--rv-s-4);margin-bottom:var(--rv-s-5)}
.fr-period__t{margin:0;font-family:var(--cb-font-display);font-size:var(--rv-fs-h1);font-weight:800;color:var(--rv-text-strong)}
.fr-period__d{color:var(--rv-text-dim);font-weight:700;letter-spacing:var(--cb-track-wide);margin-left:var(--rv-s-2)}

/* ── a category: its header, its sub-forum chips ── */
.fr-cathead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--rv-s-4);align-items:center;margin-bottom:var(--rv-s-5)}
.fr-cathead__t{margin:var(--rv-s-1) 0;font-family:var(--cb-font-display);font-size:var(--rv-fs-h1);font-weight:800;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-strong);line-height:1.05}
.fr-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rv-s-2);font-size:var(--rv-fs-small);color:var(--rv-text-dim)}
.fr-crumbs a{color:var(--rv-text);text-decoration:none}
.fr-crumbs a:hover{color:var(--rv-text-strong);text-decoration:underline}
.fr-crumbs b{color:var(--rv-text-strong)}
.fr-chips{display:flex;flex-wrap:wrap;gap:var(--rv-s-2);margin-bottom:var(--rv-s-5)}
.fr-chip{display:inline-flex;align-items:center;gap:var(--rv-s-2);padding:var(--rv-s-2) var(--rv-s-3);font-size:var(--rv-fs-small);font-weight:700;color:var(--rv-text);text-decoration:none;background:var(--rv-surface-2);border:1px solid var(--rv-border-1)}
.fr-chip .cb-icon{width:var(--rv-s-4);height:var(--rv-s-4);color:var(--rv-text-dim)}
.fr-chip:hover{border-color:var(--rv-text-dim);color:var(--rv-text-strong)}
.fr-chip.is-on{background:var(--rv-accent);border-color:var(--rv-accent);color:#fff}
.fr-chip.is-on .cb-icon{color:#fff}
.fr-chip__n{font-size:var(--rv-fs-micro);color:var(--rv-text-dim);margin-left:var(--rv-s-1)}
.fr-chip.is-on .fr-chip__n{color:#fff}

/* ── one topic ── */
.fr-topichead{margin-bottom:var(--rv-s-5)}
.fr-topichead__t{display:flex;align-items:center;margin:var(--rv-s-2) 0;font-family:var(--cb-font-display);font-size:var(--rv-fs-h1);font-weight:800;color:var(--rv-text-strong);line-height:1.1}
.fr-topichead__m{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rv-s-2) var(--rv-s-4);font-size:var(--rv-fs-small);color:var(--rv-text-dim)}
.fr-posts{display:flex;flex-direction:column;gap:var(--rv-s-3);margin-bottom:var(--rv-s-6)}
.fr-post{display:grid;grid-template-columns:minmax(9rem,12rem) minmax(0,1fr);background:var(--rv-surface-1);border:1px solid var(--rv-border-1)}
.fr-post--staff{border-color:var(--rv-accent-line);box-shadow:inset 3px 0 0 var(--rv-accent)}
.fr-post__who{display:flex;flex-direction:column;align-items:center;gap:var(--rv-s-1);padding:var(--rv-s-4);background:var(--rv-surface-2);border-right:1px solid var(--rv-border-1);text-align:center}
.fr-post__name{display:block;font-family:var(--cb-font-display);font-size:var(--rv-fs-h3);font-weight:700;color:var(--rv-text-strong)}
.fr-post__role{display:block;font-size:var(--rv-fs-micro);font-weight:700;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-dim)}
.fr-post__role--staff{color:var(--rv-text-strong)}
.fr-post__role--staff::before{content:"RV ";display:inline;padding:0 var(--rv-s-1);margin-right:var(--rv-s-1);background:var(--rv-accent);color:#fff}
.fr-post__count{display:block;font-size:var(--rv-fs-micro);color:var(--rv-text-faint)}
.fr-post__main{padding:var(--rv-s-4) var(--rv-s-5);min-width:0}
.fr-post__meta{display:flex;justify-content:space-between;gap:var(--rv-s-3);font-size:var(--rv-fs-micro);color:var(--rv-text-dim);margin-bottom:var(--rv-s-3)}
.fr-post__meta a{color:var(--rv-text-dim);text-decoration:none}
.fr-post__body{font-size:var(--rv-fs-body);color:var(--rv-text);line-height:1.6;overflow-wrap:anywhere}
.fr-post__body p{margin:0 0 var(--rv-s-3)}
.fr-post__body p:last-child{margin-bottom:0}
.fr-reply{display:flex;flex-direction:column;gap:var(--rv-s-3);padding:var(--rv-s-5);background:var(--rv-surface-1);border:1px solid var(--rv-border-1)}
.fr-reply--out{flex-direction:row;align-items:center;justify-content:space-between;color:var(--rv-text-dim)}

/* avatars: square, a red frame for staff (the reference's framed portraits) */
.fr-av{display:inline-grid;place-items:center;width:var(--rv-s-7);height:var(--rv-s-7);object-fit:cover;background:var(--rv-surface-3);border:1px solid var(--rv-border-2);font-family:var(--cb-font-display);font-weight:800;color:var(--rv-text-strong)}
.fr-av--lg{width:calc(var(--rv-s-7) + var(--rv-s-5));height:calc(var(--rv-s-7) + var(--rv-s-5));font-size:var(--rv-fs-h2)}
.fr-av--staff{border:2px solid var(--rv-accent);box-shadow:0 0 0 2px var(--rv-surface-1),0 0 0 3px var(--rv-accent-line)}

/* ── the RV Tracker ── */
.fr-tracker{display:grid;grid-template-columns:minmax(9rem,11rem) minmax(0,1fr);gap:var(--rv-s-6);align-items:start}
.fr-side{display:flex;flex-direction:column;gap:var(--rv-s-1);position:sticky;top:calc(var(--cb-nav-h) + var(--cb-tabs-h) + var(--rv-s-4))}
.fr-side__i{padding:var(--rv-s-3) var(--rv-s-4);font-weight:700;color:var(--rv-text);text-decoration:none;border-left:3px solid transparent}
.fr-side__i:hover{background:var(--rv-surface-2);color:var(--rv-text-strong)}
.fr-side__i.is-on{background:var(--rv-surface-2);color:var(--rv-text-strong);border-left-color:var(--rv-accent)}
.fr-tlist{display:flex;flex-direction:column}
.fr-tpost{display:flex;flex-direction:column;gap:var(--rv-s-2);padding:var(--rv-s-5) 0;border-bottom:1px solid var(--rv-border-1)}
.fr-tpost:first-child{padding-top:0}
.fr-tpost__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--rv-s-3)}
.fr-tpost__t{font-family:var(--cb-font-display);font-size:var(--rv-fs-h2);font-weight:700;color:var(--rv-text-strong);text-decoration:none}
.fr-tpost__t:hover{text-decoration:underline;text-underline-offset:4px}
.fr-tpost__sub{display:flex;align-items:center;gap:var(--rv-s-2);font-size:var(--rv-fs-micro);font-weight:700;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-dim)}
.fr-tpost__who{display:flex;align-items:center;gap:var(--rv-s-3);margin:var(--rv-s-2) 0}
.fr-tpost__x{font-size:var(--rv-fs-body);color:var(--rv-text);line-height:1.6;text-decoration:none;max-width:90ch}
.fr-tpost__x:hover{color:var(--rv-text-strong)}

/* ── posting: the composer, inline edit, errors, post tools, the staff toolbar, page numbers ── */
.fr-compose .cb-field + .cb-field{margin-top:var(--rv-s-4)}
.fr-compose .cb-btns,.fr-edit .cb-btns{margin-top:var(--rv-s-2)}
.fr-edit{display:flex;flex-direction:column;gap:var(--rv-s-3)}
.fr-err{margin:0;font-size:var(--rv-fs-small);font-weight:600;color:var(--rv-text-strong);padding:var(--rv-s-2) var(--rv-s-3);background:var(--rv-accent-weak);border-left:3px solid var(--rv-accent)}
.fr-err[hidden]{display:none}
.fr-post__right{display:inline-flex;align-items:center;gap:var(--rv-s-4)}
.fr-post__tools{display:inline-flex;gap:var(--rv-s-3)}
.fr-link{appearance:none;background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--rv-text-dim);cursor:pointer}
.fr-link:hover{color:var(--rv-text-strong);text-decoration:underline;text-underline-offset:3px}
.fr-link:focus-visible{outline:2px solid var(--rv-focus);outline-offset:2px}
.fr-mod{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rv-s-2);margin-top:var(--rv-s-4);padding:var(--rv-s-3);background:var(--rv-surface-1);border:1px solid var(--rv-border-1);border-left:3px solid var(--rv-accent)}
.fr-mod__l{display:inline-flex;align-items:center;margin-right:var(--rv-s-2);font-family:var(--cb-font-display);font-weight:800;text-transform:uppercase;letter-spacing:var(--cb-track-wide);color:var(--rv-text-strong)}
.fr-pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--rv-s-3);margin:var(--rv-s-4) 0}
.fr-pager > :last-child{justify-self:end}
.fr-pager__n{font-size:var(--rv-fs-small);color:var(--rv-text-dim);font-variant-numeric:tabular-nums}

/* ── phones and tablets ── */
@media (max-width:959px){
  .fr-cards{grid-template-columns:1fr}
  .fr-row{grid-template-columns:minmax(0,1fr) 4.5rem 4rem}
  .fr-row > :nth-child(2),.fr-row > :nth-child(4){display:none}
  .fr-tracker{grid-template-columns:1fr}
  .fr-side{position:static;flex-direction:row}
  .fr-post{grid-template-columns:1fr}
  .fr-post__who{flex-direction:row;justify-content:flex-start;text-align:left;border-right:0;border-bottom:1px solid var(--rv-border-1)}
  .fr-post__who .fr-av--lg{width:var(--rv-s-7);height:var(--rv-s-7);font-size:var(--rv-fs-body)}
  .fr-reply--out{flex-direction:column;align-items:flex-start}
}
@media (max-width:559px){
  .fr-card{grid-template-columns:1fr}
  .fr-tab{padding:var(--rv-s-3);font-size:var(--rv-fs-body)}
}
