/* 星群社区 · 作品优先的三栏面板（2026-10-22）
   顶栏 + 左栏（我的项目/我的收藏，用户信息固定在左下角）+ 中间最新作品 + 右侧社区概览。 */
.ch-body{background:var(--bg);color:var(--ink);min-height:100vh;display:flex;flex-direction:column}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ---------- 顶栏 ---------- */
.ch-topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto minmax(220px,520px) auto;
  align-items:center;gap:clamp(14px,3vw,32px);min-height:64px;padding:0 clamp(16px,3vw,32px);
  background:var(--bg);border-bottom:1px solid var(--line)}
.ch-brand{font-size:17px;font-weight:650;letter-spacing:-.035em;color:var(--ink);text-decoration:none;white-space:nowrap}
.ch-brand span{font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--ink3);margin-left:4px}
.ch-topsearch{display:flex;align-items:center;gap:8px;min-width:0;height:36px;padding:0 11px;
  border:1px solid var(--line2);border-radius:8px;background:var(--panel);color:var(--ink3)}
.ch-topsearch svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}
.ch-topsearch input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);
  font:inherit;font-size:12.5px}
.ch-topsearch:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
.ch-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}
.ch-top-link{font-size:12.5px;color:var(--ink2);text-decoration:none;padding:7px 9px;border-radius:7px}
.ch-top-link:hover{color:var(--ink);background:var(--band)}
.ch-submit{display:inline-flex;align-items:center;min-height:40px;padding:0 15px;border-radius:7px;
  border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-size:12.5px;font-weight:650;
  text-decoration:none;transition:opacity .15s}
.ch-submit:hover{opacity:.86}
.ch-submit:focus-visible,.ch-login:focus-visible,.ch-sidenav a:focus-visible{
  outline:2px solid var(--accent-line);outline-offset:2px}
.ch-login{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 12px;border-radius:7px;
  border:1px solid var(--line2);background:var(--panel);color:var(--ink2);font-size:12.5px;
  text-decoration:none;max-width:190px;overflow:hidden}
.ch-login:hover{color:var(--ink);border-color:var(--accent-line)}
.ch-login img{width:22px;height:22px;border-radius:50%;object-fit:cover;flex:none}
.ch-login .ch-login-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 三栏 ---------- */
.ch-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(18px,2.2vw,26px);
  width:100%;max-width:1320px;flex:1 0 auto;margin:0 auto;
  padding:22px clamp(16px,3vw,32px) 64px;align-items:start}
.ch-left{position:sticky;top:84px;display:flex;flex-direction:column;gap:12px;min-width:0;
  padding-bottom:150px}
.ch-sidenav{display:flex;flex-direction:column;gap:2px;padding:5px 0}
.ch-sidenav a{display:flex;align-items:center;min-height:34px;padding:0 10px;border-radius:7px;
  color:var(--ink2);text-decoration:none;font-size:12.5px;font-weight:500}
.ch-sidenav a:hover{background:var(--band);color:var(--ink)}
.ch-sidenav a.is-on{background:var(--accent-soft);color:var(--accent);font-weight:650}

.ch-panel{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.ch-panel + .ch-panel{margin-top:0}
.ch-panel h2,.ch-panel-head h2{margin:0;font-size:11.5px;line-height:1.4;letter-spacing:.02em;
  font-weight:650;color:var(--ink2)}
.ch-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.ch-panel-head a{font-size:11px;color:var(--ink3);text-decoration:none}
.ch-panel-head a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.ch-my-panel{padding-bottom:10px}
.ch-my-block + .ch-my-block{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.ch-my-title{margin:0 0 6px;font-size:10.5px;font-weight:600;color:var(--ink3);letter-spacing:.03em}
.ch-my-login{display:inline-flex;align-items:center;min-height:26px;margin-top:5px;font-size:11px;
  color:var(--accent);text-decoration:none}
.ch-my-login:hover{text-decoration:underline;text-underline-offset:3px}

/* 左下角用户卡：固定在视口左下角，不随页面滚动 */
.ch-userbox{position:fixed;left:max(20px,calc((100vw - 1320px)/2 + 32px));bottom:148px;z-index:18;display:flex;align-items:center;gap:9px;
  width:220px;padding:10px;border:1px solid var(--line2);border-radius:12px;
  background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 14px 38px rgba(0,0,0,.10);
  backdrop-filter:blur(12px)}
.ch-user-av{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;
  background:var(--band);border:1px solid var(--line2);font-size:13px;font-weight:700;color:var(--ink2)}
.ch-userbox img{width:34px;height:34px;flex:none;border-radius:50%;object-fit:cover;border:1px solid var(--line2)}
.ch-user-meta{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.ch-user-meta b{font-size:12.5px;font-weight:650;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-user-meta small{font-size:10.5px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-user-link{font-size:10.5px;color:var(--accent);text-decoration:none;flex:none}
.ch-user-link:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- 中间最新作品 ---------- */
.ch-center{min-width:0;padding:22px clamp(16px,2.4vw,26px);border:1px solid var(--line);
  border-radius:12px;background:var(--panel);scroll-margin-top:86px}
.ch-center-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.ch-kicker{display:block;font-size:10px;letter-spacing:.16em;font-weight:650;color:var(--ink3)}
.ch-center-head h1{margin:5px 0 0;font-size:clamp(22px,3vw,28px);line-height:1.1;letter-spacing:-.04em;
  font-weight:650;color:var(--ink)}
.ch-count{font-size:11.5px;color:var(--ink3);white-space:nowrap}
.ch-center-note{margin:9px 0 0;font-size:11.5px;line-height:1.7;color:var(--ink3)}
.ch-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.ch-chip{min-height:28px;padding:3px 9px;border:1px solid var(--line);border-radius:999px;
  background:transparent;color:var(--ink2);font:inherit;font-size:11px;cursor:pointer}
.ch-chip:hover{border-color:var(--line2);color:var(--ink)}
.ch-chip.is-on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}

.ch-feed{margin-top:14px;border-top:1px solid var(--line)}
.ch-work{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:14px;align-items:start;
  padding:15px 2px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.ch-work:hover{background:color-mix(in srgb,var(--band) 56%,transparent)}
.ch-work:hover .ch-work-title{color:var(--accent)}
.ch-work-cover{display:block;width:96px;height:64px;border:1px solid var(--line);border-radius:6px;
  object-fit:cover;background:var(--band)}
.ch-work-cover--empty{display:grid;place-items:center;color:var(--ink3);font-size:10px}
.ch-work-title{display:block;margin:0;font-size:15px;line-height:1.35;letter-spacing:-.015em;
  font-weight:650;color:var(--ink);transition:color .15s}
.ch-work-intro{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  margin:5px 0 0;font-size:12px;line-height:1.65;color:var(--ink2)}
.ch-work-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;
  font-size:10.5px;color:var(--ink3)}
.ch-work-meta span+span::before{content:"·";margin-right:6px;color:var(--line2)}
.ch-work-side{min-width:92px;text-align:right;font-size:10.5px;line-height:1.8;color:var(--ink3)}
.ch-work-side b{display:block;font-weight:550;color:var(--ink2)}
.ch-loading,.ch-empty{padding:26px 0;color:var(--ink3);font-size:12px}
.ch-invite{margin:18px 0 2px;padding:16px 16px 15px;border:1px dashed var(--line2);border-radius:9px;
  background:color-mix(in srgb,var(--band) 46%,transparent);display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap}
.ch-invite p{margin:0;font-size:12px;line-height:1.7;color:var(--ink2);max-width:46ch}
.ch-invite a{display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border-radius:7px;
  background:var(--ink);border:1px solid var(--ink);color:var(--bg);font-size:12px;font-weight:650;
  text-decoration:none;white-space:nowrap}
.ch-invite a:hover{opacity:.86}
.ch-invite a:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}

/* 左栏项目/收藏的小列表 */
.ch-mini-list{display:flex;flex-direction:column;gap:2px}
.ch-mini{display:flex;flex-direction:column;gap:1px;padding:6px 7px;border-radius:6px;
  text-decoration:none;color:var(--ink2);min-width:0}
.ch-mini:hover{background:var(--band);color:var(--ink)}
.ch-mini b{font-size:11.5px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-mini small{font-size:10px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-muted{font-size:11.5px;line-height:1.7;color:var(--ink3);margin:0}
.ch-mini-empty{padding:2px 0 4px}
.ch-mini-empty a{color:var(--accent);text-decoration:none}
.ch-mini-empty a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- 右栏 ---------- */
.ch-right{position:sticky;top:84px;display:flex;flex-direction:column;gap:14px;min-width:0}
.ch-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.ch-stats div{display:flex;flex-direction:column;gap:1px}
.ch-stats b{font-size:20px;font-weight:650;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.ch-stats span{font-size:10.5px;color:var(--ink3)}
.ch-members{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;
  border-top:1px solid var(--line)}
.ch-creators{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.ch-creators .ch-members{margin-top:10px;padding-top:0;border-top:0}
.ch-member{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink2);font-size:11.5px;min-width:0}
.ch-member:hover{color:var(--ink)}
.ch-member img,.ch-member span.ch-av{width:25px;height:25px;border-radius:50%;object-fit:cover;flex:none;
  display:grid;place-items:center;background:var(--band);border:1px solid var(--line2);font-size:10.5px}
.ch-member>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-member small{display:block;color:var(--ink3);font-size:10px;margin-top:1px}
.ch-badge{display:inline-flex;align-items:center;height:15px;margin-left:4px;padding:0 5px;
  border:1px solid var(--line);border-radius:7px;background:var(--band);color:var(--ink2);
  font-size:9px;font-weight:600;line-height:15px;vertical-align:1px}
.ch-badge--star{padding:0;width:17px;height:17px;border:0;border-radius:50%;
  color:#3b260e;
  background:radial-gradient(circle at 32% 24%,#ffe8b7 0%,#e1b66b 46%,#a57234 100%);
  box-shadow:0 0 0 1px rgba(138,90,43,.5),inset 0 1px 0 rgba(255,255,255,.72);
  vertical-align:middle}
.ch-badge--star svg{width:12px;height:12px;display:block;fill:currentColor}
.ch-badge--verified{padding:0;width:17px;height:17px;border:0;background:none;
  color:var(--accent);vertical-align:middle}
.ch-badge--verified svg{width:15px;height:15px;display:block;fill:currentColor}
.ch-badge>svg{width:10px;height:10px;flex:none;fill:none}
.ch-badge--star svg,.ch-badge--verified svg{fill:currentColor}
.ch-badge--star svg{width:12px;height:12px}
.ch-badge--verified svg{width:15px;height:15px}
.ch-rules p{margin:9px 0 0;font-size:11px;line-height:1.75;color:var(--ink2)}
.ch-rules a{color:var(--accent);text-decoration:none}
.ch-rules a:hover{text-decoration:underline;text-underline-offset:3px}
.ch-dot{color:var(--ink3);margin:0 5px}

.ch-footer{width:100%;max-width:1320px;margin:auto auto 0;padding:20px clamp(16px,3vw,32px) 84px;
  border-top:1px solid var(--line);display:flex;gap:14px;flex-wrap:wrap;
  justify-content:space-between;font-size:10.5px;color:var(--ink3)}
.ch-footer a{color:var(--ink2);text-decoration:none;margin-left:12px}
.ch-footer a:hover{color:var(--ink)}

@media (max-width:1240px){
  .ch-shell{grid-template-columns:200px minmax(0,1fr)}
  .ch-userbox{width:200px}
}
@media (max-width:1060px){
  .ch-topbar{grid-template-columns:auto minmax(160px,1fr) auto}
}
@media (max-width:820px){
  .ch-topbar{grid-template-columns:auto 1fr;gap:10px;padding:10px 14px}
  .ch-topsearch{grid-column:1/-1;grid-row:2;order:3}
  .ch-top-actions{grid-column:2;grid-row:1;justify-self:end}
  .ch-top-link{display:none}
  .ch-shell{display:flex;flex-direction:column;gap:12px;padding:14px 14px 48px}
  /* 手机上让作品先出现：把左栏拆成独立 flex 项，作品排在我的面板之前 */
  .ch-left{display:contents}
  .ch-sidenav{order:1;flex-direction:row;overflow-x:auto;gap:4px;padding:0 0 4px;scrollbar-width:none}
  .ch-sidenav a{white-space:nowrap;min-height:32px}
  .ch-userbox{display:none}
  .ch-center{order:2;padding:18px 14px}
  .ch-my-panel{order:3}
  .ch-footer{order:4;font-size:10px;padding-bottom:34px}
}
@media (max-width:560px){
  .ch-brand{font-size:15px}
  .ch-brand span{font-size:11px}
  .ch-submit{padding:0 11px}
  .ch-login{padding:0 9px;max-width:110px}
  .ch-work{grid-template-columns:74px minmax(0,1fr);gap:11px}
  .ch-work-cover{width:74px;height:52px}
  .ch-work-side{display:none}
  .ch-work-title{font-size:14px}
  .ch-center-head h1{font-size:22px}
  .ch-invite{padding:14px}
}

/* ============================================================================
   2026-11-03：社区页面统一使用全站导航（.nav）。
   - .nav 是 fixed 60px，所以正文要留出 60px
   - 当前页用金色下划线标出
   - 窄屏时导航改为流式，避免压住内容
   ========================================================================== */
body.has-site-nav { padding-top: 60px; }
.nav .links a[aria-current="page"] { color: var(--ink); font-weight: 600; position: relative; }
.nav .links a[aria-current="page"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -20px; height: 2px; background: var(--gold);
}
.ch-search-inline { position: static; margin: 0 0 12px; max-width: 380px; }
@media (max-width: 900px) {
  .nav .links a[aria-current="page"]::after { bottom: -16px; }
}
@media (max-width: 820px) {
  body.has-site-nav { padding-top: 0; }
  .nav { position: static; height: auto; min-height: 60px; flex-wrap: wrap; padding: 10px 16px; gap: 8px 16px; }
  .nav .links { flex-wrap: wrap; gap: 10px 14px; }
  .nav .links a[aria-current="page"]::after { bottom: -6px; }
  body.has-site-nav .ch-shell { padding-top: 14px; }
}
/* 2026-11-03：社区页顶栏的夜间模式按钮在浅色导航上是白底白图标，补回可见颜色 */
.ch-body .theme-toggle,
body.has-site-nav .theme-toggle {
  color: var(--ink) !important;
  background: rgba(255, 255, 255, .9);
  border: 1px solid var(--line2);
}
.ch-body .theme-toggle svg,
body.has-site-nav .theme-toggle svg { stroke: currentColor; }
/* 2026-11-03：手机端社区顶栏只留核心三项，避免排成三行把内容挤下去 */
@media (max-width: 560px) {
  .nav .links a[href="/about.html"],
  .nav .links a[href="/download.html"],
  .nav .links a[href="/tutorial.html"],
  .nav .links a[href="/plugins.html"] { display: none; }
  .nav .links { gap: 12px; }
  .nav { padding: 8px 14px; }
  .nav .brand .cn { display: none; }
}
/* 2026-11-03：左侧栏贴到页面左边（原来整块居中，宽屏时左栏跑到中间了），
   内容区给一个舒适的最大宽度，剩下的留白放到右侧。 */
.ch-shell {
  max-width: none;
  margin: 0;
  padding: 22px clamp(16px, 2.2vw, 28px) 64px;
  grid-template-columns: 220px minmax(0, 1fr);
}
.ch-center { max-width: 980px; }
@media (max-width: 820px) {
  .ch-shell { padding: 14px 14px 48px; }
  .ch-center { max-width: none; }
}
/* 2026-11-03：卡片改用柔和阴影表达层次，不再用 1px 线画框 */
.ch-center,
.ch-panel,
.ch-userbox {
  border: 0;
  box-shadow: var(--shadow-soft, 0 10px 30px rgba(16,15,12,.07));
}
.ch-center { border-radius: 16px; }
.ch-panel, .ch-userbox { border-radius: 14px; background: var(--bg); }
.ch-footer { border-top: 1px solid var(--line); }