/* TG007 Build 0218 — Forum and related pages modernization.
   Additive, scoped presentation only. Native forum policy, post/reply actions,
   permissions, attachments, polls, E-Editor and pagination remain authoritative. */
.tg-forum-modern {
    --tg-forum-bg: #f6f8f9;
    --tg-forum-line: #dce5eb;
    --tg-forum-line-soft: #e9eef1;
    --tg-forum-soft-blue: #edf5fa;
    --tg-forum-muted: #607583;
    --tg-forum-blue: #2c779f;
    --tg-forum-blue-dark: #225e84;
}

/* Shared forum navigation, styled to match refreshed Resources and File Library tabs. */
.tg-forum-subnav {
    position: relative;
    z-index: 2;
    border-top: 1px solid #dfe8ed;
    border-bottom: 1px solid #d3e2ea;
    background: linear-gradient(100deg, #f4f9fb 0%, #eaf2f7 100%);
}
.tg-forum-subnav-inner {
    display: flex;
    align-items: center;
    gap: clamp(.7rem, 2vw, 1.45rem);
    min-height: 65px;
    padding-block: .62rem;
}
.tg-forum-subnav-label {
    flex: 0 0 auto;
    white-space: nowrap;
    color: #477895;
    font-weight: 850;
    letter-spacing: .085em;
    font-size: .7rem;
}
.tg-forum-subnav-links {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .35rem;
    overflow-x: auto;
    padding: .18rem .1rem .3rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #bdcfdb transparent;
}
.tg-forum-subnav-link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 39px;
    padding: .54rem .85rem;
    border: 1px solid transparent;
    border-radius: .64rem;
    color: #335873 !important;
    font-size: .875rem;
    font-weight: 780;
    line-height: 1.25;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.tg-forum-subnav-link:hover,
.tg-forum-subnav-link:focus-visible {
    background: #fff;
    border-color: #c2d7e4;
    color: #154866 !important;
}
.tg-forum-subnav-link.is-current,
.tg-forum-subnav-link[aria-current="page"] {
    background: linear-gradient(125deg, #337eaa, #255f87);
    border-color: #286b93;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(34, 95, 135, .18);
}
.tg-forum-subnav-link:focus-visible,
.tg-forum-main a:focus-visible,
.tg-forum-main button:focus-visible,
.tg-forum-main summary:focus-visible {
    outline: 3px solid #6aaed4;
    outline-offset: 2px;
}

/* Main page layout and typography. */
.tg-forum-main {
    background: linear-gradient(180deg, #f7f8f7 0, #f3f6f8 100%);
}
.tg-forum-main .tg-section-tight {
    padding-block: clamp(1.4rem, 2.8vw, 2.5rem) clamp(2rem, 3vw, 3rem);
}
.tg-forum-main .tg-forum-toolbar {
    align-items: center;
    flex-wrap: wrap;
    gap: .8rem 1.1rem;
    margin-bottom: 1rem;
}
.tg-forum-main .tg-forum-toolbar h2,
.tg-forum-main .tg-section-heading h2 {
    font-size: clamp(1.25rem, 1.85vw, 1.65rem);
    letter-spacing: -.025em;
    line-height: 1.2;
}
.tg-forum-main .tg-forum-toolbar p,
.tg-forum-main .tg-section-heading p {
    color: #637583;
    font-size: .92rem;
    line-height: 1.55;
}
.tg-forum-main .tg-forum-breadcrumbs {
    margin-bottom: 1.15rem;
    padding: .62rem .82rem;
    border: 1px solid #dae6ec;
    border-radius: .75rem;
    background: #fff;
    font-size: .86rem;
}
.tg-forum-main .tg-forum-breadcrumbs a { color: #245e81; }
.tg-forum-main .tg-forum-statline { gap: .45rem; }
.tg-forum-main .tg-forum-statline span {
    gap: .35rem;
    min-height: 39px;
    padding: .53rem .82rem;
    background: #fff;
    border: 1px solid #d9e5ea;
    border-radius: .72rem;
    font-size: .82rem;
    letter-spacing: 0;
}
.tg-forum-main .tg-forum-statline strong { font-size: 1.05rem; color: #1c537a; }

/* Forum index: clear headings, distinct sections, more readable last activity. */
.tg-forum-main .tg-forum-index { gap: 1.25rem; }
.tg-forum-main .tg-forum-group,
.tg-forum-main .tg-forum-topic-list,
.tg-forum-main .tg-forum-search-result,
.tg-forum-main .tg-forum-my-post,
.tg-forum-main .tg-forum-post,
.tg-forum-main .tg-forum-poll,
.tg-forum-main .tg-forum-reply {
    border: 1px solid #d9e4e9;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 9px 25px rgba(24, 51, 67, .055);
}
.tg-forum-main .tg-forum-group-title {
    padding: .95rem 1.15rem;
    border-bottom: 1px solid #dae5ea;
    border-left: 4px solid #317da6;
    background: linear-gradient(100deg, #eaf4f9 0%, #f9fbfc 100%);
    color: #214b67;
    font-size: 1.04rem;
    letter-spacing: -.012em;
}
.tg-forum-main .tg-forum-node,
.tg-forum-main .tg-forum-topic {
    gap: .8rem 1rem;
    min-height: 82px;
    padding: 1rem 1.1rem;
    transition: background .17s ease;
}
.tg-forum-main .tg-forum-node:not(:last-child),
.tg-forum-main .tg-forum-topic:not(:last-child) { border-bottom-color: #e8eef2; }
.tg-forum-main .tg-forum-node:hover,
.tg-forum-main .tg-forum-topic:hover { background: #f5fafd; }
.tg-forum-main .tg-forum-node:focus-within,
.tg-forum-main .tg-forum-topic:focus-within { background: #f4f9fc; }
.tg-forum-main .tg-forum-node-main { grid-template-columns: 46px minmax(0, 1fr); gap: .85rem; }
.tg-forum-main .tg-forum-node-mark {
    width: 46px;
    height: 46px;
    border-color: #c5dce9;
    border-radius: .82rem;
    background: linear-gradient(145deg, #e7f3f9, #f6fbfe);
    color: #25658e;
}
.tg-forum-main .tg-forum-node-mark.is-unread,
.tg-forum-main .tg-forum-node.has-unread .tg-forum-node-mark { background: #dceef8; border-color: #87b9d4; }
.tg-forum-main .tg-forum-node-main h4,
.tg-forum-main .tg-forum-topic-main h3,
.tg-forum-main .tg-forum-search-result h3 {
    font-size: clamp(.98rem, 1.25vw, 1.07rem);
    line-height: 1.35;
}
.tg-forum-main .tg-forum-node-main h4 a,
.tg-forum-main .tg-forum-topic-main h3 a,
.tg-forum-main .tg-forum-search-result h3 a { color: #1e5679; }
.tg-forum-main .tg-forum-node-main p,
.tg-forum-main .tg-forum-search-result p,
.tg-forum-main .tg-forum-my-post p { color: #60737e; font-size: .885rem; line-height: 1.55; }
.tg-forum-main .tg-forum-count { font-size: .74rem; color: #6b7b83; }
.tg-forum-main .tg-forum-count strong { color: #26475c; font-size: 1.06rem; }
.tg-forum-main .tg-forum-latest { font-size: .82rem; line-height: 1.45; }
.tg-forum-main .tg-forum-latest a { font-size: .86rem; }
.tg-forum-main .tg-forum-meta { font-size: .825rem; line-height: 1.55; }
.tg-forum-main .tg-forum-topic.is-unread { box-shadow: inset 4px 0 0 #428eb5; background: #f9fcfe; }
.tg-forum-main .tg-forum-topic-list { margin-bottom: 1.15rem; }
.tg-forum-main .tg-forum-status-badge,
.tg-forum-main .tg-forum-pin,
.tg-forum-main .tg-forum-unread-badge { font-size: .68rem; }

/* Search, followed, unread and personal activity cards. */
.tg-forum-main .tg-forum-search {
    border-radius: .95rem;
    padding: .85rem;
    border-color: #d6e4eb;
    box-shadow: 0 7px 21px rgba(30, 68, 89, .045);
}
.tg-forum-main .tg-forum-search input[type="search"],
.tg-forum-main .tg-forum-search-filters select,
.tg-forum-main .tg-forum-search-filters input,
.tg-forum-main .tg-forum-sort-form select {
    min-height: 43px;
    border: 1px solid #cbdbe4;
    border-radius: .65rem;
    font-size: .9rem;
    color: #263c4b;
}
.tg-forum-main .tg-forum-search-filters label,
.tg-forum-main .tg-forum-sort-form label { font-size: .83rem; }
.tg-forum-main .tg-forum-search-results,
.tg-forum-main .tg-forum-my-posts { gap: .85rem; }
.tg-forum-main .tg-forum-search-result,
.tg-forum-main .tg-forum-my-post { padding: 1.1rem 1.2rem; }
.tg-forum-main .tg-forum-search-result.is-unread { border-left: 4px solid #377faf; }
.tg-forum-main .tg-forum-search-match {
    font-size: .8rem;
    border-color: #e2ebf0;
}
.tg-forum-main .tg-forum-search-summary,
.tg-forum-main .tg-forum-empty,
.tg-forum-main .tg-forum-signin-callout {
    padding: 1.15rem 1.25rem;
    border-radius: .93rem;
    font-size: .91rem;
}
.tg-forum-main .tg-forum-member-toolbar { margin-bottom: 1.1rem; }

/* Topic posts: structured author column, readable content, cleaner dividers. */
.tg-forum-main .tg-forum-topic-header {
    flex-wrap: wrap;
    gap: .65rem 1rem;
    padding: .9rem 1.1rem;
    margin-bottom: 1rem;
    border-color: #d5e4ea;
    border-radius: .9rem;
    box-shadow: 0 6px 18px rgba(26, 57, 72, .045);
}
.tg-forum-main .tg-forum-posts { gap: 1rem; }
.tg-forum-main .tg-forum-post { grid-template-columns: 172px minmax(0, 1fr); }
.tg-forum-main .tg-forum-post-author {
    padding: 1.2rem .9rem;
    background: linear-gradient(160deg, #eef5f9 0%, #f8fafc 96%);
    border-right: 1px solid #dfeaf0;
    gap: .68rem;
}
.tg-forum-main .tg-forum-post-author img {
    width: 80px;
    height: 80px;
    box-shadow: 0 3px 10px rgba(28, 65, 89, .12);
}
.tg-forum-main .tg-forum-post-author strong,
.tg-forum-main .tg-forum-post-author strong a { font-size: .97rem; color: #215b81; }
.tg-forum-main .tg-forum-post-author span { font-size: .76rem; line-height: 1.45; }
.tg-forum-main .tg-forum-post-main { padding: 1rem 1.25rem 1.2rem; }
.tg-forum-main .tg-forum-post-meta { margin-bottom: .95rem; padding-bottom: .7rem; font-size: .81rem; }
.tg-forum-main .tg-forum-post-body { color: #253947; font-size: .965rem; line-height: 1.75; }
.tg-forum-main .tg-forum-post-body blockquote {
    padding: .85rem 1rem;
    border-left: 4px solid #76aac8;
    border-radius: 0 .65rem .65rem 0;
    background: #f2f7fa;
}
.tg-forum-main .tg-forum-post-body pre { padding: .85rem 1rem; border-color: #d5e4eb; background: #f4f7f9; }
.tg-forum-main .tg-forum-edit-note,
.tg-forum-main .tg-forum-signature { font-size: .8rem; }
.tg-forum-main .tg-forum-post:target { border-color: #529cc3; box-shadow: 0 0 0 3px rgba(52, 132, 175, .13), 0 12px 24px rgba(22, 58, 80, .08); }
.tg-forum-main .tg-forum-reaction-bar { border-color: #dfebf0; }
.tg-forum-main .tg-forum-reaction-chip { min-height: 36px; }

/* Reply/topic compose, edit, polls and attachment controls. No changes to editor widgets. */
.tg-forum-main .tg-forum-compose[open] > form { border-color: #c9dce6; }
.tg-forum-main .tg-forum-compose form,
.tg-forum-main .tg-forum-reply form,
.tg-forum-main .tg-forum-edit form,
.tg-forum-main .tg-forum-report form {
    gap: .7rem;
    border-radius: .85rem;
    border-color: #d3e1e8;
}
.tg-forum-main .tg-forum-reply { padding: 1rem; }
.tg-forum-main .tg-forum-compose label,
.tg-forum-main .tg-forum-edit label,
.tg-forum-main .tg-forum-reply label,
.tg-forum-main .tg-forum-report label { font-size: .86rem; }
.tg-forum-main .tg-forum-form-help,
.tg-forum-main .tg-forum-optional { font-size: .81rem; line-height: 1.55; }
.tg-forum-main .tg-forum-attachment-picker,
.tg-forum-main .tg-forum-edit-attachments { border-color: #cfdee7; border-radius: .8rem; }
.tg-forum-main .tg-forum-poll { padding: 1.1rem 1.25rem; }
.tg-forum-main .tg-forum-poll-option > div:first-child { font-size: .9rem; }
.tg-forum-main .tg-forum-poll-track { height: 9px; }
.tg-forum-main .tg-forum-recycle,
.tg-forum-main .tg-forum-moderation,
.tg-forum-main .tg-forum-report,
.tg-forum-main .tg-forum-edit { border-radius: .82rem; }
.tg-forum-main .tgf-pagebar { gap: .4rem; }
.tg-forum-main .tgf-pagebar a,
.tg-forum-main .tgf-pagebar span { min-height: 38px; min-width: 38px; font-size: .85rem; }
.tg-forum-main .tgf-pagebar .active { background: #276b96; border-color: #276b96; color: #fff; }

/* Tablet and phone: avoid tiny topic counts or cramped author areas. */
@media (max-width: 980px) {
    .tg-forum-subnav-inner { flex-wrap: wrap; gap: .2rem; padding-block: .5rem; }
    .tg-forum-subnav-label { display: none; }
    .tg-forum-subnav-links { width: 100%; }
}
@media (max-width: 760px) {
    .tg-forum-main .tg-forum-node,
    .tg-forum-main .tg-forum-topic { padding: .85rem .9rem; }
    .tg-forum-main .tg-forum-post { grid-template-columns: 1fr; }
    .tg-forum-main .tg-forum-post-author {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        text-align: left;
        padding: .8rem .95rem;
        border-right: 0;
        border-bottom: 1px solid #dfeaf0;
    }
    .tg-forum-main .tg-forum-post-author img { width: 54px; height: 54px; }
    .tg-forum-main .tg-forum-post-main { padding: .9rem 1rem 1.1rem; }
    .tg-forum-main .tg-forum-search-result,
    .tg-forum-main .tg-forum-my-post { padding: .9rem 1rem; }
}
@media (max-width: 560px) {
    .tg-forum-subnav-links { gap: .2rem; }
    .tg-forum-subnav-link { padding: .5rem .72rem; min-height: 38px; font-size: .84rem; }
    .tg-forum-main .tg-forum-toolbar h2 { font-size: 1.24rem; }
    .tg-forum-main .tg-forum-group-title { font-size: 1rem; }
    .tg-forum-main .tg-forum-node,
    .tg-forum-main .tg-forum-topic { grid-template-columns: minmax(0, 1fr) auto; gap: .55rem; }
    .tg-forum-main .tg-forum-node-main { grid-column: 1 / -1; grid-template-columns: 40px minmax(0, 1fr); gap: .7rem; }
    .tg-forum-main .tg-forum-node-mark { width: 40px; height: 40px; }
    .tg-forum-main .tg-forum-topic-main { grid-column: 1 / -1; }
    .tg-forum-main .tg-forum-count { font-size: .76rem; }
    .tg-forum-main .tg-forum-count strong { font-size: .95rem; }
    .tg-forum-main .tg-forum-latest { grid-column: 1 / -1; }
    .tg-forum-main .tg-forum-post-body { font-size: .925rem; }
    .tg-forum-main .tg-forum-post-meta { font-size: .78rem; }
    .tg-forum-main .tg-forum-post-main { padding: .82rem .9rem 1rem; }
    .tg-forum-main .tg-forum-topic-header .tg-forum-meta { text-align: left; }
    .tg-forum-main .tg-forum-search,
    .tg-forum-main .tg-forum-search-primary { grid-template-columns: minmax(0, 1fr); }
    .tg-forum-main .tg-forum-statline { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
    .tg-forum-subnav-link,
    .tg-forum-main .tg-forum-node,
    .tg-forum-main .tg-forum-topic { transition: none; }
}

/* TG007 Build 0219 — Restore room for staff selection checkboxes in topic rows.
   Build 0218's scoped row padding inadvertently overrode the padding reserved
   by the original moderation control styling. Keep topic text clear of the
   absolute-positioned 30px selection button without affecting nonstaff rows. */
.tg-forum-main .tg-forum-topic:has(.tg-forum-topic-moderation-select) {
    padding-left: 3.7rem;
}
.tg-forum-main .tg-forum-topic-moderation-select {
    left: .75rem;
}
@media (max-width: 560px) {
    .tg-forum-main .tg-forum-topic:has(.tg-forum-topic-moderation-select) {
        padding-left: 3.4rem;
    }
    .tg-forum-main .tg-forum-topic-moderation-select {
        left: .55rem;
    }
}
