:root {
  --forum-accent: light-dark(#165a48, #71cbb0);
  --forum-accent-strong: light-dark(#0d4537, #9ae4cd);
  --forum-on-accent: light-dark(#fff, #071d17);
  --forum-soft: color-mix(in srgb, var(--forum-accent) 8%, var(--paper));
  --forum-rule: color-mix(in srgb, var(--ink-700) 20%, transparent);
  --forum-strong-rule: color-mix(in srgb, var(--ink-700) 48%, transparent);
  --forum-wrap: 78rem;
  /* --form-control-border: definição única em application.css (D2). */
  --form-control-background: var(--paper);
  --form-control-color: var(--ink-900);
  --form-focus-color: var(--forum-accent);
  --form-label-color: var(--ink-500);
  --form-help-color: var(--ink-500);
}

/* Dentro do chrome os tokens do braço recalculam sobre o material do
   workspace; o :root acima segue como fallback das páginas públicas. */
.workspace-chrome .forum-main {
  --forum-soft: color-mix(in srgb, var(--forum-accent) 8%, var(--workspace-surface));
  --forum-rule: var(--workspace-rule);
  --forum-strong-rule: var(--workspace-rule-strong);
  --forum-wrap: var(--workspace-content-width);
  --form-focus-color: var(--forum-accent);
  --form-error-color: var(--workspace-danger);
}

.forum-address { margin: 0 0 .5rem; color: var(--ink-500); font-size: .8rem; overflow-wrap: anywhere; }
.forum-address code { font-family: var(--font-mono); letter-spacing: normal; text-transform: none; }

.forum-main {
  width: min(100%, calc(var(--forum-wrap) + 2rem));
  box-sizing: border-box;
  margin-inline: auto;
  padding-top: 1rem;
  padding-right: calc(1rem + var(--safe-area-right, 0px));
  padding-bottom: clamp(3rem, 7vw, 6rem);
  padding-left: calc(1rem + var(--safe-area-left, 0px));
}

.forum-main--reading { max-width: var(--workspace-reading-width, 64rem); }
.forum-main--thread { max-width: 74rem; }
.forum-main--workspace { padding-top: 0; }

.forum-nav {
  min-height: 3.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  border-bottom: 1px solid var(--forum-rule);
  color: var(--ink-700);
  font-size: .78rem;
}

.forum-nav__primary,
.forum-nav__actions {
  display: flex;
  align-items: center;
  gap: clamp(.7rem, 2vw, 1.4rem);
}
.forum-nav a:not(.workspace-button) {
  position: relative;
  padding-block: 1rem;
  color: inherit;
  text-decoration: none;
}
.forum-nav a:not(.workspace-button)::after {
  position: absolute;
  inset: auto 0 -.0625rem;
  height: 2px;
  background: var(--forum-accent);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--workspace-motion-fast, var(--motion-standard)) var(--workspace-ease, var(--ease-standard));
}

.forum-nav a:hover::after,
.forum-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.forum-nav a[aria-current="page"] { color: var(--forum-accent-strong); font-weight: 750; }

.forum-eyebrow {
  margin: 0 0 .65rem;
  color: var(--forum-accent-strong);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.forum-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr);
  align-items: end;
  gap: clamp(2rem, 7vw, 6rem);
  padding-block: clamp(3rem, 8vw, 7rem) clamp(2.5rem, 6vw, 4.5rem);
  animation: forum-rise var(--workspace-motion-deliberate, var(--motion-deliberate)) var(--workspace-ease, var(--ease-standard)) both;
}

.forum-hero h1,
.forum-page-head h1 {
  max-width: 18ch;
  font-size: clamp(2.35rem, 5.4vw, 5rem);
  line-height: .98;
}

.forum-hero > div > p:last-child,
.forum-page-head > div > p:last-child {
  max-width: 62ch;
  margin: 1.2rem 0 0;
  color: var(--ink-700);
  font-size: clamp(.95rem, 1.6vw, 1.08rem);
  line-height: 1.75;
}

.forum-hero__facts {
  margin: 0;
  border-top: 1px solid var(--ink-900);
}

.forum-hero__facts > div {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 1rem;
  border-bottom: 1px solid var(--forum-rule);
  padding-block: .9rem;
}

.forum-hero__facts dt { color: var(--ink-500); font-size: .7rem; }
.forum-hero__facts dd { margin: 0; font-family: var(--font-display); font-size: 1.35rem; }

.forum-main--workspace .forum-hero {
  grid-template-columns: minmax(0, 1fr) minmax(26rem, .7fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  padding-block: 1.55rem 1.25rem;
}
.forum-main--workspace .forum-hero h1 { max-width: 24ch; font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.03; }
.forum-main--workspace .forum-hero > div > p:last-child { max-width: 68ch; margin-top: .7rem; font-size: .9rem; line-height: 1.55; }
.forum-main--workspace .forum-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.forum-main--workspace .forum-hero__facts > div { display: block; border-right: 1px solid var(--forum-rule); border-bottom: 0; padding: .75rem; }
.forum-main--workspace .forum-hero__facts > div:last-child { border-right: 0; }
.forum-main--workspace .forum-hero__facts dd { margin-top: .35rem; font-size: 1.2rem; }

.forum-space-picker {
  position: relative;
  border-block: 1px solid var(--forum-rule);
}
.forum-space-picker details { position: relative; }
.forum-space-picker summary {
  min-height: 3.35rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  padding-block: .55rem;
  cursor: pointer;
  list-style: none;
}
.forum-space-picker summary::-webkit-details-marker { display: none; }
.forum-space-picker summary > span,
.forum-space-picker summary > small { color: var(--ink-500); font-size: .7rem; }
.forum-space-picker summary > strong { font-size: .78rem; }
.forum-space-picker summary > small { margin-left: auto; }
.forum-space-picker summary::after {
  color: var(--forum-accent-strong);
  content: "↓";
  font-size: .85rem;
  transition: transform var(--workspace-motion-fast, var(--motion-standard)) var(--workspace-ease, var(--ease-standard));
}
.forum-space-picker details[open] summary::after { transform: rotate(180deg); }
.forum-space-picker__menu {
  position: absolute;
  z-index: 20;
  inset: calc(100% + 1px) 0 auto;
  max-height: min(65dvh, 31rem);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow-y: auto;
  border-bottom: 1px solid var(--forum-strong-rule);
  background: var(--paper);
  box-shadow: 0 1rem 2rem color-mix(in srgb, var(--ink-900) 10%, transparent);
  scrollbar-width: none;
}
.forum-space-picker__menu::-webkit-scrollbar { display: none; }
.forum-space-picker__hint { display: none; }
.forum-space-picker__menu a {
  min-height: 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  border-right: 1px solid var(--forum-rule);
  border-bottom: 1px solid var(--forum-rule);
  padding: .7rem .8rem;
  color: var(--ink-700);
  font-size: .72rem;
  text-decoration: none;
}
.forum-space-picker__menu a:hover,
.forum-space-picker__menu a[aria-current="page"] { background: var(--forum-soft); color: var(--forum-accent-strong); }
.forum-space-picker__menu a[aria-current="page"] { font-weight: 750; }
.forum-space-picker__menu small { color: var(--ink-500); }

.forum-filters {
  display: flex;
  align-items: end;
  gap: .8rem;
  margin-block: 1.5rem;
  border-bottom: 1px solid var(--forum-rule);
  padding-bottom: 1.25rem;
}
.forum-main--workspace .forum-filters { margin-block: 1rem; padding-bottom: 1rem; }
.forum-main--workspace .forum-thread-row { padding-block: 1.1rem; }

.forum-results-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: var(--ink-500);
  font-size: .72rem;
}

.forum-results-head p { margin: 0; }
.forum-results-head strong { color: var(--ink-900); font-family: var(--font-display); font-size: 1.25rem; }
.forum-thread-list { margin-top: .8rem; border-top: 1px solid var(--ink-900); }

.forum-thread-row {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr) minmax(9rem, auto);
  gap: 1.5rem;
  border-bottom: 1px solid var(--forum-rule);
  margin-inline: -.65rem;
  padding: 1.45rem .65rem;
  transition: background var(--workspace-motion-fast, var(--motion-standard)) var(--workspace-ease, var(--ease-standard));
}

.forum-thread-row:hover { background: var(--forum-soft); }
.forum-thread-row__signal { display: grid; align-content: start; color: var(--ink-500); }
.forum-thread-row__signal strong { color: var(--ink-900); font-family: var(--font-display); font-size: 1.65rem; line-height: 1; }
.forum-thread-row__signal span { margin-top: .35rem; font-size: .7rem; }
.forum-thread-row__meta { display: flex; flex-wrap: wrap; gap: .6rem; color: var(--ink-500); font-size: .7rem; }
.forum-thread-row__meta a { color: var(--forum-accent-strong); text-decoration: none; }
.forum-thread-row h2 { margin-top: .42rem; font-size: clamp(1.08rem, 2vw, 1.35rem); }
.forum-thread-row h2 a { color: var(--ink-900); text-decoration: none; }
.forum-thread-row__body > p { max-width: 70ch; margin: .55rem 0 0; color: var(--ink-700); font-size: .8rem; line-height: 1.65; }
.forum-thread-row__activity { display: grid; align-content: center; justify-items: end; color: var(--ink-500); font-size: .7rem; text-align: right; }

.forum-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.forum-tags li { border: 1px solid var(--forum-rule); border-radius: 99rem; padding: .22rem .5rem; color: var(--ink-500); font-size: .7rem; }

.forum-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
  color: var(--ink-500);
  font-size: .72rem;
}
.forum-pagination > div { display: flex; gap: .5rem; }

.forum-result-actions { display: flex; flex-wrap: wrap; gap: .65rem; }

.forum-page-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 2rem;
  padding-block: var(--workspace-section-space, clamp(2.5rem, 5vw, 4.5rem));
  animation: forum-rise var(--workspace-motion-deliberate, var(--motion-deliberate)) var(--workspace-ease, var(--ease-standard)) both;
}
.forum-page-head--wide h1 { max-width: 20ch; }
.forum-head-stat { min-width: 12rem; margin: 0; border-top: 1px solid var(--ink-900); padding-top: 1rem; }
.forum-head-stat dt { color: var(--ink-500); font-size: .7rem; }
.forum-head-stat dd { margin: .4rem 0 0; font-family: var(--font-display); font-size: 2.8rem; line-height: 1; }

.forum-composer--new {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(16rem, .55fr);
  gap: clamp(2rem, 6vw, 4rem);
}
.forum-composer__primary { display: grid; gap: 1.2rem; }
.forum-composer__rail { border-top: 1px solid var(--ink-900); padding-top: 1rem; }
.forum-composer__rail > * + * { margin-top: 1.2rem; }
.forum-composer__rail > p { color: var(--ink-500); font-size: .72rem; line-height: 1.6; }
.forum-composer-options { border-bottom: 1px solid var(--forum-rule); padding-bottom: .75rem; }
.forum-composer-options__status { margin: .65rem 0 0; color: var(--form-help-color); font-size: var(--form-help-font-size); line-height: 1.5; }
.forum-inline-check { min-height: var(--form-choice-min-height); display: flex; align-items: center; gap: .55rem; color: var(--ink-700); font-size: var(--form-control-font-size); }
.forum-inline-check input { width: 1rem; height: 1rem; accent-color: var(--forum-accent); }
.forum-form-errors { margin-bottom: 1.5rem; border-left: 3px solid var(--form-error-color); padding: .85rem 1rem; background: color-mix(in srgb, var(--form-error-color) 5%, var(--paper)); }
.forum-form-errors h2 { font-size: 1rem; }
.forum-form-errors ul { display: grid; gap: .3rem; margin: .55rem 0 0; padding-left: 1.1rem; color: var(--ink-700); font-size: .76rem; }
.forum-form-errors a { color: inherit; text-decoration: underline; }

.forum-tag-picker { position: relative; }
.forum-tag-picker__control { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .35rem; }
.forum-tag-picker__clear { align-self: end; }
.forum-tag-picker__panel {
  position: absolute;
  z-index: 30;
  inset: calc(100% + .25rem) 0 auto;
  max-height: min(21rem, 55dvh);
  overflow-y: auto;
  border: 1px solid var(--forum-strong-rule);
  background: var(--paper);
  box-shadow: 0 .8rem 1.8rem color-mix(in srgb, var(--ink-900) 12%, transparent);
  scrollbar-width: none;
}
.forum-tag-picker__panel[hidden] { display: none; }
.forum-tag-picker__panel::-webkit-scrollbar { display: none; }
.forum-tag-picker__results { display: grid; }
.forum-tag-picker__results button { display: flex; justify-content: space-between; gap: .75rem; text-align: left; }

.forum-tag-picker__results small { color: var(--ink-500); font-size: .65rem; white-space: nowrap; }
.forum-tag-picker__status { margin: 0; padding: .55rem .7rem; color: var(--ink-500); font-size: .68rem; line-height: 1.4; }
.forum-tag-picker__heading { display: grid; gap: .25rem; }
.forum-tag-picker__heading label { color: var(--form-label-color); font-size: var(--form-label-font-size); font-weight: 750; }
.forum-tag-picker__heading label span,
.forum-tag-picker__heading small { color: var(--ink-500); font-weight: 450; }
.forum-tag-picker--multiple .forum-tag-picker__panel { position: static; max-height: 14rem; margin-top: .5rem; border-color: var(--forum-rule); box-shadow: none; }
.forum-tag-picker__selection { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .6rem; }
.forum-tag-picker__selection[hidden] { display: none; }
.forum-tag-picker__selected-item { display: inline-flex; align-items: center; gap: .35rem; border: 1px solid var(--forum-rule); border-radius: 99rem; background: var(--forum-soft); padding: .28rem .35rem .28rem .55rem; color: var(--forum-accent-strong); font-size: .7rem; font-weight: 700; }
.forum-tag-picker__selected-item button { position: relative; }

.forum-form-footer { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; gap: .75rem; border-top: 1px solid var(--forum-rule); padding-top: 1rem; }

.forum-duplicate-suggestions { display: grid; gap: .75rem; border-top: 1px solid var(--forum-rule); padding-top: 1rem; }
.forum-duplicate-suggestions[hidden] { display: none; }
.forum-duplicate-suggestions header > p:last-child,
.forum-duplicate-suggestions > p { margin: 0; color: var(--ink-500); font-size: .72rem; line-height: 1.55; }
.forum-duplicate-suggestions header .forum-eyebrow { margin-bottom: .35rem; }
.forum-duplicate-suggestions > div { border-top: 1px solid var(--forum-rule); }
.forum-duplicate-suggestions a { display: grid; gap: .2rem; border-bottom: 1px solid var(--forum-rule); padding-block: .7rem; color: var(--ink-900); text-decoration: none; }
.forum-duplicate-suggestions a:hover strong { color: var(--forum-accent-strong); }
.forum-duplicate-suggestions a strong { font-size: .76rem; }
.forum-duplicate-suggestions a span { color: var(--ink-500); font-size: .68rem; }

.forum-breadcrumb { display: flex; gap: .55rem; margin-top: 1.5rem; color: var(--ink-500); font-size: .7rem; }
.forum-breadcrumb a { color: var(--forum-accent-strong); }
.forum-thread-hero { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(15rem, .45fr); gap: clamp(2rem, 6vw, 5rem); border-bottom: 1px solid var(--forum-rule); padding-block: clamp(2.5rem, 6vw, 5rem); }
.forum-thread-hero h1 { margin-top: .75rem; font-size: clamp(2.15rem, 4.5vw, 4.25rem); }
.forum-thread-hero__main > .forum-prose { margin-top: 1.5rem; }
.forum-thread-hero__aside { border-top: 1px solid var(--ink-900); padding-top: 1rem; }
.forum-author { display: flex; align-items: center; gap: .75rem; }
.forum-author > span,
.forum-avatar { width: 2.65rem; height: 2.65rem; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--forum-soft); color: var(--forum-accent-strong); font-family: var(--font-display); font-weight: 750; }
.forum-author small,
.forum-author strong { display: block; }
.forum-author small { color: var(--ink-500); font-size: .7rem; }
.forum-author strong { margin-top: .12rem; font-size: .76rem; }
.forum-thread-hero__aside dl { margin: 1.25rem 0 0; }
.forum-thread-hero__aside dl > div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--forum-rule); padding-block: .65rem; }
.forum-thread-hero__aside dt { color: var(--ink-500); font-size: .7rem; }
.forum-thread-hero__aside dd { margin: 0; font-size: .72rem; text-align: right; }
.forum-thread-actions { display: grid; gap: .35rem; margin-top: 1rem; }
.forum-thread-actions form,
.forum-thread-actions .workspace-button { width: 100%; }

.forum-prose { color: var(--ink-700); line-height: 1.78; overflow-wrap: anywhere; }
.forum-prose > * + * { margin-top: .9rem; }
.forum-prose h1,
.forum-prose h2,
.forum-prose h3 { color: var(--ink-900); font-family: var(--font-display); }
.forum-prose ul { padding-left: 1.2rem; list-style: disc; }
.forum-prose ol { padding-left: 1.2rem; list-style: decimal; }
.forum-prose blockquote { border-left: 2px solid var(--forum-accent); padding-left: 1rem; color: var(--ink-500); }
.forum-prose pre { overflow-x: auto; background: var(--forum-soft); padding: .8rem; font-size: .75rem; }
.forum-in-reply-to { display: grid; gap: .25rem; margin: 0 0 .85rem; border-left: 2px solid var(--forum-rule); padding-left: .75rem; color: var(--ink-500); font-size: .72rem; line-height: 1.5; }
.forum-in-reply-to a { color: var(--forum-accent-strong); font-weight: 750; }
.forum-in-reply-to span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.forum-prose code { background: var(--forum-soft); padding: .08rem .25rem; font-size: .86em; }
.forum-prose a { color: var(--forum-accent-strong); text-decoration: underline; }
.forum-prose table { width: 100%; font-size: .78rem; }
.forum-prose th,
.forum-prose td { border-bottom: 1px solid var(--forum-rule); padding: .55rem; text-align: left; }

.forum-notice { margin-top: 1rem; border-left: 3px solid var(--forum-accent); background: var(--forum-soft); padding: .85rem 1rem; color: var(--ink-700); font-size: .78rem; }
.forum-attachments { border-bottom: 1px solid var(--forum-rule); padding-block: 1.5rem; }
.forum-attachments > header { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.forum-attachments > header .forum-eyebrow { margin-bottom: .3rem; }
.forum-attachments > header > p { max-width: 52ch; margin: 0; color: var(--ink-500); font-size: .72rem; line-height: 1.5; text-align: right; }
.forum-attachments h2 { font-size: 1rem; }
.forum-attachment-list { display: grid; gap: .4rem; margin: .8rem 0 0; padding: 0; list-style: none; }
.forum-attachment-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--forum-rule); padding-block: .55rem; }
.forum-attachment-list span strong,
.forum-attachment-list span small { display: block; }
.forum-attachment-list strong { font-size: .75rem; }
.forum-attachment-list small { margin-top: .18rem; color: var(--ink-500); font-size: .7rem; }
.forum-attachment-list__actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.forum-attachment-list__actions form { margin: 0; }

.forum-posts { padding-block: var(--workspace-section-space, clamp(2.5rem, 5vw, 4.5rem)); }
.forum-posts > header { display: flex; justify-content: space-between; align-items: end; border-bottom: 1px solid var(--ink-900); padding-bottom: .9rem; }
.forum-posts > header h2 { font-size: 1.55rem; }
.forum-posts > header > span { font-family: var(--font-display); font-size: 2rem; }
.forum-post { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: 1.5rem; border-bottom: 1px solid var(--forum-rule); padding-block: 1.75rem; scroll-margin-top: 5rem; }
.forum-post--accepted { border-left: 3px solid var(--forum-accent); padding-left: 1rem; }
.forum-post__author { display: grid; align-content: start; justify-items: start; }
.forum-post__author strong { margin-top: .6rem; font-size: .72rem; }
.forum-post__author small { color: var(--ink-500); font-size: .7rem; }
.forum-post__body > header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.forum-post__body > header > div { display: flex; gap: .45rem; }
.forum-post__body > header a { color: var(--ink-500); font-size: .7rem; }

.forum-quote { display: grid; gap: .25rem; margin-bottom: 1rem; border-left: 2px solid var(--forum-rule); padding-left: .8rem; color: var(--ink-500); font-size: .72rem; }
.forum-post__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; border-top: 1px solid var(--forum-rule); padding-top: .75rem; }
.forum-votes,
.forum-post__actions,
.forum-action-row { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }

.forum-votes > span { color: var(--ink-500); font-size: .7rem; }

.forum-popover { position: relative; }
.forum-popover__dialog { width: min(24rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); overflow: auto; border: 1px solid var(--forum-rule); border-radius: var(--workspace-radius-surface, .5rem); background: var(--paper); color: var(--ink-900); padding: 0; box-shadow: 0 1.25rem 4rem color-mix(in srgb, var(--shadow-color, #000) 38%, transparent); }
.forum-popover__dialog::backdrop { background: color-mix(in srgb, var(--scrim, #000) 54%, transparent); backdrop-filter: blur(3px); }
.forum-popover__dialog .forum-stack-form { padding: 1rem; }
.forum-popover__heading { border-bottom: 1px solid var(--forum-rule); padding-bottom: .8rem; }
.forum-popover__heading p { margin: 0 0 .3rem; color: var(--forum-accent-strong); font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.forum-popover__heading h2 { margin: 0; font-size: 1.45rem; }
.forum-popover__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.forum-stack-form { display: grid; gap: var(--form-stack-gap); }

.forum-uploader { display: grid; grid-template-columns: auto minmax(7rem, 1fr) auto auto; align-items: center; gap: .6rem; margin-top: .85rem; color: var(--form-help-color); font-size: var(--form-help-font-size); }
.forum-uploader__label { min-height: var(--form-control-min-height); display: inline-flex; align-items: center; color: var(--forum-accent-strong); text-decoration: underline; cursor: pointer; }
.forum-uploader__label input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.forum-uploader__label:focus-within { outline: 3px solid var(--workspace-focus, var(--focus-ring)); outline-offset: 3px; }
.forum-uploader progress { width: 100%; accent-color: var(--forum-accent); }

.forum-reply,
.forum-join,
.forum-manage { display: grid; grid-template-columns: minmax(13rem, .45fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); border-top: 1px solid var(--ink-900); padding-block: var(--workspace-section-space, clamp(2.5rem, 5vw, 4.5rem)); }
.forum-reply > div > p:last-child,
.forum-join p { margin-top: .7rem; color: var(--ink-700); font-size: .8rem; line-height: 1.65; }
.forum-reply .forum-composer { display: grid; gap: .75rem; }
.forum-reply-context { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-left: 2px solid var(--forum-accent); background: var(--forum-soft); padding: .7rem .8rem; color: var(--ink-700); font-size: .74rem; }
.forum-reply-context p { margin: 0; }
.forum-citation-picker { display: grid; gap: .75rem; border-top: 1px solid var(--forum-rule); padding-top: 1rem; }
.forum-citation-picker__trigger-row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.forum-citation-picker__trigger-row > span,
.forum-citation-dialog__selection > div:first-child > span { color: var(--ink-500); font-size: .7rem; }
.forum-citation-dialog { width: min(44rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); overflow: auto; border: 1px solid var(--forum-strong-rule); border-radius: var(--workspace-radius-surface, .5rem); background: var(--paper); color: var(--ink-900); padding: 0; box-shadow: 0 1.5rem 5rem color-mix(in srgb, var(--shadow-color, #000) 42%, transparent); }
.forum-citation-dialog::backdrop { background: color-mix(in srgb, var(--scrim, #000) 58%, transparent); backdrop-filter: blur(4px); }
.forum-citation-dialog__body { display: grid; gap: 1.25rem; padding: clamp(1.25rem, 4vw, 2rem); }
.forum-citation-dialog__body > header { border-bottom: 1px solid var(--ink-900); padding-bottom: 1rem; }
.forum-citation-dialog__body > header h2 { font-size: clamp(1.55rem, 4vw, 2.15rem); }
.forum-citation-dialog__body > header > p:last-child { max-width: 62ch; margin: .65rem 0 0; color: var(--ink-700); font-size: .8rem; line-height: 1.65; }
.forum-citation-dialog__body > footer { display: flex; justify-content: flex-end; border-top: 1px solid var(--forum-rule); padding-top: 1rem; }
.forum-citation-tabs { display: flex; gap: .35rem; overflow-x: auto; border-bottom: 1px solid var(--forum-rule); }
.forum-citation-tab { flex: none; }
.forum-citation-tab.is-active { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; }
.forum-citation-results { max-height: 18rem; overflow-y: auto; border-top: 1px solid var(--forum-rule); }
.forum-citation-result { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; border-bottom: 1px solid var(--forum-rule); padding-block: .8rem; }
.forum-citation-result strong,
.forum-citation-result small { display: block; }
.forum-citation-result strong { font-size: .78rem; }
.forum-citation-result small { margin-top: .2rem; color: var(--ink-500); font-size: .7rem; line-height: 1.5; }
.forum-citation-dialog__selection { display: grid; gap: .7rem; border-left: 2px solid var(--forum-accent); background: var(--forum-soft); padding: .8rem 1rem; }
.forum-citation-dialog__selection > div:first-child { display: flex; justify-content: space-between; gap: 1rem; font-size: .75rem; }
.forum-citation-selection { display: flex; flex-wrap: wrap; gap: .45rem; }
.forum-citation-chip { display: inline-flex; min-height: 2.25rem; align-items: center; gap: .5rem; border: 1px solid var(--forum-rule); border-radius: 99rem; background: var(--paper); padding: .25rem .35rem .25rem .7rem; color: var(--ink-700); font-size: .7rem; }
.forum-citation-chip button { position: relative; }

.forum-arm-references { display: grid; grid-template-columns: minmax(10rem, .42fr) minmax(0, 1fr); gap: 1rem 2rem; margin-top: 1.4rem; border-top: 1px solid var(--forum-rule); padding-top: 1rem; }
.forum-arm-references header > strong { display: block; font-family: var(--font-display); font-size: 1rem; }
.forum-arm-references header > p:last-child { margin: .45rem 0 0; color: var(--ink-500); font-size: .7rem; line-height: 1.55; }
.forum-arm-references ul { margin: 0; border-top: 1px solid var(--forum-rule); padding: 0; list-style: none; }
.forum-arm-references li { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: .15rem .75rem; border-bottom: 1px solid var(--forum-rule); padding-block: .65rem; }
.forum-arm-references li small { grid-row: 1 / span 2; color: var(--ink-500); font-size: .66rem; }
.forum-arm-references li a,
.forum-arm-references li strong { color: var(--ink-900); font-size: .75rem; font-weight: 750; }
.forum-arm-references li span { color: var(--ink-500); font-size: .66rem; }
.forum-manage { grid-template-columns: minmax(13rem, .35fr) minmax(0, 1fr); }
.forum-manage details { grid-column: 2; border-bottom: 1px solid var(--forum-rule); padding-block: .75rem; }
.forum-manage summary { color: var(--forum-accent-strong); font-size: .76rem; cursor: pointer; }
.forum-manage details .forum-stack-form { margin-top: .85rem; }

.forum-knowledge-list { border-top: 1px solid var(--ink-900); }
.forum-knowledge-list > article { display: grid; grid-template-columns: minmax(13rem, .55fr) minmax(0, 1fr); gap: 1.5rem 3rem; border-bottom: 1px solid var(--forum-rule); padding-block: 1.5rem; }
.forum-knowledge-list h2 { font-size: 1.35rem; }
.forum-knowledge-list h2 a { color: var(--ink-900); }
.forum-knowledge-answer { grid-column: 2; }
.forum-knowledge-answer span { color: var(--forum-accent-strong); font-size: .7rem; font-weight: 750; }
.forum-knowledge-answer p { margin: .45rem 0 0; color: var(--ink-700); font-size: .8rem; line-height: 1.65; }
.forum-knowledge-answer a { display: inline-block; margin-top: .65rem; color: var(--forum-accent-strong); font-size: .72rem; font-weight: 750; }
.forum-knowledge-list footer { grid-column: 2; display: flex; justify-content: space-between; color: var(--ink-500); font-size: .7rem; }

.forum-leaderboard { margin: 0; padding: 0; border-top: 1px solid var(--ink-900); list-style: none; }
.forum-leaderboard li { display: grid; grid-template-columns: 2.2rem 2.8rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; border-bottom: 1px solid var(--forum-rule); padding-block: 1rem; }
.forum-leaderboard__rank { color: var(--ink-500); font-family: var(--font-display); font-size: 1.3rem; }
.forum-leaderboard li > div strong,
.forum-leaderboard li > div small { display: block; }
.forum-leaderboard li > div small { margin-top: .2rem; color: var(--ink-500); font-size: .7rem; }
.forum-leaderboard dl { display: grid; grid-template-columns: auto auto; gap: .15rem 1rem; margin: 0; }
.forum-leaderboard dt { color: var(--ink-500); font-size: .7rem; }
.forum-leaderboard dd { margin: 0; font-family: var(--font-display); text-align: right; }

.forum-tracking-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 4rem); }
.forum-tracking-return { margin-bottom: clamp(2rem, 6vw, 4rem); }
.forum-tracking-return > header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--ink-900); padding-bottom: .8rem; }
.forum-tracking-return > header h2 { font-size: 1.45rem; }
.forum-tracking-return > header > span { font-family: var(--font-display); font-size: 1.4rem; }
.forum-tracking-grid > section > header { display: flex; justify-content: space-between; border-bottom: 1px solid var(--ink-900); padding-bottom: .8rem; }
.forum-tracking-grid > section > header h2 { font-size: 1.25rem; }
.forum-compact-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; border-bottom: 1px solid var(--forum-rule); padding-block: 1rem; }
.forum-compact-list small,
.forum-compact-list time { color: var(--ink-500); font-size: .7rem; }
.forum-compact-list h3 { margin-top: .3rem; font-family: var(--font-display); font-size: 1rem; }
.forum-compact-list p { margin: .35rem 0 0; color: var(--ink-700); font-size: .72rem; line-height: 1.55; }
.forum-compact-list__signals { display: flex; flex-wrap: wrap; gap: .35rem .65rem; margin-bottom: .35rem; color: var(--ink-500); font-size: .7rem; }
.forum-compact-list__signals strong { color: var(--forum-accent-strong); }

.forum-moderation-list { border-top: 1px solid var(--ink-900); }
.forum-moderation-list > article { border-bottom: 1px solid var(--forum-rule); padding-block: 1.25rem; }
.forum-moderation-list > article > header { display: flex; justify-content: space-between; gap: 1rem; color: var(--ink-500); font-size: .7rem; }
.forum-moderation-list > article > header > div { display: flex; gap: .5rem; }
.forum-moderation-list__body { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: 2rem; margin-top: 1rem; }
.forum-moderation-list h2 { font-size: 1.25rem; }
.forum-moderation-list .forum-prose { margin-block: .8rem; font-size: .78rem; }

.forum-ops-create { border-block: 1px solid var(--ink-900); padding-block: 1.25rem; }
.forum-ops-create h2 { margin-bottom: 1rem; }
.forum-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: var(--form-grid-gap); }
.forum-ops-list > article { border-bottom: 1px solid var(--forum-rule); padding-block: 1.5rem; }
.forum-ops-list > article > header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.forum-ops-list > article > header h2 { font-size: 1.2rem; }
.forum-ops-list > article > form + form { margin-top: .75rem; }

turbo-frame[busy] { opacity: .58; transition: opacity var(--workspace-motion-fast, var(--motion-standard)) var(--workspace-ease, var(--ease-standard)); }

@keyframes forum-rise {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Na área logada a entrada de página é a do chrome (workspace-content-enter);
   a forum-rise fica reservada às páginas públicas. */
.workspace-chrome .forum-hero,
.workspace-chrome .forum-page-head { animation: none; }

@media (max-width: 64rem) {
  .workspace-chrome__body > main.forum-main { animation: none; }
  .forum-nav { align-items: flex-start; flex-direction: column; padding-block: .5rem; }
  .forum-nav__primary,
  .forum-nav__actions { width: 100%; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .forum-nav__primary::-webkit-scrollbar,
  .forum-nav__actions::-webkit-scrollbar { display: none; }
  .forum-hero,
  .forum-thread-hero,
  .forum-composer--new,
  .forum-reply,
  .forum-join,
  .forum-manage,
  .forum-moderation-list__body { grid-template-columns: 1fr; }
  .forum-thread-hero__aside { max-width: none; }
  .forum-manage details { grid-column: 1; }
  .forum-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .forum-tracking-grid { grid-template-columns: 1fr; }
}

@media (max-width: 48rem) {
  .forum-main { width: 100%; margin-inline: 0; padding-top: .4rem; padding-right: calc(1rem + var(--safe-area-right, 0px)); padding-bottom: max(3rem, var(--safe-area-bottom, 0px)); padding-left: calc(1rem + var(--safe-area-left, 0px)); }
  .forum-nav__actions { padding-bottom: .4rem; }
  .forum-hero,
  .forum-page-head { grid-template-columns: 1fr; align-items: start; }
  .forum-hero h1,
  .forum-page-head h1 { font-size: clamp(2.2rem, 12vw, 3.7rem); }
  .forum-main:not(.forum-main--workspace) .forum-hero { gap: .75rem; padding-block: 1.1rem .9rem; }
  .forum-main:not(.forum-main--workspace) .forum-hero h1 { font-size: clamp(1.8rem, 7.5vw, 2.2rem); line-height: 1.08; }
  .forum-main:not(.forum-main--workspace) .forum-hero > div > p:last-child { margin-top: .6rem; font-size: .95rem; line-height: 1.45; }
  .forum-main:not(.forum-main--workspace) .forum-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
  .forum-main:not(.forum-main--workspace) .forum-hero__facts > div { display: block; min-width: 0; padding-block: .5rem; }
  .forum-main:not(.forum-main--workspace) .forum-hero__facts dt { font-size: .75rem; line-height: 1.35; }
  .forum-main:not(.forum-main--workspace) .forum-hero__facts dd { margin-top: .25rem; font-size: 1rem; }
  .forum-main--workspace .forum-hero { grid-template-columns: 1fr; gap: .55rem; padding-block: .8rem .7rem; }
  .forum-main--workspace .forum-hero h1 { font-size: clamp(1.65rem, 7vw, 2rem); line-height: 1.05; }
  .forum-main--workspace .forum-hero > div > p:last-child { margin-top: .4rem; font-size: .78rem; line-height: 1.4; }
  .forum-main--workspace .forum-eyebrow { margin-bottom: .45rem; }
  .forum-main--workspace .forum-hero__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .forum-main--workspace .forum-hero__facts > div { padding: .4rem .4rem; }
  .forum-main--workspace .forum-hero__facts dt { font-size: .62rem; line-height: 1.25; }
  .forum-main--workspace .forum-hero__facts dd { margin-top: .2rem; font-size: .9rem; }
  .forum-space-picker summary > span { display: none; }
  .forum-space-picker summary > small { margin-left: auto; }
  .forum-space-picker__menu {
    position: fixed;
    inset: auto calc(1rem + var(--safe-area-right, 0px)) calc(4.1rem + var(--safe-area-bottom, 0px)) calc(1rem + var(--safe-area-left, 0px));
    max-height: min(55dvh, 29rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overscroll-behavior: contain;
    border: 1px solid var(--forum-strong-rule);
    border-radius: var(--workspace-radius-surface, .5rem);
  }
  .forum-space-picker__hint {
    position: sticky;
    z-index: 1;
    top: 0;
    grid-column: 1 / -1;
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    margin: 0;
    border-bottom: 1px solid var(--forum-rule);
    background: var(--paper);
    padding: .65rem .75rem;
    color: var(--ink-700);
    font-size: .68rem;
    font-weight: 700;
  }
  .forum-space-picker__hint span { color: var(--ink-500); font-weight: 450; }
  .forum-space-picker__menu a { min-height: 3.2rem; align-items: flex-start; flex-direction: column; justify-content: center; gap: .15rem; }
  .forum-filters { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr) auto; align-items: end; gap: .55rem; margin-block: .7rem; padding-bottom: .7rem; }
  .forum-filters .form-field:has(input[type="search"]) { grid-column: 1 / -1; }
  .forum-filters .form-field { min-width: 0; }
.forum-filters > .workspace-button { min-width: 4.8rem; }

  .forum-thread-row { grid-template-columns: 3.4rem minmax(0, 1fr); gap: .85rem; }
  .forum-thread-row__activity { grid-column: 2; justify-items: start; text-align: left; }
  .forum-post { grid-template-columns: 1fr; }
  .forum-post__author { grid-template-columns: auto 1fr; align-items: center; gap: 0 .7rem; }
  .forum-post__author strong { margin: 0; }
  .forum-post__author small { grid-column: 2; }
  .forum-post__footer { align-items: flex-start; flex-direction: column; }
  .forum-votes,
  .forum-post__actions { width: 100%; gap: .25rem 1rem; }

  .forum-tag-picker__panel { max-height: min(18rem, 48dvh); }
  .forum-popover__dialog { position: fixed; inset: auto calc(1rem + var(--safe-area-right, 0px)) calc(1rem + var(--safe-area-bottom, 0px)) calc(1rem + var(--safe-area-left, 0px)); width: auto; max-height: calc(100dvh - 2rem - var(--safe-area-top, 0px) - var(--safe-area-bottom, 0px)); margin: 0; }
  .forum-citation-dialog { position: fixed; inset: auto calc(1rem + var(--safe-area-right, 0px)) calc(1rem + var(--safe-area-bottom, 0px)) calc(1rem + var(--safe-area-left, 0px)); width: auto; max-height: calc(100dvh - 2rem - var(--safe-area-top, 0px) - var(--safe-area-bottom, 0px)); margin: 0; }
  .forum-citation-result { grid-template-columns: 1fr; }
.forum-citation-result .workspace-button { width: 100%; }
  .forum-citation-dialog__selection > div:first-child { flex-direction: column; }
  .forum-arm-references { grid-template-columns: 1fr; }
  .forum-popover__dialog .forum-stack-form { padding: 1rem; }
  .forum-popover__actions > * { min-width: 0; flex: 1 1 8rem; }
.forum-popover__dialog .workspace-button { width: 100%; }
  .forum-knowledge-list > article { grid-template-columns: 1fr; }
  .forum-knowledge-answer,
  .forum-knowledge-list footer { grid-column: 1; }
  .forum-leaderboard li { grid-template-columns: 1.7rem 2.8rem minmax(0, 1fr); }
  .forum-leaderboard dl { grid-column: 3; }
  .forum-form-grid { grid-template-columns: 1fr; }

  .forum-uploader { grid-template-columns: 1fr; }
  .forum-attachment-list li { align-items: flex-start; flex-direction: column; }
  .forum-attachment-list__actions { width: 100%; justify-content: flex-start; }
  .forum-form-footer { align-items: stretch; flex-direction: column-reverse; }
.forum-form-footer .workspace-button { width: 100%; }
}

@media (max-width: 30rem) {
  .forum-filters:not(.forum-filters--catalog) { grid-template-columns: minmax(0, 1fr); }
  .forum-filters:not(.forum-filters--catalog) > .workspace-button { grid-column: 1 / -1; width: 100%; }
  .forum-filters--catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.forum-filters--catalog > .workspace-button { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 22rem) {
  .forum-filters--catalog { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .forum-hero,
  .forum-page-head { animation: none; }
  .forum-thread-row,
  .forum-nav a::after,
  turbo-frame[busy] { transition: none; transform: none !important; }
}

.forum-filter-field { min-width: 0; }
.forum-votes .workspace-button[aria-pressed="true"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; }
