.forum-mod {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.forum-mod__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.forum-mod__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding-inline: 0.25rem;
    border-radius: var(--br-50);
    background: var(--red);
    color: var(--text-default);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-7);
}

.forum-mod__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    padding: 3rem 1rem;
    text-align: center;
}

.forum-mod__empty-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 0.375rem;
    border-radius: var(--br-50);
    background: color-mix(in srgb, var(--green) 12%, transparent);
}

.forum-mod__empty-icon svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: var(--green);
}

.forum-mod__empty b {
    color: var(--text-default);
    font-family: var(--font-family-1);
    font-size: var(--font-size-m);
}

.forum-mod__empty span {
    color: var(--text-secondary);
    font-size: var(--font-size-s);
}

.forum-reports {
    display: flex;
    flex-direction: column;
}

.forum-reports__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 12rem 7rem 9rem;
    gap: 0.75rem;
    padding: 0 0.875rem 0.5rem;
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.forum-reports__head span:last-child {
    text-align: right;
}

.forum-reports__item {
    border-radius: var(--br-10);
    transition: background var(--transition-duration);
}

.forum-reports__item + .forum-reports__item {
    border-top: 1px solid var(--transparent-2-w);
}

.forum-reports__item[open] {
    background: var(--transparent-2-w);
}

.forum-reports__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 12rem 7rem 9rem;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.875rem;
    cursor: pointer;
    list-style: none;
    -webkit-user-select: none;
    user-select: none;
}

.forum-reports__row::-webkit-details-marker {
    display: none;
}

.forum-reports__row:hover {
    background: var(--transparent-2-w);
    border-radius: var(--br-10);
}

.forum-reports__cell {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
}

.forum-reports__cell--who {
    color: var(--text-default);
}

.forum-reports__avatar {
    width: 2rem;
    height: 2rem;
    border-radius: var(--br-50);
    object-fit: cover;
    flex-shrink: 0;
}

.forum-reports__avatar--gone {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--transparent-4-w);
}

.forum-reports__avatar--gone svg {
    width: 0.875rem;
    height: 0.875rem;
    fill: var(--text-secondary);
}

.forum-reports__names {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.forum-reports__name {
    color: var(--text-default);
    font-size: var(--font-size-s);
    font-weight: var(--font-weight-6);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.forum-reports__place {
    color: var(--text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.forum-reports__mini {
    width: 1.375rem;
    height: 1.375rem;
    border-radius: var(--br-50);
    object-fit: cover;
    flex-shrink: 0;
}

.forum-reports__cell--time {
    white-space: nowrap;
}

.forum-reports__cell--status {
    justify-content: flex-end;
}

.forum-reports__state {
    padding: 0.125rem 0.5rem;
    border-radius: var(--br-8);
    background: var(--transparent-4-w);
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    white-space: nowrap;
}

.forum-reports__item.is-new .forum-reports__state {
    background: var(--red-10);
    color: var(--red);
}

.forum-reports__item.is-accepted .forum-reports__state {
    background: color-mix(in srgb, var(--green) 14%, transparent);
    color: var(--green);
}

.forum-reports__arrow {
    width: 0.5rem;
    height: 0.5rem;
    fill: var(--text-secondary);
    transition: transform var(--transition-duration);
    flex-shrink: 0;
}

.forum-reports__item[open] .forum-reports__arrow {
    transform: rotateX(180deg);
}

.forum-reports__body {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    padding: 0.25rem 0.875rem 0.875rem 3.375rem;
}

.forum-reports__reason {
    color: var(--text-default);
    font-size: var(--font-size-s);
    line-height: 1.5;
    word-break: break-word;
}

.forum-reports__label {
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-right: 0.375rem;
}

.forum-reports__quote {
    display: block;
    padding: 0.5rem 0.75rem;
    border-left: 2px solid var(--span);
    border-radius: 0 var(--br-8) var(--br-8) 0;
    background: var(--transparent-5-b, rgba(0, 0, 0, 0.25));
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    line-height: 1.5;
}

.forum-reports__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.forum-report__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    height: 1.875rem;
    padding-inline: 0.75rem;
    border: 0;
    border-radius: var(--br-8);
    background: var(--transparent-4-w);
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    cursor: pointer;
    transition: background var(--transition-duration), color var(--transition-duration);
}

.forum-report__btn svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: currentColor;
}

.forum-report__btn:hover {
    background: var(--transparent-10-w);
    color: var(--text-default);
}

.forum-report__btn.is-accept:hover {
    background: color-mix(in srgb, var(--green) 18%, transparent);
    color: var(--green);
}

.forum-report__btn:disabled {
    opacity: 0.5;
    cursor: default;
}

.forum-report__verdict {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
}

.forum-report__verdict svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: currentColor;
}

.forum-reports__item.is-accepted .forum-report__verdict {
    color: var(--green);
}

.forum-report__input {
    width: 100%;
    min-height: 5rem;
    padding: 0.75rem 0.875rem;
    border: 1px solid transparent;
    border-radius: var(--br-10);
    background: var(--input-form, var(--transparent-4-w));
    color: var(--text-default);
    font-family: var(--font-family-2);
    font-size: var(--font-size-s);
    resize: vertical;
}

.forum-log__filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    padding-bottom: 0.25rem;
}

.forum-log__chip {
    color: var(--text-secondary);
    cursor: pointer;
}

.forum-log__chip.is-active {
    background: var(--span-10);
    color: var(--span);
}

.forum-log__row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.875rem;
    border-radius: var(--br-10);
    background: var(--transparent-2-w);
}

.forum-log__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--br-8);
    background: var(--transparent-4-w);
    flex-shrink: 0;
}

.forum-log__icon svg {
    width: 0.875rem;
    height: 0.875rem;
    fill: var(--text-secondary);
}

.forum-log__avatar {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--br-50);
    object-fit: cover;
    flex-shrink: 0;
}

.forum-log__body {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.forum-log__title {
    color: var(--text-default);
    font-size: var(--font-size-s);
}

.forum-log__details {
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.forum-log__link {
    display: flex;
    align-items: center;
    margin-left: auto;
    flex-shrink: 0;
}

.forum-log__link svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: var(--text-secondary);
}

.forum-log__link:hover svg {
    fill: var(--span);
}

.forum-log__time {
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    white-space: nowrap;
    flex-shrink: 0;
}

.forum-topic--new .forum-topic__title {
    font-weight: var(--font-weight-7);
}

.forum-topic__badge {
    display: inline-flex;
    align-self: center;
    flex-shrink: 0;
    align-items: center;
    padding: 0.0625rem 0.375rem;
    margin-left: 0.375rem;
    border-radius: var(--br-8);
    background: var(--span-10);
    color: var(--span);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-6);
    vertical-align: middle;
}

.forum-topic__badge--draft {
    background: color-mix(in srgb, var(--orange) 14%, transparent);
    color: var(--orange);
}

.forum-topic__badge--hidden {
    background: var(--red-10);
    color: var(--red);
}

.forum-head__title .forum-topic__badge {
    font-size: var(--font-size-s);
    padding: 0.125rem 0.5rem;
}

.forum-status-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    margin-bottom: 0.75rem;
    border-radius: var(--br-12);
    background: color-mix(in srgb, var(--orange) 10%, transparent);
    color: var(--text-default);
    font-size: var(--font-size-s);
}

.forum-status-note--hidden {
    background: var(--red-10);
}

.forum-status-note__text {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.forum-status-note__text svg {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    fill: var(--orange);
}

.forum-status-note--hidden .forum-status-note__text svg {
    fill: var(--red);
}

.forum-form__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem);
    gap: 0.75rem;
    align-items: end;
}

.forum-form__field {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.forum-board__icon.has-new {
    position: relative;
}

.forum-board__icon.has-new::after {
    content: '';
    position: absolute;
    top: -0.125rem;
    right: -0.125rem;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: var(--br-50);
    background: var(--span);
}

.forum-recent__title.is-new {
    font-weight: var(--font-weight-7);
}

.forum-editor__draft {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-right: auto;
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
}

.forum-editor__draft svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: var(--text-secondary);
}

.forum-punish__player {
    padding: 0.5rem 0.75rem;
    border-radius: var(--br-10);
    background: var(--transparent-4-w);
    color: var(--text-default);
    font-size: var(--font-size-s);
    font-weight: var(--font-weight-6);
}

.forum-punish__hours {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.forum-punish__hour input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.forum-punish__hour span {
    display: inline-flex;
    align-items: center;
    height: 2rem;
    padding-inline: 0.875rem;
    border: 1px solid var(--transparent-4-w);
    border-radius: var(--br-8);
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    cursor: pointer;
    transition: border-color var(--transition-duration), color var(--transition-duration);
}

.forum-punish__hour input:checked + span {
    border-color: var(--span-half);
    background: var(--span-10);
    color: var(--span);
}

.forum-muted {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    border-radius: var(--br-12);
    border: 1px solid color-mix(in srgb, var(--red) 30%, transparent);
    background: var(--red-10);
}

.forum-muted__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--br-50);
    background: color-mix(in srgb, var(--red) 16%, transparent);
    flex-shrink: 0;
}

.forum-muted__icon svg {
    width: 1rem;
    height: 1rem;
    fill: var(--red);
}

.forum-muted__text {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.forum-muted__text b {
    color: var(--text-default);
    font-size: var(--font-size-s);
}

.forum-muted__text span {
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
}

.forum-roles__perms {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.875rem;
    padding: 0.875rem;
    border: 1px solid var(--transparent-4-w);
    border-radius: var(--br-12);
    background: var(--transparent-2-w);
}

.forum-roles__group,
.forum-roles__perm-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.forum-roles__group:not(:first-child),
.forum-roles__perm-group:not(:first-child) {
    padding-left: 0.875rem;
    border-left: 1px solid var(--transparent-4-w);
}

.forum-roles__group-title {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--transparent-4-w);
    color: var(--text-custom);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-6);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.forum-roles__group-title svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: var(--span);
    flex-shrink: 0;
}

.forum-roles__members .forum-roles__group-title {
    border-bottom: 0;
    padding-bottom: 0;
}

.forum-roles__perm {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    opacity: 0.55;
}

.forum-roles__perm svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: currentColor;
    flex-shrink: 0;
}

.forum-roles__perm.is-on {
    color: var(--green);
    opacity: 1;
}

.forum-report__btn.is-danger:hover {
    background: var(--red-10);
    color: var(--red);
}

.forum-roles__note {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.75rem;
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    line-height: 1.45;
}

.forum-roles__note svg {
    width: 0.875rem;
    height: 0.875rem;
    margin-top: 0.125rem;
    fill: var(--span);
    flex-shrink: 0;
}

.forum-roles__colors,
.forum-roles__presets {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.forum-roles__color input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.forum-roles__color span {
    display: block;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--br-50);
    border: 2px solid transparent;
    cursor: pointer;
    transition: border-color var(--transition-duration);
}

.forum-roles__color input:checked + span {
    border-color: var(--text-default);
}

.forum-roles__perm-groups {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.875rem;
    padding: 0.875rem;
    border: 1px solid var(--transparent-4-w);
    border-radius: var(--br-12);
    background: var(--transparent-2-w);
    align-items: start;
}

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

.forum-roles__target {
    padding: 0.5rem 0.75rem;
    border-radius: var(--br-10);
    background: var(--transparent-4-w);
    color: var(--text-default);
    font-size: var(--font-size-s);
    font-weight: var(--font-weight-6);
}

.forum-roles__item .item-title {
    gap: 0.5rem;
}

.forum-roles__dot {
    width: 0.625rem;
    height: 0.625rem;
    border-radius: var(--br-50);
    flex-shrink: 0;
}

.forum-roles__chip {
    font-size: var(--font-size-xs);
}

.forum-roles__perm-count {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-4);
}

.forum-roles__perm-count svg {
    width: 0.75rem;
    height: 0.75rem;
    fill: var(--text-secondary);
}

.forum-roles__member {
    gap: 0.625rem;
}

.forum-roles__member-avatar {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--br-50);
    object-fit: cover;
    flex-shrink: 0;
}

.forum-roles__member-info {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.forum-roles__member-name {
    color: var(--text-default);
    font-size: var(--font-size-s);
    font-weight: var(--font-weight-6);
}

.forum-roles__member-meta {
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.forum-roles__member-empty {
    gap: 0.5rem;
    color: var(--text-secondary);
    font-size: var(--font-size-xs);
}

.forum-roles__member-empty svg {
    width: 0.875rem;
    height: 0.875rem;
    fill: var(--text-secondary);
}

.forum-roles__item.is-dragging {
    opacity: 0.5;
}

.forum-roles__color {
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 2px solid transparent;
    border-radius: var(--br-50);
    cursor: pointer;
    transition: border-color var(--transition-duration);
}

.forum-roles__color.is-active {
    border-color: var(--text-default);
}

.forum-roles__colors {
    align-items: center;
}

.forum-roles__pick {
    position: relative;
    display: inline-flex;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 2px solid transparent;
    border-radius: var(--br-50);
    flex-shrink: 0;
    transition: border-color var(--transition-duration);
}

.forum-roles__pick.is-active {
    border-color: var(--text-default);
}

.forum-roles__pick button {
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: var(--br-50);
    background: var(--transparent-10-w);
    cursor: pointer;
}

.forum-roles__pick svg {
    position: absolute;
    inset: 0;
    width: 0.75rem;
    height: 0.75rem;
    margin: auto;
    fill: var(--white, #fff);
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55));
    pointer-events: none;
}
