/* ===== bundled: style.css ===== */
/* ===== 设计令牌 ===== */
:root{
  --bg:#fff; --bg-sub:#f5f5f7; --bg-soft:#fafafa;
  --text:#1d1d1f; --text-sub:#6e6e73; --text-dim:#86868b;
  --line:#d2d2d7; --line-soft:#e8e8ed;
  --accent:#0071e3; --accent-weak:#e8f2fd;
  --ok:#0a7d3c; --warn-bg:#fff8e1; --warn-line:#f0ad4e;
  --radius:12px; --maxw:1100px;
  --nav-h:48px;
}
html[data-theme="dark"]{
  --bg:#000; --bg-sub:#1d1d1f; --bg-soft:#111;
  --text:#f5f5f7; --text-sub:#a1a1a6; --text-dim:#86868b;
  --line:#38383c; --line-soft:#2d2d30;
  --accent:#2997ff; --accent-weak:#0a1a2c;
  --ok:#4cd964; --warn-bg:#2a2416; --warn-line:#f0ad4e;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:16px; line-height:1.7; letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
  padding-bottom:env(safe-area-inset-bottom);
  overflow-x:hidden;
}
body.menu-open{overflow:hidden;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}
code{
  font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
  font-size:.88em; background:var(--bg-sub);
  padding:.12em .4em; border-radius:5px; word-break:break-all;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,22px);}

/* ===== 顶栏 ===== */
.nav{
  position:sticky; top:0; z-index:200; height:var(--nav-h);
  display:flex; align-items:center;
  padding-top:env(safe-area-inset-top);
  background:var(--bg);
  border-bottom:.5px solid var(--line-soft);
}
html[data-theme="dark"] .nav{background:rgba(0,0,0,.72);}
.nav-in{
  max-width:var(--maxw); width:100%; margin:0 auto;
  padding:0 clamp(16px,4vw,22px);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.brand{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;}
.nav-right{display:flex;align-items:center;gap:6px;}

/* 主题按钮 */
.icon-btn{
  width:40px;height:40px;flex:0 0 40px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;border-radius:50%;
  color:var(--text-sub);cursor:pointer;
}
.icon-btn:hover{background:var(--bg-sub);color:var(--text);}
.icon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;}
#moonIcon{display:block;} #sunIcon{display:none;}
html[data-theme="dark"] #moonIcon{display:none;}
html[data-theme="dark"] #sunIcon{display:block;}

/* 汉堡 */
.burger{
  width:40px;height:40px;flex:0 0 40px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  background:transparent;border:none;border-radius:50%;cursor:pointer;
}
.burger:hover{background:var(--bg-sub);}
.burger span{
  display:block;width:17px;height:1.5px;background:var(--text);
  border-radius:2px;transition:transform .28s,opacity .2s;
}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* 汉堡展开层 */
.menu{
  position:fixed; inset:0; z-index:190;
  background:var(--bg);
  padding:calc(var(--nav-h) + env(safe-area-inset-top) + 24px) clamp(20px,6vw,32px) 32px;
  display:none; overflow-y:auto;
}
.menu.open{display:block;}
.menu a{
  display:block; padding:14px 0;
  border-bottom:.5px solid var(--line-soft);
  color:var(--text); text-decoration:none;
  font-size:20px; font-weight:500; letter-spacing:-.02em;
}
.menu a:hover{text-decoration:none;color:var(--accent);}
.menu a small{
  display:block; font-size:11px; font-weight:400;
  color:var(--text-dim); letter-spacing:.06em;
  text-transform:uppercase; margin-top:2px;
}
.menu-note{margin-top:28px;font-size:12px;color:var(--text-dim);line-height:1.7;}

/* ===== Hero ===== */
.hero{padding:clamp(40px,8vw,72px) 0 clamp(28px,5vw,44px);}
.hero h1{
  font-size:clamp(30px,6vw,44px); font-weight:600;
  letter-spacing:-.025em; line-height:1.12; margin-bottom:12px;
}
.hero p{font-size:clamp(15px,2vw,17px);color:var(--text-sub);max-width:32em;}
.hero-actions{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:0 20px;border-radius:980px;
  background:var(--accent);color:#fff;font-size:14px;font-weight:500;
}
.btn:hover{text-decoration:none;opacity:.88;}
.btn-ghost{background:transparent;color:var(--accent);border:1px solid var(--accent);}

/* ===== 区块 ===== */
section{padding:clamp(30px,6vw,52px) 0;border-top:.5px solid var(--line-soft);}
h2{font-size:clamp(20px,3.2vw,26px);font-weight:600;letter-spacing:-.02em;line-height:1.25;margin-bottom:8px;}
h3{font-size:16px;font-weight:600;margin-bottom:6px;}
.lede{color:var(--text-sub);font-size:14px;margin-bottom:22px;}

.card{
  background:var(--bg-sub); border-radius:var(--radius);
  padding:clamp(16px,3vw,22px); margin-bottom:12px;
}
.card p{font-size:14px;color:var(--text-sub);}
.note{font-size:12.5px;color:var(--text-dim);margin-top:8px;line-height:1.65;}
.note b{color:var(--text-sub);font-weight:500;}
.tip{
  background:var(--warn-bg);border-left:3px solid var(--warn-line);
  padding:12px 16px;border-radius:8px;font-size:13.5px;
  color:var(--text-sub);margin:14px 0;line-height:1.7;
}

/* 两栏对照 */
.duo{display:grid;gap:12px;grid-template-columns:1fr;}
@media(min-width:700px){.duo{grid-template-columns:1fr 1fr;}}

/* 域名卡 */
.domains{display:grid;gap:12px;grid-template-columns:1fr;}
@media(min-width:760px){.domains{grid-template-columns:repeat(3,1fr);}}
.dcard{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:18px;display:flex;flex-direction:column;gap:8px;
}
.dcard .sfx{font-size:16px;font-weight:600;word-break:break-all;}
.dcard .dsc{font-size:13px;color:var(--text-sub);flex:1;}
.dcard .meta{font-size:11.5px;color:var(--text-dim);display:flex;flex-wrap:wrap;gap:10px;}
.pill{
  display:inline-block;padding:2px 9px;border-radius:980px;
  font-size:11px;font-weight:500;
}
.pill-open{background:var(--accent-weak);color:var(--accent);}
.pill-wait{background:var(--bg-soft);color:var(--text-dim);border:.5px solid var(--line);}

/* 表格（手机转卡片） */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:480px;}
th{
  text-align:left;font-weight:600;color:var(--text-dim);
  font-size:11px;letter-spacing:.04em;text-transform:uppercase;
  padding:9px 14px 9px 0;border-bottom:.5px solid var(--line);white-space:nowrap;
}
td{padding:12px 14px 12px 0;border-bottom:.5px solid var(--line-soft);vertical-align:top;color:var(--text-sub);}
tr:last-child td{border-bottom:none;}
td b{color:var(--text);font-weight:600;}
.yes{color:var(--ok);font-weight:500;}
.no{color:var(--text-dim);}

@media(max-width:640px){
  .tscroll{overflow:visible;}
  table,tbody,tr,td{display:block;width:100%;min-width:0;}
  thead{display:none;}
  tr{
    background:var(--bg-sub);border-radius:10px;
    padding:14px 16px;margin-bottom:10px;
  }
  td{
    padding:4px 0;border:none;
    display:flex;gap:12px;align-items:baseline;
  }
  td::before{
    content:attr(data-l);
    flex:0 0 76px;color:var(--text-dim);font-size:11.5px;
  }
}

/* 保留词墙 */
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px;}
.tag{
  font-family:"SF Mono",ui-monospace,monospace;
  font-size:12px;background:var(--bg-soft);
  border:.5px solid var(--line);border-radius:6px;
  padding:3px 8px;color:var(--text-sub);
}

/* ===== 表单 ===== */
.form{max-width:560px;}
.field{margin-bottom:16px;}
.field label{
  display:block;font-size:13px;font-weight:500;
  margin-bottom:6px;color:var(--text);
}
.field label .req{color:var(--accent);}
.field input,.field select,.field textarea{
  width:100%;font-family:inherit;font-size:15px;
  padding:11px 13px;border-radius:10px;
  border:1px solid var(--line);background:var(--bg);color:var(--text);
  min-height:44px;
}
.field textarea{min-height:88px;resize:vertical;line-height:1.6;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-weak);
}
.hint{font-size:12px;color:var(--text-dim);margin-top:5px;line-height:1.6;}
.row2{display:grid;gap:0 12px;grid-template-columns:1fr;}
@media(min-width:560px){.row2{grid-template-columns:1fr 1fr;}}
.btn-submit{
  width:100%;min-height:46px;border:none;border-radius:10px;
  background:var(--accent);color:#fff;font-size:15px;font-weight:500;
  font-family:inherit;cursor:pointer;
}
.btn-submit:hover{opacity:.9;}
@media(min-width:560px){.btn-submit{width:auto;padding:0 28px;}}

/* 错误提示 */
.err{
  background:#fdecea;border-left:3px solid #d93025;
  padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;color:#7a1c12;
}
html[data-theme="dark"] .err{background:#2a1614;color:#f5a69a;}
.ok-box{
  background:var(--accent-weak);border-radius:var(--radius);
  padding:20px;margin-bottom:16px;
}
.ok-box h3{color:var(--accent);}
.ok-box p{font-size:14px;color:var(--text-sub);}

/* 邮件预览 */
.mail{
  background:var(--bg-sub);border:.5px solid var(--line-soft);
  border-radius:var(--radius);padding:16px 18px;
  font-family:"SF Mono",ui-monospace,monospace;
  font-size:12.5px;line-height:1.85;
  white-space:pre-wrap;word-break:break-word;
  max-height:320px;overflow:auto;color:var(--text);
}
.copy-bar{margin-top:10px;}

/* ===== FAQ ===== */
details{border-bottom:.5px solid var(--line-soft);}
summary{
  padding:15px 0;font-size:15px;font-weight:500;cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;
  align-items:center;gap:14px;min-height:44px;
}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+";color:var(--text-dim);font-size:19px;font-weight:300;flex:0 0 auto;}
details[open] summary::after{content:"−";}
details p{font-size:14px;color:var(--text-sub);padding:0 0 15px;}

/* ===== 页脚 ===== */
footer{
  border-top:.5px solid var(--line-soft);
  padding:28px 0 44px;font-size:12px;color:var(--text-dim);line-height:1.8;
}

/* ===== 无障碍 ===== */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none!important;animation:none!important;}
}

/* ===== 申请通道 ===== */
.chan{
  background:var(--bg-sub);
  border-radius:var(--r);
  padding:clamp(16px,3vw,20px);
  margin-bottom:12px;
}
.chan-h{
  display:flex;align-items:center;gap:10px;
  flex-wrap:wrap;margin-bottom:6px;
}
.chan-h code{font-size:15px;background:none;padding:0;}
.chan-d{font-size:13.5px;color:var(--text-sub);margin-bottom:4px;}
.chan-r{font-size:12.5px;color:var(--text-dim);}
.chan-r::before{content:"要求 · ";color:var(--accent);font-weight:500;}

/* ===== 警示卡 ===== */
.card-warn{
  background:var(--bg-sub);
  border-left:3px solid #d93025;
}
.card-warn h3{color:var(--text);}

/* ===== 页脚（2026-10-22 重构：三栏网格 + 底部条） ===== */
.foot-grid{
  display:grid;gap:22px 44px;
  grid-template-columns:1fr;
}
@media(min-width:880px){
  .foot-grid{grid-template-columns:1.15fr .9fr 1.25fr;}
}

/* ① 品牌列 */
.foot-logo{
  display:inline-block;font-size:19px;font-weight:700;letter-spacing:-.02em;
  color:var(--text);text-decoration:none;line-height:1.3;
}
.foot-logo:hover{color:var(--accent);}
.foot-slogan{margin-top:5px;color:var(--text-sub);font-size:12.5px;}
.foot-team{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:7px;}
.foot-team li{display:flex;flex-direction:column;gap:1px;}
.foot-team b{color:var(--text);font-weight:600;font-size:12.5px;line-height:1.5;}
.foot-team span{color:var(--text-sub);font-size:11.5px;line-height:1.5;}

/* ② 导航列 */
.foot-t{
  font-size:11px;font-weight:600;letter-spacing:.08em;
  color:var(--text-dim);margin-bottom:10px;
}
.foot-links{list-style:none;display:grid;grid-template-columns:1fr;gap:0 18px;}
@media(min-width:880px){.foot-links{grid-template-columns:1fr 1fr;}}
.foot-links a{
  display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;
  color:var(--text-sub);text-decoration:none;padding:3.5px 0;font-size:12.5px;
}
.foot-links a:hover{color:var(--accent);}
.foot-count{
  font-size:10.5px;color:var(--text-dim);background:var(--bg-soft);
  border:.5px solid var(--line);border-radius:980px;padding:1px 8px;line-height:1.5;
}

/* ③ 联系与申请列 */
.foot-ct{margin-bottom:12px;}
.foot-mail{
  font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;
  word-break:break-all;
}
.foot-mail:hover{text-decoration:underline;}
.foot-note2{margin-top:2px;color:var(--text-dim);font-size:11.5px;}
.foot-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 9px;padding:3px 0;font-size:12px;}
.foot-row .foot-rk{color:var(--text-dim);flex:0 0 auto;}
.foot-row .foot-mail{font-size:12px;font-weight:500;}
.foot-dnd{margin-top:11px;color:var(--text-dim);font-size:11.5px;line-height:1.7;}
.foot-dnd .foot-mail{font-size:11.5px;font-weight:500;}
.foot-sponsor{margin-top:8px;font-size:12px;color:var(--text-sub);}
.foot-sponsor a{color:var(--accent);text-decoration:none;font-weight:500;}
.foot-sponsor a:hover{text-decoration:underline;}

/* 底部条 */
.foot-bottom{
  margin-top:22px;padding-top:14px;
  border-top:.5px solid var(--line-soft);
  display:flex;flex-direction:column;gap:5px;
}
.foot-disclaimer{font-size:11.5px;color:var(--text-dim);}
.foot-copy{
  margin-top:9px;color:var(--text-dim);font-size:11.5px;line-height:1.7;
}
.foot-copy .foot-ver{opacity:.55;font-size:10.5px;margin-left:9px;}

/* ===== 唯一官网区块 ===== */
.card-official{
  border-left:3px solid var(--accent);
  background:var(--bg-sub);
}
.official-url{
  display:inline-block;
  font-family:"SF Mono",ui-monospace,"Courier New",monospace;
  font-size:clamp(14px,2.4vw,18px);
  font-weight:600;
  color:var(--accent);
  word-break:break-all;
  margin-bottom:10px;
}
.official-url:hover{text-decoration:underline;}

/* ===== 友链卡片 ===== */
.link-grid{display:grid;gap:12px;grid-template-columns:1fr;}
@media(min-width:720px){.link-grid{grid-template-columns:1fr 1fr;}}
.link-card{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:clamp(16px,3vw,22px);
  display:flex;flex-direction:column;gap:7px;
}
.link-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.link-name{font-size:16px;font-weight:600;letter-spacing:-.01em;}
.link-url{
  font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;color:var(--accent);word-break:break-all;
}
.link-desc{font-size:var(--fz-sm);color:var(--text-sub);}
.link-meta{
  margin-top:2px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;
}
.link-tag{
  display:inline-block;padding:2px 9px;border-radius:980px;
  font-size:11px;background:var(--bg-soft);color:var(--text-dim);
  border:.5px solid var(--line);
}
.link-rel{background:var(--accent-weak);color:var(--accent);border-color:transparent;}
.link-list{list-style:none;}
.link-list li{
  font-size:var(--fz-sm);color:var(--text-sub);
  padding:5px 0 5px 14px;position:relative;
}
.link-list li::before{
  content:"·";position:absolute;left:0;color:var(--text-dim);
}

/* 后台页脚共用（admin/_end.php、moderator/_end.php） */
.foot-c{
  margin-top:14px;padding-top:10px;
  border-top:.5px solid var(--line-soft);
}

/* ===== 菜单分组 ===== */
.menu-group{margin-bottom:6px;}
.menu-gtitle{
  font-size:11px;color:var(--text-dim);
  letter-spacing:.06em;text-transform:uppercase;
  padding:14px 0 4px;
}

/* ===== 状态标签补充色 ===== */
.pill-info{background:var(--accent-weak);color:var(--accent);}
.pill-ok{background:#e6f6ec;color:var(--ok);}
.pill-warn{background:var(--warn-bg);color:#8a6100;border:.5px solid var(--warn-line);}
.pill-pin{background:none;color:var(--accent);border:.5px solid var(--accent);}
html[data-theme="dark"] .pill-ok{background:#0f2a19;}
html[data-theme="dark"] .pill-warn{color:#f0ad4e;}

/* ===== 首页最新公告条 ===== */
.latest{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:16px 20px;margin-bottom:8px;
  border-left:3px solid var(--accent);
}
.latest-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.latest-date{font-size:12px;color:var(--text-dim);}
.latest-more{margin-left:auto;font-size:12.5px;}
.latest-t{font-size:15px;font-weight:600;margin-top:8px;}
.latest-b{font-size:13.5px;color:var(--text-sub);margin-top:4px;}

/* ===== 服务状态 ===== */
.st-list{margin-bottom:6px;}
.st-item{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:11px 0;border-bottom:.5px solid var(--line-soft);
  font-size:14px;
}
.st-item:last-child{border-bottom:none;}
.dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;align-self:center;}
.dot-ok{background:var(--ok);}
.dot-slow{background:var(--warn-line);}
.dot-down{background:#d93025;}
.st-name{font-weight:500;flex:0 0 auto;}
.st-state{
  font-size:11.5px;color:var(--text-dim);
  border:.5px solid var(--line);border-radius:4px;padding:0 6px;flex:0 0 auto;
}
.st-desc{flex:1 1 200px;min-width:0;font-size:13px;color:var(--text-sub);}

/* ===== 公告条目 ===== */
.ann{
  padding:16px 0;border-bottom:.5px solid var(--line-soft);
}
.ann:last-of-type{border-bottom:none;}
.ann-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.ann-date{font-size:12px;color:var(--text-dim);margin-left:auto;}
.ann-title{font-size:15.5px;font-weight:600;margin-bottom:5px;letter-spacing:-.01em;}
.ann-body{font-size:13.5px;color:var(--text-sub);}
.ann-warn{
  background:var(--warn-bg);
  border-left:3px solid var(--warn-line);
  padding:14px 16px;border-radius:8px;
  margin-bottom:10px;border-bottom:none;
}
.ann-warn .ann-body{color:var(--text);}

/* ===== 条款章节 ===== */
.term-sec{padding:16px 0;border-bottom:.5px solid var(--line-soft);}
.term-sec:last-child{border-bottom:none;}
.term-sec h3{font-size:15px;font-weight:600;margin-bottom:8px;}
.term-sec p{font-size:14px;color:var(--text-sub);margin-bottom:7px;}
.term-sec p:last-child{margin-bottom:0;}

/* ============================================================
   MCPEMAP 导航站专用组件
   ============================================================ */

/* ===== 顶部公告条 ===== */
.notice-bar{
  background:var(--accent-weak);
  border-bottom:.5px solid var(--line-soft);
  padding:10px 0;
  font-size:13px;color:var(--text-sub);
}
html[data-theme="dark"] .notice-bar{background:#0a1a2c;}
.notice-bar b{color:var(--accent);font-weight:600;}

/* ===== 顶栏后台入口 ===== */
.nav-link{
  font-size:13px;color:var(--text-sub);
  padding:6px 10px;border-radius:8px;
  display:inline-flex;align-items:center;gap:5px;
}
.nav-link:hover{background:var(--bg-sub);color:var(--text);text-decoration:none;}
.nav-link .dot{
  background:#d93025;color:#fff;border-radius:980px;
  font-size:10px;padding:1px 6px;font-weight:600;line-height:1.5;
}

/* ===== 数字概览 ===== */
.stats-grid{
  display:grid;gap:10px;grid-template-columns:repeat(2,1fr);
  margin-bottom:22px;
}
@media(min-width:700px){.stats-grid{grid-template-columns:repeat(4,1fr);}}
.stat{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:16px 18px;
}
.stat .n{
  font-size:clamp(22px,4vw,30px);font-weight:600;
  letter-spacing:-.03em;line-height:1.1;
}
.stat .l{font-size:12px;color:var(--text-dim);margin-top:3px;}

/* ===== 筛选器 ===== */
.filters{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:16px 18px;margin-bottom:18px;
}
.f-search{
  display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;
}
.f-search input{
  flex:1 1 200px;min-width:0;font-family:inherit;font-size:15px;
  padding:10px 13px;border-radius:10px;min-height:44px;
  border:1px solid var(--line);background:var(--bg);color:var(--text);
}
.f-search input:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-weak);
}
.f-btn{
  min-height:44px;padding:0 18px;border-radius:10px;
  border:1px solid var(--accent);background:var(--accent);
  color:#fff;font-size:14px;font-family:inherit;cursor:pointer;
}
.f-btn:hover{opacity:.9;}
.f-btn-ghost{
  background:transparent;color:var(--text-sub);border-color:var(--line);
}
.f-row{
  display:flex;align-items:baseline;gap:10px;
  flex-wrap:wrap;padding:7px 0;
  border-top:.5px solid var(--line-soft);
}
.f-row:first-of-type{border-top:none;}
.f-k{
  flex:0 0 48px;font-size:12px;color:var(--text-dim);
}
.f-chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;}
.chip{
  display:inline-block;padding:5px 12px;border-radius:980px;
  font-size:12.5px;background:var(--bg);
  border:.5px solid var(--line);color:var(--text-sub);
  min-height:32px;line-height:1.5;
}
.chip:hover{text-decoration:none;border-color:var(--accent);color:var(--accent);}
.chip.on{
  background:var(--accent);border-color:var(--accent);color:#fff;
  font-weight:500;
}
.f-reset{
  font-size:12.5px;color:var(--text-dim);margin-left:auto;
  padding:5px 0;
}
.f-reset:hover{color:var(--accent);}

/* ===== 服务器卡片网格 ===== */
.srv-grid{
  display:grid;gap:12px;grid-template-columns:1fr;
}
@media(min-width:760px){.srv-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:1080px){.srv-grid{grid-template-columns:repeat(3,1fr);}}
.srv-card{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:18px;display:flex;flex-direction:column;gap:9px;
  position:relative;
}
.srv-card:hover{text-decoration:none;}
.srv-top{
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
}
.srv-name{
  font-size:17px;font-weight:600;letter-spacing:-.015em;
  color:var(--text);
}
.srv-card:hover .srv-name{color:var(--accent);}
.badge{
  font-size:10.5px;padding:2px 8px;border-radius:980px;
  font-weight:500;letter-spacing:.02em;
}
.badge-top{background:#d93025;color:#fff;}
.badge-rec{background:var(--accent);color:#fff;}
.srv-addr{
  font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;color:var(--text-sub);
  word-break:break-all;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.copy-btn{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;
  font-size:11.5px;padding:3px 9px;border-radius:6px;
  background:var(--bg);border:.5px solid var(--line);
  color:var(--accent);cursor:pointer;min-height:28px;
}
.copy-btn:hover{background:var(--accent-weak);}
.srv-intro{
  font-size:13.5px;color:var(--text-sub);line-height:1.65;
  flex:1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.srv-tags{display:flex;flex-wrap:wrap;gap:5px;}
.tag-sm{
  font-size:11px;padding:2px 8px;border-radius:6px;
  background:var(--bg);border:.5px solid var(--line);
  color:var(--text-dim);
}
.tag-ok{background:#e6f6ec;color:var(--ok);border-color:transparent;}
html[data-theme="dark"] .tag-ok{background:#0d2a17;}
.tag-warn{background:var(--warn-bg);color:#8a6100;border-color:transparent;}
html[data-theme="dark"] .tag-warn{background:#2a2416;color:#e8b84b;}
.tag-dim{background:var(--bg-soft);color:var(--text-dim);}
.tag-ver{background:var(--accent-weak);color:var(--accent);border-color:transparent;}
.srv-foot{
  display:flex;gap:14px;font-size:11.5px;color:var(--text-dim);
  padding-top:2px;flex-wrap:wrap;
}

/* 列表卡片收藏星标（与详情页收藏逻辑一致） */
.fav-star{
  position:absolute;top:10px;right:10px;z-index:2;
  width:30px;height:30px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:15px;line-height:1;cursor:pointer;
  background:var(--bg);border:.5px solid var(--line);color:var(--text-dim);
  transition:transform .12s ease,color .12s ease,background .12s ease;
}
.fav-star:hover{color:var(--accent);transform:scale(1.08);}
.fav-star.is-fav{color:#ffb400;border-color:#ffb400;background:rgba(255,180,0,.12);}
html[data-theme="dark"] .fav-star.is-fav{background:rgba(255,180,0,.18);}
.fav-star:disabled{opacity:.6;cursor:default;}
.btn-sm{font-size:13px;padding:5px 12px;min-height:0;}
.fav-star + .srv-top .srv-name,
.fav-star + .srv-top{padding-right:34px;}

/* 卡片内“探测于 X”小字 */
.probe-time{margin-left:6px;font-size:11.5px;}

/* 审核进度查询页字段 */
.track-kv{display:flex;flex-direction:column;gap:12px;margin-top:12px;}
.track-kv>div{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;}
.track-kv>div>span{color:var(--text-dim);flex:0 0 auto;}
.track-kv>div>b{color:var(--text);text-align:right;}

/* ===== 空状态 ===== */
.empty{
  text-align:center;padding:48px 20px;color:var(--text-dim);
}
.empty p{font-size:14px;margin-bottom:6px;}
.empty .big{font-size:15px;color:var(--text-sub);font-weight:500;}

/* ===== 分页 ===== */
.pager{
  display:flex;align-items:center;justify-content:center;
  gap:6px;flex-wrap:wrap;margin-top:24px;
}
.pager a,.pager span{
  min-width:38px;min-height:38px;padding:0 10px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:9px;font-size:13.5px;
  background:var(--bg-sub);color:var(--text-sub);
}
.pager a:hover{text-decoration:none;background:var(--accent);color:#fff;}
.pager span.on{background:var(--accent);color:#fff;font-weight:500;}
.pager span.off{background:transparent;color:var(--text-dim);}

/* ===== 详情页 ===== */
.detail-head{
  padding:clamp(30px,6vw,52px) 0 20px;
}
.detail-head h1{
  font-size:clamp(24px,4.6vw,34px);font-weight:600;
  letter-spacing:-.025em;line-height:1.2;margin-bottom:10px;
}
.kv{
  display:grid;gap:0;grid-template-columns:1fr;
}
@media(min-width:560px){.kv{grid-template-columns:120px 1fr;}}
.kv dt{
  font-size:13px;color:var(--text-dim);padding:9px 0;
}
.kv dd{
  font-size:14px;color:var(--text);padding:9px 0;
  word-break:break-all;
}
@media(min-width:560px){
  .kv dt,.kv dd{border-bottom:.5px solid var(--line-soft);}
}
.addr-box{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:16px 18px;margin:14px 0;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.addr-box code{
  font-size:15px;background:none;padding:0;
  font-weight:600;color:var(--text);
}
.vote-btn{
  min-height:44px;padding:0 22px;border-radius:980px;
  border:1px solid var(--accent);background:var(--accent);
  color:#fff;font-size:14.5px;font-family:inherit;cursor:pointer;
}
.vote-btn:hover{opacity:.9;}
.vote-btn[disabled]{
  background:transparent;color:var(--text-dim);
  border-color:var(--line);cursor:default;opacity:1;
}
.vote-n{
  font-size:13px;color:var(--text-dim);
}

/* ===== 统计分布条 ===== */
.bar-row{
  display:flex;align-items:center;gap:12px;
  padding:7px 0;font-size:13px;
}
.bar-k{flex:0 0 68px;color:var(--text-sub);}
.bar-track{
  flex:1;height:8px;background:var(--bg-sub);
  border-radius:980px;overflow:hidden;
}
.bar-fill{
  height:100%;background:var(--accent);border-radius:980px;
  min-width:2px;
}
.bar-n{flex:0 0 34px;text-align:right;color:var(--text-dim);font-size:12px;}

/* ===== 排行榜 ===== */
.rank-list{list-style:none;counter-reset:r;}
.rank-list li{
  display:flex;align-items:center;gap:14px;
  padding:14px 0;border-bottom:.5px solid var(--line-soft);
}
.rank-n{
  flex:0 0 30px;font-size:16px;font-weight:600;
  color:var(--text-dim);text-align:center;
  font-family:"SF Mono",ui-monospace,monospace;
}
.rank-list li:nth-child(1) .rank-n{color:#d93025;}
.rank-list li:nth-child(2) .rank-n{color:#f0ad4e;}
.rank-list li:nth-child(3) .rank-n{color:var(--ok);}
.rank-b{flex:1;min-width:0;}
.rank-b .nm{font-size:15px;font-weight:500;color:var(--text);}
.rank-b .mt{font-size:12px;color:var(--text-dim);word-break:break-all;}
.rank-v{
  flex:0 0 auto;font-size:13px;color:var(--text-dim);
  font-family:"SF Mono",ui-monospace,monospace;
}

/* ===== 公告 ===== */
.news-item{
  padding:18px 0;border-bottom:.5px solid var(--line-soft);
}
.news-item:last-child{border-bottom:none;}
.news-h{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  margin-bottom:5px;
}
.news-t{font-size:16px;font-weight:600;}
.news-d{font-size:12px;color:var(--text-dim);}
.news-body{font-size:14px;color:var(--text-sub);line-height:1.75;white-space:pre-wrap;}

/* ===== 后台 ===== */
.admin-bar{
  background:var(--bg-sub);border-bottom:.5px solid var(--line-soft);
  padding:12px 0;margin-bottom:20px;
}
.admin-bar .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.admin-bar a{font-size:13px;color:var(--text-sub);}
.admin-bar a:hover{color:var(--accent);}
.admin-bar .who{
  margin-left:auto;font-size:12px;color:var(--text-dim);
}
.admin-grid{
  display:grid;gap:10px;grid-template-columns:repeat(2,1fr);
  margin-bottom:20px;
}
@media(min-width:700px){.admin-grid{grid-template-columns:repeat(4,1fr);}}
.admin-card{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:16px 18px;
}
.admin-card .n{font-size:24px;font-weight:600;letter-spacing:-.02em;}
.admin-card .l{font-size:12px;color:var(--text-dim);margin-top:2px;}
.admin-card .go{font-size:12px;color:var(--accent);margin-top:6px;display:inline-block;}
.login-box{
  max-width:360px;margin:clamp(48px,12vw,96px) auto;
}
.login-box h1{
  font-size:24px;font-weight:600;margin-bottom:6px;
}
.login-box p.l{font-size:13.5px;color:var(--text-sub);margin-bottom:22px;}
.queue-item{
  background:var(--bg-sub);border-radius:var(--radius);
  padding:18px;margin-bottom:12px;
}
.queue-h{
  display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:6px;
}
.queue-h .nm{font-size:16px;font-weight:600;}
.queue-meta{
  font-size:12.5px;color:var(--text-dim);
  display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px;
}
.queue-intro{
  font-size:13.5px;color:var(--text-sub);
  line-height:1.65;margin-bottom:12px;
}
.queue-actions{display:flex;gap:8px;flex-wrap:wrap;}
.a-btn{
  min-height:40px;padding:0 18px;border-radius:9px;
  border:none;font-size:13.5px;font-family:inherit;cursor:pointer;
  display:inline-flex;align-items:center;
}
.a-ok{background:var(--ok);color:#fff;}
.a-no{background:#d93025;color:#fff;}
.a-gray{background:var(--bg);color:var(--text-sub);border:.5px solid var(--line);}
.a-blue{background:var(--accent);color:#fff;}
.a-btn:hover{opacity:.88;}
.admin-table{font-size:13px;}
.admin-table td{vertical-align:middle;}
.mini{
  font-size:11.5px;padding:2px 8px;border-radius:6px;
  background:var(--bg);border:.5px solid var(--line);
  color:var(--text-dim);white-space:nowrap;
}
.mini-ok{background:#e6f6ec;color:var(--ok);border-color:transparent;}
.mini-warn{background:var(--warn-bg);color:#8a6100;border-color:transparent;}
.mini-dim{background:var(--bg-soft);color:var(--text-dim);}

/* ===== 安装页 ===== */
.install{
  max-width:560px;margin:clamp(40px,10vw,80px) auto;
}
.install h1{font-size:26px;font-weight:600;margin-bottom:8px;}
.install .l{font-size:14px;color:var(--text-sub);margin-bottom:24px;}
.chk{
  display:flex;align-items:baseline;gap:10px;
  padding:10px 0;border-bottom:.5px solid var(--line-soft);
  font-size:14px;
}
.chk .s{flex:0 0 20px;font-weight:600;}
.chk .s.y{color:var(--ok);}
.chk .s.n{color:#d93025;}
.chk .d{flex:1;color:var(--text-sub);}
.chk .d small{display:block;color:var(--text-dim);font-size:12px;}

/* ===== 小工具 ===== */
.row-flex{
  display:flex;gap:10px;flex-wrap:wrap;align-items:center;
}
.muted{color:var(--text-dim);font-size:13px;}
.right{text-align:right;}
.mt{margin-top:18px;}
.mb{margin-bottom:18px;}

/* ===== 新手引导 ===== */
.guide{
  background:var(--bg-sub);
  border-radius:var(--radius);
  padding:clamp(18px,3.5vw,26px);
  margin-bottom:22px;
}
.guide-t{
  font-size:clamp(17px,2.6vw,21px);
  font-weight:600; letter-spacing:-.02em;
  margin-bottom:16px;
}

.g-steps{list-style:none;display:grid;gap:12px;}
.g-steps li{display:flex;gap:12px;align-items:flex-start;}
.g-num{
  flex:none;
  width:24px; height:24px; border-radius:50%;
  background:var(--text); color:var(--bg);
  font-size:12px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
  margin-top:2px;
}
.g-body{display:flex;flex-direction:column;gap:2px;min-width:0;}
.g-body b{font-size:15px;font-weight:600;}
.g-body span{font-size:13.5px;color:var(--text-sub);line-height:1.6;}

.g-more{
  margin-top:14px;
  border-top:.5px solid var(--line-soft);
}
.g-more summary{
  padding:14px 0;
  font-size:14.5px; font-weight:500;
  cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  min-height:44px;
}
.g-more summary::-webkit-details-marker{display:none;}
.g-more summary::after{
  content:"+"; color:var(--text-dim);
  font-size:18px; font-weight:300; flex:none;
}
.g-more[open] summary::after{content:"\2212";}

.g-gloss{margin:0 0 12px;display:grid;gap:10px;}
.g-item{
  display:grid;
  grid-template-columns:minmax(84px,auto) 1fr;
  gap:4px 14px; align-items:baseline;
  font-size:13.5px;
}
.g-item dt{font-weight:600;color:var(--text);}
.g-item dd{color:var(--text-sub);line-height:1.6;}

.g-fail{
  margin:0 0 12px; padding-left:18px;
  font-size:13.5px; color:var(--text-sub);
}
.g-fail li{margin-bottom:6px;line-height:1.6;}

@media (max-width:520px){
  .g-item{grid-template-columns:1fr;gap:2px;}
  .g-item dt{margin-top:6px;}
  .g-item:first-child dt{margin-top:0;}
}

/* ===== 服务器图标 ===== */
.srv-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.srv-title{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.srv-icon{
  width:28px;height:28px;border-radius:7px;object-fit:cover;flex:0 0 28px;
  background:var(--bg-soft);border:.5px solid var(--line-soft);
}
.srv-icon--empty{
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:600;color:var(--text-dim);
}
.detail-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.detail-head-body{flex:1;min-width:0;}
.detail-icon{
  width:64px;height:64px;border-radius:14px;object-fit:cover;flex:0 0 64px;
  background:var(--bg-soft);border:.5px solid var(--line-soft);
}
.detail-icon--empty{
  display:flex;align-items:center;justify-content:center;
  font-size:28px;font-weight:600;color:var(--text-dim);
}
.rank-icon{
  width:32px;height:32px;border-radius:8px;object-fit:cover;flex:0 0 32px;
  background:var(--bg-soft);border:.5px solid var(--line-soft);
}
.rank-icon--empty{
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:600;color:var(--text-dim);
}
.icon-preview{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.icon-preview img{width:48px;height:48px;border-radius:10px;object-fit:cover;border:.5px solid var(--line);}
.del-icon{display:inline-flex;align-items:center;gap:6px;margin:4px 0 2px;font-size:13px;color:var(--muted);cursor:pointer;}
.del-icon input{width:auto;min-height:auto;}
.icon-preview-name{font-size:12px;color:var(--text-dim);word-break:break-all;}

/* 后台壁纸预览 */
.wp-preview{margin-bottom:10px;}
.wp-preview img{max-width:260px;max-height:150px;width:auto;height:auto;border-radius:8px;border:1px solid var(--line-soft);display:block;object-fit:cover;}

/* ===== 站点音乐播放器 ===== */
.music-player{
  position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom,0px)); z-index:60;
  display:flex; align-items:center; gap:12px;
  padding:10px 16px 10px 10px;
  background:var(--bg); border:.5px solid var(--line-soft);
  border-radius:16px; box-shadow:0 12px 34px rgba(0,0,0,.20);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  color:var(--text); width:min(86vw,320px);
}
html[data-theme="dark"] .music-player{ background:rgba(26,26,30,.82); border-color:rgba(255,255,255,.1); }
.music-player .mp-toggle{
  width:42px; height:42px; flex:0 0 42px;
  border:none; border-radius:50%; cursor:pointer; padding:0; position:relative;
  background:var(--accent); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,.18);
  transition:transform .15s ease, box-shadow .15s ease;
}
.music-player .mp-toggle:hover{ transform:scale(1.05); }
.music-player .mp-toggle:active{ transform:scale(.96); }
.music-player .mp-toggle svg{ width:20px; height:20px; fill:currentColor; position:absolute; }
.music-player .mp-ic-pause{ display:none; }
.music-player .mp-toggle.playing .mp-ic-play{ display:none; }
.music-player .mp-toggle.playing .mp-ic-pause{ display:block; }
.music-player .mp-body{ display:flex; flex-direction:column; gap:6px; min-width:0; flex:1 1 auto; }
.music-player .mp-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.music-player .mp-title{ font-weight:600; font-size:13px; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.music-player .mp-state{ font-size:11px; color:var(--text-dim); white-space:nowrap; flex:0 0 auto; }
.music-player .mp-time{ font-size:11px; color:var(--text-dim); font-variant-numeric:tabular-nums; white-space:nowrap; flex:0 0 auto; }
.music-player .mp-bar{ position:relative; height:16px; display:flex; align-items:center; }
.music-player .mp-bar::before{ content:""; position:absolute; left:0; right:0; height:4px; border-radius:4px; background:var(--line-soft); }
.music-player .mp-fill{ position:absolute; left:0; height:4px; width:0; border-radius:4px; background:var(--accent); pointer-events:none; }
.music-player .mp-range{ position:relative; width:100%; height:16px; margin:0; padding:0; -webkit-appearance:none; appearance:none; background:transparent; cursor:pointer; }
.music-player .mp-range::-webkit-slider-runnable-track{ height:4px; border-radius:4px; background:transparent; }
.music-player .mp-range::-moz-range-track{ height:4px; border-radius:4px; background:transparent; }
.music-player .mp-range::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:13px; height:13px; margin-top:-1px; border-radius:50%; background:var(--accent); border:2px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.35); }

/* ===== 播放器收放（折叠） ===== */
.music-player .mp-fold{
  width:22px; height:22px; flex:0 0 22px; margin-left:2px;
  border:none; border-radius:50%; cursor:pointer; padding:0;
  background:transparent; color:var(--text-dim);
  display:flex; align-items:center; justify-content:center;
  transition:color .15s ease, transform .2s ease;
}
.music-player .mp-fold:hover{ color:var(--text); }
.music-player .mp-fold svg{ width:16px; height:16px; fill:currentColor; transition:transform .2s ease; }
.music-player.collapsed{ width:auto; padding:10px; gap:0; }
.music-player.collapsed .mp-body{ display:none; }
.music-player.collapsed .mp-fold{ margin-left:0; }
.music-player.collapsed .mp-fold svg{ transform:rotate(180deg); }
.music-player .mp-range::-moz-range-thumb{ width:13px; height:13px; border-radius:50%; background:var(--accent); border:2px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.35); }
@media (max-width:520px){
  .music-player{ right:12px; left:12px; bottom:calc(12px + env(safe-area-inset-bottom,0px)); width:auto; max-width:none; padding:9px 14px 9px 9px; gap:10px; }
  .music-player .mp-toggle{ width:40px; height:40px; flex:0 0 40px; }
  .music-player .mp-title{ font-size:12px; }
  .music-player .mp-time{ font-size:10px; }
  /* 折叠态：收缩为右下角小胶囊，不再横跨全屏 */
  .music-player.collapsed{ left:auto; right:12px; width:auto; max-width:none; padding:7px; gap:0; border-radius:999px; }
  .music-player.collapsed .mp-toggle{ width:38px; height:38px; flex:0 0 38px; }
  .music-player.collapsed .mp-fold{ width:26px; height:26px; flex:0 0 26px; }
  .music-player.collapsed .mp-fold svg{ width:15px; height:15px; }
}

/* ===== 在线状态点 ===== */
.ping-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto;vertical-align:middle;background:var(--text-dim);}
.ping-dot.is-online{background:#30c94b;box-shadow:0 0 0 0 rgba(48,201,75,.5);animation:ping-pulse 2.2s infinite;}
.ping-dot.is-offline{background:#9a9aa0;}
.ping-dot.is-unknown{background:#f0ad4e;}
.ping-dot.is-stale{background:transparent;border:1.5px solid #9a9aa0;width:7px;height:7px;}
@keyframes ping-pulse{0%{box-shadow:0 0 0 0 rgba(48,201,75,.45);}70%{box-shadow:0 0 0 7px rgba(48,201,75,0);}100%{box-shadow:0 0 0 0 rgba(48,201,75,0);}}
.ping-n{font-size:12px;color:var(--text-sub);margin-left:5px;font-variant-numeric:tabular-nums;}
.srv-title .ping-dot{margin-left:8px;}

/* ===== 新徽标 ===== */
.badge-new{display:inline-block;font-size:11px;line-height:1;padding:3px 6px;border-radius:6px;background:var(--accent);color:#fff;font-weight:600;vertical-align:middle;margin-left:6px;letter-spacing:0;}

/* ===== 详情页操作按钮（收藏/分享） ===== */
.act-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 16px;border-radius:980px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:14px;font-family:inherit;cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
.act-btn:hover{background:var(--bg-sub);}
.act-btn svg{width:17px;height:17px;}
.act-btn.is-fav{background:var(--accent);border-color:var(--accent);color:#fff;}

/* ===== 截图轮播 ===== */
.shot{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--bg-sub);border:1px solid var(--line-soft);margin:8px 0 4px;}
.shot-track{display:flex;transition:transform .35s ease;}
.shot-slide{flex:0 0 100%;}
.shot-slide img{display:block;width:100%;height:auto;max-height:420px;object-fit:cover;}
.shot-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:none;background:rgba(0,0,0,.4);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.shot-nav:hover{background:rgba(0,0,0,.6);}
.shot-prev{left:10px;} .shot-next{right:10px;}
.shot-dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:7px;}
.shot-dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.5);cursor:pointer;padding:0;}
.shot-dot.on{background:#fff;}
.shot[data-count="1"] .shot-nav,.shot[data-count="1"] .shot-dots{display:none;}

/* ===== 详情页实时状态行 ===== */
.detail-live{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:14px;}
.detail-live b{font-weight:600;}
.detail-live .live-n b{font-weight:600;color:var(--accent);}
.detail-live .live-n{color:var(--text);font-weight:600;}
.detail-live-note{font-size:12px;color:var(--text-sub);}
/* 详情页操作按钮行换行 */
.row-flex{flex-wrap:wrap;gap:10px;}

/* ===== 移动端优化（≤640px） ===== */
@media (max-width:640px){
  /* Hero：标题区更紧凑 */
  .hero{padding-top:26px;}
  .hero-actions{margin-top:18px;}
  .hero-actions .btn{min-height:42px;padding:0 16px;}

  /* 筛选器：收紧行距与内边距，减少纵向堆积感 */
  .filters{padding:13px 14px;margin-bottom:14px;}
  .f-search{margin-bottom:10px;}
  .f-row{padding:6px 0;}
  /* iOS Safari：聚焦输入框不再自动放大页面 */
  .f-search input{font-size:16px;}
  .field input,.field select,.field textarea{font-size:16px;}

  /* 统计卡：更紧凑 */
  .stats-grid{gap:8px;margin-bottom:16px;}
  .stat{padding:13px 14px;}

  /* 服务器卡片：收紧间距与字号 */
  .srv-card{padding:14px;gap:8px;}
  .srv-name{font-size:16px;}
  .srv-foot{gap:10px;font-size:11px;}

  /* 表单字段间距收紧 */
  .field{margin-bottom:13px;}
}

/* ===== bundled: features.css ===== */
/* ============================================================
 * MCPEMAP · v2 新功能样式（独立文件，避免改动已缓存的 style.css）
 * 全部用站点 CSS 变量，自动适配深浅色。
 * ========================================================== */

/* 表格（版本对照 / 字段说明 / 徽章字段 / 后台纠错） */
.table-wrap { width: 100%; overflow-x: auto; margin: 6px 0 18px; }
.info-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.info-table th, .info-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.info-table th { color: var(--text-sub); font-weight: 600; background: var(--bg-soft, transparent); }
.info-table td code { background: var(--bg-soft, #f2f2f7); padding: 1px 6px; border-radius: 5px; font-size: 12.5px; }
html[data-theme="dark"] .info-table td code { background: #2a2a30; }

/* 今日在线情况：四宫格 */
.stat-mini { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 14px; }
.stat-mini > div { background: var(--bg-soft, #f6f6f9); border: 1px solid var(--line-soft); border-radius: 12px; padding: 14px 12px; text-align: center; }
.stat-mini b { display: block; font-size: 22px; font-weight: 700; color: var(--text); line-height: 1.2; }
.stat-mini span { font-size: 12.5px; color: var(--text-sub); }
@media (max-width: 560px) { .stat-mini { grid-template-columns: repeat(2, 1fr); } }

/* 印象标签 */
.tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.tag-pill { background: var(--accent-weak, #e8f2fd); color: var(--accent); border-radius: 999px; padding: 5px 12px; font-size: 13px; font-weight: 500; }
.tag-pill i { font-style: normal; opacity: .7; margin-left: 4px; font-size: 12px; }
html[data-theme="dark"] .tag-pill { background: #0a1a2c; }
.tag-form .mt { font-weight: 600; margin-bottom: 8px; }
.tag-opts { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 10px; }
.tag-opt { display: inline-flex; align-items: center; gap: 5px; font-size: 13.5px; color: var(--text-sub); cursor: pointer; }
.tag-opt input { width: auto; min-height: auto; }

/* 24 小时热度柱状图 */
.heat { display: flex; align-items: flex-end; gap: 4px; height: 180px; padding: 10px 4px 0; border-bottom: 1px solid var(--line-soft); overflow-x: auto; }
.heat-col { flex: 1 1 0; min-width: 18px; display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end; }
.heat-bar { width: 100%; max-width: 26px; background: linear-gradient(180deg, var(--accent), var(--accent-weak, #cfe6ff)); border-radius: 4px 4px 0 0; min-height: 2px; transition: height .3s; }
.heat-h { font-size: 10.5px; color: var(--text-dim); margin-top: 5px; }
@media (max-width: 600px) { .heat-h { font-size: 9px; } .heat-col { min-width: 12px; } }

/* 进服指南 · 步骤序号 */
.step-n { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 13px; font-weight: 700; margin-right: 8px; }

/* API 文档页 */
.api-url { display: inline-block; background: var(--bg-soft, #f2f2f7); padding: 6px 10px; border-radius: 8px; font-size: 13px; word-break: break-all; }
html[data-theme="dark"] .api-url { background: #23232a; }
.code-block { background: #1c202e; color: #d6e2f0; padding: 12px 14px; border-radius: 10px; font-size: 12.5px; line-height: 1.7; overflow-x: auto; white-space: pre-wrap; word-break: break-all; margin: 8px 0 14px; }
.badge-prev { display: inline-block; background: #1c202e; border-radius: 8px; padding: 6px; margin: 4px 0; }

/* 后台纠错 · 小按钮 */
.mini-btn { background: var(--ok); color: #fff; border: none; border-radius: 7px; padding: 5px 12px; font-size: 13px; cursor: pointer; }
.mini-btn.ghost { background: transparent; color: var(--text-sub); border: 1px solid var(--line); }
.btn-sm { padding: 8px 16px; font-size: 13px; }

/* ===== bundled: chart.css ===== */
/* MCPEMAP · 趋势图（SVG 主题自适应） */
.trend-svg{width:100%;height:auto;display:block;margin-top:6px;overflow:visible}
.trend-grid{stroke:var(--line,#e6e8ee);stroke-width:1}
.trend-yl,.trend-xl{fill:var(--text-sub,#8a90a0);font-size:11px;text-anchor:middle}
.trend-yl{text-anchor:end}
.trend-line{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.trend-line-total{stroke:#58a6ff}
.trend-line-online{stroke:#34c77b}
.trend-dot{stroke:#fff;stroke-width:1}
.trend-dot-total{fill:#58a6ff}
.trend-dot-online{fill:#34c77b}
.trend-bar{fill:#58a6ff;opacity:.85}
.trend-bar-val{fill:var(--text,#222);font-size:11px;text-anchor:middle;font-weight:600}
.trend-bar-avg{fill:var(--text-sub,#8a90a0);font-size:10px;text-anchor:middle}
.trend-legend{display:flex;gap:18px;flex-wrap:wrap;margin:4px 0 2px}
.trend-leg{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-sub)}
.trend-leg i{width:14px;height:4px;border-radius:2px;display:inline-block}
.trend-leg-total i{background:#58a6ff}
.trend-leg-online i{background:#34c77b}
.trend-cap{font-size:13px;color:var(--text-sub);margin-top:2px}
:root[data-theme="dark"] .trend-grid{stroke:#222838}
:root[data-theme="dark"] .trend-bar-val{fill:#ecedf2}
:root[data-theme="dark"] .trend-bar{fill:#4f93e8}

/* ===== bundled: redesign.css ===== */
/* ============================================================
   MCPEMAP · Redesign v3 — 精致苹果风升级层
   ------------------------------------------------------------
   原则
   1) 只做「覆盖」，不修改 style.css 原有规则；所有类名保持不变，
      30 个页面自动继承新观感，零结构破坏。
   2) 壁纸保留（body 背景由 wallpaper 注入），内容一律承载在
      实底卡片上 —— 文字 100% 清晰，壁纸只作外围氛围。
   3) 深浅色共用一套令牌，减少逐条 dark 覆盖。
   ============================================================ */

/* ---------------- 1. 设计令牌 ---------------- */
:root{
  --bg:#ffffff;
  --bg-sub:#f5f5f7;
  --bg-soft:#fbfbfd;
  --surface:#ffffff;
  --surface-2:#f5f5f7;
  --text:#1d1d1f;
  --text-sub:#6e6e73;
  --text-dim:#86868b;
  --line:#e6e6ec;
  --line-soft:#f0f0f4;
  --line-strong:#d6d6dd;
  --accent:#0071e3;
  --accent-weak:#eaf3fe;
  --accent-ink:#0060c9;
  --ok:#1d8a4c;
  --warn-bg:#fff8e6;
  --warn-line:#e0a02f;
  --danger:#d93025;
  --r-sm:10px;
  --r:16px;
  --r-lg:22px;
  --r-pill:980px;
  --radius:16px;
  --maxw:1120px;
  --nav-h:56px;
  --sh-xs:0 1px 2px rgba(17,17,26,.05);
  --sh-sm:0 1px 3px rgba(17,17,26,.06), 0 1px 2px rgba(17,17,26,.04);
  --sh-md:0 12px 34px -14px rgba(17,17,26,.20), 0 2px 8px rgba(17,17,26,.05);
  --sh-lg:0 26px 64px -22px rgba(17,17,26,.30);
  --ease:cubic-bezier(.4,0,.2,1);
}
html[data-theme="dark"]{
  --bg:#000000;
  --bg-sub:#131316;
  --bg-soft:#0b0b0d;
  --surface:#1b1b1f;
  --surface-2:#141418;
  --text:#f5f5f7;
  --text-sub:#a1a1a6;
  --text-dim:#8e8e93;
  --line:rgba(255,255,255,.11);
  --line-soft:rgba(255,255,255,.06);
  --line-strong:rgba(255,255,255,.18);
  --accent:#0a84ff;
  --accent-weak:#0a1c2e;
  --accent-ink:#409cff;
  --ok:#32d74b;
  --warn-bg:#2a2416;
  --warn-line:#d99b2b;
  --sh-xs:0 1px 2px rgba(0,0,0,.55);
  --sh-sm:0 1px 3px rgba(0,0,0,.60);
  --sh-md:0 14px 36px -14px rgba(0,0,0,.80);
  --sh-lg:0 30px 72px -22px rgba(0,0,0,.90);
}

/* ---------------- 2. 顶栏：玻璃拟态 ---------------- */
.nav{
  height:var(--nav-h);
  padding-top:env(safe-area-inset-top);
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:saturate(180%) blur(22px);
  backdrop-filter:saturate(180%) blur(22px);
  border-bottom:1px solid rgba(17,17,26,.07);
  box-shadow:none;
}
html[data-theme="dark"] .nav{
  background:rgba(10,10,12,.60);
  border-bottom-color:rgba(255,255,255,.08);
}
.nav-in{padding:0 clamp(18px,4vw,24px);}
.brand{
  display:inline-flex;align-items:center;gap:9px;
  font-size:15px;font-weight:650;letter-spacing:-.015em;
}
/* 品牌图标：使用站点图标，去除原蓝色渐变块 */
.brand::before{
  content:"";width:32px;height:32px;flex:0 0 32px;border-radius:6px;
  background:url(brand-logo.png?v=2) center/contain no-repeat;
  box-shadow:none;
}
@media (max-width:640px){
  .brand::before{width:28px;height:28px;flex-basis:28px;border-radius:5px;}
}
.nav-link{font-size:13.5px;border-radius:9px;padding:7px 11px;}
.icon-btn,.burger{width:38px;height:38px;flex-basis:38px;}

/* ---------------- 3. 全屏菜单 ---------------- */
.menu{padding-top:calc(var(--nav-h) + env(safe-area-inset-top) + 32px);}
.menu a{border-bottom:1px solid var(--line-soft);}
.menu a small{letter-spacing:.08em;}
.menu-gtitle{letter-spacing:.09em;}

/* ---------------- 4. Hero ---------------- */
.hero{padding:clamp(64px,10vw,116px) 0 clamp(36px,6vw,60px);}
.hero h1{
  font-size:clamp(34px,6.2vw,62px);
  font-weight:650;letter-spacing:-.038em;line-height:1.04;
  margin-bottom:18px;
  text-shadow:0 1px 22px rgba(255,255,255,.55);
}
.hero p{
  font-size:clamp(16px,1.7vw,20px);line-height:1.55;
  color:#424245;max-width:34em;
  text-shadow:0 1px 14px rgba(255,255,255,.85), 0 0 2px rgba(255,255,255,.6);
}
html[data-theme="dark"] .hero p{color:#c7c7cc;}
.hero-actions{margin-top:30px;gap:12px;}
html[data-theme="dark"] .hero h1{text-shadow:0 1px 24px rgba(0,0,0,.62);}
html[data-theme="dark"] .hero p{text-shadow:0 1px 16px rgba(0,0,0,.72);}

/* ---------------- 5. 按钮 ---------------- */
.btn{
  min-height:46px;padding:0 24px;border-radius:var(--r-pill);
  background:var(--text);color:var(--bg);
  font-size:14.5px;font-weight:560;letter-spacing:-.01em;
  box-shadow:var(--sh-xs);
  transition:transform .18s var(--ease),opacity .18s var(--ease),box-shadow .18s var(--ease);
}
.btn:hover{opacity:.92;transform:translateY(-1px);box-shadow:var(--sh-sm);text-decoration:none;}
html[data-theme="dark"] .btn{background:#f5f5f7;color:#0b0b0d;}
.btn-ghost{
  background:rgba(255,255,255,.55);color:var(--text);
  border:1px solid var(--line-strong);box-shadow:none;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
html[data-theme="dark"] .btn-ghost{background:rgba(255,255,255,.06);color:var(--text);}
.btn-ghost:hover{background:var(--surface);transform:translateY(-1px);box-shadow:var(--sh-sm);}

/* ---------------- 6. 卡片承载：实底 + 细边框 + 微阴影 ---------------- */
.guide,.filters,.srv-card,.link-card,.card,.queue-item,.admin-card,
.stat,.dcard,.chan,.addr-box,.ok-box,.mail,.latest,.card-warn,.card-official{
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--sh-sm);
}
.guide,.filters,.srv-card,.link-card,.card,.queue-item,.admin-card,
.stat,.dcard,.chan,.addr-box,.ok-box,.mail,.latest{
  border-radius:var(--r);
}
/* 左侧强调线卡片：保留语义色，但用实底承载 */
.card-official,.card-warn,.latest{border-left-width:3px;}

/* 6.1 内页 section 统一承载为实底面板（详情 / 关于 / 排行 / 统计 / 友链等），
       避免正文直接压在壁纸上导致可读性下降 */
.wrap > section{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--sh-sm);
  padding:clamp(20px,3vw,28px);
  margin:0 0 16px;
}
.wrap > section:first-of-type{margin-top:6px;}
.wrap > section > :first-child{margin-top:0;}
.wrap > section > :last-child{margin-bottom:0;}

/* 6.2 裸列表 / 表单同样承载，避免压壁纸 */
.rank-list{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--sh-sm);
  padding:6px 20px;
}
.news-item{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--sh-sm);
  padding:18px 20px;margin-bottom:12px;
}
.news-item:last-child{border-bottom:1px solid var(--line);}
.form{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--sh-sm);
  padding:clamp(20px,3vw,28px);margin:0 auto;
}

/* ---------------- 7. 概览数字 ---------------- */
.stats-grid{gap:12px;margin-bottom:28px;}
.stat{padding:20px 22px;}
.stat .n{font-size:clamp(26px,3.6vw,34px);font-weight:650;letter-spacing:-.04em;line-height:1.05;}
.stat .l{font-size:12.5px;color:var(--text-dim);margin-top:4px;letter-spacing:.01em;}

/* ---------------- 8. 筛选器 ---------------- */
.filters{padding:20px 22px;margin-bottom:22px;}
.f-search{margin-bottom:16px;gap:9px;}
.f-search input{
  border-radius:12px;border:1px solid var(--line);
  background:var(--surface);box-shadow:var(--sh-xs);
}
.f-search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-weak);}
.f-btn{border-radius:12px;font-weight:520;box-shadow:var(--sh-xs);}
.f-btn-ghost{box-shadow:none;border-color:var(--line-strong);}
.f-row{border-top:1px solid var(--line-soft);padding:9px 0;}
.chip{
  border-radius:var(--r-pill);border:1px solid var(--line-strong);
  background:var(--surface);padding:5px 13px;font-size:12.5px;
  transition:background .16s var(--ease),color .16s var(--ease),border-color .16s var(--ease);
}
.chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-weak);text-decoration:none;}
.chip.on{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:520;}
html[data-theme="dark"] .chip.on{background:#f5f5f7;color:#0b0b0d;}

/* ---------------- 9. 服务器卡片 ---------------- */
.srv-grid{gap:14px;}
.srv-card{
  padding:20px;gap:10px;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease);
}
.srv-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--sh-md);
  border-color:rgba(0,113,227,.35);
  text-decoration:none;
}
html[data-theme="dark"] .srv-card:hover{border-color:rgba(10,132,255,.45);}
.srv-name{font-size:17px;font-weight:620;letter-spacing:-.02em;}
.copy-btn{border-radius:var(--r-pill);}
.tag-sm{border-radius:var(--r-pill);}
.pager a,.pager span{border-radius:11px;}
.pager a:hover{background:var(--text);color:var(--bg);}
html[data-theme="dark"] .pager a:hover{background:#f5f5f7;color:#0b0b0d;}

/* ---------------- 10. 详情页 ---------------- */
.detail-head h1{
  font-size:clamp(26px,4.4vw,38px);font-weight:650;
  letter-spacing:-.032em;line-height:1.12;
  text-shadow:0 1px 20px rgba(255,255,255,.55);
}
html[data-theme="dark"] .detail-head h1{text-shadow:0 1px 22px rgba(0,0,0,.62);}
.addr-box{padding:18px 20px;}
.detail-icon{border-radius:16px;}

/* ---------------- 11. 表单 ---------------- */
.field input,.field select,.field textarea{
  border-radius:12px;border:1px solid var(--line);background:var(--surface);
  box-shadow:var(--sh-xs);
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-weak);
}
.btn-submit{
  border-radius:12px;background:var(--text);color:var(--bg);
  font-weight:560;box-shadow:var(--sh-xs);
  transition:opacity .18s var(--ease);
}
html[data-theme="dark"] .btn-submit{background:#f5f5f7;color:#0b0b0d;}
.btn-submit:hover{opacity:.9;}

/* ---------------- 12. 音乐播放器：低调化 ---------------- */
.music-player{
  right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));
  width:min(78vw,264px);
  padding:7px 14px 7px 7px;gap:10px;
  background:rgba(255,255,255,.70);
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  box-shadow:0 6px 20px -8px rgba(17,17,26,.22);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  backdrop-filter:blur(18px) saturate(180%);
  opacity:.92;
  transition:opacity .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease);
}
.music-player:hover{opacity:1;box-shadow:0 10px 28px -10px rgba(17,17,26,.28);}
html[data-theme="dark"] .music-player{background:rgba(24,24,28,.70);}
.music-player .mp-toggle{width:36px;height:36px;flex-basis:36px;box-shadow:none;}
.music-player .mp-title{font-size:12px;font-weight:550;}
.music-player .mp-state,.music-player .mp-time{font-size:10px;}
.music-player .mp-bar::before,.music-player .mp-fill{height:3px;}

/* ---------------- 13. 页脚：纯色收口 ---------------- */
footer{
  background:var(--bg);
  border-top:1px solid var(--line);
  padding:40px 0 56px;
}
.foot-logo{font-weight:700;letter-spacing:-.025em;}
.foot-copy,.foot-disclaimer{color:var(--text-sub);}
.foot-count{background:var(--surface-2);border-color:var(--line);}

/* ---------------- 14. 入场微动效（尊重减弱动效偏好） ---------------- */
@media (prefers-reduced-motion: no-preference){
  @keyframes rdRise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
  .hero h1,.hero p,.hero-actions,.stats-grid,.filters,.guide,.srv-grid{
    animation:rdRise .5s var(--ease) both;
  }
  .hero p{animation-delay:.05s;}
  .hero-actions{animation-delay:.10s;}
  .stats-grid{animation-delay:.06s;}
  .filters{animation-delay:.11s;}
  .srv-grid{animation-delay:.15s;}
}

/* ---------------- 15. 移动端：收紧 + 防溢出 ---------------- */
@media (max-width:640px){
  :root{--nav-h:52px;}
  .hero{padding-top:40px;padding-bottom:28px;}
  .hero h1{font-size:clamp(30px,8.6vw,40px);}
  .hero p{font-size:16px;}
  .hero-actions{margin-top:22px;}
  .filters{padding:15px;}
  .f-search{gap:8px;}
  .srv-card{padding:15px;}
  .stat{padding:15px 16px;}
  .stat .n{font-size:26px;}
  .stats-grid{gap:9px;}
  footer{padding:30px 0 40px;}
  .music-player{right:12px;left:auto;width:min(72vw,236px);padding:6px 12px 6px 6px;}
  .music-player.collapsed{right:12px;left:auto;}

  /* 排行 / 公告：窄屏收紧内边距，避免正文被挤成竖条 */
  .rank-list{padding:2px 14px;}
  .rank-list li{padding:12px 0;gap:10px;}
  .rank-n{flex-basis:22px;font-size:14px;}
  .rank-b .nm{font-size:14px;}
  .rank-b .mt{font-size:11px;}
  .news-item{padding:15px 16px;}
  .news-t{font-size:15px;}
  .news-body{font-size:13.5px;}

  /* 表格：首列不折行，说明列吃满剩余宽度 */
  .wrap > section{padding:16px 15px;}
  .info-table th,.info-table td{padding:9px 8px;font-size:13px;}
  .info-table th:first-child,.info-table td:first-child{white-space:nowrap;}
  .info-table th:last-child,.info-table td:last-child{word-break:break-word;}
}

/* ---------------- 16. 统计分布条：修复 + 精修 ---------------- */
/* 原 style.css 的 .bar-fill 是行内 <span>，width/height 被忽略，
   导致版本/类型/运行状态分布长条始终不显示；此处显式 block 化并统一苹果风。 */
.bar-row{gap:14px;padding:9px 0;}
.bar-k{flex:0 0 76px;font-size:13px;font-weight:500;color:var(--text-sub);}
.bar-track{
  flex:1;height:10px;background:var(--bg-sub);
  border-radius:980px;overflow:hidden;display:flex;align-items:stretch;
}
.bar-fill{
  display:block;height:100%;
  background:linear-gradient(90deg,var(--accent),var(--accent-ink));
  border-radius:980px;min-width:3px;
  transform-origin:left center;
}
.bar-n{flex:0 0 38px;text-align:right;font-size:12px;font-weight:600;color:var(--text-dim);}
@media (prefers-reduced-motion: no-preference){
  .bar-fill{animation:barGrow .9s var(--ease) both;}
  @keyframes barGrow{from{transform:scaleX(0);}to{transform:scaleX(1);}}
}


/* ===== 数据统计：全站在线人数栏目 ===== */
.players-section h3{
  font-size:17px;font-weight:650;margin:28px 0 10px;color:var(--text);
}
.players-total-card{
  display:flex;align-items:center;gap:22px;flex-wrap:wrap;
  background:var(--bg-soft,#f6f6f9);
  border:1px solid var(--line-soft);
  border-radius:16px;padding:22px 24px;margin-bottom:18px;
}
.players-total-main{display:flex;align-items:baseline;gap:10px;}
.players-total-num{
  font-size:clamp(42px,7vw,64px);font-weight:700;line-height:1;
  letter-spacing:-.05em;color:var(--accent);
}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .players-total-num{
    background:linear-gradient(90deg,var(--accent),var(--accent-ink));
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
}
.players-total-unit{font-size:15px;color:var(--text-sub);}
.players-total-side{
  margin-left:auto;text-align:right;font-size:12.5px;
  color:var(--text-dim);line-height:1.9;
}
.players-peak{font-size:13.5px;color:var(--text-sub);margin:14px 0 0;}
.players-peak a{color:var(--accent);text-decoration:none;font-weight:600;}
.players-peak a:hover{text-decoration:underline;}
.players-note{
  font-size:12.5px;color:var(--text-dim);line-height:1.75;margin-top:16px;
}
@media(max-width:700px){
  .players-total-card{padding:18px;gap:14px;}
  .players-total-side{margin-left:0;text-align:left;width:100%;}
}

/* 三列流程步骤 */
.flow3{display:grid;gap:12px;grid-template-columns:1fr;}
.flow3 .card h3{display:flex;align-items:center;margin-bottom:8px;}
@media(min-width:700px){.flow3{grid-template-columns:1fr 1fr 1fr;}}
/* FAQ 问答 */
.qa{padding:14px 0;border-bottom:1px solid var(--line-soft);}
.qa:last-child{border-bottom:none;}
.qa .q{font-weight:600;color:var(--text);margin:0 0 6px;font-size:15px;}
.qa p{font-size:14px;color:var(--text-sub);margin:0;line-height:1.65;}


/* ===== v2 upgrade (phase1) ===== */
/* A: 30-day uptime calendar */
.uptime-cal{margin:8px 0 0;}
.cal-grid{display:grid;grid-template-columns:repeat(15,1fr);gap:4px;}
.cal-cell{aspect-ratio:1;border-radius:4px;border:1px solid var(--line-soft);background:var(--bg-sub);}
.cal-cell.l1{background:#d8eeda;}
.cal-cell.l2{background:#a9d9b1;}
.cal-cell.l3{background:#6fbf80;}
.cal-cell.l4{background:#2e9e52;}
.cal-cell.is-na{background:repeating-linear-gradient(45deg,var(--bg-sub),var(--bg-sub) 3px,var(--bg-soft) 3px,var(--bg-soft) 6px);}
html[data-theme="dark"] .cal-cell.l1{background:#1d3a26;}
html[data-theme="dark"] .cal-cell.l2{background:#255c33;}
html[data-theme="dark"] .cal-cell.l3{background:#2f7d40;}
html[data-theme="dark"] .cal-cell.l4{background:#41a355;}
.cal-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--text-sub);margin-top:10px;}
.cal-legend i{width:12px;height:12px;border-radius:3px;display:inline-block;border:1px solid var(--line-soft);}
.sla-badge{display:inline-flex;align-items:center;gap:4px;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700;background:var(--bg-sub);color:var(--text-sub);}
.sla-gold{background:#fff2c8;color:#8a6100;}
.sla-silver{background:#e8edf2;color:#4a5a6a;}
.sla-bronze{background:#f6e2cf;color:#8a5324;}
.sla-watch{background:var(--warn-bg);color:#96650a;}
html[data-theme="dark"] .sla-gold{background:#4a3a10;color:#f2cf72;}
html[data-theme="dark"] .sla-silver{background:#2a3340;color:#c2ccd8;}
html[data-theme="dark"] .sla-bronze{background:#402a17;color:#e6b183;}
html[data-theme="dark"] .sla-watch{background:#40340f;color:#e8c469;}
.badge-rate{display:inline-flex;align-items:center;gap:3px;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:600;background:var(--accent-weak);color:var(--accent);white-space:nowrap;}
.badge-suspect{display:inline-flex;align-items:center;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:600;background:var(--warn-bg);color:#96650a;white-space:nowrap;}
html[data-theme="dark"] .badge-suspect{color:#e8c469;}
.health-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:10px 0 4px;}
.health-kpi{background:var(--bg-sub);border:1px solid var(--line-soft);border-radius:10px;padding:12px 14px;}
.health-kpi b{display:block;font-size:22px;line-height:1.2;}
.health-kpi span{font-size:12px;color:var(--text-sub);}
/* B: tag filter & rank */
.f-tag-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.tag-rank-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:14px;}
.tag-rank-row:last-child{border-bottom:none;}
.tag-rank-row .rk{width:22px;color:var(--text-dim);font-weight:700;}
.tag-rank-row .nm{flex:1;min-width:0;}
.tag-rank-row .ct{color:var(--text-sub);font-size:12px;white-space:nowrap;}
/* C: claim / manage */
.claim-wrap{max-width:600px;margin:36px auto;padding:0 16px;}
.claim-note{background:var(--accent-weak);border:1px solid var(--line-soft);border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.7;color:var(--text-sub);margin:14px 0 20px;}
.claim-form .field{margin-bottom:14px;}
.claim-form label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;}
.claim-form input[type=text],.claim-form input[type=url],.claim-form input[type=email],.claim-form input[type=number],.claim-form textarea,.claim-form select{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:inherit;font-size:14px;box-sizing:border-box;}
.claim-form textarea{min-height:80px;resize:vertical;}
.claim-err{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:14px;}
/* D: poster & weekly */
.poster-btn{white-space:nowrap;}
.weekly-hero{padding:22px 0 6px;border-bottom:1px solid var(--line-soft);margin-bottom:18px;}
.weekly-hero h1{font-size:26px;margin:0 0 6px;}
.weekly-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:14px 0;}
.weekly-kpi{background:var(--bg-sub);border:1px solid var(--line-soft);border-radius:10px;padding:14px;}
.weekly-kpi b{display:block;font-size:24px;}
.weekly-kpi span{font-size:12px;color:var(--text-sub);}
.weekly-sec{margin-top:26px;}
.weekly-sec h2{font-size:18px;margin:0 0 10px;}
.weekly-nav{display:flex;justify-content:space-between;gap:10px;margin-top:28px;padding-top:16px;border-top:1px solid var(--line-soft);}
.weekly-badge{display:inline-block;border-radius:6px;padding:2px 8px;font-size:12px;background:var(--bg-sub);color:var(--text-sub);}
@media (max-width:640px){
  .cal-grid{grid-template-columns:repeat(10,1fr);gap:3px;}
  .claim-wrap{margin:20px auto;}
  .weekly-hero h1{font-size:22px;}
}


/* ===== v3 upgrade (2026-11-06): notice / compare / archive / safety / owner / compat ===== */
.notice-bar{display:flex;gap:10px;align-items:flex-start;background:var(--warn-bg);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin:0 0 14px;}
.notice-bar .notice-tag{flex:none;font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap;}
.notice-bar .notice-text{white-space:pre-wrap;word-break:break-word;line-height:1.6;}
.badge-notice{display:inline-flex;align-items:center;gap:3px;font-size:11px;padding:1px 7px;border-radius:999px;background:var(--accent-weak);color:var(--accent);}
.badge-archived{display:inline-flex;font-size:11px;padding:1px 7px;border-radius:999px;background:var(--bg-sub);color:var(--text-dim);}
.srv-card{position:relative;}
.cmp-check{position:static;margin-left:auto;z-index:2;display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text-sub);cursor:pointer;white-space:nowrap;}
.cmp-check.on{border-color:var(--accent);color:var(--accent);background:var(--accent-weak);}
.cmp-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:70;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--sh-sm);font-size:13px;}
.cmp-bar b{color:var(--accent);}
.cmp-bar .btn{padding:6px 14px;}
.cmp-mask{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px;}
.cmp-panel{width:min(100%,1040px);max-height:86vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;}
.cmp-panel h3{margin:0 0 12px;font-size:17px;}
.cmp-scroll{overflow-x:auto;}
.cmp-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px;}
.cmp-table th,.cmp-table td{border-bottom:1px solid var(--line-soft);padding:9px 10px;text-align:left;vertical-align:top;}
.cmp-table th{color:var(--text-sub);font-weight:600;white-space:nowrap;}
.cmp-table thead th:first-child{width:110px;}
.safety-tip ul{margin:8px 0 0;padding-left:20px;line-height:1.8;}
.safety-tip li+li{margin-top:2px;}
.owner-dash{margin-top:22px;border-top:1px solid var(--line-soft);padding-top:18px;}
.owner-dash h3{font-size:16px;margin:0 0 4px;}
.owner-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px;margin-top:12px;}
.owner-kpi{background:var(--bg-sub);border:1px solid var(--line-soft);border-radius:10px;padding:12px;}
.owner-kpi b{display:block;font-size:20px;}
.owner-kpi span{font-size:11px;color:var(--text-sub);}
.owner-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.compat-table td,.compat-table th{font-size:13px;}
.archive-banner{background:var(--warn-bg);border:1px solid var(--line);border-left:3px solid var(--warn-line);border-radius:10px;padding:12px 14px;margin:0 0 14px;}
.archive-banner b{display:block;margin-bottom:4px;}
@media (max-width:640px){
  .cmp-bar{left:12px;right:12px;bottom:12px;transform:none;max-width:none;border-radius:12px;flex-wrap:wrap;justify-content:center;}
  .cmp-panel{padding:14px;max-height:92vh;}
  .notice-bar{flex-direction:column;gap:4px;}
  .owner-kpis{grid-template-columns:repeat(2,1fr);}
}


/* ===== 社区弹窗：改为右下角悬浮按钮（FAB），点击才展开二维码，绝不遮挡内容 ===== */
.community-fab-wrap{position:fixed;right:16px;bottom:76px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
.community-fab{display:inline-flex;align-items:center;gap:7px;background:var(--surface,#fff);border:1px solid var(--line,#e6e6ec);box-shadow:0 14px 40px -14px rgba(17,17,26,.35);border-radius:980px;min-height:44px;padding:0 16px;font:inherit;font-size:13.5px;font-weight:560;color:var(--text,#1d1d1f);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s;}
.community-fab:hover{transform:translateY(-1px);box-shadow:0 20px 56px -18px rgba(17,17,26,.45);}
.community-fab__icon{font-size:16px;line-height:1;}
.community-popup{display:none;position:absolute;right:0;bottom:54px;width:280px;max-width:86vw;background:var(--surface,#fff);border:1px solid var(--line,#e6e6ec);border-radius:var(--r,16px);box-shadow:0 14px 40px -14px rgba(17,17,26,.35);overflow:hidden;animation:cpRise .2s cubic-bezier(.4,0,.2,1) both;}
.community-popup.is-open{display:block;}
@keyframes cpRise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.community-popup__card{width:100%;}
.community-popup__head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;font-weight:700;font-size:15px;color:var(--text,#1d1d1f);border-bottom:1px solid var(--line-soft,#f0f0f4);}
.community-popup__close{flex:none;width:28px;height:28px;margin:-2px -2px -2px 0;border:none;background:transparent;font-size:20px;line-height:1;color:var(--text-dim,#86868b);cursor:pointer;border-radius:8px;transition:background .15s,color .15s;}
.community-popup__close:hover{background:var(--bg-sub,#f5f5f7);color:var(--text,#1d1d1f);}
.community-popup__img{display:block;width:100%;height:auto;}
.community-popup__desc{padding:10px 14px 14px;margin:0;font-size:13px;line-height:1.6;color:var(--text-sub,#6e6e73);text-align:center;}
@media (max-width:640px){ .community-fab-wrap{right:10px;bottom:70px;} .community-popup{width:250px;} }


/* ===== 服务器详情页：两栏布局（左主内容 / 右粘性侧栏） ===== */
.detail-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start;margin-top:18px;}
.detail-main{min-width:0;}
.detail-main > section{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-sm);padding:clamp(20px,3vw,28px);margin:0 0 16px;
}
.detail-main > section:first-child{margin-top:0;}
.detail-main > section > :first-child{margin-top:0;}
.detail-main > section > :last-child{margin-bottom:0;}
.detail-aside{position:sticky;top:calc(var(--nav-h) + 14px);display:flex;flex-direction:column;gap:14px;min-width:0;}
.detail-aside .addr-box{padding:16px 18px;}
.detail-aside .aside-actions{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-sm);padding:16px 18px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;
}
.detail-aside .aside-actions .vote-btn{flex:1 1 100%;min-height:44px;}
.detail-aside .aside-actions .act-btn{flex:1 1 auto;min-height:40px;justify-content:center;}
.detail-aside .aside-actions .vote-n{flex:1 1 100%;text-align:center;margin-top:2px;}
.detail-aside .aside-safety{margin:0;}
@media (max-width:900px){
  .detail-cols{grid-template-columns:1fr;gap:16px;}
  .detail-aside{position:static;order:-1;}
}

/* ===== 首页筛选：标签列加宽防换行、行距与 chips 呼吸感 ===== */
.f-row{padding:9px 0;}
.f-k{flex:0 0 62px;white-space:nowrap;font-weight:560;color:var(--text-sub);}
.f-chips{gap:8px;row-gap:8px;}
.chip{padding:6px 13px;min-height:34px;line-height:1.4;}
.f-search input,.f-btn{border-radius:12px;}

/* ===== 反诈科普馆 antiscam（补全：此前缺失导致整页无样式） ===== */
.asc-wrap{max-width:920px;margin:0 auto;padding:0 16px 40px;}
.asc-hero{text-align:center;padding:clamp(36px,7vw,60px) 0 clamp(20px,4vw,32px);}
.asc-hero h1{font-size:clamp(28px,6vw,42px);font-weight:700;letter-spacing:-.02em;margin:0 0 12px;text-shadow:0 1px 18px rgba(255,255,255,.5);}
.asc-sub{font-size:clamp(15px,2vw,17px);color:var(--text-sub);max-width:34em;margin:0 auto;line-height:1.7;text-shadow:0 1px 10px rgba(255,255,255,.5);}
.asc-stat{display:inline-flex;align-items:baseline;gap:6px;margin-top:18px;padding:10px 20px;border-radius:999px;background:var(--bg-sub);border:1px solid var(--card-bd);}
.asc-stat b{font-size:24px;font-weight:700;color:var(--accent);}
.asc-stat span{font-size:15px;color:var(--text);}
.asc-stat i{font-style:normal;font-size:12.5px;color:var(--text-dim);margin-left:4px;}
.asc-top{margin:26px 0;}
.asc-top h2,.asc-card-grid h2,.asc-steps h2,.asc-check h2,.asc-cta h2{font-size:clamp(18px,3vw,22px);font-weight:700;margin:0 0 14px;}
.asc-top-row{display:flex;flex-wrap:wrap;gap:10px;}
.asc-top-cell{flex:1 1 140px;background:var(--card);border:1px solid var(--card-bd);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;}
.asc-top-cell span{font-size:13px;color:var(--text-sub);}
.asc-top-cell b{font-size:18px;font-weight:700;color:var(--text);}
.asc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;}
.asc-card{background:var(--card);border:1px solid var(--card-bd);border-radius:16px;padding:18px 18px 20px;transition:transform .15s ease,box-shadow .15s ease;}
.asc-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.asc-card h3{font-size:16px;font-weight:700;margin:0 0 8px;color:var(--text);}
.asc-card p{font-size:14px;line-height:1.7;color:var(--text-sub);margin:0;}
.asc-steps{margin:30px 0;}
.asc-step-list{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:10px;counter-reset:ascs;}
.asc-step-list li{position:relative;padding:14px 16px 14px 52px;background:var(--card);border:1px solid var(--card-bd);border-radius:12px;font-size:14.5px;line-height:1.7;color:var(--text-sub);}
.asc-step-list li b{color:var(--text);}
.asc-step-list li::before{counter-increment:ascs;content:counter(ascs);position:absolute;left:14px;top:14px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.asc-check{margin:30px 0;}
.asc-check-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;}
.asc-check-list li{background:var(--card);border:1px solid var(--card-bd);border-radius:10px;padding:10px 12px;}
.asc-check-list label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-sub);cursor:pointer;}
.asc-check-result{margin-top:12px;padding:12px 14px;border-radius:10px;background:rgba(255,159,10,.12);color:var(--warn-line);font-size:14px;font-weight:600;}
.asc-cta{margin:30px 0;text-align:center;background:linear-gradient(135deg,var(--accent-weak),var(--bg-sub));border:1px solid var(--card-bd);border-radius:16px;padding:24px 20px;}
.asc-cta p{font-size:14.5px;color:var(--text-sub);line-height:1.7;max-width:40em;margin:0 auto 16px;}
.asc-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 28px;border-radius:980px;background:var(--accent);color:#fff;font-size:15px;font-weight:600;text-decoration:none;transition:opacity .15s ease;}
.asc-btn:hover{opacity:.9;}
.asc-foot{margin-top:24px;font-size:12.5px;line-height:1.7;}
@media(max-width:640px){.asc-cards{grid-template-columns:1fr;}.asc-check-list{grid-template-columns:1fr;}}
