/* Forum validation/error message. Load after existing forum styles. */
.forum-error {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: 0 0 18px;
  padding: 16px 18px;
  border: 1px solid var(--nocturne-edge);
  border-left: 3px solid var(--nocturne-muted);
  border-radius: 7px;
  background: linear-gradient(110deg, var(--nocturne-deep), var(--nocturne-deep));
  box-shadow: inset 0 1px 0 rgb(var(--nocturne-light-rgb) / 0.01961), 0 3px 10px rgb(var(--nocturne-void-rgb) / 0.2);
  color: var(--nocturne-light);
  line-height: 1.6;
  text-align: left;
}
.forum-error-icon {
  flex: 0 0 20px;
  padding-top: 5px;
  color: var(--nocturne-muted);
  font-size: 18px;
  line-height: 1.4;
}
.forum-error-message {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
.forum-error-message > :first-child { margin-top: 0; }
.forum-error-message > :last-child { margin-bottom: 0; }
.forum-error-message a { color: var(--nocturne-light); text-decoration: underline; }
.forum-error-message a:hover { color: var(--nocturne-light); }
.forum-error-message a:focus-visible { outline: 2px solid var(--nocturne-muted); outline-offset: 3px; }
@media (max-width: 576px) {.forum-error { gap: 10px; padding: 13px 14px; font-size: 13px; }
}

/* General forum messages. Append to your forum stylesheet or enqueue separately. */
.forum-message {
  --forum-message-accent: var(--nocturne-light);
  width: 100%;
  min-width: 0;
  /* margin: 16px 0 24px; */
  margin-top: 14px;
  color: var(--nocturne-light);
}
.forum-message,
.forum-message * { box-sizing: border-box; }
.forum-message-navigation { margin-bottom: 14px; }
.forum-message .forum-message-index {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}
.forum-message .forum-message-index:hover { color: var(--forum-message-accent); }
.forum-message-panel {
  overflow: hidden;
  min-width: 0;
  border: 1px solid var(--nocturne-edge);
  border-radius: 8px;
  background: var(--nocturne-deep);
  box-shadow: 0 4px 14px rgb(var(--nocturne-void-rgb) / 0.2667), inset 0 1px 0 rgb(var(--nocturne-light-rgb) / 0.01961);
}
.forum-message-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--nocturne-panel);
  /* background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); */
  background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep));
}
.forum-message-icon { flex: 0 0 auto; color: var(--forum-message-accent); font-size: 19px; }
.forum-message-title { min-width: 0; margin: 0; font-size: 17px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.forum-message-content { padding: 24px 20px; line-height: 1.5; text-align: left; overflow-wrap: anywhere; }
.forum-message-content > :first-child { margin-top: 0; }
.forum-message-content > :last-child { margin-bottom: 0; }
.forum-message .forum-message-content a { color: var(--forum-message-accent); text-decoration: underline; text-underline-offset: 3px; }
.forum-message .forum-message-content a:hover { text-decoration-thickness: 2px; }
.forum-message a:focus-visible { outline: 2px solid var(--forum-message-accent); outline-offset: 3px; }
@media (max-width: 576px) {.forum-message-header { padding: 13px 16px; }
  .forum-message-title { font-size: 15px; }
  .forum-message-content { padding: 18px 16px; font-size: 13px; }
}

/* Nocturne moderator control panel. Append to the forum stylesheet. */
.forum-modcp {
    --forum-modcp-accent: var(--nocturne-light);
    color: var(--nocturne-muted);
    min-width: 0;
}
.forum-modcp *,
.forum-modcp *::before,
.forum-modcp *::after { box-sizing: border-box; }
.forum-modcp-form { overflow: hidden; border: 1px solid var(--nocturne-panel); border-top: 2px solid var(--forum-modcp-accent); border-radius: 8px; background: var(--nocturne-deep); margin-top: 14px; }
.forum-modcp-header { padding: 16px 20px; border-bottom: 1px solid var(--nocturne-panel); background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); }
.forum-modcp-header h2 { margin: 0; color: var(--nocturne-light); font-size: 1.125rem; }
.forum-modcp-header h2 i { margin-right: 7px; color: var(--forum-modcp-accent); }
.forum-modcp-header p { margin: 8px 0 0; line-height: 1.5; }
.forum-modcp-columns,
.forum-modcp-topic { display: grid; grid-template-columns: minmax(0, 1fr) 70px 180px 60px 90px; align-items: center; gap: 12px; padding: 14px 18px; }
.forum-modcp-columns { background: var(--nocturne-deep); color: var(--nocturne-muted); font-weight: 700; text-transform: uppercase; }
.forum-modcp-columns > :nth-child(n+2) { text-align: center; }
.forum-modcp-topic { min-height: 74px; border-top: 1px solid var(--nocturne-panel); background: var(--nocturne-deep); transition: background-color .2s; }
.forum-modcp-topic:nth-child(odd) { background: var(--nocturne-deep); }
.forum-modcp-topic:hover { background: var(--nocturne-deep); }
.forum-modcp-topic > * { min-width: 0; }
.forum-modcp-title { overflow-wrap: anywhere; line-height: 1.5; }
.forum-modcp-title a { color: var(--nocturne-light); font-weight: 600; text-decoration: none; }
.forum-modcp-title a:hover { color: var(--forum-modcp-accent); }
.forum-modcp-type { color: var(--forum-modcp-accent); font-size: .875rem; }
.forum-modcp-replies,
.forum-modcp-lastpost,
.forum-modcp-select,
.forum-modcp-priority { text-align: center; font-size: .8125rem; }
.forum-modcp-replies strong { color: var(--nocturne-light); font-size: .9375rem; }
.forum-modcp-lastpost { line-height: 1.5; }
.forum-modcp-select input { width: 17px; height: 17px; margin: 0; accent-color: var(--forum-modcp-accent); cursor: pointer; }
.forum-modcp-priority input { width: 70px; max-width: 100%; min-height: 32px; padding: 5px 8px; border: 1px solid var(--nocturne-edge); border-radius: 4px; background: var(--nocturne-void); color: var(--nocturne-light); text-align: center; }
.forum-modcp input:focus-visible,
.forum-modcp a:focus-visible { outline: 2px solid var(--forum-modcp-accent); outline-offset: 3px; }
.forum-modcp-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding: 14px 18px; border-top: 1px solid var(--nocturne-panel); background: linear-gradient(var(--nocturne-deep), var(--nocturne-deep)); }
.forum-modcp-actions input[type="submit"] { min-height: 34px; padding: 6px 14px; border: 1px solid var(--nocturne-edge); border-radius: 4px; background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); color: var(--nocturne-light); cursor: pointer; transition: border-color .2s, color .2s; }
.forum-modcp-actions input[type="submit"]:hover { border-color: var(--forum-modcp-accent); color: var(--forum-modcp-accent); }
.forum-modcp-actions .forum-modcp-delete { margin-left: 8px; }
.forum-modcp-actions .forum-modcp-delete:hover { border-color: var(--nocturne-muted); color: var(--nocturne-muted); }
.forum-modcp-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; border-top: 1px solid var(--nocturne-panel); }
.forum-modcp-page-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px; }
.forum-modcp-timezone { color: var(--nocturne-muted); }
.forum-modcp-jumpbox { display: flex; justify-content: flex-end; margin-top: 14px; }
.forum-modcp-mobile-label { display: none; }
@media (max-width: 900px) {.forum-modcp-columns,
.forum-modcp-topic { grid-template-columns: minmax(0, 1fr) 55px 125px 45px 75px; gap: 8px; padding-inline: 12px; }
}
@media (max-width: 640px) {.forum-modcp-columns { display: none; }
    .forum-modcp-topic { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 14px; }
    .forum-modcp-title { grid-column: 1; grid-row: 1; }
    .forum-modcp-select { grid-column: 2; grid-row: 1; }
    .forum-modcp-select .forum-modcp-mobile-label { display: none; }
    .forum-modcp-replies { grid-column: 1; grid-row: 2; }
    .forum-modcp-priority { grid-column: 2; grid-row: 2 / 4; }
    .forum-modcp-lastpost { grid-column: 1; grid-row: 3; }
    .forum-modcp-replies,
.forum-modcp-lastpost { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; text-align: left; }
    .forum-modcp-mobile-label { display: block; color: var(--nocturne-muted); font-size: .7rem; font-weight: 600; }
    .forum-modcp-priority .forum-modcp-mobile-label { margin-bottom: 5px; }
    .forum-modcp-header { padding: 14px; }
    .forum-modcp-actions { justify-content: flex-start; padding: 12px; }
    .forum-modcp-actions .forum-modcp-delete { margin-left: 0; }
    .forum-modcp-footer,
.forum-modcp-page-controls { justify-content: flex-start; }
    .forum-modcp-jumpbox { display: block; }
    .forum-modcp-jumpbox select { max-width: 100%; }
}

/* Nocturne forum confirmation panel. Append to the forum stylesheet. */
.forum-confirm {
    --forum-confirm-accent: var(--nocturne-light);
    --forum-confirm-contrast: var(--nocturne-void);
    min-width: 0;
    color: var(--nocturne-muted);
}
.forum-confirm *,
.forum-confirm *::before,
.forum-confirm *::after {
    box-sizing: border-box;
}
.forum-confirm-panel {
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid var(--nocturne-panel);
    border-top: 2px solid var(--forum-confirm-accent);
    border-radius: 8px;
    background: var(--nocturne-deep);
    box-shadow: 0 4px 16px rgb(var(--nocturne-void-rgb) / 0.2);
}
.forum-confirm-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--nocturne-panel);
    background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep));
}
.forum-confirm-header > i {
    flex-shrink: 0;
    color: var(--forum-confirm-accent);
    font-size: 1.25rem;
}
.forum-confirm-header h2 {
    margin: 0;
    color: var(--nocturne-light);
    font-size: 1.0625rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.forum-confirm-message {
    padding: 24px 20px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.forum-confirm-message > :first-child { margin-top: 0; }
.forum-confirm-message > :last-child { margin-bottom: 0; }
.forum-confirm-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--nocturne-panel);
    background: linear-gradient(var(--nocturne-deep), var(--nocturne-deep));
}
.forum-confirm-actions input[type="submit"] {
    min-width: 90px;
    min-height: 38px;
    padding: 8px 18px;
    border: 1px solid var(--nocturne-edge);
    border-radius: 5px;
    background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep));
    color: var(--nocturne-light);
    font: inherit;
    font-size: .875rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .2s, background-color .2s, color .2s;
}
.forum-confirm-actions .forum-confirm-submit {
    border-color: var(--forum-confirm-accent);
    background: var(--forum-confirm-accent);
    color: var(--forum-confirm-contrast);
}
.forum-confirm-actions .forum-confirm-cancel:hover {
    border-color: var(--forum-confirm-accent);
    color: var(--forum-confirm-accent);
}
.forum-confirm-actions .forum-confirm-submit:hover {
    background: var(--nocturne-deep);
    color: var(--forum-confirm-accent);
}
.forum-confirm-actions input:focus-visible {
    outline: 2px solid var(--forum-confirm-accent);
    outline-offset: 3px;
}
@media (max-width: 600px) {.forum-confirm-header,
.forum-confirm-message { padding: 16px; }
    .forum-confirm-actions { padding: 12px 16px; }
    .forum-confirm-actions input[type="submit"] { flex: 1; }
}

/* Moderator move-topic panel. Load after forum-moderator.css. */
.forum-modcp-move {
    --forum-move-accent: var(--nocturne-light);
    --forum-move-contrast: var(--nocturne-void);
    min-width: 0;
    color: var(--nocturne-muted);
}
.forum-modcp-move *,
.forum-modcp-move *::before,
.forum-modcp-move *::after { box-sizing: border-box; }
.forum-modcp-move-panel {
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid var(--nocturne-panel);
    border-top: 2px solid var(--forum-move-accent);
    border-radius: 8px;
    background: var(--nocturne-deep);
}
.forum-modcp-move-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--nocturne-panel);
    background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep));
}
.forum-modcp-move-header > :is(i, svg) {
    flex-shrink: 0;
    color: var(--forum-move-accent);
}
.forum-modcp-move-header h2 {
    margin: 0;
    color: var(--nocturne-light);
    font-size: 1.0625rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.forum-modcp-move-body { padding: 20px; }
.forum-modcp-move-label {
    margin: 0 0 8px;
    color: var(--nocturne-light);
    font-size: .875rem;
    font-weight: 600;
}
.forum-modcp-move-destination { min-width: 0; }
.forum-modcp-move-destination select {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 40px;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid var(--nocturne-edge);
    border-radius: 5px;
    background-color: var(--nocturne-deep);
    color: var(--nocturne-light);
    font: inherit;
}
.forum-modcp-move-shadow {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 18px;
    padding: 12px 14px;
    border: 1px solid var(--nocturne-panel);
    border-radius: 5px;
    background: var(--nocturne-deep);
    line-height: 1.5;
    cursor: pointer;
}
.forum-modcp-move-shadow input {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    margin: 3px 0 0;
    accent-color: var(--forum-move-accent);
    cursor: pointer;
}
.forum-modcp-move-message {
    margin-top: 18px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}
.forum-modcp-move-message > :first-child { margin-top: 0; }
.forum-modcp-move-message > :last-child { margin-bottom: 0; }
.forum-modcp-move-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--nocturne-panel);
    background: linear-gradient(var(--nocturne-deep), var(--nocturne-deep));
}
.forum-modcp-move-actions input[type="submit"] {
    min-width: 90px;
    min-height: 38px;
    padding: 8px 18px;
    border: 1px solid var(--nocturne-edge);
    border-radius: 5px;
    background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep));
    color: var(--nocturne-light);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .2s, color .2s, background-color .2s;
}
.forum-modcp-move-actions .forum-modcp-move-submit {
    border-color: var(--forum-move-accent);
    background: var(--forum-move-accent);
    color: var(--forum-move-contrast);
}
.forum-modcp-move-actions input[type="submit"]:hover {
    border-color: var(--forum-move-accent);
    background: var(--nocturne-deep);
    color: var(--forum-move-accent);
}
.forum-modcp-move :is(input, select, a):focus-visible {
    outline: 2px solid var(--forum-move-accent);
    outline-offset: 3px;
}
@media (max-width: 600px) {.forum-modcp-move-header,
.forum-modcp-move-body { padding: 16px; }
    .forum-modcp-move-actions { padding: 12px 16px; }
    .forum-modcp-move-actions input[type="submit"] { flex: 1; }
}

/* Password-protected forum entry form. */
.forum-password {
    --forum-password-accent: var(--nocturne-light);
    --forum-password-contrast: var(--nocturne-void);
    min-width: 0;
    color: var(--nocturne-muted);
}
.forum-password *,
.forum-password *::before,
.forum-password *::after { box-sizing: border-box; }
.forum-password-panel {
    width: 100%;
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid var(--nocturne-panel);
    border-top: 2px solid var(--forum-password-accent);
    border-radius: 8px;
    background: var(--nocturne-deep);
}
.forum-password-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--nocturne-panel);
    background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep));
}
.forum-password-header > :is(i, svg) {
    flex-shrink: 0;
    color: var(--forum-password-accent);
}
.forum-password-header h2 {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.forum-password-body { padding: 20px; }
.forum-password-label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
}
.forum-password .forum-password-input {
  display: block;
  width: 100%;
  max-width: 480px;
  min-width: 0;
  min-height: 42px;
  margin: 0;
  padding: 9px 12px;
  border-radius: 5px;
  font: inherit;
}
.forum-password .forum-password-input:focus { border-color: var(--forum-password-accent); }
.forum-password-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 18px;
  border-top: 1px solid var(--nocturne-panel);
  background: linear-gradient(var(--nocturne-deep), var(--nocturne-deep));
}
.forum-password-actions input[type="submit"] {
    min-width: 90px;
    min-height: 38px;
    padding: 6px 14px;
    /* border: 1px solid var(--nocturne-edge); */
    border-radius: 5px;
    /* background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); */
    /* color: var(--nocturne-light); */
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .2s, color .2s, background-color .2s;
}

@media (max-width: 600px) {.forum-password-header,
.forum-password-body { padding: 16px; }
    .forum-password-actions { padding: 12px 16px; }
    .forum-password-actions input[type="submit"] { flex: 1; }
}

/* Split-topic moderator panel. */
.forum-modcp-split {
    --forum-split-accent: var(--nocturne-light);
    --forum-split-contrast: var(--nocturne-void);
    min-width: 0;
    color: var(--nocturne-muted);
}
.forum-modcp-split *,
.forum-modcp-split *::before,
.forum-modcp-split *::after { box-sizing: border-box; }
.forum-modcp-split-panel {
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid var(--nocturne-panel);
    border-top: 2px solid var(--forum-split-accent);
    border-radius: 8px;
    background: var(--nocturne-deep);
}
.forum-modcp-split-header { display: flex; align-items: center; gap: 10px; padding: 16px 20px; border-bottom: 1px solid var(--nocturne-panel); background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); }
.forum-modcp-split-header > :is(i, svg) { flex-shrink: 0; color: var(--forum-split-accent); }
.forum-modcp-split-header h2 { margin: 0; color: var(--nocturne-light); font-size: 1.0625rem; line-height: 1.5; }
.forum-modcp-split-settings { padding: 20px; }
.forum-modcp-split-explanation { margin-bottom: 18px; line-height: 1.7; }
.forum-modcp-split-explanation > :first-child { margin-top: 0; }
.forum-modcp-split-explanation > :last-child { margin-bottom: 0; }
.forum-modcp-split-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.forum-modcp-split-field { min-width: 0; }
.forum-modcp-split-label { display: block; margin: 0 0 8px; color: var(--nocturne-light); font-size: .875rem; font-weight: 600; }
.forum-modcp-split-field :is(input[type="text"], select) { display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 40px; margin: 0; padding: 8px 12px; border: 1px solid var(--nocturne-edge); border-radius: 5px; background-color: var(--nocturne-deep); color: var(--nocturne-light); font: inherit; }
.forum-modcp-split-columns,
.forum-modcp-split .forum-modcp-split-post { display: grid; grid-template-columns: 170px minmax(0, 1fr) 70px; gap: 18px; padding: 16px 20px; }
.forum-modcp-split-columns { border-top: 1px solid var(--nocturne-panel); background: var(--nocturne-deep); font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.forum-modcp-split-columns > :last-child { text-align: center; }
.forum-modcp-split .forum-modcp-split-post { border: 0; border-top: 1px solid var(--nocturne-panel); background: var(--nocturne-deep); box-shadow: none; }
.forum-modcp-split .forum-modcp-split-post:nth-child(even) { background: var(--nocturne-deep); }
.forum-modcp-split-post > * { min-width: 0; }
.forum-modcp-split-author { color: var(--nocturne-light); font-weight: 600; overflow-wrap: anywhere; }
.forum-modcp-split-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; padding-bottom: 10px; border-bottom: 1px solid var(--nocturne-panel); color: var(--nocturne-muted); font-size: .8125rem; line-height: 1.5; overflow-wrap: anywhere; }
.forum-modcp-split-meta :is(i, svg) { margin-right: 4px; color: var(--forum-split-accent); }
.forum-modcp-split-message { margin-top: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.forum-modcp-split-message > :first-child { margin-top: 0; }
.forum-modcp-split-message > :last-child { margin-bottom: 0; }
.forum-modcp-split-message :is(img, video, iframe) { max-width: 100%; }
.forum-modcp-split-message :is(pre, .codebox) { max-width: 100%; overflow-x: auto; }
.forum-modcp-split-select { text-align: center; }
.forum-modcp-split-select label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.forum-modcp-split-select input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: var(--forum-split-accent); cursor: pointer; }
.forum-modcp-split-mobile-label { display: none; }
.forum-modcp-split-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--nocturne-panel); background: linear-gradient(var(--nocturne-deep), var(--nocturne-deep)); }
.forum-modcp-split-actions input[type="submit"] { min-height: 38px; max-width: 100%; padding: 8px 18px; border: 1px solid var(--nocturne-edge); border-radius: 5px; background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); color: var(--nocturne-light); font: inherit; font-weight: 600; white-space: normal; cursor: pointer; transition: border-color .2s, color .2s, background-color .2s; }
.forum-modcp-split-actions .forum-modcp-split-submit { border-color: var(--forum-split-accent); background: var(--forum-split-accent); color: var(--forum-split-contrast); }
.forum-modcp-split-actions input[type="submit"]:hover { border-color: var(--forum-split-accent); background: var(--nocturne-deep); color: var(--forum-split-accent); }
.forum-modcp-split :is(input, select, a):focus-visible { outline: 2px solid var(--forum-split-accent); outline-offset: 3px; }
@media (max-width: 800px) {.forum-modcp-split-columns,
.forum-modcp-split .forum-modcp-split-post { grid-template-columns: 120px minmax(0, 1fr) 50px; gap: 12px; }
}
@media (max-width: 600px) {.forum-modcp-split-fields { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .forum-modcp-split-columns { display: none; }
    .forum-modcp-split-header,
.forum-modcp-split-settings { padding: 16px; }
    .forum-modcp-split .forum-modcp-split-post { grid-template-columns: minmax(0, 1fr) auto; padding: 16px; }
    .forum-modcp-split-author { grid-column: 1; grid-row: 1; }
    .forum-modcp-split-select { grid-column: 2; grid-row: 1; }
    .forum-modcp-split-content { grid-column: 1 / -1; grid-row: 2; }
    .forum-modcp-split-mobile-label { display: inline; font-size: .75rem; }
    .forum-modcp-split-actions { padding: 12px 16px; }
    .forum-modcp-split-actions input[type="submit"] { flex: 1 1 100%; }
}

/* Merge-topic moderator form. */
.forum-modcp-merge {
    --forum-merge-accent: var(--nocturne-light);
    --forum-merge-contrast: var(--nocturne-void);
    min-width: 0;
    color: var(--nocturne-muted);
}
.forum-modcp-merge *,
.forum-modcp-merge *::before,
.forum-modcp-merge *::after { box-sizing: border-box; }
.forum-modcp-merge-panel { margin-top: 16px; overflow: hidden; border: 1px solid var(--nocturne-panel); border-top: 2px solid var(--forum-merge-accent); border-radius: 8px; background: var(--nocturne-deep); }
.forum-modcp-merge-header { display: flex; align-items: center; gap: 10px; padding: 16px 20px; border-bottom: 1px solid var(--nocturne-panel); background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); }
.forum-modcp-merge-header > :is(i, svg) { flex-shrink: 0; color: var(--forum-merge-accent); }
.forum-modcp-merge-header h2 { margin: 0; font-size: 1.0625rem; line-height: 1.5; }
.forum-modcp-merge-body { padding: 20px; }
.forum-modcp-merge-field { min-width: 0; }
.forum-modcp-merge-field > label { display: block; margin-bottom: 8px; font-weight: 600; }
.forum-modcp-merge-field input[type="text"] { display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 40px; margin: 0; padding: 8px 12px; border: 1px solid var(--nocturne-edge); border-radius: 5px; background: var(--nocturne-deep); color: var(--nocturne-light); font: inherit; }
.forum-modcp-merge-help { margin-top: 8px; color: var(--nocturne-muted); font-size: .8125rem; line-height: 1.6; overflow-wrap: anywhere; }
.forum-modcp-merge-help > :first-child { margin-top: 0; }
.forum-modcp-merge-help > :last-child { margin-bottom: 0; }
.forum-modcp-merge-topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 20px; }
.forum-modcp-merge-topic { padding: 16px; border: 1px solid var(--nocturne-panel); border-radius: 6px; background: var(--nocturne-deep); }
.forum-modcp-merge-input-group { display: flex; align-items: stretch; gap: 8px; }
.forum-modcp-merge-input-group input[type="text"] { flex: 1; width: 0; }
.forum-modcp-merge input[type="submit"] { min-height: 40px; margin: 0; padding: 8px 14px; border: 1px solid var(--nocturne-edge); border-radius: 5px; background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); color: var(--nocturne-light); font: inherit; font-weight: 600; cursor: pointer; transition: border-color .2s, color .2s, background-color .2s; }
.forum-modcp-merge-search { flex-shrink: 0; }
.forum-modcp-merge-shadow { display: flex; align-items: flex-start; gap: 10px; margin-top: 18px; padding: 12px 14px; border: 1px solid var(--nocturne-panel); border-radius: 5px; background: var(--nocturne-deep); line-height: 1.5; cursor: pointer; }
.forum-modcp-merge-shadow input { flex: 0 0 auto; width: 17px; height: 17px; margin: 3px 0 0; accent-color: var(--forum-merge-accent); cursor: pointer; }
.forum-modcp-merge-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding: 14px 18px; border-top: 1px solid var(--nocturne-panel); background: linear-gradient(var(--nocturne-deep), var(--nocturne-deep)); }
.forum-modcp-merge-actions input { min-width: 90px; }
.forum-modcp-merge-actions .forum-modcp-merge-submit { border-color: var(--forum-merge-accent); background: var(--forum-merge-accent); color: var(--forum-merge-contrast); }
.forum-modcp-merge input[type="submit"]:hover { border-color: var(--forum-merge-accent); background: var(--nocturne-deep); color: var(--forum-merge-accent); }
.forum-modcp-merge :is(input, a):focus-visible { outline: 2px solid var(--forum-merge-accent); outline-offset: 3px; }
@media (max-width: 800px) {.forum-modcp-merge-topics { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {.forum-modcp-merge-header,
.forum-modcp-merge-body { padding: 16px; }
    .forum-modcp-merge-topic { padding: 12px; }
    .forum-modcp-merge-actions { padding: 12px 16px; }
    .forum-modcp-merge-actions input { flex: 1; }
    .forum-modcp-merge-input-group { flex-wrap: wrap; }
    .forum-modcp-merge-input-group input[type="text"] { flex-basis: 100%; width: 100%; }
}

/* Merge selection toolbar and reusable topic selection lists. */
.forum-merge-select,
.forum-topic-selector { --topic-selector-accent: var(--nocturne-light); min-width: 0; color: var(--nocturne-muted); }
.forum-merge-select *,
.forum-topic-selector * { box-sizing: border-box; }
.forum-merge-select-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0; padding: 14px 16px; border: 1px solid var(--nocturne-panel); border-radius: 6px; background: var(--nocturne-deep); }
.forum-merge-select-forums { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.forum-merge-select-forums select { max-width: 100%; min-height: 38px; padding: 7px 10px; border: 1px solid var(--nocturne-edge); border-radius: 5px; background-color: var(--nocturne-deep); color: var(--nocturne-light); font: inherit; }
.forum-topic-selector { overflow: hidden; border: 1px solid var(--nocturne-panel); border-top: 2px solid var(--topic-selector-accent); border-radius: 8px; background: var(--nocturne-deep); }
.forum-topic-selector-columns,
.forum-topic-selector .forum-topic-selector-row { display: grid; grid-template-columns: minmax(0, 1fr) 65px 130px 65px 190px 28px; align-items: center; gap: 12px; padding: 16px; }
.forum-topic-selector-columns { background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); font-size: .75rem; font-weight: 700; }
.forum-topic-selector-columns > :nth-child(n+2) { text-align: center; }
.forum-topic-selector .forum-topic-selector-row { border: 0; border-top: 1px solid var(--nocturne-panel); background: var(--nocturne-deep); box-shadow: none; }
.forum-topic-selector .forum-topic-selector-row:nth-child(odd) { background: var(--nocturne-deep); }
.forum-topic-selector .forum-topic-selector-row:has(input:checked) { background: var(--nocturne-deep); box-shadow: inset 3px 0 var(--topic-selector-accent); }
.forum-topic-selector-row > *,
.forum-topic-selector-info { min-width: 0; }
.forum-topic-selector-main { display: flex; align-items: center; gap: 12px; }
.forum-topic-selector-title { line-height: 1.5; overflow-wrap: anywhere; }
.forum-topic-selector-title a { color: var(--nocturne-light); font-weight: 600; text-decoration: none; }
.forum-topic-selector-title a:hover,
.forum-topic-selector-type { color: var(--topic-selector-accent); }
.forum-topic-selector-meta { color: var(--nocturne-muted); font-size: .8125rem; line-height: 1.5; overflow-wrap: anywhere; }
.forum-topic-selector-meta:empty { display: none; }
.forum-topic-selector-icon img { max-width: 24px; max-height: 24px; vertical-align: middle; }
.forum-topic-selector-stat,
.forum-topic-selector-author,
.forum-topic-selector-lastpost,
.forum-topic-selector-check { text-align: center; font-size: .8125rem; overflow-wrap: anywhere; }
.forum-topic-selector-lastpost { display: flex; flex-direction: column; gap: 5px; }
.forum-topic-selector input:is([type="radio"], [type="checkbox"]) { flex: 0 0 auto; width: 17px; height: 17px; margin: 0; accent-color: var(--topic-selector-accent); cursor: pointer; }
.forum-topic-selector-divider { margin: 0; padding: 10px 16px; border-top: 1px solid var(--nocturne-panel); background: var(--nocturne-deep); color: var(--nocturne-light); font-size: .875rem; }
.forum-topic-selector-empty { margin: 0; padding: 24px 16px; }
.forum-topic-selector-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; padding: 14px 16px; border-top: 1px solid var(--nocturne-panel); background: linear-gradient(var(--nocturne-deep), var(--nocturne-deep)); }
.forum-topic-selector-spacer { height: 16px; }
.forum-merge-select input[type="submit"],
.forum-topic-selector input[type="submit"] { min-height: 38px; padding: 7px 14px; border: 1px solid var(--nocturne-edge); border-radius: 5px; background: linear-gradient(var(--nocturne-panel), var(--nocturne-deep)); color: var(--nocturne-light); font: inherit; cursor: pointer; }
.forum-merge-select input[type="submit"]:hover,
.forum-topic-selector input[type="submit"]:hover { border-color: var(--topic-selector-accent); color: var(--topic-selector-accent); }
.forum-merge-select :is(input, select, a):focus-visible,
.forum-topic-selector :is(input, a):focus-visible { outline: 2px solid var(--topic-selector-accent); outline-offset: 3px; }
.forum-topic-selector-mobile-label { display: none; }
@media (max-width: 1000px) {.forum-topic-selector-columns,
.forum-topic-selector .forum-topic-selector-row { grid-template-columns: minmax(0, 1fr) 50px 95px 50px 140px 24px; gap: 8px; }
}
@media (max-width: 700px) {.forum-topic-selector-columns { display: flex; justify-content: space-between; }
    .forum-topic-selector-columns > :nth-child(n+2):not(:last-child) { display: none; }
    .forum-topic-selector .forum-topic-selector-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .forum-topic-selector-main { grid-column: 1 / -1; }
    .forum-topic-selector-stat,
.forum-topic-selector-author,
.forum-topic-selector-lastpost { text-align: left; }
    .forum-topic-selector-mobile-label { display: block; margin-bottom: 4px; color: var(--nocturne-muted); font-size: .7rem; }
    .forum-topic-selector-check { text-align: right; }
    .forum-topic-selector-check:empty { display: none; }
    .forum-topic-selector-actions { justify-content: flex-start; }
}
