/* PocketPlay forum module — builds on the host's dark hub.css variables */
.fwrap{max-width:1320px;margin:0 auto}.wrap.narrow{max-width:860px;padding:22px}
.fhero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);padding:70px 0 34px;margin-top:-62px;background:radial-gradient(ellipse at 75% 30%,rgba(62,224,143,.10),transparent 55%),radial-gradient(ellipse at 15% 90%,rgba(90,169,255,.08),transparent 50%),var(--bg)}
.fgrid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(62,224,143,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(62,224,143,.07) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at 70% 40%,#000 0,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000 0,transparent 70%);animation:fdrift 40s linear infinite}
@keyframes fdrift{to{background-position:44px 44px,44px 44px}}
.fhero .wrap{position:relative}.fhero h1{font-size:clamp(28px,3.6vw,44px);letter-spacing:-.02em;margin:12px 0 8px}.fhero .sub{max-width:620px}
.fcats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0 16px}
.fcatcard{--c:#3ee08f;position:relative;display:flex;flex-direction:column;gap:4px;padding:14px 14px 12px;border:1px solid var(--line);border-radius:4px;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 10%,transparent),transparent 60%),var(--panel);color:var(--ink);transition:border-color .15s,transform .15s}
.fcatcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c);box-shadow:0 0 14px var(--c);border-radius:4px 0 0 4px}
.fcatcard:hover,.fcatcard.on{border-color:var(--c);text-decoration:none;transform:translateY(-1px)}.fcatcard b{font-size:14px;padding-right:26px}.fcatcard small{color:var(--mute);font-size:12px;line-height:1.4}.fcatcard em{position:absolute;right:12px;top:10px;font-style:normal;color:var(--c);font-size:18px}
.fsort{display:flex;gap:4px;margin:0 0 10px}.fsort a{color:var(--mute);padding:5px 12px;border:1px solid var(--line);border-radius:3px}.fsort a.on{color:var(--ink);border-color:var(--green);background:rgba(62,224,143,.08)}.fsort a:hover{text-decoration:none;color:var(--ink)}
.flist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.frow{display:grid;grid-template-columns:48px minmax(0,1fr) 92px;gap:12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:3px;background:rgba(255,255,255,.015);transition:border-color .15s,background .15s}
.frow:hover{border-color:var(--line2);background:rgba(62,224,143,.04)}
.fvotes,.fstat{display:flex;flex-direction:column;align-items:center;text-align:center}.fvotes b,.fstat b{font-size:18px;font-weight:600}.fvotes small{color:var(--green);font-size:10px}.fstat small{font-size:10px;color:var(--dim);letter-spacing:.08em}.fstat span{margin-top:4px}
.ftitle{display:block;color:var(--ink);font-size:15.5px;font-weight:600;line-height:1.35;margin:4px 0 2px}.ftitle:hover{color:var(--green)}
.fex{color:var(--mute);margin:3px 0 6px;line-height:1.45}
.fchips{display:flex;flex-wrap:wrap;gap:6px}.fcat{--c:#3ee08f;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--c);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);padding:1px 6px;border-radius:2px}
.fpin{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--bg);background:var(--gold);padding:1px 6px;border-radius:2px}.fpin.lock{background:var(--dim)}
.ftopic{font-family:var(--mono);font-size:10px;color:var(--gold);border:1px dashed rgba(244,183,64,.4);padding:1px 6px;border-radius:2px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fmeta{display:flex;align-items:center;gap:6px;color:var(--dim);flex-wrap:wrap}.fmeta time{color:var(--dim)}
.fav{border-radius:50%;vertical-align:middle;border:1px solid var(--line2);background:#111;display:inline-block}.fav.sys{display:inline-grid;place-items:center;font-family:var(--mono);font-size:9px;font-weight:600;color:var(--bg);background:var(--green)}
.fwho{color:var(--ink);font-weight:600;margin-left:6px}a.fwho:hover{color:var(--green)}
.fteam-mini{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.fteam-mini span{border:1px solid var(--line);padding:2px 7px;border-radius:12px;color:var(--mute)}
.fth h1{margin:8px 0 6px}
.fpost{border:1px solid var(--line);border-radius:4px;background:var(--panel);padding:14px 16px;margin-bottom:10px}.fpost.op{border-color:var(--line2);box-shadow:0 0 0 1px rgba(62,224,143,.06),0 10px 30px rgba(0,0,0,.25)}
.fpost:target{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}
.fph{display:flex;align-items:center;gap:4px;color:var(--dim)}.fph a.dim{color:var(--dim)}
.md{font-size:14.5px;line-height:1.65;color:var(--ink);overflow-wrap:anywhere}.md p{margin:.5em 0}.md h3,.md h4{margin:.9em 0 .3em;font-size:15.5px}.md code{font-family:var(--mono);font-size:12.5px;background:rgba(255,255,255,.06);padding:1px 4px;border-radius:3px}
.md pre{background:#050807;border:1px solid var(--line);padding:10px 12px;border-radius:3px;overflow:auto}.md pre code{background:none;padding:0}.md blockquote{margin:.5em 0;padding:2px 12px;border-left:2px solid var(--green);color:var(--mute)}.md ul,.md ol{padding-left:22px}
.fpf{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.fvote,.fact{border:1px solid var(--line);padding:3px 9px;border-radius:3px;color:var(--mute);font-size:11.5px}.fvote{color:var(--green);border-color:rgba(62,224,143,.4)}.fvote.on{background:rgba(62,224,143,.16);color:var(--ink)}.fact:hover,.fvote:hover{color:var(--ink);border-color:var(--line2)}.fact.adm{color:var(--red);border-color:rgba(255,93,77,.35)}
.fteam{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}.fteam div{border:1px solid var(--line);border-radius:3px;padding:8px 10px;background:rgba(62,224,143,.03)}.fteam dt{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.fteam dd{margin:3px 0 0;font-size:14px}
.fbtn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line2);color:var(--ink);padding:8px 14px;border-radius:3px;font-family:var(--mono);font-size:12.5px;background:rgba(255,255,255,.02)}.fbtn:hover{text-decoration:none;border-color:var(--green);color:var(--green)}
.fbtn.gh{background:#e8e6dc;color:#0b0f0e;border-color:#e8e6dc;font-weight:600}.fbtn.gh:hover{background:#fff;color:#000}.fbtn.gh.off{opacity:.55;cursor:not-allowed}
.fbtn.go{border-color:var(--green);color:var(--bg);background:var(--green);font-weight:600}.fbtn.go:hover{color:var(--bg);filter:brightness(1.1)}.fbtn.go[disabled]{opacity:.5}.fbtn.wide{width:100%;justify-content:center;margin-top:10px}.fbtn.ghost{border-color:var(--line)}
.fsoon{color:var(--gold);margin:8px 0 0}.fme{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}.fme button{margin-left:auto;color:var(--mute);font-size:11.5px;border:1px solid var(--line);padding:3px 8px;border-radius:3px}
.fcomposer{margin-top:14px}.fc-tabs{display:flex;gap:4px;margin-bottom:6px}.fc-tabs button{padding:4px 10px;border:1px solid var(--line);border-radius:3px;color:var(--mute)}.fc-tabs button.on{color:var(--ink);border-color:var(--line2)}
.fc-body,.fnew input,.fnew select{width:100%;background:#050807;border:1px solid var(--line2);color:var(--ink);border-radius:3px;padding:10px;font:14px/1.5 var(--sans)}.fc-body{font-family:var(--mono);font-size:13px;resize:vertical}.fc-body:focus,.fnew input:focus,.fnew select:focus{outline:none;border-color:var(--green)}
.fc-prev{min-height:80px;border:1px dashed var(--line2);padding:8px 12px;border-radius:3px}.fc-row{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:8px}.fc-err{color:var(--red);min-height:1em;margin:6px 0 0}
.fc-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.fnew label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:0 0 12px}.fnew label input,.fnew label select{margin-top:5px;text-transform:none;letter-spacing:0}
.fteamf{border:1px solid var(--line);border-radius:3px;padding:12px 12px 0;margin:0 0 12px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.fteamf[hidden]{display:none}
.frules{padding-left:18px;line-height:1.55;color:var(--mute)}.fwait{list-style:none;padding:0;margin:0}.fwait li{padding:5px 0;border-top:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fpager{display:flex;gap:14px;justify-content:center;margin:16px 0}.fbtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.flist.compact .frow{grid-template-columns:40px minmax(0,1fr) 70px;padding:8px}.flist.compact .fex{display:none}
.fdisc .fposts{margin-top:6px}.fadmin td button{margin:2px}
.ftoast{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);background:#0a110f;border:1px solid var(--green);padding:10px 16px;border-radius:3px;font-size:13px;z-index:50}
@media (max-width:900px){.fcats{grid-template-columns:1fr 1fr}.frow{grid-template-columns:38px minmax(0,1fr)}.fstat{display:none}.fteam,.fteamf{grid-template-columns:1fr}.fhero{padding-top:64px}}
.fsub{margin:8px 0 0}.fbtn.gh .fav{border:0}
