:root {
  --green-dark: #5a9359;
  --green: #6da56c;
  --green-light: #7ab574;
  --panel: #ffffff;
  --panel-soft: #eef5f1;
  --line: #c4d0d8;
  --nav: #d1dce0;
  --text: #26302a;
  --muted: #66736d;
  --danger: #9b3030;
  --brand: var(--green);
  --brand-dark: var(--green-dark);
  --brand-soft: var(--panel-soft);
  --ink: var(--text);
  --line-strong: var(--line);
  --soft-shadow: 0 2px 8px rgba(0, 0, 0, .10);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: #f4f6f4;
  color: var(--text);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
}

a {
  color: var(--text);
  text-decoration: none;
}

a:hover {
  color: var(--green-dark);
}

.wrap {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}

.brand-bar {
  background: linear-gradient(to bottom, var(--green-light), var(--green-dark));
  border-bottom: 2px solid var(--green-dark);
  color: #fff;
  padding: 16px 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
}

.brand-content {
  display: flex;
  align-items: center;
  gap: 12px;
}

.brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: rgba(255, 255, 255, .2);
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 20px;
}

.brand-content h1 {
  margin: 0;
  font-size: 22px;
}

.brand-content p {
  margin: 2px 0 0;
  opacity: .9;
  font-size: 12px;
}

.search-box {
  margin-left: auto;
}

.search-box input {
  border: 1px solid rgba(255, 255, 255, .35);
  background: rgba(255, 255, 255, .15);
  color: #fff;
  border-radius: 5px;
  padding: 8px 10px;
  width: 240px;
}

.search-box input::placeholder {
  color: rgba(255, 255, 255, .8);
}

.nav-bar {
  background: var(--nav);
  border-bottom: 1px solid var(--line);
}

.nav-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 0;
}

.main-nav,
.user-nav {
  display: flex;
  align-items: center;
  gap: 16px;
}

.login-button {
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
  color: #fff;
  border-radius: 5px;
  padding: 7px 12px;
}

.login-button:hover {
  color: #fff;
  background: linear-gradient(to bottom, var(--green-light), var(--green));
}

.board-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 24px;
  padding: 24px 0;
}

.forum-category {
  margin-bottom: 22px;
}

.category-header {
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
  color: #fff;
  border: 1px solid var(--green-dark);
  border-radius: 5px 5px 0 0;
  padding: 10px 14px;
}

.category-header h2 {
  margin: 0;
  font-size: 16px;
}

.forum-list {
  border: 1px solid var(--line);
  border-top: 0;
  border-radius: 0 0 5px 5px;
  overflow: hidden;
  background: var(--panel);
}

.forum-row {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 72px 72px 190px;
  gap: 12px;
  align-items: center;
  padding: 13px;
  border-bottom: 1px solid var(--line);
}

.forum-row:last-child {
  border-bottom: 0;
}

.forum-row:hover {
  background: var(--panel-soft);
}

.forum-icon {
  width: 44px;
  height: 44px;
  border-radius: 6px;
  background: linear-gradient(135deg, #a8c5a0, var(--green-light));
  color: #fff;
  font-weight: 700;
  display: grid;
  place-items: center;
}

.forum-title {
  font-weight: 700;
}

.forum-main p,
.forum-latest span,
.forum-count span {
  color: var(--muted);
  font-size: 12px;
}

.forum-main p {
  margin: 4px 0 0;
}

.forum-count,
.forum-latest {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.forum-count {
  text-align: center;
}

.sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.side-card,
.system-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 5px;
  overflow: hidden;
}

.side-card h3 {
  margin: 0;
  color: #fff;
  font-size: 14px;
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
  padding: 10px 12px;
}

.side-card p {
  display: flex;
  justify-content: space-between;
  margin: 0;
  padding: 9px 12px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}

.side-card p:first-of-type {
  border-top: 0;
}

.lore-card p {
  display: block;
  line-height: 1.5;
}

.footer-shell {
  border-top: 2px solid var(--green-dark);
  margin-top: 24px;
}

.footer-links {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 0;
  color: var(--muted);
  font-size: 12px;
}

.footer-links .powered {
  margin-left: auto;
}

.time-strip {
  background: linear-gradient(to bottom, var(--green-light), var(--green-dark));
  color: rgba(255, 255, 255, .78);
  text-align: center;
  padding: 8px;
  font-size: 12px;
}

.error-page {
  padding: 48px 0;
}

.system-card {
  padding: 28px;
  border-top: 4px solid var(--danger);
}

.system-card h1 {
  margin: 0 0 10px;
}

.system-eyebrow,
.reference {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

@media (max-width: 900px) {
  .board-layout {
    grid-template-columns: 1fr;
  }

  .forum-row {
    grid-template-columns: 44px 1fr;
  }

  .forum-count,
  .forum-latest {
    grid-column: 2;
    text-align: left;
  }

  .brand-content,
  .nav-content,
  .main-nav,
  .user-nav {
    flex-wrap: wrap;
  }

  .search-box {
    width: 100%;
    margin-left: 0;
  }

  .search-box input {
    width: 100%;
  }
}


.install-shell {
  padding: 2rem 0 3rem;
}

.hero-card,
.system-message {
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 18px;
  box-shadow: 0 14px 35px rgba(15, 23, 42, 0.08);
  padding: 2rem;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1rem;
  margin-right: .75rem;
  padding: .75rem 1rem;
  border-radius: 10px;
  background: #1f2937;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.button.secondary {
  background: #475569;
}

.debug-panel {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, 0.12);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: .9rem;
}

.system-message-error {
  border-color: rgba(185, 28, 28, 0.25);
}

/* Installer screens intentionally use the active frontend theme.
   This keeps setup, faults, and success states feeling like NovaBoard pages
   instead of separate server utilities. */
.install-body {
  min-height: 100vh;
}

.install-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  padding: 32px 0;
}

.install-layout.single-panel {
  grid-template-columns: 1fr;
  max-width: 900px;
}

.install-panel,
.install-sidecard {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(38, 48, 42, .08);
}

.install-panel {
  padding: 30px;
  border-top: 4px solid var(--green-dark);
}

.install-panel h1,
.install-sidecard h2 {
  margin: 0 0 12px;
}

.install-panel p {
  line-height: 1.55;
  color: var(--muted);
}

.install-panel code {
  background: var(--panel-soft);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 2px 5px;
}

.install-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0;
}

.install-steps div {
  display: flex;
  gap: 10px;
  align-items: center;
  background: var(--panel-soft);
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 12px;
}

.install-steps strong {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 12px;
}

.install-steps span {
  color: var(--text);
  font-weight: 700;
  font-size: 13px;
}

.install-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--green-dark);
  border-radius: 5px;
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
  color: #fff;
  font-weight: 700;
  padding: 10px 14px;
  text-decoration: none;
}

.button:hover {
  color: #fff;
  background: linear-gradient(to bottom, var(--green-light), var(--green));
}

.button.secondary {
  background: #fff;
  color: var(--green-dark);
}

.button.secondary:hover {
  background: var(--panel-soft);
  color: var(--green-dark);
}

.install-sidecard {
  padding: 20px;
  align-self: start;
}

.install-sidecard p {
  border-top: 1px solid var(--line);
  margin: 0;
  padding: 10px 0;
  color: var(--muted);
}

.install-sidecard p:first-of-type {
  border-top: 0;
}

.install-sidecard .muted-note {
  display: block;
  line-height: 1.5;
  font-size: 13px;
}

.success-panel {
  border-top-color: var(--green-dark);
}

.install-error-panel {
  border-top-color: var(--danger);
}

.debug-panel {
  background: #fff8f8;
  border: 1px solid #e3b8b8;
  border-radius: 6px;
  color: #5d2424;
  padding: 14px;
  line-height: 1.6;
  margin-top: 16px;
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .install-layout,
  .install-layout.single-panel {
    grid-template-columns: 1fr;
  }

  .install-steps {
    grid-template-columns: 1fr;
  }
}

/* Alpha 3 forms and auth foundation */
.nova-form {
  display: grid;
  gap: 16px;
  margin-top: 22px;
}
.nova-form label {
  display: grid;
  gap: 7px;
  color: #25313a;
  font-weight: 700;
}
.nova-form input,
.nova-form select {
  border: 1px solid #c6d2dc;
  border-radius: 8px;
  padding: 11px 12px;
  font: inherit;
  background: #fff;
}
.nova-form .checkbox-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
}
.nova-form .checkbox-row input {
  width: auto;
}
.form-error {
  color: #8f1d1d;
  font-weight: 700;
  min-height: 1.2em;
}
.user-greeting {
  color: #42515d;
  padding-right: 8px;
}
.auth-panel {
  max-width: 760px;
  margin: 0 auto;
}


.debug-footer {
  margin: 14px auto 0;
  max-width: 1100px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 12px;
  color: #4d5961;
}

.debug-footer span {
  background: #ffffff;
  border: 1px solid #d6e0e5;
  border-radius: 999px;
  padding: 5px 10px;
}

.debug-footer strong {
  color: #9b2929;
}

/* Alpha 4 theme switcher */
.theme-switcher-card label {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
}

.theme-switcher-row {
  display: grid;
  gap: 8px;
}

.theme-switcher-row select {
  width: 100%;
  border: 1px solid #c6d2dc;
  border-radius: 8px;
  padding: 10px 11px;
  font: inherit;
  background: #fff;
}

.theme-switcher-row button {
  border: 0;
  border-radius: 8px;
  padding: 10px 12px;
  font-weight: 800;
  color: #fff;
  background: var(--green-dark);
  cursor: pointer;
}

.theme-switcher-row button:hover,
.theme-switcher-row button:focus {
  background: var(--green);
}

/* Alpha 5.1 Posting UI Foundation */
.breadcrumbs.editor-breadcrumbs {
  display: flex;
  gap: 8px;
  align-items: center;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 12px;
  margin: 24px 0 14px;
}

.posting-layout-shell { padding-bottom: 32px; }
.posting-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 18px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 22px;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
}
.posting-hero .eyebrow { text-transform: uppercase; letter-spacing: .08em; color: var(--green-dark); font-weight: 700; font-size: 12px; margin: 0 0 6px; }
.posting-hero h2 { margin: 0 0 8px; font-size: 28px; color: var(--green-dark); }
.posting-hero p { margin: 0; color: var(--muted); line-height: 1.6; }
.posting-hero-stats { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--panel-soft); }
.posting-hero-stats span { display: grid; place-items: center; text-align: center; padding: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); text-transform: uppercase; font-size: 12px; }
.posting-hero-stats span:nth-child(2n) { border-right: 0; }
.posting-hero-stats span:nth-last-child(-n+2) { border-bottom: 0; }
.posting-hero-stats strong { display: block; color: var(--green-dark); font-size: 24px; }
.posting-grid { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 20px; margin-top: 20px; align-items: start; }
.editor-card, .preview-panel, .side-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.05); }
.editor-card-title, .panel-header { background: linear-gradient(to bottom, var(--green), var(--green-dark)); color: #fff; padding: 11px 14px; font-weight: 700; display: flex; justify-content: space-between; gap: 12px; }
.panel-header.soft { color: var(--green-dark); background: var(--panel-soft); border-bottom: 1px solid var(--line); }
.editor-fields { display: grid; gap: 16px; padding: 16px; }
.field-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; align-items: center; font-weight: 700; color: var(--green-dark); }
.field-stack { display: grid; gap: 8px; }
.field-row input, .field-stack input, .field-stack textarea, .poll-drawer input, .poll-drawer select { border: 1px solid var(--line); border-radius: 6px; padding: 10px; width: 100%; }
.editor-toolbar { display: flex; flex-wrap: wrap; gap: 6px; background: var(--panel-soft); border: 1px solid var(--line); border-radius: 8px; padding: 8px; }
.editor-tool-button { border: 1px solid var(--line); background: #fff; color: var(--green-dark); border-radius: 5px; padding: 7px 9px; cursor: pointer; font-weight: 700; }
.editor-tool-button:hover { background: #eef7ee; }
.editor-tool-poll { background: #fff7e5; }
.editor-textarea { min-height: 310px; resize: vertical; line-height: 1.6; }
.editor-meta-bar { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; color: var(--muted); background: var(--panel-soft); border: 1px solid var(--line); border-radius: 6px; padding: 9px 10px; }
.editor-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; padding: 12px 14px; background: var(--panel-soft); border-top: 1px solid var(--line); }
.button { border-radius: 6px; padding: 9px 13px; border: 1px solid var(--line); font-weight: 700; cursor: pointer; }
.button.primary { color: #fff; border-color: var(--green-dark); background: linear-gradient(to bottom, var(--green), var(--green-dark)); }
.button.secondary { background: #fff; color: var(--green-dark); }
.button.danger { background: #fff0f0; color: var(--danger); border-color: #e0b8b8; }
.posting-side { display: grid; gap: 16px; position: sticky; top: 72px; }
.side-panel { display: grid; gap: 10px; }
.side-panel label { display: flex; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--line); color: var(--muted); }
.attachment-panel { padding-bottom: 12px; }
.attachment-drop { margin: 12px; min-height: 112px; display: grid; place-items: center; text-align: center; border: 2px dashed var(--line); border-radius: 8px; color: var(--muted); padding: 12px; cursor: pointer; }
.attachment-drop.dragover { background: var(--panel-soft); border-color: var(--green-dark); }
.attachment-list { display: grid; gap: 8px; margin: 0 12px; }
.attachment-item { display: flex; justify-content: space-between; gap: 8px; align-items: center; background: var(--panel-soft); border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; }
.status-panel { padding-bottom: 12px; }
.status-pill { display: inline-flex; margin: 10px 12px 0; border-radius: 999px; padding: 6px 10px; font-weight: 700; border: 1px solid var(--line); }
.status-pill.ok { color: var(--green-dark); background: #edf8ef; }
.status-pill.warn { color: #8d5f00; background: #fff7e5; }
.preview-post { display: grid; grid-template-columns: 180px minmax(0, 1fr); }
.preview-author { text-align: center; background: var(--panel-soft); border-right: 1px solid var(--line); padding: 16px; }
.preview-avatar { width: 72px; height: 72px; border-radius: 12px; margin: 0 auto 10px; display: grid; place-items: center; color: var(--green-dark); background: #fff; border: 1px solid var(--line); font-size: 28px; font-weight: 700; }
.preview-content { padding: 16px; line-height: 1.7; }
.preview-content h3 { margin-top: 0; color: var(--green-dark); }
.preview-content footer { margin-top: 18px; border-top: 1px dashed var(--line); padding-top: 12px; color: var(--muted); }
.poll-drawer-backdrop { position: fixed; inset: 0; z-index: 80; background: rgba(0,0,0,.35); backdrop-filter: blur(3px); }
.poll-drawer { position: fixed; inset: 0 0 0 auto; width: min(420px, 100%); z-index: 90; background: #fff; border-left: 2px solid var(--green-dark); box-shadow: -10px 0 30px rgba(0,0,0,.2); transform: translateX(105%); transition: transform .2s ease; display: grid; grid-template-rows: auto 1fr auto; }
.poll-drawer.open { transform: translateX(0); }
.poll-drawer-header { color: #fff; background: linear-gradient(to bottom, var(--green), var(--green-dark)); padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; }
.poll-drawer-header button { color: #fff; background: transparent; border: 0; font-size: 22px; cursor: pointer; }
.poll-drawer-body { padding: 16px; display: grid; gap: 14px; overflow: auto; }
.poll-option-heading { display: flex; justify-content: space-between; color: var(--muted); }
.poll-options { display: grid; gap: 8px; }
.add-option-button { border: 1px dashed var(--green-dark); background: #f6fbf6; color: var(--green-dark); padding: 9px; border-radius: 6px; cursor: pointer; }
.drawer-check { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: start; }
.drawer-check small { grid-column: 2; color: var(--muted); }
.poll-tip { background: #fff7e5; color: #6f5317; padding: 10px; border-radius: 6px; }
.poll-drawer-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px; border-top: 1px solid var(--line); }
.toast { position: fixed; right: 18px; bottom: 18px; z-index: 100; color: #fff; background: #26302a; border-radius: 999px; padding: 11px 15px; opacity: 0; transform: translateY(80px); transition: .2s ease; }
.toast.visible { opacity: 1; transform: translateY(0); }
@media (max-width: 940px) { .posting-hero, .posting-grid { grid-template-columns: 1fr; } .posting-side { position: static; } .field-row { grid-template-columns: 1fr; } }

/* Alpha 5.2 forum view and moderator drawer foundation. */
.forum-view-shell { padding: 20px 0 42px; }
.forum-view-hero { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 0; background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; margin-bottom: 18px; box-shadow: 0 8px 22px rgba(0,0,0,.06); }
.forum-view-hero > div { padding: 22px; }
.forum-view-hero h2 { margin: 0 0 8px; font-size: 32px; color: var(--green-dark); }
.forum-view-hero p { margin: 0; color: var(--muted); line-height: 1.55; }
.forum-view-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.forum-view-stats { display: grid; grid-template-columns: repeat(2,1fr); background: #eef5f1; border-left: 1px solid var(--line); }
.forum-view-stats span { display: grid; place-items: center; text-align: center; padding: 18px 8px; color: var(--muted); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-transform: uppercase; font-size: 12px; letter-spacing: .08em; }
.forum-view-stats strong { display: block; color: var(--green-dark); font-size: 24px; letter-spacing: -.03em; }
.forum-view-layout { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 18px; align-items: start; }
.topic-panel-default, .sidebar-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: 0 8px 22px rgba(0,0,0,.05); }
.topic-toolbar-default { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: center; padding: 12px; background: #f7faf8; border-bottom: 1px solid var(--line); }
.filter-group { display: flex; gap: 7px; flex-wrap: wrap; }
.filter-button, .page-button, .topic-sort { border: 1px solid var(--line); background: #fff; color: var(--green-dark); border-radius: 999px; padding: 7px 10px; font-weight: 700; cursor: pointer; }
.filter-button.active, .page-button.active { color: #fff; background: linear-gradient(to bottom, var(--green), var(--green-dark)); }
.topic-list-head-default, .topic-row-default { display: grid; grid-template-columns: 30px 48px minmax(0,1fr) 78px 78px 210px; gap: 12px; align-items: center; }
.topic-list-head-default { padding: 10px 14px; color: var(--green-dark); background: #e2eee6; border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.topic-section-label-default { padding: 9px 14px; color: var(--green-dark); background: #f4f8f5; border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.topic-row-default { padding: 13px 14px; border-bottom: 1px solid var(--line); background: #fff; transition: .15s ease; }
.topic-row-default:hover { background: #f7fbf8; box-shadow: inset 4px 0 0 var(--green); }
.topic-row-default.announcement { background: #f5faf6; }
.topic-row-default.pinned { background: #fffdf5; }
.topic-row-default.closed { color: var(--muted); background: #f6f7f6; }
.topic-row-default h3 { margin: 0 0 5px; color: var(--green-dark); font-size: 16px; }
.topic-row-default p { margin: 0; color: var(--muted); line-height: 1.4; }
.topic-row-default small { display: block; color: var(--muted); }
.topic-icon-default { width: 42px; height: 42px; border-radius: 9px; display: grid; place-items: center; background: #e7f1e8; border: 1px solid var(--line); color: var(--green-dark); font-weight: 800; }
.topic-icon-default.unread { background: linear-gradient(to bottom, #f6c46a, #df9222); color: #fff; border-color: #c9871d; }
.topic-icon-default.closed { background: #e4e8e4; color: var(--muted); }
.topic-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 7px; }
.topic-tags span { border: 1px solid var(--line); background: #eef5f1; border-radius: 999px; padding: 2px 7px; color: var(--green-dark); font-size: 12px; font-weight: 700; }
.last-post-default { background: #f7faf8; border: 1px solid #dce6df; border-radius: 8px; padding: 8px 10px; }
.last-post-default strong, .last-post-default span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.last-post-default strong { color: var(--green-dark); }
.last-post-default span { color: var(--muted); font-size: 12px; margin-top: 3px; }
.topic-footer-default { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: center; padding: 12px; background: #f7faf8; }
.forum-view-side { display: grid; gap: 18px; position: sticky; top: 70px; }
.sidebar-card { padding-bottom: 8px; }
.sidebar-card h3 { margin: 0; color: var(--green-dark); background: #e2eee6; border-bottom: 1px solid var(--line); padding: 11px 13px; font-size: 15px; }
.sidebar-card p { margin: 0; padding: 10px 13px; border-bottom: 1px solid var(--line); color: var(--muted); }
.moderator-backdrop { position: fixed; inset: 0; z-index: 80; background: rgba(20,28,24,.45); backdrop-filter: blur(4px); }
.moderator-drawer { position: fixed; top: 0; right: 0; z-index: 90; width: min(430px, 100vw); height: 100vh; background: var(--panel, #f9fbfa); border-left: 2px solid var(--green-dark); box-shadow: -18px 0 45px rgba(0,0,0,.24); transform: translateX(102%); transition: transform .2s ease; display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
.moderator-drawer.is-open { transform: translateX(0); }
.moderator-drawer-header, .moderator-drawer-footer { background: linear-gradient(to bottom, var(--green), var(--green-dark)); color: #fff; padding: 15px 18px; display: flex; justify-content: space-between; align-items: center; }
.moderator-drawer-header strong { font-size: 16px; letter-spacing: .01em; }
.moderator-drawer-header button, .moderator-drawer-footer button { border: 0; color: #fff; background: transparent; font-size: 24px; cursor: pointer; }
.moderator-drawer-footer button { width: 100%; padding: 10px 12px; border-radius: 7px; background: rgba(255,255,255,.18); font-weight: 800; font-size: 14px; }
.moderator-drawer-body { overflow-y: auto; padding: 16px; display: grid; align-content: start; gap: 12px; background: color-mix(in srgb, var(--panel, #f9fbfa) 94%, var(--green) 6%); }
.moderator-summary, .moderator-section { border: 1px solid var(--line); background: var(--panel, #fff); border-radius: 10px; box-shadow: 0 8px 20px rgba(16,24,32,.06); }
.moderator-summary { padding: 13px 14px; display: grid; gap: 4px; border-left: 4px solid var(--green); }
.moderator-summary strong { color: var(--green-dark); font-size: 15px; }
.moderator-summary span, .moderator-help { color: var(--muted); font-size: 12px; line-height: 1.35; }
.moderator-bulk-form { display: grid; gap: 12px; }
.moderator-section { padding: 13px; display: grid; gap: 10px; }
.moderator-section-title { display: flex; align-items: center; gap: 8px; color: var(--text); }
.moderator-section-title span { width: 22px; height: 22px; border-radius: 999px; display: inline-grid; place-items: center; background: var(--green-dark); color: #fff; font-size: 12px; font-weight: 800; }
.moderator-section-title strong { font-size: 14px; }
.moderator-check { display: flex; align-items: center; gap: 8px; color: var(--text); }
.moderator-select-all { padding: 9px 10px; border: 1px solid var(--line); background: color-mix(in srgb, var(--panel, #fff) 88%, var(--green) 12%); border-radius: 8px; font-weight: 700; }
.moderator-select-all input { width: 16px; height: 16px; }
.moderator-help { margin: -2px 0 0; }
.moderator-field { display: grid; gap: 5px; color: var(--text); font-size: 12px; font-weight: 800; }
.moderator-field select, .moderator-field input { width: 100%; min-height: 38px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel, #fff); color: var(--text); padding: 7px 9px; font: inherit; font-weight: 600; }
.moderator-field input::placeholder { color: var(--muted); }
.moderator-action { display: grid; gap: 3px; width: 100%; text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 11px 13px; color: var(--text); cursor: pointer; }
.moderator-action:hover { background: #eef5f1; border-color: var(--green); }
.moderator-action span { color: var(--muted); font-size: 12px; line-height: 1.35; }
.moderator-action.danger { color: var(--danger); }
.moderator-action-primary { background: linear-gradient(to bottom, var(--green), var(--green-dark)); border-color: var(--green-dark); color: #fff; box-shadow: 0 8px 18px rgba(44,91,60,.18); }
.moderator-action-primary:hover { background: linear-gradient(to bottom, var(--green-light), var(--green-dark)); }
.moderator-action-primary span { color: rgba(255,255,255,.82); }
.moderator-section-apply { padding-bottom: 14px; }
.toast { position: fixed; right: 18px; bottom: 18px; z-index: 120; color: #fff; background: #1d2733; border-radius: 999px; padding: 11px 15px; box-shadow: 0 12px 26px rgba(0,0,0,.22); transform: translateY(90px); opacity: 0; transition: .22s ease; font-weight: 700; }
.toast.visible { transform: translateY(0); opacity: 1; }
@media (max-width: 980px) { .forum-view-hero, .forum-view-layout { grid-template-columns: 1fr; } .forum-view-stats { border-left: 0; border-top: 1px solid var(--line); } .forum-view-side { position: static; } .topic-list-head-default { display: none; } .topic-row-default { grid-template-columns: 28px 42px minmax(0,1fr); } .topic-row-default > div:nth-last-child(-n+3) { grid-column: 3 / -1; } }


/* Alpha 5.2 default forum-view refinement: closer classic topic-list shell with icon legend. */
.forum-view-classic-shell { background: #eaf1f4; }
.forum-classic-wrap { width: min(1014px, calc(100% - 28px)); margin: 0 auto; padding: 0 0 44px; }
.forum-classic-breadcrumbs { min-height: 28px; display: flex; align-items: center; gap: 9px; color: #32713f; font-size: 12px; }
.forum-classic-breadcrumbs a { color: #32713f; }
.forum-classic-breadcrumbs strong { color: #101820; }
.forum-classic-title-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 24px 0 18px; }
.forum-classic-title-row h2 { margin: 0 0 4px; font-size: 22px; color: #16202a; letter-spacing: -.02em; }
.forum-classic-title-row p { margin: 0; color: #50705c; font-size: 13px; }
.forum-classic-actions { display: flex; gap: 8px; align-items: center; }
.forum-classic-actions .button { border-radius: 4px; font-weight: 800; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
.forum-classic-actions .button.secondary { background: #fff; border-color: #bdccd5; color: #26363e; }
.forum-classic-actions .button.primary { background: linear-gradient(#69a969, #579357); border-color: #4e894e; color: #fff; }
.classic-subforum-panel, .classic-topic-panel { background: #fff; border: 1px solid #bfcbd3; border-radius: 3px; box-shadow: 0 1px 4px rgba(30,45,55,.12); overflow: hidden; margin-bottom: 20px; }
.classic-panel-title, .classic-topic-head { background: linear-gradient(#65a565, #579459); color: #fff; font-weight: 800; }
.classic-panel-title { padding: 12px 14px; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.classic-subforum-row { display: grid; grid-template-columns: 42px minmax(0,1fr) 120px 260px; gap: 14px; align-items: center; min-height: 58px; padding: 9px 12px; border-bottom: 1px solid #c7d1d8; background: #fbfbfa; }
.classic-subforum-row:nth-child(odd) { background: #f5f8f8; }
.classic-subforum-row:last-child { border-bottom: 0; }
.classic-forum-status { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 4px; color: #fff; background: #88bd85; }
.classic-forum-status.status-link { background: #4c8db8; }
.classic-subforum-main h3 { margin: 0 0 3px; font-size: 15px; }
.classic-subforum-main h3 a { color: #10232c; font-weight: 800; }
.classic-subforum-main p { margin: 0; color: #49606a; font-size: 12px; }
.classic-subforum-meta { text-align: right; color: #445862; font-size: 12px; border-right: 1px solid #c7d1d8; padding-right: 16px; }
.classic-subforum-meta strong { display: block; color: #2f6b3a; }
.classic-subforum-last { color: #47616d; font-size: 12px; }
.classic-subforum-last a { color: #245f9f; }
.classic-subforum-last span { display: block; margin-top: 4px; }
.classic-topic-head { display: grid; grid-template-columns: 34px minmax(0,1fr) 86px 86px 210px; gap: 10px; align-items: center; padding: 11px 14px; font-size: 13px; }
.classic-topic-head .topic-check-head { display: grid; place-items: center; }
.classic-topic-row { display: grid; grid-template-columns: 34px 28px minmax(0,1fr) 86px 86px 210px; gap: 10px; align-items: center; padding: 13px 14px; border-bottom: 1px solid #c7d1d8; background: #fff; }
.classic-topic-row:nth-child(odd) { background: #fffef8; }
.classic-topic-row:last-child { border-bottom: 0; }
.classic-topic-row:hover { background: #f7fbf8; box-shadow: inset 4px 0 0 #5b9a5c; }
.classic-topic-row.pinned { background: #fffdf5; }
.classic-topic-row.locked { background: #fafafa; }
.topic-select-cell { display: grid; place-items: center; }
.classic-topic-status { display: flex; flex-direction: column; align-items: center; gap: 4px; color: #5c6b73; }
.classic-topic-main h3 { margin: 0 0 5px; font-size: 14px; }
.classic-topic-main h3 a { color: #111a20; font-weight: 900; }
.classic-topic-main p { margin: 0; color: #34713f; font-size: 12px; }
.avatar-dot { display: inline-grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; background: #8ec184; color: #fff; font-size: 10px; font-weight: 900; margin-right: 4px; }
.mini-pages { display: inline-block; margin-left: 3px; padding: 1px 5px; border: 1px solid #b9ccd8; border-radius: 3px; color: #2d5f91; background: #fff; font-size: 11px; font-weight: 500; }
.classic-topic-count { text-align: center; color: #17242b; font-size: 13px; }
.classic-topic-count strong { font-size: 14px; }
.classic-topic-count.muted { color: #4f626b; }
.classic-last-post { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 8px; align-items: center; border-left: 1px solid #c7d1d8; padding-left: 12px; }
.classic-last-post a { color: #2f7c3a; font-size: 12px; font-weight: 800; }
.classic-last-post span { display: block; color: #4f626b; font-size: 11px; margin-top: 2px; }
.classic-forum-footerbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin: 8px 0 26px; color: #374b55; font-size: 12px; }
.classic-legend { display: flex; align-items: center; gap: 13px; flex-wrap: wrap; }
.classic-legend span { display: inline-flex; align-items: center; gap: 5px; }
.classic-pagination { display: flex; align-items: center; gap: 7px; }
.classic-pagination button { min-width: 28px; height: 28px; border: 1px solid #bbcbd4; border-radius: 4px; background: #fff; color: #233740; cursor: pointer; }
.classic-pagination button.active { background: #5b9a5c; color: #fff; border-color: #4d874e; }
.nb-icon { width: 16px; height: 16px; display: inline-block; position: relative; vertical-align: middle; color: currentColor; }
.nb-icon::before, .nb-icon::after { content: ""; position: absolute; box-sizing: border-box; }
.nb-icon-home::before { inset: 5px 2px 1px; border: 1.8px solid currentColor; border-top: 0; }
.nb-icon-home::after { width: 9px; height: 9px; left: 3.5px; top: 2px; border-left: 1.8px solid currentColor; border-top: 1.8px solid currentColor; transform: rotate(45deg); }
.nb-icon-folder::before { left: 1px; top: 5px; width: 14px; height: 9px; border: 1.8px solid currentColor; border-radius: 2px; }
.nb-icon-folder::after { left: 2px; top: 3px; width: 6px; height: 4px; border: 1.8px solid currentColor; border-bottom: 0; border-radius: 2px 2px 0 0; }
.nb-icon-new-replies::before, .nb-icon-no-new-replies::before { left: 2px; top: 2px; width: 12px; height: 10px; border: 2px solid currentColor; border-radius: 2px; }
.nb-icon-new-replies::after, .nb-icon-no-new-replies::after { left: 4px; top: 10px; width: 5px; height: 5px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: skew(-20deg); }
.nb-icon-new-replies { color: #4f9a57; }
.nb-icon-no-new-replies { color: #68777e; }
.nb-icon-pinned::before { left: 6px; top: 2px; width: 5px; height: 9px; background: #e59a3a; border-radius: 2px; }
.nb-icon-pinned::after { left: 4px; top: 10px; width: 9px; height: 2px; background: #e59a3a; transform: rotate(-14deg); }
.nb-icon-locked::before { left: 3px; top: 7px; width: 10px; height: 7px; border: 1.8px solid #657177; border-radius: 2px; }
.nb-icon-locked::after { left: 5px; top: 2px; width: 6px; height: 7px; border: 1.8px solid #657177; border-bottom: 0; border-radius: 6px 6px 0 0; }
.nb-icon-moved::before { left: 2px; top: 7px; width: 12px; height: 2px; background: #5b9a5c; }
.nb-icon-moved::after { right: 1px; top: 4px; width: 7px; height: 7px; border-top: 2px solid #5b9a5c; border-right: 2px solid #5b9a5c; transform: rotate(45deg); }
.nb-icon-link-forum::before { left: 2px; top: 7px; width: 8px; height: 8px; border: 2px solid #3f7ca9; border-radius: 2px; }
.nb-icon-link-forum::after { right: 1px; top: 1px; width: 8px; height: 8px; border-top: 2px solid #3f7ca9; border-right: 2px solid #3f7ca9; }
.nb-icon-announcement::before { left: 1px; top: 6px; width: 10px; height: 6px; border: 1.8px solid #e59a3a; border-right: 0; transform: skewY(-15deg); }
.nb-icon-announcement::after { right: 1px; top: 4px; width: 2px; height: 9px; background: #e59a3a; }
.nb-icon-thread::before { inset: 3px 3px 4px; border: 1.7px solid currentColor; border-radius: 2px; }
.nb-icon-views::before { left: 1px; top: 4px; width: 14px; height: 8px; border: 1.5px solid currentColor; border-radius: 50%; }
.nb-icon-views::after { left: 6px; top: 6px; width: 4px; height: 4px; background: currentColor; border-radius: 50%; }
.nb-icon-external::before { left: 3px; top: 5px; width: 8px; height: 8px; border: 1.5px solid currentColor; }
.nb-icon-external::after { right: 1px; top: 1px; width: 7px; height: 7px; border-top: 1.7px solid currentColor; border-right: 1.7px solid currentColor; }
@media (max-width: 900px) {
  .forum-classic-title-row { align-items: stretch; flex-direction: column; }
  .forum-classic-actions { justify-content: flex-start; }
  .classic-subforum-row { grid-template-columns: 42px minmax(0,1fr); }
  .classic-subforum-meta, .classic-subforum-last { grid-column: 2 / -1; text-align: left; border-right: 0; padding-right: 0; }
  .classic-topic-head { display: none; }
  .classic-topic-row { grid-template-columns: 34px 28px minmax(0,1fr); }
  .classic-topic-count, .classic-last-post { grid-column: 3 / -1; text-align: left; border-left: 0; padding-left: 0; }
}


/* Alpha 5.2 forum-view button polish: keep action buttons slim and single-line. */
.forum-classic-actions .button {
  min-height: 31px;
  padding: 7px 14px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
}
.forum-classic-actions .button.primary {
  min-width: 124px;
}
.forum-classic-actions .button.mod-open {
  min-width: 98px;
}
.mod-open .moderator-gear-icon {
  width: 14px;
  height: 14px;
  display: inline-block;
  flex: 0 0 14px;
}
.mod-open .moderator-gear-icon svg {
  width: 14px;
  height: 14px;
  display: block;
}

/* Alpha 5.2 Default Editor Shell Fix
   Keeps the shared toolbar and Post Status panel, while restoring the default
   editor pages to the modern Classic Forums shell style instead of borrowing
   ClassicLight Nova's larger hero/sidebar structure. */
.default-editor-page .editor-breadcrumbs {
  background: #f4f7f9;
  border: 1px solid var(--line);
  border-radius: 0;
  margin: 14px 0 18px;
  padding: 10px 12px;
  box-shadow: none;
  font-size: 12px;
}

.default-editor-shell {
  padding-bottom: 42px;
}

.default-editor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px;
  gap: 18px;
  align-items: start;
}

.default-composer-card,
.reply-context-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 3px 12px rgba(0,0,0,.06);
  overflow: hidden;
}

.default-composer-header {
  color: #fff;
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.default-composer-header h1 {
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
}

.default-composer-header p {
  margin: 4px 0 0;
  color: rgba(255,255,255,.88);
  font-size: 13px;
}

.composer-save-state {
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.24);
  font-size: 12px;
  white-space: nowrap;
}

.default-composer-body {
  display: grid;
  gap: 22px;
  padding: 22px;
}

.default-editor-field {
  display: grid;
  gap: 8px;
  color: var(--text);
  font-weight: 700;
}

.default-editor-field > span,
.default-attachment-block h2,
.default-post-options h2,
.reply-context-panel h2 {
  margin: 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 800;
}

.default-editor-field small {
  color: var(--muted);
  font-weight: 600;
}

.default-editor-field input,
.default-editor-field select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  padding: 12px 13px;
  outline: none;
  transition: box-shadow .15s ease, border-color .15s ease;
}

.default-editor-field input:focus,
.default-editor-field select:focus,
.default-editor-textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(90,147,89,.16);
}

.editor-prefix-field select {
  max-width: 260px;
}

.default-message-box {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}

.default-message-box .editor-toolbar {
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #f4f7f9;
  padding: 8px;
}

.default-message-box .editor-tool-button {
  min-height: 34px;
  border-radius: 7px;
  background: transparent;
}

.default-message-box .editor-tool-button:hover,
.default-message-box .editor-tool-button:focus {
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}

.default-message-box .editor-tool-poll {
  background: #fff;
}

.default-editor-textarea {
  width: 100%;
  min-height: 390px;
  border: 0;
  border-radius: 0;
  padding: 16px;
  resize: vertical;
  background: #fff;
  line-height: 1.65;
  outline: none;
}

.editor-help-line {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.default-attachment-block {
  display: grid;
  gap: 10px;
}

.default-attachment-drop {
  margin: 0;
  min-height: 138px;
  display: grid;
  place-items: center;
  gap: 6px;
  border: 2px dashed var(--line);
  border-radius: 8px;
  background: #f9fafb;
  color: var(--muted);
  padding: 20px;
}

.default-attachment-drop strong {
  color: var(--text);
}

.default-attachment-drop span {
  font-size: 12px;
}

.default-post-options {
  display: grid;
  gap: 11px;
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.default-post-options label {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--text);
  font-size: 14px;
}

.default-composer-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 22px;
  border-top: 1px solid var(--line);
  background: #f9fafb;
}

.default-composer-actions .action-spacer {
  flex: 1;
}

.submit-topic-button {
  padding-inline: 18px;
}

.default-editor-side {
  position: sticky;
  top: 72px;
}

.default-editor-side .status-panel {
  box-shadow: 0 3px 12px rgba(0,0,0,.06);
}

.default-preview-panel {
  box-shadow: none;
  margin-top: 0;
}

.reply-context-panel {
  padding: 14px 16px;
  background: #fbfcfd;
}

.reply-context-panel p {
  margin: 8px 0 0;
  color: var(--muted);
  line-height: 1.55;
}

@media (max-width: 940px) {
  .default-editor-layout { grid-template-columns: 1fr; }
  .default-editor-side { position: static; }
  .default-composer-actions { align-items: stretch; flex-direction: column; }
  .default-composer-actions .action-spacer { display: none; }
}

/* Alpha 6 notification bell, drawer, and settings foundation. */
.nb-notification-shell {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-right: 8px;
}

.nb-notification-bell {
  position: relative;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--brand-dark);
  cursor: pointer;
  box-shadow: none;
}

.nb-notification-bell:hover {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.24);
}

.nb-notification-count {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  padding: 0 5px;
  border-radius: 999px;
  background: #d32f2f;
  color: #ffffff;
  font-size: 11px;
  font-weight: 800;
  border: 2px solid #ffffff;
}

.nb-notification-drawer {
  position: absolute;
  z-index: 80;
  top: calc(100% + 10px);
  right: 0;
  width: min(390px, calc(100vw - 22px));
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 18px 42px rgba(15,23,42,.18);
  overflow: hidden;
}

.nb-notification-drawer-head,
.nb-notification-drawer-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  background: #f7fafc;
  border-bottom: 1px solid var(--line);
}

.nb-notification-drawer-head button,
.nb-notification-drawer-actions button,
.nb-notification-drawer-actions a,
.nb-notification-item-actions button,
.nb-notification-open {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #ffffff;
  color: var(--brand-dark);
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  text-decoration: none;
}

.nb-notification-list {
  max-height: 370px;
  overflow: auto;
}

.nb-notification-item {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

.nb-notification-item.is-unread {
  background: #f3f8ff;
  box-shadow: inset 4px 0 0 var(--brand);
}

.nb-notification-item-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #eef5ff;
}

.nb-notification-item-body strong {
  display: block;
  color: var(--text);
  margin-bottom: 4px;
}

.nb-notification-item-body p {
  margin: 0 0 4px;
  color: var(--muted);
  line-height: 1.35;
}

.nb-notification-item-body span,
.nb-notification-empty {
  color: var(--muted);
  font-size: 12px;
}

.nb-notification-empty {
  margin: 0;
  padding: 18px;
}

.notification-settings-page {
  padding: 26px 0 48px;
}

.notification-settings-card {
  max-width: 880px;
  margin: 0 auto;
}

.notification-preferences-list {
  display: grid;
  gap: 10px;
  margin: 18px 0;
}

.notification-preference-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfcfd;
}

.notification-preference-row em {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-style: normal;
  font-size: 13px;
}

.notification-preference-row small {
  color: #8a5b00;
  font-weight: 800;
}

/* Alpha 6.1 private messages UI foundation. */
.pm-shell { padding: 20px 0 44px; }
.pm-breadcrumbs { margin-bottom: 14px; }
.pm-heading-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 0 16px;
  margin-bottom: 10px;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}
.pm-kicker { display: none; }
.pm-heading-card h2 { margin: 0; font-size: 24px; color: var(--text); line-height: 1.15; }
.pm-heading-card p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.pm-heading-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.pm-search { position: relative; display: block; min-width: 260px; }
.pm-search span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.pm-search input,
.pm-compose-form input,
.pm-compose-form textarea {
  width: 100%;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  padding: 9px 11px;
  background: #fff;
  color: var(--ink);
}
.pm-search input { padding-left: 34px; }
.pm-primary-button,
.pm-secondary-button,
.pm-list-toolbar button,
.pm-list-footer button,
.pm-message-actions button,
.pm-mini-toolbar button {
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  padding: 9px 13px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}
.pm-primary-button { color: #fff; border-color: var(--brand-dark); background: linear-gradient(180deg, var(--brand), var(--brand-dark)); box-shadow: var(--soft-shadow); }
.pm-secondary-button,
.pm-list-toolbar button,
.pm-list-footer button,
.pm-message-actions button,
.pm-mini-toolbar button { background: #fff; color: var(--brand-dark); }
.pm-folders-card,
.pm-list-card,
.pm-message-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 4px;
  box-shadow: var(--soft-shadow);
  overflow: hidden;
}
.pm-full { display: block; text-align: center; margin: 12px; }
.pm-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 18px; align-items: start; }
.pm-panel-title { padding: 11px 14px; color: #fff; background: linear-gradient(180deg, var(--brand), var(--brand-dark)); font-weight: 900; }
.pm-folder-list { display: grid; padding: 10px; gap: 4px; }
.pm-folder-list a { display: flex; justify-content: space-between; align-items: center; border: 1px solid transparent; border-radius: 3px; padding: 9px 11px; color: var(--brand-dark); font-weight: 800; }
.pm-folder-list a:hover,
.pm-folder-list a.is-active { background: var(--brand-soft); border-color: var(--line); }
.pm-folder-list strong { min-width: 22px; height: 22px; display: grid; place-items: center; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: 12px; }
.pm-storage-box { margin: 0 12px 12px; padding: 12px; background: #f7fafc; border: 1px solid var(--line); border-radius: 4px; }
.pm-storage-box span { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.pm-storage-meter { height: 8px; background: #e8eef5; border-radius: 999px; overflow: hidden; margin-top: 10px; }
.pm-storage-meter span { display: block; height: 100%; background: var(--brand); margin: 0; }
.pm-list-toolbar,
.pm-list-footer,
.pm-message-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 11px 14px; background: #f8fafc; border-bottom: 1px solid var(--line);
}
.pm-toolbar-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pm-row { display: grid; grid-template-columns: 58px 46px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 14px; border-bottom: 1px solid var(--line); background: #fff; }
.pm-row:hover { background: #fbfdff; box-shadow: inset 4px 0 0 var(--brand); }
.pm-row.is-unread { background: #f8fbff; }
.pm-check { display: flex; gap: 8px; align-items: center; color: #d69b2d; }
.pm-avatar { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--brand), var(--brand-dark)); font-weight: 900; }
.pm-avatar-large { width: 56px; height: 56px; font-size: 20px; flex: 0 0 auto; }
.pm-row-main h3 { margin: 2px 0 4px; font-size: 16px; color: var(--ink); }
.pm-row-main p { margin: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-row-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 12px; }
.pm-row-meta strong { color: var(--brand-dark); }
.pm-badge { color: #fff; background: var(--brand); border-radius: 999px; padding: 4px 9px; font-size: 12px; font-weight: 900; }
.pm-list-footer { border-top: 1px solid var(--line); border-bottom: none; color: var(--muted); }
.pm-message-head { background: linear-gradient(180deg, var(--brand), var(--brand-dark)); color: #fff; border-bottom-color: var(--brand-dark); }
.pm-message-head a { color: #fff; font-weight: 900; }
.pm-message-actions { display: flex; gap: 8px; }
.pm-message-actions button { background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.24); }
.pm-message-body { padding: 22px; }
.pm-message-body h2 { margin: 0 0 18px; font-size: 26px; color: var(--text); }
.pm-author-block { display: flex; gap: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 4px; background: #f8fafc; margin-bottom: 18px; }
.pm-author-block span,
.pm-author-block p { display: block; margin: 3px 0 0; color: var(--muted); }
.pm-prose { line-height: 1.7; color: var(--ink); }
.pm-message-foot { border-top: 1px solid var(--line); padding-top: 16px; margin-top: 18px; display: flex; gap: 10px; flex-wrap: wrap; }
.pm-compose-overlay { position: fixed; inset: 0; background: rgba(9, 22, 37, .35); backdrop-filter: blur(2px); z-index: 70; }
.pm-compose-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(620px, 100%); background: var(--panel); border-left: 1px solid var(--line); box-shadow: -18px 0 40px rgba(0,0,0,.22); z-index: 80; overflow-y: auto; }
.pm-compose-drawer header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; color: #fff; background: linear-gradient(180deg, var(--brand), var(--brand-dark)); }
.pm-compose-drawer header button { border: 0; background: rgba(255,255,255,.18); color: #fff; border-radius: 999px; width: 32px; height: 32px; cursor: pointer; }
.pm-compose-form { padding: 20px; display: grid; gap: 14px; }
.pm-compose-form label { display: grid; gap: 7px; color: var(--brand-dark); font-weight: 900; }
.pm-mini-toolbar { display: flex; gap: 7px; flex-wrap: wrap; padding: 8px; border: 1px solid var(--line); border-radius: 4px; background: #f8fafc; }
.pm-compose-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
@media (max-width: 900px) { .pm-heading-card, .pm-layout { grid-template-columns: 1fr; } .pm-layout { display: grid; } .pm-heading-card { display: block; } .pm-heading-actions { justify-content: flex-start; margin-top: 14px; } .pm-search { min-width: 100%; } }
@media (max-width: 640px) { .pm-row { grid-template-columns: 34px 42px minmax(0,1fr); } .pm-badge { grid-column: 3; justify-self: start; } .pm-row-meta { display: block; } }


/* Alpha 6.2 default topic-view shell. */
.topic-view-page { background: #eaf1f4; }
.topic-view-wrap { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 0 0 46px; }
.topic-breadcrumbs { display: flex; align-items: center; gap: 9px; min-height: 35px; color: #52795b; font-size: 12px; }
.topic-breadcrumbs a { color: #3c7a46; }
.topic-breadcrumbs strong { color: #10191e; }
.topic-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 24px 0 14px; }
.topic-title-row h2 { margin: 0 0 7px; font-size: 24px; line-height: 1.1; color: #142027; }
.topic-title-row p { margin: 0; color: #4f626b; font-size: 13px; }
.topic-title-row p a { color: #3c7a46; font-weight: 800; }
.topic-title-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.topic-action-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid #b8c8d2; border-radius: 4px; padding: 8px 15px; min-height: 34px; line-height: 1; cursor: pointer; font-weight: 900; white-space: nowrap; font-size: 13px; }
.topic-action-button.primary { color: #fff; background: linear-gradient(#65a565, #579459); border-color: #579459; box-shadow: 0 1px 3px rgba(20, 40, 30, .18); }
.topic-action-button.secondary { color: #1d2a30; background: #fff; }
.topic-action-button:hover { filter: brightness(.98); }
.topic-pagebar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 14px; }
.topic-pagebar.bottom { margin: 18px 0 0; }
.topic-page-tools { display: flex; gap: 8px; flex-wrap: wrap; font-size: 12px; }
.topic-page-tools a { color: #3c7a46; border: 1px solid #c6d2da; background: #fff; padding: 5px 8px; border-radius: 3px; }
.topic-posts { display: grid; gap: 14px; }
.topic-post { display: grid; grid-template-columns: 190px minmax(0, 1fr); background: #fff; border: 1px solid #bfcbd3; border-radius: 4px; box-shadow: 0 1px 4px rgba(30,45,55,.12); overflow: hidden; }
.topic-post-author { background: #f4f7f9; border-right: 1px solid #c7d1d8; padding: 16px 14px; text-align: center; }
.topic-avatar { width: 82px; height: 82px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 11px; color: #fff; font-size: 28px; font-weight: 900; background: linear-gradient(135deg, #a8c5a0, #7ab574); box-shadow: 0 2px 7px rgba(0,0,0,.14); }
.topic-author-name { display: block; color: #142027; font-weight: 900; margin-bottom: 6px; }
.topic-usergroup { display: inline-block; color: #fff; border-radius: 4px; padding: 4px 9px; font-size: 11px; font-weight: 900; margin-bottom: 13px; }
.topic-usergroup.admin { background: linear-gradient(90deg, #e09c5f, #d4883e); }
.topic-usergroup.moderator { background: linear-gradient(90deg, #5a9359, #4a7a49); }
.topic-usergroup.member { background: linear-gradient(90deg, #a8c5a0, #7ab574); }
.topic-usergroup.vip { background: linear-gradient(90deg, #8b7ab5, #6d5a9a); }
.topic-post-author dl { display: grid; gap: 7px; margin: 0; font-size: 12px; color: #5c6b73; }
.topic-post-author dl div { display: flex; justify-content: space-between; border-bottom: 1px solid #d9e1e6; padding-bottom: 5px; }
.topic-post-author dt, .topic-post-author dd { margin: 0; }
.topic-post-author dd { color: #17242b; font-weight: 800; }
.topic-post-main { display: flex; flex-direction: column; min-width: 0; }
.topic-post-head { display: flex; align-items: center; gap: 10px; justify-content: space-between; background: #f9fafb; border-bottom: 1px solid #c7d1d8; padding: 8px 12px; color: #5c6b73; font-size: 12px; }
.topic-post-actions { margin-left: auto; display: flex; gap: 4px; align-items: center; }
.topic-post-actions button { border: 1px solid transparent; background: transparent; border-radius: 4px; padding: 5px 7px; color: #5c6b73; cursor: pointer; }
.topic-post-actions button:hover { background: #fff; border-color: #c6d2da; color: #3c7a46; }
.topic-post-body { flex: 1; padding: 18px; color: #1e2b31; line-height: 1.65; }
.topic-post-body p { margin: 0 0 14px; }
.topic-post-body p:last-child { margin-bottom: 0; }
.topic-post-body blockquote { margin: 14px 0; border-left: 4px solid #5a9359; background: #f6faf7; padding: 10px 13px; color: #53636a; font-style: italic; }
.topic-signature { border-top: 2px solid #d1dce0; background: #fafbfc; padding: 11px 18px; color: #5c6b73; font-size: 12px; }
.topic-signature a { color: #3c7a46; font-weight: 800; }
.topic-post-foot { display: flex; justify-content: space-between; gap: 12px; align-items: center; border-top: 1px solid #c7d1d8; background: #f9fafb; padding: 8px 12px; color: #6c777d; font-size: 12px; }
.topic-post-foot button { border: 1px solid transparent; background: transparent; color: #5c6b73; padding: 5px 9px; cursor: pointer; border-radius: 3px; }
.topic-post-foot button:hover { background: #fff; border-color: #c6d2da; color: #3c7a46; }
.topic-moderator-drawer, .quick-reply-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(430px, 94vw); background: #fff; border-left: 2px solid #5a9359; box-shadow: -10px 0 30px rgba(0,0,0,.22); transform: translateX(105%); transition: transform .22s ease; z-index: 80; display: flex; flex-direction: column; }
.quick-reply-drawer { width: min(520px, 94vw); }
.topic-moderator-drawer.is-open, .quick-reply-drawer.is-open { transform: translateX(0); }
.topic-drawer-backdrop, .quick-reply-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.22); backdrop-filter: blur(2px); z-index: 70; }
.topic-drawer-head, .quick-reply-head { background: linear-gradient(#65a565, #579459); color: #fff; padding: 14px 17px; display: flex; justify-content: space-between; align-items: center; font-size: 16px; font-weight: 900; }
.topic-drawer-head button, .quick-reply-head button { color: #fff; border: 0; background: transparent; font-size: 24px; cursor: pointer; line-height: 1; }
.topic-drawer-body, .quick-reply-body { padding: 18px; overflow-y: auto; flex: 1; }
.topic-drawer-body h3 { margin: 20px 0 10px; color: #26302a; }
.topic-drawer-notice, .quick-reply-notice { border: 1px solid rgba(224,156,95,.35); background: #fffef5; border-radius: 4px; padding: 12px; margin-bottom: 14px; }
.topic-drawer-notice strong, .quick-reply-notice strong { display: block; margin-bottom: 4px; }
.topic-drawer-notice span, .quick-reply-notice span { color: #5c6b73; font-size: 12px; }
.topic-mod-action { width: 100%; display: block; text-align: left; border: 1px solid #c6d2da; background: #fff; border-radius: 4px; padding: 11px 13px; margin-bottom: 8px; cursor: pointer; }
.topic-mod-action:hover { background: #f4faf5; border-color: #8eb98e; }
.topic-mod-action strong { display: block; color: #1d2a30; }
.topic-mod-action span { display: block; color: #66736d; font-size: 12px; margin-top: 3px; }
.topic-mod-action.danger strong { color: #9b3030; }
.topic-move-options { margin: -2px 0 10px 20px; border-left: 3px solid #5a9359; background: #f7faf8; padding: 12px; display: grid; gap: 10px; }
.topic-move-options label { display: grid; gap: 5px; font-weight: 800; color: #26302a; font-size: 13px; }
.topic-move-options select, .topic-move-options textarea, .quick-reply-body textarea { width: 100%; border: 1px solid #b8c8d2; border-radius: 4px; padding: 9px 10px; font: inherit; }
.topic-move-options button { color: #fff; background: linear-gradient(#65a565, #579459); border: 1px solid #579459; border-radius: 4px; padding: 9px 12px; font-weight: 900; }
.topic-mod-check { display: block; margin: 9px 0; color: #26302a; }
.topic-drawer-foot, .quick-reply-foot { border-top: 1px solid #c7d1d8; padding: 12px; background: #f9fafb; display: flex; justify-content: flex-end; gap: 8px; }
.topic-drawer-foot button { width: 100%; padding: 10px; border-radius: 4px; border: 1px solid #b8c8d2; background: #fff; font-weight: 900; cursor: pointer; }
.quick-reply-body label { display: block; margin: 0 0 8px; font-weight: 900; color: #26302a; }
.quick-reply-body .editor-toolbar { margin-bottom: 0; border-radius: 4px 4px 0 0; }
.quick-reply-body textarea { min-height: 260px; resize: vertical; border-top: 0; border-radius: 0 0 4px 4px; }
.quick-reply-body .editor-meta-bar { margin-top: 8px; }
.quick-reply-body .preview-panel { display: none; margin-top: 12px; border: 1px solid #c7d1d8; padding: 12px; background: #f8fafc; }
.quick-reply-body .preview-panel.visible { display: block; }
@media (max-width: 760px) {
  .topic-title-row, .topic-pagebar { flex-direction: column; align-items: stretch; }
  .topic-post { grid-template-columns: 1fr; }
  .topic-post-author { border-right: 0; border-bottom: 1px solid #c7d1d8; }
  .topic-post-head, .topic-post-foot { flex-wrap: wrap; }
}

/* Alpha 6.3 default member list UI foundation. */
.members-page {
  padding: 14px 0 34px;
}

.members-breadcrumbs {
  margin: 12px 0 14px;
}

.members-page-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 16px;
}

.members-page-head h2 {
  margin: 0 0 4px;
  color: var(--green-dark);
  font-size: 24px;
  line-height: 1.15;
}

.members-page-head p {
  margin: 0;
  color: var(--muted);
}

.members-control-row,
.members-summary-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.members-search {
  position: relative;
  flex: 1 1 360px;
}

.members-search span {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  font-weight: 700;
}

.members-search input,
.members-control-actions select,
.members-filter-grid input,
.members-filter-grid select {
  width: 100%;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 5px;
  color: var(--text);
  padding: 10px 12px;
  outline: none;
}

.members-search input {
  padding-left: 34px;
}

.members-search input:focus,
.members-control-actions select:focus,
.members-filter-grid input:focus,
.members-filter-grid select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(109, 165, 108, .14);
}

.members-control-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.members-button,
.members-view-switch button,
.members-letter-list button,
.members-pagination button,
.member-actions a {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--text);
  border-radius: 5px;
  padding: 9px 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.members-button-primary,
.member-actions a.primary,
.members-view-switch button.is-active,
.members-letter-list button.is-active,
.members-pagination button.is-active,
.members-button.is-active {
  color: #fff;
  border-color: var(--green-dark);
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
}

.members-button:hover,
.members-view-switch button:hover,
.members-letter-list button:hover,
.members-pagination button:hover,
.member-actions a:hover {
  background: var(--panel-soft);
  color: var(--green-dark);
}

.members-button-primary:hover,
.member-actions a.primary:hover,
.members-view-switch button.is-active:hover,
.members-letter-list button.is-active:hover,
.members-pagination button.is-active:hover {
  color: #fff;
  background: linear-gradient(to bottom, var(--green-light), var(--green));
}

.members-view-switch {
  display: inline-flex;
  gap: 3px;
  padding: 3px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
}

.members-view-switch button {
  border: 0;
  padding: 7px 9px;
}

.members-filter-panel,
.members-letter-panel,
.members-grid[data-view="list"] .member-card,
.members-summary-strip {
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--soft-shadow);
}

.members-filter-panel,
.members-letter-panel {
  margin-bottom: 14px;
}

.members-panel-title {
  color: #fff;
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
  border-bottom: 1px solid var(--green-dark);
  padding: 9px 12px;
  font-weight: 700;
}

.members-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding: 16px;
}

.members-filter-grid label {
  display: grid;
  gap: 6px;
  color: var(--text);
  font-weight: 700;
  font-size: 13px;
}

.members-filter-actions {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
  border-top: 1px solid var(--line);
  background: #f8faf8;
}

.members-letter-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 14px;
}

.members-letter-list button {
  min-width: 36px;
  height: 36px;
  padding: 0 9px;
}

.members-letter-clear {
  margin-left: 8px;
}

.members-letter-status {
  margin: -4px 14px 14px;
  color: var(--muted);
}

.members-summary-strip {
  padding: 12px 14px;
  background: linear-gradient(to right, #e8f0ed, #f7faf8);
}

.members-summary-strip strong,
.members-summary-strip a {
  color: var(--green-dark);
}

.members-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.member-card {
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: var(--soft-shadow);
  overflow: hidden;
  transition: box-shadow .16s ease, transform .16s ease;
}

.member-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, .12);
  transform: translateY(-1px);
}

.member-card-top {
  position: relative;
  color: #fff;
  text-align: center;
  padding: 16px 12px;
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
}

.member-avatar {
  position: relative;
  width: 74px;
  height: 74px;
  margin: 0 auto 10px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 28px;
  font-weight: 700;
  border-radius: 50%;
  border: 4px solid rgba(255, 255, 255, .35);
  background: rgba(255, 255, 255, .18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3);
}

.member-card.is-online .member-avatar::after {
  content: "";
  position: absolute;
  right: 2px;
  bottom: 2px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 2px solid #fff;
  background: var(--green-light);
}

.member-card-top h3 {
  margin: 0 0 8px;
  font-size: 18px;
}

.member-card-top a {
  color: #fff;
}

.member-group {
  display: inline-flex;
  padding: 4px 10px;
  border-radius: 4px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  background: rgba(255, 255, 255, .22);
}

.member-group-admin { background: linear-gradient(to right, #e09c5f, #c97327); }
.member-group-mod { background: linear-gradient(to right, #4a7a49, #315f31); }
.member-group-vip { background: linear-gradient(to right, #8b7ab5, #665197); }
.member-group-member { background: linear-gradient(to right, #7ab574, #5a9359); }

.member-card-body {
  padding: 14px;
}

.member-location {
  min-height: 18px;
  margin: 0 0 12px;
  color: var(--muted);
}

.member-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 12px;
}

.member-stats span {
  display: grid;
  gap: 2px;
  place-items: center;
  padding: 9px 4px;
  border: 1px solid var(--line);
  background: linear-gradient(to bottom right, #e8f0ed, #f7faf8);
  color: var(--muted);
  font-size: 11px;
}

.member-stats strong {
  color: var(--green-dark);
  font-size: 15px;
}

.member-card dl {
  margin: 0 0 12px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.member-card dl div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 5px;
}

.member-card dt,
.member-card dd {
  margin: 0;
}

.member-card dd,
.member-online-text {
  color: var(--green-dark);
  font-weight: 700;
}

.member-actions {
  display: flex;
  gap: 8px;
}

.member-actions a {
  flex: 1;
  display: inline-flex;
  justify-content: center;
  padding: 8px 10px;
}

.members-grid[data-view="list"] {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.members-grid[data-view="list"] .member-card {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
}

.members-grid[data-view="list"] .member-card-top {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  text-align: left;
  gap: 12px;
}

.members-grid[data-view="list"] .member-avatar {
  width: 58px;
  height: 58px;
  margin: 0;
  font-size: 21px;
}

.members-grid[data-view="list"] .member-card-top h3 {
  margin-bottom: 4px;
}

.members-grid[data-view="list"] .member-card-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px 170px;
  gap: 14px;
  align-items: center;
}

.members-grid[data-view="list"] .member-location,
.members-grid[data-view="list"] .member-card dl {
  margin: 0;
}

.members-grid[data-view="list"] .member-stats {
  margin: 0;
}

.members-pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 18px;
}

.members-pagination button:disabled {
  opacity: .55;
  cursor: not-allowed;
}

.members-empty {
  margin: 14px 0;
  border: 1px dashed var(--line);
  background: #fff;
  padding: 20px;
  text-align: center;
  color: var(--muted);
}

@media (max-width: 1060px) {
  .members-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .members-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .members-grid[data-view="list"] .member-card,
  .members-grid[data-view="list"] .member-card-body {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .members-control-row,
  .members-page-head,
  .members-summary-strip {
    align-items: stretch;
    flex-direction: column;
  }

  .members-control-actions {
    justify-content: flex-start;
  }

  .members-grid,
  .members-filter-grid {
    grid-template-columns: 1fr;
  }
}

/* Alpha 6.4 profile and User CP default-theme UI. */
.profile-breadcrumbs,
.usercp-breadcrumbs {
  margin-top: 14px;
}

.profile-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin: 16px 0 34px;
}

.profile-sidebar {
  position: sticky;
  top: 74px;
}

.profile-card,
.profile-panel,
.usercp-panel,
.usercp-tabs,
.usercp-stat-grid article {
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.profile-card,
.profile-panel,
.usercp-panel,
.usercp-tabs {
  border-radius: 4px;
  overflow: hidden;
}

.profile-cover {
  padding: 22px 16px;
  text-align: center;
  color: #fff;
  background: linear-gradient(180deg, var(--green), var(--green-dark));
}

.profile-avatar-large,
.usercp-avatar,
.usercp-avatar-preview {
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 800;
  background: rgba(255,255,255,.18);
  border: 3px solid rgba(255,255,255,.34);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 8px 16px rgba(0,0,0,.16);
}

.profile-avatar-large {
  width: 116px;
  height: 116px;
  border-radius: 50%;
  margin: 0 auto 12px;
  font-size: 34px;
}

.profile-cover h2 {
  margin: 0;
  font-size: 21px;
}

.profile-cover p {
  margin: 5px 0 0;
  color: rgba(255,255,255,.88);
}

.profile-meta-list,
.profile-action-stack,
.profile-mini-section {
  padding: 14px;
  border-top: 1px solid var(--line);
}

.profile-meta-list p {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 0 0 9px;
  color: var(--muted);
  font-size: 13px;
}

.profile-meta-list p:last-child {
  margin-bottom: 0;
}

.profile-action-stack {
  display: grid;
  gap: 8px;
}

.profile-button,
.usercp-actions button,
.usercp-actions .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--line-strong);
  border-radius: 3px;
  padding: 9px 12px;
  font-weight: 700;
  cursor: pointer;
  color: var(--ink);
  background: #fff;
}

.profile-button.primary,
.usercp-actions button:first-child {
  color: #fff;
  border-color: var(--green-dark);
  background: linear-gradient(180deg, var(--green), var(--green-dark));
}

.profile-mini-section h3 {
  margin: 0 0 12px;
  font-size: 14px;
}

.profile-stat-list {
  display: grid;
  gap: 9px;
  margin: 0;
}

.profile-stat-list div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.profile-stat-list div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.profile-stat-list dt,
.profile-stat-list dd {
  margin: 0;
}

.profile-stat-list dt {
  color: var(--muted);
  font-size: 13px;
}

.profile-stat-list dd {
  color: var(--green-dark);
  font-weight: 800;
}

.profile-main {
  display: grid;
  gap: 16px;
}

.profile-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 13px;
  color: #fff;
  background: linear-gradient(180deg, var(--green), var(--green-dark));
  border-bottom: 1px solid var(--green-dark);
}

.profile-panel-head h2 {
  margin: 0;
  font-size: 16px;
}

.profile-panel-head a,
.profile-panel-head span {
  color: rgba(255,255,255,.86);
  font-size: 12px;
  font-weight: 700;
}

.profile-panel-body {
  padding: 18px;
  line-height: 1.65;
}

.profile-panel-body p {
  margin: 0;
}

.profile-badge-grid,
.profile-activity-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 18px;
}

.profile-badge-grid article,
.profile-activity-stats div {
  border: 1px solid var(--line);
  background: linear-gradient(180deg, #fafcfb, #fff);
  padding: 14px;
  text-align: center;
}

.profile-badge-grid span {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: 0 auto 8px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(180deg, var(--green), var(--green-dark));
}

.profile-badge-grid strong,
.profile-activity-stats strong {
  display: block;
  color: var(--ink);
}

.profile-badge-grid em,
.profile-activity-stats span {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.profile-activity-stats strong {
  color: var(--green-dark);
  font-size: 24px;
}

.profile-post-list article {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}

.profile-post-list article:last-child {
  border-bottom: 0;
}

.profile-post-list a {
  display: block;
  color: var(--green-dark);
  font-weight: 800;
}

.profile-post-list span {
  display: block;
  margin: 4px 0 7px;
  color: var(--muted);
  font-size: 12px;
}

.profile-post-list p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 13px;
}

.usercp-page {
  padding-bottom: 38px;
}

.usercp-hero {
  margin-top: 12px;
  color: #fff;
  background: linear-gradient(90deg, var(--green), #6ba268, var(--green-dark));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 10px 20px rgba(55,91,51,.12);
}

.usercp-hero-inner {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) 220px;
  gap: 18px;
  align-items: center;
  padding: 22px 0;
}

.usercp-avatar {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  font-size: 24px;
}

.usercp-welcome h2 {
  margin: 0 0 6px;
  font-size: 25px;
}

.usercp-welcome p {
  margin: 0 0 10px;
  color: rgba(255,255,255,.9);
}

.usercp-rank {
  display: inline-flex;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.14);
  border-radius: 3px;
  padding: 6px 9px;
  font-weight: 800;
  font-size: 12px;
}

.usercp-completion {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  padding: 13px;
  border-radius: 4px;
}

.usercp-completion span {
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  color: rgba(255,255,255,.85);
}

.usercp-completion strong {
  display: block;
  font-size: 28px;
  margin-bottom: 6px;
}

.usercp-completion div {
  height: 7px;
  background: rgba(255,255,255,.22);
  overflow: hidden;
}

.usercp-completion i {
  display: block;
  height: 100%;
  background: #fff;
}

.usercp-content {
  padding-top: 18px;
}

.usercp-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.usercp-stat-grid article {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 8px 12px;
  align-items: center;
  border-radius: 4px;
  padding: 14px;
}

.usercp-stat-grid span {
  grid-row: span 2;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: var(--green-dark);
  background: var(--green-soft);
}

.usercp-stat-grid strong {
  color: var(--ink);
  font-size: 21px;
}

.usercp-stat-grid em {
  color: var(--muted);
  font-style: normal;
  font-size: 12px;
}

.usercp-tabs {
  display: flex;
  gap: 2px;
  overflow-x: auto;
  margin-bottom: 18px;
  padding: 0 8px;
}

.usercp-tabs button {
  position: relative;
  display: flex;
  gap: 9px;
  align-items: center;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  padding: 14px 16px;
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
}

.usercp-tabs button.is-active {
  color: var(--green-dark);
  border-bottom-color: var(--green);
}

.usercp-tabs strong,
.usercp-tabs em {
  display: block;
  text-align: left;
}

.usercp-tabs em {
  font-size: 11px;
  font-style: normal;
  opacity: .76;
}

.usercp-panel {
  display: none;
}

.usercp-panel.is-active {
  display: block;
}

.usercp-panel-head {
  padding: 17px 18px;
  border-bottom: 1px solid var(--line);
}

.usercp-panel-head h2 {
  margin: 0 0 5px;
}

.usercp-panel-head p {
  margin: 0;
  color: var(--muted);
}

.usercp-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 18px;
}

.usercp-form-grid label,
.usercp-panel label {
  display: grid;
  gap: 6px;
  color: var(--ink);
  font-weight: 700;
  font-size: 13px;
}

.usercp-form-grid label.wide {
  grid-column: 1 / -1;
}

.usercp-form-grid input,
.usercp-form-grid select,
.usercp-form-grid textarea,
.usercp-signature-box {
  width: 100%;
  border: 1px solid var(--line-strong);
  border-radius: 3px;
  background: #fff;
  padding: 10px 11px;
  color: var(--ink);
}

.usercp-form-grid textarea,
.usercp-signature-box {
  min-height: 130px;
  resize: vertical;
}

.usercp-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 14px 18px;
  border-top: 1px solid var(--line);
  background: #fafcfb;
}

.usercp-actions .secondary,
.usercp-actions .secondary-link {
  color: var(--green-dark);
  background: #fff;
}

.usercp-upload-row {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 18px;
}

.usercp-avatar-preview {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  color: var(--green-dark);
  background: linear-gradient(180deg, #fff, var(--green-soft));
  border-color: var(--line-strong);
}

.usercp-dropzone {
  border: 2px dashed var(--line-strong);
  background: #fbfdfc;
  padding: 26px;
  text-align: center;
  color: var(--muted);
}

.usercp-check-list {
  display: grid;
  gap: 10px;
  padding: 18px;
}

.usercp-check-list.two-col {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.usercp-check-list label {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  background: #fbfdfc;
}

.usercp-check-list input {
  width: auto;
}

.usercp-panel .editor-toolbar {
  margin: 18px 18px 10px;
}

.usercp-signature-box {
  display: block;
  width: calc(100% - 36px);
  margin: 0 18px 18px;
}

.nb-toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 80;
  transform: translateY(80px);
  opacity: 0;
  color: #fff;
  background: #1c2a1c;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 700;
  box-shadow: 0 10px 22px rgba(0,0,0,.22);
  transition: .2s ease;
}

.nb-toast.is-visible {
  transform: translateY(0);
  opacity: 1;
}

@media (max-width: 1040px) {
  .profile-layout,
  .usercp-hero-inner {
    grid-template-columns: 1fr;
  }

  .profile-sidebar {
    position: static;
  }

  .profile-badge-grid,
  .profile-activity-stats,
  .usercp-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .profile-badge-grid,
  .profile-activity-stats,
  .usercp-stat-grid,
  .usercp-form-grid,
  .usercp-check-list.two-col,
  .usercp-upload-row {
    grid-template-columns: 1fr;
  }
}


/* Alpha 6.4 User CP polish: tighten layout and match the shell header treatment more closely. */
.usercp-page {
  padding-bottom: 28px;
}

.usercp-hero {
  margin-top: 10px;
}

.usercp-hero-inner {
  grid-template-columns: 76px minmax(0, 1fr) 205px;
  gap: 16px;
  padding: 18px 0;
}

.usercp-avatar {
  width: 68px;
  height: 68px;
  font-size: 22px;
}

.usercp-welcome h2 {
  font-size: 23px;
  margin-bottom: 4px;
}

.usercp-welcome p {
  margin-bottom: 8px;
  font-size: 13px;
}

.usercp-rank {
  padding: 5px 8px;
}

.usercp-completion {
  padding: 12px;
}

.usercp-completion strong {
  font-size: 24px;
}

.usercp-content {
  padding-top: 14px;
}

.usercp-stat-grid {
  gap: 10px;
  margin-bottom: 14px;
}

.usercp-stat-grid article {
  padding: 12px;
}

.usercp-tabs {
  gap: 0;
  margin-bottom: 14px;
  padding: 0 6px;
}

.usercp-tabs button {
  gap: 8px;
  padding: 12px 14px;
}

.usercp-tabs strong {
  font-size: 13px;
}

.usercp-tabs em {
  font-size: 10px;
}

.usercp-panel,
.usercp-tabs,
.usercp-stat-grid article {
  border-radius: 3px;
}

.usercp-panel-head {
  padding: 11px 14px;
  color: #fff;
  border-bottom: 1px solid #4f844f;
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
}

.usercp-panel-head h2 {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  color: #fff;
}

.usercp-panel-head p {
  margin-top: 4px;
  color: rgba(255,255,255,.86);
  font-size: 12px;
}

.usercp-form-grid {
  gap: 12px;
  padding: 16px;
}

.usercp-form-grid label,
.usercp-panel label {
  gap: 5px;
  font-size: 12px;
}

.usercp-form-grid input,
.usercp-form-grid select,
.usercp-form-grid textarea,
.usercp-signature-box {
  padding: 9px 10px;
}

.usercp-form-grid textarea,
.usercp-signature-box {
  min-height: 115px;
}

.usercp-actions {
  gap: 8px;
  padding: 12px 16px;
}

.usercp-upload-row,
.usercp-check-list,
.usercp-panel .editor-toolbar {
  padding-left: 16px;
  padding-right: 16px;
}

.usercp-upload-row {
  gap: 14px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.usercp-check-list {
  gap: 8px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.usercp-signature-box {
  width: calc(100% - 32px);
  margin: 0 16px 16px;
}


/* Alpha 6.5 Search page UI foundation. */
.search-page { padding: 0 0 38px; }
.search-breadcrumbs { margin-top: 0; margin-bottom: 18px; }
.search-page-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-end; margin-bottom: 18px; }
.search-page-head h1 { margin: 0 0 5px; color: var(--ink); font-size: 26px; }
.search-page-head p { margin: 0; color: var(--muted); }
.search-reset-button, .search-submit-button { border: 1px solid var(--green-dark); background: linear-gradient(to bottom, var(--green), var(--green-dark)); color: #fff; border-radius: 3px; padding: 10px 14px; font-weight: 800; cursor: pointer; white-space: nowrap; }
.search-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 18px; align-items: start; }
.search-main-column { display: grid; gap: 18px; }
.search-panel, .search-side-card, .search-results-panel { background: #fff; border: 1px solid var(--line); border-radius: 3px; box-shadow: var(--soft-shadow); overflow: hidden; }
.search-panel-title, .search-side-title { display: flex; align-items: center; gap: 10px; color: #fff; background: linear-gradient(to bottom, var(--green), var(--green-dark)); border-bottom: 1px solid var(--green-dark); padding: 12px 16px; }
.search-panel-title h2, .search-side-title { margin: 0; font-size: 16px; font-weight: 800; }
.search-title-icon { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.14); border-radius: 3px; }
.search-panel-body { padding: 18px; display: grid; gap: 18px; }
.search-field-wide { display: grid; gap: 8px; font-weight: 800; }
.search-field-wide em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 400; }
.search-input-wrap { position: relative; }
.search-input-wrap input { width: 100%; border: 2px solid var(--line); border-radius: 3px; padding: 13px 14px 13px 42px; font-size: 15px; outline: none; }
.search-input-wrap input:focus, .search-filter-grid input:focus, .search-filter-grid select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(109,165,108,.16); }
.search-input-wrap b { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.search-type-grid { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.search-type-grid legend, .search-options-list h3 { grid-column: 1 / -1; color: var(--ink); font-weight: 800; margin: 0 0 2px; }
.search-type-card { display: flex; align-items: center; gap: 10px; border: 2px solid var(--line); border-radius: 3px; background: #fff; padding: 13px; cursor: pointer; }
.search-type-card input { display: none; }
.search-type-card span { color: var(--green-dark); font-size: 18px; }
.search-type-card.is-active { border-color: var(--green); background: linear-gradient(to bottom right, #e8f0ed, #fff); box-shadow: var(--soft-shadow); }
.search-options-list { display: grid; gap: 10px; }
.search-options-list label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.search-options-list input { margin-top: 3px; }
.search-options-list span { display: grid; gap: 2px; }
.search-options-list em { color: var(--muted); font-style: normal; font-size: 12px; }
.search-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.search-filter-grid label { display: grid; gap: 7px; font-weight: 800; font-size: 13px; }
.search-filter-grid input, .search-filter-grid select { width: 100%; border: 1px solid var(--line); border-radius: 3px; background: #fff; padding: 10px 11px; outline: none; }
.search-prefixes { grid-column: 1 / -1; display: grid; gap: 9px; }
.search-prefixes > div { display: flex; flex-wrap: wrap; gap: 8px; }
.search-prefixes label { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line); background: #fbfdfc; border-radius: 3px; padding: 8px 10px; font-weight: 600; }
.search-sidebar { position: sticky; top: 74px; }
.search-side-body { padding: 14px; display: grid; gap: 12px; }
.search-side-body article { background: #f9fafb; border: 1px solid transparent; border-radius: 3px; padding: 12px; }
.search-side-body article.warn { background: #fffdf2; border-color: rgba(224,156,95,.32); }
.search-side-body article.soft { background: #e8f0ed; }
.search-side-body h3 { margin: 0 0 8px; font-size: 13px; }
.search-side-body p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.search-side-body code { color: var(--green-dark); font-weight: 800; }
.search-side-body a { display: block; color: var(--green-dark); font-size: 13px; margin-top: 6px; }
.search-submit-button { width: 100%; font-size: 16px; padding: 12px 14px; }
.search-results-panel { margin-top: 18px; }
.search-results-head { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line); background: #f9fbfa; }
.search-results-head h2 { margin: 0 0 4px; }
.search-results-head p { margin: 0; color: var(--muted); }
.search-results-head span { color: var(--green-dark); font-weight: 800; }
.search-result-row { padding: 14px 16px; border-bottom: 1px solid var(--line); }
.search-result-row:last-child { border-bottom: 0; }
.search-result-row strong { color: var(--green-dark); font-size: 15px; }
.search-result-row p { margin: 5px 0; color: var(--ink); }
.search-result-row em { color: var(--muted); font-style: normal; font-size: 12px; }
@media (max-width: 980px) { .search-layout { grid-template-columns: 1fr; } .search-sidebar { position: static; } }
@media (max-width: 720px) { .search-page-head { align-items: stretch; flex-direction: column; } .search-type-grid, .search-filter-grid { grid-template-columns: 1fr; } }


/* Alpha 6.6 public system/account pages. */
.nb-system-page { padding: 18px 0 42px; }
.nb-system-breadcrumbs { margin-bottom: 16px; }
.nb-system-hero { display: flex; gap: 16px; align-items: center; margin-bottom: 18px; padding: 18px; background: #fff; border: 1px solid var(--line, #c4d0d8); border-left: 5px solid var(--green, #6da56c); border-radius: 3px; box-shadow: var(--soft-shadow, 0 2px 8px rgba(0,0,0,.10)); }
.nb-system-hero h1 { margin: 0 0 5px; color: var(--ink, var(--text, #26302a)); font-size: 25px; line-height: 1.15; }
.nb-system-hero p { margin: 0; color: var(--muted, #66736d); line-height: 1.55; }
.nb-system-eyebrow { margin: 0 0 5px !important; color: var(--green-dark, #5a9359) !important; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; font-weight: 900; }
.nb-system-symbol { flex: 0 0 auto; width: 54px; height: 54px; display: grid; place-items: center; color: #fff; background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359)); border-radius: 4px; font-size: 26px; font-weight: 900; box-shadow: inset 0 1px 0 rgba(255,255,255,.28); }
.nb-system-hero-warning { border-left-color: #d38a2f; }
.nb-system-hero-warning .nb-system-symbol { background: linear-gradient(to bottom, #e5a04e, #b76a22); }
.nb-system-hero-locked { border-left-color: #7d8790; }
.nb-system-hero-locked .nb-system-symbol { background: linear-gradient(to bottom, #87939d, #5d6973); }
.nb-system-hero-attachment { border-left-color: #4d7fac; }
.nb-system-hero-attachment .nb-system-symbol { background: linear-gradient(to bottom, #6d9cc5, #3e6f99); }
.nb-system-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
.nb-system-card, .nb-system-side-card { background: #fff; border: 1px solid var(--line, #c4d0d8); border-radius: 3px; box-shadow: var(--soft-shadow, 0 2px 8px rgba(0,0,0,.10)); overflow: hidden; }
.nb-system-card.nb-system-narrow { max-width: 820px; }
.nb-system-card-head { padding: 11px 14px; color: #fff; background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359)); border-bottom: 1px solid var(--green-dark, #5a9359); font-weight: 900; }
.nb-system-card-head.warning { background: linear-gradient(to bottom, #e5a04e, #b76a22); border-bottom-color: #a45f1e; }
.nb-system-card-body { padding: 17px; }
.nb-system-card-body p { margin: 0 0 14px; color: var(--text, #26302a); line-height: 1.65; }
.nb-system-side-card { padding: 16px; }
.nb-system-side-card h2 { margin: 0 0 10px; color: var(--green-dark, #5a9359); font-size: 16px; }
.nb-system-side-card ul { margin: 0; padding-left: 18px; color: var(--muted, #66736d); line-height: 1.7; }
.nb-system-actions { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; margin-top: 16px; }
.nb-system-button { display: inline-flex; align-items: center; justify-content: center; min-height: 35px; padding: 8px 13px; border: 1px solid var(--line-strong, var(--line, #c4d0d8)); border-radius: 3px; color: var(--green-dark, #5a9359); background: #fff; font-weight: 900; cursor: pointer; }
.nb-system-button.primary { color: #fff; border-color: var(--green-dark, #5a9359); background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359)); }
.nb-system-callout { display: grid; gap: 3px; margin-top: 12px; padding: 12px; border: 1px solid var(--line, #c4d0d8); background: #fbfdfc; border-left: 4px solid var(--green, #6da56c); }
.nb-system-callout.warning { border-left-color: #d38a2f; background: #fffaf2; }
.nb-system-callout strong { color: var(--ink, var(--text, #26302a)); }
.nb-system-callout span { color: var(--muted, #66736d); }
.nb-system-detail-list { display: grid; gap: 0; margin: 0; border: 1px solid var(--line, #c4d0d8); }
.nb-system-detail-list div { display: grid; grid-template-columns: 155px minmax(0, 1fr); border-bottom: 1px solid var(--line, #c4d0d8); }
.nb-system-detail-list div:last-child { border-bottom: 0; }
.nb-system-detail-list dt, .nb-system-detail-list dd { margin: 0; padding: 10px 12px; }
.nb-system-detail-list dt { color: var(--muted, #66736d); background: #f6f8f7; font-weight: 900; }
.nb-system-detail-list dd { color: var(--text, #26302a); }
.nb-system-detail-list.compact div { grid-template-columns: 180px minmax(0, 1fr); }
.attachment-preview-box { display: grid; place-items: center; text-align: center; gap: 6px; min-height: 180px; margin-bottom: 15px; border: 1px dashed var(--line-strong, var(--line, #c4d0d8)); background: #f8faf9; }
.attachment-preview-box span { display: inline-grid; place-items: center; width: 52px; height: 52px; color: #fff; background: linear-gradient(to bottom, #6d9cc5, #3e6f99); border-radius: 4px; font-weight: 900; }
.attachment-preview-box strong { color: var(--ink, var(--text, #26302a)); }
.attachment-preview-box em { color: var(--muted, #66736d); font-style: normal; font-size: 12px; }
@media (max-width: 860px) { .nb-system-grid { grid-template-columns: 1fr; } .nb-system-hero { align-items: flex-start; } }
@media (max-width: 620px) { .nb-system-hero { flex-direction: column; } .nb-system-detail-list div, .nb-system-detail-list.compact div { grid-template-columns: 1fr; } .nb-system-detail-list dt { border-bottom: 1px solid var(--line, #c4d0d8); } }


/* Alpha 6.7 interaction/moderation UI foundation. */
.nb-system-hero-danger { border-left-color: #b93030; }
.nb-system-hero-danger .nb-system-symbol { background: linear-gradient(to bottom, #d94b4b, #9b2525); }
.nb-system-card-head.danger { background: linear-gradient(to bottom, #d94b4b, #9b2525); border-bottom-color: #812020; }
.nb-system-callout.danger { border-left-color: #b93030; background: #fff3f3; }
.nb-system-stop-sign { width: 62px; height: 62px; clip-path: polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%); border-radius: 0; font-size: 13px; letter-spacing: .04em; }
.nb-interaction-page { padding: 18px 0 42px; }
.nb-interaction-hero { display: flex; gap: 16px; align-items: center; margin-bottom: 18px; padding: 18px; background: #fff; border: 1px solid var(--line, #c4d0d8); border-left: 5px solid var(--green, #6da56c); border-radius: 3px; box-shadow: var(--soft-shadow, 0 2px 8px rgba(0,0,0,.10)); }
.nb-interaction-hero.success { border-left-color: #4d9654; }
.nb-interaction-hero h1, .nb-watched-head h1 { margin: 0 0 5px; color: var(--ink, var(--text, #26302a)); font-size: 25px; line-height: 1.15; }
.nb-interaction-hero p, .nb-watched-head p { margin: 0; color: var(--muted, #66736d); line-height: 1.55; }
.nb-interaction-icon { width: 54px; height: 54px; display: grid; place-items: center; color: #fff; background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359)); border-radius: 4px; font-size: 24px; font-weight: 900; }
.nb-interaction-hero.success .nb-interaction-icon { background: linear-gradient(to bottom, #69ad70, #4d9654); }
.nb-interaction-grid { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 18px; align-items: start; }
.nb-interaction-card, .nb-watched-head, .nb-watched-tabs, .nb-watched-list { background: #fff; border: 1px solid var(--line, #c4d0d8); border-radius: 3px; box-shadow: var(--soft-shadow, 0 2px 8px rgba(0,0,0,.10)); overflow: hidden; }
.nb-interaction-narrow { max-width: 850px; }
.nb-interaction-card-head { padding: 11px 14px; color: #fff; background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359)); border-bottom: 1px solid var(--green-dark, #5a9359); font-weight: 900; }
.nb-interaction-card-body { padding: 17px; display: grid; gap: 14px; }
.nb-reported-preview { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--line, #c4d0d8); background: #fbfdfc; }
.nb-reported-preview strong { color: var(--green-dark, #5a9359); }
.nb-reported-preview span { color: var(--muted, #66736d); }
.nb-field { display: grid; gap: 6px; color: var(--ink, var(--text, #26302a)); font-weight: 800; }
.nb-field input, .nb-field select, .nb-field textarea { width: 100%; border: 1px solid var(--line-strong, #c4d0d8); border-radius: 3px; padding: 10px 11px; background: #fff; color: var(--text, #26302a); }
.nb-field textarea { min-height: 130px; resize: vertical; }
.nb-report-type-list { display: grid; gap: 8px; color: var(--muted, #66736d); }
.nb-report-type-list label { display: flex; gap: 8px; align-items: center; }
.nb-watched-head { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 18px; margin-bottom: 14px; }
.nb-watched-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.nb-watched-actions button, .nb-watched-row button, .nb-watched-tabs button { border: 1px solid var(--line-strong, #c4d0d8); border-radius: 3px; padding: 8px 11px; background: #fff; color: var(--green-dark, #5a9359); font-weight: 900; cursor: pointer; }
.nb-watched-tabs { display: flex; gap: 0; margin-bottom: 14px; }
.nb-watched-tabs button { border-width: 0 1px 0 0; border-radius: 0; padding: 12px 15px; }
.nb-watched-tabs button.active { color: #fff; background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359)); }
.nb-watched-list { display: grid; }
.nb-watched-row { display: grid; grid-template-columns: 34px minmax(0,1fr) 110px auto; gap: 12px; align-items: center; padding: 13px 14px; border-bottom: 1px solid var(--line, #c4d0d8); }
.nb-watched-row:last-child { border-bottom: 0; }
.nb-watched-row.unread { box-shadow: inset 4px 0 0 var(--green, #6da56c); background: #fbfdfc; }
.nb-watch-status { color: var(--green-dark, #5a9359); font-size: 20px; text-align: center; }
.nb-watched-row h2 { margin: 0 0 4px; font-size: 15px; color: var(--ink, var(--text, #26302a)); }
.nb-watched-row p, .nb-watched-meta span { margin: 0; color: var(--muted, #66736d); font-size: 12px; }
.nb-watched-meta { text-align: right; }
.nb-watched-meta strong { display: block; color: var(--ink, var(--text, #26302a)); }
.topic-poll-block { margin: 0 0 18px; background: #fff; border: 1px solid var(--line, #c4d0d8); border-radius: 3px; box-shadow: var(--soft-shadow, 0 2px 8px rgba(0,0,0,.10)); overflow: hidden; }
.topic-poll-head { display: flex; justify-content: space-between; gap: 12px; padding: 11px 14px; color: #fff; background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359)); font-weight: 900; }
.topic-poll-head span { font-size: 12px; opacity: .9; }
.topic-poll-body { display: grid; gap: 10px; padding: 14px; }
.topic-poll-body label { display: grid; grid-template-columns: auto minmax(160px,1fr) 170px; gap: 10px; align-items: center; color: var(--text, #26302a); }
.poll-result { position: relative; height: 22px; border: 1px solid var(--line, #c4d0d8); background: #f5f7f6; overflow: hidden; }
.poll-result i { display: block; height: 100%; background: #dcebe0; }
.poll-result b { position: absolute; inset: 0; display: grid; place-items: center; font-size: 11px; color: var(--green-dark, #5a9359); }
.topic-poll-foot { display: flex; gap: 8px; padding: 12px 14px; border-top: 1px solid var(--line, #c4d0d8); background: #fafcfb; }
.usercp-avatar-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; padding: 0 18px 18px; }
.usercp-avatar-options label { display: flex; gap: 8px; align-items: center; padding: 10px; border: 1px solid var(--line, #c4d0d8); background: #fbfdfc; color: var(--muted, #66736d); }
.usercp-avatar-options input { width: auto; }
.usercp-signature-preview { margin: 0 18px 18px; padding: 12px; border: 1px dashed var(--line-strong, #c4d0d8); background: #fbfdfc; color: var(--muted, #66736d); }
.usercp-signature-preview strong { display: block; color: var(--green-dark, #5a9359); margin-bottom: 5px; }
@media (max-width: 860px) { .nb-interaction-grid { grid-template-columns: 1fr; } .nb-watched-head { align-items: flex-start; flex-direction: column; } .nb-watched-row { grid-template-columns: 28px minmax(0,1fr); } .nb-watched-meta, .nb-watched-row button { grid-column: 2; text-align: left; justify-self: start; } .usercp-avatar-options { grid-template-columns: 1fr; } .topic-poll-body label { grid-template-columns: auto minmax(0,1fr); } .poll-result { grid-column: 1 / -1; } }


/* Alpha 6.8 remaining frontend page shells: registration, password recovery, friends, and online users. */
.nb-core-page { padding: 18px 0 42px; }
.nb-core-breadcrumbs { margin-bottom: 14px; }
.nb-core-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 12px 0 18px; padding: 20px 22px; color: #fff; background: linear-gradient(to bottom, var(--green), var(--green-dark)); border: 1px solid var(--green-dark); box-shadow: var(--soft-shadow); }
.nb-core-hero h1 { margin: 0 0 5px; font-size: 25px; }
.nb-core-hero p { margin: 0; opacity: .9; }
.nb-core-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
.nb-auth-grid { grid-template-columns: minmax(0, 1fr) 320px; }
.nb-auth-narrow { max-width: 760px; }
.nb-core-panel { border: 1px solid var(--line); background: #fff; box-shadow: var(--soft-shadow); overflow: hidden; border-radius: 3px; }
.nb-core-panel-head { padding: 11px 14px; color: #fff; background: linear-gradient(to bottom, var(--green), var(--green-dark)); border-bottom: 1px solid var(--green-dark); }
.nb-core-panel-head h1, .nb-core-panel-head h2 { margin: 0; color: #fff; font-size: 14px; font-weight: 800; }
.nb-core-panel-head p { margin: 4px 0 0; color: rgba(255,255,255,.86); font-size: 12px; }
.nb-core-form-body { display: grid; gap: 13px; padding: 16px; }
.nb-core-form-body label { display: grid; gap: 6px; color: var(--ink); font-size: 13px; font-weight: 700; }
.nb-core-form-body input, .nb-core-form-body select, .nb-core-toolbar input, .nb-core-toolbar select { width: 100%; border: 1px solid var(--line-strong); border-radius: 3px; background: #fff; color: var(--ink); padding: 9px 10px; }
.nb-form-split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.nb-check-row { display: flex !important; grid-template-columns: none !important; align-items: center; flex-direction: row; font-weight: 400 !important; }
.nb-check-row input { width: auto; }
.nb-core-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--line); background: #fafcfb; }
.nb-core-actions .button, .button.wide { display: inline-flex; justify-content: center; }
.nb-core-actions a { color: var(--green-dark); font-weight: 700; }
.nb-feature-list { list-style: none; margin: 0; padding: 12px 14px; display: grid; gap: 10px; }
.nb-feature-list li { display: grid; gap: 3px; padding: 10px; border: 1px solid var(--line); background: #fbfdfc; }
.nb-feature-list.compact li { padding: 8px 10px; }
.nb-feature-list strong { color: var(--green-dark); }
.nb-feature-list span { color: var(--muted); font-size: 13px; }
.nb-step-meter { display: flex; gap: 8px; flex-wrap: wrap; }
.nb-step-meter span { border: 1px solid rgba(255,255,255,.30); background: rgba(255,255,255,.15); padding: 7px 9px; font-size: 12px; font-weight: 800; }
.nb-step-meter .is-active { background: #fff; color: var(--green-dark); }
.nb-password-meter { height: 6px; background: #e4ebe7; overflow: hidden; border: 1px solid var(--line); }
.nb-password-meter i { display: block; width: 0%; height: 100%; background: var(--green); transition: width .18s ease; }
.nb-status-callout { display: grid; gap: 4px; border: 1px solid var(--line); padding: 11px 12px; background: #fbfdfc; }
.nb-status-callout.info { border-left: 4px solid var(--green); }
.nb-status-callout span { color: var(--muted); font-size: 13px; }
.nb-stat-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.nb-stat-strip article { border: 1px solid var(--line); background: #fff; box-shadow: var(--soft-shadow); padding: 14px; }
.nb-stat-strip strong { display: block; color: var(--green-dark); font-size: 25px; line-height: 1; }
.nb-stat-strip span { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.nb-core-toolbar { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; padding: 12px 14px; border-bottom: 1px solid var(--line); background: #fafcfb; }
.nb-core-toolbar label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.nb-online-table { display: grid; }
.nb-online-head, .nb-online-table article { display: grid; grid-template-columns: 2fr 1.25fr 2.3fr 1fr .8fr; gap: 12px; align-items: center; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.nb-online-head { color: var(--green-dark); background: #eef5f1; font-weight: 800; font-size: 12px; text-transform: uppercase; }
.nb-online-table article:last-child { border-bottom: 0; }
.nb-online-table article > span:first-child { display: grid; grid-template-columns: 38px 1fr; gap: 9px; align-items: center; }
.nb-online-table strong { color: var(--ink); display: block; }
.nb-online-table em, .nb-online-table small { color: var(--muted); font-style: normal; font-size: 12px; }
.nb-avatar-mini { width: 34px; height: 34px; display: grid; place-items: center; color: #fff; background: linear-gradient(to bottom, #a8c5a0, var(--green)); border-radius: 50%; font-weight: 900; }
.nb-avatar-mini.admin { background: linear-gradient(to bottom, #e09c5f, #b96521); }
.nb-avatar-mini.mod { background: linear-gradient(to bottom, var(--green), var(--green-dark)); }
.nb-avatar-mini.vip { background: linear-gradient(to bottom, #8b7ab5, #6d5a9a); }
.nb-friends-layout { grid-template-columns: 230px minmax(0, 1fr); }
.nb-friends-tabs { display: grid; padding: 8px; gap: 6px; }
.nb-friends-tabs button { display: flex; justify-content: space-between; gap: 10px; border: 1px solid transparent; background: transparent; color: var(--ink); padding: 10px 11px; text-align: left; cursor: pointer; font-weight: 800; }
.nb-friends-tabs button.is-active, .nb-friends-tabs button:hover { border-color: var(--line); background: #eef5f1; color: var(--green-dark); }
.nb-contact-list { display: grid; }
.nb-contact-list article { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.nb-contact-list article:last-child { border-bottom: 0; }
.nb-contact-list strong { display: block; color: var(--ink); }
.nb-contact-list span { color: var(--muted); font-size: 13px; }
.nb-contact-actions { display: flex; gap: 7px; flex-wrap: wrap; }
.nb-contact-actions button { border: 1px solid var(--line-strong); background: #fff; color: var(--green-dark); padding: 7px 9px; border-radius: 3px; font-weight: 800; cursor: pointer; }
.nb-contact-actions button:hover { background: #eef5f1; }
@media (max-width: 900px) { .nb-core-grid, .nb-auth-grid, .nb-friends-layout { grid-template-columns: 1fr; } .nb-stat-strip { grid-template-columns: repeat(2, 1fr); } .nb-online-head { display: none; } .nb-online-table article { grid-template-columns: 1fr; } .nb-core-hero { align-items: flex-start; flex-direction: column; } }
@media (max-width: 640px) { .nb-form-split, .nb-stat-strip { grid-template-columns: 1fr; } .nb-contact-list article { grid-template-columns: 42px minmax(0,1fr); } .nb-contact-actions { grid-column: 1 / -1; } }

.nb-login-extra-links{display:flex;justify-content:space-between;gap:12px;padding:10px 0 0;font-weight:700}.nb-login-extra-links a{color:var(--green-dark)}

/* Alpha 6.8 shell-match correction: registration, forgot password, who is online, friends/contacts. */
.shellmatch-page { padding-bottom: 42px; }
.shellmatch-breadcrumbs { margin-top: 14px; margin-bottom: 12px; }
.shellmatch-hero { color: #fff; background: linear-gradient(90deg, #7ab574, #6da56c, #5a9359); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 10px 20px rgba(55,91,51,.12); margin-bottom: 0; }
.shellmatch-hero-pattern { position: relative; overflow: hidden; }
.shellmatch-hero-pattern::before { content: ""; position: absolute; inset: 0; opacity: .22; background-image: radial-gradient(circle at 12px 12px, rgba(255,255,255,.32) 0 2px, transparent 3px); background-size: 34px 34px; pointer-events: none; }
.shellmatch-hero-inner { position: relative; padding: 30px 0; }
.shellmatch-hero-center { text-align: center; }
.shellmatch-hero-split .shellmatch-hero-inner { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
.shellmatch-hero h1 { position: relative; margin: 0 0 8px; font-size: 31px; line-height: 1.1; letter-spacing: -.02em; }
.shellmatch-hero p { position: relative; margin: 0; color: rgba(255,255,255,.92); font-size: 17px; }
.shellmatch-hero-stats { position: relative; display: flex; gap: 14px; }
.shellmatch-hero-stats article { min-width: 130px; padding: 14px 18px; text-align: center; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.22); border-radius: 8px; backdrop-filter: blur(8px); }
.shellmatch-hero-stats strong { display: block; font-size: 29px; }
.shellmatch-hero-stats span { display: block; color: rgba(255,255,255,.88); font-size: 13px; }
.shellmatch-narrow { max-width: 900px; }
.shellmatch-auth-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; padding-top: 28px; }
.shellmatch-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; align-items: start; padding-top: 24px; }
.shellmatch-main-column, .shellmatch-side-column { display: grid; gap: 18px; }
.shellmatch-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px rgba(38,48,42,.08); overflow: hidden; }
.shellmatch-card-large { margin-top: 28px; box-shadow: 0 16px 34px rgba(38,48,42,.13); }
.shellmatch-card-title { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 12px 16px; color: #fff; background: linear-gradient(to bottom, var(--green), var(--green-dark)); border-bottom: 1px solid #4f844f; font-weight: 800; }
.shellmatch-card-title.soft { color: var(--green-dark); background: #eef5f1; border-bottom-color: var(--line); }
.shellmatch-card-body { padding: 24px; }
.shellmatch-section-intro { margin-bottom: 24px; }
.shellmatch-section-intro h2, .shellmatch-card-body h2 { margin: 0 0 6px; color: var(--ink); font-size: 24px; }
.shellmatch-section-intro p, .shellmatch-muted { margin: 0; color: var(--muted); }
.shellmatch-form { display: grid; gap: 18px; }
.shellmatch-field { display: grid; gap: 8px; color: var(--ink); font-weight: 800; }
.shellmatch-field input, .shellmatch-field select, .shellmatch-field textarea, .search-inline input, .shellmatch-toolbar-card select { width: 100%; border: 2px solid var(--line); background: #fff; border-radius: 8px; padding: 12px 13px; color: var(--ink); outline: none; }
.shellmatch-field input:focus, .search-inline input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(109,165,108,.17); }
.field-help { color: var(--muted); font-weight: 400; font-size: 12px; }
.shellmatch-check { display: flex; gap: 9px; align-items: center; color: var(--ink); font-weight: 700; }
.shellmatch-check input { width: auto; }
.shellmatch-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 8px; }
.wide-button { width: 100%; justify-content: center; text-align: center; }
.register-progress { position: relative; display: grid; grid-template-columns: 1fr 10px 1fr 10px 1fr; gap: 9px; align-items: center; width: min(650px, 100%); margin: 24px auto 0; }
.register-progress span { display: block; height: 8px; border-radius: 999px; background: rgba(255,255,255,.32); }
.register-progress span.is-active { background: #fff; }
.register-progress i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.55); }
.register-progress-labels { position: relative; display: flex; justify-content: space-between; width: min(650px, 100%); margin: 10px auto 0; color: rgba(255,255,255,.88); font-size: 13px; }
.register-progress-labels strong { color: #fff; }
.password-meter { display: grid; gap: 6px; }
.password-meter div { height: 8px; border-radius: 999px; background: #e4e9e6; overflow: hidden; }
.password-meter i { display: block; height: 100%; background: linear-gradient(90deg, #d9534f, #e09c5f, #7ab574); transition: width .2s ease; }
.password-meter span { color: var(--muted); font-size: 12px; }
.password-requirements { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; color: var(--muted); font-size: 12px; }
.reset-icon { width: 74px; height: 74px; display: grid; place-items: center; margin: 0 auto 16px; border-radius: 50%; background: #eef5f1; color: var(--green-dark); font-size: 30px; }
.shellmatch-reset-card .shellmatch-card-body { text-align: center; }
.shellmatch-reset-card .shellmatch-form { text-align: left; margin-top: 22px; }
.shellmatch-mini-links { margin-top: 18px; display: flex; justify-content: center; gap: 8px; color: var(--muted); }
.shellmatch-mini-links a { color: var(--green-dark); font-weight: 800; }
.shellmatch-tip-list { margin: 0; padding-left: 18px; color: var(--muted); line-height: 1.7; }
.shellmatch-toolbar-card, .friends-search-row { display: flex; gap: 12px; align-items: center; margin-bottom: 18px; }
.shellmatch-toolbar-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 13px; box-shadow: 0 5px 16px rgba(38,48,42,.06); }
.search-inline { position: relative; flex: 1; }
.search-inline span { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--muted); z-index: 1; }
.search-inline input { padding-left: 40px; }
.online-table { display: grid; }
.online-head, .online-table article { display: grid; grid-template-columns: 2fr 1.15fr 2.1fr .95fr .85fr; gap: 12px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.online-head { color: var(--green-dark); background: #eef5f1; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.online-table article:last-child { border-bottom: 0; }
.online-table article > span:first-child { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; align-items: center; }
.online-table strong { display: block; color: var(--ink); }
.online-table em { display: block; color: var(--muted); font-size: 12px; font-style: normal; }
.avatar-dot { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-style: normal; font-weight: 900; background: var(--green); position: relative; }
.avatar-dot::after { content: ""; position: absolute; right: 0; bottom: 1px; width: 10px; height: 10px; border-radius: 50%; background: #39b86d; border: 2px solid #fff; }
.avatar-dot.admin { background: #d4883e; } .avatar-dot.mod { background: #4a7a49; } .avatar-dot.vip { background: #6d5a9a; } .avatar-dot.guest { background: #8c9891; }
.shellmatch-stat-list { padding: 10px 16px; }
.shellmatch-stat-list p { display: flex; justify-content: space-between; margin: 0; padding: 11px 0; border-bottom: 1px solid var(--line); color: var(--muted); }
.shellmatch-stat-list p:last-child { border-bottom: 0; }
.shellmatch-stat-list strong { color: var(--ink); }
.friends-search-row { margin-top: 24px; }
.shellmatch-tabs { display: flex; align-items: center; overflow-x: auto; margin-bottom: 18px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 5px 16px rgba(38,48,42,.06); }
.shellmatch-tabs button { position: relative; display: flex; align-items: center; gap: 9px; border: 0; background: transparent; color: var(--muted); padding: 15px 18px; white-space: nowrap; cursor: pointer; font-weight: 800; }
.shellmatch-tabs button.is-active { color: var(--green-dark); }
.shellmatch-tabs button.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, #7ab574, #5a9359); border-radius: 4px 4px 0 0; }
.shellmatch-tabs b { min-width: 22px; text-align: center; padding: 2px 6px; border-radius: 999px; background: #eef5f1; color: var(--green-dark); font-size: 12px; }
.friend-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.shell-tab-panel { display: none; } .shell-tab-panel.is-active { display: grid; }
.friend-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: 0 5px 16px rgba(38,48,42,.08); }
.friend-cover { position: relative; display: grid; place-items: center; text-align: center; padding: 20px 12px 17px; color: #fff; background: linear-gradient(#a8c5a0, #7ab574); }
.friend-cover.mod { background: linear-gradient(#5a9359, #4a7a49); } .friend-cover.vip { background: linear-gradient(#8b7ab5, #6d5a9a); } .friend-cover.member { background: linear-gradient(#a8c5a0, #7ab574); }
.friend-cover i { width: 74px; height: 74px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: rgba(255,255,255,.18); border: 4px solid rgba(255,255,255,.3); font-style: normal; font-weight: 900; font-size: 26px; box-shadow: 0 8px 18px rgba(0,0,0,.12); }
.friend-cover h3 { margin: 9px 0 2px; font-size: 18px; }
.friend-cover em { color: rgba(255,255,255,.9); font-style: normal; font-size: 12px; }
.online-dot { position: absolute; top: 84px; right: calc(50% - 38px); width: 18px; height: 18px; border-radius: 50%; background: #39b86d; border: 3px solid #fff; }
.friend-body { padding: 14px; }
.friend-body p { display: flex; justify-content: space-between; margin: 0; padding: 8px 0; border-bottom: 1px solid var(--line); color: var(--muted); }
.friend-body strong { color: var(--ink); }
.friend-body footer { display: flex; gap: 8px; margin-top: 14px; }
.friend-body button { flex: 1; border: 1px solid var(--line); background: #fff; color: var(--green-dark); border-radius: 5px; padding: 8px; font-weight: 800; cursor: pointer; }
.friend-body button:first-child { color: #fff; background: linear-gradient(var(--green), var(--green-dark)); border-color: var(--green-dark); }
@media (max-width: 980px) { .shellmatch-hero-split .shellmatch-hero-inner, .shellmatch-auth-grid, .shellmatch-content-grid { grid-template-columns: 1fr; display: grid; } .friend-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .online-head { display: none; } .online-table article { grid-template-columns: 1fr; } }
@media (max-width: 680px) { .shellmatch-hero-stats, .friends-search-row, .shellmatch-toolbar-card, .shellmatch-actions { flex-direction: column; align-items: stretch; } .friend-grid, .password-requirements { grid-template-columns: 1fr; } }


/* Alpha 6.9 report layout polish: center report flows and reduce the content width. */
.nb-interaction-shell-narrow {
  max-width: 980px;
  margin: 0 auto;
}

.nb-interaction-shell-narrow .nb-system-breadcrumbs,
.nb-interaction-shell-narrow .nb-interaction-hero,
.nb-interaction-shell-narrow .nb-interaction-card,
.nb-interaction-shell-narrow .nb-system-side-card {
  margin-left: auto;
  margin-right: auto;
}

.nb-interaction-grid-narrow {
  grid-template-columns: minmax(0, 860px);
  justify-content: center;
}

.nb-interaction-card-centered {
  width: min(100%, 860px);
}

.nb-interaction-side-card-centered {
  width: min(100%, 860px);
}


/* Alpha 7 default login shell refresh. */
.default-login-page {
  padding: 0 0 44px;
}
.default-login-breadcrumbs {
  margin: 14px 0;
}
.default-login-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(90deg, #7ab574 0%, #6da56c 52%, #5a9359 100%);
  border-top: 1px solid rgba(255,255,255,.28);
  border-bottom: 1px solid #4f844f;
}
.default-login-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .35;
  background-image: radial-gradient(circle at 18px 18px, rgba(255,255,255,.16) 0 3px, transparent 4px);
  background-size: 54px 54px;
}
.default-login-hero-inner {
  position: relative;
  display: grid;
  justify-items: center;
  text-align: center;
  padding: 32px 0 34px;
}
.default-login-lock {
  display: grid;
  place-items: center;
  width: 80px;
  height: 80px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: rgba(255,255,255,.20);
  color: #fff;
  font-size: 35px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}
.default-login-hero h1 {
  margin: 0 0 6px;
  color: #fff;
  font-size: 32px;
  line-height: 1.1;
}
.default-login-hero p {
  margin: 0;
  color: rgba(255,255,255,.92);
  font-size: 18px;
}
.default-login-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) 360px;
  gap: 28px;
  align-items: start;
  padding-top: 30px;
}
.default-login-card,
.default-login-side-panel,
.default-login-tips,
.default-login-secure-card {
  border: 1px solid var(--line, #c4d0d8);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(20,40,30,.09);
  overflow: hidden;
}
.default-login-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 22px;
  color: var(--ink, #26302a);
  background: linear-gradient(90deg, #e8f0ed, #f4f7f9);
  border-bottom: 1px solid var(--line, #c4d0d8);
  font-size: 16px;
}
.default-login-head-icon {
  color: var(--green-dark, #5a9359);
  font-size: 20px;
}
.default-login-card-body {
  padding: 30px;
}
.default-login-form {
  display: grid;
  gap: 22px;
}
.default-login-field {
  display: grid;
  gap: 9px;
  color: var(--ink, #26302a);
  font-weight: 700;
}
.default-login-input-wrap {
  position: relative;
  display: block;
}
.default-login-input-wrap i {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted, #66736d);
  font-style: normal;
  z-index: 1;
}
.default-login-input-wrap input {
  width: 100%;
  min-height: 48px;
  padding: 12px 46px;
  border: 2px solid var(--line, #c4d0d8);
  border-radius: 9px;
  background: #fff;
  color: var(--text, #26302a);
  outline: none;
}
.default-login-input-wrap input:focus {
  border-color: var(--green, #6da56c);
  box-shadow: 0 0 0 3px rgba(109,165,108,.16);
}
.default-login-eye {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--muted, #66736d);
  cursor: pointer;
  font-size: 16px;
}
.default-login-options-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}
.default-login-checks {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  align-items: center;
}
.default-login-checks label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text, #26302a);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.default-login-checks input {
  width: 18px;
  height: 18px;
  accent-color: var(--green, #6da56c);
}
.default-login-options-row a {
  color: var(--green-dark, #5a9359);
  font-size: 13px;
  font-weight: 900;
}
.default-login-submit {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 55px;
  border: 1px solid var(--green-dark, #5a9359);
  border-radius: 9px;
  color: #fff;
  background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359));
  box-shadow: 0 3px 8px rgba(55,91,51,.20);
  font-size: 18px;
  font-weight: 900;
  cursor: pointer;
}
.default-login-divider {
  position: relative;
  display: grid;
  place-items: center;
  color: var(--muted, #66736d);
  font-size: 13px;
}
.default-login-divider::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: var(--line, #c4d0d8);
}
.default-login-divider span {
  position: relative;
  background: #fff;
  padding: 0 14px;
}
.default-login-create {
  text-align: center;
}
.default-login-create p {
  margin: 0 0 12px;
  color: var(--muted, #66736d);
  font-size: 13px;
}
.default-login-create a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 43px;
  padding: 10px 20px;
  border: 2px solid var(--green, #6da56c);
  border-radius: 9px;
  color: var(--green-dark, #5a9359);
  background: #fff;
  font-weight: 900;
}
.default-login-sidebar {
  display: grid;
  gap: 20px;
}
.default-login-secure-card {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 22px;
  background: linear-gradient(135deg, #e8f0ed, #c5d7cf);
}
.default-login-side-icon,
.default-login-option-item > span {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #fff;
  background: linear-gradient(135deg, var(--green, #6da56c), var(--green-dark, #5a9359));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}
.default-login-side-icon {
  width: 48px;
  height: 48px;
  border-radius: 9px;
  font-size: 22px;
}
.default-login-secure-card h2,
.default-login-tips h2 {
  margin: 0 0 8px;
  color: var(--ink, #26302a);
  font-size: 16px;
}
.default-login-secure-card p,
.default-login-option-item p,
.default-login-tips li {
  margin: 0;
  color: var(--muted, #66736d);
  font-size: 13px;
  line-height: 1.45;
}
.default-login-side-panel header {
  padding: 12px 16px;
  color: var(--ink, #26302a);
  background: linear-gradient(90deg, #e8f0ed, #f4f7f9);
  border-bottom: 1px solid var(--line, #c4d0d8);
  font-weight: 900;
  font-size: 13px;
}
.default-login-option-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line, #c4d0d8);
}
.default-login-option-item:last-child {
  border-bottom: 0;
}
.default-login-option-item > span {
  width: 32px;
  height: 32px;
  border-radius: 5px;
  font-size: 15px;
}
.default-login-option-item strong {
  display: block;
  color: var(--ink, #26302a);
  font-size: 13px;
  margin-bottom: 3px;
}
.default-login-tips {
  padding: 16px;
}
.default-login-tips ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.default-login-tips li {
  position: relative;
  padding-left: 15px;
}
.default-login-tips li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--green-dark, #5a9359);
  font-weight: 900;
}
@media (max-width: 980px) {
  .default-login-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .default-login-card-body { padding: 22px; }
  .default-login-hero-inner { padding: 26px 0; }
  .default-login-options-row { align-items: flex-start; flex-direction: column; }
  .default-login-checks { align-items: flex-start; flex-direction: column; gap: 10px; }
}


/* Alpha 8 notification preference settings UI. */
.notification-settings-page {
  padding: 24px 0 42px;
}
.notification-settings-card {
  max-width: 920px;
  margin: 0 auto;
}
.notification-autosave-note {
  margin: 16px 0 18px;
  padding: 12px 14px;
  border: 1px solid var(--line, #c4d0d8);
  border-radius: 6px;
  color: var(--muted, #66736d);
  background: #f8faf9;
}
.notification-preferences-list {
  display: grid;
  gap: 16px;
}
.notification-preference-section {
  border: 1px solid var(--line, #c4d0d8);
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
}
.notification-section-heading {
  padding: 11px 14px;
  color: #fff;
  background: linear-gradient(to bottom, var(--green, #6da56c), var(--green-dark, #5a9359));
  border-bottom: 1px solid var(--green-dark, #5a9359);
}
.notification-section-heading h2 {
  margin: 0 0 3px;
  font-size: 15px;
}
.notification-section-heading p {
  margin: 0;
  color: rgba(255,255,255,.88);
  font-size: 12px;
}
.notification-section-rows {
  display: grid;
}
.notification-preference-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 13px 14px;
  border-bottom: 1px solid var(--line, #c4d0d8);
}
.notification-preference-row:last-child {
  border-bottom: 0;
}
.notification-preference-copy {
  display: grid;
  gap: 3px;
}
.notification-preference-copy strong {
  color: var(--ink, #26302a);
}
.notification-preference-copy em {
  color: var(--muted, #66736d);
  font-style: normal;
  font-size: 12px;
  line-height: 1.4;
}
.notification-preference-control {
  display: inline-grid;
  grid-template-columns: auto auto;
  gap: 9px;
  align-items: center;
}
.notification-preference-control small {
  color: var(--muted, #66736d);
  font-size: 11px;
  min-width: 62px;
  text-align: right;
}
.notification-preference-control input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--green, #6da56c);
}
.notification-settings-empty {
  padding: 18px;
  border: 1px dashed var(--line, #c4d0d8);
  color: var(--muted, #66736d);
  background: #fbfdfc;
}
@media (max-width: 620px) {
  .notification-preference-row {
    grid-template-columns: 1fr;
  }
  .notification-preference-control {
    justify-content: space-between;
  }
}


/* Alpha 9 forum/category foundation */
.category-header p { margin: 0.25rem 0 0; opacity: 0.75; }
.forum-row--subforum { margin-left: 1.5rem; }
.forum-row--link .forum-icon { font-weight: 700; }
.forum-subforums { margin-top: 0.5rem; font-size: 0.9rem; opacity: 0.85; }
.forum-status-badge { display: inline-flex; margin-top: 0.45rem; padding: 0.2rem 0.55rem; border-radius: 999px; border: 1px solid currentColor; font-size: 0.75rem; opacity: 0.82; }
.forum-latest small { display: block; margin-top: 0.2rem; opacity: 0.75; }

/* Alpha 9.5 empty category layout polish.
   Empty categories use a dedicated full-width notice instead of the normal forum row grid,
   preventing the message from being squeezed into the icon column/count layout. */
.forum-empty-state {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  box-sizing: border-box;
  padding: 18px 20px;
  background: var(--panel-soft);
  border-bottom: 0;
}

.forum-empty-state__icon {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #a8c5a0, var(--green-light));
  color: #fff;
  font-weight: 800;
}

.forum-empty-state__body {
  min-width: 0;
}

.forum-empty-state__body strong {
  display: block;
  font-size: 15px;
}

.forum-empty-state__body p {
  max-width: 720px;
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}


/* Alpha 13 topic moderation forms */
.topic-mod-form { margin: 0 0 10px; }
.topic-mod-form .topic-mod-action { width: 100%; text-align: left; }
.topic-move-options { display: grid; gap: 10px; padding: 10px; border: 1px solid rgba(148, 163, 184, .25); border-radius: 12px; }
.topic-move-options select { width: 100%; margin-top: 6px; padding: 8px 10px; border-radius: 8px; border: 1px solid rgba(148, 163, 184, .35); background: rgba(15, 23, 42, .7); color: inherit; }
.notice.success, .notice.error { margin: 12px 0; padding: 10px 12px; border-radius: 10px; font-weight: 700; }
.notice.success { border: 1px solid rgba(34, 197, 94, .35); background: rgba(34, 197, 94, .12); }
.notice.error { border: 1px solid rgba(248, 113, 113, .35); background: rgba(248, 113, 113, .12); }
.classiclight-mod-tools form { margin: 0; }
.classiclight-mod-tools .mini-button { width: 100%; }
.classiclight-mod-tools .mini-button.danger { border-color: rgba(220, 38, 38, .45); }

/* Alpha 14: real forum view subforum states. */
.classic-subforum-empty {
  display: block;
  padding: 1rem 1.25rem;
  background: #fbfbfa;
  border-bottom: 1px solid #c7d1d8;
  color: #49606a;
}
.classic-subforum-empty strong { display: block; color: #10232c; margin-bottom: .25rem; }
.classic-subforum-row.is-locked .classic-forum-status,
.classic-subforum-row.is-archived .classic-forum-status,
.classic-subforum-row.is-inactive .classic-forum-status { opacity: .7; }
.classic-subforum-main .forum-status-badge { display: inline-block; margin-top: .35rem; }


/* Alpha 14.1 topic/forum display repairs */
.topic-group-image { display: inline-flex; justify-content: center; align-items: center; margin: 8px auto 6px; max-width: 120px; }
.topic-group-image img { display: block; max-width: 110px; max-height: 44px; object-fit: contain; border-radius: 6px; }
.classic-pagination a, .classic-pagination strong, .classic-pagination span { min-width: 28px; min-height: 28px; padding: 5px 8px; border: 1px solid rgba(120,138,150,.45); border-radius: 4px; background: rgba(255,255,255,.75); color: inherit; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 4px; }
.classic-pagination strong { background: #5b9a5c; color: #fff; border-color: #4d874e; }
.classic-pagination.is-single { opacity: .8; }

/* Alpha 15 user/profile data polish */
.topic-avatar, .profile-avatar-large, .usercp-avatar, .usercp-avatar-preview { object-fit: cover; }
img.topic-avatar, img.profile-avatar-large, img.usercp-avatar, img.usercp-avatar-preview { display:block; border-radius:999px; }
.notice.success { border:1px solid #a7d7b5; background:#eefaf1; color:#236436; padding:12px 14px; border-radius:10px; margin:12px 0; }
.notice.error { border:1px solid #f0b4b4; background:#fff0f0; color:#8a1f1f; padding:12px 14px; border-radius:10px; margin:12px 0; }


.usercp-file-input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.usercp-dropzone { position: relative; cursor: pointer; }
.usercp-dropzone.is-dragover { outline: 3px solid currentColor; outline-offset: -6px; }
.usercp-limit-note { margin: 0 0 10px; color: var(--muted, #64748b); font-size: .9rem; }


/* Alpha 16 User CP shell, last-post avatars, and post moderation foundation. */
.usercp-shell .usercp-tabs { background:#fff; border:1px solid var(--line); border-radius:4px; box-shadow:0 1px 4px rgba(31,50,41,.07); }
.usercp-avatar-wrap { position:relative; width:max-content; }
.usercp-online-dot { position:absolute; right:3px; bottom:5px; width:18px; height:18px; border-radius:50%; background:var(--green); border:3px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.usercp-file-input { position:absolute; inline-size:1px; block-size:1px; opacity:0; pointer-events:none; }
.usercp-dropzone { cursor:pointer; transition:.18s ease; }
.usercp-dropzone.is-dragover { border-color:var(--green); background:var(--green-soft); color:var(--green-dark); transform:translateY(-1px); }
.usercp-limit-note { margin:14px 18px 0; color:var(--muted); font-size:13px; }
.last-post-avatar { width:34px; height:34px; border-radius:50%; object-fit:cover; flex:0 0 auto; background:#eef3f0; border:1px solid var(--line-strong); display:inline-grid; place-items:center; overflow:hidden; }
.last-post-avatar svg, .avatar-silhouette svg { width:70%; height:70%; fill:#7f9088; }
.avatar-silhouette { color:#7f9088; background:linear-gradient(180deg,#f8fbf9,#e4ece8); }
.forum-latest-inner, .classic-last-post.has-avatar { display:flex; align-items:center; gap:9px; min-width:0; }
.forum-latest-inner div, .classic-last-post.has-avatar div { min-width:0; }
.forum-latest-inner strong, .classic-last-post.has-avatar a { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.topic-avatar.avatar-silhouette { display:grid; place-items:center; }
.post-edit-notice { margin-top:14px; padding-top:10px; border-top:1px dashed var(--line); color:var(--muted); font-size:12px; }
.topic-post-signature { margin-top:16px; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
.post-moderation-panel { border-top:1px solid var(--line); background:#fbfdfc; padding:10px 14px; }
.post-moderation-panel summary { cursor:pointer; color:var(--green-dark); font-weight:800; }
.post-moderation-grid { display:grid; grid-template-columns:2fr 1fr; gap:12px; margin-top:10px; }
.post-moderation-grid form { display:grid; gap:8px; }
.post-moderation-grid label { display:grid; gap:5px; color:var(--ink); font-weight:700; font-size:12px; }
.post-moderation-grid textarea { min-height:90px; resize:vertical; }
.post-moderation-grid textarea, .post-moderation-grid input { border:1px solid var(--line-strong); border-radius:3px; padding:8px; background:#fff; }
.post-moderation-grid button { width:max-content; }
.post-moderation-grid .danger { background:#b84a4a; }
@media (max-width: 820px) { .post-moderation-grid { grid-template-columns:1fr; } }

/* Alpha 17: full-width empty topic state and post moderation polish. */
.classic-topic-empty-state { grid-column: 1 / -1; display: block; padding: 28px 22px; background: #fff; border-top: 1px solid var(--line, #c7d1d8); text-align: center; color: var(--muted, #53636a); }
.classic-topic-empty-state h3 { margin: 0 0 6px; color: var(--ink, #17242b); font-size: 18px; }
.classic-topic-empty-state p { margin: 0; }
.topic-post--deleted { opacity: .9; }
.deleted-post-placeholder { border: 1px dashed #c99; background: #fff7f7; border-radius: 6px; padding: 14px; color: #7a3535; }
.deleted-post-placeholder p { margin: 6px 0 0; }
.post-edit-notice { margin-top: 12px; color: var(--muted, #5c6b73); font-size: 12px; font-style: italic; }
.post-history-link { align-self: start; margin: 0; font-weight: 800; }
.history-page { background: #eef5f7; }
.history-card { max-width: 1000px; margin: 28px auto; background: #fff; border: 1px solid var(--line, #c7d1d8); border-radius: 8px; box-shadow: 0 2px 10px rgba(30,45,55,.12); overflow: hidden; }
.history-card header { background: var(--green, #5f9c5f); color: #fff; padding: 18px 22px; }
.history-card h1 { margin: 0; }
.history-body { padding: 22px; display: grid; gap: 16px; }
.history-entry { border: 1px solid var(--line, #c7d1d8); border-radius: 6px; padding: 14px; background: #fbfdfc; }
.history-entry h3 { margin: 0 0 6px; }
.history-entry pre { white-space: pre-wrap; background: #f5f7f8; border: 1px solid var(--line, #c7d1d8); border-radius: 4px; padding: 12px; overflow: auto; }

/* Alpha 18 moderation polish: compact post actions and full-page post editing. */
.topic-post-actions {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.post-icon-form {
  display: inline-flex;
  margin: 0;
}
.post-icon-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.8rem;
  height: 1.8rem;
  border: 1px solid rgba(44, 72, 94, .22);
  border-radius: .45rem;
  background: rgba(255,255,255,.72);
  color: inherit;
  text-decoration: none;
  font-weight: 700;
  cursor: pointer;
}
.post-icon-action:hover,
.post-icon-action:focus {
  background: rgba(92, 154, 94, .14);
  border-color: rgba(92, 154, 94, .55);
}
.post-icon-action.danger {
  color: #8a1f1f;
}
.post-icon-action.danger:hover,
.post-icon-action.danger:focus {
  background: rgba(195, 64, 64, .12);
  border-color: rgba(195, 64, 64, .55);
}
.topic-post--deleted,
.deleted-post-placeholder,
.post-moderation-panel {
  display: none !important;
}

/* Alpha 21: real member-list pagination and per-page selector wiring. */
.members-per-page {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
}
.members-per-page select {
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 8px 10px;
  background: #fff;
  color: var(--text);
  font-weight: 700;
}
.members-pagination {
  align-items: center;
  flex-wrap: wrap;
}
.members-pagination-meta {
  width: 100%;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
  margin-bottom: 8px;
}
.members-pagination-links {
  display: inline-flex;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}
.members-page-link,
.members-pagination-gap {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--text);
  border-radius: 5px;
  padding: 9px 12px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.members-page-link.is-active {
  color: #fff;
  border-color: var(--green-dark);
  background: linear-gradient(to bottom, var(--green), var(--green-dark));
}
.members-page-link.is-disabled {
  opacity: .55;
  cursor: not-allowed;
}

/* Alpha 23 private messaging foundation polish */
.pm-notice{margin:0 0 16px;padding:12px 14px;border-radius:12px;background:rgba(37,99,235,.1);border:1px solid rgba(37,99,235,.25);font-weight:700}
.pm-empty-state{padding:34px;text-align:center;color:var(--muted-text,#6b7280)}
.pm-empty-state h3{margin:0 0 8px;color:var(--text,#111827)}
.pm-message-entry{border-top:1px solid rgba(148,163,184,.22);padding:20px 0}.pm-message-entry:first-child{border-top:0}.pm-reply-form{margin-top:24px;border-top:1px solid rgba(148,163,184,.25);padding-top:20px}.pm-page-count{display:inline-flex;align-items:center;padding:0 10px;font-size:.9rem;color:var(--muted-text,#6b7280)}
.pm-list-card form{margin:0}.pm-toolbar-actions a.pm-secondary-button{text-decoration:none}.pm-row-main small{display:block;margin-top:6px;color:var(--muted-text,#64748b)}

/* Alpha 25.1: table-style poll management polish. */
.poll-manage-wrap { display: block; }
.poll-manage-shell { margin-bottom: 18px; }
.poll-manage-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.poll-manage-header h2 { margin: 0; }
.poll-manage-eyebrow { margin: 0 0 3px; color: rgba(255,255,255,.86); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.poll-status-badge { border: 1px solid rgba(255,255,255,.48); border-radius: 999px; padding: 4px 10px; background: rgba(255,255,255,.16); color: #fff; font-size: 12px; font-weight: 900; }
.poll-manage-form { display: block; border-top: 0; }
.poll-manage-table { display: grid; background: var(--panel, #fff); }
.poll-manage-row { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 14px; align-items: start; padding: 13px 14px; border-bottom: 1px solid var(--line, #c4d0d8); }
.poll-manage-row > label { color: var(--ink, #172a3a); font-weight: 900; }
.poll-manage-control { display: grid; gap: 5px; min-width: 0; }
.poll-manage-control input, .poll-manage-control textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--line, #c4d0d8); border-radius: 4px; padding: 9px 10px; background: #fff; color: var(--ink, #172a3a); font: inherit; }
.poll-manage-control textarea { min-height: 170px; resize: vertical; }
.poll-manage-control small { color: var(--muted, #6f7d85); font-size: 12px; }
.poll-manage-checks { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.poll-manage-checks label { display: flex; align-items: center; gap: 8px; padding: 9px 10px; border: 1px solid var(--line, #c4d0d8); border-radius: 4px; background: var(--panel-soft, #f6faf8); font-weight: 700; }
.poll-manage-actions { flex-wrap: wrap; justify-content: flex-start; }
.topic-action-button.danger { background: #7d2e2e; color: #fff; border-color: #602222; }
@media (max-width: 760px) {
  .poll-manage-header { align-items: flex-start; flex-direction: column; }
  .poll-manage-row { grid-template-columns: 1fr; }
  .poll-manage-checks { grid-template-columns: 1fr; }
}

/* Alpha 25.8: compact attachment previews and image-viewer links. */
.topic-attachments { margin-top: 1rem; }
.topic-attachments ul { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .75rem; }
.topic-attachments li { padding: .75rem; border: 1px solid rgba(148, 163, 184, .35); border-radius: 12px; background: rgba(148, 163, 184, .08); }
.topic-attachment-preview { margin-top: .6rem; }
.topic-attachment-preview img { display: block; max-width: 240px; max-height: 180px; width: auto; height: auto; object-fit: contain; border-radius: 10px; border: 1px solid rgba(148, 163, 184, .35); box-shadow: 0 10px 24px rgba(15, 23, 42, .16); }
.topic-attachment-preview a:hover img { transform: translateY(-1px); }

/* Beta 2: topic tools, display modes, quoting, and Who's Online */
.topic-page-tools { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.topic-tool-menu { position:relative; }
.topic-tool-menu > summary { list-style:none; cursor:pointer; border:1px solid rgba(61,111,66,.25); border-radius:999px; padding:.45rem .75rem; background:#fff; color:#24472a; font-weight:700; }
.topic-tool-menu > summary::-webkit-details-marker { display:none; }
.topic-tool-menu[open] > summary { background:#eaf6ea; border-color:#5c9f5e; }
.topic-tool-menu-panel { position:absolute; z-index:20; right:0; top:calc(100% + .4rem); min-width:220px; display:grid; gap:.45rem; background:#fff; border:1px solid #cfded0; border-radius:14px; box-shadow:0 16px 40px rgba(31,70,35,.18); padding:.75rem; }
.topic-tool-menu-panel a, .topic-tool-menu-panel button { text-decoration:none; border:0; border-radius:10px; background:#f4faf4; color:#24472a; padding:.55rem .7rem; font-weight:700; text-align:left; }
.topic-tool-menu-panel input[type="search"] { border:1px solid #cfded0; border-radius:10px; padding:.55rem .7rem; width:100%; }
.display-mode-links a.active { background:#4f9654; color:#fff; }
.thread-search-results { margin:1rem 0; border:1px solid #cfded0; border-radius:16px; background:#fbfffb; padding:1rem; }
.thread-search-results h2 { margin:0 0 .75rem; color:#214a28; }
.thread-search-results article { border-top:1px solid #e1ebe2; padding:.65rem 0; display:grid; gap:.25rem; }
.thread-search-results article:first-of-type { border-top:0; }
.thread-search-results article a { font-weight:800; color:#376d3b; }
.topic-display-compact .topic-post-author dl, .topic-display-compact .topic-post-signature, .topic-display-compact .topic-post-foot { display:none; }
.topic-display-compact .topic-post { margin-bottom:.5rem; }
.quote-action { font-size:.9rem; }
.quoted-post { margin:.75rem 0; border-left:4px solid #5c9f5e; background:#f1f8f1; border-radius:0 12px 12px 0; padding:.75rem 1rem; color:#263b2a; }
.quoted-post header { font-weight:800; margin-bottom:.35rem; color:#2d6b35; }
.whos-online-block { margin-top:1.25rem; }
.whos-online-panel { background:#fff; border:1px solid #d4e0d5; border-top:0; border-radius:0 0 12px 12px; padding:1rem; box-shadow:0 4px 20px rgba(37,72,42,.05); }
.whos-online-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; margin-bottom:1rem; }
.whos-online-stats span { background:#f0f8f1; border:1px solid #d5e6d6; border-radius:12px; padding:.7rem; color:#2e5934; }
.whos-online-stats strong { display:block; font-size:1.35rem; color:#24472a; }
.whos-online-lists { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.whos-online-lists h3 { margin:.1rem 0 .5rem; color:#24472a; }
.whos-online-names a { font-weight:800; color:#376d3b; }
.whos-online-names small { color:#667; margin-left:.2rem; }
.bot-chip { display:inline-grid; gap:.15rem; background:#f4faf4; border:1px solid #d5e6d6; border-radius:999px; padding:.45rem .7rem; margin:.2rem; }
.bot-chip small { color:#667; }
.whos-online-note, .muted { color:#667; font-size:.9rem; }
@media (max-width: 800px) { .whos-online-stats, .whos-online-lists { grid-template-columns:1fr 1fr; } .topic-tool-menu-panel { left:0; right:auto; } }
@media (max-width: 520px) { .whos-online-stats, .whos-online-lists { grid-template-columns:1fr; } }


.bbcode-code { margin: 1rem 0; border: 1px solid rgba(61,111,66,.22); border-radius: 14px; overflow: hidden; background: #111827; box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
.bbcode-code figcaption { padding: .45rem .8rem; background: #213f26; color: #e8f6ea; font-weight: 800; font-size: .82rem; letter-spacing: .02em; }
.bbcode-code pre { margin: 0; padding: 1rem; overflow: auto; white-space: pre; }
.bbcode-code code { color: #f8fafc; font: 0.92rem/1.55 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
.topic-post-content { overflow-wrap: anywhere; }

/* Beta 2 Pass 7 attachment carousel/protection polish */
.attachment-carousel{margin-top:12px;border:1px solid rgba(22,101,52,.16);border-radius:16px;background:linear-gradient(180deg,rgba(240,253,244,.72),rgba(255,255,255,.95));padding:12px;box-shadow:0 10px 24px rgba(15,23,42,.06)}
.attachment-carousel-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 10px;color:#166534;font-weight:800;font-size:.9rem}
.attachment-carousel-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,240px);gap:12px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding-bottom:4px}
.attachment-carousel-item{position:relative;margin:0;scroll-snap-align:start;border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.06);overflow:hidden}
.attachment-carousel-item img{display:block;width:100%;height:145px;object-fit:cover;background:#f1f5f9;-webkit-user-select:none;user-select:none}
.attachment-carousel-item.protected-image:after{content:"";position:absolute;inset:0 0 46px 0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 38%,rgba(22,101,52,.10))}
.attachment-protection-badge{position:absolute;top:8px;right:8px;background:rgba(20,83,45,.86);color:#fff;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:800;pointer-events:none}
.attachment-carousel-item figcaption{display:grid;gap:2px;padding:9px 10px;font-size:.82rem;color:#64748b}
.attachment-carousel-item figcaption a:first-child{font-weight:800;color:#14532d;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attachment-carousel-item figcaption a:last-child{color:#166534;font-weight:700;text-decoration:none}
.attachment-file-list{margin:12px 0 0;padding-left:20px}

/* Beta 2 Pass 12 polish: clearer thread search and diagnostics tables. */
.thread-search-results mark { background:#fff3b0; color:#1f2937; border-radius:4px; padding:0 .15rem; font-weight:800; }
.topic-tool-menu-panel a[href="#"] { cursor:pointer; }


/* Beta 3 Build 7: default theme mobile/readability polish */
@media (max-width: 760px) {
  .forum-classic-wrap,
  .topic-shell,
  .editor-layout,
  .search-shell,
  .profile-layout,
  .usercp-shell,
  .system-wrap {
    width: min(100% - 24px, 100%);
    margin-left: auto;
    margin-right: auto;
  }

  .forum-classic-title-row,
  .editor-hero,
  .topic-titlebar,
  .search-hero,
  .profile-layout,
  .usercp-hero-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .forum-classic-actions,
  .topic-action-row,
  .editor-action-row,
  .usercp-actions,
  .notification-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .classic-topic-head,
  .classic-topic-row {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  .classic-topic-head > span:nth-child(n+3),
  .classic-topic-row > div:nth-child(n+3) {
    display: none;
  }

  .editor-layout,
  .search-layout,
  .usercp-layout {
    grid-template-columns: 1fr !important;
  }

  .editor-textarea,
  .default-editor-textarea,
  .usercp-signature-box {
    min-height: 220px;
  }

  .nb-announcement-bar,
  .plugin-announcement-bar {
    margin-inline: 0;
    border-radius: 14px;
  }

  .forum-classic-breadcrumbs,
  .topic-breadcrumbs,
  .editor-breadcrumbs,
  .search-breadcrumbs,
  .profile-breadcrumbs,
  .usercp-breadcrumbs {
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 520px) {
  .classic-legend,
  .topic-pagebar,
  .editor-submitbar,
  .search-toolbar,
  .pm-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .button,
  .topic-action-button,
  .members-button,
  .pm-primary-button,
  .pm-secondary-button,
  .profile-button,
  .usercp-actions button,
  .usercp-actions a {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

/* Beta 4 Advanced Calendar foundation */
.calendar-shell{display:flex;flex-direction:column;gap:1rem;margin:1.25rem 0 2rem}.calendar-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem;border:1px solid var(--border,#d7dce7);border-radius:18px;background:var(--panel,#fff);box-shadow:0 10px 30px rgba(20,31,56,.06)}.calendar-hero h1{margin:.1rem 0}.calendar-tabs{display:flex;flex-wrap:wrap;gap:.5rem}.calendar-tab{padding:.55rem .9rem;border:1px solid var(--border,#d7dce7);border-radius:999px;background:#fff;text-decoration:none;font-weight:700}.calendar-tab.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}.calendar-weekdays{font-size:.8rem;font-weight:800;text-transform:uppercase;color:#64748b}.calendar-weekdays span{text-align:center}.calendar-day{position:relative;min-height:128px;padding:.65rem;border:1px solid var(--border,#d7dce7);border-radius:14px;background:#fff}.calendar-day.muted{opacity:.56}.calendar-day-number{font-weight:900;margin-bottom:.45rem}.calendar-pill{display:block;margin:.25rem 0;padding:.32rem .45rem;border-radius:8px;font-size:.78rem;font-weight:800;line-height:1.2;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-pill.wide{font-size:.9rem;padding:.55rem .7rem}.calendar-pill--event{background:#dbeafe;color:#1e3a8a}.calendar-pill--holiday{background:#fee2e2;color:#991b1b}.calendar-pill--birthday{background:#fef3c7;color:#92400e}.calendar-pill--birthday{display:flex;align-items:center;gap:.28rem;min-width:0}.calendar-birthday-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-birthday-age,.calendar-birthday-kind{flex:0 0 auto}.calendar-birthday-age{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;padding:.05rem .32rem;border-radius:999px;background:rgba(146,64,14,.12);font-size:.72rem;font-weight:900}.calendar-birthday-kind{font-size:.68rem;font-weight:900;opacity:.85}.calendar-show-all{margin-top:.25rem;border:0;background:transparent;color:#1d4ed8;font-weight:800;cursor:pointer}.calendar-day-popover{position:absolute;z-index:25;left:.5rem;right:.5rem;top:2.2rem;padding:.75rem;border:1px solid #cbd5e1;border-radius:14px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.2)}.calendar-agenda{display:flex;flex-direction:column;gap:.8rem}.calendar-agenda-day{padding:1rem;border:1px solid var(--border,#d7dce7);border-radius:16px;background:#fff}.calendar-empty,.calendar-event-card{padding:1.25rem;border:1px solid var(--border,#d7dce7);border-radius:18px;background:#fff}.calendar-event-meta{font-weight:800;color:#475569}.calendar-rsvp-box{margin-top:1rem;padding:.8rem;border-radius:12px;background:#eef2ff;color:#3730a3}@media (max-width:760px){.calendar-hero{align-items:flex-start;flex-direction:column}.calendar-grid{gap:.3rem}.calendar-day{min-height:92px;padding:.45rem}.calendar-pill{font-size:.7rem}.calendar-weekdays{display:none}}

/* Beta 4 Build 2 calendar event workflow */
.calendar-event-form{display:flex;flex-direction:column;gap:1rem}.calendar-event-form label{display:flex;flex-direction:column;gap:.35rem;font-weight:800}.calendar-event-form input,.calendar-event-form textarea,.calendar-event-form select,.calendar-comment-form textarea{width:100%;border:1px solid var(--border,#cbd5e1);border-radius:10px;padding:.65rem;background:#fff;font:inherit}.calendar-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.calendar-check{flex-direction:row!important;align-items:center;font-weight:700}.calendar-check input{width:auto}.calendar-event-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.calendar-event-actions form{display:inline}.button.secondary{background:#eef2f7;color:#1f2937}.button.danger{background:#b91c1c;color:#fff}.calendar-notice{margin-bottom:1rem;padding:.75rem 1rem;border-radius:12px;background:#dcfce7;color:#166534;font-weight:800}.calendar-notice--error{background:#fee2e2;color:#991b1b}.calendar-comments{margin-top:1.25rem;border-top:1px solid var(--border,#e2e8f0);padding-top:1rem}.calendar-comment{padding:.75rem;border:1px solid var(--border,#e2e8f0);border-radius:12px;background:#f8fafc;margin:.55rem 0}.calendar-comment p{margin:.35rem 0 0}.calendar-comment-form{display:flex;flex-direction:column;gap:.65rem;margin-top:1rem}.calendar-muted{color:#64748b}.calendar-status{font-size:.75rem;font-weight:900;border-radius:999px;background:#fef3c7;color:#92400e;padding:.15rem .45rem}@media(max-width:760px){.calendar-form-grid{grid-template-columns:1fr}.calendar-event-actions{display:grid}.calendar-event-actions .button,.calendar-event-actions button{width:100%}}

/* Beta 4 Build 3 calendar RSVP, invites, and discussion polish */
.calendar-rsvp-box,.calendar-discussion-box,.calendar-invite-box{margin-top:1rem;padding:1rem;border:1px solid var(--border,#d7dce7);border-radius:14px;background:#f8fafc}.calendar-rsvp-box h2,.calendar-discussion-box h2,.calendar-invite-box h2{margin-top:0}.calendar-rsvp-counts{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}.calendar-rsvp-counts span{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;border-radius:999px;background:#fff;border:1px solid var(--border,#d7dce7);font-weight:800}.calendar-rsvp-actions{display:flex;flex-wrap:wrap;gap:.5rem}.calendar-rsvp-actions .active{outline:2px solid #2563eb;background:#dbeafe;color:#1e3a8a}.calendar-event-form select[multiple]{min-height:9rem}.calendar-discussion-box{background:#eef2ff;color:#312e81}.calendar-invite-box{background:#ecfeff;color:#155e75}@media(max-width:760px){.calendar-rsvp-actions{display:grid}.calendar-rsvp-actions .button{width:100%}}

/* Beta 4 Build 4: Advanced PMs foundation */
.pm-advanced-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
  width: 100%;
  margin-top: .55rem;
  padding-top: .55rem;
  border-top: 1px solid rgba(148, 163, 184, .25);
}
.pm-advanced-toolbar input,
.pm-advanced-toolbar select {
  min-height: 2.15rem;
  border-radius: .65rem;
  border: 1px solid rgba(148, 163, 184, .35);
  padding: .35rem .6rem;
  background: var(--nb-surface, #fff);
  color: inherit;
}
.pm-tag-line {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .35rem;
}
.pm-tag-line span,
.pm-closed-label {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .15rem .5rem;
  font-size: .75rem;
  background: rgba(59, 130, 246, .12);
  color: #1d4ed8;
}
.pm-folder-divider {
  margin: .75rem .25rem .35rem;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--nb-muted, #64748b);
}
@media (max-width: 720px) {
  .pm-advanced-toolbar input,
  .pm-advanced-toolbar select,
  .pm-advanced-toolbar button {
    width: 100%;
  }
}


/* Beta 4 Build 5 clickable holiday details */
.calendar-holiday-card{border-color:#fecaca;background:linear-gradient(180deg,#fff 0%,#fff7f7 100%)}.calendar-holiday-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0 1rem}.calendar-holiday-tags span{display:inline-flex;align-items:center;border:1px solid #fecaca;border-radius:999px;background:#fff;color:#991b1b;font-size:.78rem;font-weight:900;padding:.32rem .6rem}.calendar-detail-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border,#e2e8f0)}.calendar-detail-section h2{margin:.1rem 0 .5rem;font-size:1.05rem}.calendar-detail-section p{margin:.25rem 0;line-height:1.65}.calendar-pill--holiday:hover,.calendar-pill--holiday:focus{outline:2px solid #ef4444;outline-offset:2px}

/* Beta 4 Build 6: calendar month navigation and UserCP birthday helper text. */
.calendar-month-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:-.25rem 0 .9rem;padding:.75rem;border:1px solid var(--border,#d7dce7);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(20,31,56,.05)}
.calendar-month-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.45rem .85rem;border:1px solid var(--border,#d7dce7);border-radius:999px;text-decoration:none;font-weight:800;color:#1d4ed8;background:#f8fafc}
.calendar-month-link:hover{background:#eff6ff;border-color:#bfdbfe}
.calendar-month-link--today{color:#334155;background:#fff}
.usercp-help-note{display:block;margin-top:.35rem;color:#64748b;font-size:.85rem;line-height:1.4}
@media (max-width:640px){.calendar-month-nav{flex-direction:column;align-items:stretch}.calendar-month-link{width:100%}}

.profile-rank-badge{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.65rem;border-radius:12px;background:rgba(0,0,0,.04);font-size:.9rem}.profile-rank-badge strong{font-weight:800}.profile-rank-badge small{opacity:.75}.profile-rank-image{max-height:28px;max-width:120px;object-fit:contain}.profile-rank-empty{opacity:.7;font-size:.9rem}

.topic-rank-badge{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;max-width:100%;margin:.2rem auto .25rem;padding:.18rem .5rem;border-radius:999px;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.24);color:#166534;font-size:.78rem;font-weight:800;line-height:1.2;text-align:center}.topic-rank-badge img{max-height:18px;max-width:72px;object-fit:contain}.topic-rank-badge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Beta 4 Build 9: calendar comment moderation polish */
.calendar-comment-head{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.calendar-comment-actions{margin-top:.6rem}.calendar-comment-actions .button{font-size:.82rem;padding:.4rem .65rem}.calendar-agenda .calendar-pill{margin:.25rem .35rem .25rem 0}.calendar-show-all{cursor:pointer}

/* Beta 4 Build 11.1: horizontal reaction bar polish */
.topic-post-foot.topic-reactions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px 10px;
}
.topic-reactions .reaction-summary,
.topic-reactions .reaction-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  width: auto;
}
.topic-reactions .reaction-actions form {
  display: inline-flex;
  margin: 0;
}
.topic-reactions .reaction-button,
.topic-reactions .reaction-count {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  line-height: 1;
}
@media (max-width: 700px) {
  .topic-post-foot.topic-reactions {
    align-items: flex-start;
  }
  .topic-reactions .reaction-actions {
    gap: 5px;
  }
}

/* Beta 4 Build 12: UserCP reaction notification preference polish. */
.usercp-toggle-row {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 8px 10px;
  padding: 12px 14px;
  border: 1px solid rgba(15, 23, 42, .10);
  border-radius: 12px;
  background: rgba(15, 23, 42, .03);
}
.usercp-toggle-row input[type="checkbox"] {
  margin-top: 3px;
}
.usercp-toggle-row small {
  grid-column: 2;
  color: #64748b;
}

/* Beta 4 Build 13: solved / accepted-answer topic polish. */
.topic-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .35rem;
}
.status-pill.solved,
.topic-mini-badge.solved {
  background: #e7f7ed;
  color: #21663a;
  border: 1px solid rgba(33, 102, 58, .22);
}
.topic-mini-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
  padding: .15rem .45rem;
  margin-left: .35rem;
  vertical-align: middle;
}
.topic-solution-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0;
  padding: .85rem 1rem;
  border: 1px solid rgba(57, 126, 75, .24);
  border-left: 4px solid #4f9c62;
  background: #f4fbf6;
  border-radius: 12px;
}
.topic-solution-summary strong,
.topic-solution-summary span {
  display: block;
}
.topic-solution-summary span {
  color: #597061;
  font-size: .9rem;
}
.topic-solution-summary a,
.topic-solution-summary button {
  text-decoration: none;
  cursor: pointer;
}
.topic-solution-actions {
  display: flex;
  align-items: center;
  gap: .55rem;
  flex-wrap: wrap;
}
.topic-solution-actions form {
  margin: 0;
}
.topic-solution-actions .topic-action-button {
  min-height: 30px;
  padding: 6px 12px;
  font-size: 12px;
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(20, 40, 30, .12);
}
.topic-solution-actions .topic-action-button.secondary {
  background: #fff;
  border-color: #b8c8d2;
  color: #1d2a30;
}
.topic-solution-actions .topic-action-button.secondary:hover {
  background: #f5f7f8;
}
.topic-post--solution {
  border-color: rgba(57, 126, 75, .36);
  box-shadow: 0 0 0 2px rgba(57, 126, 75, .08);
}
.accepted-solution-ribbon {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem .75rem;
  background: #e9f8ee;
  color: #21663a;
  border-bottom: 1px solid rgba(33, 102, 58, .18);
  font-weight: 800;
}
.post-icon-action.solution {
  background: #e7f7ed;
  color: #21663a;
  border-color: rgba(33, 102, 58, .22);
  width: auto;
  padding: .25rem .55rem;
}
.classic-topic-row.solved .classic-topic-status .nb-icon {
  background: #4f9c62;
}
@media (max-width: 720px) {
  .topic-solution-summary { align-items: flex-start; flex-direction: column; }
  .topic-solution-actions { width: 100%; }
}


.topic-solution-summary--expanded {
  align-items: stretch;
  gap: 0.75rem;
}
.topic-solution-preview {
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(46,125,50,0.22);
  border-radius: 12px;
  padding: 0.75rem 0.9rem;
  flex: 1 1 100%;
}
.topic-solution-preview strong {
  display: block;
  color: #245d2a;
  margin-bottom: 0.3rem;
}
.topic-solution-preview p {
  margin: 0;
  color: #24402a;
  line-height: 1.45;
}
.topic-post--solution {
  box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.28), 0 14px 36px rgba(32, 97, 43, 0.12);
}

/* Beta 4 Build 13.4: live topic reply polling notice. */
.topic-live-notice {
  margin: 0.75rem 0;
  padding: 0.65rem 0.85rem;
  border: 1px solid rgba(57, 126, 75, .24);
  border-left: 4px solid #4f9c62;
  border-radius: 8px;
  background: #f4fbf6;
  color: #245d2a;
  font-weight: 800;
}

/* Beta 4 Build 13.7: topic prefix/tag filter polish and clickable markers. */
.classic-topic-filterbar {
  display: grid;
  gap: 12px;
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid rgba(40, 50, 70, 0.12);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,250,252,.9));
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}
.topic-filter-header,
.topic-filter-grid,
.topic-filter-active {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.topic-filter-header { justify-content: space-between; }
.topic-filter-header strong {
  display: block;
  color: #17202b;
  font-size: 1rem;
}
.topic-filter-header span,
.topic-filter-active span,
.topic-filter-group strong,
.topic-tag-filter-form span {
  display: block;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.72;
}
.topic-filter-grid { align-items: end; }
.topic-filter-group { min-width: min(440px, 100%); }
.topic-filter-group strong,
.topic-tag-filter-form span { margin-bottom: 8px; }
.topic-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.topic-filter-pill,
.topic-filter-clear,
.topic-tag-filter-form button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid rgba(67, 83, 118, 0.18);
  border-radius: 999px;
  background: rgba(248, 250, 252, 0.96);
  color: inherit;
  font-weight: 700;
  text-decoration: none;
}
.topic-filter-pill:hover,
.topic-filter-clear:hover,
.topic-tag-filter-form button:hover { transform: translateY(-1px); }
.topic-filter-pill.is-active,
.topic-tag-filter-form button,
.topic-filter-active strong {
  background: rgba(37, 99, 235, 0.12);
  border-color: rgba(37, 99, 235, 0.32);
}
.topic-filter-active strong {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid rgba(37, 99, 235, 0.26);
  border-radius: 999px;
}
.topic-filter-pill span {
  opacity: 0.68;
  font-size: 0.8em;
}
.topic-tag-filter-form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 8px;
}
.topic-tag-filter-form label {
  min-width: min(260px, 100%);
}
.topic-tag-filter-form input {
  min-height: 36px;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid rgba(67, 83, 118, 0.22);
  border-radius: 10px;
}
.topic-prefix-badge,
.topic-tag-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.25;
  vertical-align: middle;
}
.topic-prefix-badge {
  border: 1px solid rgba(37, 99, 235, 0.24);
  background: rgba(37, 99, 235, 0.10);
}
.topic-prefix-badge.prefix-question {
  border-color: rgba(21, 128, 61, 0.28);
  background: rgba(21, 128, 61, 0.12);
}
.topic-tag-badge {
  margin-right: 6px;
  border: 1px solid rgba(100, 116, 139, 0.2);
  background: rgba(100, 116, 139, 0.10);
}
.classic-topic-markers {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}


.usercp-completion small {
  display: block;
  margin-top: 7px;
  color: rgba(255,255,255,.88);
  font-size: 12px;
}
.usercp-completion-panel {
  border-top: 1px solid var(--line);
  padding: 0 18px 18px;
}
.usercp-completion-panel h3 {
  margin: 0 0 10px;
  color: var(--ink);
}
.usercp-completion-list {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}
.usercp-completion-list li {
  align-items: center;
  background: #f8faf8;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  display: flex;
  gap: 8px;
  padding: 9px 10px;
}
.usercp-completion-list li.is-complete {
  background: #effaf2;
  border-color: #bfdcc6;
  color: var(--green-dark);
  font-weight: 800;
}
.profile-detail-list {
  display: grid;
  gap: 12px;
  margin: 0;
}
.profile-detail-list div {
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}
.profile-detail-list div:last-child { border-bottom: 0; padding-bottom: 0; }
.profile-detail-list dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.profile-detail-list dd {
  color: var(--ink);
  margin: 4px 0 0;
}
.profile-social-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.profile-social-pill {
  background: var(--green-soft);
  border: 1px solid #bdd7c4;
  border-radius: 999px;
  color: var(--green-dark);
  font-size: 12px;
  font-weight: 800;
  padding: 6px 10px;
  text-decoration: none;
}
.profile-empty {
  color: var(--muted);
  margin: 0;
}

/* Global success/error/fail message bar */
.global-message-stack{max-width:1180px;margin:14px auto 0;padding:0 18px;display:grid;gap:10px}.global-message{display:flex;gap:10px;align-items:flex-start;border:1px solid rgba(15,23,42,.12);border-left-width:5px;border-radius:14px;padding:12px 14px;background:#fff;box-shadow:0 10px 26px rgba(15,23,42,.08);color:#111827}.global-message strong{min-width:74px;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.global-message span{line-height:1.45}.global-message--success{border-left-color:#16a34a}.global-message--error,.global-message--fail{border-left-color:#dc2626}.global-message--warning{border-left-color:#d97706}.global-message--info{border-left-color:#2563eb}@media (max-width:640px){.global-message{display:block}.global-message strong{display:block;margin-bottom:4px}}

/* Beta 4 Build 13.16 notification center polish. */
.notification-index-card { max-width: 980px; margin: 0 auto; }
.notification-page-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 18px 0 12px;
  padding: 12px;
  border: 1px solid var(--line, #c4d0d8);
  border-radius: 10px;
  background: #f8faf9;
}
.notification-page-toolbar > span:first-child {
  margin-right: auto;
  font-weight: 800;
  color: var(--ink, #26302a);
}
.notification-filter-tabs { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.notification-filter-tabs .is-active { background: var(--green, #6da56c); color: #fff; border-color: var(--green-dark, #5a9359); }
.notification-category-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
}
.notification-category-summary span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 10px;
  border: 1px solid var(--line, #c4d0d8);
  border-radius: 999px;
  background: #fff;
  color: var(--muted, #66736d);
  font-size: 12px;
}
.notification-category-summary strong { color: var(--ink, #26302a); }
.notification-page-list { display: grid; gap: 10px; margin: 16px 0; }
.notification-page-item {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--line, #c4d0d8);
  border-radius: 12px;
  background: #fff;
}
.notification-page-item.is-unread {
  border-color: rgba(109,165,108,.45);
  background: #f6fbf6;
  box-shadow: inset 4px 0 0 var(--green, #6da56c);
}
.notification-page-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #eef6ee;
  color: var(--green-dark, #5a9359);
  font-weight: 900;
}
.notification-page-body h2 { margin: 5px 0 4px; font-size: 17px; }
.notification-page-body p { margin: 0 0 6px; color: var(--muted, #66736d); line-height: 1.45; }
.notification-page-body time { color: var(--muted, #66736d); font-size: 12px; }
.notification-page-meta { display: flex; flex-wrap: wrap; gap: 5px; }
.notification-page-meta span {
  display: inline-flex;
  padding: 3px 7px;
  border: 1px solid var(--line, #c4d0d8);
  border-radius: 999px;
  background: #f8faf9;
  color: var(--muted, #66736d);
  font-size: 11px;
  font-weight: 800;
  text-transform: capitalize;
}
.notification-page-actions {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}
.notification-page-actions form { margin: 0; }
.button.danger, .button.ghost.danger { color: #9b1c1c; border-color: #e3b5b5; background: #fff7f7; }
.notification-channel-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .notification-page-item { grid-template-columns: 1fr; }
  .notification-page-icon { width: 38px; height: 38px; }
  .notification-page-actions { justify-content: flex-start; }
  .notification-page-toolbar { align-items: stretch; flex-direction: column; }
  .notification-page-toolbar > span:first-child { margin-right: 0; }
}


/* Beta 4 Build 13.25: email-style private message reading and topic-style PM composing. */
.pm-reader-layout {
  align-items: start;
}
.pm-reader-folders {
  position: sticky;
  top: 84px;
}
.pm-email-reader-card {
  overflow: hidden;
  background: #fff;
}
.pm-email-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  background: linear-gradient(180deg, #f8fbfa, #eef6f2);
  border-bottom: 1px solid var(--line, #c4d0d8);
}
.pm-email-toolbar .pm-back {
  color: var(--green-dark, #1f6f53);
  font-weight: 900;
  text-decoration: none;
}
.pm-email-toolbar .pm-message-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.pm-email-toolbar .pm-message-actions button {
  background: #fff;
  color: var(--green-dark, #1f6f53);
  border-color: var(--line, #c4d0d8);
}
.pm-email-subject-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line, #c4d0d8);
  background: #fff;
}
.pm-email-subject-bar .pm-kicker {
  display: block;
  margin: 0 0 4px;
  color: var(--green-dark, #1f6f53);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pm-email-subject-bar h1 {
  margin: 0;
  color: var(--ink, #172a3a);
  font-size: 25px;
  line-height: 1.2;
}
.pm-email-reader-body {
  padding: 0;
  background: #fff;
}
.pm-email-thread {
  display: grid;
}
.pm-email-message {
  border-bottom: 1px solid var(--line, #c4d0d8);
  background: #fff;
}
.pm-email-message.is-first {
  box-shadow: inset 4px 0 0 var(--green, #2f8c66);
}
.pm-email-message-head {
  display: grid;
  grid-template-columns: 56px minmax(0,1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 16px 20px 10px;
}
.pm-email-sender {
  min-width: 0;
}
.pm-email-sender strong {
  display: block;
  color: var(--ink, #172a3a);
  font-size: 15px;
}
.pm-email-sender span,
.pm-email-sender small,
.pm-email-message-head time {
  color: var(--muted, #6f7d85);
  font-size: 12px;
}
.pm-email-sender span,
.pm-email-sender small {
  display: block;
  margin-top: 2px;
}
.pm-email-message-head time {
  white-space: nowrap;
  align-self: start;
  padding-top: 2px;
}
.pm-email-prose {
  padding: 2px 20px 22px 88px;
  color: var(--text, #26302a);
  line-height: 1.75;
  font-size: 15px;
}
.pm-reply-composer {
  margin: 18px 20px 22px;
  border: 1px solid var(--line, #c4d0d8);
  border-radius: 8px;
  background: var(--panel, #fff);
  overflow: hidden;
  box-shadow: var(--soft-shadow, 0 2px 8px rgba(0,0,0,.08));
}
.pm-reply-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  background: var(--panel-soft, #f6faf8);
  border-bottom: 1px solid var(--line, #c4d0d8);
}
.pm-reply-head strong {
  color: var(--green-dark, #1f6f53);
}
.pm-reply-head span {
  color: var(--muted, #6f7d85);
  font-size: 12px;
}
.pm-reply-editor {
  border: 0;
  border-radius: 0;
}
.pm-reply-editor textarea {
  min-height: 190px;
  border: 0;
}
.pm-reply-composer .pm-message-foot {
  margin: 0;
  padding: 12px 14px;
  background: var(--panel-soft, #f6faf8);
}
.pm-compose-page .default-editor-shell {
  padding-bottom: 44px;
}
.pm-compose-layout {
  margin-top: 16px;
}
.pm-compose-layout > div {
  min-width: 0;
}
.pm-topic-composer {
  padding: 0;
}
.pm-compose-card {
  overflow: hidden;
}
.pm-compose-header p {
  margin: 4px 0 0;
}
.pm-compose-body {
  gap: 16px;
}
.pm-compose-field input,
.pm-compose-field textarea {
  width: 100%;
  box-sizing: border-box;
}
.pm-editor-box .editor-toolbar {
  border: 0;
  border-bottom: 1px solid var(--line, #c4d0d8);
  border-radius: 0;
}
.pm-editor-box textarea {
  border: 0;
  border-radius: 0;
  background: #fff;
}
.pm-compose-tips p {
  margin: 0;
  padding: 12px;
  color: var(--muted, #6f7d85);
  line-height: 1.55;
}
.pm-compose-preview {
  margin-top: 18px;
}
@media (max-width: 980px) {
  .pm-reader-layout,
  .pm-compose-layout {
    grid-template-columns: 1fr;
  }
  .pm-reader-folders,
  .pm-compose-side {
    position: static;
  }
}
@media (max-width: 680px) {
  .pm-email-toolbar,
  .pm-email-subject-bar,
  .pm-reply-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .pm-email-message-head {
    grid-template-columns: 46px minmax(0,1fr);
  }
  .pm-email-message-head time {
    grid-column: 2;
  }
  .pm-email-prose {
    padding-left: 20px;
  }
}

/* Beta 5 widgets foundation */
.nb-widget { overflow: hidden; }
.nb-widget p { display: flex; justify-content: space-between; gap: 10px; margin: 8px 0; }
.nb-widget p strong { font-size: 1.05rem; }
.nb-widget-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nb-widget-list li { display: grid; gap: 3px; padding-bottom: 9px; border-bottom: 1px solid rgba(148, 163, 184, .25); }
.nb-widget-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.nb-widget-list a { font-weight: 700; text-decoration: none; }
.nb-widget-list small { color: var(--muted, #64748b); }
.nb-widget-table { width: 100%; border-collapse: collapse; margin-top: 12px; font-size: .92rem; }
.nb-widget-table td { padding: 7px 4px; border-top: 1px solid rgba(148, 163, 184, .25); vertical-align: top; }
.nb-widget-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 2px 7px; background: rgba(45, 138, 99, .12); color: #1f6d4d; font-size: .75rem; font-weight: 700; }
.nb-mini-calendar { border: 1px solid rgba(148, 163, 184, .35); border-radius: 14px; padding: 10px; background: rgba(255,255,255,.72); }
.nb-mini-calendar__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.nb-mini-calendar__head span { color: var(--muted, #64748b); font-size: .8rem; }
.nb-mini-calendar__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.nb-mini-calendar__grid span { min-height: 24px; border-radius: 8px; display: grid; place-items: center; font-size: .82rem; }
.nb-mini-calendar__dow span { color: var(--muted, #64748b); font-weight: 700; font-size: .72rem; text-transform: uppercase; }
.nb-mini-calendar__grid .is-today { background: #2d8a63; color: #fff; font-weight: 800; }
.nb-mini-calendar__grid .is-muted { opacity: .35; }

/* Beta 5 Build 2 widget polish */
.nb-widget-area { display: grid; gap: 16px; }
.nb-widget-area--forum_index_top { margin: 0 0 18px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.nb-widget-area--forum_index_top .nb-widget { min-height: 100%; }
.nb-widget .nb-widget-badge--event { background: rgba(37, 99, 235, .12); color: #1d4ed8; }
.nb-widget .nb-widget-badge--holiday { background: rgba(220, 38, 38, .12); color: #b91c1c; }
.nb-widget .nb-widget-badge--birthday { background: rgba(147, 51, 234, .12); color: #7e22ce; }
.nb-mini-calendar__legend { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 8px; font-size: .72rem; color: var(--muted, #64748b); }
.nb-mini-calendar__grid span.has-items { position: relative; }
.nb-mini-calendar__grid span.has-items::after { content: ''; position: absolute; left: 50%; bottom: 3px; width: 4px; height: 4px; border-radius: 999px; transform: translateX(-50%); background: currentColor; opacity: .8; }
.nb-mini-calendar__grid span.is-today.has-items::after { background: #fff; }
@media (max-width: 760px) {
  .nb-widget-area--forum_index_top { grid-template-columns: 1fr; }
}

/* Beta 5 Build 6 UserCP/public profile restoration and expansion. */
.profile-status-line {
  margin: 10px auto 0;
  max-width: 220px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: rgba(255,255,255,.94);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  padding: 7px 10px;
}
.profile-identity-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}
.profile-identity-pills span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8faf8;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  padding: 6px 10px;
}
.profile-button.is-disabled {
  cursor: default;
  opacity: .72;
  background: #f8faf8;
}
.usercp-toggle-row {
  align-items: start;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 10px;
}
.usercp-toggle-row input { margin-top: 3px; width: auto; }
.usercp-toggle-row small { grid-column: 2; color: var(--muted); font-weight: 500; }

/* Beta 5 Build 11 public portal / CMS homepage foundation */
.portal-layout { display: grid; gap: 22px; padding-top: 24px; padding-bottom: 34px; }
.portal-hero { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, .9fr); gap: 22px; align-items: stretch; border: 1px solid var(--line); border-radius: 26px; padding: 28px; background: linear-gradient(135deg, rgba(45,138,99,.14), rgba(255,255,255,.95)); box-shadow: 0 18px 45px rgba(15,23,42,.08); }
.portal-eyebrow { margin: 0 0 8px; color: var(--green-dark); font-size: .78rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.portal-hero h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1; color: var(--text); }
.portal-hero p { max-width: 720px; color: var(--muted); font-size: 1.05rem; line-height: 1.7; }
.portal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.portal-actions .button { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 10px 16px; font-weight: 850; text-decoration: none; }
.portal-actions .button.primary { background: var(--green); color: #fff; box-shadow: 0 10px 22px rgba(45,138,99,.22); }
.portal-actions .button.secondary { border: 1px solid var(--line); background: #fff; color: var(--text); }
.portal-hero__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.portal-hero__stats div { border: 1px solid rgba(45,138,99,.18); border-radius: 18px; padding: 18px; background: rgba(255,255,255,.8); }
.portal-hero__stats strong { display: block; font-size: 1.8rem; line-height: 1; color: var(--green-dark); }
.portal-hero__stats span { color: var(--muted); font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.portal-grid { display: grid; gap: 18px; }
.portal-grid--top { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .75fr); }
.portal-main-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.portal-main-column, .portal-side-column { display: grid; gap: 18px; }
.portal-panel { border: 1px solid var(--line); border-radius: 22px; padding: 18px; background: var(--panel); box-shadow: 0 12px 30px rgba(15,23,42,.06); }
.portal-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.portal-panel__head h2 { margin: 0; font-size: 1.1rem; }
.portal-panel__head a { color: var(--green-dark); font-weight: 850; text-decoration: none; }
.portal-topic-list, .portal-event-list, .portal-member-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.portal-topic-list li, .portal-event-list li, .portal-member-list li { display: grid; gap: 4px; padding: 0 0 12px; border-bottom: 1px solid rgba(148,163,184,.24); }
.portal-topic-list li:last-child, .portal-event-list li:last-child, .portal-member-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.portal-topic-list a, .portal-event-list a, .portal-member-list a { color: var(--text); font-weight: 850; text-decoration: none; }
.portal-topic-list small, .portal-event-list small, .portal-member-list small { color: var(--muted); }
.portal-count-pill, .portal-event-type { width: fit-content; border-radius: 999px; padding: 3px 8px; font-size: .72rem; font-weight: 850; }
.portal-count-pill { background: rgba(45,138,99,.12); color: var(--green-dark); }
.portal-event-type--event { background: rgba(37,99,235,.12); color: #1d4ed8; }
.portal-event-type--holiday { background: rgba(220,38,38,.12); color: #b91c1c; }
.portal-empty { margin: 0; color: var(--muted); }
.nb-widget-area--portal_top { margin: 0; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

.portal-feature-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 18px; }
.portal-spotlight { background: linear-gradient(135deg, rgba(45,138,99,.10), rgba(255,255,255,.98)); }
.portal-spotlight h2 { margin: 0 0 8px; font-size: 1.35rem; }
.portal-spotlight p:not(.portal-eyebrow) { margin: 0 0 14px; color: var(--muted); line-height: 1.65; }
.portal-pill-link { display: inline-flex; align-items: center; justify-content: center; width: fit-content; border-radius: 999px; padding: 9px 14px; background: var(--green); color: #fff; font-weight: 850; text-decoration: none; }
.portal-quick-links__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.portal-quick-links__grid a { border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; color: var(--text); font-weight: 850; text-decoration: none; background: rgba(255,255,255,.72); }
@media (max-width: 900px) { .portal-feature-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .portal-quick-links__grid { grid-template-columns: 1fr; } }

@media (max-width: 900px) { .portal-hero, .portal-grid--top, .portal-main-layout { grid-template-columns: 1fr; } .portal-main-layout { gap: 16px; } }
@media (max-width: 560px) { .portal-hero { padding: 20px; } .portal-hero__stats { grid-template-columns: 1fr 1fr; } .portal-panel { padding: 15px; } }

/* Beta 5 Build 12 portal/CMS homepage controls and discovery blocks */
.portal-forum-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.portal-forum-list li { display: grid; gap: 4px; padding: 0 0 12px; border-bottom: 1px solid rgba(148,163,184,.24); }
.portal-forum-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.portal-forum-list a { color: var(--text); font-weight: 850; text-decoration: none; }
.portal-forum-list small { color: var(--muted); }
.portal-panel:has(.portal-forum-list) .portal-panel__head h2::after,
.portal-panel:has(.portal-member-list) .portal-panel__head h2::after { content: ''; display: inline-block; width: 6px; height: 6px; margin-left: 8px; border-radius: 999px; background: rgba(45,138,99,.55); vertical-align: middle; }

/* Beta 5 Build 14 portal highlight card expansion */
.portal-highlight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.portal-highlight-card { border: 1px solid var(--line); border-radius: 20px; padding: 18px; background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,248,.96)); box-shadow: 0 10px 24px rgba(15,23,42,.05); display: grid; gap: 10px; align-content: start; }
.portal-highlight-card h2 { margin: 0; font-size: 1.08rem; }
.portal-highlight-card p { margin: 0; color: var(--muted); line-height: 1.6; }
.portal-highlight-card .portal-pill-link { margin-top: 4px; }
@media (max-width: 900px) { .portal-highlight-grid { grid-template-columns: 1fr; } }

/* Beta5 Build 15: portal layout manager + CMS/news cards */
.portal-main-layout--single-column { display: block; }
.portal-main-layout--single-column .portal-main-column { max-width: 100%; }
.portal-grid--featured { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; align-items: stretch; }
.portal-grid--featured .portal-panel { height: 100%; }
.portal-news-list, .cms-card-list { display: grid; gap: .85rem; }
.portal-news-item, .cms-card { border: 1px solid rgba(148, 163, 184, .25); border-radius: 18px; padding: 1rem; background: rgba(255,255,255,.72); }
.portal-news-item h3, .cms-card h2 { margin: 0 0 .35rem; }
.portal-news-item p, .cms-card p { margin: 0 0 .65rem; color: var(--muted, #64748b); }
.portal-muted { color: var(--muted, #64748b); }
.cms-article-image { width: 100%; max-height: 360px; object-fit: cover; border-radius: 18px; margin: 1rem 0; }
.cms-body { font-size: 1rem; line-height: 1.75; margin: 1rem 0; }
@media (max-width: 760px) { .portal-grid--featured { grid-template-columns: 1fr; } }

/* Beta 5 Build 16 portal/CMS page polish */
.portal-page-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.portal-page-list li{padding:.8rem;border:1px solid rgba(127,127,127,.18);border-radius:14px;background:rgba(255,255,255,.04)}.portal-page-list a{font-weight:700;text-decoration:none}.portal-page-list small{display:block;margin-top:.35rem;opacity:.75}.cms-page-summary{font-size:1.05rem}.portal-bottom-widgets{margin-top:1.25rem}.nb-widget-area--portal_bottom{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.nb-widget-area--portal_main{margin:1rem 0}.portal-side-column .nb-widget{margin-bottom:1rem}

/* Beta 5 Build 20: NBCode / legacy BBCode rendering */
.nbcode-align-left{display:block;text-align:left}.nbcode-align-center{display:block;text-align:center}.nbcode-align-right{display:block;text-align:right}.nbcode-align-justify{display:block;text-align:justify}.nbcode-image{max-width:100%;height:auto;border-radius:10px;border:1px solid rgba(148,163,184,.35)}.nbcode-list{margin:.75rem 0 .75rem 1.5rem}.nbcode-code{margin:1rem 0;border:1px solid rgba(148,163,184,.35);border-radius:12px;overflow:hidden;background:#0f172a;color:#e2e8f0}.nbcode-code figcaption{padding:.45rem .75rem;background:rgba(255,255,255,.08);font-size:.8rem;font-weight:700}.nbcode-code pre{margin:0;padding:1rem;overflow:auto}.nbcode-spoiler{margin:.75rem 0;border:1px solid rgba(148,163,184,.45);border-radius:12px;background:rgba(248,250,252,.75);padding:.75rem}.nbcode-spoiler summary{cursor:pointer;font-weight:700}.nbcode-label{display:inline-flex;align-items:center;border-radius:999px;padding:.15rem .55rem;font-size:.82em;font-weight:700;background:#e2e8f0;color:#0f172a}.nbcode-label-info{background:#dbeafe;color:#1e3a8a}.nbcode-label-warn,.nbcode-label-warning{background:#fef3c7;color:#92400e}.nbcode-label-success{background:#dcfce7;color:#166534}.nbcode-label-danger{background:#fee2e2;color:#991b1b}.quoted-post.nbcode-quote{border-left:4px solid #3b82f6;background:rgba(59,130,246,.08);border-radius:10px;padding:.75rem 1rem;margin:1rem 0}.quoted-post.nbcode-quote header{font-weight:700;margin-bottom:.4rem;color:#1e3a8a}

/* Beta 5 Build 21 search/discovery foundation */
.discovery-page .wrap { display: grid; gap: 18px; }
.discovery-hero { margin-top: 18px; }
.discovery-tabs { display: flex; flex-wrap: wrap; gap: 10px; }
.discovery-tabs a { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 999px; padding: 9px 14px; background: var(--panel); color: var(--text); font-weight: 850; text-decoration: none; }
.discovery-tabs a.is-active { background: var(--green); border-color: var(--green); color: #fff; box-shadow: 0 10px 22px rgba(45,138,99,.2); }
.discovery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.discovery-panel { min-width: 0; }
.discovery-topic-list .portal-count-pill { justify-self: start; }
.discovery-tag-cloud { display: flex; flex-wrap: wrap; gap: 10px; }
.discovery-tag-cloud a { display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(45,138,99,.18); border-radius: 999px; padding: 8px 12px; background: rgba(45,138,99,.08); color: var(--green-dark); font-weight: 850; text-decoration: none; }
.discovery-tag-cloud b { min-width: 24px; border-radius: 999px; padding: 2px 7px; background: rgba(255,255,255,.76); color: var(--text); text-align: center; }
.search-filter-grid input[name="min_replies"] { min-width: 0; }
@media (max-width: 860px) { .discovery-grid { grid-template-columns: 1fr; } }

/* Beta 5 Build 22: Advanced Downloads Center */
.downloads-hero { margin-bottom: 1.25rem; }
.download-search { display:flex; gap:.75rem; margin-top:1rem; flex-wrap:wrap; }
.download-search input { flex:1; min-width:220px; border:1px solid var(--border, #d8dee8); border-radius:14px; padding:.85rem 1rem; }
.download-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:1.25rem; align-items:start; }
.download-sidebar, .download-card, .download-detail, .download-review, .download-review-form { background:var(--card, #fff); border:1px solid var(--border, #d8dee8); border-radius:20px; box-shadow:0 12px 30px rgba(15,23,42,.06); }
.download-sidebar { padding:1rem; position:sticky; top:1rem; }
.download-sidebar h2 { margin-top:0; }
.download-category { display:flex; justify-content:space-between; gap:.75rem; padding:.75rem .85rem; border-radius:14px; text-decoration:none; color:inherit; border:1px solid transparent; }
.download-category:hover, .download-category.active { border-color:var(--accent, #2563eb); background:rgba(37,99,235,.08); }
.download-results { display:grid; gap:1rem; }
.download-card { display:flex; justify-content:space-between; gap:1rem; padding:1.1rem; align-items:center; }
.download-card h2 { margin:.15rem 0 .35rem; }
.download-card h2 a { color:inherit; text-decoration:none; }
.download-meta { display:flex; flex-wrap:wrap; gap:.5rem; margin:.75rem 0; }
.download-meta span { background:rgba(15,23,42,.06); border-radius:999px; padding:.35rem .65rem; font-size:.9rem; }
.download-detail { padding:1.4rem; }
.download-summary { font-size:1.08rem; color:var(--muted, #475569); }
.download-body { margin:1.25rem 0; line-height:1.65; }
.download-file-list { display:grid; gap:.7rem; margin:1rem 0; }
.download-file { display:flex; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid var(--border, #d8dee8); border-radius:16px; text-decoration:none; color:inherit; background:rgba(15,23,42,.025); }
.download-review-list { display:grid; gap:.85rem; margin:1rem 0; }
.download-review { padding:1rem; }
.download-review span { display:inline-block; margin-left:.5rem; color:var(--muted, #64748b); }
.download-review h3 { margin:.5rem 0; }
.download-review-form { padding:1rem; display:grid; gap:.75rem; margin-top:1rem; }
.download-review-form label { display:grid; gap:.35rem; font-weight:700; }
.download-review-form input, .download-review-form select, .download-review-form textarea { border:1px solid var(--border, #d8dee8); border-radius:14px; padding:.8rem; }
@media (max-width: 760px) { .download-layout { grid-template-columns:1fr; } .download-sidebar { position:static; } .download-card { display:block; } }

/* Build 25: Downloads public UX polish */
.download-breadcrumb { display:flex; align-items:center; gap:.5rem; margin:0 0 1rem; color:var(--muted, #64748b); font-size:.95rem; }
.download-breadcrumb a { color:inherit; text-decoration:none; }
.download-breadcrumb a:hover { color:var(--primary, #2563eb); }
.download-search select { border:1px solid var(--border, #d8dee8); border-radius:14px; padding:.85rem 1rem; background:var(--card, #fff); color:inherit; }
.download-stat-strip { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1rem; }
.download-stat-strip span { display:inline-flex; gap:.35rem; align-items:center; border:1px solid rgba(148,163,184,.35); border-radius:999px; padding:.45rem .75rem; background:rgba(255,255,255,.14); }
.download-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:0 0 1.25rem; }
.download-feature-card { overflow:hidden; background:var(--card, #fff); border:1px solid var(--border, #d8dee8); border-radius:22px; box-shadow:0 16px 34px rgba(15,23,42,.08); }
.download-feature-card img, .download-feature-placeholder { width:100%; height:140px; object-fit:cover; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#dbeafe,#f5f3ff); font-weight:800; color:#1e3a8a; }
.download-feature-card div:not(.download-feature-placeholder) { padding:1rem; }
.download-feature-card h2 { margin:.2rem 0 .5rem; }
.download-feature-card h2 a { color:inherit; text-decoration:none; }
.download-thumb { width:76px; height:76px; border-radius:18px; flex:0 0 76px; overflow:hidden; display:flex; align-items:center; justify-content:center; text-decoration:none; font-weight:900; background:#eff6ff; color:#2563eb; border:1px solid var(--border, #d8dee8); }
.download-thumb img { width:100%; height:100%; object-fit:cover; }
.download-card-main { flex:1; min-width:0; }
.download-featured-badge { display:inline-block; margin-left:.35rem; padding:.2rem .45rem; border-radius:999px; background:#fef3c7; color:#92400e; font-size:.75rem; font-weight:800; }
.download-side-panel { margin-top:1rem; border-top:1px solid var(--border, #d8dee8); padding-top:1rem; }
.download-side-panel h3 { margin:.1rem 0 .7rem; }
.download-compact-list { list-style:none; padding:0; margin:0; display:grid; gap:.65rem; }
.download-compact-list li { display:grid; gap:.15rem; }
.download-compact-list a { color:inherit; text-decoration:none; font-weight:700; }
.download-compact-list span { color:var(--muted, #64748b); font-size:.9rem; }
.download-results-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; background:var(--card, #fff); border:1px solid var(--border, #d8dee8); border-radius:18px; padding:.8rem 1rem; }
.download-results-toolbar div { display:grid; gap:.1rem; }
.download-results-toolbar span { color:var(--muted, #64748b); font-size:.9rem; }
.download-detail-image { width:100%; max-height:280px; object-fit:cover; border-radius:20px; margin-bottom:1rem; border:1px solid var(--border, #d8dee8); }
@media (max-width: 900px) { .download-feature-grid { grid-template-columns:1fr; } .download-results-toolbar { display:grid; } }

/* Build 27: UserCP Downloads submitter workflow */
.download-card-actions{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.download-submitter-note{margin-top:.75rem;padding:.75rem 1rem;border:1px solid rgba(245,158,11,.28);border-radius:14px;background:rgba(245,158,11,.08);color:inherit}.download-submit-form .usercp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.download-submit-form .wide{grid-column:1/-1}.download-attached-files{display:grid;gap:.5rem;margin:.75rem 0}.download-attached-files>div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .8rem;border:1px solid rgba(148,163,184,.25);border-radius:12px;background:rgba(148,163,184,.08)}@media(max-width:760px){.download-submit-form .usercp-form-grid{grid-template-columns:1fr}.download-card-actions{justify-content:flex-start}}


/* Beta 5 build41.23 moderator controls redesign: compact, no wireframe spacing. */
.moderator-drawer.moderator-panel-compact {
  top: 22px;
  right: 22px;
  bottom: auto;
  width: min(560px, calc(100vw - 28px));
  height: auto;
  max-height: calc(100vh - 44px);
  border: 1px solid rgba(90,147,89,.45);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--panel, #fff);
  box-shadow: -10px 18px 44px rgba(15,23,42,.24);
}
.moderator-panel-compact .moderator-drawer-header {
  padding: 16px 18px;
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  border-bottom: 1px solid rgba(255,255,255,.16);
}
.moderator-panel-compact .moderator-drawer-header > div { display: grid; gap: 2px; }
.moderator-panel-compact .moderator-kicker { color: rgba(255,255,255,.76); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.moderator-panel-compact .moderator-drawer-header strong { color: #fff; font-size: 18px; line-height: 1.15; }
.moderator-panel-compact .moderator-drawer-header button { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 999px; background: rgba(255,255,255,.14); font-size: 22px; line-height: 1; }
.moderator-panel-compact .moderator-drawer-header button:hover { background: rgba(255,255,255,.24); }
.moderator-panel-compact .moderator-drawer-body {
  padding: 16px;
  overflow-y: auto;
  background: linear-gradient(180deg, color-mix(in srgb, var(--panel, #fff) 92%, var(--green) 8%), var(--panel, #fff));
  display: block;
}
.moderator-panel-compact .moderator-summary {
  margin: 0 0 14px;
  padding: 13px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--green-dark);
  background: var(--panel, #fff);
  border-radius: 14px;
  box-shadow: 0 8px 18px rgba(15,23,42,.06);
}
.moderator-panel-compact .moderator-summary div { display: grid; gap: 3px; min-width: 0; }
.moderator-panel-compact .moderator-summary strong { color: var(--text); font-size: 15px; }
.moderator-panel-compact .moderator-summary span { color: var(--muted); font-size: 12px; line-height: 1.4; }
.moderator-panel-compact .moderator-summary em { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; background: color-mix(in srgb, var(--green) 14%, transparent); color: var(--green-dark); font-size: 11px; font-style: normal; font-weight: 800; }
.moderator-panel-compact .moderator-bulk-form { display: grid; gap: 12px; }
.moderator-panel-compact .moderator-section {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel, #fff);
  box-shadow: 0 8px 18px rgba(15,23,42,.05);
}
.moderator-panel-compact .moderator-section-title { margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.moderator-panel-compact .moderator-section-title span { width: 24px; height: 24px; border-radius: 999px; background: var(--green-dark); color: #fff; font-size: 12px; font-weight: 900; }
.moderator-panel-compact .moderator-section-title strong { font-size: 14px; color: var(--text); }
.moderator-panel-compact .moderator-select-all { width: 100%; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--panel, #fff) 88%, var(--green) 12%); }
.moderator-panel-compact .moderator-help { margin: 8px 0 0; font-size: 12px; color: var(--muted); }
.moderator-panel-compact .moderator-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.moderator-panel-compact .moderator-field { display: grid; gap: 6px; font-size: 12px; font-weight: 800; color: var(--text); }
.moderator-panel-compact .moderator-field-wide { grid-column: 1 / -1; }
.moderator-panel-compact .moderator-field select,
.moderator-panel-compact .moderator-field input {
  width: 100%;
  min-height: 40px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--text);
  padding: 8px 10px;
  font: inherit;
  font-weight: 600;
}
.moderator-panel-compact .moderator-actions-row { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding-top: 2px; }
.moderator-panel-compact .moderator-action { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; border-radius: 10px; padding: 9px 14px; font-size: 13px; font-weight: 900; text-align: center; }
.moderator-panel-compact .moderator-action-primary { width: auto; min-width: 210px; background: linear-gradient(135deg, var(--green), var(--green-dark)); color: #fff; border-color: var(--green-dark); }
.moderator-panel-compact .moderator-action-secondary { width: auto; background: var(--panel, #fff); border: 1px solid var(--line); color: var(--text); }
@media (max-width: 640px) {
  .moderator-drawer.moderator-panel-compact { top: 8px; right: 8px; width: calc(100vw - 16px); max-height: calc(100vh - 16px); border-radius: 14px; }
  .moderator-panel-compact .moderator-drawer-body { padding: 12px; }
  .moderator-panel-compact .moderator-summary { align-items: flex-start; flex-direction: column; }
  .moderator-panel-compact .moderator-form-grid { grid-template-columns: 1fr; }
  .moderator-panel-compact .moderator-actions-row { flex-direction: column; }
  .moderator-panel-compact .moderator-action,
  .moderator-panel-compact .moderator-action-primary,
  .moderator-panel-compact .moderator-action-secondary { width: 100%; }
}

/* Beta 5 date-build: configurable forum-view moderator controls. */
.forum-moderation-bar {
  margin: 14px 0 16px;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--line, #cbd8d0) 80%, var(--green, #69a969) 20%);
  border-radius: 12px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--panel, #fff) 92%, var(--green, #69a969) 8%), var(--panel, #fff));
  box-shadow: 0 8px 22px rgba(22, 32, 42, .08);
  display: grid;
  grid-template-columns: minmax(190px, 240px) 1fr;
  gap: 12px;
  align-items: center;
}
.forum-moderation-bar__label { display: flex; align-items: center; gap: 10px; min-width: 0; }
.forum-moderation-bar__label .moderator-gear-icon { width: 34px; height: 34px; border-radius: 999px; display: inline-grid; place-items: center; background: linear-gradient(135deg, var(--green, #69a969), var(--green-dark, #4e894e)); color: #fff; flex: 0 0 auto; }
.forum-moderation-bar__label .moderator-gear-icon svg { width: 17px; height: 17px; }
.forum-moderation-bar__label strong { display: block; color: var(--text, #16202a); font-size: 14px; line-height: 1.2; }
.forum-moderation-bar__label small { display: block; color: var(--muted, #60717a); font-size: 12px; margin-top: 2px; }
.forum-moderation-bar__form { display: grid; grid-template-columns: auto minmax(160px, 1fr) minmax(160px, 1fr) minmax(170px, 1.1fr) auto; gap: 9px; align-items: end; }
.forum-moderation-bar__form label { display: grid; gap: 4px; color: var(--text, #26363e); font-size: 11px; font-weight: 800; }
.forum-moderation-bar__select-all { align-self: center; display: inline-flex !important; align-items: center; gap: 7px !important; white-space: nowrap; padding: 9px 10px; border-radius: 9px; background: color-mix(in srgb, var(--panel, #fff) 85%, var(--green, #69a969) 15%); }
.forum-moderation-bar__form select,
.forum-moderation-bar__form input { min-height: 38px; border: 1px solid var(--line, #cbd8d0); border-radius: 9px; padding: 8px 10px; background: var(--panel, #fff); color: var(--text, #16202a); font: inherit; }
.forum-moderation-bar__form button { min-height: 38px; border: 1px solid var(--green-dark, #4e894e); border-radius: 9px; padding: 8px 16px; background: linear-gradient(135deg, var(--green, #69a969), var(--green-dark, #4e894e)); color: #fff; font-weight: 900; cursor: pointer; }
@media (max-width: 980px) {
  .forum-moderation-bar { grid-template-columns: 1fr; }
  .forum-moderation-bar__form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .forum-moderation-bar__select-all,
  .forum-moderation-bar__reason,
  .forum-moderation-bar__form button { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .forum-moderation-bar__form { grid-template-columns: 1fr; }
}
