@font-face {
  font-family: "Board";
  src: url("fonts/barlow-condensed-latin-600-normal.woff2") format("woff2");
  font-weight: 600; font-display: swap;
}
@font-face {
  font-family: "Board";
  src: url("fonts/barlow-condensed-latin-700-normal.woff2") format("woff2");
  font-weight: 700; font-display: swap;
}

:root {
  --pitch: #0f3b2e;      /* 球场夜绿：顶栏、记分牌 */
  --pitch-2: #17513f;
  --lamp: #f5b83d;       /* 记分牌灯光：预测比分 */
  --paper: #f3f5f2;      /* 页面底色 */
  --sheet: #ffffff;
  --ink: #17201c;
  --ink-2: #56635d;
  --ink-3: #87938d;
  --rule: #dde3df;
  --red: #d42a2f;        /* 红单 */
  --black: #39433f;      /* 黑单 */
  --gold: #b9832a;
  --cn: "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", system-ui, sans-serif;
  --num: "Board", "DIN Alternate", "Roboto Condensed", "Arial Narrow", var(--cn);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 15px/1.65 var(--cn);
}
a { color: inherit; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--lamp); outline-offset: 2px; border-radius: 4px; }
.wrap { max-width: 640px; margin: 0 auto; padding: 0 16px; }
.num { font-family: var(--num); font-variant-numeric: tabular-nums; }

/* ---------- 顶栏 ---------- */
.top { background: var(--pitch); color: #fff; position: sticky; top: 0; z-index: 10; }
.top-inner { max-width: 640px; margin: 0 auto; padding: 0 16px; height: 52px; display: flex; align-items: center; gap: 12px; }
.brand { font-weight: 700; font-size: 17px; letter-spacing: .02em; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nav { margin-left: auto; display: flex; gap: 2px; }
.nav a { text-decoration: none; padding: 6px 12px; border-radius: 999px; font-size: 14px; color: rgba(255,255,255,.72); }
.nav a.on { background: rgba(255,255,255,.12); color: #fff; }

/* ---------- 日期条 ---------- */
.dates { display: flex; gap: 8px; overflow-x: auto; padding: 14px 16px 10px; margin: 0 -16px; scrollbar-width: none; }
.dates::-webkit-scrollbar { display: none; }
.date-btn {
  flex: none; border: 1px solid var(--rule); background: var(--sheet); border-radius: 10px;
  padding: 6px 12px 5px; text-align: left; cursor: pointer; min-width: 74px;
}
.date-btn b { display: block; font-size: 13px; font-weight: 600; }
.date-btn span { font-size: 12px; color: var(--ink-3); }
.date-btn[aria-pressed="true"] { background: var(--pitch); border-color: var(--pitch); color: #fff; }
.date-btn[aria-pressed="true"] span { color: rgba(255,255,255,.7); }

.dayline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 6px 0 12px; color: var(--ink-2); font-size: 13px; }
.dayline h1 { font-size: 20px; margin: 0 6px 0 0; color: var(--ink); }

.filters { display: flex; gap: 6px; overflow-x: auto; margin: 0 -16px 12px; padding: 0 16px; scrollbar-width: none; }
.filters::-webkit-scrollbar { display: none; }
.chip { flex: none; border: 1px solid var(--rule); background: transparent; border-radius: 999px; padding: 3px 12px; font-size: 13px; cursor: pointer; color: var(--ink-2); }
.chip[aria-pressed="true"] { border-color: var(--ink); color: var(--ink); font-weight: 600; }

/* ---------- 比赛列表 ---------- */
.list { background: var(--sheet); border: 1px solid var(--rule); border-radius: 14px; overflow: hidden; }
.section-title { font-size: 14px; font-weight: 600; color: var(--ink-2); margin: 20px 2px 8px; }
.match { display: block; text-decoration: none; padding: 14px 16px 12px; border-top: 1px solid var(--rule); position: relative; }
.match:first-child { border-top: 0; }
.match:hover { background: #fafbfa; }
.meta { display: flex; gap: 10px; font-size: 12px; color: var(--ink-3); }
.meta .league { color: var(--ink-2); font-weight: 600; }
.meta .time { margin-left: auto; }
.teams { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; margin: 8px 0 10px; }
.team { font-size: 16px; font-weight: 600; line-height: 1.3; }
.team small { display: block; font-size: 11px; font-weight: 400; color: var(--ink-3); }
.team.away { text-align: right; }

/* 记分牌：整站最醒目的元素 */
.board {
  background: var(--pitch); color: var(--lamp); border-radius: 8px; min-width: 84px;
  padding: 4px 12px 3px; text-align: center; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), inset 0 -10px 18px rgba(0,0,0,.18);
}
.board .s { font-family: var(--num); font-weight: 700; font-size: 30px; line-height: 1.05; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.board .s i { font-style: normal; opacity: .55; padding: 0 2px; }
.board .cap { font-size: 10px; color: rgba(255,255,255,.55); letter-spacing: .1em; }
.board.final .s { color: #fff; }
.board.final .cap { color: var(--lamp); }
.board.wait .s { color: rgba(255,255,255,.4); font-size: 22px; padding: 4px 0; }

.picks { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; align-items: center; }
.pick { border: 1px solid var(--rule); border-radius: 6px; padding: 1px 8px; color: var(--ink); white-space: nowrap; }
.pick em { font-style: normal; color: var(--ink-3); margin-right: 4px; font-size: 12px; }
.pick.hit { border-color: var(--red); color: var(--red); }
.pick.hit em { color: var(--red); opacity: .75; }
.pick.miss { color: var(--ink-3); text-decoration: line-through; text-decoration-color: rgba(0,0,0,.25); }
.score-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 8px; }
.score-row .sc { display: flex; flex-direction: column; align-items: center; border-radius: 6px; background: var(--paper); padding: 3px 0 2px; line-height: 1.2; }
.score-row .sc em { font-style: normal; font-size: 11px; color: var(--ink-3); }
.score-row .sc b { font-family: var(--num); font-size: 17px; letter-spacing: .03em; }
.score-row .sc.hit { background: var(--red); color: #fff; }
.score-row .sc.hit em { color: rgba(255,255,255,.8); }
.score-row.in-table { margin-top: 0; }
.stars { margin-left: auto; color: var(--gold); letter-spacing: 1px; font-size: 13px; }
.stars .off { color: var(--rule); }
.tag-model { font-size: 11px; color: var(--ink-3); border: 1px dashed var(--ink-3); border-radius: 4px; padding: 0 5px; }

/* 红黑印章 */
.stamp {
  position: absolute; right: 12px; top: 30px; width: 44px; height: 44px; border-radius: 50%;
  border: 2px solid currentColor; display: grid; place-items: center; font-weight: 700; font-size: 18px;
  transform: rotate(-14deg); opacity: .85; pointer-events: none; background: rgba(255,255,255,.6);
}
.stamp.red { color: var(--red); }
.stamp.black { color: var(--black); opacity: .55; }
.board-wrap { position: relative; }
.board-wrap .stamp { top: -12px; right: -22px; width: 32px; height: 32px; font-size: 13px; }

/* ---------- 详情页 ---------- */
.back { display: inline-block; margin: 14px 0 4px; font-size: 14px; color: var(--ink-2); text-decoration: none; }
.hero { background: var(--sheet); border: 1px solid var(--rule); border-radius: 14px; padding: 16px; margin-top: 8px; position: relative; }
.hero .teams { margin: 14px 0 8px; }
.hero .team { font-size: 19px; }
.hero .board { min-width: 104px; padding: 8px 14px 6px; }
.hero .board .s { font-size: 40px; }
.hero .board-wrap .stamp { top: -14px; right: -24px; width: 40px; height: 40px; font-size: 16px; }
.lock { font-size: 12px; color: var(--ink-3); margin: 6px 0 0; }
.lock b { color: var(--ink-2); font-weight: 600; }
.summary { font-size: 17px; font-weight: 600; margin: 14px 0 0; line-height: 1.5; }

.block { background: var(--sheet); border: 1px solid var(--rule); border-radius: 14px; padding: 14px 16px; margin-top: 12px; }
.block h2 { font-size: 15px; margin: 0 0 8px; }
.block p { margin: 0; }
.block p + p { margin-top: 8px; }
.muted { color: var(--ink-3); font-size: 13px; }

table.rec { width: 100%; border-collapse: collapse; font-size: 14px; }
.rec th, .rec td { padding: 9px 4px; border-top: 1px solid var(--rule); text-align: left; vertical-align: top; }
.rec tr:first-child th, .rec tr:first-child td { border-top: 0; }
.rec th { font-weight: 400; color: var(--ink-2); width: 86px; }
.rec td.p { font-weight: 600; }
.rec td.prob { color: var(--ink-3); font-size: 12px; text-align: right; white-space: nowrap; }
.rec td.r { width: 34px; text-align: right; font-weight: 700; }
.r.red { color: var(--red); }
.r.black { color: var(--black); opacity: .6; }

.bar3 { display: flex; height: 30px; border-radius: 6px; overflow: hidden; font-size: 12px; margin: 6px 0 4px; }
.bar3 div { display: flex; align-items: center; justify-content: center; color: #fff; white-space: nowrap; overflow: hidden; }
.bar3 .h { background: var(--pitch); }
.bar3 .d { background: #8a9a92; }
.bar3 .a { background: #3f6f8f; }
.bar3 .chosen { box-shadow: inset 0 -4px 0 var(--lamp); font-weight: 700; }
.bar-legend { display: flex; justify-content: space-between; font-size: 12px; color: var(--ink-3); }

.facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.fact { border: 1px solid var(--rule); border-radius: 10px; padding: 8px 10px; }
.fact b { display: block; font-family: var(--num); font-size: 22px; line-height: 1.1; }
.fact span { font-size: 12px; color: var(--ink-3); }

.goals { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; align-items: end; height: 92px; margin-top: 12px; }
.goals .g { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; font-size: 11px; color: var(--ink-3); }
.goals .col { width: 100%; background: #c9d4ce; border-radius: 3px 3px 0 0; min-height: 2px; }
.goals .g.chosen .col { background: var(--lamp); }
.goals .g.actual .col { background: var(--red); }
.goals .g label { margin-top: 4px; font-family: var(--num); font-size: 13px; color: var(--ink-2); }

.scores { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.scores span { font-size: 13px; border-radius: 6px; background: var(--paper); padding: 2px 8px; }
.scores span b { font-family: var(--num); font-size: 15px; margin-right: 4px; }

.pc { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pc h3 { font-size: 14px; margin: 0 0 6px; }
.pc ul { margin: 0; padding-left: 18px; }
.pc li { margin: 2px 0; }
.pc .plus li::marker { content: "+  "; color: var(--pitch-2); font-weight: 700; }
.pc .minus li::marker { content: "−  "; color: var(--red); font-weight: 700; }
.sources { margin: 8px 0 0; padding-left: 18px; font-size: 13px; color: var(--ink-2); }
.sources a { color: var(--ink-2); }
.warn { border-left: 3px solid var(--red); }

/* ---------- 战绩页 ---------- */
.rec-head { margin: 18px 0 4px; }
.rec-head h1 { font-size: 22px; margin: 0; }
.rec-head p { margin: 4px 0 0; color: var(--ink-2); }
.big { font-family: var(--num); font-weight: 700; font-size: 44px; line-height: 1; color: var(--red); }
.seg { display: inline-flex; border: 1px solid var(--rule); border-radius: 999px; padding: 2px; background: var(--sheet); margin: 12px 0 0; }
.seg button { border: 0; background: none; padding: 4px 14px; border-radius: 999px; cursor: pointer; font-size: 13px; color: var(--ink-2); }
.seg button[aria-pressed="true"] { background: var(--ink); color: #fff; }
.rate-cell { text-align: right; font-family: var(--num); font-size: 16px; }
.meter { height: 4px; background: var(--paper); border-radius: 2px; margin-top: 4px; }
.meter i { display: block; height: 100%; background: var(--red); border-radius: 2px; }

.trail { display: grid; gap: 6px; }
.trail-row { display: grid; grid-template-columns: 64px 1fr 48px; align-items: center; gap: 10px; font-size: 13px; }
.trail-row .d { color: var(--ink-2); font-family: var(--num); font-size: 14px; }
.dots { display: flex; flex-wrap: wrap; gap: 3px; }
.dots i { width: 13px; height: 13px; border-radius: 3px; background: #c8d0cc; }
.dots i.r { background: var(--red); }
.trail-row .c { text-align: right; color: var(--ink-3); font-family: var(--num); font-size: 14px; }

.settled-row { display: block; text-decoration: none; padding: 10px 0; border-top: 1px solid var(--rule); }
.settled-row:first-child { border-top: 0; }
.settled-row .line1 { display: flex; gap: 8px; font-size: 14px; align-items: baseline; }
.settled-row .line1 .ft { margin-left: auto; font-family: var(--num); font-weight: 700; font-size: 18px; }
.settled-row .picks { margin-top: 6px; }

/* ---------- 其他 ---------- */
.empty { text-align: center; padding: 48px 16px; color: var(--ink-2); }
.empty b { display: block; font-size: 17px; color: var(--ink); margin-bottom: 6px; }
.loading { padding: 40px 0; text-align: center; color: var(--ink-3); }
.prose h2 { font-size: 16px; margin: 18px 0 6px; }
.prose p, .prose li { color: var(--ink-2); }
.foot { padding-top: 24px; padding-bottom: 40px; font-size: 12px; color: var(--ink-3); }
.foot p { margin: 4px 0; }

@media (max-width: 380px) {
  .team { font-size: 15px; }
  .board { min-width: 74px; padding: 4px 8px 3px; }
  .board .s { font-size: 26px; }
  .facts { grid-template-columns: 1fr 1fr; }
  .pc { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: no-preference) {
  .stamp { animation: stamp .35s cubic-bezier(.2,.9,.3,1.4) both; }
  @keyframes stamp { from { transform: rotate(-14deg) scale(1.6); opacity: 0; } }
}

/* =====================================================================
   会员版新增
   ===================================================================== */
body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
body.is-gate { padding-bottom: 0; background: var(--pitch); }
body.is-gate .top, body.is-gate .tabbar, body.is-gate .foot { display: none; }
.nav a { color: rgba(255,255,255,.78); }
.page-h { font-size: 22px; margin: 18px 2px 10px; }
.btn-main { display: block; width: 100%; border: 0; border-radius: 10px; background: var(--pitch); color: #fff; font-weight: 600; font-size: 16px; padding: 12px; cursor: pointer; margin-top: 12px; }
.btn-main:disabled { opacity: .6; }
.btn-line { display: block; width: 100%; border: 1px solid var(--rule); border-radius: 10px; background: var(--sheet); color: var(--ink-2); padding: 11px; cursor: pointer; margin: 16px 0 0; }
.link { border: 0; background: none; color: var(--pitch-2); cursor: pointer; padding: 0; font-size: 13px; }
.center { text-align: center; }

/* 公告 */
.announce { background: #fff7e0; color: #7a5413; font-size: 13px; overflow: hidden; border-bottom: 1px solid #f0e2b8; }
.announce-inner { max-width: 640px; margin: 0 auto; padding: 6px 16px; white-space: nowrap; overflow: hidden; }
.announce-inner span { display: inline-block; padding-left: 100%; animation: marquee 22s linear infinite; }
@keyframes marquee { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .announce-inner span { animation: none; padding-left: 0; white-space: normal; } }

/* 底部导航 */
.tabbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; justify-content: center; background: var(--sheet); border-top: 1px solid var(--rule); padding-bottom: env(safe-area-inset-bottom); }
.tabbar a { flex: 1; max-width: 128px; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 7px 0 6px; font-size: 11px; color: var(--ink-3); text-decoration: none; }
.tabbar svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linejoin: round; stroke-linecap: round; }
.tabbar a.on { color: var(--pitch); font-weight: 600; }
.tabbar a.on svg { stroke-width: 2.1; }

/* 比赛状态 */
.st { font-size: 11px; border-radius: 4px; padding: 0 5px; line-height: 18px; }
.st-pre { color: var(--ink-3); background: var(--paper); }
.st-live { color: #fff; background: var(--red); }
.st-wait { color: #7a5413; background: #fff1cc; }
.st-done { color: var(--pitch-2); background: #e3efe8; }
.st-void { color: var(--ink-3); background: var(--paper); text-decoration: line-through; }
.dl-link { margin-left: auto; color: var(--pitch-2); font-size: 13px; }

/* ---------- 入口页 ---------- */
.gate { min-height: 100vh; min-height: 100dvh; color: #fff; padding: 28px 0 32px; display: flex; flex-direction: column; }
.gate-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gate-brand { font-family: var(--num); font-weight: 700; font-size: 30px; letter-spacing: .02em; }
.gate-tag { font-size: 13px; color: rgba(255,255,255,.62); }
.gate-board { margin: 26px 0 8px; border-radius: 14px; background: #0b2e23; box-shadow: inset 0 0 0 1px rgba(255,255,255,.07), inset 0 -24px 40px rgba(0,0,0,.25); padding: 18px 18px 16px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 12px; align-items: end; }
.gate-board.empty { grid-template-columns: 1fr; }
.gb-main span { display: block; font-weight: 700; font-size: clamp(48px, 15vw, 72px); line-height: .95; color: var(--lamp); letter-spacing: .02em; }
.gb-main em, .gb-side em { font-style: normal; font-size: 12px; color: rgba(255,255,255,.6); }
.gb-side { display: grid; gap: 10px; }
.gb-side b { display: block; font-family: var(--num); font-size: 24px; line-height: 1; color: #fff; }
.gate-note { font-size: 12px; color: rgba(255,255,255,.55); margin: 0 2px; }
.gate-h { font-size: 14px; color: rgba(255,255,255,.75); margin: 22px 2px 8px; font-weight: 600; }
.gate-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.1); }
.gate-list li { display: grid; grid-template-columns: 44px 54px 1fr 26px; gap: 8px; align-items: center; font-size: 13px; padding: 8px 2px; border-bottom: 1px solid rgba(255,255,255,.08); color: rgba(255,255,255,.85); }
.gate-list li span:nth-child(2) { color: rgba(255,255,255,.55); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gate-list .tm { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gate-list .tm b { color: var(--lamp); margin: 0 4px; }
.gate-list i { font-style: normal; font-weight: 700; text-align: center; border-radius: 50%; width: 24px; height: 24px; line-height: 21px; font-size: 12px; border: 1.5px solid; }
.gate-list i.r { color: #ff6b6b; }
.gate-list i.b { color: rgba(255,255,255,.4); }
.gate-form { margin-top: 26px; }
.gate-form label { display: block; font-size: 13px; color: rgba(255,255,255,.7); margin: 0 2px 6px; }
.gate-row { display: flex; gap: 8px; }
.gate-row input { flex: 1; min-width: 0; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.08); color: #fff; border-radius: 10px; padding: 12px; font: 16px/1.2 var(--num); letter-spacing: .06em; text-transform: uppercase; }
.gate-row input::placeholder { color: rgba(255,255,255,.4); font-family: var(--cn); letter-spacing: 0; text-transform: none; font-size: 14px; }
.gate-row button { border: 0; border-radius: 10px; background: var(--lamp); color: #2a1d00; font-weight: 700; padding: 0 18px; cursor: pointer; font-size: 15px; white-space: nowrap; }
.gate-err { color: #ffb3b3; font-size: 13px; min-height: 20px; margin: 6px 2px 0; }
.gate-shop { color: var(--lamp); font-size: 14px; margin: 4px 2px 0; }
.gate-legal { margin-top: auto; padding-top: 28px; font-size: 11px; color: rgba(255,255,255,.45); }

/* ---------- 商城 ---------- */
.shop h1 { font-size: 20px; margin: 0 0 4px; }
.plans { list-style: none; padding: 0; margin: 14px 0 4px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.plans li { border: 1px solid var(--rule); border-radius: 10px; padding: 10px; display: grid; gap: 2px; text-align: center; }
.plans li b { font-size: 15px; }
.plans li span { font-size: 12px; color: var(--ink-3); }
.plans li em { font-style: normal; color: var(--red); font-weight: 600; }
.code-box { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; border: 1.5px dashed var(--pitch-2); border-radius: 10px; padding: 12px; }
.code-box span { font-size: 20px; font-weight: 700; letter-spacing: .06em; }
.code-box button { border: 0; background: var(--pitch); color: #fff; border-radius: 8px; padding: 6px 14px; cursor: pointer; }
.pay-qr { display: block; max-width: 220px; margin: 14px auto; border-radius: 8px; }

/* ---------- 投票 / 追问 ---------- */
.vote { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.vote button { position: relative; overflow: hidden; border: 1px solid var(--rule); background: var(--sheet); border-radius: 10px; padding: 10px 4px; cursor: pointer; display: grid; gap: 2px; }
.vote button b { font-size: 15px; position: relative; }
.vote button span { font-size: 18px; position: relative; }
.vote button i { position: absolute; left: 0; bottom: 0; height: 4px; background: #c9d4ce; }
.vote button.on { border-color: var(--pitch); box-shadow: inset 0 0 0 1px var(--pitch); }
.vote button.on i { background: var(--lamp); }
.vote button:disabled { cursor: default; opacity: .75; }
.ask-form { display: flex; gap: 8px; align-items: flex-end; }
.ask-form textarea { flex: 1; min-width: 0; border: 1px solid var(--rule); border-radius: 10px; padding: 9px 10px; font: 15px/1.5 var(--cn); resize: vertical; }
.ask-form button { border: 0; border-radius: 10px; background: var(--pitch); color: #fff; padding: 10px 16px; cursor: pointer; white-space: nowrap; }
.ask-list { margin-top: 12px; display: grid; gap: 10px; }
.qa { border-top: 1px solid var(--rule); padding-top: 10px; }
.qa .q { margin: 0; font-size: 14px; }
.qa .a { margin: 6px 0 2px; background: var(--paper); border-radius: 8px; padding: 8px 10px; font-size: 14px; white-space: pre-wrap; }

/* ---------- 竞彩 ---------- */
.parlay { border: 1px solid var(--rule); border-radius: 10px; padding: 10px 12px; margin-top: 10px; }
.parlay.hit { border-color: var(--red); }
.pl-head { display: flex; align-items: center; gap: 10px; }
.pl-head em { margin-left: auto; font-style: normal; font-size: 13px; color: var(--ink-3); }
.parlay.hit .pl-head em { color: var(--red); font-weight: 700; }
.parlay ul, .plan ul, .slip ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; }
.parlay li, .plan li, .slip li { display: grid; grid-template-columns: 58px 1fr auto auto auto; gap: 8px; font-size: 13px; align-items: center; }
.parlay li.hit b { color: var(--red); }
.parlay li.miss b { color: var(--ink-3); text-decoration: line-through; }
.ft { color: var(--ink-2); }
.odds-row { border-top: 1px solid var(--rule); padding: 10px 0; }
.odds-row:first-child { border-top: 0; }
.or-head { display: flex; gap: 8px; font-size: 13px; color: var(--ink-3); align-items: baseline; }
.or-head a { color: var(--ink); font-weight: 600; text-decoration: none; flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.or-grid { display: grid; grid-template-columns: 52px repeat(3, 1fr); gap: 6px; margin-top: 6px; align-items: center; }
.or-grid .lbl { font-size: 12px; color: var(--ink-3); }
.or-grid .na { grid-column: span 3; font-size: 12px; color: var(--ink-3); }
.odd { border: 1px solid var(--rule); background: var(--sheet); border-radius: 8px; padding: 4px 0; cursor: pointer; display: flex; justify-content: center; gap: 6px; align-items: baseline; }
.odd em { font-style: normal; font-size: 12px; color: var(--ink-3); }
.odd b { font-size: 16px; }
.odd.ai { box-shadow: inset 0 0 0 1.5px var(--lamp); }
.odd.on { background: var(--pitch); border-color: var(--pitch); color: #fff; }
.odd.on em { color: rgba(255,255,255,.7); }
.slip { position: sticky; bottom: calc(60px + env(safe-area-inset-bottom)); background: var(--sheet); border: 1px solid var(--pitch); border-radius: 14px; padding: 12px 14px; margin-top: 12px; box-shadow: 0 -6px 24px rgba(15,59,46,.12); }
.slip-head { display: flex; justify-content: space-between; }
.slip-head button { border: 0; background: none; color: var(--ink-3); cursor: pointer; }
.slip-ctrl { display: flex; gap: 14px; margin-top: 10px; font-size: 14px; }
.slip-ctrl select, .slip-ctrl input { margin-left: 4px; border: 1px solid var(--rule); border-radius: 6px; padding: 4px 6px; font: inherit; width: 84px; }
.slip-sum { margin: 10px 0 0; }
.slip-sum b { color: var(--red); font-size: 17px; }

/* ---------- 达人 ---------- */
.rank { list-style: none; margin: 0; padding: 0; }
.rank li { display: grid; grid-template-columns: 30px 1fr auto 56px 34px; gap: 8px; align-items: center; padding: 9px 0; border-top: 1px solid var(--rule); }
.rank li:first-child { border-top: 0; }
.rank li.me { background: #f4faf6; }
.rank .rk { font-size: 18px; color: var(--ink-3); text-align: center; }
.rank li:nth-child(-n+3) .rk { color: var(--gold); font-weight: 700; }
.rank .st { color: var(--ink-3); font-size: 13px; background: none; }
.rank b { text-align: right; color: var(--red); font-size: 17px; }
.fav { border: 0; background: none; font-size: 20px; color: var(--ink-3); cursor: pointer; }
.fav.on { color: var(--gold); }
.fl-head { display: flex; align-items: center; gap: 10px; }
.fl-head span { color: var(--ink-3); }
.fl-head .fav { margin-left: auto; }
.fl-list { list-style: none; margin: 8px 0 0; padding: 0; }
.fl-list li { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-top: 1px solid var(--rule); font-size: 14px; }
.fl-list a { color: var(--ink); text-decoration: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.fl-list b.r { color: var(--red); }
.fl-list b.b { color: var(--ink-3); }

/* ---------- 聊天 ---------- */
.chat { background: var(--sheet); border: 1px solid var(--rule); border-radius: 14px; display: flex; flex-direction: column; height: calc(100vh - 260px); height: calc(100dvh - 260px); min-height: 320px; }
.chat-list { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.msg { max-width: 82%; }
.msg .who { font-size: 11px; color: var(--ink-3); }
.msg p { margin: 2px 0 0; background: var(--paper); border-radius: 4px 12px 12px 12px; padding: 7px 10px; font-size: 14px; word-break: break-word; }
.msg.mine { align-self: flex-end; text-align: right; }
.msg.mine p { background: var(--pitch); color: #fff; border-radius: 12px 4px 12px 12px; text-align: left; }
.chat-form { display: flex; gap: 8px; border-top: 1px solid var(--rule); padding: 10px; }
.chat-form input { flex: 1; min-width: 0; border: 1px solid var(--rule); border-radius: 999px; padding: 9px 14px; font: 15px var(--cn); }
.chat-form button { border: 0; border-radius: 999px; background: var(--pitch); color: #fff; padding: 0 18px; cursor: pointer; }

/* ---------- 我的 ---------- */
.me-card .me-top { display: flex; align-items: baseline; gap: 10px; }
.me-card .me-top b { font-size: 20px; }
.me-card p { margin: 8px 0 0; color: var(--ink-2); font-size: 14px; }
.me-links { display: flex; gap: 8px; margin-top: 12px; }
.me-links a { flex: 1; text-align: center; border: 1px solid var(--rule); border-radius: 8px; padding: 7px 0; color: var(--ink); text-decoration: none; font-size: 14px; }
.plan { border-top: 1px solid var(--rule); padding: 10px 0; }
.plan:first-child { border-top: 0; }
.plan .pl-head .link { margin-left: auto; color: var(--red); }

/* toast */
.toast { position: fixed; left: 50%; bottom: calc(84px + env(safe-area-inset-bottom)); transform: translate(-50%, 20px); background: var(--ink); color: #fff; padding: 9px 16px; border-radius: 999px; font-size: 14px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 50; max-width: 88vw; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast.bad { background: var(--red); }

@media (max-width: 380px) {
  .plans { grid-template-columns: 1fr 1fr 1fr; }
  .rank li { grid-template-columns: 26px 1fr auto 50px 30px; }
  .parlay li, .plan li, .slip li { grid-template-columns: 52px 1fr auto auto; }
  .parlay li .ft, .plan li .ft { display: none; }
}
body.is-gate .back { color: rgba(255,255,255,.75); }

/* =================== 入口页 v2（深色科技风） =================== */
body.is-gate { background: #030a09; }
.g2 {
  position: relative; align-items: stretch; text-align: left; padding-top: 36px;
  background:
    radial-gradient(1.5px 1.5px at 12% 18%, rgba(52, 245, 170, .55), transparent 60%),
    radial-gradient(1px 1px at 78% 9%, rgba(52, 245, 170, .45), transparent 60%),
    radial-gradient(1.5px 1.5px at 66% 34%, rgba(52, 245, 170, .4), transparent 60%),
    radial-gradient(1px 1px at 24% 62%, rgba(52, 245, 170, .4), transparent 60%),
    radial-gradient(1.5px 1.5px at 90% 71%, rgba(52, 245, 170, .45), transparent 60%),
    radial-gradient(1px 1px at 40% 88%, rgba(52, 245, 170, .35), transparent 60%);
}
.g-logo { width: 74px; height: 74px; margin: 0 auto; border-radius: 50%; display: grid; place-items: center;
  background: radial-gradient(circle at 50% 45%, #ffb347 0%, #d4581f 46%, #3a1206 100%);
  box-shadow: 0 0 34px rgba(255, 140, 50, .55), 0 0 0 1px rgba(255, 190, 110, .35); }
.g-logo svg { width: 46px; height: 46px; fill: none; stroke: #fff6e3; stroke-width: 2.2; stroke-linejoin: round; }
.g-title { text-align: center; margin: 14px 0 2px; font-size: 30px; letter-spacing: .08em; color: #3cf3b1; text-shadow: 0 0 16px rgba(60, 243, 177, .45); }
.g-en { text-align: center; margin: 0; font-size: 11px; letter-spacing: .5em; color: rgba(60, 243, 177, .6); }
.g-ver { align-self: center; margin: 10px auto 0; font-size: 12px; color: #3cf3b1; border: 1px solid rgba(60, 243, 177, .55); border-radius: 999px; padding: 3px 14px; box-shadow: 0 0 12px rgba(60, 243, 177, .2) inset; }
.g-ticker { margin: 18px 0 0; border: 1px solid rgba(60, 243, 177, .3); border-radius: 10px; overflow: hidden; background: rgba(10, 40, 30, .55); }
.g-ticker-in { display: inline-flex; gap: 28px; white-space: nowrap; padding: 8px 0; font-size: 13px; color: rgba(255,255,255,.82); animation: gticker 40s linear infinite; }
.g-ticker-in span b { color: #3cf3b1; margin-left: 4px; }
@keyframes gticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .g-ticker-in { animation: none; flex-wrap: wrap; white-space: normal; padding: 8px 12px; } }
.g-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; }
.g-stat { border: 1px solid rgba(60, 243, 177, .3); border-radius: 12px; padding: 12px 8px 10px; text-align: center; background: rgba(8, 30, 23, .7); }
.g-stat b { display: block; font-size: 28px; line-height: 1.05; color: #3cf3b1; text-shadow: 0 0 12px rgba(60, 243, 177, .4); }
.g-stat em { display: block; font-style: normal; font-size: 12px; color: rgba(255,255,255,.85); margin-top: 4px; }
.g-stat span { display: block; font-size: 11px; color: rgba(60, 243, 177, .65); }
.g-card { margin-top: 14px; border: 1px solid rgba(60, 243, 177, .28); border-radius: 14px; padding: 14px 14px 12px; background: rgba(6, 26, 20, .75); }
.g-h { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #3cf3b1; flex-wrap: wrap; }
.g-sub { font-weight: 400; font-size: 12px; color: rgba(255,255,255,.5); }
.g-dot { width: 7px; height: 7px; border-radius: 50%; background: #3cf3b1; box-shadow: 0 0 8px #3cf3b1; }
.g-checks { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; font-size: 12.5px; color: rgba(255,255,255,.85); }
.g-checks li::before { content: "✓ "; color: #3cf3b1; font-weight: 700; }
.g-term { margin: 12px 0 0; font: 12px/1.7 ui-monospace, Menlo, Consolas, monospace; color: rgba(60, 243, 177, .8); white-space: pre-wrap; }
.g-sample .gs-meta { display: flex; gap: 10px; font-size: 12px; color: rgba(255,255,255,.55); margin-top: 10px; }
.gs-teams { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; margin: 8px 0; color: #fff; font-size: 16px; }
.gs-teams b:last-child { text-align: right; }
.gs-score { font-weight: 700; font-size: 30px; color: #ffc451; background: #0f3b2e; border-radius: 8px; padding: 2px 14px; letter-spacing: .05em; }
.gs-picks { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: #fff; }
.gs-picks span { border: 1px solid rgba(60, 243, 177, .35); border-radius: 6px; padding: 1px 8px; }
.gs-picks em { font-style: normal; color: rgba(255,255,255,.5); margin-right: 4px; font-size: 12px; }
.gs-scores { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 8px; }
.gs-scores span { text-align: center; background: rgba(255,255,255,.06); border-radius: 6px; padding: 3px 0; }
.gs-scores em { display: block; font-style: normal; font-size: 11px; color: rgba(255,255,255,.5); }
.gs-scores b { color: #fff; font-size: 17px; }
.gs-sum { color: #fff; font-weight: 600; margin: 10px 0 0; }
.gs-more { margin-top: 8px; color: rgba(255,255,255,.82); font-size: 13.5px; }
.gs-more summary { cursor: pointer; color: #3cf3b1; }
.gs-more h3 { font-size: 13px; color: #3cf3b1; margin: 10px 0 2px; }
.gs-more p { margin: 0; }
.gs-more ul { margin: 0; padding-left: 4px; list-style: none; }
.gs-res { margin: 8px 0 0; color: #fff; }
.gs-res i, .g-list i { font-style: normal; font-weight: 700; font-size: 12px; border-radius: 6px; padding: 1px 8px; }
.gs-res i.r, .g-list i.r { color: #3cf3b1; background: rgba(60, 243, 177, .14); }
.gs-res i.b, .g-list i.b { color: rgba(255,255,255,.6); background: rgba(255,255,255,.08); }
.g-list { list-style: none; margin: 8px 0 0; padding: 0; }
.g-list li { display: grid; grid-template-columns: 42px 1fr auto; gap: 8px; align-items: center; font-size: 12.5px; color: rgba(255,255,255,.85); padding: 8px 2px; border-top: 1px solid rgba(60, 243, 177, .12); }
.g-list li:first-child { border-top: 0; }
.g-list .tm { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.g-list .g-empty { display: block; color: rgba(255,255,255,.6); }
.g-form { margin-top: 18px; border: 1px solid rgba(60, 243, 177, .3); border-radius: 14px; padding: 14px; background: rgba(6, 26, 20, .75); }
.g-form .gate-row input { border-color: rgba(60, 243, 177, .35); }
.g-act { background: #24d8c4 !important; color: #032018 !important; }
.g-go { display: block; width: 100%; margin-top: 4px; border: 0; border-radius: 12px; padding: 14px; font-size: 18px; font-weight: 800; letter-spacing: .08em; cursor: pointer;
  color: #032018; background: linear-gradient(90deg, #22e07f, #39f5a4); box-shadow: 0 0 22px rgba(57, 245, 164, .35); }
.g-go:disabled, .g-act:disabled { opacity: .6; }
.g-foot { text-align: center; font-size: 11px; color: rgba(255,255,255,.45); margin: 8px 0 2px; }
.g2 .gate-shop { display: block; text-align: center; color: #3cf3b1; }

/* =================== 卡密商城 v2 =================== */
.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0; }
.plan-opt { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; border: 1.5px solid var(--rule); border-radius: 12px; padding: 12px 6px; cursor: pointer; text-align: center; }
.plan-opt input { position: absolute; opacity: 0; pointer-events: none; }
.plan-opt b { font-size: 16px; }
.plan-opt span { font-size: 12px; color: var(--ink-3); }
.plan-opt em { font-style: normal; font-weight: 700; color: var(--red); }
.plan-opt:has(input:checked) { border-color: var(--pitch); background: #eef6f1; }
.plan-opt:has(input:focus-visible) { outline: 2px solid var(--lamp); outline-offset: 2px; }
.order-form { display: grid; gap: 6px; margin-top: 12px; }
.order-form label { font-size: 13px; color: var(--ink-2); }
.order-form input { border: 1px solid var(--rule); border-radius: 10px; padding: 10px 12px; font: inherit; }
.order-form .btn-main { margin-top: 8px; }
.orders { list-style: none; margin: 8px 0 0; padding: 0; }
.orders li { border-top: 1px solid var(--rule); padding: 10px 0; }
.orders li:first-child { border-top: 0; }
.o-head { display: flex; align-items: baseline; gap: 10px; }
.o-head em { margin-left: auto; font-style: normal; font-size: 13px; }
.st-pending { color: var(--gold); }
.st-issued { color: var(--pitch-2); font-weight: 600; }
.st-rejected { color: var(--ink-3); }
.code-box span { font-size: 16px; word-break: break-all; }
.code-box button + button { margin-left: -4px; }

/* =================== 会员区：量子深色主题 =================== */
body.theme-q {
  --paper: #050c0a; --sheet: #0b1714; --ink: #e9f3ef; --ink-2: #a8bdb5; --ink-3: #6e857d;
  --rule: #1b2c27; --pitch: #0d3a2c; --pitch-2: #3cf3b1; --gold: #e3b04b; --black: #8a9a94;
  --q: #3cf3b1; --q-dim: rgba(60, 243, 177, .28);
  background: radial-gradient(900px 420px at 50% -120px, rgba(60, 243, 177, .12), transparent 70%), var(--paper);
  background-attachment: fixed; color: var(--ink);
}
body.theme-q .top { background: rgba(5, 12, 10, .82); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--rule); }
body.theme-q .brand { color: var(--q); letter-spacing: .06em; text-shadow: 0 0 12px rgba(60, 243, 177, .35); }
body.theme-q .nav a { color: var(--ink-2); }
body.theme-q .tabbar { background: rgba(8, 18, 15, .92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top-color: var(--rule); }
body.theme-q .tabbar a.on { color: var(--q); }
body.theme-q .block, body.theme-q .list, body.theme-q .hero { background: var(--sheet); border-color: var(--rule); }
body.theme-q .chip { color: var(--ink-2); border-color: var(--rule); }
body.theme-q .chip[aria-pressed="true"] { color: var(--q); border-color: var(--q); }
body.theme-q .date-btn { background: transparent; border-color: var(--rule); color: var(--ink); }
body.theme-q .date-btn[aria-pressed="true"] { background: rgba(60, 243, 177, .12); border-color: var(--q); color: var(--q); }
body.theme-q .date-btn[aria-pressed="true"] span { color: var(--q); }
body.theme-q .pick { border-color: var(--rule); color: var(--ink); }
body.theme-q .score-row .sc { background: rgba(255, 255, 255, .05); }
body.theme-q .scores span, body.theme-q .fact { background: rgba(255, 255, 255, .04); border-color: var(--rule); }
body.theme-q .stamp { background: rgba(5, 12, 10, .7); }
body.theme-q .board { box-shadow: inset 0 0 0 1px rgba(60, 243, 177, .25), 0 0 18px rgba(60, 243, 177, .08); }
body.theme-q input, body.theme-q select, body.theme-q textarea { background: rgba(255, 255, 255, .04); color: var(--ink); border-color: var(--rule); }
body.theme-q .btn-main { background: linear-gradient(90deg, #22e07f, #39f5a4); color: #032018; }
body.theme-q .plan-opt:has(input:checked) { background: rgba(60, 243, 177, .1); border-color: var(--q); }
body.theme-q .code-box button { background: var(--q); color: #032018; }
body.theme-q .bar3 .h { background: #138a62; }
body.theme-q .goals .col { background: #21423a; }
body.theme-q a { color: inherit; }

/* 首页：赛事推荐 */
.hero2 { margin: 18px 0 4px; }
.h2-kicker { margin: 0; font-size: 12px; letter-spacing: .14em; color: var(--q); }
.h2-title { margin: 4px 0 14px; font-size: 26px; letter-spacing: .04em; }
.h2-stats { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--rule); border-radius: 14px; background: linear-gradient(180deg, rgba(60, 243, 177, .06), transparent); }
.h2-stats div { padding: 12px 10px; text-align: center; }
.h2-stats div + div { border-left: 1px solid var(--rule); }
.h2-stats b { display: block; font-size: 26px; line-height: 1.1; color: var(--ink); }
.h2-stats span { font-size: 12px; color: var(--ink-3); }
.hero2 .dates { padding-top: 14px; }
.hero2 .date-btn { min-width: 64px; text-align: center; }
.sec-h { display: flex; align-items: baseline; gap: 10px; margin: 22px 2px 10px; }
.sec-h h2 { margin: 0; font-size: 17px; }
.sec-h h2::before { content: ""; display: inline-block; width: 4px; height: 15px; margin-right: 8px; border-radius: 2px; background: var(--q); vertical-align: -2px; box-shadow: 0 0 8px var(--q); }
.sec-h span { font-size: 12px; color: var(--ink-3); }
.fgrid { display: grid; gap: 10px; }
.fcard { display: block; text-decoration: none; border: 1px solid var(--q-dim); border-radius: 16px; padding: 14px 14px 12px;
  background: linear-gradient(160deg, rgba(60, 243, 177, .09), rgba(11, 23, 20, .9) 45%); position: relative; overflow: hidden; }
.fcard:hover { border-color: var(--q); }
.fc-top { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--ink-3); }
.fc-league { color: var(--q); font-weight: 600; }
.fc-top .st { margin-left: auto; }
.fc-vs { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin: 14px 0 12px; }
.fc-team { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.fc-team b { font-size: 15px; line-height: 1.25; }
.fc-team small { font-size: 11px; color: var(--ink-3); }
.fc-mid { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 76px; }
.fc-time { font-size: 24px; font-weight: 700; color: var(--ink); letter-spacing: .04em; }
.fc-date { font-size: 12px; color: var(--ink-3); }
.fc-foot { display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--rule); padding-top: 10px; font-size: 12px; color: var(--ink-3); }
.fc-cta { margin-left: auto; color: var(--q); font-weight: 600; font-size: 13px; }
.crest { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-size: 19px; font-weight: 700; color: #fff;
  background: radial-gradient(circle at 35% 30%, hsl(var(--h) 55% 48%), hsl(var(--h) 60% 22%)); box-shadow: 0 0 0 2px rgba(255, 255, 255, .08), 0 6px 14px rgba(0, 0, 0, .35); }
.conf { display: inline-flex; gap: 3px; }
.conf i { width: 14px; height: 6px; border-radius: 2px; background: rgba(255, 255, 255, .1); }
.conf i.on { background: var(--q); box-shadow: 0 0 6px rgba(60, 243, 177, .5); }
.slist { border: 1px solid var(--rule); border-radius: 14px; overflow: hidden; background: var(--sheet); }
.srow { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 10px; padding: 12px 14px; text-decoration: none; border-top: 1px solid var(--rule); }
.srow:first-child { border-top: 0; }
.srow:hover { background: rgba(60, 243, 177, .04); }
.sr-time { font-size: 17px; font-weight: 700; color: var(--ink); }
.sr-main { min-width: 0; }
.sr-meta { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--ink-3); }
.sr-teams { display: block; font-size: 15px; font-weight: 600; margin-top: 2px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sr-teams em { font-style: normal; font-weight: 400; color: var(--ink-3); margin: 0 6px; font-size: 12px; }
.sr-side { display: flex; align-items: center; gap: 6px; }
.rtag { font-family: var(--num); font-weight: 700; font-size: 16px; color: var(--ink); }
.rtag.void { font-family: var(--cn); font-size: 12px; color: var(--ink-3); }
.rbadge { font-size: 11px; font-weight: 700; border-radius: 5px; padding: 1px 6px; }
.rbadge.red { color: #fff; background: var(--red); }
.rbadge.black { color: var(--ink-2); background: rgba(255, 255, 255, .08); }
.rec-link { display: block; text-align: center; margin: 18px 0 6px; color: var(--q); font-size: 14px; }

/* 头像 */
.ava { width: 36px; height: 36px; flex: none; border-radius: 50%; display: inline-grid; place-items: center; font-size: 19px; line-height: 1;
  background: radial-gradient(circle at 35% 30%, hsl(var(--h) 45% 32%), hsl(var(--h) 50% 14%)); box-shadow: 0 0 0 1.5px rgba(60, 243, 177, .35); }
.ava-s { width: 30px; height: 30px; font-size: 16px; }
.ava-l { width: 64px; height: 64px; font-size: 34px; box-shadow: 0 0 0 2px var(--q, #3cf3b1), 0 0 18px rgba(60, 243, 177, .3); }
.me-prof { display: flex; align-items: center; gap: 14px; }
.me-prof b { display: block; font-size: 19px; }
.nick-form { display: flex; gap: 8px; margin-top: 14px; }
.nick-form input { flex: 1; min-width: 0; border: 1px solid var(--rule); border-radius: 10px; padding: 9px 12px; font: inherit; }
.nick-form button { border: 0; border-radius: 10px; padding: 0 16px; background: var(--q, var(--pitch)); color: #032018; font-weight: 600; cursor: pointer; }
.ava-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-bottom: 12px; }
.ava-pick { border: 1.5px solid transparent; background: none; border-radius: 50%; padding: 2px; cursor: pointer; justify-self: center; }
.ava-pick.on { border-color: var(--q, var(--pitch)); }
.ava-pick .ava { width: 40px; height: 40px; }

/* 竞猜比分 */
.guess { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 10px; margin: 14px 0 4px; }
.g-side { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 13px; color: var(--ink-2); text-align: center; }
.step { display: flex; align-items: center; gap: 10px; }
.step button { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--rule); background: rgba(255, 255, 255, .04); color: var(--ink); font-size: 18px; cursor: pointer; }
.step button:disabled { opacity: .4; }
.step b { font-size: 34px; min-width: 28px; text-align: center; color: var(--q, var(--ink)); }
.g-colon { font-size: 30px; color: var(--ink-3); padding-bottom: 2px; }

/* 达人榜 */
.rank2 { list-style: none; margin: 0; padding: 0; }
.rank2 li { display: grid; grid-template-columns: 26px 36px 1fr auto 30px; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--rule); }
.rank2 li:first-child { border-top: 0; }
.rank2 li.me { background: rgba(60, 243, 177, .05); }
.rank2 .rk { text-align: center; font-weight: 700; color: var(--ink-3); }
.rank2 .rk-1 { color: #f5c542; } .rank2 .rk-2 { color: #cfd6dd; } .rank2 .rk-3 { color: #d98c4a; }
.rank2 .nm { min-width: 0; }
.rank2 .nm b { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.rank2 .nm em { font-style: normal; font-size: 11.5px; color: var(--ink-3); }
.rank2 .hits { text-align: center; }
.rank2 .hits b { display: block; font-size: 22px; line-height: 1; color: var(--q, var(--red)); }
.rank2 .hits em { font-style: normal; font-size: 11px; color: var(--ink-3); }

/* 聊天头像 */
.msg { display: flex; gap: 8px; align-items: flex-start; }
.msg .bub { min-width: 0; }
.msg.mine { flex-direction: row-reverse; }
body.theme-q .toast { background: #17352c; color: #e9f3ef; box-shadow: 0 0 0 1px rgba(60, 243, 177, .35); }
body.theme-q .toast.bad { background: var(--red); color: #fff; }

/* =================== 高级感 v3 =================== */
@font-face { font-family: "Orb"; src: url("fonts/orbitron-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
body.theme-q {
  --glass: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015));
  --edge: linear-gradient(135deg, rgba(60, 243, 177, .55), rgba(60, 243, 177, .05) 40%, rgba(120, 160, 255, .08) 70%, rgba(60, 243, 177, .35));
  --shadow: 0 10px 30px -12px rgba(0, 0, 0, .7), 0 1px 0 rgba(255, 255, 255, .04) inset;
  background:
    radial-gradient(700px 380px at 12% -80px, rgba(60, 243, 177, .13), transparent 70%),
    radial-gradient(640px 360px at 100% 10%, rgba(64, 120, 255, .08), transparent 70%),
    var(--paper);
  background-attachment: fixed;
}
body.theme-q::before { /* 细网格 */
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: -1;
  background-image: linear-gradient(rgba(60, 243, 177, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(60, 243, 177, .035) 1px, transparent 1px);
  background-size: 34px 34px; mask-image: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 75%);
}
body.theme-q .brand, .g-en, .h2-kicker, .mh-league { font-family: "Orb", var(--cn); }
body.theme-q .brand { font-size: 15px; background: linear-gradient(90deg, #7fffd4, #3cf3b1 45%, #8fb8ff); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none; }
#app { animation: pageIn .35s ease both; }
@keyframes pageIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* 玻璃卡片 + 渐变描边 */
body.theme-q .block, body.theme-q .slist, body.theme-q .fcard, body.theme-q .h2-stats, body.theme-q .mhero, body.theme-q .list {
  position: relative; background: var(--glass), rgba(9, 20, 17, .78); border: 1px solid rgba(255, 255, 255, .06);
  box-shadow: var(--shadow); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
body.theme-q .fcard::before, body.theme-q .mhero::before, body.theme-q .h2-stats::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: var(--edge); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
}
body.theme-q .block { border-radius: 16px; }
body.theme-q .block h2 { font-size: 15px; letter-spacing: .04em; display: flex; align-items: center; gap: 8px; }
body.theme-q .block h2::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: linear-gradient(var(--q), #8fb8ff); box-shadow: 0 0 8px var(--q); }
body.theme-q .block.warn { background: linear-gradient(180deg, rgba(227, 176, 75, .08), transparent), rgba(9, 20, 17, .78); border-color: rgba(227, 176, 75, .25); }

/* 首页 hero */
.h2-title { font-size: 30px; font-weight: 800; letter-spacing: .06em; background: linear-gradient(180deg, #fff, #9fe9cf); -webkit-background-clip: text; background-clip: text; color: transparent; }
.h2-kicker { font-size: 11px; letter-spacing: .22em; }
.h2-stats b { font-family: var(--num); font-size: 30px; background: linear-gradient(180deg, #fff, var(--q)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.h2-stats div + div { border-left-color: rgba(255, 255, 255, .06); }
.sec-h { margin-top: 26px; }
.sec-h h2 { font-size: 16px; letter-spacing: .06em; }
.sec-h::after { content: ""; flex: 1; height: 1px; align-self: center; background: linear-gradient(90deg, rgba(60, 243, 177, .3), transparent); order: 3; }

/* 精选卡片 */
.fgrid { gap: 12px; }
@media (min-width: 720px) { .fgrid { grid-template-columns: 1fr 1fr; } }
body.theme-q .fcard { border-radius: 18px; padding: 16px 16px 13px; transition: transform .2s ease, box-shadow .2s ease; }
body.theme-q .fcard::after { /* 扫光 */
  content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .06), transparent); transform: skewX(-18deg); transition: left .7s ease;
}
body.theme-q .fcard:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -16px rgba(60, 243, 177, .35); }
body.theme-q .fcard:hover::after { left: 120%; }
.crest { width: 50px; height: 50px; font-size: 20px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .14), 0 0 0 4px rgba(60, 243, 177, .06), 0 8px 18px rgba(0, 0, 0, .45); }
.fc-time { font-family: var(--num); font-size: 30px; letter-spacing: .06em; }
.fc-cta::after { content: " →"; transition: margin .2s; }
.fcard:hover .fc-cta::after { margin-left: 3px; }

/* 列表 */
body.theme-q .slist { border-radius: 16px; }
.srow { border-top-color: rgba(255, 255, 255, .05); transition: background .15s; }
.sr-time { font-family: var(--num); font-size: 19px; }
.srow.is-live .sr-time { color: var(--q); }

/* 实时比分 */
.live-slot:empty { display: none; }
.live-slot { display: inline-flex; align-items: center; gap: 6px; }
.lv { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
.lv.on { color: #ff6b6b; background: rgba(255, 80, 80, .12); box-shadow: inset 0 0 0 1px rgba(255, 80, 80, .35); }
.lv.on i { width: 6px; height: 6px; border-radius: 50%; background: #ff5050; animation: blink 1.2s infinite; }
.lv.ht { color: var(--gold); background: rgba(227, 176, 75, .12); }
.lv.done { color: var(--ink-2); background: rgba(255, 255, 255, .07); }
.lv-s { font-family: var(--num); font-size: 18px; font-weight: 700; color: #fff; letter-spacing: .04em; }
@keyframes blink { 50% { opacity: .25; } }
.fc-mid .live-slot { flex-direction: column; gap: 2px; margin-top: 4px; }
.fc-mid .lv-s { font-size: 26px; }

/* 详情页 hero */
.mhero { border-radius: 20px; padding: 16px 16px 14px; margin: 10px 0 12px; overflow: hidden; }
.mhero::after { content: ""; position: absolute; left: 50%; top: -60px; width: 260px; height: 160px; transform: translateX(-50%); pointer-events: none;
  background: radial-gradient(closest-side, rgba(60, 243, 177, .18), transparent); }
.mh-meta { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 12px; color: var(--ink-3); position: relative; z-index: 1; }
.mh-league { color: var(--q); font-size: 11px; letter-spacing: .12em; }
.mh-vs { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin: 16px 0 10px; position: relative; z-index: 1; }
.mh-team { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.mh-team b { font-size: 16px; line-height: 1.25; }
.mh-team small { font-size: 11px; color: var(--ink-3); }
.mh-team .crest { width: 60px; height: 60px; font-size: 24px; }
.mh-center { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.mh-center .board { min-width: 112px; }
.mh-center .board .s { font-size: 40px; }
.mhero .lock { text-align: center; font-size: 12px; color: var(--ink-3); margin: 4px 0 0; position: relative; z-index: 1; }
.mhero .summary { position: relative; z-index: 1; margin: 12px 0 0; padding: 10px 12px 10px 14px; border-radius: 12px; font-size: 14px; color: var(--ink);
  background: rgba(60, 243, 177, .06); border-left: 3px solid var(--q); }

/* 推荐表 */
body.theme-q table.rec th { color: var(--ink-3); font-weight: 500; }
body.theme-q table.rec tr { border-color: rgba(255, 255, 255, .05); }
body.theme-q table.rec td.p { font-weight: 700; color: #fff; }
body.theme-q .score-row .sc { background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02)); border: 1px solid rgba(255, 255, 255, .06); border-radius: 10px; }
body.theme-q .score-row .sc b { font-family: var(--num); font-size: 20px; }
body.theme-q .score-row .sc.hit { border-color: var(--red); box-shadow: 0 0 12px rgba(230, 60, 60, .35); }
body.theme-q td.r.red, .stamp.red { text-shadow: 0 0 10px rgba(255, 70, 70, .45); }

/* 底部导航 */
body.theme-q .tabbar { background: rgba(6, 14, 12, .78); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); border-top: 1px solid rgba(255, 255, 255, .06); }
body.theme-q .tabbar a { position: relative; transition: color .2s; }
body.theme-q .tabbar a.on::before { content: ""; position: absolute; top: 0; left: 50%; width: 26px; height: 2px; transform: translateX(-50%); border-radius: 2px; background: var(--q); box-shadow: 0 0 10px var(--q); }
body.theme-q .tabbar a.on svg { filter: drop-shadow(0 0 6px rgba(60, 243, 177, .6)); }

/* 加载骨架 */
.skel { display: grid; gap: 12px; margin-top: 18px; }
.skel i { display: block; height: 86px; border-radius: 16px; background: linear-gradient(90deg, rgba(255, 255, 255, .03) 25%, rgba(255, 255, 255, .08) 37%, rgba(255, 255, 255, .03) 63%); background-size: 400% 100%; animation: shimmer 1.3s ease infinite; }
.skel i:first-child { height: 130px; }
@keyframes shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

@media (prefers-reduced-motion: reduce) {
  #app, .skel i, .lv.on i { animation: none; }
  body.theme-q .fcard, body.theme-q .fcard::after { transition: none; }
}
.sr-meta { white-space: nowrap; overflow: hidden; }
.st { white-space: nowrap; }
.srow.is-live .sr-side .conf { display: none; }
.fcard.is-live .fc-date { display: none; }

/* =================== 即时比分 / 比赛直播 =================== */
.seg { display: inline-flex; padding: 3px; margin-top: 14px; border-radius: 12px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .07); }
.seg a { padding: 7px 18px; border-radius: 9px; font-size: 14px; color: var(--ink-2); text-decoration: none; transition: background .2s, color .2s; }
.seg a[aria-selected="true"] { color: #032018; font-weight: 700; background: linear-gradient(90deg, #22e07f, #3cf3b1); box-shadow: 0 4px 14px -4px rgba(60, 243, 177, .6); }
.lv-hero { margin-bottom: 10px; }
.lv-tabs { position: sticky; top: 52px; z-index: 5; display: flex; gap: 4px; margin: 0 -16px; padding: 8px 16px; background: rgba(5, 12, 10, .86); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255, 255, 255, .05); }
.lv-tabs button { flex: 1; border: 0; background: none; color: var(--ink-3); font: inherit; font-size: 14px; padding: 6px 0; border-radius: 8px; cursor: pointer; position: relative; }
.lv-tabs button[aria-selected="true"] { color: var(--q); font-weight: 700; }
.lv-tabs button[aria-selected="true"]::after { content: ""; position: absolute; left: 35%; right: 35%; bottom: -2px; height: 2px; border-radius: 2px; background: var(--q); box-shadow: 0 0 8px var(--q); }
.lv-tabs .n { margin-left: 3px; font-size: 11px; color: var(--ink-3); font-family: var(--num); }
.lv-tabs button[data-lt="live"] .n:not(:empty) { color: #ff6b6b; }
.lv-sec h3 { display: flex; align-items: center; gap: 8px; margin: 18px 2px 8px; font-size: 13px; letter-spacing: .08em; color: var(--ink-2); }
.lv-sec h3 span { font-family: var(--num); color: var(--ink-3); }
.lv-sec h3::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(255, 255, 255, .08), transparent); }
.lv-list { display: grid; gap: 8px; }
.lrow { display: block; text-decoration: none; padding: 10px 12px 9px; border-radius: 14px; background: var(--glass, rgba(255,255,255,.03)), rgba(9, 20, 17, .78); border: 1px solid rgba(255, 255, 255, .06); transition: border-color .2s, background .2s; }
.lrow:hover { border-color: rgba(60, 243, 177, .35); }
.lrow.live { border-color: rgba(255, 80, 80, .28); background: linear-gradient(90deg, rgba(255, 70, 70, .07), transparent 40%), rgba(9, 20, 17, .82); }
.lr-meta { display: flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--ink-3); }
.lr-lg { color: hsl(var(--h) 75% 70%); background: hsl(var(--h) 60% 50% / .14); border-radius: 5px; padding: 0 6px; font-weight: 600; white-space: nowrap; }
.lr-st { margin-left: auto; font-weight: 700; font-size: 12px; color: var(--ink-2); display: inline-flex; align-items: center; gap: 4px; font-family: var(--num); }
.lr-st.on { color: #ff5f5f; }
.lr-st.on i { width: 6px; height: 6px; border-radius: 50%; background: #ff5050; animation: blink 1.2s infinite; }
.lr-st.ht { color: var(--gold); }
.lr-st.done { color: var(--ink-3); }
.lr-vs { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; margin-top: 6px; }
.lr-t { font-size: 15px; font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: flex; align-items: center; gap: 5px; }
.lr-t.h { justify-content: flex-end; text-align: right; }
.lr-sc { min-width: 64px; text-align: center; font-size: 22px; font-weight: 700; color: #fff; letter-spacing: .02em; }
.lr-sc i { font-style: normal; color: var(--ink-3); margin: 0 5px; font-size: 16px; }
.lrow.live .lr-sc { color: #ff7070; text-shadow: 0 0 14px rgba(255, 80, 80, .35); }
.lr-sc .vs { font-size: 12px; color: var(--ink-3); letter-spacing: .1em; }
.lr-sub { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 5px; font-size: 11.5px; color: var(--ink-3); flex-wrap: wrap; }
.lr-sub > b { color: rgba(255, 255, 255, .15); font-weight: 400; }
.card { display: inline-grid; place-items: center; width: 9px; height: 12px; border-radius: 2px; font-style: normal; font-size: 8px; font-weight: 700; color: #fff; flex: none; }
.card.rc { background: #e5383b; }
.card.yc { background: #f5c542; }
.lv-note { text-align: center; font-size: 12px; color: var(--ink-3); margin: 16px 0 4px; }

/* 进球闪烁 */
.goal-flash { animation: goalFlash 2.4s ease 2; }
@keyframes goalFlash { 0%, 100% { box-shadow: none; } 30% { box-shadow: 0 0 0 2px #ff5050, 0 0 30px rgba(255, 80, 80, .5); } }

/* 详情：比赛直播面板 */
.livebox h2 { justify-content: flex-start; }
.lb-upd { margin-left: auto; font-size: 11px; font-weight: 400; color: var(--ink-3); letter-spacing: 0; }
.lb-head { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; margin: 6px 0 10px; }
.lb-head .lv { justify-self: start; font-size: 12px; }
.lb-score { font-family: var(--num); font-size: 38px; line-height: 1; color: #fff; letter-spacing: .04em; }
.lb-score i { font-style: normal; color: var(--ink-3); margin: 0 6px; }
.lb-ht { justify-self: end; font-size: 12px; color: var(--ink-3); }
.lb-prog { position: relative; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .07); overflow: hidden; }
.lb-prog i { position: absolute; inset: 0 auto 0 0; border-radius: 4px; background: linear-gradient(90deg, #22e07f, #3cf3b1); box-shadow: 0 0 10px rgba(60, 243, 177, .6); transition: width .6s; }
.lb-prog span { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(0, 0, 0, .6); }
.lb-tabs { display: flex; gap: 6px; margin: 14px 0 6px; }
.lb-tabs button { flex: 1; border: 1px solid rgba(255, 255, 255, .08); background: none; color: var(--ink-2); font: inherit; font-size: 13px; padding: 6px 0; border-radius: 9px; cursor: pointer; }
.lb-tabs button[aria-selected="true"] { color: var(--q); border-color: var(--q); background: rgba(60, 243, 177, .08); }
.lb-empty { text-align: center; padding: 14px 0 4px; }
.tline { list-style: none; margin: 0; padding: 4px 0; position: relative; }
.tline::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: rgba(255, 255, 255, .08); }
.tline li { display: grid; grid-template-columns: 1fr 48px 1fr; align-items: center; gap: 8px; padding: 7px 0; position: relative; }
.tline .em { justify-self: center; font-size: 13px; font-weight: 700; color: var(--q); background: #0b1714; border: 1px solid rgba(60, 243, 177, .3); border-radius: 999px; padding: 1px 8px; z-index: 1; }
.tline .eh, .tline .ea { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tline .eh { justify-content: flex-end; text-align: right; }
.tline .en { min-width: 0; display: flex; flex-direction: column; }
.tline .en b { font-size: 13px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.tline .en em { font-style: normal; font-size: 11px; color: var(--ink-3); }
.tline .ei { font-size: 16px; }
.tline .card { width: 11px; height: 15px; }
.srow2 { display: grid; grid-template-columns: 52px 1fr 52px; align-items: center; row-gap: 5px; padding: 7px 0; font-size: 13px; }
.srow2 > span { text-align: center; color: var(--ink-2); }
.srow2 > b:last-of-type { text-align: right; }
.srow2 .sbar { grid-column: 1 / -1; display: flex; gap: 4px; height: 5px; }
.srow2 .sbar i { border-radius: 3px; min-width: 2px; }
.srow2 .sbar .l { background: linear-gradient(90deg, #138a62, #3cf3b1); margin-left: auto; }
.srow2 .sbar .r { background: linear-gradient(90deg, #7aa7ff, #3d63c9); }
.srow2 .sbar { justify-content: center; }
@media (prefers-reduced-motion: reduce) { .goal-flash, .lr-st.on i { animation: none; } }

/* 入口页：最近一日战绩 */
.g-lastday { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 14px auto 4px; padding: 10px 18px; max-width: 420px;
  border-radius: 999px; text-decoration: none; color: var(--ink, #e9f3ef);
  background: linear-gradient(90deg, rgba(229, 56, 59, .16), rgba(60, 243, 177, .08)); box-shadow: inset 0 0 0 1px rgba(229, 56, 59, .35), 0 0 24px rgba(229, 56, 59, .15); }
.gl-l { font-size: 13px; letter-spacing: .1em; color: #ffd0d0; }
.gl-r, .gl-b { font-family: var(--num); font-size: 30px; line-height: 1; }
.gl-r { color: #ff5a5f; text-shadow: 0 0 14px rgba(255, 70, 70, .5); }
.gl-b { color: #b9c4c0; }
.gl-r i, .gl-b i { font-style: normal; font-family: var(--cn); font-size: 14px; margin-left: 2px; }
.gl-more { font-size: 12px; color: var(--ink-3, #6e857d); }

/* =================== AI 分析师 / 站队 / 比赛聊天室 / 进球弹窗 =================== */
.ana-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.ana { border-radius: 12px; padding: 10px 11px; background: rgba(255, 255, 255, .035); border: 1px solid rgba(255, 255, 255, .06); }
.ana-h { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.ana-h em { font-style: normal; font-size: 11px; color: var(--ink-3); }
.ana-h .rbadge { margin-left: auto; }
.ana-ic { font-size: 16px; }
.ana-p { display: flex; align-items: baseline; gap: 8px; margin: 6px 0 2px; }
.ana-p b { font-size: 17px; color: var(--q, var(--pitch)); }
.ana-p .num { font-size: 18px; font-weight: 700; }
.ana-p span:not(.num) { font-size: 12px; color: var(--ink-2); }
.ana p { margin: 4px 0 0; font-size: 12.5px; color: var(--ink-2); line-height: 1.5; }
.ana-rank { display: grid; gap: 10px; }
@media (min-width: 720px) { .ana-rank { grid-template-columns: 1fr 1fr; } }
.ana-card { margin: 0; }
.ac-top { display: flex; align-items: center; gap: 10px; }
.ac-ic { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; background: radial-gradient(circle at 35% 30%, rgba(60, 243, 177, .3), rgba(60, 243, 177, .05)); box-shadow: 0 0 0 1.5px rgba(60, 243, 177, .35); }
.ac-nm b { display: block; font-size: 16px; }
.ac-nm em { font-style: normal; font-size: 12px; color: var(--ink-3); }
.ac-rate { margin-left: auto; text-align: right; }
.ac-rate b { display: block; font-size: 26px; line-height: 1; color: var(--q, var(--pitch)); }
.ac-rate span { font-size: 11px; color: var(--ink-3); }
.ac-desc { margin: 8px 0 6px; font-size: 13px; color: var(--ink-2); }
.ac-stats { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 12px; color: var(--ink-3); }
.ac-stats b { color: var(--ink); }
.ac-stats .hot { color: #ff6b6b; font-weight: 700; }
.ac-marks { display: flex; gap: 4px; margin-top: 8px; }
.ac-marks i { font-style: normal; font-size: 11px; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 5px; }
.ac-marks i.r { background: var(--red); color: #fff; }
.ac-marks i.b { background: rgba(255, 255, 255, .08); color: var(--ink-3); }
.g-ana { list-style: none; margin: 0; padding: 0; }
.g-ana li { display: grid; grid-template-columns: 24px auto 1fr auto; gap: 8px; align-items: center; padding: 6px 0; border-top: 1px solid rgba(255, 255, 255, .05); font-size: 13px; }
.g-ana li:first-child { border-top: 0; }
.g-ana em { font-style: normal; font-size: 11px; color: var(--ink-3); }
.stand-res { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 10px; padding: 8px 10px; border-radius: 10px; background: rgba(60, 243, 177, .06); font-size: 13px; }
.vote button.win { box-shadow: inset 0 0 0 2px var(--red); }
.mc-act { font-size: 12px; font-weight: 400; margin-left: auto; }
.mc-list { max-height: 320px; min-height: 120px; overflow-y: auto; }
#goalPop { position: fixed; left: 50%; top: 64px; z-index: 60; transform: translate(-50%, calc(-100% - 90px)); visibility: hidden; transition: transform .35s cubic-bezier(.2, .9, .3, 1.2), visibility 0s .35s; width: min(92vw, 380px); }
#goalPop.show { transform: translate(-50%, 0); visibility: visible; transition: transform .35s cubic-bezier(.2, .9, .3, 1.2); }
#goalPop .gp-in { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "tag tag" "ball sc" "ball who"; gap: 2px 12px; align-items: center; text-decoration: none; color: #fff;
  padding: 12px 16px; border-radius: 16px; background: linear-gradient(135deg, #b3122a, #e5383b 55%, #ff7a45); box-shadow: 0 18px 40px -10px rgba(229, 56, 59, .7), 0 0 0 1px rgba(255, 255, 255, .15) inset; }
.gp-tag { grid-area: tag; font-size: 11px; letter-spacing: .1em; opacity: .85; }
.gp-ball { grid-area: ball; font-size: 34px; animation: spin 1.2s ease 2; }
.gp-sc { grid-area: sc; display: flex; align-items: center; gap: 8px; min-width: 0; }
.gp-sc em { font-style: normal; font-size: 14px; font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gp-sc b { font-family: var(--num); font-size: 26px; }
.gp-sc b i { font-style: normal; opacity: .7; margin: 0 2px; }
.gp-who { grid-area: who; font-size: 12px; opacity: .9; }
.gp-x { position: absolute; right: 8px; top: 6px; border: 0; background: none; color: #fff; font-size: 18px; cursor: pointer; opacity: .8; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #goalPop { transition: none; } .gp-ball { animation: none; } }

.seg button { border: 0; background: none; color: var(--ink-2); font: inherit; font-size: 14px; padding: 7px 16px; border-radius: 9px; cursor: pointer; }
.seg button[aria-pressed="true"] { color: #032018; font-weight: 700; background: linear-gradient(90deg, #22e07f, #3cf3b1); box-shadow: 0 4px 14px -4px rgba(60, 243, 177, .6); }
.ana { position: relative; }
.ana-h { flex-wrap: wrap; padding-right: 34px; }
.ana-h b { white-space: nowrap; }
.ana-h em { flex-basis: 100%; margin-left: 22px; margin-top: -2px; }
.ana-h .rbadge { position: absolute; right: 10px; top: 10px; margin: 0; }

/* 永久会员专享锁 */
.vip-lock { text-align: center; padding: 22px 18px; background: linear-gradient(160deg, rgba(227, 176, 75, .14), rgba(9, 20, 17, .9) 55%) !important; border: 1px solid rgba(227, 176, 75, .35) !important; }
.vip-lock .vl-ic { font-size: 40px; filter: drop-shadow(0 0 12px rgba(227, 176, 75, .6)); }
.vip-lock h2 { justify-content: center; color: #f3d48a; margin: 6px 0 8px; }
.vip-lock h2::before { display: none; }
.vip-lock p { font-size: 13.5px; color: var(--ink-2); margin: 6px 0; }
.vip-lock .vl-note b { color: #f3d48a; }
.vip-lock .vl-go { display: inline-block; margin-top: 10px; padding: 10px 22px; border-radius: 999px; text-decoration: none; background: linear-gradient(90deg, #e3b04b, #f6d77e) !important; color: #2a1c00 !important; font-weight: 700; }
.vip-lock.small { padding: 16px 14px; }
.vip-lock.small .vl-ic { font-size: 30px; }

/* 续费 */
.renew-box .warn-t { color: #ff7a6b; }
.link-sm { display: inline-block; margin-top: 10px; font-size: 13px; color: var(--q, var(--pitch)); background: none; border: 0; cursor: pointer; font-family: inherit; padding: 0; text-decoration: none; }
.g-renew-t { display: block; margin: 10px auto 0; color: var(--ink-3, #6e857d); text-decoration: underline; }
.g-renew { margin-top: 12px; }
.g-renew input { width: 100%; box-sizing: border-box; margin: 6px 0; border-radius: 12px; padding: 12px 14px; font: inherit; border: 1px solid rgba(60, 243, 177, .3); background: rgba(255, 255, 255, .04); color: var(--ink, #e9f3ef); }
.pl-done { margin-top: 10px; }
.pl-done summary { cursor: pointer; font-size: 13px; color: var(--ink-3); padding: 8px 2px; }
