/* ==========================================================
   添蜜社区 · 论坛主题（唯一换皮入口）
   只引用 tokens.css 的设计变量 + tm-fx.css / tm-ad.css 的组件类；不另起颜色、不加渐变（底部渐隐 .tm-fade 除外）。
   ========================================================== */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--tm-bg-1);color-scheme:dark}
body{margin:0;font-family:"PingFang SC","Noto Sans CJK SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px;line-height:1.6;
  color:var(--tm-text-body);background:var(--tm-bg-1);-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom)}
a{color:inherit;text-decoration:none}
a:hover{color:var(--tm-rose-300)}
.i{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
.muted{color:var(--tm-text-3)} .sm{font-size:12px} .hl{color:var(--tm-honey-300)}
input,select,textarea{font:inherit;color:var(--tm-text-1);background:var(--tm-surface-3);border:1px solid var(--tm-line-2);border-radius:var(--tm-r-sm);
  padding:9px 12px;outline:none;transition:border-color var(--tm-d-fast)}
input:focus,select:focus,textarea:focus{border-color:var(--tm-rose-500)}
textarea{resize:vertical;width:100%}
button{font:inherit}
.tm-btn{color:#fff;border:1px solid transparent;border-radius:var(--tm-r-pill);height:36px;padding:0 16px;font-size:14px;font-weight:600;cursor:pointer;
  transition:transform var(--tm-d-slow) var(--tm-ease-spring),background-color var(--tm-d-fast);white-space:nowrap}
.tm-btn--honey,.tm-btn--vip{color:var(--tm-on-honey)}

/* ---------- 顶栏 ---------- */
.hd{position:sticky;top:0;z-index:var(--tm-z-sheet);background:var(--tm-bg-1);border-bottom:1px solid var(--tm-line)}
.hd-in{max-width:1200px;margin:0 auto;height:60px;padding:0 var(--tm-s-4);display:flex;align-items:center;gap:var(--tm-s-4)}
.logo{display:inline-flex;align-items:baseline;gap:2px;font-weight:900;font-size:20px;letter-spacing:.02em}
.logo-mk{color:var(--tm-magenta-500)} .logo-tx{color:var(--tm-text-1)}
.logo--lg{font-size:32px}
.hd-city{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border-radius:var(--tm-r-pill);background:rgba(243,226,189,.07);
  border:1px solid var(--tm-line-honey);color:var(--tm-text-champagne);font-size:13px;font-weight:600}
.hd-city .i{color:var(--tm-honey-300)} .hd-city .rot{transform:rotate(90deg);width:.9em}
.hd-nav{display:flex;gap:var(--tm-s-1)}
.hd-nav a{padding:6px 12px;border-radius:var(--tm-r-pill);color:var(--tm-text-2);font-weight:600;transition:background-color var(--tm-d-fast),color var(--tm-d-fast)}
.hd-nav a:hover{background:var(--tm-surface-2);color:var(--tm-text-1)}
.hd-nav a.is-on{color:var(--tm-text-1);background:var(--tm-surface-2);box-shadow:inset 0 -2px 0 var(--tm-rose-500)}
.hd-search{flex:1;max-width:280px;margin-left:auto;display:flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--tm-r-pill);
  background:var(--tm-surface-1);border:1px solid var(--tm-line)}
.hd-search .i{color:var(--tm-text-3)} .hd-search input{background:none;border:0;padding:0;width:100%}
.hd-r{display:flex;align-items:center;gap:var(--tm-s-3)}
.hd-ic{position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--tm-text-2)}
.hd-ic:hover{background:var(--tm-surface-2)}
.dot{position:absolute;top:2px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--tm-rose-500);color:#fff;font-size:10px;line-height:16px;text-align:center}
.hd-guest{font-size:12px;color:var(--tm-text-3)}
.guest-bar{background:var(--tm-surface-1b);border-bottom:1px solid var(--tm-line-honey);color:var(--tm-text-champagne);text-align:center;font-size:13px;padding:8px 16px}
.guest-bar a{color:var(--tm-honey-300);font-weight:700}

/* ---------- 布局 ---------- */
.wrap{max-width:1200px;margin:0 auto;padding:var(--tm-s-4);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--tm-s-4)}
.wrap.has-side{grid-template-columns:minmax(0,1fr) 300px}
.wrap--wide{max-width:1280px}
.col-main,.col-side{display:flex;flex-direction:column;gap:var(--tm-s-4);min-width:0}
.box{background:var(--tm-surface-1);border:1px solid var(--tm-line);border-radius:var(--tm-r-lg);padding:var(--tm-s-4)}
.box-h{display:flex;align-items:center;justify-content:space-between;gap:var(--tm-s-3);margin-bottom:var(--tm-s-3);flex-wrap:wrap}
.box-t{display:flex;align-items:center;gap:6px;margin:0;font-size:16px;font-weight:800;color:var(--tm-text-1)}
.box-t .i{color:var(--tm-rose-400)}
.more{display:inline-flex;align-items:center;gap:2px;color:var(--tm-text-3);font-size:13px}
.empty{padding:32px 0;text-align:center;color:var(--tm-text-3)}
.empty-big{text-align:center;padding:60px 16px} .empty-big h1{font-size:48px;margin:0;color:var(--tm-rose-500)}
.tip{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--tm-text-2)}
.tip a{color:var(--tm-rose-300)}
.crumb{display:flex;align-items:center;gap:4px;flex-wrap:wrap;color:var(--tm-text-3);font-size:13px}
.crumb .i{width:.9em}
.tag{display:inline-block;margin-right:6px;padding:0 6px;border-radius:var(--tm-r-xs);font-size:11px;font-weight:800;line-height:18px;vertical-align:2px}
.tag--rose{background:var(--tm-rose-500);color:#fff} .tag--honey{background:var(--tm-honey-400);color:var(--tm-on-honey)} .tag--mute{background:var(--tm-surface-3);color:var(--tm-text-2)}

/* ---------- 地区 ---------- */
.hot-c{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:var(--tm-s-3)}
.chip{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px;border-radius:var(--tm-r-pill);background:rgba(243,226,189,.07);
  border:1px solid rgba(255,255,255,.12);color:var(--tm-text-2);font-size:13px;cursor:pointer;transition:background-color var(--tm-d-fast),border-color var(--tm-d-fast),transform var(--tm-d-slow) var(--tm-ease-spring)}
.chip:hover{border-color:var(--tm-line-honey);color:var(--tm-text-1)}
.chip:active{transform:scale(var(--tm-press-scale))}
.chip.is-on{background:var(--tm-rose-500);border-color:var(--tm-rose-500);color:#fff;box-shadow:var(--tm-glow-rose-1)}
.chip em{font-style:normal;font-size:11px;color:var(--tm-text-4)} .chip.is-on em{color:rgba(255,255,255,.75)}
.rg-tabs{max-width:240px;margin-bottom:var(--tm-s-3)}
.rg-panel{display:flex;flex-direction:column;gap:2px}
.rg-row{display:grid;grid-template-columns:88px 1fr;gap:var(--tm-s-3);padding:8px 0;border-top:1px dashed var(--tm-line)}
.rg-row:first-child{border-top:0}
.rg-g{font-weight:800;color:var(--tm-text-champagne);padding-top:4px}
.rg-cs{display:flex;flex-wrap:wrap;gap:6px}
.rg-cs .rg-row{grid-column:1/-1}

/* ---------- 版块 ---------- */
.bd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--tm-s-3)}
.bd-card{display:flex;flex-direction:column;gap:4px;padding:14px;background:var(--tm-surface-1b);border:1px solid var(--tm-line);border-radius:var(--tm-r-md)}
.bd-card b{color:var(--tm-text-1);font-size:15px}
.bd-card small{color:var(--tm-text-3);font-size:12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bd-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--tm-r-sm);background:rgba(var(--tm-rose-rgb),.14);color:var(--tm-rose-400);margin-bottom:4px}
.bd-list{display:flex;flex-direction:column}
.bd-it{display:flex;align-items:center;gap:10px;padding:9px 6px;border-radius:var(--tm-r-sm);color:var(--tm-text-2)}
.bd-it:hover{background:var(--tm-surface-2)} .bd-it .i{color:var(--tm-rose-400)} .bd-it em{margin-left:auto;font-style:normal;font-size:12px;color:var(--tm-text-4)}
.hero-in{display:flex;align-items:center;gap:var(--tm-s-4);flex-wrap:wrap}
.hero-in h1{margin:0;font-size:22px;color:var(--tm-text-1)} .hero-in p{margin:2px 0 0}
.hero-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--tm-r-lg);background:var(--tm-rose-500);color:#fff;box-shadow:var(--tm-glow-rose-2)}
.hero-ic .i{width:26px;height:26px}
.hero-act{margin-left:auto;display:flex;gap:var(--tm-s-2);flex-wrap:wrap}
.hero .hot-c{margin:var(--tm-s-4) 0 0}
.sort-seg a,.adm-tabs a{flex:1;display:grid;place-items:center;height:30px;padding:0 12px;border-radius:var(--tm-r-pill);color:var(--tm-text-2);font-size:12px;font-weight:600;white-space:nowrap}
.sort-seg a[aria-pressed="true"],.adm-tabs a[aria-pressed="true"]{background:var(--tm-rose-500);color:#fff;box-shadow:var(--tm-glow-rose-1)}
.feed-tabs{min-width:280px}
.feed-tabs button{padding:0 12px}
.feed-ad{max-width:260px;margin-top:var(--tm-s-4)}

/* ---------- 帖子列表 ---------- */
.plist{display:flex;flex-direction:column}
.pc{display:flex;gap:var(--tm-s-4);padding:14px 10px;border-top:1px solid var(--tm-line)}
.pc:first-child{border-top:0}
.pc.tm-card:hover{background:var(--tm-surface-2)}
.pc-hit{position:absolute;inset:0;z-index:1;border-radius:inherit}
.pc-main{flex:1;min-width:0}
.pc-t{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--tm-text-1);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pc-x{margin:0 0 8px;color:var(--tm-text-3);font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--tm-text-3)}
.pc-place{position:relative;z-index:2;display:inline-flex;align-items:center;gap:2px;padding:0 8px;height:20px;border-radius:var(--tm-r-pill);
  background:rgba(var(--tm-rose-rgb),.14);color:var(--tm-rose-300);font-weight:600}
.pc-au{display:inline-flex;align-items:center;gap:6px;color:var(--tm-text-2)}
.pc-n{display:inline-flex;align-items:center;gap:3px}
.pc-cov{position:relative;flex:none;width:150px;aspect-ratio:4/3;border-radius:var(--tm-r-md);background-color:var(--tm-surface-1b)}
.pc-cov--video{display:grid;place-items:center;color:var(--tm-text-3)} .pc-cov--video .i{width:32px;height:32px}
.pc-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--tm-scrim);color:#fff}
.pc-cnt{position:absolute;right:6px;bottom:6px;padding:0 6px;border-radius:var(--tm-r-xs);background:var(--tm-scrim);font-size:11px;color:#fff}

/* ---------- 头像 / 等级 ---------- */
.av{display:inline-grid;place-items:center;flex:none;border-radius:50%;object-fit:cover;background:var(--tm-surface-3);color:#fff;font-weight:800}
.av--xs{width:20px;height:20px;font-size:10px} .av--sm{width:32px;height:32px;font-size:13px} .av--md{width:44px;height:44px;font-size:17px}
.av--lg{width:56px;height:56px;font-size:22px} .av--xl{width:84px;height:84px;font-size:34px}
.av--txt{background:var(--tm-rose-700);color:var(--tm-rose-300)}
.lv{display:inline-block;padding:0 6px;border-radius:var(--tm-r-xs);font-size:11px;font-weight:700;line-height:18px;border:1px solid var(--tm-line-2);color:var(--tm-text-2)}
.lv--3,.lv--4{border-color:rgba(var(--tm-rose-rgb),.5);color:var(--tm-rose-300)}
.lv--5,.lv--6{background:rgba(var(--tm-rose-rgb),.18);border-color:var(--tm-rose-500);color:var(--tm-rose-300)}
.lv--7,.lv--8{background:var(--tm-honey-400);border-color:var(--tm-honey-400);color:var(--tm-on-honey)}

/* ---------- 用户卡 ---------- */
.uc-hd{display:flex;align-items:center;gap:var(--tm-s-3);margin-bottom:var(--tm-s-3)}
.uc-hd b{color:var(--tm-text-1);font-size:16px} .uc-hd p{margin:2px 0 0}
.uc-bar{height:6px;border-radius:3px;background:var(--tm-surface-3);overflow:hidden;margin:6px 0}
.uc-bar i{display:block;height:100%;background:var(--tm-rose-500);border-radius:inherit}
.uc-go{width:100%;margin-top:var(--tm-s-2)}

/* ---------- 帖子页 ---------- */
.pv-t{margin:0 0 var(--tm-s-4);font-size:22px;line-height:1.4;color:var(--tm-text-1)}
.pv-au{display:flex;align-items:center;gap:var(--tm-s-3);padding-bottom:var(--tm-s-4);border-bottom:1px solid var(--tm-line)}
.pv-au b{color:var(--tm-text-1)} .pv-au p{margin:2px 0 0} .pv-au a{color:var(--tm-rose-300)}
.pv-body{white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.85;margin:var(--tm-s-4) 0;color:var(--tm-text-body)}
.pv-video{width:100%;max-height:70vh;border-radius:var(--tm-r-md);background:var(--tm-bg-0);margin-bottom:var(--tm-s-3)}
.pv-imgs{display:grid;gap:6px;margin-bottom:var(--tm-s-3)}
.pv-imgs--1{grid-template-columns:minmax(0,560px)} .pv-imgs--2{grid-template-columns:repeat(2,1fr)} .pv-imgs--3{grid-template-columns:repeat(3,1fr)}
.pv-imgs a{position:relative;display:block;border-radius:var(--tm-r-md);overflow:hidden;background:var(--tm-surface-1b)}
.pv-imgs img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.pv-imgs--1 img{aspect-ratio:auto;max-height:70vh;object-fit:contain}
.gif{position:absolute;left:6px;top:6px;padding:0 5px;border-radius:var(--tm-r-xs);background:var(--tm-scrim);font-size:10px;font-weight:800;color:#fff}
.pv-act{display:flex;align-items:center;gap:var(--tm-s-2);flex-wrap:wrap;padding-top:var(--tm-s-3);border-top:1px solid var(--tm-line)}
.pv-admin{display:flex;gap:6px;width:100%;justify-content:flex-end}
.cm-it{display:flex;gap:var(--tm-s-3);padding:var(--tm-s-3) 0;border-top:1px solid var(--tm-line)}
.cm-b{flex:1;min-width:0} .cm-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap} .cm-h b{color:var(--tm-text-1)}
.cm-b p{margin:4px 0;white-space:pre-wrap;word-break:break-word}
.cm-a{display:flex;gap:var(--tm-s-4)}
.lk{display:inline-flex;align-items:center;gap:3px;background:none;border:0;padding:0;color:var(--tm-text-3);font-size:12px;cursor:pointer}
.lk:hover{color:var(--tm-rose-300)} .lk[aria-pressed="true"]{color:var(--tm-rose-400)}
.cm-f{display:flex;flex-direction:column;align-items:flex-end;gap:var(--tm-s-2);margin-top:var(--tm-s-3)}
.cm-rs{margin-top:var(--tm-s-2);padding:var(--tm-s-2) var(--tm-s-3);border-radius:var(--tm-r-md);background:var(--tm-surface-2);display:flex;flex-direction:column;gap:var(--tm-s-2)}
.cm-r .cm-h{gap:6px;font-size:13px} .cm-r p{margin:2px 0 2px 26px} .cm-r .cm-a{margin-left:26px}
.at{color:var(--tm-rose-300);font-weight:600} .at:hover{text-decoration:underline}
.cm-f--reply{margin-top:var(--tm-s-2)} .cm-f-act{display:flex;gap:var(--tm-s-2)}

/* ---------- 表单 ---------- */
.fm{display:flex;flex-direction:column;gap:var(--tm-s-4)}
.fm label{display:flex;flex-direction:column;gap:6px;color:var(--tm-text-2);font-size:13px;font-weight:600;flex:1}
.fm-row{display:flex;gap:var(--tm-s-3);flex-wrap:wrap}
.fm-act{display:flex;justify-content:flex-end}
.up{display:flex;align-items:center;gap:var(--tm-s-3);flex-wrap:wrap}
.up-btn{flex:none!important;flex-direction:row!important}
.up-list{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.up-it{width:96px;height:96px;border-radius:var(--tm-r-sm);overflow:hidden;background:var(--tm-surface-3);font-size:11px;display:grid;place-items:center;color:var(--tm-text-3)}
.up-it img,.up-it video{width:100%;height:100%;object-fit:cover}
.login{display:flex;flex-direction:column;align-items:center;gap:var(--tm-s-4);text-align:center;padding:40px 24px}
.login p{max-width:420px;color:var(--tm-text-2)}
.mock{width:100%;max-width:520px;text-align:left;margin-top:var(--tm-s-4);padding:var(--tm-s-4);border:1px dashed var(--tm-line-honey);border-radius:var(--tm-r-lg)}

/* ---------- 用户中心 ---------- */
.me-hd{display:flex;align-items:center;gap:var(--tm-s-5);flex-wrap:wrap}
.me-info{flex:1;min-width:220px} .me-info h1{margin:0;font-size:22px;color:var(--tm-text-1);display:flex;align-items:center;gap:8px} .me-info p{margin:4px 0}
.me-act{display:flex;flex-direction:column;align-items:flex-end;gap:var(--tm-s-2)}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;color:var(--tm-text-3);font-weight:600;padding:8px;border-bottom:1px solid var(--tm-line-2)}
.tbl td{padding:9px 8px;border-bottom:1px solid var(--tm-line);vertical-align:middle}
.tbl tr.off td{opacity:.45}
.tbl .up{color:var(--tm-success);font-weight:700} .tbl .down{color:var(--tm-danger);font-weight:700}
.tbl .ops{white-space:nowrap;text-align:right} .tbl .ops .lk{margin-left:12px}
.sm-in{width:56px;padding:4px 6px}
.nt{list-style:none;margin:0;padding:0}
.nt li{display:flex;justify-content:space-between;gap:12px;padding:12px 4px;border-bottom:1px solid var(--tm-line)}
.nt li.is-new a{color:var(--tm-text-1);font-weight:700} .nt li.is-new a::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--tm-rose-500);margin-right:8px;vertical-align:2px}

/* ---------- 后台 ---------- */
.adm-tabs{margin-bottom:var(--tm-s-4);max-width:720px}
.stat{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--tm-s-3);margin-bottom:var(--tm-s-5)}
.stat-it{background:var(--tm-surface-1b);border:1px solid var(--tm-line);border-radius:var(--tm-r-md);padding:14px}
.stat-it b{display:block;font-size:24px;color:var(--tm-honey-300)} .stat-it span{color:var(--tm-text-3);font-size:12px}
.ad-f{padding:var(--tm-s-4) 0;border-bottom:1px solid var(--tm-line)}
.pager{display:flex;align-items:center;justify-content:center;gap:var(--tm-s-3);margin-top:var(--tm-s-4);color:var(--tm-text-3)}

/* ---------- 页脚 / 底栏 / 提示 ---------- */
.ft{max-width:1200px;margin:var(--tm-s-6) auto 0;padding:var(--tm-s-6) var(--tm-s-4) 90px;text-align:center;color:var(--tm-text-4);font-size:12px;border-top:1px solid var(--tm-line)}
.ft p{margin:4px 0} .ft a{color:var(--tm-text-3)}
.tabbar{display:none}
.tm-toast{position:fixed;bottom:96px;padding:10px 18px;border-radius:var(--tm-r-pill);background:var(--tm-surface-3);border:1px solid var(--tm-line-2);color:#fff;font-size:13px;box-shadow:var(--tm-shadow-3);transition:opacity var(--tm-d-base),transform var(--tm-d-base) var(--tm-ease-out)}
.landing{display:grid;place-items:center;min-height:100vh;margin:0}
.landing-in{text-align:center;color:var(--tm-text-2)}

/* ---------- 手机 ---------- */
@media (max-width:900px){
  .wrap.has-side{grid-template-columns:minmax(0,1fr)}
  .col-side{display:none}
  .wrap--home .col-side{display:flex;order:-1}
  .wrap--home .col-side .box:not(.uc),.wrap--home .col-side .tm-ad-slot{display:none}
  .hd-nav,.hd-search,.hd-ck{display:none}
  .hd-in{gap:var(--tm-s-2)}
  .hd-r{margin-left:auto}
  .wrap{padding:var(--tm-s-3)}
  .box{padding:var(--tm-s-3)}
  .pc-cov{width:104px}
  .rg-row{grid-template-columns:64px 1fr}
  .bd-grid{grid-template-columns:repeat(2,1fr)}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--tm-z-sheet);display:flex;align-items:center;justify-content:space-around;
    height:calc(58px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--tm-tabbar);border-top:1px solid var(--tm-line)}
  .tm-tab{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--tm-text-3)}
  .tm-tab .i{width:22px;height:22px} .tm-tab.is-on{color:var(--tm-rose-400)}
  .tabbar-post{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--tm-rose-500);color:#fff;box-shadow:var(--tm-glow-rose-2)}
  .tabbar-post .i{width:24px;height:24px}
  .tm-toast{bottom:80px}
}

/* 地区面板宽屏两列（省份/国家较多时更紧凑） */
@media (min-width:901px){
  .rg-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--tm-s-6)}
  .rg-row{padding:6px 0}
  .rg-row:nth-child(2){border-top:0}
}
.rg-panel[hidden],[data-feed-panel][hidden]{display:none}
.rg-cs{align-content:flex-start;align-items:flex-start}
.adm-q{display:flex;gap:var(--tm-s-2);align-items:center;margin-bottom:var(--tm-s-2)} .adm-q input[name=q]{flex:1;max-width:360px}
