/* FORUM (Reddit-style) */
[hidden] { display: none !important; }
.forum-page { padding-top: calc(var(--navbar-h) + 2rem); padding-bottom: 4rem; min-height: 100vh; }
.forum-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.forum-title { font-family: var(--font-display, 'Syne', sans-serif); font-size: clamp(1.8rem, 3.5vw, 2.6rem); font-weight: 800; color: #fff; margin: 0 0 .35rem; }
.forum-sub { color: #9aa7ba; margin: 0; max-width: 640px; line-height: 1.6; }
.forum-tabs { display: flex; gap: .25rem; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 1.25rem; }
.forum-tab { padding: .7rem 1.2rem; font-weight: 600; color: #9aa7ba; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.forum-tab:hover { color: #fff; }
.forum-tab.active { color: var(--accent, #00d4ff); border-bottom-color: var(--accent, #00d4ff); }
.forum-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.25rem; align-items: start; }

.fm-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border: 1px solid transparent; border-radius: 999px; padding: .6rem 1.3rem; font-size: .9rem; font-weight: 700; cursor: pointer; transition: background .15s, border-color .15s, opacity .15s; font-family: inherit; text-decoration: none; }
.fm-btn-primary { background: var(--accent, #00d4ff); color: #04121a; }
.fm-btn-primary:hover:not(:disabled) { background: #33ddff; }
.fm-btn-ghost { background: transparent; color: var(--accent, #00d4ff); border-color: var(--accent, #00d4ff); }
.fm-btn-ghost:hover { background: rgba(0,212,255,.1); }
.fm-btn:disabled { opacity: .5; cursor: not-allowed; }
.fm-block { width: 100%; }

.forum-controls { display: flex; gap: .75rem; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: .75rem; }
.forum-sorts { display: flex; gap: .3rem; padding: .3rem; background: #0d141d; border: 1px solid rgba(255,255,255,.08); border-radius: 999px; }
.forum-sorts button { border: 0; background: none; color: #9aa7ba; font-weight: 600; font-size: .88rem; padding: .45rem 1.1rem; border-radius: 999px; cursor: pointer; font-family: inherit; }
.forum-sorts button:hover { color: #fff; }
.forum-sorts button.on { background: rgba(0,212,255,.14); color: var(--accent, #00d4ff); }
.forum-search { flex: 1 1 200px; max-width: 320px; background: #0d141d; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; padding: .55rem 1.1rem; color: #e6edf3; font-size: .9rem; outline: none; font-family: inherit; }
.forum-search:focus { border-color: var(--accent, #00d4ff); }
.forum-cats { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .4rem; margin-bottom: .9rem; scrollbar-width: none; }
.forum-cats::-webkit-scrollbar { display: none; }
.forum-cats button { flex-shrink: 0; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03); color: #b7c1d6; padding: .4rem 1rem; border-radius: 999px; font-size: .84rem; cursor: pointer; font-family: inherit; transition: border-color .15s, color .15s; }
.forum-cats button:hover { border-color: rgba(0,212,255,.5); color: #fff; }
.forum-cats button.on { background: rgba(0,212,255,.14); border-color: var(--accent, #00d4ff); color: var(--accent, #00d4ff); }

.fp { display: flex; background: #0d141d; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; margin-bottom: .8rem; overflow: hidden; transition: border-color .2s; cursor: pointer; }
.fp:hover { border-color: rgba(255,255,255,.2); }
.fp-full { cursor: default; }
.fp-full:hover { border-color: rgba(255,255,255,.08); }
.fv { display: flex; flex-direction: column; align-items: center; gap: .15rem; padding: .7rem .5rem; background: #0a1119; min-width: 52px; flex-shrink: 0; }
.fv.inline { flex-direction: row; background: none; padding: 0; min-width: 0; gap: .15rem; }
.fvb { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border: 0; background: none; color: #6b7a8c; border-radius: 6px; cursor: pointer; padding: 0; }
.fvb svg { width: 18px; height: 18px; }
.fvb.down svg { transform: rotate(180deg); }
.fvb:hover { background: rgba(255,255,255,.07); color: #fff; }
.fvb.up.on { color: var(--accent, #00d4ff); }
.fvb.down.on { color: #ff6b7a; }
.fvs { font-weight: 700; font-size: .9rem; color: #cfd8ee; min-width: 1.2ch; text-align: center; }
.fvs.up { color: var(--accent, #00d4ff); }
.fvs.down { color: #ff6b7a; }
.fp-main { flex: 1; min-width: 0; padding: .85rem 1.1rem .7rem; }
.fp-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; font-size: .8rem; color: #8b98ab; margin-bottom: .45rem; }
.fp-by b { color: #e6edf3; font-weight: 600; }
.fp-dot { opacity: .6; }
.fp-pinned { display: inline-flex; align-items: center; gap: .25rem; color: #39ff88; font-weight: 700; }
.fp-pinned svg { width: 13px; height: 13px; }
.fchip { background: rgba(0,212,255,.12); color: var(--accent, #00d4ff); border-radius: 999px; padding: 1px 10px; font-size: .74rem; font-weight: 700; }
.frb { margin-left: .35rem; font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 0 6px; border-radius: 999px; border: 1px solid; }
.frb.admin { color: #ff4d5e; border-color: rgba(255,77,94,.4); background: rgba(255,77,94,.08); }
.frb.instructor { color: #ffb020; border-color: rgba(255,176,32,.4); background: rgba(255,176,32,.08); }
.fav { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; overflow: hidden; background: rgba(0,212,255,.1); color: var(--accent, #00d4ff); font-weight: 700; flex-shrink: 0; border: 1px solid rgba(255,255,255,.12); }
.fav img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fav-xs { width: 20px; height: 20px; font-size: .62rem; }
.fav-sm { width: 26px; height: 26px; font-size: .7rem; }
.fp-title { margin: 0 0 .4rem; font-size: 1.12rem; font-weight: 700; line-height: 1.35; }
.fp-title a { color: #fff; }
.fp:hover .fp-title a { color: var(--accent, #00d4ff); }
.fp-body { margin: 0 0 .5rem; color: #aab5c6; font-size: .92rem; line-height: 1.6; white-space: pre-wrap; word-break: break-word; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fp-title-full { margin: 0 0 .7rem; font-size: 1.5rem; font-weight: 800; color: #fff; line-height: 1.3; word-break: break-word; }
.fp-text { white-space: pre-wrap; word-break: break-word; color: #dbe4ec; line-height: 1.7; font-size: .98rem; margin-bottom: .8rem; }
.fp-foot { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; margin-top: .2rem; }
.fp-act { display: inline-flex; align-items: center; gap: .4rem; background: none; border: 0; color: #8b98ab; font-size: .82rem; font-weight: 600; padding: .4rem .65rem; border-radius: 8px; cursor: pointer; font-family: inherit; }
.fp-act svg { width: 15px; height: 15px; }
.fp-act:hover { background: rgba(255,255,255,.07); color: #fff; }
.fp-act.static { cursor: default; }
.fp-act.static:hover { background: none; color: #8b98ab; }
.fp-act.danger:hover { color: #ff6b7a; background: rgba(255,107,122,.1); }
.fp-back { display: inline-block; margin-bottom: .9rem; color: #9aa7ba; font-weight: 600; font-size: .9rem; }
.fp-back:hover { color: var(--accent, #00d4ff); }

.fe { text-align: center; color: #8b98ab; padding: 2.5rem 1rem; background: #0d141d; border: 1px dashed rgba(255,255,255,.12); border-radius: 12px; }
.fe h3 { color: #fff; margin: 0 0 .4rem; }
.fe .fm-btn { margin-top: 1rem; }
.fp-skel { height: 112px; background: linear-gradient(90deg, #0d141d 25%, #131c28 50%, #0d141d 75%); background-size: 200% 100%; animation: fmShimmer 1.4s infinite; border: 1px solid rgba(255,255,255,.06); border-radius: 12px; margin-bottom: .8rem; }
@keyframes fmShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.forum-more { text-align: center; margin-top: 1rem; }

.fcomposer { background: #0d141d; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: .9rem; margin: 1rem 0 1.25rem; }
.fcomposer.guest { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; color: #9aa7ba; }
.fcomposer textarea, .fc-reply textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 84px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); border-radius: 10px; padding: .75rem .9rem; color: #e6edf3; font-size: .93rem; line-height: 1.55; font-family: inherit; outline: none; }
.fcomposer textarea:focus, .fc-reply textarea:focus { border-color: var(--accent, #00d4ff); box-shadow: 0 0 0 3px rgba(0,212,255,.12); }
.fcomposer-row { display: flex; align-items: center; justify-content: space-between; margin-top: .6rem; gap: .6rem; }
.fcount { font-size: .75rem; color: #6b7a8c; }

.fc { display: flex; gap: .6rem; margin-top: .95rem; }
.fc-rail { width: 14px; flex-shrink: 0; display: flex; justify-content: center; cursor: pointer; }
.fc-rail::before { content: ''; width: 2px; background: rgba(255,255,255,.1); border-radius: 2px; transition: background .15s; }
.fc-rail:hover::before { background: var(--accent, #00d4ff); }
.fc.flat > .fc-rail { display: none; }
.fc-main { flex: 1; min-width: 0; }
.fc-head { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; font-size: .8rem; color: #8b98ab; }
.fc-head b { color: #e6edf3; }
.fc-body { white-space: pre-wrap; word-break: break-word; color: #dbe4ec; line-height: 1.6; font-size: .93rem; margin: .35rem 0 .2rem; }
.fc-body.gone { color: #6b7a8c; font-style: italic; }
.fc-actions { display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; }
.fc-reply { margin-top: .5rem; }
.fc-reply-row { display: flex; justify-content: flex-end; gap: .5rem; margin-top: .5rem; }
.fc.collapsed .fc-body, .fc.collapsed .fc-actions, .fc.collapsed .fc-kids, .fc.collapsed .fc-reply { display: none; }
.fc.flash > .fc-main { animation: fcFlash 2s ease; }
@keyframes fcFlash { 0%, 60% { background: rgba(0,212,255,.12); } 100% { background: transparent; } }

.forum-side { display: flex; flex-direction: column; gap: 1rem; position: sticky; top: calc(var(--navbar-h) + 1rem); }
.fs-card { background: #0d141d; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; padding: 1.1rem 1.2rem; }
.fs-card h3 { margin: 0 0 .6rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: #8b98ab; }
.fs-card p { margin: 0 0 .9rem; color: #aab5c6; font-size: .9rem; line-height: 1.6; }
.fs-card ol { margin: 0; padding-left: 1.2rem; color: #aab5c6; font-size: .86rem; line-height: 1.7; }

.fm-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(0,0,0,.7); backdrop-filter: blur(4px); }
.fm-dialog { width: 100%; max-width: 640px; max-height: 92vh; overflow-y: auto; background: #0d141d; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 1.4rem; box-shadow: 0 24px 80px rgba(0,0,0,.6); }
.fm-dialog h2 { margin: 0 0 1rem; color: #fff; font-size: 1.3rem; }
.fm-field { margin-bottom: .9rem; }
.fm-field label { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8b98ab; margin-bottom: .35rem; }
.fm-field input, .fm-field select, .fm-field textarea { width: 100%; box-sizing: border-box; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); border-radius: 10px; padding: .7rem .9rem; color: #e6edf3; font-size: .95rem; font-family: inherit; outline: none; }
.fm-field select option { background: #0d141d; }
.fm-field textarea { min-height: 170px; resize: vertical; line-height: 1.55; }
.fm-field input:focus, .fm-field select:focus, .fm-field textarea:focus { border-color: var(--accent, #00d4ff); box-shadow: 0 0 0 3px rgba(0,212,255,.12); }
.fm-row { display: flex; justify-content: space-between; align-items: center; gap: .6rem; margin-top: .3rem; }
.fm-actions { display: flex; gap: .5rem; }
.fm-toast { position: fixed; left: 50%; bottom: 1.5rem; transform: translate(-50%, 20px); background: #1b2434; border: 1px solid rgba(255,255,255,.15); color: #fff; padding: .7rem 1.2rem; border-radius: 999px; font-size: .88rem; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 1100; }
.fm-toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 900px) {
  .forum-layout { grid-template-columns: minmax(0, 1fr); }
  .forum-side { position: static; }
}
@media (max-width: 600px) {
  .fv { min-width: 44px; padding: .6rem .3rem; }
  .fp-main { padding: .75rem .8rem .6rem; }
  .forum-search { max-width: none; }
}

/* FORUM POLISH */
body {
  background-image:
    linear-gradient(rgba(0,212,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,212,255,.025) 1px, transparent 1px);
  background-size: 50px 50px;
  background-attachment: fixed;
}
.forum-top {
  position: relative;
  overflow: hidden;
  padding: 1.9rem 2.1rem;
  margin-bottom: 1.25rem;
  border-radius: 18px;
  border: 1px solid rgba(0,212,255,.18);
  background:
    linear-gradient(rgba(0,212,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,212,255,.04) 1px, transparent 1px),
    linear-gradient(135deg, rgba(0,212,255,.1) 0%, rgba(8,13,19,.2) 55%),
    #0a1119;
  background-size: 40px 40px, 40px 40px, auto, auto;
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
}
.forum-top::after {
  content: '';
  position: absolute;
  right: -80px;
  top: -80px;
  width: 280px;
  height: 280px;
  background: radial-gradient(circle, rgba(0,212,255,.22) 0%, transparent 65%);
  pointer-events: none;
}
.forum-top > * { position: relative; z-index: 1; }
.forum-sub { font-size: 1.02rem; color: #b7c1d6; }

.fm-btn-primary { box-shadow: 0 6px 22px rgba(0,212,255,.28); }
.fm-btn-primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 10px 28px rgba(0,212,255,.38); }

.forum-sorts { box-shadow: 0 4px 18px rgba(0,0,0,.25); }
.forum-search {
  padding-left: 2.6rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b98ab' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.5' y2='16.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: .95rem center;
  background-size: 16px;
}

.forum-cats button { display: inline-flex; align-items: center; }
.forum-cats button::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  margin-right: .5rem;
  background: var(--dot, #8b98ab);
}
.forum-cats button[data-cat=""] { --dot: #00d4ff; }
.forum-cats button[data-cat="general"] { --dot: #00d4ff; }
.forum-cats button[data-cat="help"] { --dot: #ffb020; }
.forum-cats button[data-cat="ctf"] { --dot: #ff6b7a; }
.forum-cats button[data-cat="careers"] { --dot: #c084fc; }
.forum-cats button[data-cat="tools"] { --dot: #39ff88; }
.forum-cats button[data-cat="news"] { --dot: #60a5fa; }
.forum-cats button[data-cat="showcase"] { --dot: #f472b6; }

.fp {
  position: relative;
  background: linear-gradient(180deg, #0f1823 0%, #0b121b 100%);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px;
  box-shadow: 0 2px 14px rgba(0,0,0,.28);
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.fp::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: transparent;
  transition: background .2s;
  z-index: 1;
}
.fp:hover {
  border-color: rgba(0,212,255,.35);
  box-shadow: 0 12px 34px rgba(0,0,0,.42), 0 0 0 1px rgba(0,212,255,.08);
  transform: translateY(-1px);
}
.fp:hover::before { background: var(--accent, #00d4ff); }
.fp-full::before { display: none; }
.fp-full:hover { transform: none; border-color: rgba(255,255,255,.07); box-shadow: 0 2px 14px rgba(0,0,0,.28); }
.fp.pinned { border-color: rgba(57,255,136,.28); }
.fp.pinned::before { background: #39ff88; }

.fv { min-width: 58px; padding: .95rem .5rem; background: rgba(255,255,255,.025); border-right: 1px solid rgba(255,255,255,.05); }
.fv.inline { background: none; border-right: 0; padding: 0; min-width: 0; }
.fvb { transition: background .15s, color .15s, transform .15s; }
.fvb.up:hover { background: rgba(0,212,255,.14); color: var(--accent, #00d4ff); transform: translateY(-1px); }
.fvb.down:hover { background: rgba(255,107,122,.14); color: #ff6b7a; transform: translateY(1px); }
.fvs { font-size: .95rem; }

.fp-main { padding: .95rem 1.2rem .75rem; }
.fp-title, .fp-title-full { font-family: var(--font-sans, 'Inter', sans-serif); letter-spacing: -.01em; }
.fp-title { font-size: 1.16rem; font-weight: 700; }
.fp-title-full { font-size: 1.65rem; font-weight: 800; }
.fp-body { color: #aab5c6; line-height: 1.65; }

.fchip { padding: 2px 11px; letter-spacing: .02em; background: rgba(0,212,255,.12); color: #00d4ff; }
.fchip.c-general { background: rgba(0,212,255,.12); color: #00d4ff; }
.fchip.c-help { background: rgba(255,176,32,.14); color: #ffb020; }
.fchip.c-ctf { background: rgba(255,107,122,.14); color: #ff6b7a; }
.fchip.c-careers { background: rgba(192,132,252,.15); color: #c084fc; }
.fchip.c-tools { background: rgba(57,255,136,.12); color: #39ff88; }
.fchip.c-news { background: rgba(96,165,250,.15); color: #60a5fa; }
.fchip.c-showcase { background: rgba(244,114,182,.15); color: #f472b6; }

.fav { box-shadow: 0 0 0 2px rgba(0,212,255,.15); }
.fav-xs { width: 24px; height: 24px; }
.fav-sm { width: 30px; height: 30px; }
.fp-foot { margin-top: .35rem; padding-top: .35rem; border-top: 1px solid rgba(255,255,255,.05); }
.fp-act { transition: background .15s, color .15s; }

.fe { padding: 3rem 1.25rem; background: linear-gradient(180deg, rgba(0,212,255,.05), rgba(13,20,29,.9)); border-color: rgba(0,212,255,.2); }

.fcomposer { background: linear-gradient(180deg, #0f1823, #0b121b); border-radius: 14px; }

#threads { margin-top: .5rem; }
#threads > .fc { padding-bottom: .95rem; border-bottom: 1px solid rgba(255,255,255,.06); }
#threads > .fc:last-child { border-bottom: 0; }
.fc-rail::before { background: linear-gradient(180deg, rgba(0,212,255,.35), rgba(255,255,255,.06)); }
.fc-body { color: #e1e8f0; }
.fc-head { gap: .5rem; }

.fs-card { position: relative; overflow: hidden; background: linear-gradient(180deg, #0f1823, #0b121b); border-radius: 14px; box-shadow: 0 2px 14px rgba(0,0,0,.28); }
.fs-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--accent, #00d4ff), transparent); }
.fs-card h3 { color: var(--accent, #00d4ff); }
.fs-card ol { list-style: none; counter-reset: rule; padding: 0; }
.fs-card ol li { counter-increment: rule; display: flex; gap: .7rem; align-items: flex-start; padding: .5rem 0; border-bottom: 1px solid rgba(255,255,255,.05); }
.fs-card ol li:last-child { border-bottom: 0; }
.fs-card ol li::before { content: counter(rule); flex-shrink: 0; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: rgba(0,212,255,.12); color: var(--accent, #00d4ff); font-size: .72rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }

.fm-dialog { border-radius: 18px; border-color: rgba(0,212,255,.2); position: relative; }
.fm-dialog::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; border-radius: 18px 18px 0 0; background: linear-gradient(90deg, var(--accent, #00d4ff), transparent); }
.fm-dialog h2 { font-family: var(--font-display, 'Syne', sans-serif); }

@media (max-width: 600px) {
  .forum-top { padding: 1.3rem 1.2rem; }
  .fv { min-width: 46px; }
}

/* FORUM SOCIAL */
.fav-lg { width: 46px; height: 46px; font-size: 1rem; }
.fav-md { width: 40px; height: 40px; font-size: .9rem; }
.fp.social, .fp.fp-full { padding: 1rem 1.2rem; gap: 1rem; }
.fp.social .fp-main, .fp.fp-full .fp-main { padding: 0; }
.fp-av { flex-shrink: 0; }
.fp-meta { margin-bottom: .3rem; }
.fp-meta .fp-by b { font-size: .95rem; }
.fp-foot { gap: 1.2rem; margin-top: .55rem; }
.fp-act.danger { margin-left: auto; }

.fheart { display: inline-flex; align-items: center; gap: .4rem; border: 0; background: none; color: #8b98ab; font-size: .85rem; font-weight: 600; padding: .4rem .65rem; border-radius: 999px; cursor: pointer; font-family: inherit; transition: color .15s, background .15s; }
.fheart svg { width: 18px; height: 18px; flex-shrink: 0; }
.fheart:hover { color: #ff4d6d; background: rgba(255,77,109,.1); }
.fheart.on { color: #ff4d6d; }
.fheart.on svg { fill: currentColor; }
.fheart.pop svg { animation: heartPop .45s ease; }
@keyframes heartPop { 0% { transform: scale(1); } 30% { transform: scale(1.55); } 60% { transform: scale(.9); } 100% { transform: scale(1); } }
.fheart.inline { padding: .2rem .5rem; }
.fheart.inline svg { width: 15px; height: 15px; }
.fhc { min-width: .6ch; }

.fcompose { display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; margin-bottom: 1rem; background: linear-gradient(180deg, #0f1823, #0b121b); border: 1px solid rgba(255,255,255,.08); border-radius: 14px; box-shadow: 0 2px 14px rgba(0,0,0,.28); cursor: pointer; transition: border-color .2s; }
.fcompose:hover, .fcompose:focus-visible { border-color: rgba(0,212,255,.4); outline: none; }
.fcompose-input { flex: 1; min-width: 0; color: #8b98ab; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 999px; padding: .7rem 1.1rem; font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 600px) {
  .fp.social, .fp.fp-full { padding: .85rem .8rem; gap: .65rem; }
  .fav-lg { width: 38px; height: 38px; }
  .fcompose .fm-btn { display: none; }
}

/* FORUM FEED STYLE */
#postList:has(.fp) {
  background: linear-gradient(180deg, #0f1823, #0b121b);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 14px rgba(0,0,0,.28);
}
#postList .fp.social {
  margin: 0;
  background: none;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
  border-radius: 0;
  box-shadow: none;
  padding: 1.15rem 1.5rem;
  gap: 1rem;
  animation: fpIn .35s ease both;
}
#postList .fp.social:last-child { border-bottom: 0; }
#postList .fp.social:hover { background: rgba(255,255,255,.025); transform: none; box-shadow: none; }
#postList .fp.social::before { display: none; }
#postList .fp.social.pinned::before { display: block; background: #39ff88; }
@keyframes fpIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.fp-meta { gap: .5rem; margin-bottom: .4rem; }
.fp-meta .fp-by b { font-size: 1rem; }
.fp.social .fp-title { font-size: 1.08rem; margin: 0 0 .35rem; }
.fp.social .fp-body { font-size: 1rem; line-height: 1.65; color: #dbe4ec; margin: 0 0 .6rem; -webkit-line-clamp: 8; }

.fp-foot { border-top: 0; padding-top: 0; margin-top: .5rem; gap: 1.6rem; }
.fp-foot .fp-act, .fp-foot .fheart { padding: .35rem .5rem; }
.fp-foot .fp-act svg { width: 18px; height: 18px; }

@media (max-width: 600px) {
  #postList .fp.social { padding: .95rem 1rem; gap: .75rem; }
  .fp-foot { gap: 1rem; }
}

/* FORUM CALM + OWN SCROLL */
body { background-image: none; }
.forum-page, .fm-modal, .fm-toast { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }

.forum-top { background: #0d1218; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; box-shadow: none; padding: 1rem 1.4rem; margin-bottom: .6rem; }
.forum-top::after { display: none; }
.forum-title { font-family: inherit; font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; margin: 0 0 .15rem; }
.forum-sub { font-size: .9rem; color: #8b98a5; line-height: 1.5; }
.forum-tabs { margin-bottom: .75rem; }
.forum-tab { padding: .6rem 1.1rem; }
.fm-btn-primary { box-shadow: none; }
.fm-btn-primary:hover:not(:disabled) { transform: none; box-shadow: none; }
.forum-sorts { background: #0d1218; box-shadow: none; }

.fcompose, .fcomposer, .fs-card { background: #0d1218; border: 1px solid rgba(255,255,255,.08); box-shadow: none; }
.fs-card::before { display: none; }
.fs-card h3 { color: #8b98a5; }
.fe { background: #0d1218; border-color: rgba(255,255,255,.12); }

#postList:has(.fp) { background: #0d1218; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; box-shadow: none; }
#postList .fp.social { padding: .85rem 1rem; gap: .75rem; border-bottom: 1px solid rgba(255,255,255,.08); }
#postList .fp.social:last-child { border-bottom: 0; }
#postList .fp.social:hover { background: rgba(255,255,255,.03); }
.fav-lg { width: 40px; height: 40px; }
.fp-meta { font-size: .92rem; color: #71767b; gap: .4rem; margin-bottom: .15rem; }
.fp-meta .fp-by b { font-size: .95rem; font-weight: 700; color: #e7e9ea; }
.fp.social .fp-title { font-size: 1rem; font-weight: 700; color: #e7e9ea; margin: 0 0 .2rem; line-height: 1.4; }
.fp.social .fp-title a, .fp.social:hover .fp-title a { color: inherit; }
.fp.social .fp-body { font-size: .95rem; line-height: 1.5; color: #e7e9ea; margin: 0 0 .4rem; }
.fchip { font-size: .7rem; padding: 1px 9px; }
.fp-foot { gap: 2.2rem; margin-top: .35rem; }
.fp-foot .fp-act, .fp-foot .fheart { color: #71767b; font-size: .82rem; font-weight: 500; padding: .3rem .4rem; }
.fp-foot .fp-act:hover { color: var(--accent, #00d4ff); background: rgba(0,212,255,.1); }
.fp-foot .fp-act.danger:hover { color: #ff6b7a; background: rgba(255,107,122,.1); }
.fp-foot .fheart:hover { color: #f91880; background: rgba(249,24,128,.1); }
.fp-foot .fheart.on { color: #f91880; }

.fp.fp-full { background: #0d1218; border: 1px solid rgba(255,255,255,.08); box-shadow: none; border-radius: 14px; }
.fp.fp-full .fp-text { color: #e7e9ea; font-size: 1rem; line-height: 1.6; }
.fp-title-full { font-family: inherit; }


/* FORUM PAGE SCROLL */
@media (min-width: 901px) {
  .forum-side {
    position: sticky;
    top: calc(var(--navbar-h) + 1rem);
    align-self: start;
    max-height: calc(100vh - var(--navbar-h) - 2rem);
    overflow-y: auto;
    scrollbar-width: none;
  }
  .forum-side::-webkit-scrollbar { display: none; }
}

/* FORUM SIDEBAR FIX */
.forum-side {
  position: static;
  top: auto;
  max-height: none;
  overflow: visible;
}

/* FORUM BLACK */
html:has(.forum-page) { color-scheme: dark; }
body:has(.forum-page) { background: #000; }
.forum-page, .fm-modal, .fm-toast,
.forum-page button, .forum-page input, .forum-page textarea,
.fm-modal button, .fm-modal input, .fm-modal select, .fm-modal textarea {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.fm-dialog h2 { font-family: inherit; }
.forum-page { color: #e7e9ea; }

.forum-top, .fcompose, .fcomposer, .fs-card, .forum-sorts, #postList:has(.fp), .fp.fp-full { background: #0a0a0a; border-color: #1f2328; box-shadow: none; }
.forum-title { color: #fff; }
.forum-sub { color: #8b98a5; }
.forum-tabs { border-bottom-color: #1f2328; }
.forum-tab { color: #8b98a5; }
.forum-tab:hover { color: #fff; }
.forum-tab.active { color: #00d4ff; border-bottom-color: #00d4ff; }
.fm-btn-ghost { color: #00d4ff; border-color: #00d4ff; }
.fm-btn-ghost:hover { background: rgba(0,212,255,.1); }

.forum-sorts button { color: #9aa4af; }
.forum-sorts button:hover { color: #fff; }
.forum-sorts button.on { background: #00d4ff; color: #04121a; }
.forum-search { background-color: #0a0a0a; border-color: #2a2f36; color: #e7e9ea; }
.forum-search::placeholder { color: #71767b; }
.forum-cats button { background: #0a0a0a; border-color: #2a2f36; color: #c6cdd5; }
.forum-cats button:hover { border-color: #00d4ff; color: #fff; }
.forum-cats button.on { background: #00d4ff; border-color: #00d4ff; color: #04121a; }

.fcompose:hover, .fcompose:focus-visible { border-color: #00d4ff; }
.fcompose-input { background: #111214; border-color: #2a2f36; color: #71767b; }
.fcomposer.guest { color: #9aa4af; }
.fcomposer textarea, .fc-reply textarea { background: #111214; border-color: #2a2f36; color: #e7e9ea; }
.fcount { color: #6b7a8c; }

#postList .fp.social { border-bottom-color: #1f2328; }
#postList .fp.social:hover { background: #111214; }
#postList .fp.social.pinned::before { background: #39ff88; }
.fp.fp-full:hover { border-color: #1f2328; box-shadow: none; }

.fav { background: #0f2a30; color: #00d4ff; border: 0; box-shadow: none; }
.fp-meta { color: #71767b; }
.fp-meta .fp-by b { color: #e7e9ea; }
.fp.social .fp-title { color: #e7e9ea; }
.fp.social .fp-body { color: #e7e9ea; }
.fp-title-full { color: #fff; }
.fp.fp-full .fp-text { color: #e7e9ea; }
.fp-pinned { color: #39ff88; }
.fp-back { color: #9aa4af; }
.fp-back:hover { color: #00d4ff; }

.fchip { background: rgba(0,212,255,.12); color: #00d4ff; }
.fchip.c-general { background: rgba(0,212,255,.12); color: #00d4ff; }
.fchip.c-help { background: rgba(255,176,32,.14); color: #ffb020; }
.fchip.c-ctf { background: rgba(255,107,122,.14); color: #ff6b7a; }
.fchip.c-careers { background: rgba(192,132,252,.15); color: #c084fc; }
.fchip.c-tools { background: rgba(57,255,136,.12); color: #39ff88; }
.fchip.c-news { background: rgba(96,165,250,.15); color: #60a5fa; }
.fchip.c-showcase { background: rgba(244,114,182,.15); color: #f472b6; }
.frb.admin { color: #ff4d5e; border-color: rgba(255,77,94,.4); background: rgba(255,77,94,.08); }
.frb.instructor { color: #ffb020; border-color: rgba(255,176,32,.4); background: rgba(255,176,32,.08); }

.fp-foot .fp-act:hover { color: #00d4ff; background: rgba(0,212,255,.1); }
.fp-foot .fp-act.danger:hover { color: #ff6b7a; background: rgba(255,107,122,.1); }
.fp-act.static:hover { color: #71767b; background: none; }

.fc-rail::before { background: #2a2f36; }
.fc-rail:hover::before { background: #00d4ff; }
.fc-head b { color: #e7e9ea; }
.fc-body { color: #e7e9ea; }
#threads > .fc { border-bottom-color: #1f2328; }

.fe { background: #0a0a0a; border-color: #2a2f36; color: #8b98a5; }
.fe h3 { color: #fff; }
.fp-skel { background: linear-gradient(90deg, #0a0a0a 25%, #141518 50%, #0a0a0a 75%); background-size: 200% 100%; border-color: #1f2328; }

.fs-card h3 { color: #71767b; }
.fs-card p { color: #9aa4af; }
.fs-card ol { color: #9aa4af; }
.fs-card ol li { border-bottom-color: #1f2328; }
.fs-card ol li::before { background: rgba(0,212,255,.12); color: #00d4ff; }

.fm-dialog { background: #0a0a0a; border-color: #1f2328; box-shadow: 0 24px 80px rgba(0,0,0,.7); }
.fm-dialog h2 { color: #fff; }
.fm-field label { color: #71767b; }
.fm-field input, .fm-field select, .fm-field textarea { background: #111214; border-color: #2a2f36; color: #e7e9ea; }
.fm-field select option { background: #0a0a0a; color: #e7e9ea; }

/* FORUM PLATFORM TINT */
body:has(.forum-page) {
  background-color: #04070b;
  background-image:
    radial-gradient(ellipse at 60% 0%, rgba(0,212,255,.06) 0%, transparent 55%),
    linear-gradient(rgba(0,212,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,212,255,.018) 1px, transparent 1px);
  background-size: auto, 50px 50px, 50px 50px;
  background-attachment: fixed;
}
.forum-top, .fcompose, .fcomposer, .fs-card, .forum-sorts, #postList:has(.fp), .fp.fp-full {
  background: #080d13;
  border-color: rgba(0,212,255,.12);
}
.forum-top { background: linear-gradient(135deg, rgba(0,212,255,.07) 0%, #080d13 55%); border-color: rgba(0,212,255,.2); }
.forum-tabs { border-bottom-color: rgba(0,212,255,.12); }
#postList .fp.social { border-bottom-color: rgba(0,212,255,.1); }
#postList .fp.social:hover { background: #0b1219; }
.fcompose:hover, .fcompose:focus-visible { box-shadow: 0 0 0 1px rgba(0,212,255,.25), 0 0 24px rgba(0,212,255,.06); }
.fcompose-input, .forum-search, .fcomposer textarea, .fc-reply textarea,
.fm-field input, .fm-field select, .fm-field textarea { background-color: #0a1018; border-color: rgba(0,212,255,.16); }
.forum-cats button { background: #080d13; border-color: rgba(0,212,255,.16); }
.fc-rail::before { background: rgba(0,212,255,.16); }
#threads > .fc { border-bottom-color: rgba(0,212,255,.1); }
.fs-card ol li { border-bottom-color: rgba(0,212,255,.1); }
.fe { background: #080d13; border-color: rgba(0,212,255,.2); }
.fp-skel { background: linear-gradient(90deg, #080d13 25%, #0e1620 50%, #080d13 75%); background-size: 200% 100%; border-color: rgba(0,212,255,.1); }
.fm-dialog { background: #080d13; border-color: rgba(0,212,255,.22); box-shadow: 0 24px 80px rgba(0,0,0,.7), 0 0 40px rgba(0,212,255,.06); }
.fm-toast { background: #0c1520; border-color: rgba(0,212,255,.25); }

/* FORUM COMPACT */
.forum-page, .fm-modal, .fm-toast,
.forum-page button, .forum-page input, .forum-page textarea,
.fm-modal button, .fm-modal input, .fm-modal select, .fm-modal textarea {
  font-family: "Plus Jakarta Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
.fcompose { padding: .5rem .75rem; gap: .65rem; margin-bottom: .75rem; border-radius: 12px; }
.fcompose .fav-md { width: 32px; height: 32px; font-size: .78rem; }
.fcompose-input { padding: .45rem .95rem; font-size: .9rem; }
.fcompose .fm-btn { padding: .4rem 1.1rem; font-size: .85rem; }
.forum-controls { margin-bottom: .6rem; }
.forum-search { flex: 0 1 260px; padding: .4rem .9rem .4rem 2.4rem; font-size: .88rem; background-position: .85rem center; }
.forum-sorts { padding: .2rem; }
.forum-sorts button { padding: .3rem .9rem; font-size: .84rem; }
.fm-btn { padding: .5rem 1.1rem; font-size: .86rem; }
.fm-dialog { max-width: 540px; padding: 1.1rem 1.25rem; }
.fm-field textarea { min-height: 110px; }

/* FORUM COMMENT BOX */
.fcomposer:not(.guest) { display: flex; align-items: flex-end; gap: .6rem; padding: .5rem .6rem; margin: .75rem 0 1rem; border-radius: 12px; }
.fcomposer:not(.guest) textarea { flex: 1 1 auto; width: auto; min-width: 0; height: 40px; min-height: 40px; padding: .55rem .95rem; border-radius: 999px; resize: none; line-height: 1.4; transition: height .15s ease, border-radius .15s ease; }
.fcomposer:not(.guest):focus-within textarea { height: 88px; border-radius: 14px; }
.fcomposer:not(.guest) .fcomposer-row { margin: 0; flex-shrink: 0; }
.fcomposer:not(.guest) .fcount { display: none; }
.fcomposer:not(.guest) .fm-btn { padding: .45rem 1.1rem; font-size: .85rem; }

/* FORUM FLAT POSTS */
#postList:has(.fp) { background: none; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
#postList .fp.social { padding: .95rem .35rem; }
#postList .fp.social:hover { background: rgba(0,212,255,.03); }

.fp.fp-full, .fp.fp-full:hover {
  background: none;
  border: 0;
  border-bottom: 1px solid rgba(0,212,255,.25);
  border-radius: 0;
  box-shadow: none;
  padding: 1.1rem .5rem 1.25rem 1.25rem;
  gap: 1.1rem;
}
.fp.fp-full::before { display: block; width: 3px; border-radius: 3px; background: linear-gradient(180deg, #00d4ff, rgba(0,212,255,0)); }
.fp.fp-full .fav-lg { width: 52px; height: 52px; font-size: 1.15rem; }
.fp.fp-full .fp-meta .fp-by b { font-size: 1.08rem; }
.fp.fp-full .fp-text { font-size: 1.2rem; line-height: 1.6; color: #fff; margin: .35rem 0 .6rem; }

@media (max-width: 600px) {
  .fp.fp-full { padding: .9rem .25rem 1rem .9rem; gap: .75rem; }
  .fp.fp-full .fav-lg { width: 42px; height: 42px; }
  .fp.fp-full .fp-text { font-size: 1.08rem; }
}

/* FORUM UNREAD BADGES */
.forum-cats { padding: .6rem .4rem .45rem; margin-top: -.2rem; }
.forum-cats button { position: relative; }
.fcat-badge {
  position: absolute;
  top: -7px;
  right: -5px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  box-sizing: border-box;
  border-radius: 999px;
  background: #ff3b5c;
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  box-shadow: 0 0 0 2px #04070b;
}
.forum-cats button.has-new::before { animation: catBlink 1s ease-in-out infinite; box-shadow: 0 0 8px var(--dot, #00d4ff); }
@keyframes catBlink { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .15; transform: scale(.6); } }
@media (prefers-reduced-motion: reduce) { .forum-cats button.has-new::before { animation: none; } }

/* FORUM IMAGES */
.fp-media { margin: .45rem 0 .6rem; max-width: 560px; border-radius: 14px; overflow: hidden; border: 1px solid rgba(0,212,255,.14); background: #04070b; line-height: 0; }
.fp-media img { display: block; width: 100%; height: auto; max-height: 460px; object-fit: contain; cursor: zoom-in; }
.fp-full .fp-media { max-width: 680px; }
.fp-full .fp-media img { max-height: 560px; }
.fm-photo { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; }
.fm-photo .fm-btn { padding: .4rem 1rem; }
.fm-preview { position: relative; width: 100%; }
.fm-preview img { display: block; max-width: 100%; max-height: 200px; border-radius: 12px; border: 1px solid rgba(0,212,255,.2); }
.fm-preview button { position: absolute; top: 6px; left: 6px; width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(0,0,0,.75); color: #fff; font-size: 1.1rem; line-height: 1; cursor: pointer; }
.fm-lightbox { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 1.5rem; background: rgba(0,0,0,.92); cursor: zoom-out; }
.fm-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 8px; }

/* FORUM STICKY COMPOSE */
#feedView > .fcompose {
  position: sticky;
  top: var(--navbar-h, 68px);
  z-index: 40;
  background: #080d13;
  box-shadow: 0 10px 18px -8px rgba(0,0,0,.85);
}

/* FORUM LAYOUT X (three columns) */
.fx-grid { display: grid; grid-template-columns: 250px minmax(0, 1fr) 300px; gap: 1.25rem; align-items: start; }
.fx-left, .fx-right { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.fx-center { min-width: 0; }
.fx-panel { background: #080d13; border: 1px solid rgba(0,212,255,.12); border-radius: 14px; padding: 1.1rem; }
.fx-title { margin: 0 0 .35rem; font-size: 1.5rem; font-weight: 800; color: #fff; letter-spacing: -.02em; }
.fx-sub { margin: 0; font-size: .88rem; line-height: 1.5; color: #8b98a5; }
.fnav { display: flex; flex-direction: column; gap: 2px; margin: .9rem 0 .8rem; }
.fnav-item { display: flex; align-items: center; gap: .75rem; width: 100%; box-sizing: border-box; padding: .6rem .75rem; border: 0; background: none; border-radius: 10px; color: #b7c1cd; font: inherit; font-size: .92rem; font-weight: 600; text-align: left; cursor: pointer; text-decoration: none; }
.fnav-item svg { width: 18px; height: 18px; flex-shrink: 0; }
.fnav-item:hover { background: rgba(0,212,255,.06); color: #fff; }
.fnav-item.on { background: rgba(0,212,255,.12); color: #00d4ff; box-shadow: inset 3px 0 0 #00d4ff; }
.fnav-badge { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; box-sizing: border-box; border-radius: 999px; background: #ff3b5c; color: #fff; font-size: .72rem; font-weight: 700; line-height: 20px; text-align: center; }
.fx-cap { margin: .9rem .75rem .4rem; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: #71767b; }

.fx-left .forum-cats { flex-direction: column; flex-wrap: nowrap; overflow: visible; gap: 2px; padding: 0; margin: 0; }
.fx-left .forum-cats button { width: 100%; box-sizing: border-box; justify-content: flex-start; background: none; border: 0; border-radius: 10px; padding: .55rem .75rem; font-size: .9rem; color: #b7c1cd; }
.fx-left .forum-cats button:hover { background: rgba(0,212,255,.06); color: #fff; }
.fx-left .forum-cats button.on { background: rgba(0,212,255,.12); color: #00d4ff; box-shadow: inset 3px 0 0 #00d4ff; }
.fcat-count { order: 2; margin-left: auto; color: #71767b; font-size: .8rem; font-weight: 500; }
.fx-left .forum-cats .fcat-badge { position: static; order: 3; margin-left: .5rem; box-shadow: none; }

.fx-share { display: flex; flex-direction: column; gap: .35rem; margin-top: 1rem; padding: .95rem; border: 1px solid rgba(0,212,255,.2); border-radius: 12px; background: rgba(0,212,255,.04); }
.fx-share b { color: #fff; font-size: .95rem; }
.fx-share span { color: #8b98a5; font-size: .8rem; line-height: 1.45; margin-bottom: .45rem; }

.ffeat { display: flex; gap: 1rem; padding: 1rem 1.2rem; margin-bottom: 1rem; background: linear-gradient(135deg, rgba(0,212,255,.09), #080d13 60%); border: 1px solid rgba(0,212,255,.25); border-radius: 14px; cursor: pointer; transition: border-color .2s; }
.ffeat:hover { border-color: rgba(0,212,255,.55); }
.ffeat-main { flex: 1; min-width: 0; }
.ffeat-label { display: flex; align-items: center; gap: .45rem; margin-bottom: .45rem; font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #00d4ff; }
.ffeat-label svg { width: 14px; height: 14px; }
.ffeat-text { color: #e7e9ea; font-size: 1rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-wrap; word-break: break-word; }
.ffeat-by { margin-top: .5rem; font-size: .82rem; color: #8b98a5; }
.ffeat-thumb { width: 84px; height: 84px; border-radius: 12px; object-fit: cover; flex-shrink: 0; align-self: center; }

.fx-tabs { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; border-bottom: 1px solid rgba(0,212,255,.12); margin-bottom: .6rem; }
.fx-tabs .forum-sorts { background: none; border: 0; padding: 0; gap: .25rem; border-radius: 0; box-shadow: none; }
.fx-tabs .forum-sorts button { background: none; border-radius: 0; padding: .8rem 1.1rem; border-bottom: 3px solid transparent; margin-bottom: -1px; color: #8b98a5; font-weight: 600; }
.fx-tabs .forum-sorts button:hover { color: #fff; }
.fx-tabs .forum-sorts button.on { background: none; color: #00d4ff; border-bottom-color: #00d4ff; }
.fx-tabs .forum-search { flex: 0 1 220px; margin: .4rem 0; }

.fx-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: .9rem 0 .3rem; text-align: center; }
.fx-stat b { display: block; font-size: 1.25rem; color: #fff; }
.fx-stat span { font-size: .72rem; color: #8b98a5; }
.fx-stat + .fx-stat { border-left: 1px solid rgba(0,212,255,.15); }
.fx-right .pr-strip { margin: .7rem 0 0; padding-left: 0; }
.fx-contrib { display: flex; align-items: center; gap: .7rem; padding: .45rem 0; }
.fx-cn { flex: 1; min-width: 0; color: #e7e9ea; font-weight: 600; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fx-cc { color: #8b98a5; font-size: .82rem; flex-shrink: 0; }
.fx-trend { display: flex; flex-wrap: wrap; gap: .5rem; }
.fx-trend button { border: 1px solid rgba(0,212,255,.2); background: rgba(0,212,255,.06); color: #cfeaf2; border-radius: 999px; padding: .3rem .8rem; font: inherit; font-size: .82rem; cursor: pointer; }
.fx-trend button:hover { border-color: #00d4ff; color: #fff; }
.fx-trend button span { margin-left: .4rem; color: #71767b; }

@media (max-width: 1100px) {
  .fx-grid { grid-template-columns: 220px minmax(0, 1fr); }
  .fx-right { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
}
@media (max-width: 800px) {
  .fx-grid { grid-template-columns: minmax(0, 1fr); }
  .fx-right { display: flex; }
  .fx-title, .fx-sub, .fx-cap, .fx-share { display: none; }
  .fx-panel { padding: .6rem; }
  .fnav { flex-direction: row; overflow-x: auto; margin: 0 0 .5rem; }
  .fnav-item { width: auto; white-space: nowrap; }
  .fx-left .forum-cats { flex-direction: row; overflow-x: auto; gap: .4rem; }
  .fx-left .forum-cats button { width: auto; flex-shrink: 0; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; }
}

/* FORUM STICKY COLUMNS (desktop: the page scrolls, header and side panels stay pinned) */
@media (min-width: 1101px) {
  .fx-sticky { position: sticky; top: var(--navbar-h, 68px); z-index: 40; background: #04070b; }
  .fx-grid { align-items: start; }
  .fx-left, .fx-right {
    position: sticky;
    top: calc(var(--navbar-h, 68px) + 1rem);
    max-height: calc(100vh - var(--navbar-h, 68px) - 2rem);
    overflow-y: auto;
    padding-right: .3rem;
    scrollbar-width: thin;
    scrollbar-color: #3a4552 transparent;
  }
  .fx-left::-webkit-scrollbar, .fx-right::-webkit-scrollbar { width: 8px; }
  .fx-left::-webkit-scrollbar-thumb, .fx-right::-webkit-scrollbar-thumb { background: #3a4552; border-radius: 4px; }
  .fx-left::-webkit-scrollbar-track, .fx-right::-webkit-scrollbar-track { background: transparent; }
}
@media (min-width: 1101px) and (max-height: 820px) {
  .fx-share { display: none; }
}

/* FORUM COLUMN SHRINK FIX */
.fx-left > *, .fx-right > * { flex-shrink: 0; }
@media (min-width: 1101px) {
  .fx-left, .fx-right { scrollbar-color: #5a6878 rgba(255,255,255,.05); }
  .fx-left::-webkit-scrollbar-thumb, .fx-right::-webkit-scrollbar-thumb { background: #5a6878; }
}

/* FORUM NATIVE SCROLL (browser scrollbar; only the posts move, everything else stays pinned) */
@media (min-width: 1101px) {
  .fx-left, .fx-right { padding-right: 0; scrollbar-width: none; }
  .fx-left::-webkit-scrollbar, .fx-right::-webkit-scrollbar { display: none; }

  .fx-left .fx-panel { padding: .75rem; }
  .fx-title { font-size: 1.15rem; margin: 0 0 .15rem; }
  .fx-sub { font-size: .8rem; line-height: 1.4; }
  .fnav { margin: .6rem 0 .3rem; }
  .fnav-item { padding: .42rem .7rem; font-size: .88rem; }
  .fx-cap { margin: .55rem .7rem .25rem; }
  .fx-left .forum-cats button { padding: .38rem .7rem; font-size: .86rem; }
  .fx-right .fs-card { padding: .8rem 1rem; }
  .fx-right .fs-card h3 { margin-bottom: .4rem; }
  .fx-right .fs-card p { margin-bottom: .6rem; font-size: .85rem; line-height: 1.5; }
  .fx-stats { margin: .5rem 0 .2rem; }
  .fx-contrib { padding: .3rem 0; }
  .fx-right .fs-card ol li { padding: .3rem 0; font-size: .82rem; }
}
@media (min-width: 1101px) and (max-height: 860px) {
  .fx-sub, .fx-share, #trendCard { display: none; }
  .fx-right .fs-card > p { display: none; }
}

/* FORUM RULES ADAPTIVE */
#rulesAll { display: none; }
.fx-rule { display: flex; gap: .7rem; align-items: flex-start; padding: .6rem .6rem; color: #e7e9ea; line-height: 1.5; font-size: .93rem; }
.fx-rule .fx-rank { margin-top: .1rem; }
@media (min-width: 1101px) {
  .fx-left, .fx-right { max-height: calc(100vh - var(--navbar-h, 68px) - 1.5rem); }
}
@media (min-width: 1101px) and (max-height: 860px) {
  #rulesCard li:nth-child(n+4) { display: none; }
  #rulesAll { display: block; }
}
@media (min-width: 1101px) and (max-height: 700px) {
  #rulesCard li:nth-child(n+3) { display: none; }
}

/* FORUM MODERATION */
.fp-hidden, .fc-note { display: flex; align-items: center; gap: .5rem; margin: .35rem 0; padding: .55rem .8rem; border: 1px dashed rgba(255,176,32,.45); border-radius: 10px; background: rgba(255,176,32,.06); color: #ffb020; font-size: .88rem; }
.fp-hidden svg, .fc-note svg { width: 15px; height: 15px; flex-shrink: 0; }
.mr-body { padding: .4rem 1.2rem 0; }
.mr-help { color: #8b98a5; font-size: .85rem; line-height: 1.5; margin: .2rem 0 .6rem; }
.mr-reasons { display: flex; flex-direction: column; gap: .4rem; margin: .4rem 0 .7rem; }
.mr-reasons label { display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; cursor: pointer; color: #e7e9ea; font-size: .92rem; }
.mr-reasons label:hover { border-color: rgba(0,212,255,.4); }
.mr-reasons input { accent-color: #00d4ff; }
.mr-note { width: 100%; box-sizing: border-box; min-height: 70px; resize: vertical; background: #0a1018; border: 1px solid rgba(0,212,255,.16); border-radius: 10px; padding: .6rem .8rem; color: #e7e9ea; font: inherit; font-size: .9rem; }
.mr-foot { display: flex; justify-content: flex-end; gap: .5rem; padding: .8rem 1.2rem 1rem; }
.mq-dialog { max-width: 640px; }
.mq-card { border: 1px solid rgba(0,212,255,.14); border-radius: 12px; padding: .9rem 1rem; margin: .6rem 0; background: #0a1018; }
.mq-top { color: #8b98a5; font-size: .82rem; }
.mq-top b { color: #fff; }
.mq-text { margin: .5rem 0; color: #e7e9ea; white-space: pre-wrap; word-break: break-word; line-height: 1.5; }
.mq-why { color: #ffb020; font-size: .85rem; }
.mq-notes { margin: .3rem 0; color: #aab5c6; font-size: .84rem; font-style: italic; }
.mq-view { display: inline-block; margin: .4rem 0; color: #00d4ff; font-size: .85rem; }
.mq-note { width: 100%; box-sizing: border-box; margin: .4rem 0 .6rem; background: #080d13; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; padding: .55rem .8rem; color: #e7e9ea; font: inherit; font-size: .88rem; }
.mq-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.mq-actions button { border: 1px solid rgba(255,255,255,.18); background: none; color: #e7e9ea; border-radius: 999px; padding: .4rem 1rem; font: inherit; font-size: .85rem; cursor: pointer; }
.mq-actions button:hover { background: rgba(255,255,255,.07); }
.mq-actions button[data-mod="remind"] { border-color: #00d4ff; color: #00d4ff; }
.mq-actions button[data-mod="hide"] { border-color: rgba(255,107,122,.6); color: #ff6b7a; }
.mq-hid { color: #ff6b7a; }

/* FORUM INLINE COMPOSER */
.ic {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "av body act";
  align-items: center;
  gap: .6rem .8rem;
  padding: .7rem .9rem;
  background: #080d13;
  border: 1px solid rgba(0,212,255,.14);
  border-radius: 14px;
  transition: border-color .2s, box-shadow .2s;
}
.ic.open { border-color: rgba(0,212,255,.45); box-shadow: 0 0 0 3px rgba(0,212,255,.08); grid-template-areas: "av body body" ". act act"; align-items: start; }
.ic-av { grid-area: av; align-self: center; }
.ic.open .ic-av { align-self: start; }
.ic-body { grid-area: body; min-width: 0; }
.ic-act { grid-area: act; display: flex; align-items: center; gap: .5rem; }
.ic.open .ic-act { justify-content: flex-end; }
.ic-field { position: relative; display: block; }
.ic textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  height: 40px;
  min-height: 40px;
  max-height: 200px;
  resize: none;
  overflow-y: auto;
  padding: .55rem .9rem;
  background: #0a1018;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 999px;
  color: #e7e9ea;
  font: inherit;
  font-size: .95rem;
  line-height: 1.45;
  outline: none;
  transition: border-color .2s, border-radius .15s;
}
.ic.open textarea { min-height: 84px; border-radius: 14px; border-color: rgba(0,212,255,.3); }
.ic textarea:focus { border-color: #00d4ff; }
.ic-ph { position: absolute; left: calc(.9rem + 1px); right: .9rem; top: calc(.55rem + 1px); color: #71767b; font-size: .95rem; line-height: 1.45; pointer-events: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic.has-text .ic-ph { display: none; }
.ic-preview { position: relative; width: fit-content; max-width: 100%; margin-top: .6rem; }
.ic-preview img { display: block; max-width: 100%; max-height: 140px; border-radius: 12px; border: 1px solid rgba(0,212,255,.2); }
.ic-preview button { position: absolute; top: 6px; left: 6px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: rgba(0,0,0,.75); color: #fff; font-size: 1.05rem; line-height: 1; cursor: pointer; }
.ic-img { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: none; color: #8b98a5; cursor: pointer; transition: background .2s, color .2s; }
.ic-img:hover { background: rgba(0,212,255,.1); color: #00d4ff; }
.ic-img svg { width: 20px; height: 20px; }
.ic-count { color: #ffb020; font-size: .78rem; }
.ic-post { border: 0; border-radius: 999px; padding: .5rem 1.4rem; font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; background: #00d4ff; color: #04121a; box-shadow: 0 6px 20px rgba(0,212,255,.3); transition: background .2s, color .2s, box-shadow .2s, filter .2s; }
.ic-post:not(:disabled):hover { filter: brightness(1.1); }
.ic-post:disabled { background: rgba(0,212,255,.2); color: rgba(255,255,255,.45); box-shadow: none; cursor: not-allowed; }
@media (max-width: 700px) { .ic-count { display: none; } .ic-post { padding: .5rem 1.1rem; } }

/* FORUM FLAT BACKGROUND */
body:has(.forum-page) {
  background-color: #04070b !important;
  background-image: none !important;
}
