/* ============================================================
   2026 世界杯 - 预测指挥中心  「WE ARE 26」
   语言: trophy-grade monochrome / black-white-gold 官方单色
   设计 DNA: 方块 + 四分之一圆(球场方角 + 足球)
             48 单元(48 个参赛国) -> 概率条离散方块
   taste-skill: VARIANCE 5 / MOTION 4 / DENSITY 8
   原则: 黑+白+金 单色锁定 / display+mono+body 三字族
         无 outer glow(辉光只留给顶部 LED 条这一处有动机的隐喻)
   ============================================================ */

@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(fonts/Oswald.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/NotoSans.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(fonts/JetBrainsMono.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
}

:root{
  /* 面 - 炭墨近黑(非纯黑,§9.A),呼应官方单色基底 */
  --bg:#0b0b0d;
  --bg-elev:#131316;          /* 状态格/输入底 */
  --bg-card:#16161a;          /* 数据行底,刻意接近 bg(§4.4 DENSITY>7 卡片要平) */
  --bg-card-hi:#1c1c22;       /* hover */
  --line:#26262b;             /* 1px 分隔线 */
  --line-hi:#3a3a42;

  /* 文 - 象牙暖白(呼应金的暖调,非冷白) */
  --text:#f4f1e8;
  --text-dim:#9a948a;         /* 暖灰 */
  --text-mute:#5e5a52;        /* 深暖灰 */

  /* 主金 - 大力神杯金,锁定全页(§4.2 Color Consistency Lock) */
  --gold:#c9a961;             /* 标准金 - 强调 / 主胜 */
  --gold-hi:#e8cf85;          /* 浅香槟金 - 高光 / 客胜 */
  --gold-low:#8a6f3a;         /* 深古铜金 - 平局 */
  --gold-dim:rgba(201,169,97,.13);
  --gold-line:rgba(201,169,97,.32);

  /* 三态概率色 - 纯金明度阶梯(L 差>30),非装饰(§4.2 override)
     home=金(中) / draw=深金(低) / away=浅金(高) */
  --home:var(--gold);
  --draw:var(--gold-low);
  --away:var(--gold-hi);

  /* 功能反馈色 - 降饱和,融入单色基调(跨文化通用语义) */
  --signal-ok:#6fb585;        /* 已结束/在线(克制绿) */
  --signal-err:#c25450;       /* 失败/直播(克制红) */
  --gold-top:#e8cf85;         /* 榜首高光,同 gold-hi */

  /* 字族 - Oswald(几何 condensed) + Noto Sans(官方次要字体) + JetBrains Mono */
  --ff-display:'Oswald','PingFang SC','Microsoft YaHei',sans-serif;
  --ff-mono:'JetBrains Mono',ui-monospace,'PingFang SC',monospace;
  --ff-body:'Noto Sans','Noto Sans SC','PingFang SC','Microsoft YaHei',system-ui,sans-serif;

  /* 圆角系统 - 一套规则,不混用(§4.4 Shape Consistency Lock) */
  --r-container:10px;         /* 卡片/抽屉/容器 */
  --r-interactive:8px;        /* 按钮/状态格 */
  --r-bar:3px;                /* 细数据条 */
  --r-tag:4px;                /* 小标签 */
  --r-pill:999px;             /* 筛选 chip 全圆角 */
  --r-cell:2px;               /* 48 方块单元 */

  /* 阴影 - 调到背景色调,非纯黑 drop(§4.4) */
  --shadow-tint:0 10px 30px -8px rgba(0,0,0,.55);
  --shadow-drawer:-24px 0 60px -10px rgba(0,0,0,.6);

  --ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow-x:clip}
body{
  font-family:var(--ff-body);
  color:var(--text);
  background:
    radial-gradient(ellipse at 12% -8%, rgba(201,169,97,.05), transparent 42%),
    radial-gradient(ellipse at 92% 108%, rgba(201,169,97,.03), transparent 42%),
    var(--bg);
  background-attachment:fixed;
  line-height:1.4;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* 战术板点阵 - 固定 pointer-events:none 伪元素(§6.E DOM cost) */
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.022) 1px,transparent 1px);
  background-size:22px 22px;
}

.mono{font-family:var(--ff-mono);font-variant-numeric:tabular-nums}
.dim{color:var(--text-mute)}
.accent{color:var(--gold-hi)}

/* ── 顶部 LED 条 - 唯一保留的辉光:金色广播室 LED 隐喻,有动机(§5 MOTION MUST BE MOTIVATED) ── */
.led-strip{
  height:2px;
  background:linear-gradient(90deg,transparent,var(--gold) 18%,var(--gold-hi) 50%,var(--gold) 82%,transparent);
  box-shadow:0 0 10px -1px rgba(201,169,97,.5);
  position:relative;z-index:5;
}

/* ── Header ─────────────────────────────────────── */
.cmd-header{
  position:relative;z-index:3;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:nowrap;gap:14px;
  padding:20px 22px 18px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(19,19,22,.88),rgba(11,11,13,.2));
}
.brand{flex-shrink:0;min-width:0}                /* 不让标题被压扁 */
.status-cluster{
  flex-wrap:nowrap;flex-shrink:0;                 /* 默认单行(宽屏) */
}
.brand{display:flex;align-items:center;gap:13px}
/* 品牌 mark:官方几何 DNA - 方块 + 四分之一圆切口(球场方角+足球),
   纯 CSS 拼合,替代 emoji(§3.D)。无外发光(§9.A)。 */
.brand-mark{
  width:22px;height:22px;position:relative;flex-shrink:0;
}
.brand-mark::before{                            /* 金色方块 */
  content:'';position:absolute;inset:0;
  background:var(--gold);
  border-radius:3px;
}
.brand-mark::after{                             /* 右上四分之一圆切口 - 官方母题 */
  content:'';position:absolute;top:0;right:0;
  width:11px;height:11px;
  background:var(--bg);
  border-bottom-left-radius:11px;
}
.brand-title{
  font-family:var(--ff-display);font-weight:700;
  font-size:30px;line-height:.95;letter-spacing:.04em;
  color:var(--text);
}
.brand-title .year{color:var(--gold)}          /* 纯色,去 text-shadow glow(§9.A) */
.brand-sub{
  font-family:var(--ff-mono);font-size:10px;letter-spacing:.3em;
  color:var(--text-dim);text-transform:uppercase;margin-top:5px;
}
.brand-sub .rally{color:var(--gold-hi);letter-spacing:.2em}

.status-cluster{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap}
.status-cell,.meta-key,.meta-val{white-space:nowrap}     /* 状态栏不换行,稳定宽度 */
.lang-current{white-space:nowrap}                        /* 语言按钮文字不换行 */
.status-cell{
  display:flex;align-items:center;gap:8px;padding:7px 13px;
  background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-interactive);
}
.meta-key{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute)}
.meta-val{font-size:13px;color:var(--text)}
.meta-val.accent{color:var(--gold-hi);font-weight:700}

/* live-dot 保留:它是后台更新状态的真实语义编码(§9.F override) */
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--text-mute)}
.live-dot.ok{background:var(--signal-ok);animation:pulse 2.6s var(--ease) infinite}
.live-dot.busy{background:var(--gold);animation:pulse 1s var(--ease) infinite}
.live-dot.err{background:var(--signal-err);animation:pulse 1s var(--ease) infinite}
.status-label{font-size:12.5px;font-weight:600}

.refresh-btn{
  font-family:var(--ff-body);font-weight:800;font-size:12.5px;
  letter-spacing:.03em;color:#0b0b0d;                       /* 金底深字,对比>7:1(§4.5) */
  background:var(--gold);
  border:none;border-radius:var(--r-interactive);padding:10px 16px;cursor:pointer;
  display:inline-flex;align-items:center;gap:7px;
  transition:transform .12s var(--ease),background .15s;
}
.refresh-btn:hover{background:var(--gold-hi);transform:translateY(-1px)}
.refresh-btn:active{transform:translateY(0) scale(.98)}     /* tactile push(§4.5) */
.refresh-btn.spinning .refresh-ico{animation:spin .8s linear infinite}
.refresh-ico{font-size:15px;line-height:1}

/* 切换应用:描边次级按钮,与 refresh-btn 实心主按钮区分 */
.switch-app{
  font-family:var(--ff-body);font-weight:700;font-size:12px;letter-spacing:.04em;
  color:var(--gold-hi);background:transparent;
  border:1px solid var(--gold);border-radius:var(--r-interactive);
  padding:9px 14px;text-decoration:none;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
  transition:background .15s,transform .12s var(--ease);
}
.switch-app:hover{background:rgba(201,169,97,.12);transform:translateY(-1px)}
.switch-app:active{transform:translateY(0) scale(.98)}

/* ── 语言切换器 (header 角标) ────────────────── */
.lang-switch{position:relative;display:inline-flex;align-items:center}
.lang-btn{
  font-family:var(--ff-body);font-weight:700;font-size:12px;letter-spacing:.04em;
  color:var(--gold-hi);background:rgba(201,169,97,.06);
  border:1px solid rgba(201,169,97,.4);border-radius:var(--r-interactive);
  padding:8px 12px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
  transition:background .15s,transform .12s var(--ease);
  min-height:38px;
}
.lang-btn:hover{background:rgba(201,169,97,.18);transform:translateY(-1px)}
.lang-btn[aria-expanded="true"]{background:rgba(201,169,97,.22)}
.lang-current{display:inline-flex;align-items:center;gap:4px;line-height:1}
.lang-arrow{font-size:10px;opacity:.7;transition:transform .2s var(--ease)}
.lang-btn[aria-expanded="true"] .lang-arrow{transform:rotate(180deg)}
.lang-menu{
  position:absolute;top:calc(100% + 6px);right:0;z-index:100;
  min-width:170px;background:#16161a;border:1px solid var(--line);
  border-radius:var(--r-interactive);box-shadow:0 8px 24px rgba(0,0,0,.45);
  padding:4px;display:flex;flex-direction:column;gap:2px;
  animation:langDrop .14s var(--ease);
}
.lang-menu[hidden]{display:none}                    /* 覆盖 flex,让 [hidden] 真正隐藏 */
@keyframes langDrop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.lang-opt{
  font-family:var(--ff-body);font-weight:600;font-size:12.5px;letter-spacing:.02em;
  color:var(--text-dim);background:transparent;border:none;border-radius:8px;
  padding:9px 12px;cursor:pointer;text-align:left;
  display:flex;align-items:center;gap:8px;
  transition:background .12s,color .12s;
}
.lang-opt:hover{background:rgba(201,169,97,.12);color:var(--text)}
.lang-opt.active{background:rgba(201,169,97,.2);color:var(--gold-hi);font-weight:700}
.lang-opt .opt-flag{font-size:14px;line-height:1}

/* ── RTL (Arabic) ──────────────────────────────────────
   flex-direction:row 在 dir=rtl 下天然就是右→左主轴,无需 row-reverse 覆盖。
   早期 row-reverse 把布局又翻回 LTR,反而错。这里只保留真正需要镜像的属性。 */
[dir="rtl"] .lang-menu{right:auto;left:0}        /* 弹层对齐到左边缘 */

/* ── Tabs ─────────────────────────────────────── */
.tabs{display:flex;gap:2px;padding:0 36px;border-bottom:1px solid var(--line);position:relative;z-index:2}
.tab{
  font-family:var(--ff-body);font-weight:700;font-size:13.5px;
  background:none;border:none;color:var(--text-dim);cursor:pointer;
  padding:14px 20px 13px;position:relative;letter-spacing:.02em;
  display:inline-flex;align-items:center;gap:9px;transition:color .15s;
  white-space:nowrap;                              /* 切换语言不换行,稳定布局 */
}
.tab:hover{color:var(--text)}
.tab.active{color:var(--gold-hi)}
.tab.active::after{                            /* 去 glow,纯金条 */
  content:'';position:absolute;left:14px;right:14px;bottom:-1px;height:2px;
  background:var(--gold);
}

/* ── Deck ─────────────────────────────────────── */
.deck{position:relative;z-index:1;padding:26px 36px 60px;max-width:1500px;margin:0 auto}
.panel{display:none}
.panel.active{display:block;animation:fadeUp .4s var(--ease) both}

.panel-title{
  font-family:var(--ff-display);font-weight:600;font-size:22px;
  letter-spacing:.03em;color:var(--text);margin-bottom:18px;
}

/* ── 赛程筛选 ─────────────────────────────────── */
.panel-controls{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:14px;margin-bottom:22px;
}
.filter-group{display:flex;gap:6px;flex-wrap:wrap}
.chip{
  font-family:var(--ff-body);font-weight:600;font-size:12px;
  background:var(--bg-elev);border:1px solid var(--line);color:var(--text-dim);
  padding:6px 14px;border-radius:var(--r-pill);cursor:pointer;transition:all .15s var(--ease);
}
.chip:hover{border-color:var(--line-hi);color:var(--text)}
.chip.active{background:var(--gold-dim);border-color:var(--gold-line);color:var(--gold-hi)}
.legend{display:flex;gap:14px;font-size:11px;color:var(--text-dim)}
.leg{display:inline-flex;align-items:center;gap:6px}
.leg .dot{width:8px;height:8px;border-radius:2px;display:inline-block}    /* 方块,呼应几何母题 */
.dot.upcoming{background:var(--text-mute)}
.dot.today{background:var(--gold)}
.dot.finished{background:var(--signal-ok)}

/* ── 赛程列表 ─────────────────────────────────── */
.schedule-list{display:flex;flex-direction:column;gap:26px}
.day-block{animation:fadeUp .4s var(--ease) both}
.hist-fold{margin-top:8px;padding-top:18px;border-top:1px dashed var(--line)}
.hist-toggle{display:flex;align-items:center;gap:10px;width:100%;justify-content:center;background:var(--bg-elev);border:1px solid var(--line);color:var(--text-mute);font-family:var(--ff-mono);font-size:12px;font-weight:600;letter-spacing:.04em;padding:10px 16px;border-radius:var(--r-tag);cursor:pointer;transition:color .18s,border-color .18s,background .18s}
.hist-toggle:hover{color:var(--gold-hi);border-color:rgba(201,169,97,.42);background:rgba(201,169,97,.06)}
.hist-toggle .hist-count{color:var(--gold);font-weight:700}
.hist-toggle .hist-arrow{margin-left:auto;font-size:11px}
.hist-body{margin-top:14px;display:flex;flex-direction:column;gap:26px}
.hist-top{margin-top:0;margin-bottom:4px;padding:0;border-top:none}
.hist-top .hist-toggle{background:linear-gradient(135deg,rgba(201,169,97,.12),rgba(201,169,97,.03));border-color:rgba(201,169,97,.34);color:var(--text);padding:12px 18px;flex-wrap:wrap}
.hist-top .hist-toggle:hover{background:linear-gradient(135deg,rgba(201,169,97,.18),rgba(201,169,97,.07))}
.hist-top .hist-title{font-size:13px;font-weight:700;color:var(--gold-hi);letter-spacing:.06em;margin-right:8px}
.hist-top .hist-stats{font-size:11.5px;color:var(--text-mute);margin-right:auto}
.hist-top .hist-stats b{color:var(--signal-ok);font-weight:700}
.hist-top .hist-label{color:var(--gold)}
.day-head{
  display:flex;align-items:baseline;gap:14px;margin-bottom:12px;
  padding-bottom:8px;border-bottom:1px solid var(--line);
}
.day-date{font-family:var(--ff-display);font-weight:700;font-size:26px;color:var(--gold-hi);letter-spacing:.04em}
.day-weekday{font-family:var(--ff-mono);font-size:10.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.18em}
.day-count{font-family:var(--ff-mono);font-size:10.5px;color:var(--text-mute);margin-left:auto}

.match-card{
  position:relative;display:grid;
  grid-template-columns:128px 1fr 1fr 1fr;
  gap:0;align-items:center;
  background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-container);
  padding:14px 16px 14px 20px;margin-bottom:10px;
  cursor:pointer;overflow:hidden;
  transition:border-color .15s,background .15s,transform .12s var(--ease);
  animation:rise .45s var(--ease) both;
}
.match-card::before{                             /* 左侧状态条 - 语义编码 */
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--line-hi);transition:background .2s;
}
.match-card[data-status="today"]::before{background:var(--gold)}
.match-card[data-status="finished"]::before{background:var(--signal-ok)}
.match-card[data-status="upcoming"]::before{background:var(--line-hi)}
.match-card:hover{border-color:var(--line-hi);background:var(--bg-card-hi);transform:translateX(2px)}
.match-card.flash{animation:flashGold 1.4s var(--ease)}   /* 得分变化反馈 - 有动机(§5) */

/* no-anim: 非首次重渲染抑制上升动画,保留 flash(轮询时不重复入场) */
.schedule-list.no-anim .match-card{animation:none}

.match-meta{display:flex;flex-direction:column;gap:5px}
.stage-tag{
  font-family:var(--ff-mono);font-size:9.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold-hi);
  background:var(--gold-dim);padding:3px 8px;border-radius:var(--r-tag);width:fit-content;
}
.city-tag{font-family:var(--ff-mono);font-size:10.5px;color:var(--text-mute);letter-spacing:.04em}
.ko-tag{font-family:var(--ff-mono);font-size:10px;font-weight:600;color:var(--gold);letter-spacing:.03em}
.bt-wrap{display:flex;flex-direction:column;gap:18px}
.bt-block{background:var(--bg-card);border:1px solid rgba(201,169,97,.14);border-radius:14px;padding:16px 18px}
.bt-head{display:flex;align-items:baseline;gap:14px;padding-bottom:12px;border-bottom:1px solid rgba(201,169,97,.14);margin-bottom:6px}
.bt-name{font-family:var(--ff-display);font-size:17px;font-weight:600;color:var(--text)}
.bt-rate{font-family:var(--ff-mono);font-size:30px;font-weight:700;color:var(--gold-hi);line-height:1}
.bt-rate small{font-size:14px;color:var(--gold-low)}
.bt-meta{font-family:var(--ff-mono);font-size:11px;color:var(--text-mute);margin-left:auto}
.bt-matches{max-height:460px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}
.bt-row{display:grid;grid-template-columns:36px 1fr auto auto 1fr auto;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;font-size:12px}
.bt-row.ok{box-shadow:inset 2px 0 var(--signal-ok)}
.bt-row.no{box-shadow:inset 2px 0 var(--signal-err)}
.bt-date{font-family:var(--ff-mono);font-size:10.5px;color:var(--text-mute)}
.bt-team{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bt-team.right{justify-self:end}
.bt-score{font-family:var(--ff-mono);font-weight:700;color:var(--gold-hi);font-size:13px}
.bt-probs{font-family:var(--ff-mono);font-size:10px;color:var(--text-mute)}
.bt-mark{font-family:var(--ff-mono);font-size:10px;font-weight:700;white-space:nowrap}
.bt-mark.ok{color:var(--signal-ok)}
.bt-mark.no,.bt-mark.na{color:var(--text-mute)}
.bt-mark.exact{color:var(--gold-hi)}
.bt-rate i{font-style:normal;font-size:10px;color:var(--text-mute);margin-left:5px;letter-spacing:.1em;font-weight:500}
.bt-subrate{font-family:var(--ff-mono);font-size:11px;color:var(--text-mute)}
.bt-subrate b{color:var(--gold);font-weight:700;font-size:13px}
.bt-scoreline{display:flex;align-items:center;gap:9px;font-family:var(--ff-mono);white-space:nowrap}
.bt-pscore{font-size:12px;color:var(--text-mute)}
.bt-pscore.exact{color:var(--gold-hi);font-weight:700}
.bt-real{font-size:13px;font-weight:700;color:var(--gold-hi)}
.pred-score{font-family:var(--ff-mono);font-size:12px;font-weight:700;color:var(--gold-hi);background:rgba(201,169,97,.10);border:1px solid rgba(201,169,97,.30);padding:2px 8px;border-radius:var(--r-tag);letter-spacing:.03em;margin-top:4px;display:inline-flex;align-items:baseline;gap:4px}
.pred-score i{font-style:normal;font-size:9px;font-weight:500;color:var(--text-mute);letter-spacing:.10em}
.hitmark.precise{color:var(--signal-ok);background:rgba(111,181,133,.20)}

.team{display:flex;align-items:center;gap:11px;min-width:0}
.team.home{justify-content:flex-end}
.team .flag{font-size:28px;line-height:1;flex-shrink:0}
.team .name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team .elo{font-family:var(--ff-mono);font-size:10px;color:var(--text-mute)}
.team.home .name-block{text-align:right}
.away .name-block{text-align:left}

.center-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0}
.score-big{
  font-family:var(--ff-display);font-weight:700;font-size:36px;line-height:1;
  letter-spacing:.04em;color:var(--text);
}
.score-big .dash{color:var(--text-mute);margin:0 4px}
.score-big.win-home,.score-big.win-away{color:var(--gold-hi)}

/* ── 48 方块概率条 - 官方 48 单元 DNA(48 个参赛国) ──
   三重编码:① 三档金明度(弱信号) ② 方块填充数(强信号) ③ 百分比数字(精确) */
.probbar{
  display:flex;gap:1px;width:100%;max-width:230px;height:20px;
}
.probbar .cell{
  flex:1;min-width:0;height:100%;
  background:var(--bg-elev);                       /* 未填默认底 */
  border-radius:var(--r-cell);
  transition:background .4s var(--ease);
}
.probbar .cell.home{background:var(--home)}        /* 中金 */
.probbar .cell.draw{background:var(--draw)}        /* 深金 */
.probbar .cell.away{background:var(--away)}        /* 浅金 */
/* 三态百分比标签 - 三重编码第 3 路(精确数字),小字暖灰 */
.problabels{
  display:flex;justify-content:space-between;width:100%;max-width:230px;
  font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.02em;font-variant-numeric:tabular-nums;
}
.problabels .pl{display:inline-flex;align-items:center;gap:3px}
.problabels .pl::before{content:'';width:6px;height:6px;border-radius:1px;display:inline-block}
.problabels .pl.home::before{background:var(--home)}
.problabels .pl.draw::before{background:var(--draw)}
.problabels .pl.away::before{background:var(--away)}
.problabels .pl .pk{color:var(--text-mute)}
.problabels .pl .pv{color:var(--text);font-weight:700}
.topscore{font-family:var(--ff-mono);font-size:10.5px;color:var(--gold-hi);letter-spacing:.04em}
.topscore .tsval{font-weight:700}
/* 命中标记 - 已打场预测 vs 实际的功能反馈 */
.hitmark{font-family:var(--ff-mono);font-size:9.5px;font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:var(--r-tag);text-transform:uppercase;display:inline-block}
.hitmark.hit{color:var(--signal-ok);background:rgba(111,181,133,.12)}
.hitmark.miss{color:var(--text-dim);background:var(--bg-elev)}
.no-elo{font-family:var(--ff-mono);font-size:11px;color:var(--text-mute)}
.src-badge{font-family:var(--ff-mono);font-size:9px;font-weight:700;letter-spacing:.04em;padding:1px 5px;border-radius:var(--r-tag);margin-left:6px;display:inline-block;vertical-align:middle}
.src-badge.odds{color:var(--gold-hi);background:rgba(229,180,75,.14);border:1px solid rgba(229,180,75,.30)}
.src-badge.elo{color:var(--text-dim);background:var(--bg-elev)}

/* ── 夺冠榜 ─────────────────────────────────────── */
.champ-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:22px;flex-wrap:wrap;gap:8px}
.champ-note{font-family:var(--ff-mono);font-size:10.5px;color:var(--text-dim);letter-spacing:.06em}
.champ-list{display:flex;flex-direction:column;gap:8px}
.champ-row{
  display:grid;grid-template-columns:50px 36px 1fr 150px 84px;align-items:center;gap:14px;
  padding:11px 16px;background:var(--bg-card);border:1px solid var(--line);
  border-radius:var(--r-container);animation:rise .4s var(--ease) both;transition:border-color .15s,background .15s;
}
.champ-row:hover{border-color:var(--line-hi);background:var(--bg-card-hi)}
.champ-row .rank{font-family:var(--ff-display);font-weight:700;font-size:28px;color:var(--text-mute);text-align:center;line-height:1}
.champ-row.top1 .rank{color:var(--gold-hi)}
.champ-row.top2 .rank{color:#c9c2b0}
.champ-row.top3 .rank{color:#a08850}
.champ-row .flag{font-size:24px}
.champ-row .cname{font-weight:700;font-size:15px}
.champ-bar{height:10px;background:var(--bg-elev);border-radius:var(--r-bar);overflow:hidden;border:1px solid var(--line)}
.champ-bar-fill{height:100%;background:var(--gold);transition:width .8s var(--ease)}
.champ-row.top1 .champ-bar-fill{background:linear-gradient(90deg,var(--gold),var(--gold-hi))}
.champ-pct{font-family:var(--ff-mono);font-weight:700;font-size:15px;color:var(--gold-hi);text-align:right;font-variant-numeric:tabular-nums}

/* ── 小组榜 ─────────────────────────────────────── */
.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.group-card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-container);padding:16px;animation:rise .4s var(--ease) both}
.group-card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.group-letter{font-family:var(--ff-display);font-weight:700;font-size:24px;color:var(--gold-hi);line-height:1}
.group-label{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.18em;color:var(--text-mute);text-transform:uppercase}
.group-table{width:100%;border-collapse:collapse;font-size:12.5px}
.group-table th{
  font-family:var(--ff-mono);font-size:9px;font-weight:700;color:var(--text-mute);
  text-align:center;padding:4px 2px;letter-spacing:.08em;text-transform:uppercase;
}
.group-table th:first-child{text-align:left;padding-left:2px}
.group-table td{padding:6px 2px;text-align:center;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
.group-table td:first-child{text-align:left;font-weight:600;padding-left:2px}
.group-table .team-cell{display:flex;align-items:center;gap:8px}
.group-table .tflag{font-size:15px}
.group-table .tname{font-size:12.5px}
.group-table .exp{font-family:var(--ff-mono);font-weight:700;color:var(--gold-hi)}
.group-table .pts-cell{font-family:var(--ff-mono);color:var(--text-dim)}
.group-table tr:first-child td{color:var(--signal-ok)}
.group-table tr:first-child .exp{color:var(--signal-ok)}

/* ── Footer ─────────────────────────────────────── */
.cmd-footer{
  position:relative;z-index:1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  padding:20px 36px;border-top:1px solid var(--line);
  font-size:11px;color:var(--text-mute);letter-spacing:.03em;
}

/* footer 底部「词源效能」入口链接 - 与右上角 switch-app 互为冗余 */
.footer-link{
  color:var(--gold);text-decoration:none;letter-spacing:.04em;
  transition:color .15s;
}
.footer-link:hover{color:var(--gold-hi);text-decoration:underline}

/* ── 单场详情抽屉 ─────────────────────────────────── */
.drawer-scrim{
  position:fixed;inset:0;background:rgba(5,5,6,.6);
  opacity:0;pointer-events:none;transition:opacity .25s var(--ease);z-index:50;
}
.drawer-scrim.open{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(440px,92vw);z-index:51;
  background:var(--bg-elev);border-left:1px solid var(--line-hi);
  box-shadow:var(--shadow-drawer);
  transform:translateX(100%);transition:transform .3s var(--ease);
  display:flex;flex-direction:column;
}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}
.drawer-title{font-family:var(--ff-display);font-weight:600;font-size:20px;letter-spacing:.03em}
.drawer-close{background:none;border:none;color:var(--text-dim);font-size:20px;cursor:pointer;padding:4px 8px;line-height:1;border-radius:var(--r-tag)}
.drawer-close:hover{color:var(--text);background:var(--bg-card)}
.drawer-body{padding:22px;overflow-y:auto;flex:1}
.drawer-section{margin-bottom:22px}
.drawer-section h4{font-family:var(--ff-mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute);margin-bottom:10px}
.drawer-teams{display:flex;justify-content:space-between;align-items:center;gap:10px}
.drawer-team{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}
.drawer-team .flag{font-size:36px}
.drawer-team .name{font-weight:700;font-size:14px}
.drawer-team .elo{font-family:var(--ff-mono);font-size:10.5px;color:var(--text-mute)}
.drawer-vs{font-family:var(--ff-display);font-weight:700;font-size:22px;color:var(--text-mute);letter-spacing:.04em}
.scoreline{display:flex;align-items:center;justify-content:center;gap:6px;margin:14px 0}
.scoreline .num{font-family:var(--ff-display);font-weight:700;font-size:44px;color:var(--gold-hi);line-height:1}
.scoreline .num.dash{color:var(--text-mute)}
/* 抽屉概率条 - 同 48 方块,稍高,标签加大 */
.drawer-probbar{height:26px;max-width:none;margin-bottom:8px}
.drawer-probbar .cell{border-radius:var(--r-cell)}
.drawer-problabels{margin-bottom:14px;font-size:11px}
.drawer-problabels .pl{flex-direction:column;align-items:center;gap:2px}
.drawer-problabels .pl::before{display:none}
.drawer-problabels .pl .pk{font-size:11px;color:var(--text-mute);font-weight:600}
.drawer-problabels .pl .pv{font-size:12px}
.stat-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.stat-row:last-child{border-bottom:none}
.stat-row .k{color:var(--text-dim)}
.stat-row .v{font-family:var(--ff-mono);font-weight:600;color:var(--text)}
.top5-list{display:flex;flex-direction:column;gap:6px}
.top5-row{display:flex;align-items:center;gap:12px;font-size:13px}
.top5-row .sc{font-family:var(--ff-mono);font-weight:700;min-width:42px;color:var(--gold-hi)}
.top5-row .bar5{flex:1;height:7px;background:var(--bg-card);border-radius:var(--r-bar);overflow:hidden}
.top5-row .fill5{height:100%;background:var(--gold);transition:width .5s var(--ease)}
.top5-row .p5{font-family:var(--ff-mono);font-size:10.5px;color:var(--text-dim);min-width:48px;text-align:right}

/* ── 动画 ─────────────────────────────────────── */
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(111,181,133,.4)}
  70%{box-shadow:0 0 0 7px rgba(111,181,133,0)}
  100%{box-shadow:0 0 0 0 rgba(111,181,133,0)}
}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes flashGold{
  0%{box-shadow:inset 0 0 0 0 rgba(201,169,97,0);background:var(--bg-card)}
  20%{box-shadow:inset 0 0 0 2px var(--gold);background:rgba(201,169,97,.1)}
  100%{box-shadow:inset 0 0 0 0 rgba(201,169,97,0);background:var(--bg-card)}
}

.placeholder{padding:40px;text-align:center;color:var(--text-mute);font-family:var(--ff-mono);font-size:13px;letter-spacing:.08em}

/* ── Reduced motion 兜底 - MOTION 4>3 强制(§6.B) ── */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .drawer{transition:none}
}

/* ── 响应式 ─────────────────────────────────────── */
@media (max-width:1440px){
  /* 笔记本常见宽度(1366~1440)放下六件套 → 紧凑化:小间距 + 隐藏标签只留值 */
  .status-cluster{gap:6px 8px}
  .status-cell{padding:5px 10px;gap:6px}
  .meta-key{display:none}                        /* LAST UPDATED / NEXT REFRESH 字隐藏,只留值 */
  .meta-val{font-size:12.5px}
  .refresh-btn{padding:7px 12px;font-size:12px}
  .lang-btn{padding:7px 10px;font-size:11.5px}
  .switch-app{padding:7px 12px;font-size:12px}
}
@media (max-width:1280px){
  /* 进一步压紧:状态栏允许内部 wrap 兜底,避免横向溢出 */
  .status-cluster{flex-wrap:wrap;flex-shrink:1;min-width:0;justify-content:flex-end}
}
@media (max-width:860px){
  .cmd-header{padding:16px 18px}
  .tabs,.deck,.cmd-footer{padding-left:18px;padding-right:18px}
  .brand-title{font-size:26px}
  .match-card{grid-template-columns:1fr;gap:10px;padding:14px}
  .match-card::before{width:100%;height:3px;bottom:auto;top:0;left:0;right:0}
  .team.home{justify-content:flex-start}
  .center-cell{order:3}
  .champ-row{grid-template-columns:40px 30px 1fr 72px;gap:10px}
  .champ-row .champ-bar{display:none}
  .group-card-head .group-label{display:none}
  .groups-grid{grid-template-columns:1fr}
}

/* ── 手机细断点 - 平板布局塌缩之后的密度与触摸优化 ── */
@media (max-width:480px){
  .cmd-header{
    flex-wrap:wrap;            /* 让品牌 + 状态栏分两行,不再横向溢出 */
    padding:14px 14px;gap:10px 16px;
  }
  .brand{min-width:0;width:100%}
  .brand-title{font-size:22px}
  .brand-sub{font-size:9px;letter-spacing:.18em;margin-top:3px;white-space:normal}
  /* 状态栏紧凑:独占一行 → 全宽;隐藏标签文字只留值(mono 字体已可辨识),缩小格内距 */
  .status-cluster{gap:6px 8px;width:100%;justify-content:flex-start;flex-wrap:wrap;min-width:0;flex-shrink:1}
  .status-cell{padding:6px 10px;gap:6px;flex-shrink:0}
  .meta-key{display:none}
  .meta-val{font-size:12.5px}
  .refresh-btn{padding:9px 12px;font-size:12px;justify-content:center;min-height:38px;flex:0 1 auto}
  .lang-btn{padding:8px 10px;font-size:11.5px;min-height:38px;flex:0 1 auto}
  .switch-app{padding:9px 12px;font-size:11.5px;justify-content:center;min-height:38px;flex:0 1 auto}

  .tabs{padding:0 14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;margin:0 -14px}
  .tabs::-webkit-scrollbar{display:none}
  .tab{padding:11px 12px;font-size:12.5px;gap:7px;flex-shrink:0}
  .deck{padding:18px 14px 50px}
  .cmd-footer{padding:14px;font-size:10px;gap:6px}

  /* 阶段筛选改横向滚动,省垂直空间(移动端标准模式) */
  .panel-controls{margin-bottom:14px}
  .filter-group{
    flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    margin:0 -14px;padding:0 14px 4px;scrollbar-width:none;
  }
  .filter-group::-webkit-scrollbar{display:none}
  .chip{flex-shrink:0;padding:7px 13px;min-height:32px}
  /* 图例隐藏:卡片左侧色条已做状态编码,移动端省空间 */
  .legend{display:none}

  .day-head{gap:10px;margin-bottom:9px}
  .day-date{font-size:21px}
  .day-weekday{font-size:10px;letter-spacing:.14em}
  .match-card{padding:12px 14px}
  .team{gap:9px}
  .team .name{font-size:14px}
  .team .flag{font-size:24px}
  .score-big{font-size:32px}
  .probbar{height:18px;max-width:100%}
  .problabels{max-width:100%;font-size:9px}
  .problabels .pl{flex-direction:column;align-items:center;gap:1px}
  .problabels .pl::before{display:none}
  .problabels .pl .pk{font-size:10px;color:var(--text-mute);font-weight:600}
  .problabels .pl .pv{font-size:11px}

  .champ-head{margin-bottom:14px}
  .champ-row{grid-template-columns:30px 26px 1fr 66px;gap:9px;padding:9px 12px}
  .champ-row .rank{font-size:22px}
  .champ-row .flag{font-size:21px}
  .champ-row .cname{font-size:14px}
  .champ-pct{font-size:13px}

  .group-card{padding:12px}
  .group-card-head{margin-bottom:9px;padding-bottom:8px}
  .group-letter{font-size:21px}
  .group-table{font-size:12px}
  .group-table .tname{font-size:12px}

  .drawer{width:100vw}
}

/* ── 数据来源面板 ── */
.mkt-summary{font-family:var(--ff-mono);font-size:13px;color:var(--text-dim);margin-bottom:14px;letter-spacing:.02em}
.mkt-summary b{font-weight:700}
.mkt-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--text-mute);margin-bottom:12px}
.mkt-tag{font-family:var(--ff-mono);font-size:10px;font-weight:700;padding:1px 6px;border-radius:var(--r-tag);display:inline-block;min-width:14px;text-align:center}
.mkt-tag.mkt-b{color:#3ee6a8;background:rgba(62,230,168,.14);border:1px solid rgba(62,230,168,.32)}
.mkt-tag.mkt-a{color:var(--gold-hi);background:rgba(229,180,75,.14);border:1px solid rgba(229,180,75,.30)}
.mkt-tag.mkt-e{color:var(--text-dim);background:var(--bg-elev);border:1px solid var(--border)}
.mkt-wrap{display:flex;flex-direction:column;gap:6px;max-height:560px;overflow-y:auto}
.mkt-row{display:grid;grid-template-columns:40px 1.3fr 2fr 2.2fr;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--r-card);background:var(--bg-card);border:1px solid var(--border)}
.mkt-row.inv{border-color:rgba(229,180,75,.22)}
.mkt-row.elo{opacity:.62}
.mkt-match{font-weight:600;font-size:13px}
.mkt-src{font-family:var(--ff-mono);font-size:11px;color:var(--text-mute);letter-spacing:.02em}
.mkt-prob{font-family:var(--ff-mono);font-size:11px;display:flex;flex-direction:column;gap:2px}
.mkt-pinv{color:var(--gold-hi)}
.mkt-pelo{color:var(--text-dim)}
@media(max-width:720px){
  .mkt-row{grid-template-columns:32px 1fr;grid-template-areas:"tag match" "tag src" "tag prob"}
  .mkt-tag-wrap{grid-area:tag}
  .mkt-match{grid-area:match}
  .mkt-src{grid-area:src}
  .mkt-prob{grid-area:prob}
}

/* ── AI 反思(实验)── 抽屉开关 + 队伍档案 ── */
.reflection-section{border-color:rgba(229,180,75,.32)!important;background:linear-gradient(180deg,rgba(229,180,75,.04),transparent)}
.reflection-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.reflection-head h4{margin:0}
.badge-exp{font-family:var(--ff-mono);font-size:9px;font-weight:700;padding:1px 5px;border-radius:var(--r-tag);color:var(--gold-hi);background:rgba(229,180,75,.16);border:1px solid rgba(229,180,75,.4);letter-spacing:.05em;vertical-align:middle}
.reflection-mode-line{margin-top:8px}
.ref-mode-badge{font-family:var(--ff-mono);font-size:10px;font-weight:700;padding:3px 8px;border-radius:var(--r-tag);letter-spacing:.04em;display:inline-block}
.ref-mode-badge.on{color:#3ee6a8;background:rgba(62,230,168,.12);border:1px solid rgba(62,230,168,.36)}
.ref-mode-badge.off{color:var(--text-mute);background:var(--bg-elev);border:1px solid var(--border)}
.reflection-summary{font-family:var(--ff-mono);font-size:11px;color:var(--text-mute);margin-top:6px;letter-spacing:.02em}
.reflection-body{margin-top:12px;display:flex;flex-direction:column;gap:14px}
.reflection-body[hidden]{display:none}

/* toggle 开关 */
.switch{position:relative;display:inline-block;width:38px;height:20px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;cursor:pointer;inset:0;background:var(--bg-elev);border:1px solid var(--border);border-radius:20px;transition:.25s}
.slider:before{content:"";position:absolute;height:14px;width:14px;left:2px;top:2px;background:var(--text-mute);border-radius:50%;transition:.25s}
.switch input:checked + .slider{background:rgba(229,180,75,.22);border-color:rgba(229,180,75,.55)}
.switch input:checked + .slider:before{transform:translateX(18px);background:var(--gold-hi)}

/* 队伍档案分组 */
.ref-team{padding:10px 12px;border-radius:var(--r-card);background:var(--bg-card);border:1px solid var(--border)}
.ref-team-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px dashed var(--border)}
.ref-team-flag{font-size:18px}
.ref-team-name{font-weight:600;color:var(--gold-hi);letter-spacing:.02em}
.ref-orig-note{font-size:9px;padding:1px 6px;border-radius:var(--r-tag);background:rgba(229,180,75,.08);border:1px solid rgba(229,180,75,.25);color:var(--gold-hi);font-family:var(--ff-mono);letter-spacing:.04em;margin-left:auto}
.ref-subhead{font-family:var(--ff-mono);font-size:10px;color:var(--text-mute);margin:10px 0 6px;letter-spacing:.08em;text-transform:uppercase}

/* 长期特征行 */
.ref-adj{display:grid;grid-template-columns:auto auto auto 1fr;gap:8px;align-items:start;padding:4px 0;font-size:12px;line-height:1.5}
.ref-adj-key{color:var(--gold);min-width:88px}
.ref-adj-val{color:var(--gold-hi);font-weight:700;min-width:36px;text-align:right}
.ref-adj-conf{font-size:9px;padding:1px 5px;border-radius:var(--r-tag);font-family:var(--ff-mono);font-weight:700;letter-spacing:.04em;white-space:nowrap}
.conf-high{color:#3ee6a8;background:rgba(62,230,168,.14);border:1px solid rgba(62,230,168,.32)}
.conf-medium{color:var(--gold-hi);background:rgba(229,180,75,.12);border:1px solid rgba(229,180,75,.30)}
.conf-low{color:var(--text-dim);background:var(--bg-elev);border:1px solid var(--border)}
.ref-adj-note{color:var(--text-dim);font-size:11px;line-height:1.55}

/* 错场归因块 */
.ref-lesson{padding:8px 10px;border-radius:var(--r-tag);background:var(--bg-elev);border-left:2px solid var(--text-mute);margin-bottom:6px}
.ref-lesson.reusable{border-left-color:#3ee6a8;background:rgba(62,230,168,.05)}
.ref-lesson.oneshot{border-left-color:var(--text-mute);opacity:.78}
.ref-lesson-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:5px;font-size:11px}
.ref-lesson-date{color:var(--gold);min-width:74px}
.ref-lesson-vs{color:var(--text);font-weight:600}
.ref-lesson-vs small{color:var(--text-mute);font-weight:400;font-size:10px;margin-left:4px}
.ref-lesson-score{color:var(--text-dim);font-size:10px}
.ref-lesson-tag{font-size:9px;padding:1px 6px;border-radius:var(--r-tag);font-family:var(--ff-mono);font-weight:700;letter-spacing:.04em;margin-left:auto}
.tag-reusable{color:#3ee6a8;background:rgba(62,230,168,.14);border:1px solid rgba(62,230,168,.32)}
.tag-oneshot{color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border)}
.ref-causes{margin:0;padding-left:18px;font-size:11px;color:var(--text-dim);line-height:1.6}
.ref-causes li{margin-bottom:2px}

@media(max-width:520px){
  .ref-adj{grid-template-columns:1fr;gap:2px}
  .ref-adj-key,.ref-adj-val,.ref-adj-conf{min-width:0;text-align:left}
}

/* ── 赛前情报(web search,青色主题与反思区琥珀色区分)── */
.intel-section{border-color:rgba(77,171,247,.32)!important;background:linear-gradient(180deg,rgba(77,171,247,.04),transparent)}
.intel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.intel-head h4{margin:0}
.badge-ws{font-family:var(--ff-mono);font-size:10px;font-weight:700;padding:2px 7px;border-radius:var(--r-tag);
  letter-spacing:.04em;color:#4dabf7;background:rgba(77,171,247,.12);border:1px solid rgba(77,171,247,.36);margin-left:6px}
.intel-btn{font-family:var(--ff-mono);font-size:11px;font-weight:700;padding:6px 12px;border-radius:var(--r-tag);
  background:rgba(77,171,247,.16);color:#4dabf7;border:1px solid rgba(77,171,247,.42);cursor:pointer;
  transition:all .15s;letter-spacing:.03em}
.intel-btn:hover:not(:disabled){background:rgba(77,171,247,.26);transform:translateY(-1px)}
.intel-btn:disabled{opacity:.6;cursor:wait}
.intel-body{margin-top:8px}
.intel-subhead{font-size:11px;color:var(--text-mute);font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;margin:10px 0 4px;font-family:var(--ff-mono)}
.intel-list,.intel-notes{list-style:none;margin:0;padding:0}
.intel-list li{padding:5px 0;display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;
  border-bottom:1px dashed var(--border);font-size:13px}
.intel-notes li{padding:4px 0 4px 12px;font-size:13px;position:relative;color:var(--text-dim)}
.intel-notes li::before{content:'›';position:absolute;left:0;color:#4dabf7}
.intel-team{font-family:var(--ff-mono);font-weight:700;color:#4dabf7;font-size:11px}
.intel-player{font-weight:600}
.intel-reason{color:var(--text-mute);font-size:12px}
.intel-impact{font-size:10px;padding:2px 6px;border-radius:var(--r-tag);font-weight:600}
.impact-high{color:#ff6b6b;background:rgba(255,107,107,.12);border:1px solid rgba(255,107,107,.32)}
.impact-medium{color:#ffd43b;background:rgba(255,212,59,.1);border:1px solid rgba(255,212,59,.3)}
.impact-low{color:var(--text-mute);background:var(--bg-elev);border:1px solid var(--border)}
.intel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0}
.intel-form{background:rgba(0,0,0,.18);border:1px solid var(--border);border-radius:var(--r-card);padding:8px 10px}
.intel-form-team{font-size:11px;color:var(--text-mute);margin-bottom:4px;letter-spacing:.05em;font-family:var(--ff-mono)}
.intel-form-wdl{display:flex;gap:3px;margin-bottom:4px}
.intel-form-wdl span{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;font-family:var(--ff-mono);border-radius:3px}
.wdl-win{background:rgba(62,230,168,.22);color:#3ee6a8;border:1px solid rgba(62,230,168,.4)}
.wdl-draw{background:rgba(255,212,59,.18);color:#ffd43b;border:1px solid rgba(255,212,59,.34)}
.wdl-loss{background:rgba(255,107,107,.2);color:#ff6b6b;border:1px solid rgba(255,107,107,.4)}
.intel-form-note{font-size:11px;color:var(--text-dim);line-height:1.4}
.intel-hint{background:rgba(77,171,247,.08);border:1px solid rgba(77,171,247,.28);border-radius:var(--r-card);
  padding:8px 12px;font-size:13px;margin:8px 0;color:var(--text-dim)}
.intel-meta{display:flex;align-items:center;gap:10px;margin-top:8px;padding-top:6px;border-top:1px dashed var(--border);
  font-size:11px;flex-wrap:wrap}
.intel-meta .conf-high,.intel-meta .conf-medium,.intel-meta .conf-low{font-weight:700;font-family:var(--ff-mono)}
.intel-search-summary{color:var(--text-mute);font-style:italic;font-size:10px}
@media(max-width:520px){
  .intel-list li{grid-template-columns:1fr;gap:2px}
  .intel-grid{grid-template-columns:1fr}
}

/* ── 历史交手(web search,紫色主题与前两区青/琥珀区分)── */
.h2h-section{border-color:rgba(180,120,255,.32)!important;background:linear-gradient(180deg,rgba(180,120,255,.04),transparent)}
.h2h-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.h2h-head h4{margin:0}
.h2h-head .badge-ws{color:#b478ff;background:rgba(180,120,255,.12);border-color:rgba(180,120,255,.36)}
.h2h-btn{font-family:var(--ff-mono);font-size:11px;font-weight:700;padding:6px 12px;border-radius:var(--r-tag);
  background:rgba(180,120,255,.16);color:#b478ff;border:1px solid rgba(180,120,255,.42);cursor:pointer;
  transition:all .15s;letter-spacing:.03em}
.h2h-btn:hover:not(:disabled){background:rgba(180,120,255,.26);transform:translateY(-1px)}
.h2h-btn:disabled{opacity:.6;cursor:wait}
.h2h-body{margin-top:8px}
.h2h-summary{font-size:14px;font-weight:600;color:var(--text-dim);margin-bottom:6px;line-height:1.5}
.h2h-trend{font-size:12px;color:#b478ff;background:rgba(180,120,255,.08);border:1px solid rgba(180,120,255,.24);
  border-radius:var(--r-card);padding:6px 10px;margin-bottom:8px}
.h2h-subhead{font-size:11px;color:var(--text-mute);font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;margin:10px 0 4px;font-family:var(--ff-mono)}
.h2h-list{list-style:none;margin:0;padding:0}
.h2h-row{padding:5px 0;display:grid;grid-template-columns:64px 1fr 50px auto;gap:8px;align-items:center;
  border-bottom:1px dashed var(--border);font-size:13px}
.h2h-date{font-size:11px;color:var(--text-mute)}
.h2h-comp{font-size:12px;color:var(--text-dim)}
.h2h-score{font-weight:700;color:#b478ff;text-align:center}
.h2h-venue{font-size:11px;color:var(--text-mute);font-style:italic}
.h2h-meta{display:flex;align-items:center;gap:10px;margin-top:8px;padding-top:6px;border-top:1px dashed var(--border);
  font-size:11px;flex-wrap:wrap}
.h2h-meta .conf-high,.h2h-meta .conf-medium,.h2h-meta .conf-low{font-weight:700;font-family:var(--ff-mono)}
@media(max-width:520px){
  .h2h-row{grid-template-columns:1fr;gap:2px}
  .h2h-score{text-align:left}
}

/* 价值下注面板(B 方案) */
.vb-note{font-size:12px;color:var(--text-dim);background:var(--bg-card);padding:10px 14px;border-radius:var(--r-card);border-left:3px solid var(--accent);margin-bottom:12px}
.vb-summary{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--text-dim);margin-bottom:14px}
.vb-stat{background:var(--bg-card);padding:8px 12px;border-radius:var(--r-card)}
.vb-stat b{color:var(--text-bright);font-weight:600}
.vb-stat.vb-warn{color:#e5b44b;border-left:3px solid #e5b44b}
.vb-sub{font-size:13px;color:var(--text-dim);margin:18px 0 8px;font-weight:500}
.vb-wrap{display:flex;flex-direction:column;gap:6px}
.vb-row{display:grid;grid-template-columns:90px 1.5fr 1fr 1fr 60px 110px 90px;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--r-card);background:var(--bg-card);border:1px solid var(--border);font-size:12px}
.vb-row.edge-huge{border-color:rgba(229,180,75,.5);background:rgba(229,180,75,.06)}
.vb-row.edge-strong{border-color:rgba(229,180,75,.3)}
.vb-row.edge-weak{border-color:var(--border)}
.vb-date{font-family:var(--ff-mono);color:var(--text-dim)}
.vb-match{font-weight:600;font-size:13px}
.vb-elo,.vb-mkt{font-family:var(--ff-mono);font-size:11px;color:var(--text-dim)}
.vb-edge{font-family:var(--ff-mono);font-weight:700;color:#e5b44b;text-align:right}
.vb-pick{font-family:var(--ff-mono);font-size:12px}
.vb-pick b{color:var(--accent)}
.vb-kelly{font-family:var(--ff-mono);font-size:11px;color:var(--text-dim);text-align:right}
@media(max-width:760px){
  .vb-row{grid-template-columns:1fr 1fr;gap:6px}
  .vb-elo,.vb-mkt,.vb-edge,.vb-kelly{display:none}
}

/* ── Pro 订阅 ──────────────────────────────────────── */
.pro-wrap{display:inline-flex;align-items:center;flex-shrink:0}
.pro-btn{
  font-family:var(--ff-body);font-weight:800;font-size:12px;letter-spacing:.03em;
  color:#0b0b0d;background:linear-gradient(135deg,var(--gold-hi),var(--gold));
  border:none;border-radius:var(--r-interactive);padding:10px 16px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
  transition:transform .12s var(--ease),box-shadow .15s;
  box-shadow:0 0 12px -2px rgba(201,169,97,.4);
}
.pro-btn:hover{transform:translateY(-1px);box-shadow:0 0 18px -2px rgba(201,169,97,.55)}
.pro-btn:active{transform:translateY(0) scale(.98)}

.pro-badge{
  display:inline-flex;align-items:center;gap:4px;
  font-family:var(--ff-mono);font-size:10px;color:var(--gold);letter-spacing:.04em;
}
.pro-btn[hidden],.pro-badge[hidden]{display:none}   /* 覆盖 flex,让 [hidden] 生效 */
.pro-badge::before{
  content:'';display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 4px rgba(201,169,97,.5);
}

/* 升级弹窗 */
.upgrade-scrim{
  position:fixed;inset:0;background:rgba(5,5,6,.7);z-index:60;
}
.upgrade-scrim[hidden]{display:none}
.upgrade-modal{
  position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:61;
  width:min(420px,94vw);
  max-height:calc(100vh - 32px);
  background:var(--bg-elev);
  border:1px solid var(--line-hi);border-radius:var(--r-container);
  box-shadow:0 20px 60px rgba(0,0,0,.7);overflow:hidden;
  display:flex;flex-direction:column;
  animation:modalIn .25s var(--ease) both;
}
.upgrade-modal[hidden]{display:none}
@keyframes modalIn{from{opacity:0;transform:translate(-50%,-48%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.upgrade-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 22px;border-bottom:1px solid var(--line);
  flex-shrink:0;  /* 头不动 */
}
.upgrade-title{
  font-family:var(--ff-display);font-weight:600;font-size:20px;letter-spacing:.03em;
  color:var(--gold-hi);
}
.upgrade-close{
  background:none;border:none;color:var(--text-dim);font-size:20px;cursor:pointer;
  padding:4px 8px;line-height:1;border-radius:var(--r-tag);
}
.upgrade-close:hover{color:var(--text);background:var(--bg-card)}
.upgrade-body{
  padding:22px;
  overflow-y:auto;overflow-x:hidden;
  flex:1 1 auto;
  min-height:0;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:rgba(201,169,97,.4) transparent;
}
.upgrade-body::-webkit-scrollbar{width:6px}
.upgrade-body::-webkit-scrollbar-thumb{background:rgba(201,169,97,.4);border-radius:3px}
.upgrade-body::-webkit-scrollbar-track{background:transparent}
.upgrade-desc{
  font-size:13px;color:var(--text-dim);margin-bottom:18px;line-height:1.5;
}
.upgrade-input-row{margin-bottom:14px}
.upgrade-input{
  width:100%;font-family:var(--ff-mono);font-size:14px;padding:10px 14px;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-interactive);
  color:var(--text);outline:none;transition:border-color .15s;
}
.upgrade-input:focus{border-color:var(--gold-line);box-shadow:0 0 0 2px rgba(201,169,97,.15)}
.upgrade-plans{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.upgrade-plan{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 16px;background:var(--bg-card);border:1px solid var(--line);
  border-radius:var(--r-interactive);cursor:pointer;transition:all .15s;
  font-family:var(--ff-body);text-align:left;width:100%;color:var(--text);
}
.upgrade-plan:hover{border-color:var(--gold-line);background:rgba(201,169,97,.06)}
.upgrade-plan:disabled{opacity:.5;cursor:wait}
.upgrade-plan .plan-name{font-weight:700;font-size:15px}
.upgrade-plan .plan-action{font-family:var(--ff-mono);font-size:12px;color:var(--gold-hi);font-weight:700}
.upgrade-invite-row{margin-top:14px}
.upgrade-pricing-hint{
  font-size:11px;font-family:var(--ff-mono);color:var(--text-dim);
  text-align:center;margin:8px 0 0;letter-spacing:.3px;
}
.upgrade-match-list-wrap{margin-top:8px}
.upgrade-match-toggle{
  display:block;width:100%;background:transparent;border:1px dashed rgba(255,255,255,.15);
  color:var(--text-dim);font-size:11px;font-family:var(--ff-mono);
  padding:6px 10px;border-radius:4px;cursor:pointer;letter-spacing:.3px;
  text-align:center;
}
.upgrade-match-toggle:hover{color:var(--text-bright);border-color:rgba(255,255,255,.3)}
.upgrade-match-list{
  margin-top:6px;max-height:180px;overflow-y:auto;
  background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);
  border-radius:4px;padding:6px 8px;font-size:11px;font-family:var(--ff-mono);
}
.upgrade-match-list .row{
  display:flex;justify-content:space-between;gap:8px;
  padding:3px 0;border-bottom:1px dotted rgba(255,255,255,.05);
  color:var(--text-bright);
}
.upgrade-match-list .row:last-child{border-bottom:none}
.upgrade-match-list .row .date{color:var(--text-dim);white-space:nowrap}
.upgrade-match-list .more{text-align:center;color:var(--text-dim);padding:4px 0 0}
.upgrade-pricing-lock{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:6px;font-size:10px;font-family:var(--ff-mono);color:var(--text-dim);
  letter-spacing:.3px;
}
.upgrade-pricing-lock.expired{color:#ff8a8a}
.upgrade-lock-refresh{
  background:transparent;border:1px solid rgba(255,138,138,.4);
  color:#ff8a8a;font-size:10px;font-family:var(--ff-mono);
  padding:2px 8px;border-radius:3px;cursor:pointer;
}
.upgrade-lock-refresh:hover{background:rgba(255,138,138,.1)}
.upgrade-divider{
  display:flex;align-items:center;gap:10px;
  font-size:11px;font-family:var(--ff-mono);color:var(--text-dim);
  text-transform:uppercase;letter-spacing:1px;
  margin:6px 0 10px;
}
.upgrade-divider::before,.upgrade-divider::after{
  content:"";flex:1;height:1px;background:rgba(255,255,255,.08);
}
.upgrade-input-invite{
  font-family:var(--ff-mono);letter-spacing:1px;text-transform:uppercase;
  margin-bottom:10px;
}
.upgrade-plan-invite{
  border-style:dashed;border-color:rgba(201,169,97,.35);
  background:transparent;
}
.upgrade-plan-invite:hover{border-color:var(--gold-line);background:rgba(201,169,97,.04)}
.upgrade-plan-invite .plan-name{font-size:13px;font-weight:600;color:var(--text-dim)}
.upgrade-plan-invite .plan-action{color:var(--text-dim);font-weight:600}
.invite-hint{
  margin:-4px 0 10px;
  font-size:12px;font-family:var(--ff-mono);
  color:var(--gold-hi);text-align:center;
  letter-spacing:.5px;
  animation:invite-hint-fade .25s ease-out;
}
.upgrade-share-panel{
  margin-top:10px;padding:12px;
  border:1px solid rgba(201,169,97,.2);border-radius:var(--r-tag);
  background:rgba(255,255,255,.02);
  display:flex;flex-direction:column;gap:12px;
  animation:share-panel-slide .18s ease-out;
}
.upgrade-share-panel[hidden]{display:none}
@keyframes share-panel-slide{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes invite-hint-fade{
  from{opacity:0;transform:translateY(-2px)}
  to{opacity:1;transform:translateY(0)}
}
.share-platform-row{display:flex;align-items:center;gap:10px}
.share-label{
  font-size:11px;font-family:var(--ff-mono);
  color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;
}
.share-platform-val{font-size:13px;font-weight:600;color:var(--text)}
.share-template-row{display:flex;flex-direction:column;gap:6px}
.share-template{
  width:100%;min-height:64px;
  background:rgba(0,0,0,.25);color:var(--text);
  border:1px solid rgba(255,255,255,.08);border-radius:var(--r-tag);
  padding:8px 10px;font-family:var(--ff-body);font-size:13px;
  resize:vertical;line-height:1.5;
}
.share-copy-btn{
  align-self:flex-end;
  padding:5px 14px;font-size:12px;
  background:transparent;color:var(--gold-hi);
  border:1px solid var(--gold-line);border-radius:var(--r-tag);
  cursor:pointer;font-family:var(--ff-mono);
  text-transform:uppercase;letter-spacing:1px;
  transition:background .15s;
}
.share-copy-btn:hover{background:rgba(201,169,97,.1)}
.share-verify-row{display:flex;flex-direction:column;gap:8px}
.share-url-input{font-family:var(--ff-mono);font-size:12px}
.upgrade-plan-verify{
  padding:10px 14px;font-size:13px;
}
.upgrade-plan-verify .plan-name{font-size:13px;font-weight:700;color:var(--gold-hi)}
.share-result{
  padding:10px;border-radius:var(--r-tag);
  background:rgba(94,168,96,.08);
  border:1px solid rgba(94,168,96,.3);
  display:flex;flex-direction:column;gap:8px;align-items:center;
}
.share-result-label{font-size:12px;color:var(--signal-ok);font-weight:600}
.share-code-display{
  font-family:var(--ff-mono);font-size:18px;font-weight:700;
  color:var(--gold-hi);letter-spacing:2px;
  padding:8px 16px;background:rgba(0,0,0,.3);
  border:1px dashed rgba(201,169,97,.4);border-radius:var(--r-tag);
  user-select:all;
}
.upgrade-plan-use{
  padding:8px 14px;font-size:12px;
  border-color:var(--gold-line);background:rgba(201,169,97,.1);
}
.upgrade-plan-use .plan-name{font-size:12px;font-weight:700;color:var(--gold-hi)}
.upgrade-plan-use .plan-action{font-size:11px;color:var(--text-dim)}
.upgrade-error{
  font-size:12px;color:var(--signal-err);padding:8px 10px;
  background:rgba(194,84,80,.1);border:1px solid rgba(194,84,80,.3);
  border-radius:var(--r-tag);margin-top:6px;
}
.upgrade-error[hidden]{display:none}
.upgrade-status{
  font-size:13px;padding:10px;text-align:center;font-weight:600;
  border-radius:var(--r-tag);margin-top:6px;
}
.upgrade-status.ok{color:var(--signal-ok);background:rgba(111,181,133,.12)}
.upgrade-status[hidden]{display:none}

/* 面板内 Pro gate */
.vb-placeholder-pro{
  padding:60px 30px;text-align:center;display:flex;flex-direction:column;
  align-items:center;gap:10px;
}
.pro-gate-icon{font-size:40px;line-height:1}
.pro-gate-icon-sm{font-size:16px;line-height:1}
.vb-placeholder-pro h3{font-family:var(--ff-display);font-size:24px;color:var(--gold-hi);letter-spacing:.04em}
.vb-placeholder-pro p{font-family:var(--ff-body);font-size:14px;color:var(--text-dim);max-width:300px}
.pro-gate-features{font-family:var(--ff-mono);font-size:11px;color:var(--text-mute);width:100%;overflow-wrap:break-word;line-height:1.4}
.pro-gate-btn{
  font-family:var(--ff-body);font-weight:800;font-size:14px;letter-spacing:.04em;
  color:#0b0b0d;background:linear-gradient(135deg,var(--gold-hi),var(--gold));
  border:none;border-radius:var(--r-interactive);padding:12px 28px;cursor:pointer;
  margin-top:12px;transition:transform .12s,box-shadow .15s;
}
.pro-gate-btn:hover{transform:translateY(-1px);box-shadow:0 0 18px -2px rgba(201,169,97,.5)}

/* 抽屉内 Pro gate */
.pro-gate-drawer{
  border-color:rgba(201,169,97,.3)!important;
  background:linear-gradient(90deg,rgba(201,169,97,.04),transparent)!important;
}
.pro-gate-drawer-inner{
  display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-dim);
  flex-wrap:wrap;
}
.pro-gate-btn-sm{
  font-family:var(--ff-body);font-weight:700;font-size:11px;letter-spacing:.03em;
  color:#0b0b0d;background:var(--gold);border:none;
  border-radius:var(--r-tag);padding:6px 14px;cursor:pointer;
  margin-left:auto;transition:background .15s;
}
.pro-gate-btn-sm:hover{background:var(--gold-hi)}

@media (max-width:480px){
  .pro-btn{padding:8px 12px;font-size:11px}
  .pro-badge{font-size:9px}
  .upgrade-modal{width:96vw}
  .upgrade-body{padding:16px}
  .upgrade-plan{padding:12px 14px;flex-direction:column;align-items:flex-start;gap:4px}
}
