/* =====================================================================
   绿茵智库 · 像素风响应式 DEMO（第二版 · v2.css）
   原则：线上页面的文字 / 字段 / 结构 / 位置不变，只替换视觉皮肤
   （Spritecraft：像素字体、零圆角、4px 硬斜面、硬投影、虚线、动效）。
   一套响应式：PC 左侧导航 + 多列网格；手机单列 + 底部标签栏。
   ===================================================================== */

@font-face{font-family:'Press Start 2P';src:url('fonts/press-start-2p.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'VT323';src:url('fonts/vt323.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Silkscreen';src:url('fonts/silkscreen-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Silkscreen';src:url('fonts/silkscreen-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Zpix';src:url('fonts/zpix.ttf') format('truetype');font-weight:400;font-display:swap}

:root{
  --bg:#f4e9c8; --surface:#fbf5dd; --sunken:#ead8a3; --ink:#1c1c1c; --muted:#6d5526;
  --primary:#2fa84f; --primary-hi:#6cdd6c; --primary-lo:#156c00;
  --secondary:#f0a232; --secondary-hi:#ffd27a; --secondary-lo:#8a5510;
  --tertiary:#3aa0e6; --tertiary-hi:#8fd0ff; --tertiary-lo:#15598f;
  --danger:#d94343; --danger-hi:#ff8a8a; --danger-lo:#8f1212;
  --bevel-light:0 -3px rgba(0,0,0,.35) inset,0 3px rgba(255,255,255,.7) inset,-3px 0 rgba(255,255,255,.4) inset,3px 0 rgba(0,0,0,.35) inset;
  --bevel-sunken:0 3px rgba(255,255,255,.5) inset,0 -3px rgba(0,0,0,.35) inset,3px 0 rgba(255,255,255,.35) inset,-3px 0 rgba(0,0,0,.3) inset;
  --bevel-primary:0 -3px rgba(255,255,255,.28) inset,0 3px rgba(0,0,0,.38) inset,-3px 0 rgba(255,255,255,.18) inset,3px 0 rgba(0,0,0,.3) inset;
  --drop-1:4px 4px 0 0 rgba(28,28,28,.9);
  --drop-2:5px 5px 0 0 rgba(28,28,28,.55);
  --font-display:"Press Start 2P","Zpix","Courier New",monospace;
  --font-body:"VT323","Zpix","Courier New",monospace;
  --font-micro:"Silkscreen","Zpix","Courier New",monospace;
}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;
  background-image:linear-gradient(rgba(28,28,28,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(28,28,28,.05) 1px,transparent 1px);
  background-size:12px 12px;
}
*{box-sizing:border-box;border-radius:0!important}
svg{display:block}
button{font-family:inherit}

/* 通用像素面板/文本 */
.upper{font-family:var(--font-micro);text-transform:uppercase;letter-spacing:1px}

/* 像素按钮 */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;
  border:3px solid var(--ink);padding:11px 14px;font-family:var(--font-display);font-size:10px;letter-spacing:1px;
  background:var(--surface);color:var(--ink);box-shadow:var(--bevel-light),var(--drop-1);
}
.btn svg{width:15px;height:15px}
.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 0 rgba(0,0,0,0)}
.btn-primary{background:var(--primary);color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.3);box-shadow:var(--bevel-primary),var(--drop-1)}
.btn-ghost{background:var(--surface);color:var(--ink)}
.btn-block{width:100%}
.icon-btn{
  width:40px;height:40px;background:var(--surface);color:var(--ink);border:3px solid var(--ink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;box-shadow:var(--bevel-light);
}
.icon-btn:active{transform:translateY(3px)}
.icon-btn.spin svg{animation:spin .8s steps(8) infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* 标签 */
.tag{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-micro);font-size:9px;font-weight:700;letter-spacing:1px;
  padding:4px 8px;border:2px solid var(--ink);background:var(--surface);box-shadow:2px 2px 0 rgba(0,0,0,.85);white-space:nowrap}
.tag-cyan{background:var(--tertiary);color:#fff}
.tag-gold{background:var(--secondary);color:var(--ink)}
.tag-green{background:var(--primary);color:#fff}
.tag-gray{background:var(--sunken);color:var(--muted)}
.tag-violet{background:var(--ink);color:var(--secondary-hi)}

/* ===================== PC 外壳 ===================== */
.app{display:flex;min-height:100vh}
.side{
  width:240px;flex:0 0 240px;background:var(--ink);color:var(--surface);
  position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
  border-right:4px solid var(--primary);
}
.brand{display:flex;align-items:center;gap:11px;padding:20px 16px 18px;border-bottom:2px dashed rgba(251,245,221,.25)}
.brand .logo{width:34px;height:34px;flex:0 0 34px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.brand .logo i{display:block;background:var(--sunken)}
.brand .logo i:nth-child(2),.brand .logo i:nth-child(4),.brand .logo i:nth-child(6),.brand .logo i:nth-child(8){background:var(--primary)}
.brand .logo i:nth-child(5){background:var(--secondary)}
.brand .bt{font-family:var(--font-display);font-size:13px;color:#fff;line-height:1.3}
.brand .bs{font-family:var(--font-micro);font-size:8px;color:var(--primary-hi);margin-top:8px;letter-spacing:.5px;line-height:1.6}
.nav{padding:16px 12px;display:flex;flex-direction:column;gap:8px;flex:1}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:13px 12px;cursor:pointer;color:var(--sunken);
  font-family:var(--font-display);font-size:11px;letter-spacing:1px;border:2px solid transparent;
}
.nav-item svg{width:18px;height:18px;flex:0 0 18px}
.nav-item:hover{color:#fff;border-color:rgba(251,245,221,.4)}
.nav-item.on{background:var(--primary);color:#fff;border-color:#fff;box-shadow:var(--bevel-primary);text-shadow:0 2px 0 rgba(0,0,0,.3)}
.nav-item .badge{margin-left:auto;font-family:var(--font-display);font-size:10px;background:var(--secondary);color:var(--ink);border:2px solid var(--ink);padding:3px 7px}
.side-foot{padding:14px 16px;border-top:2px dashed rgba(251,245,221,.25);font-family:var(--font-micro);font-size:9px;color:rgba(251,245,221,.7);line-height:1.8}
.src-status{display:flex;align-items:center;gap:8px;letter-spacing:.5px}
.src-status .dot{width:10px;height:10px;background:var(--primary-hi);border:2px solid var(--surface);flex:0 0 10px;animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:.35}}
.pc-entry{margin-top:10px;color:rgba(251,245,221,.5)}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:18px 30px 16px;background:var(--surface);border-bottom:4px solid var(--ink);
  position:sticky;top:0;z-index:40;box-shadow:0 4px 0 rgba(28,28,28,.15);
}
.topbar h1{font-family:var(--font-display);font-size:17px;margin:0;color:var(--ink);line-height:1.3}
.topbar .sub{font-family:var(--font-micro);font-size:10px;color:var(--muted);margin-top:9px;letter-spacing:.5px}
.content{padding:24px 30px 46px;width:100%;max-width:1280px;margin:0 auto}

/* 手机 appbar / tabbar：PC 默认隐藏 */
.appbar{display:none}
.tabbar{display:none}

/* ===================== 每日赛事 ===================== */
.today-hero{background:var(--ink);color:var(--surface);border:4px solid var(--ink);box-shadow:var(--drop-2);padding:18px 20px;margin-bottom:16px}
.th-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.th-tag{display:inline-flex;background:var(--primary);color:#fff;font-family:var(--font-micro);font-size:10px;font-weight:700;letter-spacing:1px;
  padding:7px 10px;border:2px solid var(--surface);box-shadow:var(--bevel-primary)}
.th-date{font-family:var(--font-display);font-size:22px;color:#fff;margin:14px 0 0;text-shadow:0 3px 0 rgba(0,0,0,.4)}
.th-week{font-family:var(--font-body);font-size:22px;color:var(--secondary-hi);margin-left:8px}
.th-ball{width:40px;height:40px;color:var(--surface)}
.th-counts{display:flex;align-items:center;gap:14px;margin-top:16px}
.th-count{background:var(--sunken);border:2px solid var(--surface);padding:10px 16px;text-align:center;min-width:78px}
.th-count b{display:block;font-family:var(--font-display);font-size:20px;color:var(--primary-lo);line-height:1}
.th-count:nth-child(4) b{color:var(--danger-lo)}
.th-count:nth-child(6) b{color:var(--secondary-lo)}
.th-count span{display:block;font-family:var(--font-micro);font-size:9px;color:var(--muted);margin-top:8px}
.th-sep{width:3px;height:30px;background:rgba(251,245,221,.3)}
.th-note{font-family:var(--font-micro);font-size:9px;color:rgba(251,245,221,.75);margin-top:14px;letter-spacing:.5px;line-height:1.7}

.match-seg{display:flex;gap:0;border:3px solid var(--ink);background:var(--sunken);box-shadow:var(--drop-1);margin-bottom:18px}
.ms-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px;cursor:pointer;background:var(--surface);
  border:0;font-family:var(--font-display);font-size:11px;color:var(--muted);letter-spacing:1px;border-right:3px solid var(--ink)}
.ms-tab:last-child{border-right:0}
.ms-tab.on{background:var(--primary);color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.3)}
.ms-n{font-family:var(--font-display);font-size:10px;background:var(--ink);color:var(--surface);padding:3px 8px}
.ms-tab.on .ms-n{background:#fff;color:var(--primary-lo)}

.match-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.match-card{background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-2);padding:15px;display:flex;flex-direction:column}
.match-card.focus{border-color:var(--secondary-lo)}
.mc-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:13px}
.mc-time{font-family:var(--font-micro);font-size:9px;color:var(--muted);letter-spacing:.5px}
.focus-star{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-family:var(--font-micro);font-size:9px;font-weight:700;letter-spacing:1px;
  background:var(--secondary);color:var(--ink);border:2px solid var(--ink);padding:4px 8px}
.focus-star svg{width:11px;height:11px}
.league-pill{font-family:var(--font-micro);font-size:9px;font-weight:700;letter-spacing:1px;padding:4px 8px;color:#fff;border:2px solid var(--ink);
  background:var(--ink);box-shadow:2px 2px 0 rgba(0,0,0,.85)}
.mc-teams{display:flex;align-items:center;gap:8px}
.mc-team{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;min-width:0}
.team-badge{display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display);font-weight:400;
  font-size:14px;line-height:1;white-space:nowrap;overflow:hidden;
  border:3px solid var(--ink);box-shadow:0 -3px rgba(0,0,0,.35) inset,0 3px rgba(255,255,255,.3) inset;text-shadow:0 2px 0 rgba(0,0,0,.35)}
.mc-team .tn{font-family:var(--font-body);font-size:18px;font-weight:700;color:var(--ink);text-align:center;line-height:1.15}
.mc-vs{flex:0 0 auto;font-family:var(--font-display);font-size:11px;color:var(--muted)}
.mc-odds{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0}
.odds-cell{background:var(--sunken);border:2px solid var(--ink);box-shadow:var(--bevel-sunken);padding:9px 2px;text-align:center}
.odds-cell .ol{font-family:var(--font-micro);font-size:9px;color:var(--muted);letter-spacing:1px}
.odds-cell .ov{display:block;font-family:var(--font-display);font-size:13px;color:var(--ink);margin-top:7px}
.odds-cell.hl{background:var(--primary);box-shadow:var(--bevel-primary)}
.odds-cell.hl .ol,.odds-cell.hl .ov{color:#fff}
.mc-fin-score{text-align:center;color:var(--muted);font-family:var(--font-body);font-size:15px;padding:6px 0 8px}
.mc-fin-score b{color:var(--ink);font-family:var(--font-display);font-size:15px}
.match-card.is-fin .mc-vs{color:var(--tertiary-lo);font-family:var(--font-display);font-size:18px}
.match-card.is-fin .mc-vs{color:var(--danger);font-size:20px}
.mc-actions{display:flex;gap:9px;margin-top:auto;padding-top:4px}
.mc-actions .btn{flex:1;padding:10px 8px;font-size:9px}

.empty{grid-column:1/-1;background:var(--surface);border:4px dashed var(--muted);padding:54px 20px;text-align:center}
.empty .ei{font-size:30px;color:var(--muted);margin-bottom:14px}
.empty .et{font-family:var(--font-body);font-size:19px;color:var(--muted);line-height:1.7}

/* ===================== AI 实验室 ===================== */
.lab-hero{background:var(--ink);color:var(--surface);border:4px solid var(--ink);box-shadow:var(--drop-2);padding:18px 20px;margin-bottom:18px}
.lh-t{font-family:var(--font-display);font-size:12px;color:var(--secondary-hi);line-height:1.6}
.lh-s{font-family:var(--font-body);font-size:18px;color:var(--sunken);line-height:1.5;margin:12px 0 14px}
.lab-models-row{display:flex;flex-wrap:wrap;gap:8px}
.lmi{font-family:var(--font-micro);font-size:9px;font-weight:700;letter-spacing:1px;background:var(--surface);color:var(--ink);
  border:2px solid var(--surface);padding:6px 10px;box-shadow:2px 2px 0 rgba(255,255,255,.25)}
.lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:14px}
.lab-item{display:flex;align-items:center;gap:14px;background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-1);
  padding:14px 16px;cursor:pointer}
.lab-item:hover{box-shadow:var(--bevel-light),var(--drop-2)}
.lab-item .li-l{flex:1;min-width:0}
.li-vs{font-family:var(--font-body);font-size:20px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li-meta{display:flex;align-items:center;gap:9px;margin-top:9px;flex-wrap:wrap;font-family:var(--font-micro);font-size:9px;color:var(--muted)}
.li-meta .star-g{color:var(--secondary-lo)}
.model-count-badge{flex:0 0 auto;font-family:var(--font-micro);font-size:10px;font-weight:700;letter-spacing:1px;background:var(--tertiary);color:#fff;
  border:3px solid var(--ink);padding:9px 12px;box-shadow:var(--bevel-light);text-align:center;white-space:nowrap}
.model-count-badge b{font-family:var(--font-display);font-size:13px}

/* ===================== 方案推荐 ===================== */
.plan-subtabs{display:grid;grid-template-columns:1fr 1fr;gap:0;border:3px solid var(--ink);background:var(--sunken);box-shadow:var(--drop-1);margin-bottom:18px}
.ps-tab{display:flex;flex-direction:column;align-items:center;gap:5px;padding:15px 10px;cursor:pointer;background:var(--surface);border:0;
  border-right:3px solid var(--ink);color:var(--muted)}
.ps-tab:last-child{border-right:0}
.ps-tab .pst-t{font-family:var(--font-display);font-size:11px;letter-spacing:1px;display:flex;align-items:center;gap:6px}
.ps-tab .pst-t svg{width:14px;height:14px}
.ps-tab small{font-family:var(--font-micro);font-size:8px;color:var(--muted);letter-spacing:.5px}
.ps-tab.on{background:var(--primary);color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.3)}
.ps-tab.on small{color:#fff}

.mini-gen{background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-2);padding:22px 20px;text-align:center}
.mg-icon{font-size:30px;color:var(--secondary-lo);margin-bottom:12px}
.mg-t{font-family:var(--font-display);font-size:13px;color:var(--ink);line-height:1.6}
.mg-s{font-family:var(--font-body);font-size:18px;color:var(--muted);line-height:1.6;margin:12px 0 18px}
.mg-btn{margin:0 auto}
.mg-fee{font-family:var(--font-micro);font-size:9px;color:var(--muted);margin-top:14px;letter-spacing:.5px}
.mini-gen.loading{text-align:left}
.mini-gen.loading .mg-spin{display:inline-block;color:var(--secondary-lo);animation:spin 1s steps(8) infinite;margin-right:8px}
.mg-prog{height:18px;background:var(--sunken);border:3px solid var(--ink);box-shadow:var(--bevel-sunken);padding:2px;margin:14px 0 10px}
.mg-prog i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--primary) 0,var(--primary) 8px,var(--primary-hi) 8px,var(--primary-hi) 12px)}

.mini-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--primary);color:#fff;border:3px solid var(--ink);
  box-shadow:var(--drop-1);padding:12px 16px;margin-bottom:12px;font-family:var(--font-micro);font-size:10px;font-weight:700;letter-spacing:.5px}
.mb-ok{flex:1}
.mb-regen,.mb-link{cursor:pointer;border:2px solid #fff;background:var(--surface);color:var(--ink);font-family:var(--font-micro);font-size:9px;font-weight:700;padding:6px 10px}
.mini-bar.warn{background:var(--secondary);color:var(--ink)}

.ticket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px}
.ticket{background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-2);padding:0;overflow:hidden}
.tk-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:13px 16px;background:var(--primary);color:#fff;border-bottom:4px solid var(--ink)}
.tk-mk{font-family:var(--font-display);font-size:11px;flex:1;letter-spacing:1px;display:flex;align-items:center;gap:8px}
.mk-box{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;background:var(--secondary);
  color:var(--ink);border:2px solid var(--ink);font-family:var(--font-display);font-size:11px;box-shadow:2px 2px 0 rgba(0,0,0,.6)}
.tk-type{font-family:var(--font-micro);font-size:10px;background:rgba(255,255,255,.2);border:2px solid var(--ink);padding:4px 8px}
.tk-badge{font-family:var(--font-micro);font-size:9px;font-weight:700;border:2px solid var(--ink);padding:4px 8px}
.tk-badge.all{background:var(--secondary);color:var(--ink)}
.tk-badge.part{background:var(--sunken);color:var(--muted)}
.tk-legs{padding:0 16px}
.tk-leg{display:flex;align-items:center;gap:12px;padding:13px 0}
.tl-teams{font-family:var(--font-body);font-size:19px;font-weight:700;color:var(--ink)}
.tl-teams i{font-style:normal;color:var(--muted)}
.tl-meta{font-family:var(--font-micro);font-size:8px;color:var(--muted);margin-top:4px;letter-spacing:.5px}
.tl-r{flex:0 0 auto;text-align:center;margin-left:auto}
.tl-sel{display:inline-block;min-width:58px;font-family:var(--font-display);font-size:11px;color:var(--primary-lo);background:var(--sunken);border:2px solid var(--ink);padding:7px 10px}
.tl-odd{font-family:var(--font-body);font-size:16px;color:var(--muted);margin-top:5px}
.tl-votes{font-family:var(--font-micro);font-size:8px;color:var(--muted);margin-top:3px}
.tk-dash{border-top:2px dashed var(--muted)}
.tk-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-top:2px dashed var(--muted)}
.tk-mult{font-family:var(--font-micro);font-size:9px;color:var(--muted);letter-spacing:.5px}
.tk-mult b{display:block;font-family:var(--font-display);font-size:22px;color:var(--danger);margin-top:6px}
.tk-mult small{display:block;font-family:var(--font-micro);font-size:8px;color:var(--muted);margin-top:6px}
.tk-go{cursor:pointer;font-family:var(--font-display);font-size:10px;color:var(--ink);background:var(--secondary);border:3px solid var(--ink);padding:12px 14px;box-shadow:var(--bevel-light)}
.tk-go:active{transform:translateY(3px)}
.tk-skip{background:var(--sunken);border:3px dashed var(--muted);padding:14px 16px;font-family:var(--font-body);font-size:17px;color:var(--muted);margin-bottom:12px}
.mini-foot-note{font-family:var(--font-body);font-size:16px;color:var(--muted);background:var(--sunken);border:3px solid var(--ink);padding:13px 16px;margin-top:14px;line-height:1.6}

.section-h{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px}
.section-h h3{font-family:var(--font-display);font-size:12px;color:var(--ink);margin:0}
.section-h .more{font-family:var(--font-micro);font-size:9px;color:var(--muted)}
.chip-row{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:14px}
.chip{cursor:pointer;font-family:var(--font-micro);font-size:10px;font-weight:700;letter-spacing:1px;padding:8px 12px;
  background:var(--surface);color:var(--ink);border:3px solid var(--ink);box-shadow:var(--bevel-light)}
.chip:active{transform:translateY(2px)}
.chip.active{background:var(--primary);color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.3);box-shadow:var(--bevel-primary)}
.plan-tabs{display:flex;gap:10px;margin:14px 0 16px}
.plan-tabs button{cursor:pointer;font-family:var(--font-micro);font-size:10px;font-weight:700;letter-spacing:1px;padding:9px 14px;background:var(--surface);
  color:var(--muted);border:3px solid var(--ink);box-shadow:var(--bevel-light)}
.plan-tabs button.active{background:var(--ink);color:var(--secondary-hi)}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}
.plan-card{background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-2);padding:15px;cursor:pointer;display:flex;flex-direction:column}
.pc-head{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.pc-title{font-family:var(--font-body);font-size:21px;font-weight:700;color:var(--ink);line-height:1.4}
.pc-pick{margin-top:12px;background:var(--sunken);border:2px solid var(--ink);box-shadow:var(--bevel-sunken);padding:11px 13px;font-family:var(--font-body);font-size:18px;color:var(--ink);line-height:1.5}
.pc-pick .pl{display:block;font-family:var(--font-micro);font-size:8px;color:var(--muted);margin-bottom:6px;letter-spacing:.5px}
.pc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:13px;font-family:var(--font-micro);font-size:9px;color:var(--muted);letter-spacing:.5px}
.pc-foot .pf-l{display:flex;gap:14px;flex-wrap:wrap}

/* ===================== 我的 ===================== */
.profile-head{display:flex;align-items:center;gap:16px;background:var(--ink);color:var(--surface);border:4px solid var(--ink);box-shadow:var(--drop-2);padding:20px 22px;margin-bottom:16px}
.avatar{width:60px;height:60px;flex:0 0 60px;background:var(--tertiary);border:3px solid var(--surface);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:18px;color:#fff;box-shadow:0 -3px rgba(0,0,0,.3) inset,0 3px rgba(255,255,255,.3) inset}
.ph-info{flex:1}
.ph-name{font-family:var(--font-display);font-size:15px;color:#fff}
.ph-sub{font-family:var(--font-body);font-size:18px;color:var(--sunken);margin-top:9px}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.stat-box{background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-1);text-align:center;padding:18px 6px;cursor:pointer}
.stat-box .sv{font-family:var(--font-display);font-size:22px;color:var(--ink)}
.stat-box .sl{font-family:var(--font-micro);font-size:10px;color:var(--muted);margin-top:10px;letter-spacing:1px}
.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.menu-item{display:flex;align-items:center;gap:13px;background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-1);
  padding:15px 16px;cursor:pointer}
.mi-ic{width:38px;height:38px;flex:0 0 38px;background:var(--sunken);border:2px solid var(--ink);box-shadow:var(--bevel-sunken);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:14px;color:var(--ink)}
.mi-t{flex:1;font-family:var(--font-body);font-size:20px;font-weight:700;color:var(--ink);line-height:1.3}
.mi-t small{display:block;font-family:var(--font-micro);font-size:8px;color:var(--muted);font-weight:400;margin-top:5px;letter-spacing:.5px}
.mi-ar{font-family:var(--font-display);font-size:15px;color:var(--muted)}

.demo-flag{grid-column:1/-1;background:var(--secondary);border:4px solid var(--ink);box-shadow:var(--drop-1);padding:12px 16px;
  font-family:var(--font-micro);font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--ink);line-height:1.7;margin-bottom:16px}

/* toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,80px);display:none;background:var(--ink);color:var(--surface);
  border:3px solid var(--secondary);box-shadow:var(--drop-2);padding:13px 20px;font-family:var(--font-body);font-size:18px;z-index:99;
  transition:transform .12s steps(3);max-width:90vw}
.toast.show{display:block;transform:translate(-50%,0)}

/* 通用脚注 / 未开售 / 旋转 */
.foot-note{background:var(--sunken);border:2px solid var(--ink);padding:11px 13px;margin-top:14px;font-family:var(--font-body);font-size:15px;color:var(--muted);line-height:1.6}
.na-line{background:var(--sunken);border:2px dashed var(--muted);padding:12px;font-family:var(--font-micro);font-size:10px;color:var(--muted);letter-spacing:.5px;margin:8px 0}
.odds-cell.na .ov{color:var(--muted);font-size:10px}
.star-g{color:var(--secondary-lo)}
.spin-ei{display:inline-block;animation:spin 1s steps(8) infinite}

/* ===================== 通用二级页：返回条 ===================== */
.nav-back{display:flex;align-items:center;gap:12px;background:var(--ink);color:var(--surface);border:4px solid var(--ink);
  box-shadow:var(--drop-1);padding:11px 14px;margin-bottom:16px}
.nav-back .bk{width:38px;height:38px;flex:0 0 38px;background:var(--surface);color:var(--ink);border:3px solid var(--surface);
  display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--bevel-light)}
.nav-back .bk svg{width:18px;height:18px}
.nav-back .bk:active{transform:translateY(2px)}
.nav-back .nt{font-family:var(--font-display);font-size:13px;color:#fff;letter-spacing:1px}

/* ===================== 赛事详情 ===================== */
.detail-hero{background:var(--ink);color:var(--surface);border:4px solid var(--ink);box-shadow:var(--drop-2);padding:18px 18px 16px;margin-bottom:16px}
.dh-vs{display:flex;align-items:center;gap:10px;margin:16px 0 10px}
.dh-team{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}
.dh-team .tn{font-family:var(--font-body);font-size:19px;font-weight:700;color:#fff;text-align:center;line-height:1.15}
.dh-team .team-badge{font-size:16px}
.dh-mid{flex:0 0 auto;text-align:center}
.dh-mid .vs{font-family:var(--font-display);font-size:14px;color:var(--secondary-hi);border:2px solid var(--secondary-hi);padding:6px 10px}
.dh-mid .tm{font-family:var(--font-micro);font-size:9px;color:var(--sunken);margin-top:9px}
.dh-round{font-family:var(--font-micro);font-size:9px;color:var(--sunken);text-align:center;letter-spacing:.5px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.info-cell{background:var(--surface);border:3px solid var(--ink);box-shadow:var(--bevel-light);padding:12px 14px}
.info-cell .il{font-family:var(--font-micro);font-size:9px;color:var(--muted);letter-spacing:.5px}
.info-cell .iv{font-family:var(--font-body);font-size:18px;color:var(--ink);margin-top:7px}
.data-block{background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-1);padding:14px 16px;margin-bottom:14px}
.data-block .db-title{font-family:var(--font-display);font-size:10px;color:var(--ink);margin:4px 0 11px;letter-spacing:.5px}
.data-block .db-title:not(:first-child){margin-top:18px}
.form-row{display:flex;align-items:center;gap:11px;padding:8px 0;flex-wrap:wrap}
.frl{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:16px;color:var(--ink);min-width:0;flex:1}
.frl .team-badge{flex:0 0 auto;font-size:9px;line-height:1;white-space:nowrap;overflow:hidden}
.frn{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form-na{font-family:var(--font-body);font-size:15px;color:var(--muted);padding:4px 0}
.form-dots{display:inline-flex;gap:5px}
.fd{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;font-family:var(--font-display);font-size:9px;
  border:2px solid var(--ink);color:#fff}
.fd-W{background:var(--primary)}.fd-D{background:var(--secondary);color:var(--ink)}.fd-L{background:var(--danger)}
.h2h-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:2px dashed var(--sunken)}
.h2h-row:last-child{border-bottom:0}
.h2h-d{font-family:var(--font-micro);font-size:9px;color:var(--muted);flex:0 0 70px}
.h2h-score{flex:1;font-family:var(--font-body);font-size:17px;color:var(--ink)}
.handicap-line{font-family:var(--font-body);font-size:16px;color:var(--muted);margin-bottom:8px}
.handicap-line b{color:var(--danger);font-family:var(--font-display);font-size:14px}
.goals-row{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:6px 0 2px}
.goals-cell{background:var(--sunken);border:2px solid var(--ink);box-shadow:var(--bevel-sunken);text-align:center;padding:8px 2px}
.goals-cell .gl{font-family:var(--font-micro);font-size:8px;color:var(--muted)}
.goals-cell .go{font-family:var(--font-display);font-size:11px;color:var(--ink);margin-top:6px}
.detail-actions{display:flex;gap:10px;margin:8px 0 4px}

/* ===================== AI 单场多模型 ===================== */
.match-header{background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-1);padding:14px 16px;margin-bottom:16px;cursor:pointer}
.mh-teams{display:flex;align-items:center;gap:10px}
.mh-teams .team-badge{flex:0 0 auto;font-size:10px}
.mh-vs{flex:1;text-align:center;font-family:var(--font-body);font-size:18px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mh-vs i{font-style:normal;color:var(--muted)}
.mh-meta{display:flex;align-items:center;gap:9px;margin-top:11px;font-family:var(--font-micro);font-size:9px;color:var(--muted);flex-wrap:wrap}
.mh-go{margin-left:auto;color:var(--tertiary-lo);font-weight:700}
.model-scroll{display:flex;gap:13px;overflow-x:auto;padding:4px 2px 12px;margin-bottom:6px;-webkit-overflow-scrolling:touch}
.model-card{flex:0 0 196px;background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-1);padding:13px;cursor:pointer}
.model-card.sel{border-color:var(--primary-lo);box-shadow:0 0 0 3px var(--primary-hi),var(--drop-1)}
.model-card.pending{opacity:.7}
.mc-head{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.model-logo{width:34px;height:34px;flex:0 0 34px;background:var(--mc,var(--tertiary));color:#fff;border:2px solid var(--ink);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:13px;box-shadow:0 -3px rgba(0,0,0,.3) inset,0 3px rgba(255,255,255,.25) inset}
.model-logo.lg{width:42px;height:42px;flex-basis:42px;font-size:16px}
.mc-head .mn{font-family:var(--font-body);font-size:17px;font-weight:700;color:var(--ink);line-height:1.15}
.mc-head .mv{font-family:var(--font-micro);font-size:8px;color:var(--muted);margin-top:4px}
.mc-concl{font-family:var(--font-display);font-size:12px;color:var(--primary-lo);text-align:center;padding:9px 4px;line-height:1.5;min-height:46px;display:flex;align-items:center;justify-content:center}
.mc-concl.pending-txt{color:var(--muted)}
.mc-pending{text-align:center;font-family:var(--font-body);font-size:15px;color:var(--muted);line-height:1.7;padding:6px 0 10px}
.mc-probs{display:flex;justify-content:space-between;font-family:var(--font-micro);font-size:9px;color:var(--muted);margin-bottom:8px}
.mc-probs b{font-family:var(--font-display);font-size:10px;color:var(--ink)}
.mc-probs .pw b{color:var(--primary-lo)}.mc-probs .pl b{color:var(--danger-lo)}
.prob-bar{display:flex;height:12px;border:2px solid var(--ink);margin-bottom:11px}
.pb-seg{height:100%}.pb-w{background:var(--primary)}.pb-d{background:var(--secondary)}.pb-l{background:var(--danger)}
.mc-foot{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-micro);font-size:8px;color:var(--muted)}
.stars{color:var(--secondary);letter-spacing:1px}
.mc-gen{color:var(--muted)}
.ai-note{text-align:center;font-family:var(--font-micro);font-size:8px;color:var(--muted);margin-top:10px;letter-spacing:.5px}

.model-detail{background:var(--surface);border:4px solid var(--ink);box-shadow:var(--bevel-light),var(--drop-2);padding:16px 18px;margin-top:6px}
.md-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:2px dashed var(--sunken);margin-bottom:14px}
.md-h-info{flex:1;min-width:0}
.md-name{font-family:var(--font-body);font-size:20px;font-weight:700;color:var(--ink);line-height:1.3}
.md-vendor{font-family:var(--font-micro);font-size:9px;color:var(--muted);margin-top:6px}
.md-pending{text-align:center;font-size:30px;margin-bottom:8px}
.md-pending-t{font-family:var(--font-display);font-size:12px;color:var(--ink);margin-bottom:8px}
.md-pending-s{font-family:var(--font-body);font-size:16px;color:var(--muted);line-height:1.7}
.bar-chart{display:flex;flex-direction:column;gap:8px;margin:6px 0 4px}
.bar-row{display:flex;align-items:center;gap:10px}
.bar-row .bl{flex:0 0 46px;font-family:var(--font-micro);font-size:9px;color:var(--muted);text-align:right}
.bar-track{flex:1;height:24px;background:var(--sunken);border:2px solid var(--ink);box-shadow:var(--bevel-sunken);padding:2px}
.bar-fill{height:100%;min-width:26px;display:flex;align-items:center;justify-content:flex-end;padding-right:6px;
  font-family:var(--font-display);font-size:8px;color:#fff;box-shadow:0 -2px rgba(0,0,0,.28) inset,0 2px rgba(255,255,255,.22) inset}
.bf-w{background:var(--primary)}.bf-d{background:var(--secondary)}.bf-l{background:var(--danger)}
.reason-box{background:var(--sunken);border:2px solid var(--ink);box-shadow:var(--bevel-sunken);padding:12px 14px;font-family:var(--font-body);font-size:17px;color:var(--ink);line-height:1.6}
.ref-tags{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.ref-tag{background:var(--sunken);border:2px solid var(--ink);padding:10px 8px;text-align:center}
.ref-tag .rl{display:block;font-family:var(--font-micro);font-size:8px;color:var(--muted)}
.ref-tag .rv{display:block;font-family:var(--font-display);font-size:10px;color:var(--ink);margin-top:7px}

/* ===================== 方案详情 ===================== */
.plan-detail-hero{background:var(--ink);color:var(--surface);border:4px solid var(--ink);box-shadow:var(--drop-2);padding:18px;margin-bottom:16px}
.pdh-tags{display:flex;gap:7px;flex-wrap:wrap}
.pdh-title{font-family:var(--font-body);font-size:22px;font-weight:700;color:#fff;line-height:1.4;margin:14px 0 8px}
.pdh-time{font-family:var(--font-micro);font-size:9px;color:var(--sunken)}
.linked-list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.linked-match{display:flex;align-items:center;gap:12px;background:var(--surface);border:3px solid var(--ink);box-shadow:var(--bevel-light);padding:12px 14px}
.lm-badges{display:flex;gap:3px}
.lm-l{flex:1;min-width:0}
.lm-vs{font-family:var(--font-body);font-size:18px;font-weight:700;color:var(--ink)}
.lm-meta{font-family:var(--font-micro);font-size:8px;color:var(--muted);margin-top:5px}
.lm-go{flex:0 0 auto;cursor:pointer;font-family:var(--font-micro);font-size:9px;font-weight:700;color:var(--tertiary-lo);border:2px solid var(--ink);background:var(--sunken);padding:8px 10px}
.plan-body{display:flex;flex-direction:column;gap:12px}
.plan-body-block{background:var(--surface);border:3px solid var(--ink);box-shadow:var(--bevel-light);padding:14px 16px}
.plan-body-block h4{font-family:var(--font-display);font-size:10px;color:var(--ink);margin:0 0 9px}
.plan-body-block p{font-family:var(--font-body);font-size:17px;color:var(--ink);line-height:1.65;margin:0}
.pick-highlight{background:var(--primary);color:#fff;border:2px solid var(--ink);box-shadow:var(--bevel-primary);padding:12px 14px;font-family:var(--font-body);font-size:18px;line-height:1.5}
.pc-go{color:var(--tertiary-lo);font-family:var(--font-display);font-size:10px}
.data-note{grid-column:1/-1;background:var(--ink);color:var(--sunken);border:4px solid var(--ink);box-shadow:var(--drop-1);padding:13px 16px;
  font-family:var(--font-body);font-size:15px;line-height:1.7;margin-bottom:16px}
.fin-tag{background:var(--sunken);color:var(--muted)}

/* ===================== 手机（≤960px） ===================== */
@media(max-width:960px){
  .app{flex-direction:column}
  .side{display:none}
  .topbar{display:none}
  .tabbar{display:none}
  .appbar{display:block}
  .tabbar{display:flex}

  .appbar{
    position:sticky;top:0;z-index:40;background:var(--ink);color:var(--surface);padding:15px 14px 13px;
    border-bottom:4px solid var(--primary);
  }
  .ab-title{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:15px;color:#fff}
  .ab-title .logo-mark{width:22px;height:22px;color:var(--primary-hi)}
  .ab-sub{font-family:var(--font-micro);font-size:8px;color:var(--sunken);margin-top:9px;letter-spacing:.3px;padding-right:52px;line-height:1.6}
  .ab-refresh{position:absolute;top:13px;right:14px;width:38px;height:38px;background:var(--surface)}

  .content{padding:14px 12px 92px;max-width:100%}
  .match-grid,.lab-grid,.plan-grid,.ticket-grid{grid-template-columns:1fr}
  .lab-grid{display:grid;gap:12px}
  .match-grid>*,.lab-grid>*,.plan-grid>*,.ticket-grid>*{min-width:0}
  .lab-item{gap:10px}
  .li-vs{font-size:17px}
  .model-count-badge{font-size:9px;padding:6px 8px;letter-spacing:.5px}
  .model-count-badge b{font-size:11px}
  .menu-list{grid-template-columns:1fr}
  .stat-row{grid-template-columns:repeat(3,1fr);gap:9px}
  .stat-box{padding:15px 4px}
  .stat-box .sv{font-size:18px}
  .profile-head{padding:16px 14px;gap:12px}
  .ph-sub{font-size:15px}
  .today-hero{padding:15px}
  .th-count{min-width:0;padding:9px 6px;flex:1}
  .th-counts{gap:8px}
  .th-sep{display:none}
  .th-date{font-size:18px}
  .brand .bs{display:none}

  .tabbar{
    position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--ink);border-top:4px solid var(--primary);
    display:grid;grid-template-columns:repeat(4,1fr);padding:7px 4px calc(7px + env(safe-area-inset-bottom));
  }
  .tab{display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--sunken);cursor:pointer;font-family:var(--font-micro);font-size:9px;letter-spacing:.5px}
  .tab svg{width:22px;height:22px}
  .tab.on{color:var(--primary-hi)}
  .toast{bottom:80px}

  /* 详情页手机适配 */
  .detail-hero{padding:15px 14px}
  .dh-team .tn{font-size:16px}
  .dh-team .team-badge{width:44px;height:44px;font-size:13px}
  .info-grid{gap:9px}
  .info-cell{padding:10px}
  .info-cell .iv{font-size:16px}
  .goals-row{gap:4px}
  .goals-cell{padding:7px 1px}
  .goals-cell .go{font-size:10px}
  .goals-cell .gl{font-size:7px}
  .model-card{flex-basis:172px;padding:11px}
  .model-detail{padding:14px}
  .ref-tags{grid-template-columns:1fr 1fr 1fr;gap:7px}
  .ref-tag{padding:9px 4px}
  .ref-tag .rv{font-size:9px}
  .pdh-title{font-size:19px}
  .mh-vs{font-size:16px}
  .bar-row .bl{flex-basis:40px}
  .plan-body-block p{font-size:16px}
}
