:root {
  color-scheme: light;
  --bg:#f7f7ff;
  --panel:rgba(255,255,255,.9);
  --panel-solid:#fff;
  --text:#20243a;
  --muted:#7b8096;
  --primary:#6c5ce7;
  --primary-deep:#5444d8;
  --cyan:#19bfd0;
  --pink:#ff6b9d;
  --border:rgba(85,82,135,.12);
  --danger:#e54867;
  --shadow:0 14px 42px rgba(54,48,112,.09);
  --shadow-hover:0 18px 50px rgba(78,64,171,.16);
}

* { box-sizing:border-box; }
html { font-family:Inter,ui-rounded,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; color:var(--text); background:var(--bg); }
body {
  min-height:100vh;
  margin:0;
  font-size:15px;
  line-height:1.65;
  background:
    radial-gradient(circle at 8% 5%, rgba(168,143,255,.18), transparent 28rem),
    radial-gradient(circle at 92% 12%, rgba(59,211,224,.16), transparent 25rem),
    radial-gradient(circle at 82% 90%, rgba(255,128,174,.1), transparent 28rem),
    #f7f7ff;
  background-attachment:fixed;
}
body::before {
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  content:"";
  opacity:.24;
  background-image:radial-gradient(rgba(91,79,171,.2) .75px, transparent .75px);
  background-size:18px 18px;
  mask-image:linear-gradient(to bottom, black, transparent 62%);
}

a { color:var(--primary); text-decoration:none; transition:color .2s ease,opacity .2s ease,transform .2s ease; }
a:hover { color:var(--primary-deep); }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:3px solid rgba(108,92,231,.25); outline-offset:3px; }
.container { width:min(1180px,calc(100% - 40px)); margin:0 auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.site-header {
  position:sticky;
  top:0;
  z-index:20;
  height:74px;
  border-bottom:1px solid rgba(255,255,255,.7);
  background:rgba(250,250,255,.78);
  box-shadow:0 6px 26px rgba(50,45,95,.05);
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
}
.header-inner { height:74px; display:flex; align-items:center; justify-content:space-between; }
.brand { display:flex; align-items:center; gap:11px; color:var(--text); }
.brand:hover { color:var(--text); transform:translateY(-1px); }
.brand-mark,.auth-symbol {
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:900;
  background:linear-gradient(135deg,var(--primary) 0%,#8c73f6 45%,var(--pink) 100%);
  box-shadow:0 8px 22px rgba(108,92,231,.32);
}
.brand-mark { width:40px; height:40px; border-radius:13px 13px 13px 5px; font-size:20px; transform:rotate(-3deg); }
.brand-copy { display:flex; flex-direction:column; line-height:1.1; }
.brand-copy strong { font-size:19px; letter-spacing:.02em; }
.brand-copy small { margin-top:5px; color:#9699aa; font-size:8px; font-weight:800; letter-spacing:.18em; }
.top-nav { display:flex; align-items:center; gap:10px; }
.top-nav form { display:inline; margin:0; }
.nav-home,.nav-popular,.nav-search,.nav-settings,.nav-admin,.nav-login,.link-button { min-height:36px; padding:7px 14px; border-radius:999px; }
.nav-home { color:var(--text); font-weight:650; }
.nav-home:hover { color:var(--primary); background:rgba(108,92,231,.08); }
.nav-popular { display:inline-flex; align-items:center; gap:5px; color:#e75486; background:rgba(255,107,157,.09); font-weight:750; }
.nav-popular:hover { color:#ce3f72; background:rgba(255,107,157,.16); transform:translateY(-1px); }
.nav-search { display:inline-flex; align-items:center; gap:4px; color:#60647a; font-weight:700; }
.nav-search:hover,.nav-search.active,.nav-home.active { color:var(--primary); background:rgba(108,92,231,.09); }
.nav-settings { display:inline-flex; align-items:center; gap:5px; color:#60647a; font-size:12px; font-weight:750; }
.nav-settings b { font-weight:750; }
.nav-settings:hover,.nav-settings.active { color:var(--primary); background:rgba(108,92,231,.09); }
.nav-popular.active { box-shadow:inset 0 0 0 1px rgba(255,107,157,.16); }
.nav-admin { color:#fff; background:linear-gradient(120deg,#24283f,#424967); font-size:12px; font-weight:750; box-shadow:0 6px 16px rgba(32,36,58,.15); }
.nav-admin:hover { color:#fff; transform:translateY(-1px); box-shadow:0 9px 21px rgba(32,36,58,.22); }
.nav-login { color:#fff; font-weight:700; background:var(--text); box-shadow:0 7px 18px rgba(32,36,58,.16); }
.nav-login:hover { color:#fff; opacity:.88; transform:translateY(-1px); }
.user-chip { display:inline-flex; align-items:center; gap:7px; padding:7px 12px; color:#595d72; background:#fff; border:1px solid var(--border); border-radius:999px; box-shadow:0 5px 16px rgba(65,58,111,.06); }
.user-chip i { width:8px; height:8px; border-radius:50%; background:#32d296; box-shadow:0 0 0 4px rgba(50,210,150,.14); }
.link-button { color:var(--muted); background:none; border:0; cursor:pointer; font:inherit; }
.link-button:hover { color:var(--danger); background:rgba(229,72,103,.07); }

.site-main { min-height:calc(100vh - 158px); padding:32px 0 42px; }
.site-footer { min-height:84px; padding:22px 0 30px; color:var(--muted); font-size:12px; }
.site-footer .container { display:flex; justify-content:center; gap:18px; }
.footer-slogan::before { margin-right:18px; color:#c6c4d3; content:"·"; }
.panel { background:var(--panel); border:1px solid rgba(255,255,255,.88); border-radius:20px; box-shadow:var(--shadow); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.eyebrow { display:block; margin-bottom:6px; color:var(--primary); font-size:10px; font-weight:900; letter-spacing:.2em; line-height:1.2; }
.empty-state { padding:70px 24px; text-align:center; }
.empty-state h1 { margin:0 0 8px; font-size:26px; }
.empty-state p { color:var(--muted); }

.button {
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0 18px;
  color:#fff;
  background:var(--primary);
  border:0;
  border-radius:13px;
  cursor:pointer;
  font:inherit;
  font-weight:750;
  box-shadow:0 8px 20px rgba(108,92,231,.22);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.button:hover { color:#fff; text-decoration:none; transform:translateY(-2px); box-shadow:0 12px 26px rgba(108,92,231,.31); }
.button:active { transform:translateY(0); }
.button-primary { background:linear-gradient(120deg,var(--primary),#7d68ed 55%,#ec6fa4 145%); }
.button-wide { width:100%; }

.forum-layout { display:grid; grid-template-columns:228px minmax(0,1fr); gap:22px; align-items:start; }
.forum-sidebar { position:sticky; top:96px; padding:13px; overflow:hidden; }
.sidebar-title { display:flex; align-items:center; justify-content:space-between; gap:9px; padding:9px 11px 12px; color:var(--muted); font-size:12px; font-weight:800; letter-spacing:.06em; }
.sidebar-title > span { display:flex; align-items:center; gap:9px; }
.sidebar-title button { display:none; padding:0; color:var(--muted); background:none; border:0; font-size:24px; }
.forum-filter { position:relative; display:block; margin:0 3px 8px; }
.forum-filter span { position:absolute; left:11px; top:6px; z-index:1; color:#aaa7ba; }
.forum-filter input { min-height:35px; height:35px; padding:7px 9px 7px 29px; background:#f8f7fc; border-color:transparent; border-radius:10px; font-size:11px; }
.forum-links { max-height:none; overflow:visible; }
.forum-sidebar.show-all .forum-links,.forum-sidebar.is-filtering .forum-links { max-height:none; overflow:visible; }
.forum-link[hidden] { display:none; }
.forum-more { display:none; width:100%; margin-top:8px; padding:8px; color:var(--primary); background:#f5f2ff; border:0; border-radius:10px; cursor:pointer; font-size:11px; font-weight:750; }
.forum-drawer-trigger,.forum-drawer-backdrop { display:none; }
.live-dot { width:8px; height:8px; border-radius:50%; background:var(--pink); box-shadow:0 0 0 5px rgba(255,107,157,.12); animation:pulse 2.2s ease-in-out infinite; }
.forum-link { position:relative; display:block; margin:3px 0; padding:10px 13px 10px 34px; color:#555a70; border-radius:11px; font-weight:570; }
.forum-link::before { position:absolute; left:15px; top:50%; width:7px; height:7px; content:""; border:2px solid #cbc9da; border-radius:50%; transform:translateY(-50%); }
.forum-link:hover { color:var(--primary); background:#f7f5ff; text-decoration:none; transform:translateX(2px); }
.forum-link.active { color:#fff; background:linear-gradient(120deg,var(--primary),#8c75f0); font-weight:700; box-shadow:0 9px 21px rgba(108,92,231,.24); }
.forum-link.active::before { background:#fff; border-color:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.2); }
.forum-group { padding:18px 12px 5px; color:#aaaabd; font-size:10px; font-weight:900; letter-spacing:.12em; }
.topic-area { min-width:0; }
.section-heading { min-height:112px; margin-bottom:16px; padding:21px 24px; display:flex; align-items:center; justify-content:space-between; gap:22px; overflow:hidden; }
.section-heading::after { align-self:flex-start; width:54px; height:54px; margin:-48px -10px 0 0; flex:0 0 auto; content:""; background:linear-gradient(135deg,rgba(25,191,208,.22),rgba(108,92,231,.12)); border-radius:18px; transform:rotate(18deg); }
.section-heading > div { position:relative; z-index:1; min-width:0; flex:1; }
.section-heading .button { position:relative; z-index:2; flex:0 0 auto; }
.section-heading h1 { margin:0; font-size:27px; line-height:1.25; letter-spacing:-.02em; }
.heading-subtitle,.section-heading p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.forum-description { margin-top:6px; color:var(--muted); font-size:13px; line-height:1.6; }
.featured-strip { margin-bottom:16px; padding:10px 14px; display:grid; grid-template-columns:auto repeat(3,minmax(0,1fr)); gap:8px; align-items:center; overflow:hidden; }
.featured-label { display:flex; align-items:center; gap:6px; padding-right:10px; color:#a34875; font-size:11px; white-space:nowrap; }
.featured-label span { color:var(--pink); }
.featured-strip > a { min-width:0; display:flex; align-items:center; gap:7px; padding:8px 10px; color:#55596f; background:#faf8ff; border-radius:10px; font-size:11px; }
.featured-strip > a:hover { color:var(--primary); background:#f4f1ff; }
.featured-strip > a i { color:#aaa4c4; font-size:9px; font-style:normal; }
.featured-strip > a span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.topic-list { padding:9px; overflow:hidden; }
.topic-row {
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 86px 158px;
  gap:10px;
  align-items:center;
  min-height:84px;
  margin:3px 0;
  padding:13px 15px;
  border:1px solid transparent;
  border-radius:15px;
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.topic-row:hover { background:#fff; border-color:rgba(108,92,231,.1); box-shadow:0 11px 30px rgba(64,55,126,.09); transform:translateY(-2px); }
.topic-spark { width:35px; height:35px; border-radius:12px; background:linear-gradient(145deg,rgba(108,92,231,.16),rgba(25,191,208,.16)); }
.topic-spark::after { display:block; width:9px; height:9px; margin:13px; content:""; background:linear-gradient(135deg,var(--primary),var(--cyan)); border-radius:3px; transform:rotate(45deg); }
.topic-row:nth-child(3n+2) .topic-spark { background:linear-gradient(145deg,rgba(255,107,157,.16),rgba(255,184,106,.16)); }
.topic-row:nth-child(3n+2) .topic-spark::after { background:linear-gradient(135deg,var(--pink),#ffb05c); }
.topic-main { min-width:0; }
.topic-main h2 { margin:0; overflow:hidden; font-size:16px; font-weight:720; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.topic-main h2 a { color:#282c42; }
.topic-main h2 a:hover { color:var(--primary); }
.topic-main p { display:flex; align-items:center; gap:10px; margin:6px 0 0; color:var(--muted); font-size:11px; }
.topic-author { color:#595e75; font-weight:700; }
.forum-tag { padding:1px 8px; color:var(--primary); background:rgba(108,92,231,.08); border-radius:999px; font-weight:700; }
.topic-replies,.topic-last { display:flex; flex-direction:column; color:var(--muted); font-size:11px; }
.topic-replies { align-items:center; padding:6px 4px; background:#f7f6fc; border-radius:11px; }
.topic-replies span { white-space:nowrap; }
.topic-replies strong { color:var(--text); font-size:16px; line-height:1.15; }
.topic-last { gap:2px; padding-left:12px; border-left:1px solid var(--border); }
.topic-last span:first-child { color:#63677b; }
.empty-list { padding:78px 20px; color:var(--muted); text-align:center; }
.empty-list::before { display:block; margin-bottom:8px; color:#d0cedd; font-size:34px; content:"◇"; }
.pagination { display:flex; align-items:center; justify-content:center; gap:12px; margin:20px 0 0; }
.pagination a,.pagination span,.pagination strong { padding:6px 13px; background:rgba(255,255,255,.72); border:1px solid var(--border); border-radius:999px; font-size:12px; }
.pagination span { color:#aaaebd; }
.pagination strong { color:#5e6278; font-weight:700; }

.popular-hero { position:relative; min-height:160px; padding:32px 38px; display:flex; align-items:center; justify-content:space-between; overflow:hidden; }
.popular-hero::before { position:absolute; right:70px; top:-90px; width:260px; height:260px; content:""; background:radial-gradient(circle,rgba(255,107,157,.2),rgba(108,92,231,.08) 46%,transparent 68%); }
.popular-hero h1 { margin:0; font-size:34px; line-height:1.25; letter-spacing:-.035em; }
.popular-hero p { margin:8px 0 0; color:var(--muted); }
.popular-flame { position:relative; z-index:1; width:78px; height:78px; display:grid; place-items:center; flex:0 0 auto; font-size:38px; background:linear-gradient(145deg,#fff1f6,#f1eeff); border:1px solid rgba(255,255,255,.9); border-radius:26px 26px 26px 9px; box-shadow:0 16px 38px rgba(201,78,128,.18); transform:rotate(5deg); }
.popular-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px; align-items:start; }
.ranking-card { padding:10px; overflow:hidden; }
.ranking-head { padding:18px 18px 16px; display:flex; align-items:center; justify-content:space-between; }
.ranking-head h2 { margin:4px 0 0; font-size:22px; }
.ranking-kicker { padding:3px 9px; border-radius:999px; font-size:10px; font-weight:850; letter-spacing:.1em; }
.reply-kicker { color:#9d4167; background:#ffedf4; }
.view-kicker { color:#397d89; background:#e9fafc; }
.ranking-mark { color:#dedbea; font-size:11px; font-weight:900; letter-spacing:.18em; }
.ranking-list { display:flex; flex-direction:column; }
.ranking-row { min-width:0; display:grid; grid-template-columns:35px minmax(0,1fr) 62px; gap:10px; align-items:center; min-height:70px; padding:10px 12px; border-top:1px solid var(--border); border-radius:12px; transition:background .2s ease,transform .2s ease; }
.ranking-row:hover { background:#faf9ff; transform:translateX(3px); }
.rank-number { width:32px; height:28px; display:grid; place-items:center; color:#9497aa; background:#f3f2f8; border-radius:9px; font-size:10px; font-weight:850; }
.rank-number.top-rank { color:#fff; background:linear-gradient(135deg,var(--pink),#ffad68); box-shadow:0 6px 14px rgba(255,107,157,.23); }
.ranking-row:nth-child(2) .top-rank { background:linear-gradient(135deg,var(--primary),#9b84f5); }
.ranking-row:nth-child(3) .top-rank { background:linear-gradient(135deg,var(--cyan),#63d8c7); }
.ranking-main { min-width:0; }
.ranking-main h3 { margin:0; overflow:hidden; font-size:14px; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.ranking-main h3 a { color:#32364b; }
.ranking-main h3 a:hover { color:var(--primary); }
.ranking-main p { display:flex; gap:8px; margin:5px 0 0; color:var(--muted); font-size:10px; }
.ranking-main p a { color:var(--primary); }
.ranking-stat { display:flex; align-items:center; flex-direction:column; color:var(--muted); font-size:9px; }
.ranking-stat strong { max-width:62px; overflow:hidden; color:#4c5066; font-size:14px; line-height:1.25; text-overflow:ellipsis; }
.popular-pagination { margin-bottom:8px; }
.popular-ranges { margin:16px 0; display:flex; justify-content:center; gap:7px; }
.popular-ranges a { padding:7px 13px; color:#707489; background:rgba(255,255,255,.72); border:1px solid var(--border); border-radius:999px; font-size:11px; font-weight:700; }
.popular-ranges a.active { color:#fff; background:linear-gradient(120deg,var(--primary),#8b73ef); border-color:transparent; box-shadow:0 7px 17px rgba(108,92,231,.2); }
.popular-pager-top,.popular-pager-bottom { display:flex; align-items:center; justify-content:center; gap:12px; }
.popular-pager-top { margin-bottom:16px; }
.popular-pager-bottom { margin-top:18px; }
.popular-pager-top .pagination,.popular-pager-bottom .pagination { margin:0; }
.page-jump { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:11px; }
.page-jump label { display:flex; align-items:center; gap:5px; }
.page-jump input { width:66px; min-height:31px; height:31px; padding:4px 7px; border-radius:9px; }
.page-jump button { min-height:31px; padding:4px 9px; color:var(--primary); background:#f1effc; border:0; border-radius:8px; cursor:pointer; font-weight:700; }

.thread-head { position:relative; padding:24px 28px 25px; overflow:hidden; }
.thread-head::after { position:absolute; right:-28px; bottom:-42px; width:160px; height:160px; content:""; background:linear-gradient(135deg,rgba(108,92,231,.13),rgba(25,191,208,.12)); border-radius:50%; }
.thread-head > * { position:relative; z-index:1; }
.thread-head .eyebrow { margin-top:17px; }
.thread-head h1 { max-width:900px; margin:5px 0 10px; font-size:28px; line-height:1.35; letter-spacing:-.025em; }
.breadcrumb,.thread-meta { margin:0; color:var(--muted); font-size:12px; }
.breadcrumb a { color:#6a6e82; }
.thread-meta-row,.post-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.thread-meta-row form,.post-toolbar form { margin:0; }
.danger-link { padding:4px 9px; color:var(--danger); background:rgba(229,72,103,.07); border:0; border-radius:8px; cursor:pointer; font:inherit; font-size:12px; }
.danger-link:hover { background:rgba(229,72,103,.13); }
.post-list { margin-top:16px; }
.post { display:grid; grid-template-columns:150px minmax(0,1fr); margin-bottom:13px; overflow:hidden; transition:box-shadow .2s ease; }
.post:hover { box-shadow:var(--shadow-hover); }
.post-author {
  min-height:132px;
  padding:25px 17px;
  display:flex;
  align-items:center;
  flex-direction:column;
  gap:9px;
  text-align:center;
  background:linear-gradient(150deg,#faf9ff,#f3fbfc);
  border-right:1px solid var(--border);
}
.post-author strong { max-width:118px; overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.avatar-dot { width:72px; height:72px; border:5px solid rgba(255,255,255,.78); border-radius:24px; background:linear-gradient(145deg,var(--primary),#9b7af4 55%,var(--cyan)); box-shadow:0 10px 22px rgba(108,92,231,.24); transform:rotate(-3deg); }
.avatar-dot::after { display:block; margin-top:16px; color:#fff; font-size:22px; font-weight:900; content:"✦"; transform:rotate(3deg); }
.avatar-image { display:block; object-fit:cover; transform:none; }
.avatar-image::after { display:none; }
.floor-badge { padding:2px 9px; color:#777b90; background:#fff; border:1px solid var(--border); border-radius:999px; font-size:10px; }
.post-body { min-width:0; padding:18px 25px 29px; }
.post-body time { color:var(--muted); font-size:11px; }
.post-content { max-width:76ch; margin-top:18px; overflow-wrap:anywhere; color:#34384d; font-size:15px; line-height:1.85; }
.post-tools { display:flex; align-items:center; gap:8px; }
.copy-floor { padding:3px 7px; color:var(--muted); background:none; border:0; border-radius:7px; cursor:pointer; font-size:10px; }
.copy-floor:hover { color:var(--primary); background:#f3f1fc; }
.post-content p { margin:.8em 0; }
.post-content a { text-decoration:underline; text-decoration-color:rgba(108,92,231,.25); text-underline-offset:3px; }
.post-content img { max-width:100%; height:auto; border-radius:12px; }
.post-content blockquote { margin:14px 0; padding:12px 16px; color:#5f6377; background:#f8f7fd; border-left:4px solid #a999f5; border-radius:0 11px 11px 0; }
.post-content pre { overflow:auto; padding:16px; color:#f9fafb; background:#242438; border-radius:12px; white-space:pre-wrap; box-shadow:inset 0 1px rgba(255,255,255,.07); }
.legacy-media { display:inline-block; padding:2px 8px; color:var(--muted); background:#f4f3fa; border:1px solid var(--border); border-radius:6px; }
.bb-align-center { text-align:center; }
.bb-align-left { text-align:left; }
.bb-align-right { text-align:right; }
.post-content hr { margin:22px 0; border:0; border-top:1px solid var(--border); }
.post-attachments { margin-top:22px; padding-top:18px; border-top:1px dashed #d8d5e5; }
.post-attachments img { display:block; max-width:100%; max-height:720px; border-radius:14px; object-fit:contain; box-shadow:0 8px 30px rgba(43,39,73,.12); }
.post-attachments video { display:block; width:min(100%,860px); max-height:720px; background:#171721; border-radius:14px; box-shadow:0 8px 30px rgba(43,39,73,.15); }
.attachment-download { width:min(100%,620px); margin:8px 0; padding:13px 15px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:center; color:#55596e; background:#f8f7fd; border:1px solid var(--border); border-radius:12px; }
.attachment-download:hover { color:var(--primary); background:#f3f0ff; transform:translateY(-1px); }
.attachment-download > span { padding:3px 7px; color:#fff; background:linear-gradient(135deg,var(--primary),#8f78f1); border-radius:7px; font-size:9px; font-weight:800; }
.attachment-download strong { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.attachment-download small { color:var(--muted); font-size:10px; }

.reply-placeholder { margin-top:19px; padding:26px; text-align:center; }
.reply-placeholder .stack-form { text-align:left; }
.reply-heading { display:flex; align-items:baseline; gap:12px; }
.reply-heading .eyebrow { margin:0; }
.reply-heading strong { font-size:17px; }
.thread-adjacent { margin-top:18px; padding:13px 18px; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.thread-adjacent > div { min-width:0; display:flex; align-items:center; gap:9px; }
.thread-adjacent > div:last-child { justify-content:flex-end; text-align:right; }
.thread-adjacent span { flex:0 0 auto; color:var(--muted); font-size:10px; font-weight:750; }
.thread-adjacent a,.thread-adjacent em { overflow:hidden; color:#55596e; font-size:12px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.thread-adjacent a:hover { color:var(--primary); }
.back-to-top { position:fixed; right:22px; bottom:24px; z-index:30; width:42px; height:42px; color:#fff; background:linear-gradient(135deg,var(--primary),#9077f2); border:0; border-radius:14px; box-shadow:0 10px 24px rgba(108,92,231,.28); cursor:pointer; opacity:0; pointer-events:none; transform:translateY(12px); transition:opacity .2s ease,transform .2s ease; }
.back-to-top.visible { opacity:1; pointer-events:auto; transform:translateY(0); }
.editor-card { max-width:900px; margin:0 auto; padding:29px 32px 34px; }
.editor-card h1 { margin:0; font-size:28px; letter-spacing:-.02em; }
.form-actions { display:flex; align-items:center; gap:16px; }
.cancel-link { color:var(--muted); font-size:13px; }
.auth-card { width:min(440px,100%); margin:45px auto; padding:35px 36px 38px; text-align:center; }
.auth-symbol { width:58px; height:58px; margin:0 auto 21px; border-radius:19px 19px 19px 7px; font-size:28px; transform:rotate(-4deg); }
.auth-card h1 { margin:0; font-size:28px; letter-spacing:-.02em; }
.auth-card .eyebrow { margin-bottom:7px; }
.form-help { margin:6px 0 23px; color:var(--muted); font-size:13px; }
.password-field { position:relative; display:block; }
.password-field input { padding-right:58px; }
.password-toggle { position:absolute; right:8px; top:7px; padding:5px 9px; color:var(--primary); background:#f3f0ff; border:0; border-radius:8px; cursor:pointer; font-size:11px; }
.form-hint { color:var(--muted); font-size:11px; font-weight:450; }
.selected-forum { min-height:44px; padding:9px 12px; color:var(--primary); background:#f7f5ff; border:1px solid rgba(108,92,231,.16); border-radius:12px; font-weight:700; }
.stack-form { display:flex; flex-direction:column; gap:17px; }
.stack-form label { display:flex; flex-direction:column; gap:7px; color:#4b4f64; font-size:13px; font-weight:700; text-align:left; }
input,textarea,select {
  width:100%;
  min-height:44px;
  padding:10px 13px;
  color:var(--text);
  background:rgba(255,255,255,.92);
  border:1px solid #dcd9e9;
  border-radius:12px;
  font:inherit;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
input:hover,textarea:hover,select:hover { border-color:#c8c2e7; }
input:focus,textarea:focus,select:focus { background:#fff; border-color:#9d8df1; box-shadow:0 0 0 4px rgba(108,92,231,.09); outline:0; }
input[type="file"] { padding:8px; color:var(--muted); font-size:12px; }
input[type="file"]::file-selector-button { margin-right:10px; padding:6px 11px; color:var(--primary); background:#f2efff; border:0; border-radius:8px; cursor:pointer; font-weight:700; }
textarea { min-height:230px; resize:vertical; line-height:1.7; }
.alert { margin:0 0 17px; padding:11px 13px; border-radius:11px; text-align:left; }
.alert-error { color:#a82c48; background:#fff2f5; border:1px solid #ffd4de; }
.alert-success { color:#22765a; background:#edfff8; border:1px solid #c4f2df; }

.admin-hero { min-height:132px; padding:27px 30px; display:flex; align-items:center; justify-content:space-between; gap:20px; background:linear-gradient(125deg,rgba(255,255,255,.94),rgba(244,242,255,.92)); }
.admin-hero h1 { margin:0; font-size:30px; letter-spacing:-.03em; }
.admin-hero p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.admin-back { color:var(--text); background:#fff; border:1px solid var(--border); box-shadow:0 7px 18px rgba(43,39,73,.08); }
.admin-back:hover { color:var(--primary); box-shadow:0 10px 23px rgba(43,39,73,.12); }
.admin-alert { margin:16px 0 0; }
.admin-create { margin-top:18px; padding:0; overflow:hidden; }
.admin-create > summary { padding:20px 25px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; list-style:none; transition:background .2s ease; }
.admin-create > summary::-webkit-details-marker,.admin-forum-summary::-webkit-details-marker { display:none; }
.admin-create > summary:hover { background:rgba(108,92,231,.035); }
.admin-create > summary h2,.admin-list-head h2 { margin:0; font-size:21px; }
.admin-create > summary p { margin:3px 0 0; color:var(--muted); font-size:11px; }
.admin-add-icon { width:38px; height:38px; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--primary),#9a7af5); border-radius:12px; font-size:22px; box-shadow:0 8px 19px rgba(108,92,231,.23); transition:transform .25s ease; }
.admin-create[open] .admin-add-icon { transform:rotate(45deg); }
.admin-create-form { display:grid; grid-template-columns:2fr 1fr 1.5fr .75fr; gap:15px; margin-top:20px; align-items:end; }
.admin-create-form { margin:0; padding:3px 25px 25px; border-top:1px solid var(--border); }
.admin-create-form > label:first-of-type { margin-top:18px; }
.admin-create-form > label:nth-of-type(2),.admin-create-form > label:nth-of-type(3),.admin-create-form > label:nth-of-type(4) { margin-top:18px; }
.admin-create-form label,.admin-edit-form label { display:flex; flex-direction:column; gap:6px; color:#54586d; font-size:12px; font-weight:750; }
.admin-description { grid-column:1 / -1; }
.admin-create-form textarea { min-height:82px; }
.check-card { min-height:44px; padding:9px 12px; display:flex!important; align-items:center; flex-direction:row!important; gap:8px!important; background:#f8f7fc; border:1px solid var(--border); border-radius:12px; cursor:pointer; }
.check-card input { width:17px; min-height:17px; height:17px; margin:0; accent-color:var(--primary); }
.admin-create-actions { grid-column:2 / -1; display:flex; align-items:center; justify-content:flex-end; gap:14px; }
.admin-create-actions span { color:var(--muted); font-size:11px; }
.field-help { color:var(--muted); font-size:10px; font-weight:450; }
.admin-edit-form.is-dirty .admin-save::after { margin-left:5px; content:"•"; color:#ffe06b; }
.admin-edit-form.is-dirty .admin-save { box-shadow:0 0 0 3px rgba(255,195,84,.16),0 8px 20px rgba(108,92,231,.22); }
.admin-list-head { margin:30px 3px 13px; display:flex; align-items:flex-end; justify-content:space-between; }
.admin-list-head > span { color:var(--muted); font-size:12px; }
.admin-list-head b { color:var(--primary); }
.admin-toolbar { position:sticky; top:87px; z-index:10; margin-bottom:12px; padding:10px; display:grid; grid-template-columns:minmax(260px,1fr) 155px 155px; gap:9px; box-shadow:0 10px 30px rgba(54,48,112,.08); }
.admin-toolbar label { margin:0; }
.admin-toolbar input,.admin-toolbar select { min-height:40px; height:40px; background:#fbfaff; border-color:transparent; font-size:12px; }
.admin-search { position:relative; }
.admin-search > span { position:absolute; z-index:1; left:13px; top:5px; color:#9995ae; font-size:20px; }
.admin-search input { padding-left:39px; }
.admin-forum-list { display:flex; flex-direction:column; gap:9px; }
.admin-forum-card { position:relative; padding:0; overflow:hidden; border-radius:15px; }
.admin-forum-card.is-hidden { opacity:.72; background:rgba(247,247,251,.9); }
.admin-forum-card.is-hidden:hover { opacity:1; }
.admin-forum-card[hidden] { display:none; }
.admin-forum-summary { position:relative; min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 17px; cursor:pointer; list-style:none; transition:background .2s ease; }
.admin-forum-summary::before { position:absolute; left:0; top:14px; bottom:14px; width:3px; content:""; background:#7c6be9; border-radius:0 3px 3px 0; }
.admin-forum-card[data-kind="group"] .admin-forum-summary::before { background:#f06f9c; }
.admin-forum-card[data-kind="sub"] .admin-forum-summary::before { background:#27acbd; }
.admin-forum-summary:hover { background:rgba(108,92,231,.035); }
.admin-forum-card[open] .admin-forum-summary { background:#faf9ff; border-bottom:1px solid var(--border); }
.admin-forum-identity { display:flex; align-items:center; gap:11px; min-width:0; }
.admin-forum-identity strong { display:block; overflow:hidden; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.admin-forum-identity p { margin:1px 0 0; color:var(--muted); font-size:10px; }
.admin-kind { min-width:54px; padding:5px 7px; color:#fff; background:#7c6be9; border-radius:8px; font-size:9px; font-weight:850; text-align:center; text-transform:uppercase; letter-spacing:.06em; }
.kind-group { background:#f06f9c; }
.kind-sub { background:#27acbd; }
.admin-forum-stats { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:10px; }
.admin-forum-stats > span { display:flex; align-items:baseline; gap:3px; }
.admin-forum-stats strong { color:#4e5266; font-size:13px; }
.status-pill { padding:3px 8px; border-radius:999px; font-weight:750; }
.status-pill.visible { color:#258165; background:#e9fbf4; }
.status-pill.hidden { color:#8a6571; background:#f5edf0; }
.status-pill.readonly { color:#986322; background:#fff5df; }
.admin-expand { min-width:59px; display:inline-flex!important; align-items:center!important; justify-content:center; gap:6px!important; padding:5px 8px; color:var(--primary); background:#f1effc; border-radius:8px; font-weight:750; }
.admin-expand i { width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s ease; }
.admin-forum-card[open] .admin-expand i { transform:rotate(225deg) translate(-1px,-1px); }
.admin-editor { padding:15px 18px 13px; background:rgba(250,250,255,.55); }
.admin-edit-form { display:grid; grid-template-columns:minmax(180px,1.5fr) 100px minmax(250px,2.5fr) auto auto; gap:12px; align-items:end; }
.admin-edit-form .admin-description { grid-column:auto; }
.admin-edit-form textarea { min-height:44px; height:44px; resize:vertical; }
.admin-switches { min-height:44px; display:flex; align-items:center; gap:13px; padding:0 5px; }
.switch-control { display:flex!important; align-items:center; flex-direction:row!important; gap:7px!important; white-space:nowrap; cursor:pointer; }
.switch-control input { position:absolute; width:1px; height:1px; min-height:1px; opacity:0; }
.switch-control i { position:relative; width:34px; height:20px; flex:0 0 auto; background:#d8d6e2; border-radius:999px; transition:background .2s ease; }
.switch-control i::after { position:absolute; left:3px; top:3px; width:14px; height:14px; content:""; background:#fff; border-radius:50%; box-shadow:0 2px 5px rgba(42,39,65,.2); transition:transform .2s ease; }
.switch-control input:checked + i { background:linear-gradient(120deg,var(--primary),#8d75ef); }
.switch-control input:checked + i::after { transform:translateX(14px); }
.switch-control input:focus-visible + i { outline:3px solid rgba(108,92,231,.22); outline-offset:2px; }
.admin-save { min-width:105px; }
.admin-save:disabled { cursor:wait; opacity:.72; transform:none; }
.admin-save.is-saved { background:linear-gradient(120deg,#24ad7b,#43c99a); box-shadow:0 8px 20px rgba(36,173,123,.2); }
.admin-save.is-failed { background:linear-gradient(120deg,#d94768,#ed6b84); box-shadow:0 8px 20px rgba(217,71,104,.2); }
.admin-danger-zone { margin-top:13px; padding-top:10px; display:flex; align-items:center; justify-content:flex-end; gap:10px; color:#aaa6b6; border-top:1px dashed var(--border); font-size:10px; }
.admin-danger-zone form { margin:0; }
.admin-danger-zone .danger-link { font-size:10px; }
.admin-no-results { padding:65px 20px; color:var(--muted); text-align:center; }
.admin-no-results > span { display:block; color:#c6c2d5; font-size:35px; }
.admin-no-results strong { display:block; color:#64687b; }
.admin-no-results p { margin:3px 0 0; font-size:12px; }
.admin-toast { position:fixed; z-index:100; right:24px; bottom:24px; max-width:min(360px,calc(100% - 32px)); padding:12px 17px; color:#fff; border-radius:12px; box-shadow:0 15px 38px rgba(32,36,58,.22); font-size:13px; font-weight:700; opacity:0; transform:translateY(14px) scale(.97); transition:opacity .2s ease,transform .2s ease; }
.admin-toast.is-success { background:linear-gradient(120deg,#209d73,#37bd8d); }
.admin-toast.is-error { background:linear-gradient(120deg,#cf3e61,#ea6680); }
.admin-toast.is-visible { opacity:1; transform:translateY(0) scale(1); }

.search-hero { padding:29px 32px 32px; }
.search-hero h1 { margin:0; font-size:30px; }
.search-hero > p { margin:6px 0 21px; color:var(--muted); font-size:13px; }
.search-form { display:grid; grid-template-columns:minmax(260px,2fr) 1fr 1fr auto; gap:10px; }
.search-result-head { margin:27px 4px 12px; display:flex; align-items:center; justify-content:space-between; }
.search-result-head h2 { margin:0; font-size:21px; }
.search-result-head span { color:var(--muted); font-size:11px; }
.search-topic-row { grid-template-columns:40px minmax(0,1fr) 82px 158px; }

.settings-hero { min-height:138px; padding:26px 31px; display:flex; align-items:center; gap:20px; background:linear-gradient(125deg,rgba(255,255,255,.96),rgba(244,242,255,.92)); }
.settings-avatar { width:70px; height:70px; display:grid; place-items:center; flex:0 0 auto; color:#fff; background:linear-gradient(145deg,var(--primary),#9b7af4 55%,var(--pink)); border:6px solid rgba(255,255,255,.78); border-radius:23px 23px 23px 8px; box-shadow:0 12px 27px rgba(108,92,231,.25); font-size:28px; font-weight:900; transform:rotate(-3deg); }
.settings-avatar-image { display:block; object-fit:cover; transform:none; }
.settings-hero h1 { margin:0; font-size:30px; letter-spacing:-.03em; }
.settings-hero p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.settings-alert { margin:16px 0 0; }
.settings-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr); gap:18px; margin-top:18px; align-items:start; }
.settings-card { padding:25px 28px 29px; }
.avatar-card { grid-column:1 / -1; }
.avatar-card form { max-width:620px; }
.settings-card > header { display:flex; align-items:center; gap:12px; margin-bottom:23px; padding-bottom:17px; border-bottom:1px solid var(--border); }
.settings-card > header h2 { margin:0; font-size:20px; }
.settings-card > header p { margin:2px 0 0; color:var(--muted); font-size:11px; }
.settings-icon { width:40px; height:40px; display:grid; place-items:center; color:#fff; border-radius:13px; font-size:18px; font-weight:900; }
.profile-icon { background:linear-gradient(135deg,var(--primary),#9b83f5); }
.security-icon { background:linear-gradient(135deg,#21aebf,#61d4c5); }
.settings-form textarea { min-height:118px; }
.settings-form .short-textarea { min-height:78px; }
.settings-form label { position:relative; }
.form-counter { position:absolute; right:9px; bottom:7px; color:#aaa7b8; font-size:10px; font-weight:500; }
.password-strength { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.password-strength > span { height:5px; background:#e5e3eb; border-radius:999px; transition:background .2s ease; }
.password-strength small { grid-column:1 / -1; color:var(--muted); font-size:10px; }
.password-strength[data-score="1"] > span:nth-child(1) { background:#ed6680; }
.password-strength[data-score="2"] > span:nth-child(-n+2) { background:#f1b34f; }
.password-strength[data-score="3"] > span { background:#35bd8c; }

@keyframes pulse {
  0%,100% { box-shadow:0 0 0 4px rgba(255,107,157,.11); }
  50% { box-shadow:0 0 0 8px rgba(255,107,157,.03); }
}

@media (max-width:900px) {
  .forum-layout { grid-template-columns:190px minmax(0,1fr); gap:15px; }
  .topic-row { grid-template-columns:35px minmax(0,1fr) 55px; }
  .topic-last { display:none; }
  .featured-strip { grid-template-columns:auto 1fr; }
  .featured-strip > a:nth-of-type(n+2) { display:none; }
}
@media (max-width:700px) {
  .container { width:min(100% - 20px,1180px); }
  .site-header,.header-inner { height:64px; }
  .site-main { padding-top:18px; }
  .brand-mark { width:36px; height:36px; }
  .brand-copy,.nav-home,.user-chip i,.nav-search span,.nav-settings b { display:none; }
  .user-chip { max-width:105px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .user-chip { display:none; }
  .top-nav { gap:2px; }
  .forum-layout { display:block; }
  .forum-sidebar { position:fixed; z-index:60; left:12px; right:12px; top:78px; bottom:16px; display:block; margin:0; padding:13px; overflow-y:auto; white-space:normal; opacity:0; pointer-events:none; transform:translateY(18px) scale(.98); transition:opacity .2s ease,transform .2s ease; }
  .forum-drawer-open .forum-sidebar { opacity:1; pointer-events:auto; transform:translateY(0) scale(1); }
  .forum-drawer-backdrop { position:fixed; inset:0; z-index:50; display:block; background:rgba(29,28,48,.38); opacity:0; pointer-events:none; backdrop-filter:blur(4px); transition:opacity .2s ease; }
  .forum-drawer-open .forum-drawer-backdrop { opacity:1; pointer-events:auto; }
  .forum-drawer-open { overflow:hidden; }
  .sidebar-title { display:flex; }
  .sidebar-title button { display:block; }
  .forum-links,.forum-sidebar.show-all .forum-links { max-height:none; }
  .forum-group { display:block; }
  .forum-link { margin:3px 0; padding:10px 13px 10px 34px; font-size:12px; }
  .forum-link::before { display:block; }
  .forum-more { display:none; }
  .forum-drawer-trigger { display:inline-flex; min-height:34px; align-items:center; margin-right:7px; padding:0 10px; color:var(--primary); background:#f1effd; border:0; border-radius:10px; font-size:11px; font-weight:750; }
  .section-heading { min-height:100px; padding:18px; }
  .section-heading h1 { font-size:23px; }
  .section-heading::after { display:none; }
  .section-heading .button { min-width:43px; padding:0 12px; font-size:12px; }
  .featured-strip { padding:8px 10px; }
  .topic-list { padding:6px; }
  .topic-row { grid-template-columns:34px minmax(0,1fr) 46px; min-height:76px; padding:10px 8px; }
  .topic-spark { width:31px; height:31px; border-radius:10px; }
  .topic-spark::after { margin:11px; }
  .topic-main p span:nth-child(2) { display:none; }
  .topic-main h2 { font-size:14px; }
  .forum-tag { display:none; }
  .nav-popular { width:36px; padding:7px; font-size:0; justify-content:center; }
  .nav-popular span { font-size:14px; }
  .nav-search { padding:7px 9px; }
  .nav-settings { padding:7px 9px; }
  .nav-admin { width:36px; padding:7px; font-size:0; justify-content:center; text-align:center; }
  .nav-admin::after { content:"管"; font-size:11px; }
  .link-button { padding:7px 6px; font-size:0; }
  .link-button::after { content:"退"; font-size:11px; }
  .popular-hero { min-height:130px; padding:24px 22px; }
  .popular-hero h1 { font-size:27px; }
  .popular-hero p { max-width:250px; font-size:12px; }
  .popular-flame { width:58px; height:58px; margin-left:12px; font-size:28px; border-radius:19px 19px 19px 7px; }
  .ranking-head { padding:14px 11px; }
  .ranking-row { grid-template-columns:31px minmax(0,1fr) 53px; padding:9px 5px; }
  .popular-ranges { overflow-x:auto; justify-content:flex-start; padding-bottom:3px; }
  .popular-ranges a { flex:0 0 auto; }
  .popular-grid { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; }
  .ranking-card { min-width:100%; scroll-snap-align:start; }
  .popular-pager-top,.popular-pager-bottom { flex-direction:column; }
  .thread-head { padding:20px; }
  .thread-head h1 { font-size:23px; }
  .thread-meta { line-height:1.7; }
  .post { display:block; }
  .post-author { min-height:auto; padding:12px 16px; flex-direction:row; justify-content:flex-start; text-align:left; border-right:0; border-bottom:1px solid var(--border); }
  .avatar-dot { width:44px; height:44px; border-width:3px; border-radius:14px; }
  .avatar-dot::after { margin-top:8px; font-size:15px; }
  .floor-badge { margin-left:auto; }
  .post-body { padding:15px 18px 24px; }
  .post-content { max-width:none; }
  .thread-adjacent { grid-template-columns:1fr; }
  .thread-adjacent > div:last-child { justify-content:flex-start; text-align:left; }
  .back-to-top { right:14px; bottom:16px; }
  .reply-placeholder,.editor-card { padding:20px; }
  .auth-card { margin:20px auto; padding:28px 22px 31px; }
  .admin-hero { min-height:115px; padding:21px 19px; }
  .admin-hero h1 { font-size:25px; }
  .admin-hero p { max-width:240px; }
  .admin-back { display:none; }
  .admin-create { padding:20px; }
  .admin-create { padding:0; }
  .admin-create > summary { padding:17px 18px; }
  .admin-create-form { grid-template-columns:1fr 1fr; }
  .admin-create-form > label:first-of-type,.admin-description { grid-column:1 / -1; }
  .admin-create-actions { grid-column:1 / -1; flex-direction:column-reverse; align-items:flex-start; }
  .admin-forum-card { padding:15px; }
  .admin-forum-card { padding:0; }
  .admin-toolbar { top:76px; grid-template-columns:1fr 1fr; }
  .admin-search { grid-column:1 / -1; }
  .admin-forum-summary { align-items:flex-start; }
  .admin-forum-stats > span:not(.status-pill) { display:none; }
  .admin-edit-form { grid-template-columns:1fr 90px; }
  .admin-edit-form .admin-description,.admin-switches { grid-column:1 / -1; }
  .admin-save { grid-column:1 / -1; }
  .admin-editor { padding:14px; }
  .admin-expand { min-width:auto; }
  .admin-expand { font-size:0; }
  .admin-expand i { margin:4px; }
  .admin-danger-zone { align-items:flex-end; flex-direction:column; }
  .admin-toast { right:16px; bottom:16px; }
  .search-hero { padding:23px 20px; }
  .search-form { grid-template-columns:1fr 1fr; }
  .search-keyword { grid-column:1 / -1; }
  .search-form .button { grid-column:1 / -1; }
  .search-topic-row { grid-template-columns:34px minmax(0,1fr) 50px; }
  .settings-hero { min-height:120px; padding:21px 20px; }
  .settings-avatar { width:55px; height:55px; border-radius:18px 18px 18px 7px; font-size:22px; }
  .settings-hero h1 { font-size:25px; }
  .settings-grid { grid-template-columns:1fr; }
  .settings-card { padding:21px 20px 24px; }
  .site-footer .container { display:block; text-align:center; }
  .footer-slogan { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
