:root{
  --ink:#1f2329; --muted:#8a8f99; --line:#eef0f3; --accent:#2b6de5; --accent-ink:#fff;
  --bg:#f6f7f9; --card:#fff; --danger:#e54545; --ok:#27ae60; --vvh:100vh;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{min-height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink); background:var(--bg); font-size:16px; line-height:1.7;
  -webkit-text-size-adjust:100%;
}
button{font-family:inherit;cursor:pointer}
input{font-family:inherit;font-size:16px}

.wrap{max-width:560px;margin:0 auto;min-height:var(--vvh);display:flex;flex-direction:column;position:relative}

/* 落地 / 入圈页 */
.landing{align-items:center;justify-content:center;text-align:center;padding:32px 24px;gap:16px}
.brand{font-size:46px;font-weight:800;letter-spacing:6px;color:var(--ink)}
.slogan{font-size:19px;color:var(--ink)}
.brand-sub{font-size:13px;color:var(--muted)}

/* 卡片 */
.card{background:var(--card);border-radius:14px;padding:20px 18px;box-shadow:0 1px 3px rgba(0,0,0,.05);width:100%}
.card h2{font-size:18px;margin-bottom:14px}

/* 输入与按钮 */
.field{margin-bottom:12px;text-align:left}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.input{width:100%;height:46px;border:1px solid var(--line);border-radius:10px;padding:0 14px;background:#fafbfc;color:var(--ink)}
.input:focus{outline:none;border-color:var(--accent);background:#fff}
.btn{width:100%;height:48px;border:none;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-size:17px;font-weight:600;margin-top:4px}
.btn:disabled{opacity:.6}
.hint{font-size:13px;margin-top:10px;min-height:18px;color:var(--muted)}
.hint.err{color:var(--danger)}
.hint.ok{color:var(--ok)}

/* 顶部栏 */
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;background:#fff;border-bottom:1px solid var(--line)}
.topbar .cir-name{font-size:17px;font-weight:700}
.topbar .switch-btn{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 14px;font-size:14px;color:var(--ink)}

/* 切换面板 */
.panel{position:absolute;top:54px;right:12px;left:12px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:8px;box-shadow:0 6px 20px rgba(0,0,0,.12);z-index:10}
.panel[hidden]{display:none}
.panel .row{display:flex;align-items:center;justify-content:space-between;padding:10px;border-radius:8px}
.panel .row.active{color:var(--accent);font-weight:600;background:rgba(43,109,229,.06)}
.panel .row .role{font-size:12px;color:var(--muted)}
.panel .logout{width:100%;margin-top:6px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px;color:var(--danger)}

/* 公告 */
.notice{background:#fff7e6;border-bottom:1px solid #ffe7ba;color:#8a5b00;font-size:14px;padding:10px 16px}
.notice[hidden]{display:none}
.notice .toggle{float:right;color:#b06a00;font-size:13px;margin-left:8px}

/* 板块标签 */
.boards{display:flex;gap:8px;overflow-x:auto;padding:12px 16px;background:#fff;border-bottom:1px solid var(--line);scrollbar-width:none}
.boards::-webkit-scrollbar{display:none}
.board{white-space:nowrap;padding:6px 14px;border-radius:18px;background:var(--bg);color:var(--muted);font-size:14px}
.board.active{background:var(--accent);color:#fff}

/* 排序段 */
.sorts{display:flex;gap:18px;padding:10px 16px;font-size:14px;color:var(--muted);background:var(--bg)}
.sorts .sort.active{color:var(--accent);font-weight:700}

/* 帖子流 */
.feed{flex:1;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.empty{text-align:center;color:var(--muted);padding:48px 24px;font-size:15px;line-height:1.9}

/* 发帖悬浮球 */
.fab{position:fixed;right:18px;bottom:24px;width:54px;height:54px;border-radius:50%;background:var(--accent);
  color:#fff;font-size:30px;line-height:54px;text-align:center;text-decoration:none;
  box-shadow:0 4px 14px rgba(43,109,229,.4);z-index:6}

/* 占位页 */
.placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px;text-align:center}
.placeholder h1{font-size:22px}
.placeholder p{color:var(--muted)}
.placeholder a{color:var(--accent);text-decoration:none;font-size:16px}

/* 圈子页内联入圈卡片 */
.join-inline{margin:20px 16px}
.join-inline[hidden]{display:none}
