:root{
  --bg:#f2f4f7;
  --card:#ffffff;
  --card2:#f5f7fa;
  --line:#e5e8ee;
  --txt:#1b2432;
  --dim:#7d8898;
  --accent:#15a34a;
  --accent-soft:#e8f7ee;
  --accent2:#2563eb;
  --warn:#c2710c;
  --red:#dc2626;
  --radius:14px;
  --shadow:0 1px 2px rgba(16,24,40,.04), 0 4px 12px rgba(16,24,40,.05);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  color-scheme:light;
  background:var(--bg); color:var(--txt);
  font:15px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  /* 2026-09-19 超哥：「页脚还可以再靠下一点，贴着导航」。
     原来是写死 100px，比导航栏实际高度（70px）多出 30px，页脚就悬在导航上方一截。
     改成跟导航栏等高 + 刘海屏安全区，页脚底边正好落在导航顶边。
     ⚠️ 改这里要跟 .tabbar 的高度（padding 8+7 + 图标 30 + 间距 3 + 文字 ~21 + 边框 1）对上。 */
  padding-bottom:calc(70px + env(safe-area-inset-bottom));
  /* 2026-09-19 超哥圈了社区空页的页脚：内容太少时页脚会浮在半个屏幕中间。
     改成 body 撑满视口 + main 占满剩余高度，页脚自然就被压到最底下（内容多的页面看不出变化）。
     ⚠️ 100dvh 是给手机地址栏伸缩用的，旧内核不认第一行就退回 100vh。 */
  min-height:100vh;
  min-height:100dvh;
  display:flex;flex-direction:column;
  align-items:stretch;
}
/* ⚠️ 必须写 width:100%：body 变 flex 之后，`margin:0 auto` 会盖过 align-self:stretch，
   让 main 和 footer 收缩成「内容宽 + 居中」，左边距会从 14 变成 55（2026-09-19 踩到过）。 */
main.wrap{flex:1 1 auto;width:100%}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.link{color:var(--accent2);font-weight:500}

/* 顶栏 */
.topbar{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:11px 14px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:9px}
.logo{
  width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-weight:800;
  background:linear-gradient(135deg,#22c55e,#0ea5e9);color:#fff;font-size:18px;
}
.brand-txt{display:flex;flex-direction:column;line-height:1.15}
.brand-txt b{font-size:17px;letter-spacing:.5px;color:#111827}
.brand-txt i{font-size:11px;color:var(--dim);font-style:normal}
.avatar{
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:15.5px;
  background:var(--accent-soft);border:1px solid #cdebd8;color:#15803d;font-weight:600;
}
.btn-mini{
  font-size:14.5px;padding:5px 14px;border-radius:20px;background:var(--accent);color:#fff;font-weight:600;
}

/* 布局 */
.wrap{max-width:720px;margin:0 auto;padding:12px 12px 20px}
.foot{
  max-width:720px;margin:0 auto;padding:8px 14px 14px;color:#a2abb8;font-size:12.5px;
  /* 2026-09-19 超哥：「"2026 赛季"前面不要空那么多啊…后面的文字也挨着写」→『建队，合作，留言，另起一行』
     —— 两行：上行站点+赛季，下行建队/合作留言。别用 flex+space-between（会撑到两头）。 */
  line-height:1.8;
  width:100%;   /* 同 main：不加会被 margin:auto 挤成收缩居中 */
}
.sec{margin:18px 0 9px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.sec h2{font-size:17.5px;margin:0;display:flex;align-items:center;gap:7px;color:#111827}
.sec h2:before{content:"";width:3px;height:15px;border-radius:2px;background:var(--accent)}
/* 段落标题右侧的入口链接：做成醒目的胶囊（超哥 2026-09-17：「榜单的链接再显目一点」） */
.sec a,.sec .vbtn{
  font-size:14px;color:#0f7a41;font-weight:700;background:var(--accent-soft);
  border:1px solid #bfe6cd;border-radius:999px;padding:5px 12px;line-height:1;
  white-space:nowrap;display:inline-block;
}
.sec a:active,.sec .vbtn:active{background:#d8f0e1}
.sec-acts{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.sec .vbtn{font-family:inherit;cursor:pointer}
.vbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}

/* 卡片 */
.card{
  display:block;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px;margin-bottom:10px;box-shadow:var(--shadow);
}
a.card{display:block;color:inherit}
.card.tight{padding:12px 13px}
.card h3{margin:0 0 6px;font-size:17px;line-height:1.45}
.muted{color:var(--dim);font-size:13.5px}
.meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--dim);font-size:13px;margin-top:6px}
.tag{
  display:inline-block;font-size:12px;padding:2px 9px;border-radius:20px;
  background:var(--card2);border:1px solid var(--line);color:#66707f;
}
.tag.hot{background:var(--accent-soft);border-color:#bfe6cd;color:#15803d}
/* 「置顶」角标（2026-09-19 超哥要求）：放在资讯标题前面。
   分类标签绿=分类、这个橙=置顶，两套颜色分开，一眼能分清。
   配色沿用站上已有的警示色（同 .tag.draft） */
.pin{display:inline-block;vertical-align:1px;margin-right:6px;padding:0 6px;border-radius:6px;
  font-size:11px;font-weight:700;line-height:1.55;background:#fff6e6;border:1px solid #f5dfb0;color:#b45309}
.tag.draft{background:#fff6e6;border-color:#f5dfb0;color:#b45309}

/* 列表行 */
.list .row{
  display:flex;gap:11px;align-items:flex-start;padding:13px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:9px;box-shadow:var(--shadow);
}
.row .num{
  min-width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:700;
  background:var(--card2);font-size:15.5px;color:var(--dim);
}
.row .grow{flex:1;min-width:0}
.row .t{font-size:16px;line-height:1.5;margin-bottom:4px;font-weight:600;color:#111827}
.row .t.multi{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 比赛卡 */
.match{display:flex;align-items:center;gap:8px;padding:12px 8px}
.match .side{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}
.match .side .nm{font-size:15px;text-align:center;line-height:1.3;word-break:break-all;font-weight:500}
.match .badge{
  width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:13.5px;
  font-weight:800;color:#fff;box-shadow:0 2px 6px rgba(16,24,40,.14);
}
.match .score{
  font-size:24.5px;font-weight:800;letter-spacing:1px;min-width:76px;text-align:center;
  font-variant-numeric:tabular-nums;color:#111827;white-space:nowrap;
}
.match .score span{white-space:nowrap}
.match .score small{display:block;font-size:12px;font-weight:400;color:var(--dim);letter-spacing:0}
.vs{color:var(--dim);font-size:15px;font-weight:600;min-width:76px;text-align:center}
.kickoff{text-align:center;font-size:13px;color:var(--dim);padding:2px 12px 8px}

/* 表单 */
label{display:block;font-size:14px;color:#66707f;margin:13px 0 5px;font-weight:500}
input,select,textarea{
  width:100%;background:var(--card2);border:1px solid var(--line);border-radius:10px;
  color:var(--txt);padding:11px 12px;font-size:17px;font-family:inherit;outline:none;
}
input::placeholder,textarea::placeholder{color:#aab3c0}
input:focus,select:focus,textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(21,163,74,.1)}
textarea{min-height:220px;line-height:1.75;resize:vertical}
.row2{display:flex;gap:10px}
.row2>div{flex:1}
.btn{
  display:block;width:100%;text-align:center;padding:13px;border-radius:12px;border:0;cursor:pointer;
  background:var(--accent);color:#fff;font-weight:700;font-size:17px;margin-top:16px;font-family:inherit;
  box-shadow:0 2px 8px rgba(21,163,74,.22);
}
.btn.ghost{background:var(--card);color:var(--txt);border:1px solid var(--line);font-weight:500;box-shadow:none}
.btn.small{padding:9px;font-size:15px;margin-top:10px}
.btn.danger{background:#fdeceb;color:#c0392b;border:1px solid #f5cdc9;font-weight:500;box-shadow:none}
.inline{display:inline-block;width:auto;padding:8px 16px;margin:0}

/* 评分 */
.rate-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.rate-row:last-child{border-bottom:0}
.pinfo{flex:1;min-width:0}
.pinfo b{font-size:15.5px;font-weight:600}
.jersey{
  display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 5px;border-radius:7px;
  background:var(--card2);font-size:13px;color:#66707f;margin-right:7px;font-weight:700;
  border:1px solid var(--line);
}
.score-badge{
  font-size:17px;font-weight:800;min-width:40px;text-align:center;font-variant-numeric:tabular-nums;
  color:#8a94a6;
}
.score-badge.good{color:#118c40}
.score-badge.mid{color:var(--warn)}
.score-badge.bad{color:var(--red)}
.stars{display:grid;grid-template-columns:repeat(5,26px);gap:4px;flex:none}
.star{
  width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:#fff;
  color:#98a2b0;font-size:12.5px;display:grid;place-items:center;cursor:pointer;font-weight:600;
}
.star.on{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 6px rgba(21,163,74,.25)}

/* 评论 */
.cmt{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.cmt:last-child{border-bottom:0}
.cmt .av{
  width:30px;height:30px;border-radius:50%;flex:0 0 30px;display:grid;place-items:center;
  background:var(--accent-soft);font-size:14.5px;color:#15803d;font-weight:600;
}
.cmt .body{flex:1;min-width:0}
.cmt .body b{font-size:14.5px}
.cmt .body p{margin:3px 0 0;font-size:15.5px;line-height:1.65;word-break:break-word;color:#2b3442}
.comment-box{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
.comment-box textarea{min-height:44px;height:44px;padding:11px 12px;font-size:15.5px;background:#fff}

/* 球队 */
.team-head{display:flex;align-items:center;gap:13px;padding:16px;border-radius:var(--radius);margin-bottom:12px;border:1px solid var(--line);box-shadow:var(--shadow)}
.team-head .badge{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;font-size:24.5px;font-weight:800;color:#fff;box-shadow:0 3px 10px rgba(16,24,40,.16)}
.team-head h1{margin:0;font-size:21.5px;color:#111827}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.stat-grid div{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:11px 4px;text-align:center;box-shadow:var(--shadow)}
.stat-grid b{display:block;font-size:20px;font-variant-numeric:tabular-nums;color:#111827}
.stat-grid span{font-size:12.5px;color:var(--dim)}

.chips{display:flex;gap:7px;overflow-x:auto;padding:4px 0 8px;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chip{
  white-space:nowrap;padding:6px 14px;border-radius:20px;background:#fff;border:1px solid var(--line);
  font-size:14.5px;color:#66707f;
}
.chip.on{background:var(--accent-soft);border-color:#bfe6cd;color:#15803d;font-weight:600}

.seg{display:flex;gap:0;background:#fff;border:1px solid var(--line);border-radius:11px;padding:3px;margin-bottom:12px}
.seg a{flex:1;text-align:center;padding:8px;font-size:15px;border-radius:8px;color:#66707f}
.seg a.on{background:var(--accent-soft);color:#15803d;font-weight:600}

.empty{text-align:center;color:var(--dim);padding:40px 20px;font-size:15px}
.article{font-size:18px;line-height:1.9;color:#2b3442}
.article h2,.article h3,.article h4{margin:22px 0 8px;font-size:18.5px;color:#111827}
.article p{margin:0 0 15px}
.article strong{color:#111827;font-weight:700}
.article ul{margin:0 0 15px;padding-left:22px}
.article li{margin:6px 0;line-height:1.75}
.notice{
  background:#eef4ff;border:1px solid #d5e3fb;color:#334e7a;
  padding:12px 14px;border-radius:11px;font-size:14.5px;margin:12px 0;line-height:1.7;
}
.notice a{color:var(--accent2);font-weight:600}

/* 注册验证码 */
.caprow{display:flex;gap:10px;align-items:center}
.caprow input{flex:1;min-width:0;letter-spacing:2px;text-transform:uppercase}
.caprow img{flex:none;display:block;width:132px;height:46px;border:1px solid var(--line);
  border-radius:10px;background:#f6f8fb;cursor:pointer}
.notice.warn{background:#fff8ec;border-color:#f6e2bb;color:#8a5a10}
.notice.err{background:#fdeceb;border-color:#f5cdc9;color:#b42318}
/* 提示条里的行动按钮：白底胶囊 + 蓝描边，跟提示条本身的浅蓝配色统一（别用绿色实心大按钮，太突兀） */
.notice-btn{
  flex:0 0 auto;background:#fff;border:1px solid #d5e3fb;color:var(--accent2);
  font-weight:600;font-size:14px;padding:6px 14px;border-radius:20px;white-space:nowrap;
}
.notice-btn:active{background:#f2f7ff;border-color:#bcd4f8}
.event-line{display:flex;align-items:center;gap:9px;padding:9px 0;font-size:15px;border-bottom:1px solid var(--line)}
.event-line:last-child{border-bottom:0}
.ev-icon{width:22px;text-align:center}

/* 底部 tab */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;
  background:#fff;border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 12px rgba(16,24,40,.06);
}
.tabbar a{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 7px;
  font-size:13px;color:#8f99a8;position:relative;
}
.tabbar a i{
  display:grid;place-items:center;width:46px;height:30px;border-radius:11px;
  font-style:normal;line-height:1;transition:background .15s, color .15s;
}
.tabbar a i svg{width:28px;height:28px;display:block}
.tabbar a.on{color:var(--accent);font-weight:700}
.tabbar a.on i{background:var(--accent-soft)}
.tabbar a:active i{background:var(--accent-soft)}
/* 中间的主队按钮：与其他 tab 齐平，不做凸起 */
.tabbar a.tab-center{flex:1;padding:8px 0 7px;gap:3px}
.tabbar a.tab-center .crest{
  flex:0 0 auto;display:grid;place-items:center;
  width:46px;height:30px;border-radius:11px;
  transition:background .15s;
}
.tabbar a.tab-center .crest img{
  width:27px;height:27px;border-radius:50%;object-fit:contain;
  background:#fff;border:1px solid var(--line);padding:1px;
}
.tabbar a.tab-center .crest svg{width:26px;height:26px;display:block;color:currentColor}
.tabbar a.tab-center .crest .mini-badge{
  width:27px;height:27px;border-radius:50%;font-size:13.5px;
  border:0;padding:0;
}
.tabbar a.tab-center.on .crest{background:var(--accent-soft)}
@media(min-width:721px){ .tabbar{max-width:720px;left:50%;transform:translateX(-50%);border-radius:16px 16px 0 0} }

/* 球员能力卡 */
.pcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow);margin-bottom:12px}
.pcard-top{display:flex;align-items:flex-start;gap:14px}
.pcard h1{margin:0;line-height:1.25;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
/* 球员页大标题上的停赛/伤病：同样是小字标注，贴在名字右上角（不要底色块） */
.pcard h1 .app-tag{font-size:11.5px}
.ovr{width:66px;height:66px;flex:0 0 66px;border-radius:16px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;background:var(--accent-soft);border:1px solid #bfe6cd}
.pcard-side{display:flex;flex-direction:column;align-items:center;gap:7px;flex:0 0 auto}
.pcard-top{position:relative}
.footcard{position:absolute;right:74px;bottom:-10px;z-index:2;width:54px;height:54px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:none;border:0}
.footcard svg{width:32px;height:auto;display:block}
.footcard .f-l,.footcard .f-r{color:#a8b6ad}
.footcard.right .f-r{color:#15803d}
.footcard.left .f-l{color:#15803d}
.footcard.both .f-l,.footcard.both .f-r{color:#15803d}
.footcard span{font-size:12px;color:var(--dim);font-weight:400;line-height:1.15}
.ovr b{font-size:29px;line-height:1.05;color:#15803d;font-variant-numeric:tabular-nums}
.ovr span{font-size:11px;color:#4d7c5f;margin-top:2px}
.badge-lg{width:48px;height:48px;flex:0 0 48px;border-radius:14px;display:grid;place-items:center;
  color:#fff;font-weight:800;font-size:18px;box-shadow:0 3px 10px rgba(16,24,40,.16)}
.attr-list{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px;margin-top:14px;
  border-top:1px solid var(--line);padding-top:13px}
.attr-item{display:flex;align-items:center;gap:8px}
.attr-item .k{font-size:14px;color:var(--dim);flex:0 0 38px;white-space:nowrap}
.attr-bar{flex:1;height:7px;border-radius:4px;background:#eef1f6;overflow:hidden}
.attr-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#34d27a,#15a34a)}
.attr-item .v{font-size:15px;font-weight:700;flex:0 0 30px;text-align:right;
  font-variant-numeric:tabular-nums;color:#111827}
/* 该位置不计分的维度（如门将的射门）：整行变灰、进度条去绿，标签后缀 * */
.attr-item.off .k{color:#b3bcc8}
.attr-item.off .attr-bar i{background:linear-gradient(90deg,#d5dbe4,#bcc5d1)}
.attr-item.off .v{color:#9aa4b2;font-weight:600}
.attr-form{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.attr-form label{margin-top:0}
.attr-form select{padding:9px 8px;font-size:15.5px}

/* 队徽图片 */
img.badge{object-fit:contain;background:#fff;border:1px solid var(--line);padding:2px;box-sizing:border-box}
input[type=file]{padding:9px 10px;font-size:14.5px;background:#fff}

/* 积分榜 */
.rank-table{width:100%;border-collapse:collapse;font-size:14.5px}
.rank-table th{font-size:12.5px;color:var(--dim);font-weight:500;padding:7px 2px;
  text-align:center;border-bottom:1px solid var(--line);white-space:nowrap}
.rank-table td{padding:9px 2px;text-align:center;border-bottom:1px solid var(--line);
  font-variant-numeric:tabular-nums}
.rank-table tr:last-child td{border-bottom:0}
.rank-table .tname{display:flex;align-items:center;gap:6px;min-width:0;max-width:118px}
.rank-table .tname span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-table img,.mini-badge{width:22px;height:22px;flex:0 0 22px;border-radius:6px;
  object-fit:contain;background:#fff;border:1px solid var(--line);padding:1px}
.mini-badge{display:grid;place-items:center;color:#fff;font-weight:800;font-size:11px;
  border:0;padding:0}

/* ---- 全站可点的队名 / 球员名 ---- */
/* 卡片本身整块可点（跳到比赛/文章），里面的队名球员名也各自可点：
   用一层透明覆盖链接承担「整块点击」，名字链接用更高的 z-index 浮在它上面。 */
.card-rel{position:relative}
.card-rel .stretch{position:absolute;inset:0;z-index:1;border-radius:inherit}
a.tlink,a.plink{position:relative;z-index:2;color:inherit}
a.tlink:hover,a.plink:hover{color:var(--accent);text-decoration:underline}
.match .side .nm.tlink{display:block}
a.nm.tlink:hover{color:var(--accent)}
.rank-table a.tname:hover span,.event-line a.plink:hover,a.tlink:hover{color:var(--accent)}

/* ---- 评论：点赞 / 踩 / 回复 / 等级徽章（2026-09-17） ---- */
.cmt .body .who{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lv{font-size:12px;line-height:1.7;padding:0 7px;border-radius:999px;font-weight:700;
  background:#eef1f5;color:#7d8898;border:1px solid #e3e8ee}
.lv1{background:#e8f1ff;color:#2563eb;border-color:#cfe0fb}
.lv2{background:#e8f7ee;color:#0f7a41;border-color:#bfe6cd}
.lv3{background:#fff3e0;color:#b26a00;border-color:#f6dfb8}
.lv4{background:#f1ebff;color:#6d28d9;border-color:#e0d5fb}
.lv5{background:#fff4d6;color:#9a6b00;border-color:#f2dda1}
.cmt.sub{margin-left:30px;padding-left:12px;border-left:2px solid var(--line);
  background:#fbfcfe;border-radius:0 8px 8px 0}
.cact{display:flex;align-items:center;gap:16px;margin-top:6px}
.cv{background:transparent;border:0;box-shadow:none;margin:0;padding:2px 0;font-size:14px;
  color:var(--dim);display:inline-flex;align-items:center;gap:4px;font-family:inherit;cursor:pointer}
.cv:active{opacity:.6}
.cv.on{color:#0f7a41;font-weight:800}
.cv.on.dn-on{color:#c2710c}
.cv.reply{color:#2563eb}
#reply-hint{display:none;align-items:center;gap:6px;font-size:13.5px;color:#2563eb;
  background:#eef4ff;border:1px solid #d6e4ff;border-radius:8px;padding:5px 9px;margin-bottom:7px;
  cursor:pointer;width:100%}
#reply-hint.show{display:flex}
#toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:999;
  background:#0f7a41;color:#fff;font-size:14.5px;font-weight:600;padding:8px 16px;border-radius:999px;
  opacity:0;transition:opacity .25s;pointer-events:none;box-shadow:0 6px 18px rgba(15,122,65,.25)}
#toast.show{opacity:1}

/* 红黄牌小标签 */
.card-chip{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:700;
  padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:#f5f7fa;
  color:var(--dim);white-space:nowrap}

/* 积分 / 等级卡片（我的页面） */
.pts-hero{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pts-num{font-size:33.5px;font-weight:800;line-height:1;color:#0f7a41;font-variant-numeric:tabular-nums}
.pts-bar{flex:1;min-width:140px;height:8px;border-radius:999px;background:#eef1f5;overflow:hidden}
.pts-bar i{display:block;height:100%;background:linear-gradient(90deg,#22b45f,#0f7a41);border-radius:999px}
.pts-log{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.pts-log:last-child{border-bottom:0}
.pts-log .p{color:#0f7a41;font-weight:700;font-variant-numeric:tabular-nums}
.pts-rule{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:5px 0;color:#3f4a5a}
.pts-rule b{color:#0f7a41}

/* 评论输入行 + 图标对齐修正（2026-09-17） */
.cmt-row{display:flex;gap:8px;align-items:flex-end}
.cmt-row textarea{flex:1;min-width:0;min-height:44px;height:44px;padding:11px 12px;font-size:15.5px;background:#fff;resize:none}
/* 图标尺寸用 CSS 写死，不靠 svg 的 width/height 属性——
   超哥手机（微信内核）按属性尺寸渲染不出来，只剩数字，改 CSS 兜底（2026-09-17） */
.cv svg{display:block;width:15px;height:15px;flex:none}
.cv.down-btn svg{transform:rotate(180deg)}
/* 红黄牌用小卡片形状画，比 emoji 稳 */
.mc{display:inline-block;width:10px;height:13px;border-radius:2.5px;vertical-align:-2px;margin-right:3px}
.mc.y{background:linear-gradient(180deg,#ffd93b,#f0b90b);box-shadow:inset 0 0 0 1px #d9a800}
.mc.r{background:linear-gradient(180deg,#f06a6a,#d92f2f);box-shadow:inset 0 0 0 1px #b81f1f}
.card-chip.g{background:#fffbe8;border-color:#f0e0a8;color:#8a6100}
.card-chip.h{background:#fdecec;border-color:#f6c9c9;color:#b91c1c}

/* 赛程按日期分组的小标题（数据页） */
.day-head{display:flex;justify-content:space-between;align-items:center;margin:16px 2px 8px;font-size:14px;font-weight:700;color:#3f4a5a}
.day-head span{display:inline-flex;align-items:center;gap:7px}
.day-head span::before{content:'';width:3px;height:13px;border-radius:2px;background:var(--accent)}
.day-head i{font-style:normal;font-weight:500;color:var(--dim);font-size:13px}

.today-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:20px;font-size:12px;font-weight:700;color:#fff;background:var(--accent);vertical-align:1px}

/* 区块内部的小分类标题（已于 2026-09-17 弃用：超哥要求把「即将开赛」/「已完赛」
   提升成和「射手榜」一样的段落标题，改用 .sec h2） */

/* ---- 阵容：位置分组 + 号码在最前（号码块跨两行居中，2026-09-17 超哥要求）---- */
.pos-head{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:700;color:#111827;margin:16px 2px 8px}
.pos-head:before{content:"";width:3px;height:15px;border-radius:2px;background:var(--accent);flex:none}
.pos-head .muted{font-weight:400;font-size:13px}
.lineup{display:flex;align-items:center;gap:11px;padding:9px 2px;border-bottom:1px solid var(--line)}
.lineup:last-child{border-bottom:0}
.lnum{flex:0 0 46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:19px;font-weight:800;background:var(--card2);border:1px solid var(--line);color:#111827;font-variant-numeric:tabular-nums}
.lwho{flex:1;min-width:0}
.lwho .l1{display:flex;align-items:center;gap:6px;font-size:16.5px;font-weight:600;line-height:1.25;flex-wrap:wrap}
/* 名字整块不折行（原来会被挤成「王必 / 松」两行）；放不下时让后面的标签换行，
   名字自己只在极长时才省略 —— 2026-09-18 修「王必松那一栏变形」 */
.lwho .l1 .plink{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lwho .l2{font-size:13.5px;margin-top:3px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lwho .l2:empty{display:none}

/* ---- 赛后评分：主队 / 客队 分 tab（2026-09-17）---- */
/* 单行横滑药丸标签（直播吧那种，2026-09-17 超哥要求不要两行） */
.team-tabs{display:flex;gap:8px;margin:0 0 10px;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
.team-tabs::-webkit-scrollbar{display:none}
.team-tabs .tt{flex:none;padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--dim);font-size:14.5px;font-weight:600;cursor:pointer;font-family:inherit;line-height:1.2}
.team-tabs .tt span{display:none}
.team-tabs .tt.on{background:var(--accent-soft,#e9f6ef);border-color:var(--accent);color:var(--accent)}
/* ---- 赛后评分：号码在最前（跨两行居中）+ 按位置分组（2026-09-17）----
   ⚠️ 2026-09-18 试过「星级另起一行」，超哥否了（「还是原来的好看」）——保持原样：
   号码 / 名字+标签 / 评分 / 五颗星 同在一行。名字那列只有 95px，靠
   「停赛/伤病 = 名字右上角小字」+ 名字不换行 来避免挤变形。 ---- */
.side-head{font-size:14.5px;color:var(--dim);padding:2px 0 8px;border-bottom:1px solid var(--line)}
.rate2{padding:11px 0;border-bottom:1px solid var(--line)}
.rate2:last-child{border-bottom:0}
.rate2 .rtop{display:flex;align-items:center;gap:8px}
/* 号码块 46→44、星星的内边距去掉：各让出 2px，凑出名字列的空间（肉眼几乎看不出），
   给「3 字名字 + 替补出场」这种最长组合腾地方（2026-09-18 超哥要求标签再小一点） */
.rate2 .lnum{flex:0 0 44px;height:44px}
.rate2 .rscore{display:flex;flex-direction:column;align-items:center;gap:2px;flex:none;min-width:46px}
.rate2 .rcount{font-size:11px;color:var(--dim);white-space:nowrap;line-height:1.1}
.rate2 .stars{display:flex;gap:2px;flex:none}
.rate2 .star{width:auto;height:23px;border:0;background:none;box-shadow:none;border-radius:0;font-size:23px;line-height:23px;color:#d9dee5;padding:0;font-weight:400}
.rate2 .star.on{background:none;border:0;box-shadow:none;color:#f5b301}
/* 窄屏（≤389px，覆盖 360/375/384 的安卓与 iPhone）：整行一起收一档，
   保证「3 字名字 + 替补出场」在 360px 的屏幕上也能待在同一行 ——
   名字列在 390px 是 113px，到 360px 只剩 83px，不收就又会换行（2026-09-18） */
@media (max-width:389px){
  .rate2 .rtop{gap:6px}
  .rate2 .lnum{flex:0 0 38px;height:40px;font-size:17px}
  .rate2 .rscore{min-width:40px}
  .rate2 .star{font-size:20px;line-height:20px;height:20px}
  .lwho .l1{gap:5px}
  .app-tag.starter,.app-tag.sub,.app-tag.unused{font-size:10px;padding:1px 3px}
}
/* ---- 每行的「最佳球员」投票小按钮（2026-09-17：改版后补回入口）---- */
.mvpbtn{display:inline-block;font-size:11.5px;line-height:1.5;padding:1px 7px;margin-right:7px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--dim);cursor:pointer;white-space:nowrap;vertical-align:1px}
.mvpbtn.on{border-color:#f0b429;background:#fff8e6;color:#b3760a;font-weight:600}
/* ---- 进球与事件：主队 / 客队 分两列（2026-09-17 超哥要求）---- */
.ev-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ev-col{min-width:0}
.ev-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:13.5px;font-weight:600;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.ev-head .ev-tname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-line{display:flex;align-items:baseline;gap:4px;font-size:13px;padding:3px 0;line-height:1.45}
.ev-min{min-width:24px;color:var(--dim);font-variant-numeric:tabular-nums}
.ev-who{flex:1;min-width:0}
.ev-none{font-size:12.5px;color:var(--dim);padding:4px 0}
/* 进球与事件：两列之间的分隔线（列头已去掉） */
/* 两列时间轴：每个事件占一行，主队落左格、客队落右格（2026-09-17 超哥要求按时间顺序） */
.ev-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}
.ev-cell{display:flex;align-items:baseline;gap:4px;font-size:13px;padding:3px 0;min-height:23px;min-width:0}
.ev-cell:nth-child(even){border-left:1px solid var(--line);padding-left:10px}

/* 视频集锦（比赛页，2026-09-18）：16:9 自适应，B站嵌入和原生 <video> 共用一套壳 */
.card.video-card{padding:0;overflow:hidden}
.video-wrap{position:relative;width:100%;padding-top:56.25%;background:#000}
.video-wrap iframe,.video-wrap video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;object-fit:contain}
.video-wrap video{background:#000}
/* 伪全屏兜底：手机浏览器不给 iframe 全屏权限时（如 iOS Safari / 部分微信 WebView），
   把播放器容器撑满视口顶上（2026-09-18 超哥反馈「手机点全屏没反应」）。
   ⚠️ 不要在这里加 transform:rotate —— 旋转作用在跨域 iframe 上时各家 WebView 的重绘行为
   不可靠；超哥 2026-09-18 实测微信里旋转后画面侧着、看着像「没全屏」。
   竖屏下 16:9 本来就填不满，横幅过来看就是满屏（.vfs-hint 提示）。 */
.video-wrap.fs{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;padding-top:0;background:#000}
.card.video-card.fs-open{overflow:visible}

/* 全屏时显示在「全屏层里面」的退出按钮和提示 —— 放外面会被黑底盖住，人被困住（2026-09-18 踩过）。
   位置选底部正中：顶部容易和手机刘海 / 微信自带标题栏打架（超哥截图里右上角就看不见按钮），
   底部正中最好按、也最显眼。env(safe-area-inset-*) 躲开手势条。 */
.vfs-exit,.vfs-hint{display:none}
.video-wrap.fs .vfs-exit{
  display:block;position:absolute;left:50%;z-index:6;
  bottom:calc(22px + env(safe-area-inset-bottom, 0px));
  transform:translateX(-50%);
  font-family:inherit;font-size:15px;font-weight:700;line-height:1;
  padding:12px 22px;border-radius:999px;border:0;cursor:pointer;
  background:#fff;color:#111827;box-shadow:0 4px 18px rgba(0,0,0,.55);
  white-space:nowrap;
}
.video-wrap.fs .vfs-exit:active{background:#e5e8ee}
.video-wrap.fs .vfs-hint{
  display:block;position:absolute;left:0;right:0;z-index:6;
  bottom:calc(76px + env(safe-area-inset-bottom, 0px));
  text-align:center;font-size:13.5px;color:#c9d1d9;
}
@media (orientation:landscape){.video-wrap.fs .vfs-hint{display:none}}

/* 出场名单（比赛页标签 + 编辑页选择器，2026-09-18） */
.app-tag{display:inline-block;flex:0 0 auto;font-size:11.5px;line-height:1.65;padding:1px 7px;border-radius:20px;font-weight:700;white-space:nowrap}
.app-tag.starter{background:var(--accent-soft);border:1px solid #bfe6cd;color:#15803d}
.app-tag.sub{background:#eaf1fe;border:1px solid #cddffb;color:#1d4ed8}
.app-tag.unused{background:#f1f3f6;border:1px solid var(--line);color:#8b95a3}
/* 出场标签（首发 / 替补出场 / 未出场）比原来再小一档：11.5px→10.5px、左右内边距 7→4px。
   「替补出场」4 个字必须能跟 3 字名字并排在同一行（名字列只有 ~111px）——2026-09-18 超哥要求 */
.app-tag.starter,.app-tag.sub,.app-tag.unused{font-size:10.5px;line-height:1.5;padding:1px 4px}
/* 停赛 / 伤病（2026-09-18 超哥定稿）：**名字右上角的小字标注** ——
   不要小圆点、不要背景色块、不要描边，就是两个小字。 */
.app-tag.suspension,
.app-tag.injury{
  display:inline-block;flex:0 0 auto;
  background:none;border:0;border-radius:0;padding:0;
  font-size:10.5px;line-height:1;font-weight:600;
}
.app-tag.suspension{color:#b45309}
.app-tag.injury{color:#c0392b}
/* 名字行（比赛页评分名单 / 球员页大标题）里贴到名字的**右上角**：
   flex 行里 align-self:flex-start 会顶到行首，再微调 1px 让重心跟名字上沿齐；
   负 margin 抵消容器 gap，让它贴紧名字（标注要挨着名字才不显飘） */
.rate2 .l1 .app-tag.suspension,.rate2 .l1 .app-tag.injury,
.pcard h1 .app-tag.suspension,.pcard h1 .app-tag.injury{
  align-self:flex-start;margin:-1px 0 0 -3px;
}
.lup-row{display:flex;align-items:center;gap:9px;padding:6px 0;border-bottom:1px solid var(--line)}
.lup-row:last-of-type{border-bottom:0}
.lup-no{flex:0 0 30px;text-align:center;font-size:14px;font-weight:700;color:#4b5563;font-variant-numeric:tabular-nums}
.lup-name{flex:1;min-width:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lup-seg{display:flex;flex:0 0 auto;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--card)}
.lup-opt{position:relative;display:block;margin:0}
.lup-opt input{position:absolute;opacity:0;width:0;height:0;margin:0}
.lup-opt span{display:block;padding:6px 10px;font-size:13px;font-weight:600;color:var(--dim);border-left:1px solid var(--line);background:var(--card);white-space:nowrap}
.lup-opt:first-child span{border-left:0}
.lup-opt input:checked + span{background:#9aa3af;color:#fff}
.lup-opt input[value="starter"]:checked + span{background:var(--accent)}
.lup-opt input[value="sub"]:checked + span{background:var(--accent2)}

/* 首页比赛卡片异步加载的「到头 / 到底」提示（2026-09-19） */
.feed-tip{text-align:center;font-size:13px;color:#9aa3af;padding:12px 0 2px}

/* 比赛时间线上的「现在」（2026-09-19 超哥要的）：线上方是已完赛、下方是即将开赛。
   首页那条是固定元素 #feedNow，数据页那条由服务端 _mark_now() 插在正确的日期组中间。 */
.feed-now{display:flex;align-items:center;gap:10px;margin:14px 2px 8px;font-size:13px;font-weight:700;color:var(--accent)}
.feed-now::before,.feed-now::after{content:"";flex:1;height:1px;background:var(--line)}

/* 异步加载的反馈（2026-09-19 超哥：「感觉不到就加载了，体验并不好」）：
   ① 加载指示器 fixed 定位，不占文档流 —— 出现/消失都不改变 scrollHeight，
      不会干扰往顶上插内容时的滚动补偿；
   ② 新插入的卡片淡入一下，让人看见「内容出来了」。 */
.feed-spin{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));
  transform:translateX(-50%) translateY(8px);
  display:flex;align-items:center;gap:8px;padding:8px 15px;border-radius:999px;
  background:#fff;border:1px solid var(--line);box-shadow:0 4px 16px rgba(17,24,39,.12);
  font-size:13px;font-weight:600;color:#3f4a5a;opacity:0;pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;z-index:70}
.feed-spin.on{opacity:1;transform:translateX(-50%) translateY(0)}
.feed-spin i{width:14px;height:14px;border-radius:50%;border:2px solid #d9ece1;border-top-color:var(--accent);
  animation:feedspin .68s linear infinite}
@keyframes feedspin{to{transform:rotate(360deg)}}
/* 新加载出来的卡片：从下方浮起 + 先带一层浅绿底，再从绿底褪回白色 ——
   超哥 2026-09-19 嫌原来 0.3s 的淡入「看不出来」，要求「时间再长一点、效果再明显一点，
   让我能明显感觉到哪些是新加载的内容」。多张一起进来时由 JS 按 60ms 递增设 animation-delay，
   一张接一张冒出来，比「唰」地全亮好认得多。 */
@keyframes feedin{
  0%{opacity:0;transform:translateY(20px) scale(.98);background:#cdeedb;border-color:#9adcb8}
  40%{opacity:1;background:#cdeedb;border-color:#9adcb8}
  100%{opacity:1;transform:none;background:var(--card);border-color:var(--line)}
}
.feed-in{animation:feedin 1s cubic-bezier(.22,.85,.3,1) both}
/* 往前翻时提示挪到视口顶部（用户正盯着列表头上看），往后翻留在底部；
   顺便让两个方向各自「浮入」：底部从下往上、顶部从上往下，比直接淡入更像在加载 */
.feed-spin.top{top:calc(10px + env(safe-area-inset-top,0px));bottom:auto;transform:translateX(-50%) translateY(-8px)}
.feed-spin.top.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* 社区（2026-09-19 加）：帖子正文保留换行、正文图自适应、列表底部翻页条 */
.post-body{white-space:pre-wrap;line-height:1.75;font-size:15.5px;word-break:break-word}
.post-imgs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.post-imgs img{max-width:100%;border-radius:10px;display:block}
.post-imgs img.thumb{width:78px;height:78px;object-fit:cover;border-radius:9px;cursor:pointer}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 2px}
.pager a{font-size:14px;color:var(--accent)}


/* 社区置顶标记（2026-09-19）：纯小字贴标题后面，不要色块/圆点 —— 超哥的老规矩 */
.pin-tag{font-size:11.5px;font-weight:500;color:var(--accent);margin-left:6px;letter-spacing:.3px}


/* 回帖配图（2026-09-19）：缩略图一行排开，点开看大图 */
.cmt-imgs{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0 2px}
.cmt-imgs img{width:88px;height:88px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;background:#fff}


/* 我的消息（2026-09-19）：一行一条，点进去是被回复/被顶的那个页面 */
.msg-line{display:flex;align-items:flex-start;gap:9px;padding:10px 2px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.msg-line:last-child{border-bottom:0}
.msg-ico{font-size:15px;line-height:1.5;flex:0 0 18px;text-align:center}
.msg-main{flex:1;min-width:0}
.msg-tx{display:block;font-size:14.5px;line-height:1.5}
.msg-sn{display:block;font-size:13px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-when{font-size:12.5px;flex:0 0 auto;padding-top:1px}

/* 全场最佳投票 */
/* 一行三件：球队下拉 / 球员下拉 / 投票按钮。
   ⚠️ 这里的下拉是【自绘】的（.cd/.cd-btn/.cd-pop/.cd-opt），不再用原生 <select> 的外观：
   2026-09-19 超哥要求「重绘」——原生 select 展开后的选项列表由系统绘制，行高/字号 CSS 完全管不到。
   真 <select> 仍在 DOM 里（.cd-src，display:none）只当数据源；mvpTeamChange()/回看还原/投票
   读的还是 select.value，所以那三处逻辑一行没动。
   尺寸：控件高 28px、选项行高 28px；选框/选项字号 13.5px（投票按钮是 12.5px+600 加粗，
   同样 12.5px 的常规体看着会小一号，所以选框取 13.5px 来追平视觉——2026-09-19 超哥反馈）。 */
.mvp-pick{display:flex;gap:8px;align-items:center}
.cd{position:relative;flex:1 1 0;min-width:0}
.cd-btn{
  display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;
  height:28px;padding:0 8px;border:1px solid #e2e7ee;border-radius:8px;background:#fff;
  font-size:13.5px;font-family:inherit;color:var(--txt);cursor:pointer;text-align:left;
}
.cd-btn .cd-txt{flex:1;min-width:0;display:flex;align-items:center;gap:5px}
/* 号码固定占两位宽、数字右对齐 —— 一位数和两位数都占同样空间，球员名起始位置就齐了。
   ⚠️ 纯文本做不到：1 个字符和 2 个字符的宽度没法凭空补齐，必须把号码拆成独立元素（JS fill()）。
   tabular-nums 保证「1」和「0」等宽，2ch 正好是两位数字的宽度。 */
.pno{flex:0 0 auto;width:2ch;text-align:right;font-variant-numeric:tabular-nums}
/* 名字自己负责省略号：flex 容器里 text-overflow 对匿名文本不生效，必须由这个 span 承担 */
.pnm{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-arw{flex:0 0 auto;width:9px;height:6px;transition:transform .15s;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M1 1.2l3.5 3.5L8 1.2' fill='none' stroke='%238b95a5' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/9px 6px}
.cd.open .cd-arw{transform:rotate(180deg)}
.cd.off .cd-btn,.cd-btn[disabled]{color:#9aa4b2;background:#f7f9fb;border-color:#eef1f5;cursor:default}
.cd.off .cd-arw{opacity:.45}
.cd-pop{
	/* 面板比框宽：浮层不影响框宽（框仍是 flex:1 1 0 等宽固定）。
     width:max-content 按最长选项展开，封顶 min(300px,84vw)；min-width:100% 保证短内容时不少于框宽。
     左右位置由 JS place() 按视口实测推回来，避免右侧的球员框把面板顶出屏幕。 */
  position:absolute;left:0;right:auto;top:calc(100% + 4px);z-index:70;display:none;
  width:max-content;min-width:100%;max-width:min(300px,84vw);
  max-height:196px;overflow:auto;-webkit-overflow-scrolling:touch;padding:3px;
  background:#fff;border:1px solid #e2e7ee;border-radius:8px;box-shadow:0 6px 20px rgba(16,24,40,.10);
}
.cd.open .cd-pop{display:block}
.cd-pop.up{top:auto;bottom:calc(100% + 4px)}
.cd-opt{
  position:relative;height:28px;padding:0 8px;border-radius:6px;
  display:flex;align-items:center;gap:5px;
  font-size:13.5px;color:var(--txt);
}
.cd-opt.on{background:var(--accent-soft);color:#0f7a37;font-weight:600;padding-right:24px}
.cd-opt.on::after{
  content:'';position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:11px;height:9px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='9' viewBox='0 0 11 9'%3E%3Cpath d='M1 4.6l3 3L10 1.4' fill='none' stroke='%2315a34a' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/11px 9px;
}
.cd-opt:active{background:var(--card2)}
/* 真 select 只当数据源，不渲染 */
.cd-src{display:none}
.mvp-pick .mvp-btn{
  flex:0 0 auto;height:28px;padding:0 13px;border:0;border-radius:8px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:12.5px;font-weight:600;font-family:inherit;
}
.mvp-pick button:active{opacity:.85}
.mvp-res{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
/* 超过 7 天只留结果、上面没有投票控件 → 那道分隔线悬空，去掉（2026-09-19） */
.mvp-res.bare{margin-top:0;padding-top:0;border-top:0}
/* 全场最佳的手绘图标：**手写体「MVP」三个字母**（2026-09-19 超哥修正：「不是画五角星，
   是手绘 mvp 这三个字母」）。每一段笔画都不是笔直的、各带一点弧度，靠这个出「手写」感。
   viewBox 48.9×20.6，宽 36 高 15.2 等比；vertical-align 让字母落在字面中线上，不是随手写的 */
.mvp-mark{width:36px;height:15.2px;vertical-align:-2.8px;margin-left:5px;flex:0 0 auto}
/* 球员页那处是「星 + 全场最佳 ×N」一个整体：flex 让星和字垂直居中，display:flex 让它独占一行 */
.mvp-won{display:flex;align-items:center;gap:4px;margin-top:3px;font-size:13.5px;color:#b8790c;font-weight:600}
.mvp-won .mvp-mark{margin-left:0;vertical-align:0}
/* 2026-09-19 第五轮：「最近比赛」的 meta 行（.meta 是 flex+wrap）里也用同一套样式。
   只把球员卡顶部那处的 margin-top 归零，其余照搬 —— 一处定义、两处显示一致。
   ⚠️ 修饰类**不能叫 .inline**：第 159 行早有个通用 `.inline{display:inline-block;padding:8px 16px}`，
   撞上之后这个标会比顶部那个高出 16px（实测 38.27px vs 22.27px），肉眼看着就是「两处不一样」。 */
.mvp-won.in-meta{margin-top:0;flex:0 0 auto}
/* 投票关窗后的提示 */
.mvp-closed{margin-top:10px;font-size:13.5px;color:var(--dim);text-align:center}
/* 距投票结束还有 …（2026-09-19）。超哥：「这个说明文字肯定要小一点」→ 12.5px（站内次要文字下限）。
   tabular-nums 让每秒跳动的数字等宽，否则整行会跟着左右抖。 */
/* 2026-09-19 第二轮：挪到卡片最上面（原在投票行下面）→ 上边距归零、改成下边距留白 */
.mvp-cd{margin:0 0 9px;font-size:12.5px;color:var(--dim);text-align:center;font-variant-numeric:tabular-nums}
/* 结果行里的「号码 + 名字 + 图标」：号码占固定 2ch 右对齐（同下拉里的 .pno），名字跟在后面 */
.mvp-res .who{flex:1;display:flex;align-items:center;min-width:0}
.mvp-res .who .pno{margin-right:7px}
