/* modules/forums/assets/forums.css — the public forum surface.
 *
 * Everything is scoped under `.forums` so a theme's own rules keep the page around it, and
 * every colour, radius and shadow reads the theme contract's --cms-* tokens
 * (site/themes/README.md section 6). A theme that defines them restyles the whole board
 * without touching this file.
 *
 * Until 1.5.0 this file read --color-primary, --glass-bg and seven other names that ONLY the
 * old starter theme ever defined, so every other theme -- tilspire.com's included -- silently
 * got that theme's blue links and blurred glass panels instead of its own design. The old
 * names are still read as a second fallback so existing forks keep working.
 *
 * One breakpoint, 768px. */

.forums {
    /* The theme contract (site/themes/README.md § 6). Each token reads the published
       --cms-* name first, the pre-1.5.0 name second so forks of the old starter theme keep
       their colours, and derives a neutral last resort from currentColor — which adapts to a
       light or a dark theme on its own, where a literal cannot.

       The literal line before each var() is the intended value, written out so a reader
       can see it — NOT a runtime fallback. A custom property accepts any token stream, so
       the color-mix() declaration below it always parses and always wins; on an engine
       without color-mix() the token computes to inherit/initial, never to that literal.
       color-mix() has been baseline since 2023; if you must support older, wrap the
       literals in @supports not (color: color-mix(in oklab, red, blue)). */
    --fx-primary:#0F766E;
    --fx-primary:var(--cms-accent, var(--color-primary, #0F766E));
    --fx-on-primary:var(--cms-accent-contrast, #FFFFFF);
    --fx-wash:rgba(15, 118, 110, 0.10);
    --fx-wash:var(--cms-accent-wash, color-mix(in oklab, var(--fx-primary) 12%, transparent));
    --fx-heading:var(--cms-ink, var(--color-heading, currentColor));
    --fx-text:var(--cms-text, var(--color-text, currentColor));
    --fx-muted:#64748b;
    --fx-muted:var(--cms-muted, color-mix(in oklab, currentColor 68%, transparent));
    --fx-dim:#94a3b8;
    --fx-dim:var(--cms-muted, color-mix(in oklab, currentColor 55%, transparent));
    --fx-line:rgba(100, 116, 139, 0.18);
    --fx-line:var(--cms-line, color-mix(in oklab, currentColor 14%, transparent));
    --fx-field:#cbd5e1;
    --fx-field:var(--cms-line-strong, color-mix(in oklab, currentColor 30%, transparent));
    --fx-surface:rgba(100, 116, 139, 0.06);
    --fx-surface:var(--cms-surface, var(--glass-bg, color-mix(in oklab, currentColor 5%, transparent)));
    --fx-sunk:rgba(100, 116, 139, 0.10);
    --fx-sunk:var(--cms-sunk, color-mix(in oklab, currentColor 8%, transparent));
    --fx-surface-line:var(--cms-line, var(--glass-border, color-mix(in oklab, currentColor 14%, transparent)));
    --fx-shadow:var(--cms-shadow, var(--glass-shadow, none));
    --fx-radius:var(--cms-radius, var(--radius-md, 10px));
    --fx-radius-lg:var(--cms-radius, var(--radius-lg, 12px));
    --fx-radius-pill:var(--radius-pill, 999px);
    --fx-font:var(--cms-font, inherit);
    display:flex;
    flex-direction:column;
    gap:24px;
    color:var(--fx-text);
    font-family:var(--fx-font);
}

.forums-index{gap:32px}
.forums-topic{gap:20px}

/* :where() contributes no specificity, so this is the DEFAULT link colour that any
   component class below overrides without needing a longer selector. */
:where(.forums) a{color:var(--fx-primary);text-decoration:none}
:where(.forums) a:hover{color:var(--fx-heading)}
.forums h1, .forums h2, .forums h3{color:var(--fx-heading);letter-spacing:-0.3px}
.forums p{margin:0}

.forums-sr {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
    border:0;
}

.forums :focus-visible{outline:2px solid var(--fx-primary);outline-offset:2px;border-radius:4px}

.forums-muted{color:var(--fx-dim);font-size:0.85rem}

/* --- The panel every list sits in --------------------------------------- */

.forums-card {
    background:var(--fx-surface);
    border:1px solid var(--fx-surface-line);
    border-radius:var(--fx-radius-lg);
    box-shadow:var(--fx-shadow);
    padding:8px;
    box-sizing:border-box;
}

/* --- Breadcrumbs --------------------------------------------------------------- */

.forums-crumbs {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    font-size:0.875rem;
    color:var(--fx-muted);
}
.forums-crumbs a{color:var(--fx-muted)}
.forums-crumbs a:hover{color:var(--fx-heading)}
.forums-crumbs [aria-current="page"]{color:var(--fx-heading);font-weight:500}
.forums-crumbs__sep{font-size:0.75rem;color:var(--fx-dim)}

/* --- Hero (the board index) ---------------------------------------------------- */

.forums-hero {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:32px;
    flex-wrap:wrap;
}
.forums-hero__text {
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:0;
}
.forums-hero__badge {
    display:inline-flex;
    align-items:center;
    gap:8px;
    width:max-content;
    background:rgba(37, 99, 235, 0.1);
    color:var(--fx-primary);
    font-weight:600;
    font-size:0.85rem;
    padding:8px 16px;
    border-radius:var(--fx-radius-pill);
}
.forums-hero h1{margin:0;font-size:2.5rem;font-weight:700;letter-spacing:-1px;line-height:1.15}
.forums-hero__lead{font-size:1.0625rem;color:var(--fx-muted);max-width:560px}
.forums-hero__aside {
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:14px;
}
.forums-hero__stats{font-size:0.845rem;color:var(--fx-muted)}
.forums-hero__stats a{margin-left:8px}

.forums-search {
    display:flex;
    align-items:center;
    gap:10px;
    background:var(--fx-surface);
    border:1px solid var(--fx-surface-line);
    border-radius:var(--fx-radius-pill);
    padding:8px 8px 8px 18px;
    box-shadow:var(--fx-shadow);
    width:340px;
    max-width:100%;
    box-sizing:border-box;
}
.forums-search--page{width:100%}
.forums-search__icon{color:var(--fx-dim)}
.forums-search__input {
    flex:1;
    min-width:0;
    border:0;
    background:transparent;
    font:inherit;
    font-size:0.9rem;
    color:var(--fx-text);
    outline:none;
}
.forums-search__btn {
    border:0;
    background:var(--fx-primary);
    color:#fff;
    font:inherit;
    font-weight:600;
    font-size:0.875rem;
    padding:8px 18px;
    border-radius:var(--fx-radius-pill);
    cursor:pointer;
}

/* --- Section heads (a forum, a topic, the composer) ---------------------------- */

.forums-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:32px;
    flex-wrap:wrap;
}
.forums-head--topic{align-items:flex-start}
.forums-head__id {
    display:flex;
    align-items:center;
    gap:20px;
    min-width:0;
}
.forums-head__text {
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0;
}
.forums-head h1{margin:0;font-size:2rem;font-weight:700;letter-spacing:-0.8px;line-height:1.2}
.forums-head--topic h1, .forums-head--compose h1{font-size:1.875rem;line-height:1.25}
.forums-head__lead{font-size:0.97rem;color:var(--fx-muted)}
.forums-head__counts{white-space:nowrap}
.forums-head__actions {
    display:flex;
    align-items:center;
    gap:12px;
    flex:none;
}
.forums-head__meta {
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    font-size:0.875rem;
    color:var(--fx-muted);
}
.forums-head__meta a{color:var(--fx-heading);font-weight:500}
.forums-head__dot{color:var(--fx-field)}

.forums-subhead{margin:4px 0 0;font-size:1.125rem;font-weight:700}

/* --- Buttons ------------------------------------------------------------------- */

.forums-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:10px 24px;
    border-radius:6px;
    font-weight:600;
    font-size:0.9rem;
    font-family:inherit;
    line-height:1.4;
    cursor:pointer;
    border:1px solid transparent;
}
.forums-btn--primary{background:var(--fx-primary);color:#fff}
.forums-btn--primary:hover{color:#fff;filter:brightness(0.94)}
.forums-btn--ghost{border-color:var(--fx-field);background:var(--fx-surface);color:var(--fx-text)}
.forums-btn--ghost:hover{color:var(--fx-heading)}
.forums-btn--small{padding:8px 14px;font-size:0.83rem}
.forums-btn--danger{color:#b91c1c;border-color:#fecaca;background:#fef2f2}

.forums-linkbtn {
    border:0;
    background:none;
    padding:0;
    font:inherit;
    font-weight:600;
    color:inherit;
    text-decoration:underline;
    cursor:pointer;
}

/* --- Badges, flags and notes ---------------------------------------------------- */

.forums-badge {
    display:inline-block;
    padding:3px 12px;
    border-radius:20px;
    font-size:0.75rem;
    font-weight:600;
    line-height:1.5;
    white-space:nowrap;
}
.forums-badge--staff{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}
.forums-badge--blue{background:#dbeafe;color:#1e40af}
.forums-badge--gray{background:#f1f5f9;color:#475569}
.forums-profile .forums-badge{padding:6px 14px;font-size:0.875rem}

.forums-flag{color:var(--fx-primary);font-size:0.85rem}
.forums-flag--pinned{color:var(--fx-primary)}

.forums-note {
    display:flex;
    align-items:flex-start;
    gap:8px;
    font-size:0.9rem;
    color:var(--fx-muted);
}
.forums-note i{margin-top:4px;color:var(--fx-dim)}

.forums-alert {
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:16px 20px;
    border-radius:6px;
    font-size:0.9rem;
    font-weight:500;
    max-width:720px;
}
.forums-alert i{margin-top:4px;flex:none}
.forums-alert__text {
    display:flex;
    flex-direction:column;
    gap:4px;
}
.forums-alert__actions {
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
}
.forums-alert--warn{background:#fef3c7;border:1px solid #fde68a;color:#92400e}
.forums-alert--warn a{color:#92400e;text-decoration:underline}
.forums-alert--error{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}

.forums-empty {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:12px;
    padding:48px 24px;
    text-align:center;
    color:var(--fx-muted);
}
.forums-empty i{font-size:1.75rem;color:var(--fx-dim)}
.forums-empty h1{margin:0;font-size:1.5rem}
.forums-empty--notice{padding:40px 24px}
.forums-rowempty{padding:28px 24px;color:var(--fx-muted);font-size:0.9rem}
.forums-notice__back {
    display:flex;
}
.forums-resultcount{font-size:0.9rem;color:var(--fx-muted)}

/* --- Avatars -------------------------------------------------------------------- */

.forums-avatar {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    font-weight:700;
    line-height:1;
    flex:none;
}
.forums-avatar--xs{width:24px;height:24px;font-size:0.7rem}
.forums-avatar--sm{width:32px;height:32px;font-size:0.8rem}
.forums-avatar--md{width:40px;height:40px;font-size:0.875rem}
.forums-avatar--xl{width:56px;height:56px;font-size:1.25rem}
.forums-avatar--t0{background:#dbeafe;color:#1e40af}
.forums-avatar--t1{background:#fce7f3;color:#9d174d}
.forums-avatar--t2{background:#dcfce7;color:#166534}
.forums-avatar--t3{background:#ffedd5;color:#9a3412}
.forums-avatar--t4{background:#e0e7ff;color:#3730a3}
.forums-avatar--tx{background:#f1f5f9;color:#475569}

/* --- Forum / node icon tiles ---------------------------------------------------- */

.forums-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border-radius:12px;
    background:#eff6ff;
    color:var(--fx-primary);
    font-size:1.1rem;
    flex:none;
}
.forums-icon--lg{width:56px;height:56px;border-radius:var(--fx-radius);font-size:1.3rem}
.forums-icon--t1{background:#f3e8ff;color:#9333ea}
.forums-icon--t2{background:#dcfce7;color:#166534}
.forums-icon--t3{background:#fef3c7;color:#b45309}
.forums-icon--t4{background:#e0e7ff;color:#3730a3}
.forums-icon--category{background:#f1f5f9;color:#475569}
.forums-icon--link{background:#e0e7ff;color:#3730a3}

/* --- List sections: the column strip and the rows -------------------------------- */

.forums-group__head {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:16px;
    padding:18px 24px 12px;
}
.forums-group__head h2{margin:0;font-size:1.125rem;font-weight:700}
.forums-group__head h2 a{color:inherit}
.forums-group__count{font-size:0.8rem;color:var(--fx-dim);font-weight:500}

.forums-cols {
    display:grid;
    gap:16px;
    align-items:center;
    padding:14px 24px 10px;
    font-size:0.75rem;
    font-weight:600;
    color:var(--fx-dim);
    text-transform:uppercase;
    letter-spacing:0.6px;
}
.forums-cols--forum {
    grid-template-columns:minmax(0, 1fr) 150px 290px;
}
.forums-cols--forum span:nth-child(2){text-align:right}
.forums-cols--topic {
    grid-template-columns:minmax(0, 1fr) 90px 90px 220px;
}
.forums-cols--topic span:nth-child(2), .forums-cols--topic span:nth-child(3){text-align:right}

.forums-row {
    display:grid;
    gap:16px;
    align-items:center;
    padding:18px 24px;
    border-radius:var(--fx-radius);
}
.forums-row--forum {
    grid-template-columns:minmax(0, 1fr) 150px 290px;
}
.forums-row--topic {
    grid-template-columns:minmax(0, 1fr) 90px 90px 220px;
    padding:16px 24px;
}
.forums-row--result {
    grid-template-columns:minmax(0, 1fr);
}
.forums-row + .forums-row{border-top:1px solid var(--fx-line);border-radius:0 0 var(--fx-radius) var(--fx-radius)}
.forums-row:hover{background:rgba(255, 255, 255, 0.55)}
.forums-row--pinned{background:rgba(37, 99, 235, 0.05)}
.forums-row--removed{opacity:0.65}

.forums-row__main {
    display:flex;
    align-items:center;
    gap:16px;
    min-width:0;
}
.forums-row--topic .forums-row__main{gap:14px}
.forums-row__text {
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}
.forums-row__titleline {
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
}
.forums-row__title {
    font-weight:600;
    font-size:1rem;
    color:var(--fx-heading);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.forums-row--topic .forums-row__title{font-size:0.97rem}
.forums-row__desc{font-size:0.875rem;color:var(--fx-muted);line-height:1.5}
.forums-row__subs, .forums-row__meta{font-size:0.8125rem;color:var(--fx-muted)}
.forums-row__meta {
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
.forums-row__snippet{font-size:0.9rem;color:var(--fx-muted);line-height:1.6}
.forums-row__snippet mark{background:#fef3c7;color:var(--fx-heading);border-radius:3px;padding:0 2px}
.forums-row__compact{display:none;font-size:0.78rem;color:var(--fx-dim);margin-top:4px}
.forums-row__compact a{color:var(--fx-text)}

.forums-row__counts, .forums-row__num{text-align:right;font-size:0.875rem;color:var(--fx-muted);font-variant-numeric:tabular-nums}
.forums-row__counts strong{color:var(--fx-heading);font-weight:600}
.forums-row__num[data-strong]{color:var(--fx-heading);font-weight:600}
.forums-row__num--soft{color:var(--fx-muted);font-weight:400}

.forums-row__last {
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}
.forums-row__lasttext {
    display:flex;
    flex-direction:column;
    min-width:0;
    line-height:1.45;
}
.forums-row__lasttitle {
    font-size:0.875rem;
    font-weight:500;
    color:var(--fx-heading);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.forums-row__lastmeta{font-size:0.78rem;color:var(--fx-muted)}
.forums-row__last .forums-person{font-size:0.845rem;color:var(--fx-heading);font-weight:500}

.forums-person{font-weight:500}
.forums-row__meta .forums-person{color:var(--fx-heading)}

/* --- Pager ----------------------------------------------------------------------- */

.forums-pager {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
}
.forums-pager__summary{font-size:0.875rem;color:var(--fx-muted)}
.forums-pager__pills {
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
    margin-left:auto;
}
.forums-pager__gap{color:var(--fx-dim);padding:0 4px}
.forums-pill {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-width:36px;
    height:36px;
    padding:0 12px;
    border-radius:var(--fx-radius-pill);
    background:var(--fx-surface);
    border:1px solid var(--fx-surface-line);
    color:var(--fx-text);
    font-weight:500;
    font-size:0.875rem;
}
.forums-pill:hover{color:var(--fx-heading)}
.forums-pill--current{background:var(--fx-primary);border-color:var(--fx-primary);color:#fff;font-weight:600}
.forums-pill--current:hover{color:#fff}

/* --- Posts ------------------------------------------------------------------------ */

.forums-posts {
    display:flex;
    flex-direction:column;
    gap:20px;
}

.forums-post {
    display:grid;
    grid-template-columns:200px minmax(0, 1fr);
    grid-template-areas:"aside head" "aside body" "aside reason" "aside actions";
    background:var(--fx-surface);
    border:1px solid var(--fx-surface-line);
    border-radius:var(--fx-radius);
    box-shadow:var(--fx-shadow);
    overflow:hidden;
}
.forums-post--removed{opacity:0.8}

.forums-post__aside {
    grid-area:aside;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding:28px 20px;
    border-right:1px solid var(--fx-line);
    background:rgba(255, 255, 255, 0.35);
    text-align:center;
}
.forums-post__who {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
}
.forums-post__who .forums-person{font-weight:600;font-size:0.9375rem;color:var(--fx-heading)}
.forums-post__stats{font-size:0.78rem;color:var(--fx-muted);line-height:1.5}

.forums-post__head {
    grid-area:head;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:24px 28px 0;
    font-size:0.8125rem;
    color:var(--fx-muted);
}
.forums-post__edited{color:var(--fx-dim)}
.forums-post__num{color:var(--fx-dim);font-weight:500}

.forums-post__body {
    grid-area:body;
    padding:16px 28px 0;
    font-size:0.97rem;
    line-height:1.7;
}
.forums-post__deleted summary{cursor:pointer;color:var(--fx-muted);font-weight:600}
.forums-post__deleted .forums-prose{margin-top:12px}
.forums-post__reason {
    grid-area:reason;
    padding:12px 28px 0;
    font-size:0.8125rem;
    color:var(--fx-dim);
}

.forums-post__actions {
    grid-area:actions;
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
    margin:16px 28px 20px;
    padding-top:14px;
    border-top:1px solid var(--fx-line);
    font-size:0.845rem;
    font-weight:500;
}
.forums-post__spacer{flex:1}
.forums-action-form {
    display:inline-flex;
    margin:0;
}
.forums-action {
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--fx-muted);
    background:none;
    border:0;
    padding:0;
    font:inherit;
    font-weight:500;
    cursor:pointer;
}
.forums-action:hover{color:var(--fx-heading)}
.forums-action--danger{color:#b91c1c}

/* --- The post body (member HTML, already filtered by Sanitizer::PROFILE_MEMBER) ---- */

.forums-prose{color:var(--fx-text);overflow-wrap:anywhere}
.forums-prose p{margin:0 0 14px}
.forums-prose > :last-child{margin-bottom:0}
.forums-prose h3{font-size:1.15rem;margin:0 0 10px}
.forums-prose h4{font-size:1rem;margin:0 0 10px}
.forums-prose ul, .forums-prose ol{margin:0 0 14px;padding-left:22px}
.forums-prose li{margin-bottom:4px}
.forums-prose pre {
    margin:0 0 14px;
    padding:14px 16px;
    background:#0f172a;
    color:#e2e8f0;
    border-radius:10px;
    font:0.845rem/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    overflow-x:auto;
}
.forums-prose code{font:0.9em ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;background:rgba(15, 23, 42, 0.06);border-radius:4px;padding:1px 5px}
.forums-prose pre code{background:none;padding:0}
.forums-prose blockquote {
    margin:0 0 14px;
    padding:12px 18px;
    border-left:3px solid var(--fx-primary);
    background:rgba(37, 99, 235, 0.06);
    border-radius:0 10px 10px 0;
    color:var(--fx-text);
}
.forums-prose blockquote p{margin:0 0 6px}
.forums-prose blockquote > :last-child{margin-bottom:0}

/* --- Moderation disclosure --------------------------------------------------------- */

.forums-mod{padding:0}
.forums-mod > summary {
    display:flex;
    align-items:center;
    gap:10px;
    padding:16px 24px;
    cursor:pointer;
    font-weight:600;
    color:var(--fx-heading);
    list-style:none;
}
.forums-mod > summary::-webkit-details-marker{display:none}
.forums-mod > summary::after{content:"\203A";margin-left:auto;color:var(--fx-dim);transition:transform .15s ease}
.forums-mod[open] > summary{border-bottom:1px solid var(--fx-line)}
.forums-mod[open] > summary::after{transform:rotate(90deg)}
.forums-mod__body {
    display:flex;
    flex-direction:column;
    gap:16px;
    padding:18px 24px 22px;
}
.forums-mod__quick {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.forums-mod__quick form{margin:0}
.forums-mod__form {
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.forums-mod__form label{font-size:0.8125rem;font-weight:600;color:var(--fx-text)}
.forums-mod__form .forums-input{flex:1;min-width:200px}

/* --- Fields and the composer -------------------------------------------------------- */

.forums-field {
    display:flex;
    flex-direction:column;
    gap:8px;
}
.forums-field > label{font-weight:600;font-size:0.875rem;color:var(--fx-text)}

.forums-input {
    width:100%;
    box-sizing:border-box;
    padding:12px;
    border:1px solid var(--fx-field);
    border-radius:6px;
    background:#fff;
    font:inherit;
    font-size:0.95rem;
    color:var(--fx-heading);
    outline:none;
}
.forums-input:focus{border-color:var(--fx-primary)}
.forums-input--title{padding:14px 16px;font-size:1.125rem;font-weight:500}

.forums-composer {
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:28px 32px;
}
.forums-composer__head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
}
.forums-composer__head h2{margin:0;font-size:1.25rem;font-weight:700}
.forums-composer__as{font-size:0.845rem;color:var(--fx-muted)}
.forums-composer__as strong{color:var(--fx-heading);font-weight:600}
.forums-composer__form {
    display:flex;
    flex-direction:column;
    gap:22px;
}
.forums-composer--inline .forums-composer__form{gap:14px}
.forums-composer__foot {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
}
.forums-composer__hint{font-size:0.8125rem;color:var(--fx-muted)}
.forums-composer__hint strong{color:var(--fx-heading);font-weight:600}
.forums-composer__buttons {
    display:flex;
    align-items:center;
    gap:10px;
    margin-left:auto;
}

.forums-editor {
    display:flex;
    flex-direction:column;
    border:1px solid var(--fx-field);
    border-radius:12px;
    background:#fff;
    overflow:hidden;
}
.forums-textarea {
    width:100%;
    box-sizing:border-box;
    min-height:150px;
    padding:16px 18px;
    border:0;
    background:transparent;
    font:inherit;
    font-size:0.97rem;
    line-height:1.7;
    color:var(--fx-text);
    resize:vertical;
    outline:none;
}

/* Quill's snow skin, restyled to the panel: a flat toolbar strip and a borderless
   editor, so the vendored stylesheet's own chrome never shows through. */

.forums-editor .ql-toolbar.ql-snow{border:0;border-bottom:1px solid #e2e8f0;background:#f8fafc;padding:8px 10px;font-family:inherit}
.forums-editor .ql-container.ql-snow{border:0;font-family:inherit}
.forums-editor .ql-editor{min-height:150px;padding:16px 18px;font-size:0.97rem;line-height:1.7;color:var(--fx-text)}
.forums-editor .ql-editor.ql-blank::before{color:var(--fx-dim);font-style:normal;left:18px;right:18px}
.forums-editor .ql-snow.ql-toolbar button{width:32px;height:32px;border-radius:6px}
.forums-editor .ql-snow.ql-toolbar button:hover{background:#e2e8f0}
.forums-editor .ql-snow.ql-toolbar button.ql-active{background:#e2e8f0}
.forums-editor .ql-snow .ql-stroke{stroke:var(--fx-text)}
.forums-editor .ql-snow .ql-fill{fill:var(--fx-text)}
.forums-editor .ql-snow.ql-toolbar button:hover .ql-stroke, .forums-editor .ql-snow.ql-toolbar button.ql-active .ql-stroke{stroke:var(--fx-primary)}
.forums-editor .ql-snow.ql-toolbar button:hover .ql-fill, .forums-editor .ql-snow.ql-toolbar button.ql-active .ql-fill{fill:var(--fx-primary)}
.forums-editor .ql-editor blockquote{border-left:3px solid var(--fx-primary);background:rgba(37, 99, 235, 0.06);border-radius:0 10px 10px 0;padding:10px 16px;margin:0 0 12px}
.forums-editor .ql-editor pre.ql-syntax, .forums-editor .ql-editor pre{background:#0f172a;color:#e2e8f0;border-radius:10px;padding:14px 16px}

/* --- Member profile ------------------------------------------------------------------ */

.forums-profile {
    display:flex;
    align-items:center;
    gap:20px;
    padding:28px 32px;
}
.forums-profile__text {
    display:flex;
    flex-direction:column;
    gap:8px;
    min-width:0;
}
.forums-profile h1{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-0.6px}
.forums-profile__meta {
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    font-size:0.875rem;
    color:var(--fx-muted);
}

/* --- Phone ---------------------------------------------------------------------------- */

@media screen and (max-width:768px) {
    .forums, .forums-index, .forums-topic{gap:18px}

    .forums-hero {
        flex-direction:column;
        align-items:stretch;
        gap:16px;
    }
    .forums-hero__aside{align-items:stretch}
    .forums-hero h1{font-size:1.875rem;letter-spacing:-0.8px}
    .forums-hero__lead{font-size:0.9375rem}
    .forums-hero__stats{text-align:center}
    .forums-search{width:100%;padding:6px 6px 6px 16px}
    .forums-search__btn{min-width:44px;min-height:44px;padding:0 16px}

    .forums-card{border-radius:20px;padding:6px}
    .forums-head {
        flex-direction:column;
        align-items:stretch;
        gap:14px;
    }
    .forums-head--topic{align-items:stretch}
    .forums-head h1, .forums-head--topic h1, .forums-head--compose h1{font-size:1.4375rem;letter-spacing:-0.5px;line-height:1.3}
    .forums-head__id{gap:14px}
    .forums-head__actions {
        flex-direction:row;
        gap:8px;
    }
    .forums-head__actions .forums-btn{flex:1;min-height:44px}
    .forums-icon--lg{width:44px;height:44px;border-radius:12px;font-size:1.1rem}

    /* No columns on a phone: the numbers and the last post ride under the title. */

    .forums-cols{display:none}
    .forums-row__counts, .forums-row__num, .forums-row__last{display:none}
    .forums-row__compact{display:block}
    .forums-row, .forums-row--forum, .forums-row--topic {
        grid-template-columns:minmax(0, 1fr);
        padding:14px 16px;
        border-radius:14px;
    }
    .forums-row__main{align-items:flex-start;gap:14px}
    .forums-row__title{white-space:normal}
    .forums-group__head{padding:14px 16px 8px}
    .forums-group__head h2{font-size:1rem}
    .forums-rowempty{padding:20px 16px}

    .forums-post {
        grid-template-columns:auto minmax(0, 1fr);
        grid-template-areas:"aside head" "body body" "reason reason" "actions actions";
        gap:0 10px;
        padding:16px 18px;
    }
    .forums-post__aside {
        flex-direction:row;
        align-items:center;
        gap:10px;
        padding:0;
        border-right:0;
        background:none;
        text-align:left;
    }
    .forums-post__who {
        align-items:flex-start;
        flex-direction:row;
        flex-wrap:wrap;
        gap:6px;
    }
    .forums-post__stats{display:none}
    .forums-post__aside .forums-avatar{width:36px;height:36px;font-size:0.875rem}
    .forums-post__head{padding:0;align-items:flex-start;font-size:0.78rem}
    .forums-post__body{padding:12px 0 0;font-size:0.9375rem;line-height:1.65}
    .forums-post__reason{padding:10px 0 0}
    .forums-post__actions{margin:10px 0 0;padding-top:10px;gap:16px}
    .forums-action{min-height:44px}
    .forums-post__spacer{display:none}

    .forums-composer{padding:18px;gap:12px}
    .forums-composer__form{gap:16px}
    .forums-composer__buttons{width:100%}
    .forums-composer__buttons .forums-btn{flex:1;min-height:44px}
    .forums-textarea, .forums-editor .ql-editor{min-height:120px}
    .forums-editor .ql-snow.ql-toolbar{overflow-x:auto;white-space:nowrap}
    .forums-editor .ql-snow.ql-toolbar button{width:40px;height:40px}

    .forums-pager {
        flex-direction:column;
        align-items:flex-start;
        gap:12px;
    }
    .forums-pager__pills{margin-left:0}
    .forums-pill{min-width:44px;height:44px}

    .forums-profile {
        flex-direction:column;
        align-items:flex-start;
        padding:20px;
    }
    .forums-profile h1{font-size:1.4375rem}
    .forums-mod__form {
        align-items:stretch;
        flex-direction:column;
    }
    .forums-mod__form .forums-btn{min-height:44px}
}
