/* LIvVE Community Forums - forum-specific layer.
   The main site theme is loaded first from /assets/livve-account.css. */
:root {
    --forum-muted: #66676b;
    --forum-soft: #f7f7f8;
    --forum-soft-pink: var(--theme-accent-soft);
    --forum-danger: #a52b42;
    --forum-success: #27723b;
    --forum-gold: #8a6810;
}

.forum-site-page .page-shell { padding-bottom: 30px; }

.forum-site-panel {
    margin-top: 18px;
    overflow: hidden;
    background: var(--paper);
    border-radius: 13px;
    box-shadow: var(--shadow);
}

.forum-header {
    color: var(--ink);
    background: #fff;
    border-bottom: 1px solid var(--line);
}

.forum-header-inner {
    min-height: 66px;
    padding: 13px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border-top: 5px solid var(--pink);
}

.forum-brand {
    color: #171717;
    text-decoration: none;
    font-size: 23px;
    font-weight: 850;
    letter-spacing: -.02em;
}
.forum-brand:hover { color: var(--pink-dark); }

.forum-nav {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.forum-nav a,
.forum-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #4f4f53 !important;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.15;
}
/* Normalize real form buttons so the forum login submit controls match the
   anchor-based forum buttons exactly instead of inheriting browser defaults. */
.forum-login-box .forum-form-actions button.forum-button {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    margin: 0;
    font-family: inherit;
    cursor: pointer;
}

.forum-nav a:hover,
.forum-nav a:focus-visible,
.forum-button:hover,
.forum-button:focus-visible {
    background: #f3f3f4;
    border-color: var(--line);
    color: var(--pink-dark) !important;
    outline: none;
}

.forum-userbar {
    padding: 7px 18px;
    border-top: 1px solid #ececef;
    background: var(--forum-soft-pink);
    color: #55555a;
    text-align: center;
    font-size: 12px;
}

.forum-shell {
    width: 100%;
    margin: 0;
    padding: 18px;
}

.forum-panel {
    margin-bottom: 16px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 11px;
}
.forum-panel:last-child { margin-bottom: 0; }
.forum-panel > h1,
.forum-panel > h2,
.forum-panel-title {
    margin: 0;
    padding: 11px 14px;
    background: #f7f7f8;
    border-bottom: 1px solid var(--line);
    color: #212124;
    font-size: 16px;
    font-weight: 850;
}
.forum-panel > h1 { font-size: 20px; }
.forum-panel > p,
.forum-panel > .forum-pad { padding-left: 14px; padding-right: 14px; }
.forum-pad { padding-top: 12px; padding-bottom: 12px; }

/* Keep only the two forum activity panels compact. This trims another
   10px from their content area without changing typography or other panels. */
.forum-activity-panel > h2 {
    padding-top: 0.5px;
    padding-bottom: 0.5px;
}
.forum-activity-panel > .forum-pad {
    padding-top: 0;
    padding-bottom: 0;
}
.forum-activity-panel > .forum-pad > p {
    margin-top: calc(1em - 5px);
    margin-bottom: calc(1em - 5px);
}

/* Slim footer control for collapsing individual forum panels. */
.forum-panel-collapse-toggle {
    display: block;
    width: 100%;
    margin: 0;
    padding: 5px 12px;
    border: 0;
    border-top: 1px solid var(--line);
    background: #fafafa;
    color: #67676c;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
}
.forum-panel-collapse-toggle:hover {
    background: #f3f3f4;
    color: #333338;
}
.forum-panel-collapse-toggle:focus-visible {
    outline: 2px solid #6aa7a1;
    outline-offset: -2px;
}
.forum-panel-collapsed > h2 {
    border-bottom: 0;
}

.forum-flash {
    margin-bottom: 14px;
    padding: 10px 13px;
    border: 1px solid;
    border-radius: 8px;
}
.forum-flash.success { background: #eff9f1; border-color: #a2cfaa; color: var(--forum-success); }
.forum-flash.error { background: #fff0f3; border-color: #dda4b0; color: #8f263d; }

.forum-table { width: 100%; border-collapse: collapse; }

/* Keep the forum index statistics columns in the exact same position in every panel.
   Category names/descriptions may vary in length, but Topics, Posts and Last post
   use fixed desktop widths so separate forum panels remain visually aligned. */
.forum-category-table {
    table-layout: fixed;
}
.forum-category-table tbody tr.forum-category-select-row {
    cursor: pointer;
}
.forum-category-table th:nth-child(2),
.forum-category-table td:nth-child(2),
.forum-category-table th:nth-child(3),
.forum-category-table td:nth-child(3) {
    width: 86px;
}
.forum-category-table th:nth-child(4),
.forum-category-table td:nth-child(4) {
    width: 300px;
}
.forum-table th {
    padding: 8px 10px;
    background: var(--forum-soft-pink);
    border-bottom: 1px solid var(--line);
    color: #555057;
    text-align: left;
    font-size: 12px;
    font-weight: 850;
}
.forum-table td {
    padding: 11px 10px;
    border-bottom: 1px solid #e5e5e8;
    vertical-align: top;
}
.forum-table tr:last-child td { border-bottom: 0; }
.forum-table tbody tr:nth-child(even) { background: #fcfcfd; }
.forum-table tbody tr:hover { background: var(--theme-accent-soft); }

.forum-title-link {
    color: #222225;
    text-decoration: none;
    font-size: 15px;
    font-weight: 850;
}
.forum-title-link:hover { color: var(--pink-dark); text-decoration: underline; }
.forum-description { margin-top: 3px; color: var(--forum-muted); }
.forum-meta { color: var(--forum-muted); font-size: 12px; }

.forum-category-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}
.forum-category-icon {
    display: flex;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid #e5c8d2;
    border-radius: 10px;
    background: var(--forum-soft-pink);
    color: var(--pink-dark);
    font-size: 20px;
}
.forum-category-copy { min-width: 0; }

.forum-panel > h1.forum-category-heading {
    display: flex;
    align-items: center;
    gap: 9px;
}
.forum-category-heading > i,
.forum-category-heading > .livve-fa-icon {
    width: 17px;
    height: 17px;
    color: var(--pink-dark);
    font-size: 17px;
}

.forum-badge {
    display: inline-block;
    margin-left: 4px;
    padding: 2px 6px;
    border-radius: 999px;
    background: #ededf0;
    color: #55555a;
    font-size: 11px;
    font-weight: 800;
}
.forum-badge.locked { background: #f6dfe4; color: #8d2f43; }
.forum-badge.pinned { background: #f5ecd0; color: #755b16; }
.forum-badge.plus { background: #fff0b8; color: #70570d; }

.forum-lock-indicator {
    display: inline-flex;
    position: relative;
    top: -2px;
    align-items: center;
    justify-content: center;
    margin-right: 0;
    color: #8d2f43;
    font-size: 13px;
    line-height: 1;
    vertical-align: middle;
}


/* Fine-tune the locked-topic padlock independently on category/topic views. */
.forum-panel > h1 .forum-lock-indicator { top: -3px; left: -4px; }
.forum-topic-title-line .forum-lock-indicator { top: -1px; }


.forum-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    margin: 0 0 12px;
}
/* Keep only the forum-home guest actions 2px higher without altering other action rows. */
.forum-guest-actions .forum-button {
    position: relative;
    top: -2px;
}
.forum-actions .forum-button.danger,
.forum-button.danger {
    background: #fff2f4;
    border-color: #deb0b9;
    color: var(--forum-danger) !important;
}
.forum-actions .forum-button.danger:hover,
.forum-button.danger:hover { background: #ffe6eb; }

/* Compact breadcrumb navigation used above forum content. */
.forum-crumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 12px;
    padding: 8px 10px;
    border: 1px solid #dddddf;
    border-radius: 8px;
    background: #f7f7f8;
    color: #69696e;
    font-size: 12px;
    line-height: 1.25;
}
.forum-crumbs a {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 8px;
    border: 1px solid #d8d8dc;
    border-radius: 6px;
    background: #fff;
    color: #444449;
    text-decoration: none;
    font-weight: 800;
}
.forum-crumbs a:hover,
.forum-crumbs a:focus-visible {
    border-color: var(--pink);
    background: var(--forum-soft-pink);
    color: var(--pink-dark);
    outline: none;
}
.forum-crumb-sep {
    color: #a3a3a8;
    font-size: 16px;
    line-height: 1;
}
.forum-crumb-current {
    min-width: 0;
    color: #29292d;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.forum-form { padding: 14px; }
.forum-form label { display: block; margin: 0 0 12px; color: #3e3e42; font-weight: 800; }
.forum-form input[type=text],
.forum-form input[type=password],
.forum-form input[type=number],
.forum-form textarea,
.forum-form select {
    width: 100%;
    margin-top: 5px;
    padding: 9px 10px;
    border: 1px solid #c7c7ca;
    border-radius: 7px;
    background: #fff;
    color: #171719;
    font: inherit;
}
.forum-form input:focus,
.forum-form textarea:focus,
.forum-form select:focus {
    border-color: var(--pink);
    outline: 3px solid rgba(255,31,98,.10);
}
.forum-form textarea { min-height: 180px; resize: vertical; }
.forum-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.forum-form-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.forum-editor-field { margin: 0 0 12px; }
.forum-help { margin-top: 4px; color: var(--forum-muted); font-size: 12px; font-weight: 400; }

.forum-post {
    display: grid;
    grid-template-columns: 185px minmax(0, 1fr);
    border-bottom: 1px solid #e1e1e4;
}
.forum-post:last-child { border-bottom: 0; }
.forum-post-user {
    padding: 14px;
    background: var(--forum-soft-pink);
    border-right: 1px solid #e1e1e4;
    text-align: center;
}
.forum-post-user img {
    display: block;
    width: 96px;
    height: 96px;
    margin: 0 auto;
    object-fit: cover;
    padding: 2px;
    background: #fff;
    border: 1px solid #c7c7ca;
    border-radius: 7px;
}
.forum-post-user strong {
    display: block;
    margin-top: 8px;
    color: #28282b;
    word-break: break-word;
}
.forum-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin-top: 3px;
    color: #626267;
    font-size: 12px;
}
.forum-rank-inline {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.forum-rank-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    vertical-align: middle;
}
.forum-plus { margin-top: 4px; color: #7b5b00; font-size: 11px; font-weight: 850; }
.forum-free { margin-top: 4px; color: #76767b; font-size: 11px; }
.forum-post-main { min-width: 0; }
.forum-post-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 10px;
    background: #fafafa;
    border-bottom: 1px solid #e6e6e8;
    color: #6b6b70;
    font-size: 12px;
}
.forum-post-body { min-height: 118px; padding: 17px; overflow-wrap: anywhere; white-space: normal; }
.forum-post-actions { padding: 0 12px 10px; text-align: right; font-size: 12px; }
.forum-post-actions a { margin-left: 10px; color: var(--pink-dark); }

.forum-pagination { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; margin: 10px 0; }
.forum-pagination a,
.forum-pagination span {
    padding: 4px 8px;
    border: 1px solid #c7c7ca;
    border-radius: 6px;
    background: #fff;
    color: #55555a;
    text-decoration: none;
}
.forum-pagination a:hover { color: var(--pink-dark); border-color: #d7a9b8; }
.forum-pagination .current { background: var(--pink); color: #fff; border-color: var(--pink); font-weight: 850; }

.forum-empty { padding: 24px; color: #747479; text-align: center; }
.forum-admin-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.forum-admin-card { padding: 12px; border: 1px solid #d9d9dc; border-radius: 8px; background: #fafafa; }
.forum-admin-card h3 { margin: 0 0 8px; color: #333337; }
.forum-admin-card .forum-form { padding: 0; }
.forum-small { color: var(--forum-muted); font-size: 12px; }
code { padding: 1px 4px; border: 1px solid #dddde0; border-radius: 4px; background: #f4f4f5; }
.forum-login-box { max-width: 520px; margin: 0 auto; }
.forum-mod-box { padding: 12px; background: #fafafa; border-top: 1px solid #e1e1e4; }
.forum-inline { display: inline-flex; gap: 6px; align-items: center; }
.forum-mod-layout {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.forum-mod-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
    margin-left: auto;
    transform: translateY(-8px);
}
.forum-mod-actions > strong {
    margin-right: 2px;
    color: #55555a;
    font-size: 12px;
}

/* Explicit control spacing requested for moderation/admin actions. */
.forum-move-topic-form {
    display: flex;
    width: max-content;
    max-width: 100%;
    align-items: center;
    gap: 8px;
}
.forum-move-topic-form select {
    width: auto;
    max-width: min(420px, 100%);
}
.forum-move-topic-form .forum-button {
    position: relative;
    top: 1px;
}
.forum-delete-category-form { margin-top: 10px; }
.forum-topic-starter-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.forum-topic-starter-avatar {
    display: block;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    object-fit: cover;
    padding: 1px;
    background: #fff;
    border: 1px solid #c7c7ca;
    border-radius: 5px;
}
.forum-topic-starter-copy {
    min-width: 0;
}
.forum-topic-title-line {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    min-width: 0;
}
.forum-topic-starter-copy .forum-meta {
    margin-top: 3px;
}

.forum-last-post-wrap {
    display: grid;
    grid-template-columns: 34px minmax(70px, 1fr);
    align-items: center;
    column-gap: 8px;
    row-gap: 2px;
    min-width: 0;
}
.forum-last-post-avatar {
    grid-column: 1;
    grid-row: 1;
    display: block;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    object-fit: cover;
    padding: 1px;
    background: #fff;
    border: 1px solid #c7c7ca;
    border-radius: 5px;
}
.forum-last-post-copy {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    line-height: 1.25;
}
.forum-last-post-copy > a {
    display: block;
    overflow: hidden;
    color: #333337;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 750;
}
.forum-last-post-copy > a:hover { color: var(--pink-dark); }
.forum-last-post-time {
    grid-column: 1 / -1;
    grid-row: 2;
    padding-left: 42px;
    color: var(--forum-muted);
    font-size: 12px;
    line-height: 1.25;
    text-align: left;
    white-space: nowrap;
}
.forum-count { text-align: center; white-space: nowrap; }
.forum-last { min-width: 275px; }

@media (max-width: 760px) {
    .forum-category-table { table-layout: auto; }
    .forum-header-inner { align-items: flex-start; flex-direction: column; }
    .forum-nav { justify-content: flex-start; }
    .forum-form-row { grid-template-columns: 1fr; }
    .forum-post { grid-template-columns: 1fr; }
    .forum-post-user { border-right: 0; border-bottom: 1px solid #e1e1e4; text-align: left; }
    .forum-post-user img { width: 64px; height: 64px; float: left; margin: 0 12px 0 0; }
    .forum-post-user strong { padding-top: 4px; }
    .forum-mod-layout,
    .forum-mod-actions { align-items: stretch; flex-direction: column; }
    .forum-mod-actions { margin-left: 0; }
    .forum-inline,
    .forum-move-topic-form { width: 100%; flex-wrap: wrap; }
    .forum-move-topic-form select { flex: 1 1 180px; }
    .forum-table .forum-count,
    .forum-table .forum-last { display: none; }
}

/* Forum administration: compact navigation and rank-aware permissions. */
.forum-admin-tabs {
    display: flex;
    gap: 7px;
    margin: 0 0 14px;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f7f7f8;
    flex-wrap: wrap;
}
.forum-admin-tabs a {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    gap: 7px;
    padding: 7px 11px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: #55555a;
    text-decoration: none;
    font-size: 12px;
    font-weight: 850;
}
.forum-admin-tabs a:hover,
.forum-admin-tabs a:focus-visible {
    border-color: #dfc1cb;
    background: #fff;
    color: var(--pink-dark);
    outline: none;
}
.forum-admin-tabs a.active {
    border-color: #e4aabd;
    background: var(--forum-soft-pink);
    color: var(--pink-dark);
}
.forum-admin-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 12px;
}
.forum-admin-editor { margin-bottom: 14px; }
.forum-admin-table-wrap { width: 100%; overflow-x: auto; }
.forum-admin-category-table { min-width: 840px; }
.forum-admin-category-table td { vertical-align: middle; }
.forum-admin-category-name {
    display: flex;
    min-width: 260px;
    align-items: flex-start;
    gap: 9px;
}
.forum-admin-category-name > i,
.forum-admin-category-name > .livve-fa-icon {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    color: var(--pink-dark);
    text-align: center;
}
.forum-admin-actions-col { width: 1%; white-space: nowrap; }
.forum-admin-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
}
.forum-admin-row-actions .forum-button { min-height: 30px; padding: 5px 8px; }
.forum-admin-delete-inline { margin: 0; }
.forum-admin-delete-inline .forum-button[disabled] {
    cursor: not-allowed;
    opacity: .45;
}
.forum-check {
    display: inline-flex !important;
    align-items: center;
    gap: 7px;
}

.forum-permission-guide .forum-access-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 12px;
}
.forum-access-grid > div {
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid #e0e0e3;
    border-radius: 8px;
    background: #fafafa;
}
.forum-access-grid strong {
    display: block;
    margin-bottom: 3px;
    color: #333337;
    font-size: 12px;
}
.forum-access-grid span {
    display: block;
    color: var(--forum-muted);
    font-size: 11px;
    line-height: 1.35;
}
.forum-permissions-form { padding: 0; }
.forum-permissions-table { min-width: 820px; }
.forum-permissions-table td { vertical-align: middle; }
.forum-permissions-table th:first-child,
.forum-permissions-table td:first-child { width: 28%; }
.forum-permissions-table select {
    width: 100%;
    min-width: 240px;
    padding: 7px 8px;
    border: 1px solid #c7c7ca;
    border-radius: 7px;
    background: #fff;
    color: #222225;
    font: inherit;
}
.forum-permissions-table select:focus {
    border-color: var(--pink);
    outline: 3px solid rgba(255,31,98,.10);
}
.forum-permissions-save {
    display: flex;
    justify-content: flex-end;
    padding: 11px 12px;
    border-top: 1px solid var(--line);
    background: #fafafa;
}
.forum-log-table { min-width: 850px; }

@media (max-width: 760px) {
    .forum-admin-tabs { flex-direction: column; }
    .forum-admin-tabs a { width: 100%; }
    .forum-admin-toolbar { align-items: stretch; flex-direction: column; }
    .forum-admin-toolbar .forum-button { width: 100%; }
    .forum-permission-guide .forum-access-grid { grid-template-columns: 1fr; }
}

/* Rich post editor and safe rendered message formatting. */
.forum-form-row-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.forum-editor { position: relative; display: block; }
.forum-editor-toolbar {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: nowrap;
    padding: 7px;
    border: 1px solid #cfcfd3;
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    background: #f6f6f7;
    white-space: nowrap;
}
.forum-editor-toolbar > * { flex: 0 0 auto; }
.forum-editor-toolbar button,
.forum-editor-toolbar select {
    min-height: 31px;
    margin: 0;
    padding: 5px 8px;
    border: 1px solid #c9c9cd;
    border-radius: 6px;
    background: #fff;
    color: #333337;
    font: inherit;
    font-size: 12px;
}
.forum-editor-toolbar button { min-width: 31px; cursor: pointer; }
.forum-editor-toolbar button:hover,
.forum-editor-toolbar button:focus-visible,
.forum-editor-toolbar select:focus {
    border-color: var(--pink);
    color: var(--pink-dark);
    outline: 2px solid rgba(255,31,98,.09);
}
.forum-editor > textarea {
    display: block;
    width: 100%;
    min-height: 240px;
    border-radius: 0 0 8px 8px !important;
    resize: vertical;
}
.forum-emoji-trigger { min-width: auto !important; }
.forum-emoji-window {
    position: absolute;
    z-index: 30;
    top: 46px;
    right: 0;
    width: min(430px, 96%);
    padding: 9px;
    border: 1px solid #c9c9cd;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(0,0,0,.17);
}
.forum-emoji-window[hidden] { display: none; }
.forum-emoji-window-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 7px;
}
.forum-emoji-window-head button {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 6px;
    background: #f1f1f3;
    cursor: pointer;
    font-size: 19px;
    line-height: 1;
}
.forum-emoji-window input[type="search"] {
    width: 100%;
    margin: 0 0 8px;
    padding: 7px 9px;
    border: 1px solid #c9c9cd;
    border-radius: 6px;
}
.forum-emoji-grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(32px, 1fr));
    gap: 4px;
    max-height: 260px;
    overflow-y: auto;
}
.forum-emoji-grid button {
    display: grid;
    min-width: 0;
    min-height: 38px;
    place-items: center;
    padding: 4px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}
.forum-emoji-grid button:hover,
.forum-emoji-grid button:focus-visible { border-color: #e2a6b9; background: #fff4f7; outline: none; }
.forum-emoji-grid .em { margin: 0; font-size: 22px; }
.forum-post-emoji { margin: 0 .12em; vertical-align: -0.18em; }
.forum-quote {
    margin: 12px 0;
    padding: 9px 11px;
    border-left: 4px solid #d98ca5;
    background: #faf5f7;
    color: #454549;
}
.forum-quote-label { margin-bottom: 5px; color: #8e3e58; font-size: 11px; font-weight: 850; text-transform: uppercase; }
.forum-code {
    max-width: 100%;
    margin: 12px 0;
    padding: 10px;
    overflow: auto;
    border: 1px solid #d6d6da;
    border-radius: 7px;
    background: #f5f5f6;
    white-space: pre-wrap;
    word-break: break-word;
}
.forum-align-center { text-align: center; }
.forum-align-right { text-align: right; }
.forum-align-left { text-align: left; }
.forum-post-image-link { display: inline-block; max-width: 100%; }
.forum-post-image {
    display: block;
    max-width: min(100%, 900px);
    max-height: 720px;
    margin: 8px 0;
    border: 0;
    object-fit: contain;
}
.forum-video {
    position: relative;
    width: min(100%, 760px);
    margin: 10px 0;
    padding-top: min(56.25%, 430px);
    overflow: hidden;
    border-radius: 8px;
    background: #111;
}
.forum-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Compact board settings adapted from the useful controls in the legacy forum admin. */
.forum-setting-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.forum-setting-card {
    display: flex !important;
    align-items: flex-start;
    gap: 9px;
    padding: 11px;
    border: 1px solid #dedee1;
    border-radius: 8px;
    background: #fafafa;
    cursor: pointer;
}
.forum-setting-card input { margin-top: 3px; }
.forum-setting-card span { display: block; }
.forum-setting-card strong { display: block; margin-bottom: 3px; color: #333337; }
.forum-setting-card small { display: block; color: var(--forum-muted); line-height: 1.4; }
.forum-access-table { min-width: 720px; }
.forum-permissions-table { min-width: 1080px; }
.forum-permissions-table th:first-child,
.forum-permissions-table td:first-child { width: 20%; }

@media (max-width: 760px) {
    .forum-form-row-three,
    .forum-setting-grid { grid-template-columns: 1fr; }
    .forum-emoji-window { left: 0; right: auto; width: 100%; }
    .forum-emoji-grid { grid-template-columns: repeat(6, minmax(32px, 1fr)); }
}

/* Member profile cards, Likes and per-post utility actions. */
.forum-profile-link { color: inherit; text-decoration: none; }
.forum-profile-link:hover,
.forum-profile-link:focus-visible { color: var(--pink-dark); text-decoration: underline; outline: none; }
.forum-post-user-portrait { display: block; width: max-content; margin: 0 auto; }
.forum-post-user-portrait:hover { text-decoration: none; }

.forum-profile-popover {
    position: fixed;
    z-index: 1200;
    width: min(430px, calc(100vw - 20px));
    border: 1px solid #bfc0c5;
    border-radius: 2px;
    background: #f8f8f9;
    box-shadow: 0 8px 20px rgba(0,0,0,.28);
}
.forum-profile-popover[hidden] { display: none; }
.forum-profile-popover {
    height: auto;
    max-height: none;
}
.forum-profile-popover-content {
    height: auto;
}

.forum-profile-close {
    position: absolute;
    z-index: 2;
    top: 6px;
    right: 7px;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #77777d;
    cursor: pointer;
    font-size: 24px;
    line-height: 26px;
}
.forum-profile-close:hover { background: #ededf0; color: #333337; }
.forum-profile-popover-content { min-height: 0; }
.forum-profile-loading,
.forum-profile-error { padding: 56px 25px; color: var(--forum-muted); text-align: center; }
.forum-member-card { overflow: hidden; }
.forum-member-card-main {
    display: grid;
    grid-template-columns: 96px minmax(0,1fr);
    gap: 13px;
    padding: 10px 36px 10px 10px;
}
.forum-member-card-portrait {
    display: block;
    width: 96px;
    height: 96px;
    border: 1px solid #bfc0c5;
    border-radius: 50%;
    background: #fff;
    object-fit: cover;
}
.forum-member-card-copy { min-width: 0; }
.forum-member-card-copy h2 {
    margin: 1px 0 4px;
    color: var(--pink-dark);
    font-size: 22px;
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.forum-member-card-rank {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 22px;
    color: #343438;
    font-size: 12px;
}
.forum-member-plus-badge {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 10px;
    background: #8b6a00;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}
.forum-member-card-details { margin: 8px 0 0; font-size: 12px; }
.forum-member-card-details > div { display: flex; gap: 5px; margin-top: 3px; }
.forum-member-card-details dt { color: #77777d; }
.forum-member-card-details dd { margin: 0; color: #303034; }
.forum-member-card-stats {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    border-top: 1px solid #d1d1d5;
    background: #fff;
}
.forum-member-card-stats > div { padding: 9px 10px; text-align: center; }
.forum-member-card-stats > div + div { border-left: 1px solid #e0e0e3; }
.forum-member-card-stats span { display: block; margin-bottom: 2px; color: #7b7b82; font-size: 11px; }
.forum-member-card-stats strong { display: block; color: #2f2f33; font-size: 14px; }
.forum-member-profile-page .forum-member-card { max-width: 540px; margin: 20px auto; border: 1px solid #cfcfd3; box-shadow: 0 4px 15px rgba(0,0,0,.10); }

.forum-post-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 32px;
}
.forum-post-action-links { display: inline-flex; align-items: center; justify-content: flex-end; gap: 10px; margin-left: auto; }
.forum-post-action-links a { margin-left: 0; }
.forum-like-form { margin: 0; }
.forum-post-action-button {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pink-dark);
    cursor: pointer;
    font: inherit;
}
.forum-post-action-button:hover,
.forum-post-action-button:focus-visible { text-decoration: underline; outline: none; }
.forum-post-action-button.active { font-weight: 800; }
.forum-like-count { color: #77777d; }
.forum-post-edited { margin-right: auto; }

.forum-last-post-copy .forum-last-post-time {
    display: block;
    margin-top: 2px;
    color: var(--forum-muted);
    font-size: 11px;
    text-decoration: none;
}
.forum-last-post-copy .forum-last-post-time:hover { color: var(--pink-dark); text-decoration: underline; }

@media (max-width: 560px) {
    .forum-profile-popover { left: 10px !important; right: 10px; width: auto; }
    .forum-member-card-main { grid-template-columns: 72px minmax(0,1fr); padding-right: 34px; }
    .forum-member-card-portrait { width: 72px; height: 72px; }
    .forum-member-card-copy h2 { font-size: 19px; }
    .forum-post-actions { align-items: flex-start; flex-direction: column; }
    .forum-post-action-links { width: 100%; justify-content: flex-end; flex-wrap: wrap; }
}

/* Post Like summary strip and full liker list. */
.forum-like-summary {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 7px 4px 4px;
    padding: 9px 11px;
    border-radius: 4px;
    background: #f1f1f3;
    color: #303036;
    font-size: 12px;
    line-height: 1.35;
    text-decoration: none;
}
.forum-like-summary:hover,
.forum-like-summary:focus-visible {
    background: #e9e9ec;
    color: var(--pink-dark);
    text-decoration: none;
    outline: 1px solid #d2d2d7;
}
.forum-like-summary-icon { flex: 0 0 auto; font-size: 16px; }
.forum-like-summary-text { min-width: 0; overflow-wrap: anywhere; }

html.forum-modal-open,
body.forum-modal-open { overflow: hidden; }
.forum-likes-modal {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: grid;
    place-items: center;
    padding: 18px;
}
.forum-likes-modal[hidden] { display: none; }
.forum-likes-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.62);
}
.forum-likes-dialog {
    position: relative;
    z-index: 1;
    width: min(690px, calc(100vw - 28px));
    max-height: min(520px, calc(100vh - 36px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #aeb0b7;
    border-radius: 4px;
    background: #f8f8fa;
    box-shadow: 0 14px 40px rgba(0,0,0,.34);
}
.forum-likes-dialog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 13px;
    border-bottom: 1px solid #cfd0d5;
    background: #f2f2f5;
}
.forum-likes-dialog-head h2 {
    margin: 0;
    color: #536a94;
    font-size: 19px;
    line-height: 1.2;
}
.forum-likes-close {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #777b84;
    cursor: pointer;
    font-size: 26px;
    line-height: 28px;
}
.forum-likes-close:hover,
.forum-likes-close:focus-visible { background: #e2e2e7; color: #303036; outline: none; }
.forum-likes-dialog-content {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 410px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    background: #fff;
}
.forum-likes-loading,
.forum-likes-empty { padding: 40px 22px; color: var(--forum-muted); text-align: center; }
.forum-likes-list { background: #fff; }
.forum-likes-person {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr) auto 30px;
    align-items: center;
    gap: 10px;
    min-height: 68px;
    padding: 8px 12px;
    border-bottom: 1px solid #dedfe3;
}
.forum-likes-person:last-child { border-bottom: 0; }
.forum-likes-person-portrait {
    display: block;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    overflow: hidden;
    background: #eeeef1;
}
.forum-likes-person-portrait img { display: block; width: 42px; height: 42px; object-fit: cover; }
.forum-likes-person-copy { min-width: 0; }
.forum-likes-person-copy > strong { display: block; margin-bottom: 2px; font-size: 12px; }
.forum-likes-person-rank {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    color: #5f6169;
    font-size: 10px;
}
.forum-likes-plus {
    padding: 1px 5px;
    border-radius: 8px;
    background: #8b6a00;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
}
.forum-likes-person-time { color: #666a73; font-size: 10px; white-space: nowrap; }
.forum-likes-person-icon { font-size: 22px; }
.forum-likes-page .forum-likes-list { border-top: 1px solid #dedfe3; }

/* Member profile popovers must stay above the Likes dialog. */
.forum-profile-popover { z-index: 1400; }

@media (max-width: 560px) {
    .forum-likes-modal { padding: 8px; }
    .forum-likes-dialog { width: calc(100vw - 16px); max-height: min(520px, calc(100vh - 16px)); }
    .forum-likes-dialog-content { max-height: calc(100vh - 100px); }
    .forum-likes-person { grid-template-columns: 38px minmax(0,1fr) 26px; gap: 8px; }
    .forum-likes-person-portrait,
    .forum-likes-person-portrait img { width: 38px; height: 38px; }
    .forum-likes-person-time { grid-column: 2 / 3; grid-row: 2; margin-top: -10px; white-space: normal; }
    .forum-likes-person-icon { grid-column: 3; grid-row: 1 / span 2; }
}

/* Compact topic author details: the portrait is display-only; only the name opens the member card. */
.forum-post-user-portrait {
    display: block;
    width: max-content;
    margin: 0 auto;
}
.forum-post-user-name {
    display: block;
    margin-top: 8px;
    color: #28282b;
    word-break: break-word;
}
.forum-post-user-name .forum-profile-link {
    display: inline;
}
.forum-post-user-rankline {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 3px;
    color: #626267;
    font-size: 12px;
}
.forum-post-user-rankline .forum-rank {
    margin-top: 0;
}
.forum-post-user-plus {
    color: #7b5b00;
    font-size: 11px;
    font-weight: 850;
}
.forum-post-user-stats {
    margin: 12px 0 0;
    padding: 9px 0 0;
    border-top: 1px solid rgba(0,0,0,.10);
    text-align: left;
    font-size: 11px;
}
.forum-post-user-stats > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 2px 0;
}
.forum-post-user-stats dt {
    margin: 0;
    color: #74747a;
    font-weight: 600;
}
.forum-post-user-stats dd {
    margin: 0;
    color: #28282b;
    font-weight: 700;
    text-align: right;
}
@media (max-width: 760px) {
    .forum-post-user-portrait {
        float: left;
        margin: 0 12px 0 0;
    }
    .forum-post-user-name,
    .forum-post-user-rankline {
        text-align: left;
        justify-content: flex-start;
    }
    .forum-post-user-stats {
        clear: both;
        padding-top: 8px;
    }
}

/* Post footer actions and reaction strip - compact forum-style layout. */
.forum-post-actions {
    padding: 0 12px 10px;
    align-items: center;
}
.forum-post-meta-actions {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    margin-right: auto;
}
.forum-post-report-button {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #b9bcc4;
    cursor: pointer;
    font: inherit;
}
.forum-post-report-button:hover,
.forum-post-report-button:focus-visible {
    color: #697184;
    text-decoration: underline;
    outline: none;
}
.forum-post-action-links {
    gap: 6px;
}
.forum-post-action-links .forum-post-action-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 31px;
    margin: 0;
    padding: 5px 10px;
    border: 1px solid #c6c9d0;
    border-radius: 5px;
    background: #fff;
    color: #4f4f53;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}
.forum-post-action-links .forum-post-action-control:hover,
.forum-post-action-links .forum-post-action-control:focus-visible {
    border-color: #aeb3bd;
    background: #f3f3f4;
    color: #33363d;
    text-decoration: none;
    outline: none;
}
.forum-post-action-links .forum-post-primary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 31px;
    margin: 0;
    padding: 5px 10px;
    border: 1px solid #3f527a;
    border-radius: 5px;
    background: #4b608d;
    color: #fff;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}
.forum-post-action-links .forum-post-primary-action:hover,
.forum-post-action-links .forum-post-primary-action:focus-visible {
    border-color: #344568;
    background: #40537b;
    color: #fff;
    text-decoration: none;
    outline: none;
}
.forum-post-action-links button.forum-post-primary-action.active {
    background: #3f527a;
}
.forum-post-action-links .forum-post-action-control.danger {
    border-color: #dfb9c2;
    background: #fff7f9;
    color: #9e304a;
}
.forum-post-action-links .forum-post-action-control.danger:hover,
.forum-post-action-links .forum-post-action-control.danger:focus-visible {
    border-color: #cf9cab;
    background: #ffecef;
    color: #81223a;
}

.forum-post-action-icon {
    display: inline-block;
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px 13px;
}
.forum-post-action-icon-link {
    background-image: url('/assets/fontawesome-pro-plus/icons/link.svg');
}
.forum-post-action-icon-edit {
    background-image: url('/assets/fontawesome-pro-plus/icons/pen-to-square.svg');
}
.forum-post-action-icon-delete {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239e304a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v6'/%3E%3Cpath d='M14 11v6'/%3E%3C/svg%3E");
}
.forum-post-action-control.danger:hover .forum-post-action-icon-delete,
.forum-post-action-control.danger:focus-visible .forum-post-action-icon-delete {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2381223a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v6'/%3E%3Cpath d='M14 11v6'/%3E%3C/svg%3E");
}
.forum-like-summary {
    min-height: 36px;
    margin: 0 12px 10px;
    padding: 8px 11px;
    border: 0;
    border-radius: 4px;
    background: #f3f3f4;
    color: #24262c;
    font-size: 12px;
}
.forum-like-summary:hover,
.forum-like-summary:focus-visible {
    background: #ececef;
    color: #24262c;
    outline: 1px solid #dfe0e4;
}
.forum-like-summary-icon {
    font-size: 15px;
    filter: saturate(1.1);
}
.forum-like-summary-text { color: #24262c; }

/* User report dialog. */
.forum-report-modal {
    position: fixed;
    inset: 0;
    z-index: 1500;
    display: grid;
    place-items: center;
    padding: 18px;
}
.forum-report-modal[hidden] { display: none; }
.forum-report-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.64);
}
.forum-report-dialog {
    position: relative;
    z-index: 1;
    width: min(800px, calc(100vw - 28px));
    overflow: hidden;
    border: 1px solid #aeb2bb;
    border-radius: 5px;
    background: #f7f8fa;
    box-shadow: 0 14px 42px rgba(0,0,0,.34);
}
.forum-report-dialog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 13px;
    border-bottom: 1px solid #cdd1d8;
    background: #f4f5f7;
}
.forum-report-dialog-head h2 {
    margin: 0;
    color: #526b99;
    font-size: 20px;
    font-weight: 500;
}
.forum-report-close {
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #777d87;
    cursor: pointer;
    font-size: 27px;
    line-height: 28px;
}
.forum-report-close:hover,
.forum-report-close:focus-visible { color: #333840; outline: none; }
.forum-report-form { margin: 0; }
.forum-report-form-row {
    display: grid;
    grid-template-columns: 250px minmax(0,1fr);
    align-items: center;
    min-height: 84px;
    border-bottom: 1px solid #cdd1d8;
}
.forum-report-form-row label {
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 14px 18px;
    border-right: 1px solid #cdd1d8;
    color: #17191e;
    font-size: 13px;
}
.forum-report-form-row textarea {
    min-height: 54px;
    max-height: 140px;
    margin: 12px;
    padding: 9px 10px;
    resize: vertical;
    border: 1px solid #b8bdc7;
    border-radius: 7px;
    background: #fff;
    color: #17191e;
    font: inherit;
}
.forum-report-form-row textarea:focus {
    border-color: #6f83aa;
    outline: 2px solid rgba(82,107,153,.16);
}
.forum-report-form-actions {
    display: flex;
    justify-content: center;
    padding: 7px 12px;
}
.forum-report-form-actions .forum-button { min-width: 120px; }

/* Moderator report queue. */
.forum-report-queue-toolbar { justify-content: space-between; }
.forum-report-queue { overflow: hidden; }
.forum-report-item + .forum-report-item { border-top: 1px solid #dedfe3; }
.forum-report-item.is-closed { opacity: .78; }
.forum-report-item-head,
.forum-report-item-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 12px;
    background: #fafafa;
}
.forum-report-item-head { border-bottom: 1px solid #e4e4e7; }
.forum-report-item-body { padding: 11px 12px; }
.forum-report-item-body p { margin: 0 0 5px; }
.forum-report-reason {
    margin-top: 9px;
    padding: 9px 10px;
    border-left: 3px solid #d9a4b5;
    background: #faf7f8;
}
.forum-report-item-actions { border-top: 1px solid #e4e4e7; }
.forum-report-status {
    padding: 3px 8px;
    border-radius: 10px;
    background: #e8e9ec;
    color: #62666e;
    font-size: 11px;
    font-weight: 800;
}
.forum-report-status.open { background: #ffe8ef; color: #a7254c; }
.forum-report-status.resolved { background: #e6f3e8; color: #286c34; }

@media (max-width: 640px) {
    .forum-post-actions { align-items: stretch; }
    .forum-post-meta-actions { width: 100%; justify-content: space-between; }
    .forum-report-form-row { grid-template-columns: 1fr; }
    .forum-report-form-row label {
        justify-content: flex-start;
        padding: 10px 12px 2px;
        border-right: 0;
    }
    .forum-report-form-row textarea { margin-top: 8px; }
    .forum-report-item-head,
    .forum-report-item-actions { align-items: flex-start; flex-direction: column; }
}

/* Keep post actions/reactions pinned to the bottom of the message column so
   short posts still line up with the taller member-information sidebar. */
.forum-post-main {
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
}
.forum-post-body {
    flex: 1 1 auto;
}
.forum-post-actions {
    flex: 0 0 auto;
    margin-top: auto;
}
.forum-like-summary {
    flex: 0 0 auto;
}

/* Hidden-content blocks shown inside posts. */
.forum-hidden-content {
    width: 100%;
    margin: 14px 0;
    border-radius: 6px;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.45;
}
.forum-hidden-content-notice {
    padding: 13px 15px;
    border-left: 3px solid #bf3741;
    border-radius: 6px;
    background: #f0f1f3;
    color: #444b55;
    font-weight: 700;
}
.forum-hidden-content-body {
    padding: 11px 13px;
    border-left: 3px solid #bf3741;
    border-radius: 6px;
    background: #f7f8fa;
    color: #25313c;
}
.forum-hidden-content-body > :first-child { margin-top: 0; }
.forum-hidden-content-body > :last-child { margin-bottom: 0; }

/* Hidden-content selector in the post editor. */
.forum-hidden-editor-menu {
    position: relative;
    display: inline-flex;
}
.forum-editor-toolbar .forum-hidden-editor-trigger {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    min-width: 40px;
}
.forum-hidden-editor-trigger .livve-fa-icon {
    width: 15px;
    height: 15px;
}
.forum-hidden-editor-caret {
    color: #666a70;
    font-size: 10px;
}
.forum-hidden-editor-options {
    position: absolute;
    z-index: 65;
    top: calc(100% + 5px);
    left: 0;
    width: 355px;
    max-width: calc(100vw - 40px);
    padding: 5px 0;
    border: 1px solid #d3d5da;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 5px 15px rgba(0,0,0,.18);
}
.forum-hidden-editor-options[hidden] { display: none; }
.forum-editor-toolbar .forum-hidden-editor-options button {
    display: flex;
    width: 100%;
    min-height: 38px;
    align-items: center;
    gap: 11px;
    padding: 8px 14px;
    border: 0;
    border-radius: 0;
    background: #fff;
    color: #1e2025;
    text-align: left;
}
.forum-editor-toolbar .forum-hidden-editor-options button:hover,
.forum-editor-toolbar .forum-hidden-editor-options button:focus-visible {
    background: #f5f6f8;
    color: #1e2025;
    outline: none;
}
.forum-hidden-editor-options .livve-fa-icon {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
}

/* Hidden-content setup dialogs. */
.forum-hidden-editor-modal {
    position: fixed;
    inset: 0;
    z-index: 1700;
    display: grid;
    place-items: center;
    padding: 18px;
}
.forum-hidden-editor-modal[hidden] { display: none !important; }
.forum-hidden-editor-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10,13,18,.72);
}
.forum-hidden-editor-dialog {
    position: relative;
    z-index: 1;
    width: min(800px, calc(100vw - 30px));
    overflow: hidden;
    border: 1px solid #c6cbd3;
    border-radius: 6px;
    background: #f4f5f7;
    box-shadow: 0 15px 45px rgba(0,0,0,.35);
}
.forum-hidden-editor-dialog-head {
    display: flex;
    min-height: 47px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 13px;
    border-bottom: 1px solid #cdd1d8;
    background: #f3f5f8;
}
.forum-hidden-editor-dialog-head h2 {
    margin: 0;
    color: #3f5f91;
    font-size: 21px;
    font-weight: 400;
}
.forum-hidden-editor-dialog-head h2 strong {
    font-weight: 700;
}
.forum-hidden-editor-dialog-head > button {
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #777d87;
    cursor: pointer;
    font-size: 28px;
    line-height: 28px;
}
.forum-hidden-editor-likes-row,
.forum-hidden-editor-content-row {
    display: grid;
    grid-template-columns: 265px minmax(0,1fr);
    align-items: center;
    border-bottom: 1px solid #cdd1d8;
    background: #f7f8fa;
}
.forum-hidden-editor-likes-row > label,
.forum-hidden-editor-content-row > label {
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 14px 16px;
    border-right: 1px solid #cdd1d8;
    color: #17191e;
    font-size: 13px;
    font-weight: 400;
}
.forum-hidden-editor-likes-row > p,
.forum-hidden-editor-content-row > p {
    grid-column: 2;
    margin: -3px 12px 11px;
    color: #747b89;
    font-size: 12px;
}
.forum-hidden-like-stepper {
    display: grid;
    grid-template-columns: minmax(110px, 1fr) 46px 46px;
    width: min(240px, calc(100% - 24px));
    margin: 11px 12px 8px;
}
.forum-hidden-like-stepper input {
    min-width: 0;
    height: 38px;
    padding: 6px 10px;
    border: 1px solid #bfc5ce;
    border-radius: 7px 0 0 7px;
    background: #f7f8fa;
    text-align: right;
}
.forum-hidden-like-stepper button {
    width: 46px;
    height: 38px;
    padding: 0;
    border: 1px solid #bfc5ce;
    border-left: 0;
    border-radius: 0;
    background: #f4f6f9;
    color: #6a82b1;
    cursor: pointer;
    font-size: 19px;
}
.forum-hidden-like-stepper button:last-child { border-radius: 0 7px 7px 0; }
.forum-hidden-editor-content-row textarea {
    min-height: 58px;
    max-height: 220px;
    margin: 12px 12px 8px;
    padding: 9px 10px;
    resize: vertical;
    border: 1px solid #bfc5ce;
    border-radius: 7px;
    background: #fff;
    color: #17191e;
    font: inherit;
}
.forum-hidden-editor-actions {
    display: flex;
    justify-content: center;
    padding: 7px 12px;
    background: #eef0f3;
}
.forum-hidden-editor-actions .forum-button { min-width: 120px; }

.forum-hidden-editor-content-row > p[hidden] { display: none !important; }
.forum-hidden-editor-modal[data-mode="thanks"] .forum-hidden-editor-content-row,
.forum-hidden-editor-modal[data-mode="hide"] .forum-hidden-editor-content-row {
    min-height: 84px;
}
.forum-hidden-editor-modal[data-mode="thanks"] .forum-hidden-editor-content-row textarea,
.forum-hidden-editor-modal[data-mode="hide"] .forum-hidden-editor-content-row textarea {
    min-height: 54px;
    margin-top: 13px;
    margin-bottom: 13px;
}
.forum-hidden-editor-modal[data-mode="likes"] .forum-hidden-editor-likes-row {
    min-height: 91px;
}
.forum-hidden-editor-modal[data-mode="likes"] .forum-hidden-editor-content-row {
    min-height: 105px;
}

@media (max-width: 640px) {
    .forum-hidden-editor-likes-row,
    .forum-hidden-editor-content-row { grid-template-columns: 1fr; }
    .forum-hidden-editor-likes-row > label,
    .forum-hidden-editor-content-row > label {
        justify-content: flex-start;
        padding: 10px 12px 2px;
        border-right: 0;
    }
    .forum-hidden-editor-likes-row > p,
    .forum-hidden-editor-content-row > p { grid-column: 1; margin: 0 12px 10px; }
    .forum-hidden-like-stepper { width: calc(100% - 24px); }
    .forum-hidden-editor-options { width: min(355px, calc(100vw - 28px)); }
}

/* Each hidden-content command uses its own dialog. Only LIKES=N owns the counter. */
.forum-hidden-editor-modal[data-hidden-modal="thanks"] .forum-hidden-editor-likes-row,
.forum-hidden-editor-modal[data-hidden-modal="hide"] .forum-hidden-editor-likes-row {
    display: none !important;
}

/* Editor compact font-size and color controls. */
.forum-editor-popover {
    position: relative;
    display: inline-flex;
}
.forum-editor-toolbar .forum-editor-popover-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 38px;
    padding: 5px 7px;
}
.forum-editor-popover-trigger .livve-fa-icon {
    width: 16px;
    height: 16px;
}
.forum-editor-caret {
    margin-left: 1px;
    color: #6f737b;
    font-size: 10px;
    line-height: 1;
}
.forum-editor-popover-panel {
    position: absolute;
    z-index: 80;
    top: calc(100% + 5px);
    left: 0;
    border: 1px solid #d2d5da;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 7px 18px rgba(0,0,0,.18);
}
.forum-editor-popover-panel[hidden] { display: none !important; }
.forum-font-family-menu {
    width: 164px;
    padding: 4px 0;
}
.forum-editor-toolbar .forum-font-family-menu button {
    display: block;
    width: 100%;
    min-height: 36px;
    padding: 7px 14px;
    border: 0;
    border-radius: 0;
    background: #fff;
    color: #202226;
    font-size: 15px;
    text-align: left;
}
.forum-editor-toolbar .forum-font-family-menu button:hover,
.forum-editor-toolbar .forum-font-family-menu button:focus-visible {
    background: #eef2f8;
    color: #202226;
    outline: 0;
}
.forum-font-size-menu {
    width: 64px;
    padding: 4px 0;
}
.forum-editor-toolbar .forum-font-size-menu button {
    display: block;
    width: 100%;
    min-height: 34px;
    padding: 5px 12px;
    border: 0;
    border-radius: 0;
    background: #fff;
    color: #202226;
    text-align: left;
}
.forum-editor-toolbar .forum-font-size-menu button:hover,
.forum-editor-toolbar .forum-font-size-menu button:focus-visible {
    background: #eef2f8;
    color: #202226;
    outline: 0;
}
.forum-color-picker {
    width: 265px;
    padding: 12px;
}
.forum-color-swatches {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    margin-bottom: 10px;
    overflow: hidden;
    border: 1px solid #e0e1e4;
}
.forum-editor-toolbar .forum-color-swatch {
    width: 100%;
    min-width: 0;
    height: 32px;
    min-height: 32px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: var(--forum-swatch);
}
.forum-editor-toolbar .forum-color-swatch:hover,
.forum-editor-toolbar .forum-color-swatch:focus-visible {
    position: relative;
    z-index: 1;
    outline: 2px solid #222;
    outline-offset: -2px;
}
.forum-color-hex-label {
    display: block;
    margin: 0 0 4px;
    color: #687286;
    font-size: 11px;
}
.forum-color-hex-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 8px;
}
.forum-editor-toolbar .forum-color-hex-row input {
    width: 100%;
    min-width: 0;
    height: 34px;
    box-sizing: border-box;
    padding: 6px 8px;
    border: 1px solid #bfc5ce;
    border-radius: 6px;
    background: #fff;
    color: #1e2025;
    font: inherit;
}
.forum-editor-toolbar .forum-color-hex-row .forum-button {
    min-height: 34px;
    padding: 6px 9px;
    border-radius: 6px;
    background: #7287b6;
    color: #fff !important;
}

/* Keep hidden-content memo fields fully inside every modal. */
.forum-hidden-editor-content-row textarea {
    display: block;
    width: calc(100% - 24px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 24px) !important;
    box-sizing: border-box !important;
    justify-self: stretch;
}

/* Plain Cancel links in form action rows should look like real buttons. */
.forum-form-actions > a:not(.forum-button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #4f4f53 !important;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.15;
}
.forum-form-actions > a:not(.forum-button):hover,
.forum-form-actions > a:not(.forum-button):focus-visible {
    background: #f3f3f4;
    color: var(--pink-dark) !important;
    outline: none;
}

@media (max-width: 640px) {
    .forum-color-picker {
        position: fixed;
        top: 76px;
        right: 14px;
        left: 14px;
        width: auto;
    }
    .forum-font-size-menu { left: auto; right: 0; }
    .forum-hidden-editor-content-row textarea {
        width: calc(100% - 24px) !important;
        max-width: calc(100% - 24px) !important;
        margin: 8px 12px 12px;
    }
}


/* Desktop keeps every editor control on a single row; compact screens may wrap for usable popovers. */
@media (max-width: 760px) {
    .forum-editor-toolbar { flex-wrap: wrap; white-space: normal; }
}

/* Forum subcategory hierarchy */
.forum-parent-category-row > td {
    background: #fff;
}
/* Nested forum rows: light teal background so subcategories are visibly distinct. */
.forum-category-table tbody tr.forum-subcategory-row > td {
    background-color: #f3fbfa !important;
}
.forum-category-table tbody tr.forum-subcategory-row:hover > td {
    background-color: #eaf7f5 !important;
}
/* A slightly deeper tint helps the second nested level read as part of the hierarchy. */
.forum-category-table tbody tr.forum-subcategory-level-2 > td {
    background-color: #e6f5f3 !important;
}
.forum-category-table tbody tr.forum-subcategory-level-2:hover > td {
    background-color: #dcefeb !important;
}
.forum-category-cell-child {
    padding-left: 24px;
}
.forum-subcategory-branch {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    color: #9a6b79;
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
}
.forum-subcategory-row .forum-category-icon,
.forum-subcategory-table .forum-category-icon {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    border-radius: 9px;
}
.forum-subcategories-panel > h2 {
    margin-bottom: 0;
}
.forum-admin-subcategory-name {
    padding-left: 20px;
}
.forum-admin-subcategory-name .forum-subcategory-branch {
    margin-right: -3px;
}
.forum-field-help {
    display: block;
    margin-top: 5px;
    color: var(--forum-muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.35;
}

@media (max-width: 760px) {
    .forum-category-cell-child,
    .forum-admin-subcategory-name {
        padding-left: 10px;
    }
    .forum-subcategory-branch {
        min-width: 14px;
        font-size: 15px;
    }
}

/* Second nested subcategory level: same forum styling, only deeper indentation. */
.forum-subcategory-level-2 .forum-category-cell-child {
    padding-left: 48px;
}
.forum-admin-subcategory-level-2 {
    padding-left: 40px;
}
.forum-permission-category-level-1 {
    padding-left: 20px;
}
.forum-permission-category-level-2 {
    padding-left: 40px;
}

@media (max-width: 760px) {
    .forum-subcategory-level-2 .forum-category-cell-child {
        padding-left: 20px;
    }
    .forum-admin-subcategory-level-2,
    .forum-permission-category-level-2 {
        padding-left: 20px;
    }
    .forum-permission-category-level-1 {
        padding-left: 10px;
    }
}

/* Forum permissions v2: per-forum cards and scoped moderator assignments. */
.forum-permission-card-list {
    display: grid;
    gap: 14px;
}
.forum-permissions-overview .forum-permission-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    padding: 0 12px 12px;
}
.forum-permission-summary-grid > div {
    padding: 10px 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--forum-soft);
}
.forum-permission-summary-grid strong,
.forum-permission-summary-grid span {
    display: block;
}
.forum-permission-summary-grid strong {
    margin-bottom: 3px;
    color: #333337;
    font-size: 12px;
}
.forum-permission-summary-grid span {
    color: var(--forum-muted);
    font-size: 11px;
    line-height: 1.4;
}
.forum-permission-card {
    scroll-margin-top: 14px;
}
.forum-permission-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: #fafafa;
}
.forum-permission-card-head h3 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 2px 0 2px;
    color: #2f2f33;
    font-size: 16px;
}
.forum-permission-card-head h3 .livve-fa-icon {
    width: 17px;
    height: 17px;
}
.forum-permission-kicker {
    color: var(--pink-dark);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.forum-permission-path {
    color: var(--forum-muted);
    font-size: 11px;
}
.forum-permission-card-body {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .9fr);
}
.forum-permission-access-block,
.forum-permission-moderator-block {
    min-width: 0;
    padding: 13px 14px 14px;
}
.forum-permission-moderator-block {
    border-left: 1px solid var(--line);
    background: #fcfcfc;
}
.forum-permission-section-title {
    margin-bottom: 10px;
}
.forum-permission-section-title strong,
.forum-permission-section-title span {
    display: block;
}
.forum-permission-section-title strong {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #333337;
    font-size: 13px;
}
.forum-permission-section-title strong .livve-fa-icon {
    width: 15px;
    height: 15px;
}
.forum-permission-section-title span {
    margin-top: 2px;
    color: var(--forum-muted);
    font-size: 11px;
    line-height: 1.4;
}
.forum-permission-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}
.forum-permission-fields label,
.forum-moderator-add-form label {
    display: block;
    min-width: 0;
    color: #424247;
    font-size: 11px;
    font-weight: 800;
}
.forum-permission-fields label > span,
.forum-moderator-add-form label > span {
    display: block;
    margin-bottom: 5px;
}
.forum-permission-fields select,
.forum-moderator-add-form input {
    box-sizing: border-box;
    width: 100%;
    min-height: 38px;
    padding: 8px 9px;
    border: 1px solid #c7c7ca;
    border-radius: 7px;
    background: #fff;
    color: #222225;
    font: inherit;
}
.forum-permission-fields select:focus,
.forum-moderator-add-form input:focus {
    border-color: var(--pink);
    outline: 3px solid rgba(255,31,98,.10);
}
.forum-permission-fields small,
.forum-moderator-add-form small {
    display: block;
    margin-top: 5px;
    color: var(--forum-muted);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.35;
}
.forum-permission-form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}
.forum-moderator-empty {
    padding: 10px;
    border: 1px dashed #d3d3d6;
    border-radius: 7px;
    color: var(--forum-muted);
    background: #fff;
    font-size: 11px;
}
.forum-moderator-admin-list {
    display: grid;
    gap: 6px;
    margin-bottom: 10px;
}
.forum-moderator-admin-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}
.forum-moderator-admin-person {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
}
.forum-moderator-admin-person img {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border: 1px solid var(--line);
    border-radius: 6px;
    object-fit: cover;
}
.forum-moderator-admin-person strong,
.forum-moderator-admin-person span {
    display: block;
}
.forum-moderator-admin-person strong {
    color: #333337;
    font-size: 12px;
}
.forum-moderator-admin-person span {
    margin-top: 2px;
    color: var(--forum-muted);
    font-size: 10px;
}
.forum-moderator-admin-row .forum-button {
    min-height: 30px;
    padding: 5px 8px;
}
.forum-moderator-add-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: end;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}
.forum-moderator-add-form .forum-button {
    min-height: 38px;
}
.forum-mod-layout-local {
    grid-template-columns: 1fr;
}

/* Public forum moderator roster shown below each topic list. */
.forum-moderators-panel > h2 {
    margin-bottom: 0;
}
.forum-moderator-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 12px 12px;
}
.forum-moderator-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 190px;
    padding: 7px 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--forum-soft);
}
.forum-moderator-chip img {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border: 1px solid var(--line);
    border-radius: 6px;
    object-fit: cover;
}
.forum-moderator-chip strong,
.forum-moderator-chip span {
    display: block;
}
.forum-moderator-chip strong {
    color: #343438;
    font-size: 12px;
}
.forum-moderator-chip span {
    margin-top: 2px;
    color: var(--forum-muted);
    font-size: 10px;
}
.forum-moderators-empty {
    padding: 11px 12px;
    color: var(--forum-muted);
    font-size: 11px;
}

@media (max-width: 900px) {
    .forum-permission-card-body {
        grid-template-columns: 1fr;
    }
    .forum-permission-moderator-block {
        border-top: 1px solid var(--line);
        border-left: 0;
    }
    .forum-permission-fields {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .forum-permissions-overview .forum-permission-summary-grid {
        grid-template-columns: 1fr;
    }
    .forum-permission-card-head {
        align-items: stretch;
        flex-direction: column;
    }
    .forum-permission-card-head .forum-button {
        width: 100%;
    }
    .forum-moderator-add-form {
        grid-template-columns: 1fr;
    }
    .forum-moderator-add-form .forum-button {
        width: 100%;
    }
    .forum-moderator-admin-row {
        align-items: stretch;
        flex-direction: column;
    }
    .forum-moderator-admin-row form,
    .forum-moderator-admin-row .forum-button {
        width: 100%;
    }
    .forum-moderator-chip {
        width: 100%;
    }
}


/* Permissions admin readability pass: keep the compact main-category layout,
   but make labels, guidance and moderator details comfortably readable. */
.forum-permissions-overview > h2 {
    font-size: 18px;
}
.forum-permissions-overview > .forum-pad > p {
    margin-top: 0;
    margin-bottom: 0;
    color: #45454a;
    font-size: 13px;
    line-height: 1.55;
}
.forum-permissions-overview .forum-permission-summary-grid {
    gap: 11px;
}
.forum-permission-summary-grid > div {
    padding: 12px 13px;
}
.forum-permission-summary-grid strong {
    margin-bottom: 4px;
    font-size: 14px;
}
.forum-permission-summary-grid span {
    font-size: 13px;
    line-height: 1.45;
}
.forum-permission-card-list {
    gap: 16px;
}
.forum-permission-card-head {
    padding: 14px 16px;
}
.forum-permission-card-head h3 {
    font-size: 18px;
}
.forum-permission-kicker {
    font-size: 11px;
}
.forum-permission-path {
    font-size: 12px;
    line-height: 1.4;
}
.forum-permission-access-block,
.forum-permission-moderator-block {
    padding: 15px 16px 16px;
}
.forum-permission-section-title {
    margin-bottom: 12px;
}
.forum-permission-section-title strong {
    font-size: 15px;
}
.forum-permission-section-title span {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.5;
}
.forum-permission-fields {
    gap: 11px;
}
.forum-permission-fields label,
.forum-moderator-add-form label {
    font-size: 13px;
}
.forum-permission-fields label > span,
.forum-moderator-add-form label > span {
    margin-bottom: 6px;
}
.forum-permission-fields select,
.forum-moderator-add-form input {
    min-height: 40px;
    padding: 9px 10px;
    font-size: 13px;
}
.forum-permission-fields small,
.forum-moderator-add-form small {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.45;
}
.forum-permission-form-actions {
    margin-top: 12px;
}
.forum-permission-form-actions .forum-button,
.forum-moderator-add-form .forum-button,
.forum-moderator-admin-row .forum-button {
    font-size: 12px;
}
.forum-moderator-empty {
    padding: 11px 12px;
    font-size: 12px;
    line-height: 1.45;
}
.forum-moderator-admin-row {
    padding: 9px 10px;
}
.forum-moderator-admin-person strong {
    font-size: 13px;
}
.forum-moderator-admin-person span {
    font-size: 12px;
    line-height: 1.35;
}
.forum-specific-moderators > summary strong {
    font-size: 14px;
}
.forum-specific-moderators > summary .forum-small {
    font-size: 12px;
    line-height: 1.45;
}

/* Multi-rank permission matrix: each main category can grant access to any
   combination of LIvVE ranks/groups without reverting to minimum-rank rules. */
.forum-permission-rank-fields {
    grid-template-columns: 1fr;
    gap: 14px;
}
.forum-permission-rank-group {
    min-width: 0;
    margin: 0;
    padding: 13px;
    border: 1px solid #d8d8dc;
    border-radius: 8px;
    background: #fafafa;
}
.forum-permission-rank-group legend {
    padding: 0 5px;
    color: #333337;
    font-size: 14px;
    font-weight: 850;
}
.forum-permission-rank-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    margin: -2px 0 8px;
}
.forum-permission-rank-tools .forum-permission-rank-tool {
    min-height: 29px;
    padding: 4px 8px;
    font-size: 11px;
    line-height: 1.1;
}
.forum-permission-rank-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
}
.forum-permission-fields label.forum-permission-rank-option {
    display: flex;
    min-height: 38px;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 8px 9px;
    border: 1px solid #dedee2;
    border-radius: 7px;
    background: #fff;
    color: #3f3f44;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
}
.forum-permission-fields label.forum-permission-rank-option:hover {
    border-color: #d5a7b6;
    background: #fff8fa;
}
.forum-permission-fields label.forum-permission-rank-option input {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    margin: 0;
    accent-color: var(--pink);
}
.forum-permission-fields label.forum-permission-rank-option > span {
    display: inline;
    margin: 0;
}
.forum-permission-rank-group > small {
    display: block;
    margin-top: 9px;
    color: var(--forum-muted);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
}
.forum-admin-access-summary {
    max-width: 420px;
    color: #4b4b50;
    font-size: 12px;
    line-height: 1.45;
}
.forum-admin-access-summary strong {
    color: #303034;
}

@media (max-width: 1080px) {
    .forum-permission-rank-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 760px) {
    .forum-permission-rank-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 480px) {
    .forum-permission-rank-grid {
        grid-template-columns: 1fr;
    }
}


/* Category icon picker and uploaded forum icon presentation. */
.forum-category-upload-icon { object-fit: cover; border-radius: 4px; }
.forum-category-icon > .forum-category-upload-icon { width: 38px; height: 38px; border-radius: 8px; }
.forum-category-heading > .forum-category-upload-icon,
.forum-admin-category-name > .forum-category-upload-icon,
.forum-permission-card-head h3 > .forum-category-upload-icon { object-fit: cover; }
.forum-category-icon-editor { margin: 2px 0 12px; padding: 13px; border: 1px solid #d4d4d8; border-radius: 9px; background: #fafafa; }
.forum-category-icon-editor > legend { padding: 0 6px; color: #333337; font-size: 14px; font-weight: 850; }
.forum-category-icon-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.forum-category-icon-choice,
.forum-category-icon-current { display: flex !important; min-width: 0; align-items: center; gap: 9px; padding: 9px; border: 1px solid #d8d8dc; border-radius: 8px; background: #fff; cursor: pointer; }
.forum-category-icon-choice:hover,
.forum-category-icon-current:hover { border-color: #d8a9b8; background: #fff8fa; }
.forum-category-icon-choice input,
.forum-category-icon-current input { flex: 0 0 auto; margin: 0; }
.forum-category-icon-choice-preview,
.forum-category-icon-current-preview { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; overflow: hidden; border: 1px solid #ead5dc; border-radius: 7px; background: var(--forum-soft-pink); }
.forum-category-icon-choice-preview .livve-fa-icon,
.forum-category-icon-current-preview .livve-fa-icon { width: 18px; height: 18px; }
.forum-category-icon-current-preview .forum-category-upload-icon { width: 34px; height: 34px; border-radius: 6px; }
.forum-category-icon-choice > span:last-child,
.forum-category-icon-current > span:last-child { min-width: 0; font-size: 12px; font-weight: 750; }
.forum-category-icon-choice small,
.forum-category-icon-current small { display: block; margin-top: 2px; color: var(--forum-muted); font-size: 11px; font-weight: 500; line-height: 1.3; overflow-wrap: anywhere; }
.forum-category-icon-current { margin-bottom: 9px; border-color: #d8a9b8; background: #fff8fa; }
.forum-category-icon-upload { display: block !important; margin-top: 11px; padding-top: 11px; border-top: 1px solid #e2e2e5; font-size: 13px; font-weight: 800; }
.forum-category-icon-upload input[type="file"] { display: block; width: 100%; margin-top: 6px; padding: 7px; border: 1px solid #c9c9cd; border-radius: 7px; background: #fff; font: inherit; font-weight: 500; }
@media (max-width:900px) { .forum-category-icon-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .forum-category-icon-choice-grid { grid-template-columns: 1fr; } }


/* Forum Admin collapsible panels. Open/closed state is persisted by admin/index.php. */
details.forum-admin-collapsible,
details.forum-admin-subcollapsible {
    overflow: hidden;
}
.forum-admin-collapse-summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
}
.forum-admin-collapse-summary::-webkit-details-marker { display: none; }
.forum-admin-collapse-summary::marker { display: none; content: ''; }
.forum-admin-collapse-summary h2,
.forum-admin-collapse-summary h3 { margin: 0; }
.forum-panel > .forum-admin-collapse-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 46px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
    background: #fafafa;
}
.forum-panel:not([open]) > .forum-admin-collapse-summary { border-bottom: 0; }
.forum-admin-collapse-chevron {
    display: inline-flex;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    align-items: center;
    justify-content: center;
    color: #6e6e73;
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
    transform: rotate(-90deg);
    transition: transform .14s ease;
}
details[open] > .forum-admin-collapse-summary .forum-admin-collapse-chevron { transform: rotate(0deg); }
.forum-permission-card > .forum-permission-card-head.forum-admin-collapse-summary {
    padding: 14px 16px;
}
.forum-permissions-overview-static-head {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
    background: #fafafa;
}
.forum-permissions-overview-static-head h2 {
    margin: 0;
    font-size: 18px;
}
.forum-permission-card-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}
.forum-admin-subcollapsible {
    border: 1px solid #dedee2;
    border-radius: 8px;
    background: #fff;
}
.forum-admin-subcollapsible + .forum-admin-subcollapsible { margin-top: 12px; }
.forum-admin-subcollapsible > .forum-permission-section-title.forum-admin-collapse-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 11px 12px;
    border-bottom: 1px solid #e2e2e5;
    background: #f8f8f9;
}
.forum-admin-subcollapsible:not([open]) > .forum-permission-section-title.forum-admin-collapse-summary { border-bottom: 0; }
.forum-admin-subcollapsible > .forum-permission-section-title > span:first-child {
    display: block;
    min-width: 0;
}
.forum-admin-subcollapsible > .forum-permission-section-title strong { display: block; }
.forum-admin-subcollapsible > .forum-permission-section-title small {
    display: block;
    margin-top: 3px;
    color: var(--forum-muted);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}
.forum-admin-subcollapsible > form,
.forum-admin-subcollapsible > .forum-moderator-empty,
.forum-admin-subcollapsible > .forum-moderator-admin-list {
    margin-left: 12px;
    margin-right: 12px;
}
.forum-admin-subcollapsible > form:last-child { margin-bottom: 12px; }
.forum-admin-subcollapsible > .forum-moderator-empty { margin-top: 12px; margin-bottom: 12px; }
.forum-admin-subcollapsible > .forum-moderator-admin-list { margin-top: 12px; }
.forum-specific-moderators {
    margin-top: 18px;
}
.forum-specific-moderators > summary.forum-admin-collapse-summary {
    padding: 12px;
}
@media (max-width: 700px) {
    .forum-permission-card-actions .forum-button { display: none; }
    .forum-panel > .forum-admin-collapse-summary { align-items: flex-start; }
}

/* Optional lower-branch permission overrides. Main-category permissions remain
   the default; these cards stay compact until an exception needs editing. */
.forum-subpermission-overrides {
    margin-top: 18px;
}
.forum-subpermission-overrides > summary strong {
    font-size: 14px;
}
.forum-subpermission-overrides > summary .forum-small {
    font-size: 12px;
    line-height: 1.45;
}
.forum-subpermission-list {
    display: grid;
    gap: 9px;
}
.forum-subpermission-groups {
    display: grid;
    gap: 12px;
}
.forum-subpermission-group {
    margin: 0;
    overflow: hidden;
    border: 1px solid #d4d4d9;
    border-radius: 9px;
    background: #f7f7f8;
}
.forum-subpermission-group-summary {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 13px;
    background: #f1f1f3;
    border-bottom: 1px solid #d9d9dd;
}
.forum-subpermission-group:not([open]) > .forum-subpermission-group-summary {
    border-bottom: 0;
}
.forum-subpermission-group-title {
    display: block;
    min-width: 0;
}
.forum-subpermission-group-title strong {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #303034;
    font-size: 14px;
    line-height: 1.3;
}
.forum-subpermission-group-title strong .livve-fa-icon,
.forum-subpermission-group-title strong .forum-category-upload-icon {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
}
.forum-subpermission-group-title small {
    display: block;
    margin-top: 3px;
    color: var(--forum-muted);
    font-size: 11px;
    line-height: 1.35;
}
.forum-subpermission-group-body {
    display: grid;
    gap: 8px;
    padding: 10px;
}
.forum-subpermission-group-body > .forum-subpermission-card {
    background: #fff;
}
.forum-subpermission-depth-2 {
    margin-left: 24px !important;
    position: relative;
}
.forum-subpermission-depth-2::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: -13px;
    width: 1px;
    background: #d8d8dc;
}
.forum-subpermission-help {
    margin-bottom: 2px;
    padding: 10px 11px;
    border: 1px solid #dddde1;
    border-radius: 8px;
    background: #fafafa;
    color: #55555b;
    font-size: 12px;
    line-height: 1.45;
}
.forum-subpermission-card {
    margin: 0 !important;
    border: 1px solid #dedee2;
    border-radius: 8px;
    background: #fff;
}
.forum-subpermission-summary {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-bottom: 1px solid #e3e3e6;
    background: #f8f8f9;
}
.forum-subpermission-card:not([open]) > .forum-subpermission-summary {
    border-bottom: 0;
}
.forum-subpermission-title {
    display: block;
    min-width: 0;
}
.forum-subpermission-title strong {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #333337;
    font-size: 13px;
    line-height: 1.3;
}
.forum-subpermission-title strong .livve-fa-icon,
.forum-subpermission-title strong .forum-category-upload-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}
.forum-subpermission-title small {
    display: block;
    margin-top: 3px;
    color: var(--forum-muted);
    font-size: 11px;
    line-height: 1.35;
}
.forum-subpermission-summary-actions {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
}
.forum-subpermission-summary-actions .forum-badge {
    margin-left: 0;
    white-space: nowrap;
}
.forum-badge.forum-badge-custom {
    background: #fff0f4;
    color: var(--pink-dark);
}
.forum-subpermission-body {
    padding: 12px;
}
.forum-subpermission-status {
    margin: 0 0 11px;
    padding: 9px 10px;
    border: 1px solid #dedee2;
    border-radius: 7px;
    background: #fafafa;
    color: #55555b;
    font-size: 12px;
    line-height: 1.45;
}
.forum-subpermission-status.is-custom {
    border-color: #e0b3c1;
    background: #fff8fa;
    color: #6e3a4b;
}
.forum-subpermission-form {
    margin: 0 !important;
}
.forum-subpermission-reset-form {
    display: flex;
    justify-content: flex-end;
    margin: -2px 0 0;
    padding-top: 10px;
    border-top: 1px solid #e7e7ea;
}
@media (max-width: 700px) {
    .forum-subpermission-summary,
    .forum-subpermission-group-summary {
        align-items: flex-start;
    }
    .forum-subpermission-summary-actions .forum-badge {
        display: none;
    }
    .forum-subpermission-depth-2 {
        margin-left: 10px !important;
    }
    .forum-subpermission-depth-2::before {
        left: -6px;
    }
}
