/* forum.css – diễn đàn hỏi đáp ở trang chủ (20/10/2026). Dùng token của trang (--brand, --card, --line, --soft, --muted…), tự theo sáng/tối. */
.fx-hero{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:18px 22px;border-radius:14px;margin-bottom:var(--gap);color:#fff;background:linear-gradient(120deg,var(--hero-a),var(--hero-b));position:relative;overflow:hidden}
.fx-hero::after{content:"";position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,213,102,.55),rgba(255,213,102,0) 70%);pointer-events:none}
.fx-hero h1{font-size:1.45rem;line-height:1.2;margin:0}
.fx-hero h1 em{font-style:normal;color:#ffd566}
.fx-hero p{margin:2px 0 0;opacity:.9;font-size:.92rem}
.fx-hero .fx-hn{display:flex;gap:18px;margin-left:auto;position:relative;z-index:1}
.fx-hero .fx-hn div{text-align:center}.fx-hero .fx-hn b{display:block;font-size:1.25rem}.fx-hero .fx-hn span{font-size:.74rem;opacity:.85}
.fx-hero .fx-hl{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;position:relative;z-index:1}
.fx-hero .fx-hl a{padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-size:.84rem;font-weight:600;text-decoration:none}
.fx-hero .fx-hl a:hover,.fx-hero .fx-hl a:focus-visible{background:rgba(255,255,255,.3)}

.fx-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--gap);align-items:start}
@media (max-width:900px){.fx-wrap{grid-template-columns:minmax(0,1fr)}.fx-side{order:2}}
.fx-main{min-width:0}
.fx-side{display:flex;flex-direction:column;gap:var(--gap);position:sticky;top:calc(var(--cv-stick,150px) + 8px)}
@media (max-width:900px){.fx-side{position:static}}
.fx-side h3{font-size:1rem;margin-bottom:8px}
.fx-ng{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.fx-ng a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;border-left:4px solid var(--ga,var(--brand));background:var(--soft);color:var(--text);font-weight:600;font-size:.9rem;text-decoration:none}
.fx-ng a:hover,.fx-ng a:focus-visible{background:var(--line)}
.fx-ng small{margin-left:auto;color:var(--muted);font-weight:500}
.fx-hot{margin:0;padding-left:20px;display:grid;gap:8px;font-size:.9rem}
.fx-hot a{font-weight:600;color:var(--text)}.fx-hot a:hover{color:var(--brand)}
.fx-hot small{display:block;color:var(--muted)}
.fx-tips{list-style:disc;margin:0;padding-left:18px;display:grid;gap:5px;font-size:.86rem;color:var(--muted)}
.fx-fav{display:flex;flex-wrap:wrap;gap:6px}
.fx-fav a{padding:3px 10px;border-radius:999px;background:var(--soft);font-size:.82rem;font-weight:700;color:var(--text);border-left:4px solid var(--c,var(--brand));text-decoration:none}

/* ô đặt câu hỏi */
.fx-ask{margin-bottom:12px;padding:14px}
.fx-ask-h{display:flex;gap:12px;align-items:center}
.fx-ask-b{flex:1;text-align:left;padding:11px 16px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--muted);font:inherit;cursor:text}
.fx-ask-b:hover,.fx-ask-b:focus-visible{border-color:var(--brand);color:var(--text)}
.fx-form{display:grid;gap:10px;margin-top:12px}
.fx-form[hidden]{display:none}
.fx-form input,.fx-form textarea,.fx-form select,.fx-bar select,.fx-mb input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font:inherit}
.fx-form textarea{resize:vertical;min-height:110px;line-height:1.5}
.fx-form input:focus,.fx-form textarea:focus,.fx-form select:focus,.fx-bar select:focus,.fx-mb input:focus{outline:2px solid var(--brand);background:var(--card)}
.fx-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fx-row select{width:auto;max-width:100%}
.fx-grow{flex:1}
.fx-e{margin:0;color:#c62828;font-size:.86rem;min-height:1em}
.btn[disabled]{opacity:.55;pointer-events:none}

/* thanh lọc */
.fx-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.fx-tabs{display:flex;gap:6px;flex-wrap:wrap}
.fx-tabs button{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}
.fx-tabs button:hover{background:var(--soft)}
.fx-tabs button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.fx-bar select{width:auto;margin-left:auto;padding:7px 12px;font-size:.88rem;max-width:100%}
.fx-new{display:block;width:100%;margin:0 0 12px;padding:10px;border:0;border-radius:10px;background:var(--brand);color:var(--brand-ink);font:inherit;font-weight:700;cursor:pointer;animation:fxpop .25s ease-out}
.fx-new[hidden]{display:none}
@keyframes fxpop{from{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}

/* thẻ câu hỏi */
.fx-av{--h:210;flex:none;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;font-weight:800;color:#fff;background:hsl(var(--h) 55% 42%);font-size:1.05rem;user-select:none}
.fx-q{display:flex;gap:12px;padding:14px 14px 14px 16px;margin-bottom:10px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:12px;transition:box-shadow .15s,transform .15s}
.fx-q:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.fx-q.is-solved{border-left-color:#2e9d57}
.fx-qb{flex:1;min-width:0}
.fx-qb h3{font-size:1.04rem;line-height:1.3;margin:0 0 3px}
.fx-qb h3 a{color:var(--text);text-decoration:none}.fx-qb h3 a:hover,.fx-qb h3 a:focus-visible{color:var(--brand)}
.fx-qb p{margin:0 0 8px;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}
.fx-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.82rem;color:var(--muted)}
.fx-meta b{color:var(--text)}
.fx-you{font-style:normal;font-size:.7rem;padding:1px 7px;border-radius:999px;background:var(--soft);color:var(--brand);font-weight:700}
.fx-tag{padding:1px 9px;border-radius:999px;font-weight:700;font-size:.74rem;color:#fff;background:var(--c,var(--brand));text-decoration:none}
.fx-stat{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:76px}
.fx-ans{display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;padding:6px 0;border-radius:10px;border:1px solid var(--line);font-size:.7rem;color:var(--muted)}
.fx-ans b{font-size:1.15rem;color:var(--text);line-height:1.1}
.fx-ans.has{border-color:#2e9d57;color:#2e9d57}.fx-ans.has b{color:#2e9d57}
.fx-ok{font-size:.74rem;font-weight:700;color:#2e9d57;white-space:nowrap}
@media (max-width:560px){.fx-q{flex-wrap:wrap}.fx-stat{flex-direction:row;width:100%;min-width:0;justify-content:flex-start;margin-left:54px}.fx-ans{flex-direction:row;gap:5px;width:auto;padding:3px 10px}}

/* trang một câu hỏi */
.fx-qfull{padding:18px;margin-bottom:var(--gap)}
.fx-qfull.is-solved{border-left:4px solid #2e9d57}
.fx-qh{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.fx-qh h1{font-size:1.35rem;line-height:1.3;margin:0 0 6px;overflow-wrap:anywhere}
.fx-text{overflow-wrap:anywhere;line-height:1.65}
.fx-text a{color:var(--brand);text-decoration:underline}
.fx-act{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.fx-lnk{border:0;background:none;padding:2px 0;color:var(--muted);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}
.fx-lnk:hover,.fx-lnk:focus-visible{color:var(--brand);text-decoration:underline}.fx-lnk.bad:hover{color:#c62828}
.fx-h2{font-size:1.1rem;margin:6px 0 10px}
.fx-a{display:flex;gap:12px;padding:14px;margin-bottom:10px;background:var(--card);border:1px solid var(--line);border-radius:12px}
.fx-a.is-best{border-color:#2e9d57;background:linear-gradient(0deg,var(--card),var(--card)) padding-box;box-shadow:inset 4px 0 0 #2e9d57}
.fx-ab{flex:1;min-width:0}.fx-ab .fx-meta{margin-bottom:6px}
.fx-none{padding:14px 0}

/* trạng thái */
.fx-empty{text-align:center;padding:40px 16px;background:var(--card);border:1px dashed var(--line);border-radius:12px}
.fx-empty>div{font-size:2.4rem}.fx-empty h3{margin:6px 0 4px}.fx-empty p{color:var(--muted);margin:0 0 10px}
.fx-err{padding:14px 16px;border-radius:10px;background:#fdecea;color:#7a1c14;border:1px solid #f3b9b3}
.fx-err a{color:inherit;text-decoration:underline;font-weight:700}
:root[data-theme="dark"] .fx-err{background:#3a1b19;color:#ffb4ab;border-color:#6b2c28}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fx-err{background:#3a1b19;color:#ffb4ab;border-color:#6b2c28}}
.fx-skel{height:92px;margin-bottom:10px;border-radius:12px;background:linear-gradient(90deg,var(--soft) 25%,var(--line) 37%,var(--soft) 63%);background-size:400% 100%;animation:fxsk 1.3s ease infinite}
@keyframes fxsk{0%{background-position:100% 50%}100%{background-position:0 50%}}
.fx-more{text-align:center;margin:6px 0 20px}
.fx-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:10px 18px;border-radius:999px;background:#1f2937;color:#fff;font-size:.88rem;z-index:300;transition:opacity .2s,transform .2s;max-width:92vw;text-align:center}
.fx-toast.show{opacity:1;transform:translate(-50%,0)}.fx-toast.bad{background:#b3261e}

/* hộp chọn biệt danh */
.fx-modal{position:fixed;inset:0;background:rgba(10,20,40,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:400}
.fx-mb{width:100%;max-width:420px;background:var(--card);color:var(--text);border-radius:14px;padding:20px;display:grid;gap:10px;box-shadow:0 20px 50px rgba(0,0,0,.4)}
.fx-mb h3{margin:0}.fx-mb p{margin:0;color:var(--muted);font-size:.9rem}.fx-mb .fx-row{justify-content:flex-end}
@media (prefers-reduced-motion:reduce){.fx-q,.fx-new,.fx-toast{transition:none;animation:none}.fx-skel{animation:none}}

/* hero chỉ còn mô hình hành tinh (+ hệ mặt trời bên dưới) */
.hero.hero-solo{min-height:0;padding:14px 16px 18px;display:flex;flex-direction:column;align-items:center;gap:6px}
.hero.hero-solo .hero-planet{position:relative!important;right:auto;top:auto;transform:none;width:min(230px,60%);opacity:1;margin:0 auto}
@media (max-width:760px){.hero.hero-solo .hero-planet{width:min(180px,55%);opacity:1}}

/* trang chủ: ẩn danh sách nút mã môn dưới mô hình hành tinh (vẫn bấm electron trên mô hình để chọn môn) */
.solar-sec .solar-chips{display:none!important}
