/* ============================================================
   GTC Forum — Midnight / XenForo-style skin, neon palette
   Scoped under .gtcf. Colors overridable via inline CSS vars
   injected from the plugin config (see forum-chrome).
   ============================================================ */
.gtcf {
    --bg:        #0b0a10;
    --surface:   #16131f;
    --surface-2: #1d1929;
    --line:      #2a2438;
    --line-soft: #211b2e;
    --magenta:   #ff2e88;
    --cyan:      #38e1d6;
    --text:      #efeaf4;
    --muted:     #a99fb8;
    --danger:    #ff3b6b;
    --glow-mag:  0 0 0 1px rgba(255,46,136,.35), 0 0 18px -4px rgba(255,46,136,.55);
    --glow-cy:   0 0 0 1px rgba(56,225,214,.35), 0 0 18px -4px rgba(56,225,214,.5);
    --mono: "JetBrains Mono","Fira Code",ui-monospace,SFMono-Regular,Menlo,monospace;
    --radius: 8px;

    max-width: 1120px;
    margin: 0 auto;
    padding: 0 24px 0;
    color: var(--text);
}
.gtcf * { box-sizing: border-box; }
.gtcf a { color: inherit; text-decoration: none; }

/* ---------- Header (logo bar) ---------- */
.gtcf-header {
    margin: 0 -1rem;
    padding: .85rem 1rem;
    background:
        radial-gradient(120% 140% at 0% 0%, rgba(255,46,136,.10), transparent 55%),
        radial-gradient(120% 140% at 100% 0%, rgba(56,225,214,.10), transparent 55%),
        var(--surface);
    border-bottom: 1px solid var(--line);
}
.gtcf-header-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; max-width:1080px; margin:0 auto; }
.gtcf-logo { display:flex; align-items:center; gap:.65rem; }
.gtcf-logo-img { height:38px; width:auto; display:block; }
.gtcf-logo-mark { font-family:var(--mono); font-weight:700; font-size:1.3rem; color:var(--magenta); text-shadow:0 0 14px rgba(255,46,136,.6); }
.gtcf-logo-text { display:flex; flex-direction:column; line-height:1.1; }
.gtcf-logo-text strong { font-size:1.15rem; letter-spacing:.5px; }
.gtcf-logo-text small { font-size:.68rem; color:var(--muted); letter-spacing:.16em; text-transform:uppercase; }
.gtcf-header-actions { display:flex; align-items:center; gap:.6rem; }
.gtcf-whoami { font-family:var(--mono); font-size:.82rem; color:var(--cyan); }
.gtcf-whoami::before { content:"◆ "; color:var(--magenta); }
.gtcf-logout-form { margin:0; }

/* ---------- Nav tabs ---------- */
.gtcf-navtabs {
    margin: 0 -1rem 1.4rem;
    background: var(--surface-2);
    border-bottom: 1px solid var(--line);
}
.gtcf-navtabs-inner { display:flex; gap:.2rem; max-width:1080px; margin:0 auto; padding:0 1rem; overflow-x:auto; }
.gtcf-tab {
    font-family:var(--mono); font-size:.82rem; font-weight:600; white-space:nowrap;
    padding:.85rem .95rem; color:var(--muted); border-bottom:2px solid transparent;
    transition:color .15s, border-color .15s;
}
.gtcf-tab:hover { color:var(--text); }
.gtcf-tab.is-active { color:var(--text); border-color:var(--magenta); box-shadow:0 8px 16px -12px var(--magenta); }
.gtcf-tab-mod { margin-left:auto; color:var(--cyan); }

/* ---------- Layout ---------- */
.gtcf-layout { display:grid; grid-template-columns:1fr 296px; gap:1.4rem; align-items:start; padding-bottom:3rem; }
.gtcf-main { min-width:0; }

/* ---------- Node blocks (forum index) ---------- */
.gtcf-node-block {
    background:var(--surface); border:1px solid var(--line-soft);
    border-radius:var(--radius); overflow:hidden; margin-bottom:1.3rem;
}
.gtcf-node-head {
    font-family:var(--mono); font-size:.74rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
    padding:.7rem 1rem; color:var(--text);
    background:linear-gradient(90deg, rgba(255,46,136,.14), rgba(56,225,214,.06) 60%, transparent);
    border-bottom:1px solid var(--line); position:relative;
}
.gtcf-node-head::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(var(--magenta),var(--cyan)); }
.gtcf-node {
    display:grid; grid-template-columns:auto 1fr auto 1.4fr; align-items:center; gap:1rem;
    padding:.95rem 1rem; border-bottom:1px solid var(--line-soft); transition:background .15s;
}
.gtcf-node:last-child { border-bottom:none; }
.gtcf-node:hover { background:var(--surface-2); }
.gtcf-node-icon { font-size:1.4rem; color:var(--magenta); opacity:.7; transition:opacity .15s, text-shadow .15s; }
.gtcf-node:hover .gtcf-node-icon { opacity:1; text-shadow:0 0 12px var(--magenta); }
.gtcf-node-title { display:flex; flex-direction:column; gap:.2rem; min-width:0; }
.gtcf-node-title strong { font-size:1rem; }
.gtcf-node:hover .gtcf-node-title strong { color:var(--cyan); }
.gtcf-node-title small { color:var(--muted); font-size:.84rem; }
.gtcf-node-stats { display:grid; grid-template-columns:auto auto; gap:0 .4rem; align-items:baseline; font-family:var(--mono); text-align:right; }
.gtcf-node-stats b { color:var(--cyan); font-size:.95rem; }
.gtcf-node-stats em { color:var(--muted); font-size:.66rem; font-style:normal; text-transform:uppercase; letter-spacing:.08em; }
.gtcf-node-last { display:flex; flex-direction:column; min-width:0; font-size:.8rem; }
.gtcf-node-last-title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gtcf-node-last-meta { color:var(--muted); font-size:.72rem; font-family:var(--mono); }

/* ---------- Thread list (category view) ---------- */
.gtcf-tl-head {
    display:grid; grid-template-columns:auto 1fr auto 1.1fr; gap:1rem; align-items:center;
    padding:.6rem 1rem; font-family:var(--mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.12em;
    color:var(--muted); background:var(--surface-2); border-bottom:1px solid var(--line);
}
.gtcf-tl-head > span:first-child { grid-column:1 / 3; }
.gtcf-tl-head-stats { text-align:right; }
.gtcf-tl-row {
    display:grid; grid-template-columns:auto 1fr auto 1.1fr; gap:1rem; align-items:center;
    padding:.85rem 1rem; border-bottom:1px solid var(--line-soft); transition:background .15s;
}
.gtcf-tl-row:last-child { border-bottom:none; }
.gtcf-tl-row:hover { background:var(--surface-2); }
.gtcf-tl-main { display:flex; flex-direction:column; gap:.2rem; min-width:0; }
.gtcf-tl-title { font-weight:600; }
.gtcf-tl-row:hover .gtcf-tl-title { color:var(--cyan); }
.gtcf-tl-by { font-size:.76rem; color:var(--muted); font-family:var(--mono); }
.gtcf-tl-stats { font-family:var(--mono); text-align:right; }
.gtcf-tl-stats b { color:var(--cyan); }
.gtcf-tl-last { display:flex; flex-direction:column; min-width:0; font-family:var(--mono); font-size:.74rem; }
.gtcf-tl-last-author { color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gtcf-tl-last-time { color:var(--muted); }
.gtcf-tl-empty, .gtcf-widget-empty { padding:1.1rem 1rem; }

/* ---------- Sidebar ---------- */
.gtcf-side { display:flex; flex-direction:column; gap:1.1rem; }
.gtcf-widget { background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--radius); overflow:hidden; }
.gtcf-widget-head {
    font-family:var(--mono); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
    padding:.65rem .9rem; color:var(--muted); border-bottom:1px solid var(--line);
    background:linear-gradient(90deg, rgba(56,225,214,.08), transparent);
}
.gtcf-stat-row { display:flex; justify-content:space-between; padding:.55rem .9rem; font-size:.85rem; border-bottom:1px solid var(--line-soft); }
.gtcf-stat-row:last-child { border-bottom:none; }
.gtcf-stat-row b { font-family:var(--mono); color:var(--cyan); }
.gtcf-side-thread { display:flex; gap:.6rem; align-items:center; padding:.6rem .9rem; border-bottom:1px solid var(--line-soft); }
.gtcf-side-thread:last-child { border-bottom:none; }
.gtcf-side-thread:hover { background:var(--surface-2); }
.gtcf-side-thread-main { display:flex; flex-direction:column; min-width:0; }
.gtcf-side-thread-title { font-size:.84rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gtcf-side-thread:hover .gtcf-side-thread-title { color:var(--cyan); }
.gtcf-side-thread-meta { font-size:.7rem; color:var(--muted); font-family:var(--mono); }
.gtcf-widget-cta { padding-bottom:.9rem; }
.gtcf-widget-cta p { padding:.8rem .9rem .6rem; margin:0; }
.gtcf-widget-cta .gtcf-btn { margin:0 .9rem; display:flex; }

/* ---------- Buttons ---------- */
.gtcf-btn {
    display:inline-flex; align-items:center; justify-content:center;
    font-family:var(--mono); font-size:.82rem; font-weight:600;
    padding:.6rem 1.05rem; border-radius:6px; cursor:pointer;
    border:1px solid var(--line); background:var(--surface-2); color:var(--text);
    transition:box-shadow .15s, border-color .15s, transform .05s; line-height:1;
}
.gtcf-btn:hover { border-color:var(--cyan); box-shadow:var(--glow-cy); }
.gtcf-btn:active { transform:translateY(1px); }
.gtcf-btn-primary { border-color:transparent; color:#0b0a10; font-weight:700; background:linear-gradient(92deg, var(--magenta), #ff5fb4); }
.gtcf-btn-primary:hover { box-shadow:var(--glow-mag); border-color:transparent; }
.gtcf-btn-ghost { background:transparent; }
.gtcf-btn-mini { padding:.42rem .7rem; font-size:.74rem; }
.gtcf-btn-danger { color:var(--danger); border-color:rgba(255,59,107,.35); background:rgba(255,59,107,.06); }
.gtcf-btn-danger:hover { box-shadow:0 0 18px -6px var(--danger); border-color:var(--danger); }

/* ---------- Page heads / crumbs ---------- */
.gtcf-crumbs { font-family:var(--mono); font-size:.78rem; color:var(--muted); display:flex; gap:.5rem; align-items:center; margin-bottom:1rem; }
.gtcf-crumbs a:hover { color:var(--cyan); }
.gtcf-crumb-current { color:var(--text); }
.gtcf-pagehead { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.gtcf-pagehead-title, .gtcf-thread-title {
    font-size:clamp(1.5rem,3vw,2.1rem); margin:0 0 .3rem; font-weight:800; letter-spacing:-.4px;
    background:linear-gradient(92deg, var(--magenta), #c95bff 45%, var(--cyan)); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.gtcf-pagehead-sub { color:var(--muted); margin:0; }

/* ---------- Section label / tags ---------- */
.gtcf-section-label { font-family:var(--mono); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0 0 .9rem; display:flex; align-items:center; gap:.6rem; }
.gtcf-section-label::before { content:""; width:14px; height:2px; background:var(--magenta); box-shadow:0 0 8px var(--magenta); }
.gtcf-tag { display:inline-block; font-family:var(--mono); font-size:.6rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; padding:.12rem .4rem; border-radius:4px; vertical-align:middle; margin-right:.4rem; }
.gtcf-tag-pin { color:var(--magenta); border:1px solid rgba(255,46,136,.5); }
.gtcf-tag-lock { color:var(--muted); border:1px solid var(--line); }
.gtcf-tag-op { color:var(--cyan); border:1px solid rgba(56,225,214,.5); margin:0; }

/* ---------- Avatar ---------- */
.gtcf-avatar { width:40px; height:40px; flex-shrink:0; border-radius:8px; display:grid; place-items:center; font-family:var(--mono); font-weight:700; font-size:.85rem; color:#0b0a10; background:linear-gradient(135deg, var(--magenta), var(--cyan)); }

/* ---------- Thread view (postbit) ---------- */
.gtcf-threadhead { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.gtcf-modbar form { display:flex; gap:.4rem; flex-wrap:wrap; }
.gtcf-posts { margin-bottom:1.5rem; }
.gtcf-post { display:grid; grid-template-columns:160px 1fr; background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--radius); margin-bottom:1rem; overflow:hidden; }
.gtcf-post-op { border-color:rgba(255,46,136,.3); box-shadow:0 0 28px -16px rgba(255,46,136,.6); }
.gtcf-post-side { background:var(--surface-2); border-right:1px solid var(--line-soft); padding:1.1rem .9rem; display:flex; flex-direction:column; align-items:center; gap:.45rem; text-align:center; }
.gtcf-post-author { font-size:.84rem; font-weight:600; word-break:break-word; }
.gtcf-post-body { padding:1.1rem 1.2rem; min-width:0; }
.gtcf-post-content { line-height:1.65; overflow-wrap:break-word; }
.gtcf-post-content a { color:var(--cyan); text-decoration:underline; }
.gtcf-post-foot { margin-top:1rem; padding-top:.7rem; border-top:1px solid var(--line-soft); display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; font-family:var(--mono); font-size:.72rem; color:var(--muted); }
.gtcf-edited { font-style:italic; }
.gtcf-postmenu { margin-left:auto; position:relative; }
.gtcf-postmenu > summary { list-style:none; cursor:pointer; padding:0 .4rem; color:var(--muted); }
.gtcf-postmenu > summary::-webkit-details-marker { display:none; }
.gtcf-postmenu[open] > summary { color:var(--cyan); }
.gtcf-postmenu-pop { position:absolute; right:0; top:1.4rem; z-index:5; width:280px; background:var(--surface-2); border:1px solid var(--line); border-radius:8px; padding:.7rem; display:flex; flex-direction:column; gap:.55rem; box-shadow:0 12px 34px -12px rgba(0,0,0,.8); }
.gtcf-editbox summary { cursor:pointer; font-family:var(--mono); font-size:.75rem; color:var(--cyan); }
.gtcf-editbox textarea { margin:.5rem 0; }

/* ---------- Forms ---------- */
.gtcf-field { display:block; margin-bottom:1rem; }
.gtcf-field > span { display:block; font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin-bottom:.4rem; }
.gtcf input[type=text], .gtcf select, .gtcf textarea { width:100%; padding:.7rem .85rem; border-radius:7px; background:var(--bg); border:1px solid var(--line); color:var(--text); font:inherit; transition:border-color .15s, box-shadow .15s; }
.gtcf textarea { resize:vertical; line-height:1.55; }
.gtcf input:focus, .gtcf select:focus, .gtcf textarea:focus { outline:none; border-color:var(--magenta); box-shadow:var(--glow-mag); }
.gtcf-newform, .gtcf-replybox { margin-top:1.6rem; padding:1.4rem; background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--radius); }
.gtcf-replybox textarea { margin-bottom:.9rem; }

/* ---------- Admin ---------- */
.gtcf-admin-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:1.6rem; align-items:start; padding-bottom:3rem; }
.gtcf-admin-cat { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:.9rem 1rem; margin-bottom:.6rem; background:var(--surface); border:1px solid var(--line-soft); border-radius:8px; }
.gtcf-admin-cat p { margin:.3rem 0 0; font-size:.82rem; }
.gtcf-admin-form { padding:1.3rem; background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--radius); }

/* ---------- Flash / misc ---------- */
.gtcf-flash { font-family:var(--mono); font-size:.85rem; padding:.7rem .95rem; border-radius:6px; margin:0 0 1.2rem; border:1px solid var(--line); }
.gtcf-flash-ok { border-color:rgba(56,225,214,.4); background:rgba(56,225,214,.07); color:var(--cyan); }
.gtcf-flash-error { border-color:rgba(255,59,107,.4); background:rgba(255,59,107,.08); color:var(--danger); }
.gtcf-muted { color:var(--muted); font-size:.9rem; }
.gtcf-empty { text-align:center; padding:4rem 1rem; }
.gtcf-empty p { color:var(--muted); margin-bottom:1.2rem; }
.gtcf-locked-note { font-family:var(--mono); color:var(--muted); padding:1rem; border:1px dashed var(--line); border-radius:8px; text-align:center; margin:1.5rem 0; }

/* ---------- Footer ---------- */
.gtcf-footer { margin:2rem -1rem 0; border-top:1px solid var(--line); background:var(--surface); }
.gtcf-footer-inner { max-width:1080px; margin:0 auto; padding:1.4rem 1rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.gtcf-footer-brand { font-family:var(--mono); font-weight:700; color:var(--text); }
.gtcf-footer-links { display:flex; gap:1rem; flex-wrap:wrap; }
.gtcf-footer-links a { font-size:.82rem; color:var(--muted); }
.gtcf-footer-links a:hover { color:var(--cyan); }
.gtcf-footer-copy { margin-left:auto; font-size:.76rem; color:var(--muted); font-family:var(--mono); }

/* ---------- Responsive ---------- */
@media (max-width: 880px) {
    .gtcf-layout { grid-template-columns:1fr; }
    .gtcf-side { order:-1; flex-direction:row; flex-wrap:wrap; }
    .gtcf-side .gtcf-widget { flex:1 1 240px; }
    .gtcf-admin-grid { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
    .gtcf-node { grid-template-columns:auto 1fr auto; }
    .gtcf-node-last { display:none; }
    .gtcf-tl-row, .gtcf-tl-head { grid-template-columns:auto 1fr auto; }
    .gtcf-tl-last, .gtcf-tl-head-last { display:none; }
    .gtcf-post { grid-template-columns:1fr; }
    .gtcf-post-side { flex-direction:row; justify-content:flex-start; gap:.7rem; border-right:none; border-bottom:1px solid var(--line-soft); padding:.7rem 1rem; }
    .gtcf-avatar { width:34px; height:34px; font-size:.78rem; }
    .gtcf-postmenu-pop { width:min(280px,76vw); }
    .gtcf-pagehead { flex-direction:column; }
    .gtcf-footer-inner { flex-direction:column; align-items:flex-start; }
    .gtcf-footer-copy { margin-left:0; }
}

/* ---------- A11y ---------- */
.gtcf a:focus-visible, .gtcf .gtcf-btn:focus-visible, .gtcf summary:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { .gtcf * { transition:none !important; } }

/* ============================================================
   Top bar + welcome panel. The site theme provides the real
   header/nav/footer; these are the only forum-owned chrome.
   ============================================================ */
.gtcf { padding-top: 1.2rem; }

.gtcf-topbar {
    display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
    background:var(--surface); border:1px solid var(--line-soft); border-radius:10px;
    padding:.7rem 1rem; margin-bottom:1.3rem;
}
.gtcf-topbar-left { min-width:0; }
.gtcf-topbar-label { font-family:var(--mono); font-weight:600; font-size:.9rem; color:var(--text); letter-spacing:.5px; }
.gtcf-topbar-label::first-letter { color:var(--magenta); }
.gtcf-topbar-back { font-family:var(--mono); font-size:.85rem; color:var(--cyan); }
.gtcf-topbar-back:hover { text-decoration:underline; }
.gtcf-topbar-right { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.gtcf-topbar-mod { font-family:var(--mono); font-size:.8rem; color:var(--cyan); }
.gtcf-topbar-mod:hover { text-decoration:underline; }
.gtcf-topbar-mod.is-active { color:var(--magenta); }
.gtcf-topbar .gtcf-whoami { font-family:var(--mono); font-size:.82rem; color:var(--cyan); }
.gtcf-topbar .gtcf-whoami::before { content:"◆ "; color:var(--magenta); }
.gtcf-logout-form { margin:0; }

.gtcf-welcome {
    position:relative; overflow:hidden;
    background:
        radial-gradient(120% 160% at 0% 0%, rgba(255,46,136,.12), transparent 55%),
        radial-gradient(120% 160% at 100% 100%, rgba(56,225,214,.10), transparent 55%),
        var(--surface);
    border:1px solid var(--line-soft); border-radius:12px;
    padding:1.6rem 1.6rem; margin-bottom:1.4rem;
}
.gtcf-welcome::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(var(--magenta), var(--cyan)); }
.gtcf-welcome-title {
    margin:0 0 .5rem; font-size:clamp(1.4rem,3vw,2rem); font-weight:800; letter-spacing:-.4px;
    background:linear-gradient(92deg, var(--magenta), #c95bff 45%, var(--cyan)); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.gtcf-welcome-text { margin:0; color:var(--muted); line-height:1.6; max-width:60ch; }
