/* Quill + page integration (dark / cyber) */
/* Match .file-item / shared list row shell (style.css), not --surface-color */
.rich-editor-wrap,
.forum-topic-page,
.file-discussion-shell {
  --discussion-surface: rgba(255, 255, 255, 0.04);
  --discussion-surface-hover: rgba(255, 255, 255, 0.06);
  --discussion-border: var(--surface-border, rgba(255, 255, 255, 0.12));
}

/* Editor: darker â€œinput wellâ€ so it doesnâ€™t blend with message cards */
.rich-editor-wrap {
  --discussion-editor-toolbar: rgba(0, 0, 0, 0.36);
  --discussion-editor-surface: rgba(0, 0, 0, 0.52);
  --discussion-editor-border: rgba(255, 255, 255, 0.12);
}

.rich-editor-wrap .ql-toolbar.ql-snow {
  border-color: var(--discussion-editor-border);
  border-radius: 8px 8px 0 0;
  background: var(--discussion-editor-toolbar);
  backdrop-filter: blur(8px);
  font-family: inherit;
}

.rich-editor-wrap .ql-container.ql-snow {
  border-color: var(--discussion-editor-border);
  border-radius: 0 0 8px 8px;
  background: var(--discussion-editor-surface);
  backdrop-filter: blur(8px);
  color: var(--text-primary, #e8f0ff);
  font-family: inherit;
  font-size: 0.9rem;
  min-height: 160px;
  display: flex;
  flex-direction: column;
}

.rich-editor-mini .ql-toolbar.ql-snow {
  border-radius: 6px 6px 0 0;
  padding: 4px;
}

.rich-editor-mini .ql-container.ql-snow {
  border-radius: 0 0 6px 6px;
  min-height: 72px;
  max-height: 200px;
  overflow-y: auto;
}

/*
 * Single framed composer (forum / file / resource): one border, edit strip inside,
 * send/save flush to bottom-right inside the frame.
 */
.discussion-composer-frame {
  position: relative;
  min-width: 0;
  width: 100%;
  border: 1px solid var(--discussion-editor-border, rgba(255, 255, 255, 0.12));
  border-radius: var(--modern-rounded-sm, 8px);
  overflow: hidden;
  background: var(--discussion-editor-surface, rgba(0, 0, 0, 0.52));
  display: flex;
  flex-direction: column;
}

.discussion-composer-frame .ql-toolbar.ql-snow {
  border-radius: 0 !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
}

.discussion-composer-frame .ql-container.ql-snow {
  border-radius: 0 !important;
  border: none !important;
  flex: 1 1 auto;
  min-height: 72px;
}

.discussion-composer-frame.rich-editor-mini .ql-container.ql-snow {
  max-height: 200px;
}

/* Edit mode strip: Ñ‚Ð¾Ð¹ ÑÐ°Ð¼Ð¸Ð¹ Ñ‚Ð¾Ð½, Ñ‰Ð¾ Ñ‚ÑƒÐ»Ð±Ð°Ñ€ + Ð°ÐºÑ†ÐµÐ½Ñ‚ â€” Ð²Ð¸Ð³Ð»ÑÐ´Ð°Ñ” ÑÐº Ñ‡Ð°ÑÑ‚Ð¸Ð½Ð° Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð° */
.forum-inline-edit-bar--integrated {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.55rem;
  margin: 0;
  padding: 0.4rem 0.65rem 0.4rem 0;
  border: none;
  border-bottom: 1px solid rgba(0, 243, 255, 0.12);
  border-radius: 0;
  background: linear-gradient(
    90deg,
    rgba(0, 243, 255, 0.05) 0%,
    rgba(0, 243, 255, 0.03) 40%,
    transparent 70%
  ),
    var(--discussion-editor-toolbar, rgba(0, 0, 0, 0.36));
  backdrop-filter: blur(8px);
  flex-shrink: 0;
}

.forum-inline-edit-bar--integrated .forum-inline-edit-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.2rem 0.55rem 0.2rem 0.65rem;
  font-size: 0.68rem;
  font-weight: 600;
  color: rgba(230, 236, 245, 0.88);
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-shadow: 0 0 18px rgba(0, 243, 255, 0.2);
}

.forum-inline-edit-bar--integrated .forum-inline-edit-label::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--primary-color, #00ff9d);
  box-shadow: 0 0 10px rgba(0, 255, 157, 0.65);
  animation: forum-edit-pulse 1.8s ease-in-out infinite;
}

@keyframes forum-edit-pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.55;
    transform: scale(0.92);
  }
}

@media (prefers-reduced-motion: reduce) {
  .forum-inline-edit-bar--integrated .forum-inline-edit-label::before {
    animation: none;
    opacity: 0.85;
  }
}

.forum-inline-edit-bar--integrated .forum-inline-edit-label i {
  opacity: 0.9;
  font-size: 0.75em;
  color: var(--accent-color, #00f3ff);
}

/* Cancel + Send/Save: grid â€” ÑÑ‚Ñ€Ð¾Ð³Ð¾ Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ð° ÑˆÐ¸Ñ€Ð¸Ð½Ð° ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº (Ð±ÐµÐ· Â«Ð¾Ð¿Ñ‚Ð¸Ñ‡Ð½Ð¾Ñ—Â» Ñ€Ñ–Ð·Ð½Ð¸Ñ†Ñ–) */
.discussion-composer-action-cluster {
  --discussion-composer-actions-radius: 11px;
  --discussion-composer-action-size: 42px;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 6;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, var(--discussion-composer-action-size));
  grid-auto-rows: minmax(0, var(--discussion-composer-action-size));
  width: max-content;
  max-width: 100%;
  overflow: hidden;
  align-items: stretch;
  border: none;
  box-shadow: none;
  border-radius: var(--discussion-composer-actions-radius) 0 0 0;
}

.discussion-composer-action-cluster .discussion-composer-cancel-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--discussion-composer-action-size) !important;
  min-width: var(--discussion-composer-action-size) !important;
  max-width: var(--discussion-composer-action-size) !important;
  height: var(--discussion-composer-action-size) !important;
  min-height: var(--discussion-composer-action-size) !important;
  max-height: var(--discussion-composer-action-size) !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  margin: 0;
  border: 0;
  outline: none;
  /* .btn Ð´Ð°Ñ” Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¹ font-size â€” Ð¿Ñ€Ð¸Ð±Ð¸Ñ€Ð°Ñ”Ð¼Ð¾ line-box, Ñ–ÐºÐ¾Ð½ÐºÐ° Ð»Ð¸ÑˆÐµ Ð² <i> */
  font-size: 0 !important;
  line-height: 0 !important;
  /* Ð‘ÐµÐ· Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ñ— ÑÐ¼ÑƒÐ³Ð¸ â€” Ð»Ð¸ÑˆÐµ ÑÑ‚Ð¸Ðº ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² Ñ–Ð· Save */
  box-shadow: none;
  background: linear-gradient(180deg, rgba(255, 118, 132, 0.96) 0%, rgba(255, 72, 98, 0.94) 45%, rgba(240, 58, 95, 0.95) 100%);
  color: #fff;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  overflow: hidden;
  transition: background 0.15s ease, color 0.15s ease;
}

.discussion-composer-action-cluster--with-cancel .discussion-composer-cancel-btn {
  border-radius: var(--discussion-composer-actions-radius) 0 0 var(--discussion-composer-actions-radius);
}

.discussion-composer-action-cluster .discussion-composer-cancel-btn:hover {
  background: linear-gradient(180deg, rgba(255, 140, 152, 1) 0%, rgba(255, 95, 118, 0.98) 50%, rgba(255, 75, 108, 0.98) 100%);
  color: #fff;
  box-shadow: none;
}

.discussion-composer-action-cluster .rich-editor-send-btn,
.discussion-composer-action-cluster .forum-reply-send-integrated,
.discussion-composer-action-cluster .btn-send {
  position: static !important;
  right: auto !important;
  bottom: auto !important;
  width: var(--discussion-composer-action-size) !important;
  min-width: var(--discussion-composer-action-size) !important;
  max-width: var(--discussion-composer-action-size) !important;
  height: var(--discussion-composer-action-size) !important;
  min-height: var(--discussion-composer-action-size) !important;
  max-height: var(--discussion-composer-action-size) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  font-size: 0 !important;
  line-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  overflow: hidden !important;
}

/* ÐžÐ´Ð¸Ð½ ÑÐµÐ³Ð¼ÐµÐ½Ñ‚: Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ° Ð±ÐµÐ· Â«Ñ€Ñ–Ð·ÐºÐ¸Ñ…Â» ÐºÑƒÑ‚Ñ–Ð² */
.discussion-composer-action-cluster:not(.discussion-composer-action-cluster--with-cancel) .rich-editor-send-btn,
.discussion-composer-action-cluster:not(.discussion-composer-action-cluster--with-cancel) .forum-reply-send-integrated {
  border-radius: var(--discussion-composer-actions-radius) !important;
}

/* Ð”Ð²Ð° ÑÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¸: Ð±ÐµÐ· Ñ€Ð¾Ð·Ð´Ñ–Ð»ÑŒÐ½Ð¾Ñ— Ð»Ñ–Ð½Ñ–Ñ— â€” Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ– ÐºÑ€Ð°Ñ— Ð·Ð°ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ñ– */
.discussion-composer-action-cluster--with-cancel .rich-editor-send-btn,
.discussion-composer-action-cluster--with-cancel .forum-reply-send-integrated,
.discussion-composer-action-cluster--with-cancel .btn-send {
  border-radius: 0 var(--discussion-composer-actions-radius) var(--discussion-composer-actions-radius) 0 !important;
}

/* ÐÐµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð¾Ð²ÑƒÑ”Ð¼Ð¾ .btn-send:hover â†’ accent (Ð±Ñ–Ñ€ÑŽÐ·Ð°); Ð»Ð¸ÑˆÐ°Ñ”Ð¼Ð¾ÑÑŒ Ñƒ Ñ‚Ð¾Ð½Ñ– primary */
.discussion-composer-action-cluster .forum-reply-send-integrated:hover,
.discussion-composer-action-cluster .rich-editor-send-btn:hover,
.discussion-composer-action-cluster .btn-send:hover {
  filter: none !important;
  background: #5cffb0 !important;
  background: color-mix(in srgb, var(--primary-color, #00ff9d) 72%, #ffffff 28%) !important;
  color: #0a0f0d !important;
}

.discussion-composer-action-cluster .forum-reply-send-integrated:hover i,
.discussion-composer-action-cluster .rich-editor-send-btn:hover i,
.discussion-composer-action-cluster .btn-send:hover i {
  color: #0a0f0d !important;
}

.discussion-composer-action-cluster .discussion-composer-cancel-btn i {
  font-size: 1.05rem !important;
  line-height: 1 !important;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
}

.discussion-composer-action-cluster .rich-editor-send-btn i,
.discussion-composer-action-cluster .forum-reply-send-integrated i {
  font-size: 1.05rem !important;
  line-height: 1 !important;
}

/* .btn Ð¼Ð°Ñ” Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¹ padding / hover translate â€” Ñƒ ÐºÐ»Ð°ÑÑ‚ÐµÑ€Ñ– Ð½Ðµ Ð·Ð°ÑÑ‚Ð¾ÑÐ¾Ð²ÑƒÑ”Ð¼Ð¾ */
.discussion-composer-action-cluster .btn.rich-editor-send-btn,
.discussion-composer-action-cluster .btn.forum-reply-send-integrated {
  text-transform: none !important;
  letter-spacing: normal !important;
  gap: 0 !important;
}

.discussion-composer-action-cluster .btn:hover {
  transform: none !important;
  text-shadow: none !important;
  box-shadow: none !important;
}

/* Unified editor composer: send button inside, bottom-right */
.rich-editor-composer {
  position: relative;
  width: 100%;
  min-width: 0;
}

.rich-editor-composer .rich-editor-wrap {
  width: 100%;
}

.rich-editor-composer .ql-editor {
  padding-bottom: 3.25rem;
}

.rich-editor-send-btn {
  position: absolute;
  right: 0.55rem;
  bottom: 0.55rem;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 34px;
  height: 34px;
  min-height: 34px;
  padding: 0;
  border-radius: 8px;
}

/* Editable surface: whole area focuses / accepts clicks */
.ql-snow .ql-container {
  cursor: text;
}

.ql-snow .ql-editor {
  cursor: text;
  min-height: 3.25rem;
  flex: 1 1 auto;
}

.ql-snow .ql-editor.ql-blank::before {
  color: rgba(230, 236, 245, 0.55);
  font-style: normal;
}

.ql-snow .ql-stroke {
  stroke: var(--primary-color, #00ff9d) !important;
  opacity: 0.85;
}

.ql-snow .ql-fill {
  fill: var(--primary-color, #00ff9d) !important;
  opacity: 0.85;
}

.ql-snow .ql-picker {
  color: var(--text-secondary, #9aa4b2);
}

.ql-snow .ql-picker-options {
  background: #0d1117;
  border-color: var(--surface-border, rgba(255, 255, 255, 0.12));
}

/* Toolbar: clear hover / active / focus feedback */
.ql-snow.ql-toolbar button,
.ql-snow .ql-toolbar button {
  border-radius: 4px;
  transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
}

.ql-snow.ql-toolbar button:hover,
.ql-snow .ql-toolbar button:hover {
  background-color: rgba(0, 255, 157, 0.14) !important;
  box-shadow: 0 0 0 1px rgba(0, 255, 157, 0.35);
}

.ql-snow.ql-toolbar button:focus-visible,
.ql-snow .ql-toolbar button:focus-visible {
  outline: none;
  background-color: rgba(0, 255, 157, 0.18) !important;
  box-shadow: 0 0 0 2px rgba(0, 243, 255, 0.45);
}

.ql-snow.ql-toolbar button.ql-active,
.ql-snow .ql-toolbar button.ql-active {
  background-color: rgba(0, 255, 157, 0.22) !important;
  box-shadow: inset 0 0 0 1px rgba(0, 255, 157, 0.5);
}

.ql-snow .ql-toolbar .ql-picker-label {
  border-radius: 4px;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.ql-snow .ql-toolbar .ql-picker-label:hover {
  color: var(--primary-color, #00ff9d) !important;
  background-color: rgba(0, 255, 157, 0.1);
}

.ql-snow .ql-toolbar .ql-picker-label.ql-active {
  color: var(--primary-color, #00ff9d) !important;
}

.ql-snow .ql-toolbar .ql-picker-options .ql-picker-item:hover {
  color: var(--primary-color, #00ff9d) !important;
  background-color: rgba(0, 255, 157, 0.12);
}

/* Rendered message body (forum / file / resource) */
.rich-body {
  white-space: normal !important;
  max-width: 100%;
  vertical-align: top;
  color: var(--text-primary, #e8f0ff) !important;
  font-size: inherit !important;
  line-height: 1.42 !important;
  font-family: var(--font-main, 'Inter', sans-serif) !important;
}

/*
 * Normalize pasted noise (color/size/font) without killing editor semantics.
 * Omit font-weight here so nested emphasis / headings keep weight unless overridden below.
 */
.rich-body *:not(a):not(.mention):not(.mention-link) {
  color: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-family: inherit !important;
}

/* Semantic emphasis from Quill / allowed HTML (do not flatten â€” users expect bold/italic/etc.). */
.rich-body b,
.rich-body strong {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 700 !important;
}

.rich-body i,
.rich-body em {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-style: italic !important;
}

.rich-body u {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  text-decoration: underline !important;
}

.rich-body s,
.rich-body strike,
.rich-body del {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  text-decoration: line-through !important;
}

/* Quill span-based formats (clipboard / custom builds) */
.rich-body .ql-bold {
  font-weight: 700 !important;
}

.rich-body .ql-italic {
  font-style: italic !important;
}

.rich-body .ql-underline {
  text-decoration: underline !important;
}

.rich-body .ql-strike {
  text-decoration: line-through !important;
}

/* Code from Quill: readable monospace (still XSS-safe via server sanitize). */
.rich-body code {
  font-family: var(--font-mono, 'JetBrains Mono', Monaco, monospace) !important;
  font-size: 0.9em !important;
  color: var(--text-primary, #e8f0ff) !important;
  background: rgba(0, 0, 0, 0.35) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  padding: 0.12em 0.4em !important;
  margin: 0 0.05em !important;
  border-radius: 4px !important;
  white-space: pre-wrap !important;
}

.rich-body pre {
  font-family: var(--font-mono, 'JetBrains Mono', Monaco, monospace) !important;
  font-size: 0.88em !important;
  line-height: 1.45 !important;
  color: var(--text-primary, #e8f0ff) !important;
  background: rgba(0, 0, 0, 0.4) !important;
  border: 1px solid rgba(0, 255, 157, 0.12) !important;
  padding: 0.65rem 0.85rem !important;
  margin: 0.4em 0 !important;
  border-radius: 6px !important;
  white-space: pre-wrap !important;
  overflow-x: auto;
}

/* Match Quill snow size names on saved HTML */
.rich-body .ql-size-small {
  font-size: 0.75em !important;
}

.rich-body .ql-size-large {
  font-size: 1.5em !important;
}

.rich-body .ql-size-huge {
  font-size: 2em !important;
  line-height: 1.2 !important;
}

/* Pasted custom color/background classes should not override site text palette */
.rich-body [class*="ql-color-"],
.rich-body [class*="ql-bg-"] {
  color: inherit !important;
  background: transparent !important;
}

/* Headings in rendered posts: visible hierarchy (Quill editor sizes come from quill.snow.css). */
.rich-body h1,
.rich-body h2,
.rich-body h3,
.rich-body h4,
.rich-body h5,
.rich-body h6 {
  color: inherit !important;
  font-family: inherit !important;
  margin: 0.45em 0 !important;
  line-height: 1.25 !important;
}

.rich-body h1 {
  font-size: 1.75em !important;
  font-weight: 700 !important;
}

.rich-body h2 {
  font-size: 1.45em !important;
  font-weight: 600 !important;
}

.rich-body h3 {
  font-size: 1.22em !important;
  font-weight: 600 !important;
}

.rich-body h4 {
  font-size: 1.08em !important;
  font-weight: 600 !important;
}

.rich-body h5 {
  font-size: 1em !important;
  font-weight: 600 !important;
}

.rich-body h6 {
  font-size: 0.95em !important;
  font-weight: 600 !important;
  opacity: 0.95;
}

/* Quill block align / indent (classes preserved by sanitizer on p, div, etc.) */
.rich-body .ql-align-center {
  text-align: center !important;
}

.rich-body .ql-align-right {
  text-align: right !important;
}

.rich-body .ql-align-justify {
  text-align: justify !important;
}

.rich-body .ql-direction-rtl {
  direction: rtl !important;
  text-align: inherit !important;
}

.rich-body .ql-indent-1 {
  padding-left: 3em !important;
}

.rich-body .ql-indent-2 {
  padding-left: 6em !important;
}

.rich-body .ql-indent-3 {
  padding-left: 9em !important;
}

.rich-body .ql-indent-4 {
  padding-left: 12em !important;
}

.rich-body .ql-indent-5 {
  padding-left: 15em !important;
}

.rich-body .ql-indent-6 {
  padding-left: 18em !important;
}

.rich-body .ql-indent-7 {
  padding-left: 21em !important;
}

.rich-body .ql-indent-8 {
  padding-left: 24em !important;
}

/* Quill font family picks (stored on spans) */
.rich-body .ql-font-serif {
  font-family: Georgia, 'Times New Roman', Times, serif !important;
}

.rich-body .ql-font-monospace {
  font-family: var(--font-mono, 'JetBrains Mono', Monaco, monospace) !important;
}

.ql-editor [class*="ql-color-"],
.ql-editor [class*="ql-bg-"] {
  color: inherit !important;
  background: transparent !important;
}

/* Quill stores each Enter as a new <p>; tight margins avoid "double-spaced" lines. */
.rich-body p {
  margin: 0.08em 0;
}

.rich-body p:first-child {
  margin-top: 0;
}

.rich-body p:last-child {
  margin-bottom: 0;
}

/* Blank line from editor: <p><br></p> â€” shrink the strut so it reads like one empty line */
.rich-body p:has(> br:only-child) {
  margin: 0.06em 0 !important;
  line-height: 1 !important;
}

/* Inline images: composer (.ql-editor) matches sent message (.rich-body) thumbnail */
.rich-body img,
.ql-snow .ql-editor img {
  max-width: min(160px, 36vw);
  max-height: 118px;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
  border-radius: 8px;
  margin: 0.4rem 0;
  display: inline-block;
  vertical-align: middle;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.35);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.rich-body img {
  cursor: zoom-in;
}

.ql-snow .ql-editor img {
  cursor: text;
}

.rich-body img:hover {
  border-color: rgba(0, 255, 157, 0.45);
  box-shadow: 0 0 0 1px rgba(0, 255, 157, 0.25), 0 4px 14px rgba(0, 0, 0, 0.45);
  transform: translateY(-1px);
}

/*
 * File / resource detail hero: same .rich-body as discussions (lightbox), but must not
 * use inline-message thumb caps (.rich-body img) or rich line-height (adds empty strut).
 */
.resource-detail-unified-card .resource-detail-media-card.rich-body {
  line-height: 0 !important;
  font-size: 0 !important;
}

.resource-detail-unified-card .resource-detail-media-card.rich-body .resource-detail-media-image {
  max-width: min(100%, 520px);
  max-height: 300px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0;
  vertical-align: top;
  border: none;
  background: transparent;
  box-shadow: none;
  border-radius: var(--modern-rounded-sm, 8px);
  cursor: zoom-in;
  transition: none;
}

.resource-detail-unified-card .resource-detail-media-card.rich-body .resource-detail-media-image:hover {
  border-color: transparent;
  box-shadow: none;
  transform: none;
}

.rich-body a {
  color: var(--primary-color, #00ff9d);
  text-decoration: underline;
}

.rich-body ul,
.rich-body ol {
  margin: 0.35em 0;
  padding-left: 1.25rem;
}

.rich-body blockquote {
  margin: 0.5rem 0;
  padding: 0.35rem 0.75rem;
  border-left: 3px solid rgba(0, 255, 157, 0.45);
  background: rgba(0, 0, 0, 0.25);
  color: var(--text-secondary, #b8c4d4);
}

/* Forum post cards */
.forum-post-card {
  display: block;
  padding: 0 !important;
  margin-bottom: 7px !important;
  background: var(--discussion-surface) !important;
  border-radius: 0 !important;
  line-height: 1.42 !important;
  position: relative;
  border: 1px solid var(--discussion-border) !important;
  backdrop-filter: blur(5px);
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.28);
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
}

.forum-post-card .forum-post-actions,
.forum-post-card .comment-actions {
  position: absolute;
  right: 10px;
  top: 10px;
  display: flex;
  gap: 6px;
  align-items: center;
  z-index: 2;
}

.forum-post-main {
  padding: 12px 88px 12px 14px;
  min-height: 48px;
}

/* Bulk moderation controls on topic page (admin/mod only). */
.forum-topic-page .forum-post-card .list-bulk-checkbox-cell {
  position: absolute;
  left: 10px;
  top: 10px;
  padding: 0;
  z-index: 3;
}

.forum-topic-page .forum-post-card.has-bulk-checkbox .forum-post-main {
  padding-left: 42px;
}

.forum-post-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0;
  padding-bottom: 0.45rem;
  border-bottom: none;
}

.forum-author-stats {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin-left: 0.22rem;
  vertical-align: middle;
  flex-wrap: nowrap;
}

.forum-author-stats .telemetry-pod {
  font-size: 0.66rem;
  padding: 0.08rem 0.35rem;
  min-height: 1.2rem;
}

.forum-topic-author-badge {
  margin-left: 0.18rem;
  color: var(--primary-color);
  border-color: rgba(0, 255, 157, 0.35) !important;
  background: rgba(0, 255, 157, 0.1) !important;
  min-width: 1.55rem;
  justify-content: center;
  padding: 0 0.35rem;
}

/* Match file list chips: rely on global .username-tag; only layout here */
.forum-post-header .forum-user-tag,
.forum-topic-meta .forum-user-tag {
  font-size: inherit;
  line-height: 1.35;
}

.forum-category-card-meta .forum-last-reply-user {
  min-width: 0;
}

.forum-post-body {
  display: block;
  width: 100%;
  margin-top: 0.45rem;
  padding-top: 0;
  border-top: none;
  color: var(--text-primary, #e8f0ff);
  word-break: break-word;
  font-size: 0.92rem;
  line-height: 1.42;
}

/* File / resource discussion messages */
.discussion-message-card {
  display: block;
  padding: 0 !important;
  margin-bottom: 8px !important;
  background: var(--discussion-surface) !important;
  border-radius: 4px !important;
  line-height: 1.42 !important;
  position: relative;
  border: 1px solid var(--discussion-border) !important;
  backdrop-filter: blur(5px);
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.28);
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
}

.forum-topic-page .forum-post-card:hover,
.discussion-message-card:hover {
  background: var(--discussion-surface-hover) !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
  transform: translateY(-1px);
}

/* Keep hover lift, but render above neighboring cards to prevent overlap artifacts. */
.discussion-message-card:hover {
  z-index: 6;
}

/* Shared panel: forum thread + file/resource discussion (same surround as cards) */
.file-discussion-shell,
.forum-thread-shell {
  margin: 0;
  padding: 0.7rem;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid var(--discussion-border);
  border-radius: 2px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
  position: relative;
}

/* Same tone as forum thread: title is primary text, icon accent only */
.discussion-section-heading {
  color: var(--text-primary, #e8f0ff);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
  font-family: var(--font-mono);
  text-transform: uppercase;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.discussion-section-heading .icon {
  color: var(--primary-color);
  margin-right: 0.4rem;
}

/* Files/resources detail pages use .mt-4 on discussion block; keep gap compact */
.file-discussion-shell.mt-4 {
  margin-top: 0.65rem !important;
}

.thread-window {
  position: relative;
  max-height: min(68vh, 760px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-behavior: smooth;
}

/* Keep 1px hover-lift from being clipped by scroller edges. */
.comments-list.thread-window {
  padding-top: 2px;
  padding-bottom: 2px;
}

/* Forum topic page: use full-page scrolling, not inner list scrolling */
.forum-topic-page #forum-posts-list.thread-window {
  max-height: none;
  overflow-y: visible;
  overscroll-behavior: auto;
}

.thread-window-hint {
  position: sticky;
  top: 0;
  z-index: 3;
  margin: 0 0 0.5rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-family: var(--font-mono, monospace);
  color: var(--text-secondary, #9aa4b2);
  background: linear-gradient(180deg, rgba(10, 10, 10, 0.92), rgba(10, 10, 10, 0.7));
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
}

/* Cyber corners for all discussion post cards (forum/files/resources). */
.forum-post-card::before,
.discussion-message-card::before {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  width: 10px;
  height: 10px;
  border-top: 1px solid var(--corner-line-color, rgba(0, 255, 157, 0.72));
  border-left: 1px solid var(--corner-line-color, rgba(0, 255, 157, 0.72));
  pointer-events: none;
  z-index: 3;
}

.forum-post-card::after,
.discussion-message-card::after {
  content: '';
  position: absolute;
  bottom: -1px;
  right: -1px;
  width: 10px;
  height: 10px;
  border-bottom: 1px solid var(--corner-line-color, rgba(0, 255, 157, 0.72));
  border-right: 1px solid var(--corner-line-color, rgba(0, 255, 157, 0.72));
  pointer-events: none;
  z-index: 3;
}

/* Discussion cards sit in a clipped scroller: keep corners fully inside bounds. */
.discussion-message-card::before {
  top: 0;
  left: 0;
  z-index: 4;
}

.discussion-message-card::after {
  right: 0;
  bottom: 0;
  z-index: 4;
}

.thread-item-hidden {
  display: none !important;
}

.discussion-message-card .comment-actions {
  position: absolute;
  right: 10px;
  top: 10px;
  display: flex;
  gap: 6px;
  align-items: center;
  z-index: 2;
}

.discussion-message-main {
  padding: 11px 108px 11px 12px;
  min-height: 44px;
}

.discussion-message-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  padding-bottom: 0.42rem;
  border-bottom: none;
}

.discussion-message-header .username-tag {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-size: 0.86rem;
}

/* In file/resource discussions, keep author stats same size as rest of UI telemetry. */
.discussion-message-header .forum-author-stats {
  margin-left: 0.28rem;
}

.discussion-message-header .forum-author-stats .telemetry-pod {
  font-size: 0.74rem;
  padding: 0.12rem 0.45rem;
  min-height: 1.34rem;
}

.discussion-message-body {
  display: block;
  width: 100%;
  margin-top: 0.42rem;
  padding-top: 0;
  border-top: none;
  color: var(--text-primary, #e8f0ff);
  word-break: break-word;
  font-size: 0.9rem;
  line-height: 1.42;
}

/* Full-size image lightbox */
.rich-img-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 300000;
  background: rgba(0, 0, 0, 0.88);
  align-items: center;
  justify-content: center;
  padding: 2rem;
  box-sizing: border-box;
  cursor: zoom-out;
}

.rich-img-lightbox.is-open {
  display: flex;
}

.rich-img-lightbox img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.6);
  cursor: default;
  border: 1px solid rgba(0, 255, 157, 0.25);
}

.rich-img-lightbox-close {
  position: fixed;
  top: 1rem;
  right: 1rem;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  border: 1px solid rgba(0, 255, 157, 0.45);
  background: rgba(0, 0, 0, 0.6);
  color: var(--primary-color, #00ff9d);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}

.rich-img-lightbox-close:hover {
  background: rgba(0, 255, 157, 0.15);
  box-shadow: 0 0 0 1px rgba(0, 255, 157, 0.35);
}

/* --- Forum topic page: one column, no nested cyber-card --- */

.forum-topic-page {
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0;
}

.forum-modern-layout {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.forum-modern-sidebar {
  padding: 0;
  position: sticky;
  top: 0.7rem;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.forum-cats-toggle {
  display: none;
}

.forum-modern-sidebar-head {
  display: none;
}

.forum-modern-cat-link {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--text-primary);
  text-decoration: none;
  border: 1px solid var(--surface-border);
  background: rgba(255, 255, 255, 0.04);
  border-radius: var(--modern-rounded-md, 10px);
  padding: 0.35rem 0.45rem;
  margin-bottom: 0;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.forum-modern-sidebar-body {
  display: grid;
  gap: 0.35rem;
}

.forum-modern-cat-link:hover {
  background: rgba(255, 255, 255, 0.06);
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.forum-modern-cat-link .telemetry-pod {
  margin-left: auto;
}

.forum-modern-cat-link.active {
  border-color: rgba(0, 255, 157, 0.35);
  background: linear-gradient(90deg, rgba(0, 255, 157, 0.12), rgba(255, 255, 255, 0.04));
  color: #eafff6;
  box-shadow: inset 0 0 0 1px rgba(0, 255, 157, 0.12);
}

.forum-modern-subcat {
  margin-left: 0.8rem;
}

.forum-modern-feed-toolbar {
  margin-bottom: 0.6rem;
  padding: 0.55rem 0.7rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem;
}

.forum-modern-feed-title {
  font-size: 0.9rem;
  font-weight: 600;
}

.forum-modern-per-page {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.forum-modern-per-page label {
  font-size: 0.74rem;
  color: var(--text-secondary);
}

.forum-modern-per-page select {
  background: rgba(255, 255, 255, 0.04);
  color: var(--text-primary);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 6px;
  padding: 0.24rem 0.4rem;
}

.forum-topic-head-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 0.65rem;
  row-gap: 0;
  min-height: var(--page-toolbar-band-min-height, 2.75rem);
}

/* Same metrics as .filter-chip; default = neutral chip, hover = site green (like .filter-chip:hover) */
.forum-topic-back,
.forum-cat-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  height: var(--filter-chip-height, 36px);
  min-height: var(--filter-chip-height, 36px);
  padding: 0 0.8rem;
  box-sizing: border-box;
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 0.85rem;
  font-weight: 400;
  line-height: 1;
  color: var(--text-primary, #e0e0e0);
  text-decoration: none;
  margin: 0;
  border: 1px solid var(--surface-border, #333);
  border-radius: var(--modern-rounded-sm, 8px);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: none;
  flex-shrink: 0;
  white-space: nowrap;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.forum-topic-back i,
.forum-cat-back i {
  font-size: 0.85rem;
  line-height: 1;
  color: inherit;
  opacity: 0.9;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.forum-topic-back:hover,
.forum-cat-back:hover {
  text-decoration: none;
  color: var(--primary-color, #00ff9d);
  border-color: rgba(0, 255, 157, 0.35);
  background: rgba(0, 255, 157, 0.07);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3), 0 0 12px rgba(0, 255, 157, 0.12);
  transform: translateY(-1px);
  text-shadow: 0 0 9px rgba(0, 255, 157, 0.45);
  z-index: 1;
}

.forum-topic-back:hover i,
.forum-cat-back:hover i {
  color: var(--primary-color, #00ff9d);
  filter: drop-shadow(0 0 4px rgba(0, 255, 157, 0.5));
}

.forum-topic-header {
  margin: 0;
  min-height: var(--page-toolbar-band-min-height, 2.75rem);
  margin-bottom: var(--page-toolbar-row-gap, 1.5rem);
  padding-bottom: 0;
  border-bottom: none;
}

.forum-topic-title {
  margin: 0;
  font-size: clamp(1.05rem, 2.2vw, 1.38rem);
  font-weight: 600;
  color: var(--text-primary, #e8f0ff);
  line-height: 1.2;
  flex: 1 1 10rem;
  min-width: 0;
}

.forum-topic-meta {
  margin: 0;
  font-size: 0.8rem;
  color: var(--text-secondary, #9aa4b2);
  line-height: 1.35;
  flex: 1 1 100%;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

@media (min-width: 640px) {
  .forum-topic-meta {
    flex: 0 1 auto;
    max-width: min(100%, 42rem);
  }
}

.forum-topic-meta-sep {
  opacity: 0.45;
  margin: 0 0.15rem;
}

.forum-topic-meta-label {
  padding: 0 6px;
}

.forum-topic-meta-date {
  margin-left: 0.15rem;
}

.forum-topic-reply-btn {
  margin-left: auto;
  align-self: center;
  font-size: 0.85rem;
  padding: 0.4rem 1rem;
  line-height: 1.2;
}

a.forum-topic-reply-btn {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  box-sizing: border-box;
}

@media (min-width: 920px) {
  .forum-topic-head-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    column-gap: 0.65rem;
    row-gap: 0;
  }

  .forum-topic-back {
    grid-column: 1;
  }

  .forum-topic-title {
    grid-column: 2;
    flex: none;
  }

  .forum-topic-meta {
    grid-column: 3;
    flex: none;
    max-width: none;
    white-space: nowrap;
  }

  .forum-topic-reply-btn {
    grid-column: 4;
    margin-left: 0;
  }
}

/* Cyber corners for discussion container blocks */
.file-discussion-shell::before,
.forum-thread-shell::before {
  content: '';
  position: absolute;
  top: -1px;
  left: -1px;
  width: 10px;
  height: 10px;
  border-top: 1px solid var(--corner-line-color, rgba(0, 255, 157, 0.72));
  border-left: 1px solid var(--corner-line-color, rgba(0, 255, 157, 0.72));
  pointer-events: none;
  z-index: 2;
}

.file-discussion-shell::after,
.forum-thread-shell::after {
  content: '';
  position: absolute;
  bottom: -1px;
  right: -1px;
  width: 10px;
  height: 10px;
  border-bottom: 1px solid var(--corner-line-color, rgba(0, 255, 157, 0.72));
  border-right: 1px solid var(--corner-line-color, rgba(0, 255, 157, 0.72));
  pointer-events: none;
  z-index: 2;
}

/* Forum thread window */
.forum-posts-list {
  max-height: min(68vh, 760px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.35rem 0 0.2rem;
  margin: 0;
}

/* Topic page must scroll as a full document, not inside post list. */
.forum-topic-page .forum-posts-list {
  max-height: none;
  overflow-y: visible;
  overscroll-behavior: auto;
}

/* Opening post: slightly more space before replies + light mint border (no tinted fill). */
.forum-topic-page .forum-posts-list > .forum-post-op {
  margin-bottom: 1.4rem !important;
  border-color: rgba(0, 255, 157, 0.4) !important;
  box-shadow:
    0 0 0 1px rgba(0, 255, 157, 0.14),
    0 1px 6px rgba(0, 0, 0, 0.28) !important;
}

/* Topic thread: no outer panel (posts/reply composer sit flush on page). */
.forum-topic-page .forum-topic-thread {
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  position: static;
}

.forum-reply-area {
  position: relative;
  z-index: 10;
  padding: 0.18rem 0 0;
  margin-top: 0;
  border-top: none;
  background: transparent;
}

.forum-inline-edit-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  margin: 0 0 0.35rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.03);
  border-radius: 6px;
}

.forum-inline-edit-label {
  font-size: 0.78rem;
  color: var(--text-secondary);
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

/* Reply: stacked editor + bottom action bar (send bottom-right) */
.forum-reply-composer {
  position: relative;
  width: 100%;
  min-width: 0;
  border: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}

.forum-reply-composer .forum-reply-editor-shell {
  min-width: 0;
}

.forum-reply-composer-guest {
  display: flex;
  align-items: flex-end;
  gap: 0.6rem;
}

.forum-reply-editor-shell-guest {
  flex: 1 1 auto;
  min-height: 106px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--surface-border, rgba(255, 255, 255, 0.14));
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.22);
  overflow: hidden;
}

.forum-reply-guest-toolbar {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.42rem 0.55rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
}

.forum-reply-guest-tool {
  width: 24px;
  height: 24px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary, #9aa4b2);
  font-size: 0.68rem;
  opacity: 0.8;
}

.forum-reply-editor-guest-placeholder {
  flex: 1 1 auto;
  display: flex;
  align-items: flex-start;
  color: var(--text-secondary, #9aa4b2);
  font-size: 0.86rem;
  font-family: var(--font-mono);
  opacity: 0.95;
  padding: 0.78rem 0.85rem;
  position: relative;
}

.forum-reply-editor-guest-placeholder::after {
  content: "";
  display: inline-block;
  width: 1px;
  height: 1rem;
  background: rgba(255, 255, 255, 0.35);
  margin-left: 0.35rem;
  animation: guestCaretBlink 1.1s steps(1, end) infinite;
}

.forum-reply-login-btn {
  flex-shrink: 0;
}

@keyframes guestCaretBlink {
  0%, 45% { opacity: 1; }
  46%, 100% { opacity: 0; }
}

.forum-reply-composer .forum-reply-editor-shell .ql-snow {
  border-color: var(--surface-border, rgba(255, 255, 255, 0.12)) !important;
}

.forum-reply-composer .ql-container.ql-snow {
  min-height: 72px;
  max-height: 200px !important;
  overflow-y: auto;
}

.forum-reply-composer .ql-editor {
  min-height: 3.25rem;
  padding-bottom: 3.25rem;
}

.forum-reply-send-integrated {
  margin: 0 !important;
  border-radius: 8px !important;
  border: none !important;
  box-shadow: none !important;
}

.forum-reply-send-integrated:hover {
  filter: brightness(1.08);
}

.forum-reply-area-guest .forum-reply-composer {
  display: block;
}

.forum-reply-area-guest .forum-reply-send-integrated {
  position: absolute !important;
}

.forum-reply-area-guest .discussion-composer-action-cluster .forum-reply-send-integrated {
  position: static !important;
}

/*
 * ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ Ð¿Ñ–ÑÐ»Ñ .forum-reply-send-integrated: ÐºÐ½Ð¾Ð¿ÐºÐ° Save Ð¼Ð°Ñ” .btn (font-size 0.9rem) â€”
 * Ð±ÐµÐ· font-size:0 Ð½Ð° <button> line-box Ñ€Ð¾Ð±Ð¸Ñ‚ÑŒ Ñ—Ñ— Ð²Ð¸Ñ‰Ð¾ÑŽ Ð·Ð° Cancel.
 */
.discussion-composer-frame .discussion-composer-action-cluster .discussion-composer-cancel-btn,
.discussion-composer-frame .discussion-composer-action-cluster .rich-editor-send-btn,
.discussion-composer-frame .discussion-composer-action-cluster .forum-reply-send-integrated,
.discussion-composer-frame .discussion-composer-action-cluster .btn-send {
  width: var(--discussion-composer-action-size) !important;
  min-width: var(--discussion-composer-action-size) !important;
  max-width: var(--discussion-composer-action-size) !important;
  height: var(--discussion-composer-action-size) !important;
  min-height: var(--discussion-composer-action-size) !important;
  max-height: var(--discussion-composer-action-size) !important;
  font-size: 0 !important;
  line-height: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* Edit post modal with full rich editor */
.forum-edit-modal {
  position: fixed;
  inset: 0;
  z-index: 250000;
  display: none;
}

.forum-edit-modal.is-open {
  display: block;
}

.forum-edit-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.62);
  backdrop-filter: blur(2px);
}

.forum-edit-modal-dialog {
  position: relative;
  width: min(92vw, 920px);
  margin: 9vh auto 0;
  background: var(--surface-color, rgba(20, 20, 20, 0.95));
  border: 1px solid var(--surface-border, rgba(255, 255, 255, 0.12));
  border-radius: 2px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45);
  z-index: 1;
}

.forum-edit-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding: 0.65rem 0.8rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.forum-edit-modal-body {
  padding: 0.75rem 0.8rem 0.6rem;
}

.forum-edit-modal-body .rich-editor-wrap .ql-container.ql-snow {
  min-height: 210px;
  max-height: min(52vh, 500px);
}

.forum-edit-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0 0.8rem 0.75rem;
}

.forum-topic-locked-msg {
  margin: 0;
  color: var(--text-secondary, #9aa4b2);
  font-size: 0.88rem;
}

/* Category list: whole row opens topic; profile link stays interactive */
.forum-subcategory-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: var(--page-toolbar-row-gap, 1.5rem);
}

.forum-topic-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.forum-topic-list-card {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
  position: relative;
}

/* Let clicks reach the full-card overlay (padding included); interactive children use pointer-events: auto */
.forum-topic-list-card-main {
  position: relative;
  flex: 1;
  min-width: 0;
  z-index: 1;
  pointer-events: none;
}

/* Stretch link across entire card (incl. padding), below checkbox + content links */
.forum-topic-list-card-hit {
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  cursor: pointer;
}

.forum-topic-list-card-content {
  position: relative;
  z-index: 1;
  pointer-events: none;
}

.forum-topic-list-card-title-row {
  display: flex;
  justify-content: flex-start;
  gap: 0.5rem;
  align-items: baseline;
}

.forum-topic-list-title {
  font-family: var(--font-mono, monospace);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary, #e8f0ff);
  line-height: 1.25;
  transition: color 0.2s ease, text-shadow 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
  border-radius: 4px;
  padding: 0 4px;
  margin-left: -4px;
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  text-decoration: none;
  pointer-events: auto;
  position: relative;
  z-index: 2;
  cursor: pointer;
}

.forum-topic-list-title:hover,
.forum-topic-list-title:focus-visible {
  color: var(--primary-color, #00ff9d);
  text-shadow: var(--glow, 0 0 10px rgba(0, 255, 157, 0.2));
  background-color: rgba(0, 255, 157, 0.1);
  box-shadow: 0 0 10px rgba(0, 255, 157, 0.1);
}

.forum-topic-list-card-content .forum-topic-list-meta.file-meta {
  margin-top: 0.15rem;
  padding-left: 0;
  display: block;
}

.forum-topic-author-link,
.forum-topic-last-reply-link,
.forum-topic-list-card .action-btn,
.forum-topic-category-pill {
  pointer-events: auto;
  position: relative;
  z-index: 2;
}

.forum-topic-list-meta .telemetry-pod,
.forum-topic-list-meta .telemetry-group,
.forum-topic-list-meta .forum-topic-no-replies {
  pointer-events: auto;
  position: relative;
  z-index: 2;
}

.forum-topic-meta-person {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  max-width: 100%;
  width: fit-content;
}

.forum-topic-meta-main {
  width: 100%;
  min-width: 0;
  display: grid;
  /* Second column = dates/stats; first column only as wide as author row (no 1fr â€œdead zoneâ€ beside nick) */
  grid-template-columns: minmax(0, max-content) auto;
  gap: 0.35rem 0.55rem;
  align-items: center;
}

.forum-topic-meta-cell {
  min-width: 0;
}

.forum-topic-meta-creator {
  grid-column: 1;
  justify-self: start;
}

.forum-topic-meta-created {
  grid-column: 2;
  justify-self: end;
}

.forum-topic-meta-last-reply {
  grid-column: 1;
  justify-self: start;
}

.forum-topic-meta-activity {
  grid-column: 2;
  justify-self: end;
}

.forum-topic-meta-stats-wrap {
  grid-column: 1 / span 2;
  justify-self: start;
}

.forum-topic-meta-last-reply:empty,
.forum-topic-meta-activity:empty {
  display: none;
}

.forum-topic-stats {
  max-width: 100%;
}

.forum-topic-meta-cell > * {
  min-width: 0;
}

/* One-line compact row on regular desktop widths. */
@media (min-width: 1180px) {
  .forum-topic-meta-main {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.45rem;
    align-items: center;
  }

  .forum-topic-meta-creator,
  .forum-topic-meta-created,
  .forum-topic-meta-stats-wrap,
  .forum-topic-meta-last-reply,
  .forum-topic-meta-activity {
    grid-column: auto;
    justify-self: auto;
    flex: 0 0 auto;
  }

  .forum-topic-meta-creator { order: 1; }
  .forum-topic-meta-created { order: 2; }
  .forum-topic-meta-stats-wrap { order: 3; margin-right: auto; }
  .forum-topic-meta-last-reply { order: 4; }
  .forum-topic-meta-activity { order: 5; }
}

/* Narrow desktop/tablet: stable 2-column grid prevents overflow. */
@media (max-width: 1179px) {
  .forum-topic-meta-main {
    display: grid;
    grid-template-columns: minmax(0, max-content) auto;
    gap: 0.35rem 0.55rem;
    align-items: center;
  }

  .forum-topic-meta-creator { grid-column: 1; justify-self: start; }
  .forum-topic-meta-created { grid-column: 2; justify-self: end; margin-left: 0; }
  .forum-topic-meta-last-reply { grid-column: 1; justify-self: start; }
  .forum-topic-meta-activity { grid-column: 2; justify-self: end; }
  .forum-topic-meta-stats-wrap { grid-column: 1 / span 2; justify-self: start; }
}

.forum-topic-meta-person .forum-user-tag {
  max-width: min(100%, 230px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.forum-topic-meta-label {
  color: var(--text-secondary, #9aa4b2);
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.25rem;
  width: auto;
  padding: 0 0.38rem;
  height: 20px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
  font-size: 0.62rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.forum-topic-meta-label i {
  font-size: 0.66rem;
  line-height: 1;
}

/* Discussions index â€” title + tagline + button one band */
.forum-index-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem 1rem;
  margin-bottom: var(--page-toolbar-row-gap, 1.5rem);
  width: 100%;
}

.forum-index-context {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
  margin-right: auto;
  padding: 0 0.8rem;
  height: var(--filter-chip-height, 36px);
  min-height: var(--filter-chip-height, 36px);
  box-sizing: border-box;
  font-size: 0.85rem;
  font-family: var(--font-mono);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}

/* Hard-sync with shared filter chips; prevents any page-specific drift. */
.forum-index-context.filter-chip {
  padding: 0 0.8rem !important;
  height: var(--filter-chip-height, 36px) !important;
  min-height: var(--filter-chip-height, 36px) !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}

/* Keep All topics base color same as file/resource category chips. */
.forum-index-context.filter-chip.active {
  color: var(--text-primary) !important;
}

.forum-index-context.filter-chip.active .forum-index-crumb-link,
.forum-index-context.filter-chip.active .forum-index-crumb-link i {
  color: inherit !important;
}

/* Keep category hover glow working over active-base override. */
.forum-index-context.filter-chip.active .forum-index-crumb-link:hover,
.forum-index-context.filter-chip.active .forum-index-crumb-link:focus-visible,
.forum-index-context.filter-chip.active .forum-index-crumb-hit:hover i,
.forum-index-context.filter-chip.active .forum-index-crumb-hit:focus-visible i {
  color: var(--primary-color, #00ff9d) !important;
}

.forum-index-context i {
  font-size: 0.85rem;
  line-height: 1;
  opacity: 0.9;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
}

.forum-index-crumb-link {
  color: inherit;
  text-decoration: none;
}

.forum-index-crumb-hit {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.1rem 0.2rem;
  border-radius: 6px;
}

.forum-index-crumb-link:hover,
.forum-index-crumb-link:focus-visible {
  color: var(--primary-color, #00ff9d) !important;
  text-decoration: none;
  text-shadow: none;
}

.forum-index-crumb-current {
  font-weight: 600;
}

.forum-index-crumb-hit:hover i,
.forum-index-crumb-hit:focus-visible i {
  color: var(--primary-color, #00ff9d) !important;
  text-shadow: none;
  opacity: 1;
}

.forum-topic-category-pill {
  margin-left: 0;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.2s ease, background 0.2s ease,
    box-shadow 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease;
}

.forum-topic-list-card-category-row {
  margin-top: 0.3rem;
}

/* Same hover language as .filter-chip (green label + glow); beats row-level .telemetry-pod hovers */
a.telemetry-pod.forum-topic-category-pill:hover,
a.telemetry-pod.forum-topic-category-pill:focus-visible,
a.category-badge.telemetry-pod.forum-topic-category-pill:hover,
a.category-badge.telemetry-pod.forum-topic-category-pill:focus-visible {
  text-decoration: none;
  color: var(--primary-color, #00ff9d) !important;
  text-shadow: 0 0 9px rgba(0, 255, 157, 0.45), 0 0 16px rgba(0, 255, 157, 0.22);
  border-color: rgba(0, 255, 157, 0.48) !important;
  background: rgba(0, 255, 157, 0.1) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3), 0 0 14px rgba(0, 255, 157, 0.18) !important;
}

a.telemetry-pod.forum-topic-category-pill:hover i,
a.telemetry-pod.forum-topic-category-pill:focus-visible i,
a.category-badge.telemetry-pod.forum-topic-category-pill:hover i,
a.category-badge.telemetry-pod.forum-topic-category-pill:focus-visible i {
  color: var(--primary-color, #00ff9d) !important;
  opacity: 1 !important;
  filter: drop-shadow(0 0 5px rgba(0, 255, 157, 0.55));
}

.forum-index-lead {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  flex: 1 1 14rem;
  min-width: 0;
}

.forum-index-title {
  margin: 0;
  font-size: 1.12rem;
  color: var(--text-primary, #e8f0ff);
  line-height: 1.2;
}

.forum-index-tagline {
  margin: 0;
  font-size: 0.78rem;
  color: var(--text-secondary, #9aa4b2);
  line-height: 1.3;
  flex: 1 1 12rem;
  min-width: 0;
}

@media (min-width: 620px) {
  .forum-index-tagline {
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    padding-left: 0.65rem;
    max-width: 28rem;
  }
}

.forum-index-actions {
  flex-shrink: 0;
  margin-left: 0;
}

/* Category â€” same band as Discussions index: lead + actions */
.forum-cat-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem 1rem;
  margin-bottom: var(--page-toolbar-row-gap, 1.5rem);
}

.forum-cat-lead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  flex: 1 1 14rem;
  min-width: 0;
}

.forum-cat-title {
  margin: 0;
  font-size: 1.12rem;
  color: var(--text-primary, #e8f0ff);
  line-height: 1.2;
  flex: 0 1 auto;
  text-transform: none;
}

.forum-cat-desc {
  margin: 0;
  font-size: 0.78rem;
  color: var(--text-secondary, #9aa4b2);
  line-height: 1.3;
  flex: 1 1 12rem;
  min-width: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (min-width: 640px) {
  .forum-cat-desc {
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    padding-left: 0.65rem;
    max-width: 36rem;
  }
}

.forum-cat-actions {
  flex-shrink: 0;
}

@media (max-width: 540px) {
  .forum-cat-actions {
    flex-basis: 100%;
  }
}

@media (max-width: 329px) {
  .forum-topic-meta-main {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.32rem;
  }

  .forum-topic-meta-creator,
  .forum-topic-meta-created,
  .forum-topic-meta-last-reply,
  .forum-topic-meta-activity,
  .forum-topic-meta-stats-wrap {
    grid-column: 1;
    justify-self: start;
  }

  .forum-topic-meta-cell {
    max-width: 100%;
  }
}

@media (min-width: 330px) and (max-width: 760px) {
  .forum-topic-meta-main {
    gap: 0.35rem 0.45rem;
  }

  .forum-topic-meta-person .forum-user-tag {
    max-width: min(100%, 180px);
  }
}

@media (max-width: 640px) {
  .forum-topic-list-title {
    font-size: 0.95rem;
  }

  /* On narrow screens, place actions in their own top row to free full text width. */
  .forum-post-card .forum-post-actions,
  .forum-post-card .comment-actions {
    position: static;
    justify-content: flex-end;
    margin: 8px 10px 0;
    gap: 4px;
  }

  .forum-post-main {
    padding: 8px 12px 10px;
    min-height: 0;
  }

  .forum-modern-layout {
    grid-template-columns: 1fr;
  }

  .forum-modern-sidebar {
    position: static;
  }

  .forum-cats-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    cursor: pointer;
    justify-content: space-between;
    margin-bottom: 0.35rem;
    padding: 0.58rem 0.72rem;
    border: 1px solid rgba(0, 255, 157, 0.36);
    border-radius: 4px;
    background: linear-gradient(90deg, rgba(0, 255, 157, 0.12), rgba(255, 255, 255, 0.03));
    color: var(--primary-color, #00ff9d);
    font-family: var(--font-mono);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: border-color 0.18s ease, background-color 0.18s ease;
  }

  .forum-cats-toggle-left {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
  }

  .forum-cats-toggle-chevron {
    transition: transform 0.18s ease;
  }

  .forum-modern-sidebar.is-open .forum-cats-toggle {
    border-color: rgba(0, 255, 157, 0.5);
    background: linear-gradient(90deg, rgba(0, 255, 157, 0.18), rgba(255, 255, 255, 0.04));
    color: var(--primary-color, #00ff9d);
  }

  .forum-modern-sidebar.is-open .forum-cats-toggle-chevron {
    transform: rotate(180deg);
  }

  .forum-modern-sidebar {
    padding: 0;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  .forum-modern-sidebar::before,
  .forum-modern-sidebar::after {
    display: none !important;
    content: none !important;
  }

  .forum-modern-sidebar-head {
    display: none;
  }

  .forum-modern-sidebar-body {
    display: none;
    margin-top: 0.42rem;
    padding: 0.55rem;
    border: 1px solid var(--surface-border, rgba(255, 255, 255, 0.12));
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.04);
  }

  .forum-modern-sidebar.is-open .forum-modern-sidebar-body {
    display: grid;
  }
}

/* --- Rounded UI Experiment (easy rollback: remove this block) --- */
.forum-post-card {
  border-radius: 10px !important;
}

.discussion-message-card {
  border-radius: 10px !important;
}

.file-discussion-shell,
.forum-thread-shell {
  border-radius: 10px !important;
}

/* Global forum/discussion: disable green corner clamps */
.forum-post-card::before,
.forum-post-card::after,
.discussion-message-card::before,
.discussion-message-card::after,
.file-discussion-shell::before,
.file-discussion-shell::after,
.forum-thread-shell::before,
.forum-thread-shell::after {
  display: none !important;
  content: none !important;
}

/* New topic page â€” align framing with forum pages */
.forum-new-topic-page {
  width: 100%;
}

.forum-new-topic-back {
  color: var(--primary-color, #00ff9d);
  font-size: 0.85rem;
  text-decoration: none;
}

.forum-new-topic-back:hover {
  text-decoration: underline;
}

.forum-new-topic-title {
  margin: 0.85rem 0 1rem;
}

.forum-new-topic-form {
  padding: 1.25rem;
}

.forum-new-topic-field {
  margin-bottom: 1rem;
}

.forum-new-topic-label {
  display: block;
  font-size: 0.75rem;
  color: var(--text-secondary, #9aa4b2);
  margin-bottom: 0.35rem;
}

.forum-new-topic-form .cyber-input {
  width: 100%;
}
