
/* ============================================================
   BuildPlayer — Mobile-First Game Edition
   ============================================================ */


:root {
  --bg: #faf5eb;--bg-card: #fffaf2;--bg-card-hover: #fff5e8;  --bg-elevated: #fff0e0;
  /* ★ 2026-09-21 U4：间距/卡片设计 token（所有 gap/padding/radius 只用这些档位） */
  --sp-1: 6px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px;
  --card-pad: 12px; --card-radius: 12px; --card-gap: 8px;
  --border: #f0e0cc;--border-light: #e8d5bc;--text: #2d1f0e;--text-dim: #8a7a66;
  --text-muted: #baa992;--orange: #ff6b35;--orange-light: #ff8a5c;
  --orange-dim: rgba(255,107,53,0.1);--orange-bg: rgba(255,107,53,0.06);
  --red: #e63946;--gold: #f7a600;--green: #2ec4b6;
  --shadow: 0 2px 12px rgba(45,31,14,0.08);--shadow-lg: 0 4px 24px rgba(45,31,14,0.12);
  --radius: 16px;--radius-sm: 10px;--radius-xs: 6px;
  --font-display: 'Fredoka','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;--font-body: 'Nunito','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;--font-athletic: 'Oswald','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --safe-t: env(safe-area-inset-top,0px);--safe-b: env(safe-area-inset-bottom,0px);
  --safe-l: env(safe-area-inset-left,0px);--safe-r: env(safe-area-inset-right,0px);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100svh;overflow-x:hidden;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
@media (max-width:600px){
  html{width:100%;overflow-x:clip;overscroll-behavior:none;}
  body{width:100%;min-width:0;overflow-x:clip;touch-action:pan-y;}
  #app{width:100%;max-width:560px;min-height:100dvh;contain:layout paint;}
  .screen.active{animation:fadeIn .18s ease;}
  .modal-overlay,.team-picker-overlay{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
}

#app{max-width:560px;margin:0 auto;min-height:100svh;position:relative;padding:var(--safe-t) var(--safe-r) calc(32px+var(--safe-b)) var(--safe-l)}
.hl{color:var(--orange)}.gold{color:var(--gold)}.text-dim{color:var(--text-dim)}



.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 24px;border:none;border-radius:12px;font-family:var(--font-display);font-size:15px;font-weight:600;cursor:pointer;transition:all .1s;min-height:48px;width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding-top:var(--sp-2)}.btn-row>.btn{flex:1 1 0;min-width:0;min-height:48px;margin:0}
.hub-actions-2x2{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:8px;width:100%;margin-top:10px}
.hub-actions-2x2>.btn{flex:1 1 140px!important;width:auto!important;max-width:calc(50% - 4px)!important;margin:0!important}
#fa-modal .team-picker-modal{max-width:min(540px,94vw)!important;width:min(540px,94vw)}
#screen-build.chaos-gacha .build-left{display:none!important}
#screen-build.chaos-gacha .build-split{padding:0 10px}
#screen-build.chaos-gacha .build-right{width:100%;flex:1;min-width:0}
#screen-build.chaos-gacha .br-slot-machine{max-width:280px}
#screen-build.chaos-gacha .br-slot-wrapper{width:100%}
#screen-build.chaos-gacha #br-slot-area,#screen-build.chaos-gacha #br-roster-area{width:100%}


.btn:active{transform:scale(0.96)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 4px 0 var(--orange-deep),0 6px 12px rgba(255,107,53,0.2)}
.btn-primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--orange-deep),0 3px 8px rgba(255,107,53,0.15)}
.btn-secondary{background:var(--bg-card);color:var(--text);border:2px solid var(--border);box-shadow:0 3px 0 var(--border)}
.btn-secondary:active{transform:translateY(2px);box-shadow:0 1px 0 var(--border)}
.btn-sm{padding:10px 16px;font-size:13px;width:auto;min-height:40px;border-radius:10px}
.btn-xs{padding:5px 12px;font-size:11px;width:auto;min-height:32px;border-radius:8px;font-family:var(--font-display);letter-spacing:.5px;border:2px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;transition:all .1s}
.btn-xs:active{transform:scale(0.95)}.btn-gold{background:var(--gold);color:#000;box-shadow:0 3px 0 #c48a00,0 4px 10px rgba(247,166,0,0.2)}
.btn-gold:active{transform:translateY(2px);box-shadow:0 1px 0 #c48a00,0 2px 6px rgba(247,166,0,0.15)}
.screen{display:none}.screen.active{display:block;animation:popIn .3s ease}
#screen-build.screen.active{display:flex!important;flex-direction:column;height:calc(100svh - 32px - var(--safe-t) - var(--safe-b));overflow:hidden;position:relative}
#screen-career.screen.active{display:flex!important;flex-direction:column;min-height:calc(100svh - 32px - var(--safe-t) - var(--safe-b))}
#screen-career.screen.active #career-area{flex:1;display:flex;flex-direction:column}
#screen-career.screen.active #career-area>div{flex:1;display:flex;flex-direction:column}
#screen-career.screen.active #career-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
#screen-training.screen.active{display:flex!important;flex-direction:column;height:calc(100svh - 32px - var(--safe-t) - var(--safe-b));overflow:hidden}#screen-training .section-title{flex-shrink:0}#training-actions.tp-actions{flex-shrink:0;flex-wrap:wrap;justify-content:center;align-items:stretch;margin-top:0;gap:8px;padding:10px 12px calc(12px + var(--safe-b,0px));background:var(--bg);border-top:1.5px solid var(--border);z-index:5}#training-actions .btn{flex:1;max-width:180px;margin:0!important}
#screen-roster-review.screen.active{display:flex!important;flex-direction:column;height:calc(100svh - 32px - var(--safe-t) - var(--safe-b));overflow:hidden}
#screen-career-stats.screen.active,#screen-career-honors.screen.active{display:flex!important;flex-direction:column;height:calc(100svh - 32px - var(--safe-t) - var(--safe-b));overflow:hidden}
#career-stats-content,#career-honors-content{flex:1;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;padding-bottom:calc(28px + var(--safe-b,0px))}
@keyframes popIn{from{opacity:0;transform:scale(0.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes pulseGlow{0%,100%{box-shadow:0 0 0 0 rgba(255,107,53,0.3)}50%{box-shadow:0 0 0 6px rgba(255,107,53,0)}}
.section-title{text-align:center;padding:12px 16px 8px}
.section-title h1{font-family:var(--font-display);font-size:clamp(18px,5vw,24px);font-weight:700;color:var(--text);display:inline-block;padding-bottom:8px;border-bottom:3px solid var(--orange)}
.section-title .sub{font-size:clamp(12px,3vw,14px);color:var(--text-dim);margin-top:4px}
#screen-position{text-align:center;padding:0 12px 20px}
.pos-grid{display:grid;grid-template-columns:1fr;gap:8px;padding:8px 16px 16px;max-width:360px;margin:0 auto}
.pos-grid.pos-two-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:8px 10px 16px;max-width:380px;margin:0 auto}
.pos-grid.pos-two-row .pos-card{grid-column:span 2;min-height:72px;padding:12px 7px;background:var(--bg-card)}
.pos-grid.pos-two-row .pos-card:nth-child(4){grid-column:2 / span 2}
.pos-grid.pos-two-row .pos-card:nth-child(5){grid-column:4 / span 2}
.position-actions{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px;align-items:stretch;margin:4px auto 0;max-width:440px;padding:0 14px;box-sizing:border-box}
.position-actions .btn{flex:1 1 160px;width:auto;max-width:210px;margin:0!important;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.pos-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);padding:18px 12px;text-align:center;cursor:pointer;transition:all .18s;position:relative;overflow:hidden;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pos-card:active{transform:scale(0.95)}
.pos-card.selected{border-color:var(--orange);background:var(--orange-bg);box-shadow:0 0 0 1px var(--orange),var(--shadow)}
.pos-card .pos-label{font-family:var(--font-display);font-size:clamp(14px,3.5vw,18px);font-weight:700;display:block;margin-bottom:2px}
.pos-card .pos-en{font-family:var(--font-display);font-size:clamp(20px,5vw,28px);color:var(--orange);font-weight:700;display:block;letter-spacing:2px}
#screen-position .btn{max-width:280px;margin:8px auto 0}
.build-mode-select{margin:10px auto 2px;max-width:360px;text-align:center}
.bms-title{font-family:var(--font-display);font-size:12px;color:var(--text-dim);letter-spacing:1px;margin-bottom:6px}
.bms-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.bms-btn{flex:1 1 30%;min-width:96px;display:flex;flex-direction:column;gap:2px;align-items:center;padding:9px 6px;background:var(--bg-card);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .15s;color:var(--text)}
.bms-btn:active{transform:scale(0.97)}
.bms-btn.active{border-color:var(--orange);background:var(--orange-bg);box-shadow:0 0 0 1px var(--orange)}
.bms-label{font-family:var(--font-display);font-size:13px;font-weight:700}
.bms-desc{font-size:10px;color:var(--text-dim);line-height:1.3}
.bms-btn.active .bms-desc{color:var(--orange-deep)}
#build-progress-area{flex-shrink:0}
.build-progress{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--bg-card);border:2px solid var(--border);border-radius:12px;margin:0 10px 6px}
.progress-bar{flex:1;height:10px;background:var(--border);border-radius:5px;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--orange),var(--orange-light));border-radius:5px;transition:width .4s ease}
.progress-text{font-family:var(--font-display);font-size:18px;color:var(--orange);min-width:36px;text-align:right}
.build-split{display:flex;flex-direction:row;gap:8px;padding:0 8px;flex:1;min-height:0;align-items:stretch}
.build-left{width:130px;flex-shrink:0;display:flex;flex-direction:column;gap:4px;min-height:0}
@media (max-width:375px){.build-left{width:104px}.build-right{font-size:12px}}
.bl-header{text-align:center;padding:8px 4px 6px;background:var(--bg-card);border:2px solid var(--border);border-radius:10px}
.bl-ovr{display:block;font-family:var(--font-display);font-size:clamp(28px,7vw,36px);font-weight:700;color:var(--orange);line-height:1}
.bl-label{font-family:var(--font-display);font-size:10px;color:var(--text-dim);letter-spacing:2px}
.bl-attrs{display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.ba-slot{display:flex;align-items:center;gap:3px;padding:6px 6px;background:var(--bg-card);border:2px solid var(--border);border-radius:8px;transition:all .15s;cursor:default;min-height:36px}
.ba-slot.locked{border-color:var(--gold);background:linear-gradient(135deg,rgba(247,166,0,0.06),rgba(247,166,0,0.02))}
.ba-slot.clickable{cursor:pointer}.ba-slot.clickable:hover{border-color:var(--orange);background:var(--orange-bg)}
.ba-slot.clickable:active{transform:scale(0.96)}
.ba-slot .ba-label{font-family:var(--font-display);font-size:10px;font-weight:600;color:var(--text-dim);min-width:20px}
.ba-slot .ba-grade{font-size:13px;font-weight:700;min-width:18px;text-align:center;font-family:var(--font-display)}
.ba-slot .ba-owner{font-size:9px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:right;padding-left:2px}
.ba-slot.locked .ba-owner{color:var(--gold);font-weight:700}.ba-slot .ba-empty{font-size:14px;color:var(--border);margin-left:auto}
.bl-footer{display:none}.team-logo{width:18px;height:18px;border-radius:4px;vertical-align:middle;object-fit:contain;flex-shrink:0}
.build-right{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;gap:6px;overflow:hidden}
#br-slot-area{flex-shrink:0}#br-roster-area{flex:1;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
#body-builder-area{flex:1;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 2px 12px}
.body-card{background:var(--bg-card);border:2px solid var(--border);border-radius:12px;padding:10px 10px 8px;margin-bottom:8px}
.body-card h3{font-family:var(--font-display);font-size:13px;margin:0 0 8px;color:var(--orange);letter-spacing:1px}
.body-step-row{display:flex;align-items:center;gap:6px;padding:6px 4px;border-bottom:1px solid var(--border-light);font-size:13px}
.body-step-row .an{width:36px;color:var(--text-dim);font-weight:700}
.body-step-row .av{flex:1;font-family:var(--font-display);font-weight:800;text-align:center}
.tpl-row{display:flex;flex-wrap:wrap;gap:6px}
.tpl-chip{border:2px solid var(--border);background:var(--bg-card);border-radius:16px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer}
.tpl-chip.on{border-color:var(--orange);background:var(--orange-bg);color:var(--orange)}
.attr-alloc-row{display:flex;align-items:center;gap:6px;padding:6px 4px;border-bottom:1px solid var(--border-light);font-size:13px}
.attr-alloc-row .an{width:36px;flex-shrink:0;color:var(--text-dim);font-weight:700}
.attr-alloc-row .av{width:32px;flex-shrink:0;text-align:center;font-family:var(--font-display);font-weight:800}
.attr-alloc-row .cap{flex:1;min-width:0;font-size:10px;color:var(--text-muted);text-align:left;line-height:1.35}
.attr-alloc-row .attr-step{display:flex;align-items:center;gap:4px;flex-shrink:0}
.attr-alloc-row .attr-step-minus{margin-right:2px}
.attr-alloc-row .attr-step-plus{margin-left:auto}
.attr-btn{width:28px;height:28px;border-radius:8px;border:2px solid var(--border);background:#fff;font-weight:800;cursor:pointer}
.attr-btn:disabled{opacity:.35;cursor:default}
.build-confirm-bar{position:sticky;bottom:0;padding:8px 0 4px;background:linear-gradient(180deg,transparent,var(--bg) 30%);}
.br-slot-area{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-sm);padding:10px 8px 10px;text-align:center}
.br-slot-label{font-family:var(--font-display);font-size:12px;color:var(--orange);font-weight:700;letter-spacing:1px;margin-bottom:8px}
.br-slot-wrapper{display:flex;justify-content:center}
.br-slot-machine{position:relative;width:100%;max-width:160px;background:#fff;border:3px solid var(--border);border-radius:12px;overflow:hidden;height:114px;box-shadow:inset 0 2px 12px rgba(0,0,0,0.04)}
.br-slot-machine::before{content:'';position:absolute;left:0;right:0;top:38px;height:38px;background:rgba(255,107,53,0.05);border-top:2px dashed var(--orange-dim);border-bottom:2px dashed var(--orange-dim);z-index:2;pointer-events:none}
.br-slot-reel{transition:transform 1.4s cubic-bezier(0.15,0.85,0.25,1);will-change:transform}
.br-slot-reel.spinning{transition:transform 1.4s cubic-bezier(0.1,0.7,0.1,1)}
.br-slot-item{height:38px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--text-dim);padding:0 10px;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.br-slot-item.highlight{color:var(--text);font-size:16px;font-weight:700}
/* 生涯球队老虎机 — 5项可见 */
.br-slot-machine.career-slot{height:190px}
.br-slot-machine.career-slot::before{top:76px}
.br-slot-machine.career-slot .br-slot-item.highlight{color:var(--text);font-size:16px;font-weight:700}
/* 自选球队弹窗 */
.team-picker-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,0.45);display:flex;align-items:center;justify-content:center;padding:12px;animation:fadeIn .2s ease}
/* ★ 2026-09-10：复出链弹层（等待通知/赛季回顾/回归邀请）需要盖过生涯排行榜(340)，
   但仍低于退役海报(999)——海报只在真正收尾时出现，不会被反盖。 */
.team-picker-overlay.comeback-layer{z-index:400}
.team-picker-modal{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 48px rgba(0,0,0,0.25);animation:slideUp .25s ease}
.matchup-preview-scroll{min-width:0}
.matchup-preview-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.matchup-preview-actions .btn{width:100%;flex-shrink:0}
@media (max-width:600px){
  .team-picker-overlay{align-items:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(8px + var(--safe-t,0px)) 8px calc(8px + var(--safe-b,0px))}
  #playoff-series-preview .team-picker-modal{max-height:calc(100svh - 16px - var(--safe-t,0px) - var(--safe-b,0px));overflow:hidden}
  #playoff-series-preview .matchup-preview-scroll{max-height:calc(100svh - 190px - var(--safe-t,0px) - var(--safe-b,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:2px}
}

.page-loading-overlay{z-index:1600;background:rgba(18,14,10,.72);touch-action:none}
.page-loading-overlay.is-hidden{opacity:0;pointer-events:none;z-index:10;transition:opacity .18s ease}
.page-loading-modal{max-width:420px;width:min(92vw,420px);padding:22px 20px 18px;text-align:left;background:rgba(250,245,235,.98);border:1px solid rgba(232,192,74,.35);box-shadow:0 18px 50px rgba(0,0,0,.28);-webkit-text-size-adjust:100%;text-size-adjust:100%}
.page-loading-modal .loading-balls{margin:2px 0 14px}
.page-loading-title{font-family:var(--font-display);font-size:18px;font-weight:800;text-align:center;color:var(--text)}
.page-loading-detail{font-size:12px;color:var(--text-dim);line-height:1.6;text-align:center;margin-top:6px;min-height:20px}
.page-loading-progress{height:8px;background:var(--border);border-radius:99px;overflow:hidden;margin-top:16px}
.page-loading-progress-fill{height:100%;width:4%;border-radius:inherit;background:linear-gradient(90deg,var(--orange),var(--gold));transition:width .22s ease}
.page-loading-progress-label{display:flex;justify-content:space-between;gap:8px;margin-top:7px;color:var(--text-muted);font-size:10px}
.page-loading-steps{display:grid;gap:6px;margin-top:14px}
.page-loading-step{display:flex;align-items:center;gap:7px;min-height:18px;color:var(--text-muted);font-size:11px;line-height:1.35}
.page-loading-step::before{content:'○';font-size:13px;color:var(--border-light)}
.page-loading-step.is-active{color:var(--text);font-weight:700}
.page-loading-step.is-active::before{content:'●';color:var(--orange)}
.page-loading-step.is-done{color:var(--green)}
.page-loading-step.is-done::before{content:'✓';color:var(--green);font-weight:800}
.team-picker-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg);color:var(--text)}
.team-picker-header span{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--text)}
#legacy-modal.team-picker-overlay{align-items:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 12px calc(16px + var(--safe-b,0px))}
#legacy-modal .team-picker-modal{margin:auto;max-height:min(85vh,calc(100svh - 24px));overflow:hidden}
#legacy-modal .legacy-modal-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
#legacy-modal .legacy-modal-footer{flex-shrink:0}
.unified-event-overlay{background:rgba(7,20,32,.48);/* backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); temporarily disabled for performance */}
.unified-event-modal{max-width:420px;border-color:color-mix(in srgb,var(--orange) 38%,var(--border));border-radius:16px;max-height:min(85vh,100svh - 16px);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 46px rgba(7,20,32,.28)}
/* ★ 2026-09-14（小屏修复）：事件弹窗改「头部固定 + 文案区滚动 + 选择区固定」——
   原整体 overflow-y:auto 会把选择按钮顶出屏外（长文案必须滚完全文才看得到选择）。 */
.unified-event-modal .team-picker-header{background:var(--bg);border-bottom-color:var(--border);color:var(--text);flex-shrink:0}
.unified-event-modal .event-actions{flex-shrink:0;background:var(--bg);border-top:1px solid var(--border-light);padding-bottom:calc(10px + var(--safe-b,0px))}
.unified-event-modal .event-kicker{font-size:11px;color:var(--orange);font-weight:800;letter-spacing:.5px;margin-bottom:6px}
.unified-event-modal .event-body{font-size:13px;color:var(--text);line-height:1.75;margin-bottom:12px}
.unified-event-modal .event-choice{width:100%;margin-bottom:8px;justify-content:flex-start;text-align:left;min-height:40px}
.unified-event-modal .event-actions{display:flex;flex-direction:column;gap:8px;padding:10px 14px}
.deal-card{border:1.5px solid var(--border);border-radius:10px;padding:10px;margin:8px 0;background:var(--bg-card);line-height:1.7}
.draft-pick-row{display:flex;align-items:center;gap:8px;padding:5px 8px !important;margin:3px 0 !important;line-height:1.35}
.draft-pick-row .draft-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.draft-pick-row .draft-meta{margin-left:auto;text-align:right;font-size:11px;color:var(--text-dim);white-space:nowrap;flex-shrink:0}
#screen-olympics{background:linear-gradient(180deg,#0b1d3a 0%,#13294d 88px,var(--bg) 240px)}
#screen-olympics .section-title{background:linear-gradient(180deg,#0b1d3a,#163056);border-bottom:2px solid #d4af37;padding-top:14px}
#screen-olympics .section-title h1{color:#f4d06f;border-bottom-color:#d4af37}
#screen-olympics .section-title .sub{color:#c9d7ef}
#olympics-area{padding:8px 10px 24px}
#olympics-area .bv-header{border-bottom-color:#d4af37}
#olympics-area .bv-header-title{color:#0b1d3a}
#olympics-area .bv-round-title{color:#0b1d3a}
#olympics-area .bv-round-arrow{border-color:#d4af37}
#olympics-area .bv-series{border-color:#d4af37;background:rgba(11,29,58,.04)}
#olympics-area .bv-s-btn{background:#c9972a}
#olympics-area .bv-s-badge{background:#c9972a}
#olympics-area .bv-s-gold{border-color:#d4af37}
#olympics-area .deal-card{border-color:rgba(212,175,55,.45)}
#olympics-area .bv-po-stats{border-color:#d4af37}
#olympics-area .bv-po-title{color:#c9972a}
#olympics-area .bv-po-stat{background:rgba(212,175,55,.14)}
#olympics-area .gc-row{border-color:rgba(212,175,55,.4);align-items:flex-start}
#olympics-area .gc-q{width:auto;min-width:72px;max-width:46%;flex:0 1 auto;font-size:11px;line-height:1.3;white-space:normal}
#olympics-area .gc-final{border-color:#d4af37;background:rgba(212,175,55,.14)}
#olympics-area .gc-stats{color:#c9972a}
#olympics-area .gc-row-in{animation:slideUp .2s ease}
#olympics-area .oly-gc-event{border:1px solid rgba(212,175,55,.45);color:#c9972a;background:rgba(212,175,55,.10)}
#olympics-area .btn-primary{background:#c9972a;border-color:#c9972a}
.olympic-gold-overlay .champion-card{background:linear-gradient(170deg,#0b1d3a,#1a3a6b);border-color:#d4af37;color:#f4d06f}
.olympic-gold-overlay .champion-title{color:#f4d06f}
.olympic-gold-overlay .champion-sub{color:#d7e2f5}
.win70-overlay .sixty-win-title{color:#c9972a}
.win80-overlay .sixty-win-title{color:#b22222}
.oly-china-list{font-size:12px;line-height:1.6;color:var(--text-dim);padding:6px 2px 10px}
.oly-bracket{display:flex;flex-direction:column;gap:8px;padding:4px 0 8px}
.deal-card .deal-kicker{font-size:11px;color:var(--orange);font-weight:700;margin-bottom:4px}
.deal-card .deal-row{display:flex;align-items:flex-start;gap:8px}
.deal-card .deal-main{flex:1;min-width:0;font-size:13px;color:var(--text)}
.deal-card .deal-sub{font-size:11px;color:var(--text-dim);line-height:1.55}
.tp-attr{margin-bottom:6px}
.rr-tag{font-size:9px;color:var(--orange);flex-shrink:0;letter-spacing:.5px}
#eventOverlay,#season-prep-modal,#season-branch-modal,#season-branch-result-modal,#offseason-event-modal,#offseason-result-modal,#clutchOverlay{background:rgba(7,20,32,.48);/* backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); temporarily disabled for performance */}
#eventOverlay .team-picker-modal,#season-prep-modal .team-picker-modal,#season-branch-modal .team-picker-modal,#season-branch-result-modal .team-picker-modal,#offseason-event-modal .team-picker-modal,#offseason-result-modal .team-picker-modal,#clutchOverlay .team-picker-modal{border-radius:16px;max-height:min(85vh,100svh - 16px);overflow-y:auto}
/* ★ 2026-09-14（用户反馈）：事件类弹窗在手机端原来随 .team-picker-overlay 的 align-items:flex-start
   顶在屏幕最上方。改为垂直居中，并按设备安全区收紧 max-height——任何机型都完整显示、不截顶不截底
   （max-height ≤ 可用高度，居中不会溢出）。置于全局移动端媒体查询之后，id 选择器同优先级后者胜。 */
@media (max-width:600px){
  .unified-event-overlay,#eventOverlay,#season-prep-modal,#season-branch-modal,#season-branch-result-modal,#offseason-event-modal,#offseason-result-modal,#clutchOverlay{align-items:center}
  .unified-event-overlay .team-picker-modal,#season-prep-modal .team-picker-modal,#season-branch-modal .team-picker-modal,#season-branch-result-modal .team-picker-modal,#offseason-event-modal .team-picker-modal,#offseason-result-modal .team-picker-modal,#clutchOverlay .team-picker-modal{max-height:calc(100svh - 16px - var(--safe-t,0px) - var(--safe-b,0px))}
}
.team-picker-close{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);transition:all .1s}
.team-picker-close:active{border-color:var(--orange);color:var(--orange)}
.team-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1}
.team-pick-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-sm);padding:8px 4px;text-align:center;cursor:pointer;transition:all .12s;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:74px;justify-content:center}
.team-pick-card:active{transform:scale(0.95);border-color:var(--orange);background:var(--orange-bg)}
.team-pick-card img{display:block;width:32px;height:32px;object-fit:contain;border-radius:4px;margin-bottom:2px}
.team-pick-card .tpc-abbr{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text);letter-spacing:1px}
.team-pick-card .tpc-name{font-family:var(--font-body);font-size:9px;color:var(--text-dim);line-height:1.2;overflow:hidden;text-overflow:ellipsis;max-width:100%;white-space:nowrap}
.br-slot-actions{display:flex;gap:6px;justify-content:center;margin-top:8px;flex-wrap:wrap}
.br-slot-actions .slot-btn{font-family:var(--font-display);font-size:11px;font-weight:700;padding:7px 12px;border-radius:8px;border:2px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;transition:all .12s;min-height:36px;box-shadow:0 3px 0 var(--border)}
.br-slot-actions .slot-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--border)}
.br-slot-actions .slot-btn:disabled{opacity:.3;cursor:default;box-shadow:none}
/* 抽球员：位置 tab（对齐虎扑老虎机风格） */
.draft-pos-tabs{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:10px 0 4px}
.draft-pos-tab{font-family:var(--font-display);font-size:12px;font-weight:700;padding:6px 12px;border-radius:8px;border:2px solid var(--border);background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:all .12s}
.draft-pos-tab.active{color:#fff;background:var(--orange);border-color:var(--orange);box-shadow:0 3px 0 var(--orange-dim)}
.draft-pos-tab:active{transform:translateY(2px)}
/* 老虎机结果提示 */
.br-slot-result{text-align:center;font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--orange);min-height:20px;margin:6px 0 2px;letter-spacing:.5px}
/* 抽中球员标签角标 */
.br-player .bp-tag{font-family:var(--font-display);font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px;flex-shrink:0}
.bp-tag.tag-core{color:#3a2a00;background:var(--orange)}
.bp-tag.tag-starter{color:#0a3a1e;background:#7ee0a0}
.bp-tag.tag-sub{color:#1a2740;background:#9fb4d8}
#br-roster-area .br-roster-list{display:flex;flex-direction:column;gap:5px}
.br-player{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--bg-card);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .12s;min-height:48px}
.br-player:active{transform:scale(0.97)}.br-player.selected{border-color:var(--orange);background:var(--orange-bg)}
.br-player .bp-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.br-player .bp-headshot{width:30px;height:30px;border-radius:50%;flex-shrink:0;border:2px solid var(--border)}
.br-player .bp-name{font-family:var(--font-display);font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.br-player .bp-detail{font-family:var(--font-body);font-size:10px;color:var(--text-dim);font-weight:600}
.br-player .bp-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}
.br-player .bp-ovr{font-family:var(--font-display);font-size:18px;color:var(--text);line-height:1}
#build-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1300;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.build-toast-msg{background:var(--bg-card);border:2px solid var(--orange);border-radius:14px;padding:10px 20px;font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--text);animation:slideUp .25s ease,fadeOut .3s ease 1.2s forwards;box-shadow:var(--shadow-lg)}
@keyframes fadeOut{to{opacity:0;transform:translateY(-10px)}}
/* ── 手机/H5 响应式（≤480px 才启用，桌面布局不变） ── */
@media (max-width:480px){
  .pos-grid.pos-two-row{width:min(350px,94vw);gap:6px;padding-left:4px;padding-right:4px}
  .pos-grid.pos-two-row .pos-card{min-height:62px;padding:9px 4px}
  .build-left{width:auto;flex:0 0 36%}
  .build-right{overscroll-behavior:contain}
  #br-roster-area .br-roster-list{display:flex;flex-direction:column;gap:5px}
  #br-roster-area .br-player{padding:7px 8px;min-height:44px}
  #br-roster-area .br-player .bp-name{font-size:12px}
  #br-roster-area .br-player .bp-ovr{font-size:15px}
  .btn,.fc-btn{min-height:40px}
  /* ── 季后赛对阵预览：窄屏改单列 + 让名字换行（原来双列时球员名只剩 ~42px 被省略号截断） ── */
  .mp-cols{grid-template-columns:1fr !important}
  .bv-s-team{font-size:10px}
  .bv-s-name{font-size:10px;white-space:normal !important;word-break:break-all}
  .bv-seed{width:12px}
  .bv-s-score{width:14px}
  .pr-tag{width:30px !important}
  .pr-age{width:26px !important}
  .pr-name{white-space:normal !important;overflow:visible !important;text-overflow:clip !important;line-height:1.3}
}
/* ── UI 批3（2026-09-10）── */
/* P1-12：统一空态卡片。 */
.empty-state-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:34px 18px;margin:18px 12px;background:var(--bg-card);border:1.5px dashed var(--border);border-radius:14px;text-align:center}
.empty-state-icon{font-size:32px;line-height:1}
.empty-state-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text)}
.empty-state-sub{font-size:12px;color:var(--text-dim);max-width:320px;line-height:1.6}
/* ── 揭幕逐项动效 ── */
@keyframes revealContent{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes glowPulse{0%,100%{text-shadow:0 0 20px rgba(255,107,53,0.3),0 0 40px rgba(255,107,53,0.1)}50%{text-shadow:0 0 30px rgba(255,107,53,0.6),0 0 60px rgba(255,107,53,0.2)}}
@keyframes cardUnfold{0%{max-height:0;opacity:0;transform:translateY(20px) scaleY(0.95)}100%{max-height:600px;opacity:1;transform:translateY(0) scaleY(1)}}
.rv-item{opacity:0;animation:revealContent 0.55s ease forwards}
.rv-ovr{animation:revealContent 0.55s ease forwards,glowPulse 3s ease-in-out infinite}
.rv-card-wrap{animation:cardUnfold 0.6s ease forwards;overflow:hidden}
#screen-reveal{padding:0 10px 20px;text-align:center}
.reveal-card{text-align:center;background:var(--bg-card);border:3px solid var(--border);border-radius:var(--radius);padding:24px 16px;margin:0 0 12px}
.reveal-card .reveal-label{font-family:var(--font-display);font-size:13px;color:var(--text-dim);margin-bottom:4px;letter-spacing:2px}
.reveal-card .big-cname{font-family:var(--font-display);font-size:clamp(28px,7vw,38px);font-weight:700;color:var(--text)}
.reveal-card .big-ovr{font-family:var(--font-display);font-size:clamp(60px,16vw,80px);font-weight:700;color:var(--orange);line-height:0.85;margin:6px 0}
.reveal-card .big-grade{display:none}
.reveal-card .big-pos{font-family:var(--font-display);font-size:clamp(14px,3.5vw,18px);color:var(--text-dim);margin-top:6px;letter-spacing:2px}
.reveal-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:6px;padding:0 0 12px}
.reveal-stat{background:var(--bg-card);border:2px solid var(--border);border-radius:10px;padding:8px 4px;text-align:center;opacity:0;animation:revealContent 0.45s ease forwards}
.reveal-stat .label{font-family:var(--font-display);font-size:9px;color:var(--text-dim);letter-spacing:.5px}
.reveal-stat .value{font-family:var(--font-display);font-size:20px;line-height:1;margin:2px 0}
.reveal-stat .num{font-size:10px;color:var(--text-dim);font-weight:600}
#screen-reveal .btn{max-width:280px;margin:12px auto 0}

/* ★ 征服联盟已禁用（2026-08-16）
.btn-conquest{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#d4af37;color:#1a1a2e;border:none;padding:12px 20px;border-radius:12px;font-family:var(--font-display);font-size:13px;cursor:pointer;font-weight:700;letter-spacing:1px;box-shadow:0 4px 0 #b8962e,0 6px 12px rgba(212,175,55,0.25);transition:all .1s ease;position:relative;top:0;min-height:44px}
.btn-conquest:active{transform:translateY(3px);box-shadow:0 1px 0 #b8962e,0 3px 8px rgba(212,175,55,0.15)}
*/

.br-player .bp-headshot:empty,.bl-headshot:empty{background:var(--border)}
.bp-headshot{border-radius:50%;border:2px solid var(--border)}
.bl-headshot{width:22px;height:22px;border-radius:50%;background-size:cover;background-position:center;display:inline-block;vertical-align:middle;border:2px solid var(--border)}
.sim-header{margin:0 10px 6px}.sim-controls{margin:0 10px 8px;display:flex;gap:8px}
.sh-frame{background:var(--bg-card);border:2px solid var(--border);border-radius:12px;margin-top:8px;overflow:hidden}
.sh-frame .sh-top{border:none;border-radius:0;margin:0;background:transparent;padding:10px 12px}
.sh-frame .sh-info{border:none;border-top:1px solid var(--border-light);border-radius:0;background:transparent}
.sh-status{padding:8px 12px;border-top:1px solid var(--border-light);font-size:11px;color:var(--text-dim);line-height:1.5}
.sh-status b{color:var(--text);margin-right:6px}
.sh-status-empty{display:none}
.sh-top{display:flex;align-items:center;justify-content:space-between;background:var(--bg-card);border:2px solid var(--border);border-radius:12px;padding:10px 12px}
.sh-team{text-align:center}
.sh-team-name{font-family:var(--font-display);font-size:24px;color:var(--orange);letter-spacing:1px;line-height:1.1;font-weight:700}
.sh-team-full{font-family:var(--font-body);font-size:10px;color:var(--text-dim);margin-top:2px}
.sh-record{text-align:center;display:flex;align-items:baseline;gap:2px}
.sh-season{text-align:center;font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--text);background:var(--orange-bg);border:1px solid var(--orange-dim);border-radius:999px;padding:5px 12px;white-space:nowrap}
.sh-wins{font-family:var(--font-display);font-size:28px;color:var(--green);line-height:1;font-weight:700}
.sh-dash{font-family:var(--font-display);font-size:18px;color:var(--text-muted)}
.sh-losses{font-family:var(--font-display);font-size:28px;color:var(--red);line-height:1;font-weight:700}
.sh-pct{font-family:var(--font-display);font-size:12px;color:var(--text-dim);margin-left:6px;font-weight:600}
.sh-info{font-family:var(--font-body);font-size:11px;color:var(--text-dim);text-align:center;padding:6px 10px;background:var(--bg-card);border:2px solid var(--border);border-top:none;border-radius:0 0 10px 10px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px}
.wl-dot{display:inline-block;width:16px;height:16px;border-radius:50%;font-size:9px;font-weight:700;text-align:center;line-height:16px;margin:0 1px}
.wl-w{background:rgba(46,196,182,0.2);color:var(--green)}
.wl-l{background:rgba(230,57,70,0.15);color:var(--red)}
.gamecast{padding:0 10px;margin-bottom:8px}
.gc-row{display:flex;align-items:center;gap:8px;padding:6px 12px;font-family:var(--font-display);font-size:13px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;margin-bottom:4px}
.gc-final{border-color:var(--gold);background:var(--orange-bg);font-weight:700}
.gc-q{width:50px;color:var(--text-dim);font-size:12px}
.gc-score{flex:1;text-align:center;font-weight:600}.gc-winning{color:var(--green)}.gc-losing{color:var(--red)}
.gc-total{color:var(--text-muted);font-size:12px;min-width:60px;text-align:right}
.gc-stats{font-size:11px;color:var(--orange);min-width:80px;text-align:right}
.gc-ot{border-color:var(--orange-dim)}.gc-events{display:flex;flex-direction:column;gap:3px;padding:4px 12px}
.gc-event{font-size:11px;padding:3px 8px;background:var(--orange-bg);border-radius:6px}
.gc-player-line{padding:8px 12px;background:var(--orange-dim);border-radius:8px;margin-top:4px;font-family:var(--font-display);font-size:12px;display:flex;flex-direction:column;gap:2px}
.gc-player-name{font-weight:700;color:var(--orange)}
.gc-result{text-align:center;padding:10px;font-family:var(--font-display);font-size:14px;border-radius:8px;margin-top:4px}
.result-win{background:rgba(46,196,182,0.1);color:var(--green)}
.result-loss{background:rgba(230,57,70,0.08);color:var(--red)}
.cal-wrap{padding:0 8px 12px}.cal-header{display:flex;align-items:center;gap:6px;padding:6px 2px 8px}
.cal-nav{background:var(--bg-card);border:2px solid var(--border);border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .1s;color:var(--text)}
.cal-nav:active{transform:scale(0.9)}.cal-nav:disabled{opacity:.2;cursor:default}
.cal-title{flex:1;font-family:var(--font-display);font-size:clamp(16px,4vw,20px);letter-spacing:1px;text-align:center}
.cal-standings-btn{background:var(--orange);color:#fff;border:none;border-radius:8px;padding:6px 10px;font-family:var(--font-display);font-size:10px;font-weight:600;cursor:pointer;white-space:nowrap;letter-spacing:.5px;min-height:32px;box-shadow:0 2px 0 var(--orange-deep)}
.cal-standings-btn:active{transform:translateY(1px);box-shadow:0 1px 0 var(--orange-deep)}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:2px 0;margin-bottom:3px}
.cal-weekdays span{text-align:center;font-family:var(--font-display);font-size:10px;color:var(--text-muted);padding:2px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-cell{text-align:center;padding:4px 1px;border-radius:6px;font-family:var(--font-display);min-height:46px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;cursor:default;position:relative;background:var(--bg-card);border:1.5px solid var(--border);transition:all .12s}
.cal-cell[onclick]{cursor:pointer}.cal-cell[onclick]:active{border-color:var(--orange);background:var(--orange-bg)}
.cal-empty,.cal-rest{background:transparent;border-color:transparent}
.cal-rest{min-height:46px}.cal-rest .cal-date{color:var(--text-muted);font-size:11px}
.cal-w{background:linear-gradient(135deg,rgba(46,196,182,0.08),rgba(46,196,182,0.03));border-color:rgba(46,196,182,0.35)}
.cal-l{background:linear-gradient(135deg,rgba(230,57,70,0.08),rgba(230,57,70,0.03));border-color:rgba(230,57,70,0.35)}
.cal-today{border-color:var(--orange);background:var(--orange-bg);box-shadow:0 0 0 1.5px var(--orange);animation:pulseGlow 2s infinite}
.cal-future{border-color:var(--border-light)}.cal-date{font-size:12px;font-weight:700;line-height:1.2}
.cal-opp{font-size:9px;line-height:1.1;font-weight:600;overflow:hidden;text-overflow:ellipsis;max-width:100%;white-space:nowrap}
.cal-score{font-size:9px;color:var(--text-dim);line-height:1;font-weight:600}
.cal-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 2px 4px}
.cal-progress{font-family:var(--font-display);font-size:11px;color:var(--text-dim)}
.modal-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,0.45);display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .2s ease}
.modal-content{background:var(--bg);border:2px solid var(--border);border-radius:16px;width:100%;max-width:380px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 48px rgba(0,0,0,0.25);animation:slideUp .25s ease}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}
.modal-close{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);transition:all .1s}
.modal-close:active{border-color:var(--orange);color:var(--orange)}
/* ★ 2026-09-19（用户批准）：玩法说明 tab 排版修复——grid 自动等分（不限页数），
   11px 字号 + 紧凑行高 + 允许两行，窄屏下页签整齐不挤压（原 flex+13px+letter-spacing 在
   6 个以上页签时换行错乱）。 */
.modal-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;padding:0;border-bottom:1px solid var(--border)}
.modal-tabs button{padding:9px 2px;border:none;background:var(--bg-card);font-family:var(--font-display);font-size:11px;letter-spacing:0;line-height:1.3;min-width:0;white-space:normal;overflow-wrap:anywhere;cursor:pointer;color:var(--text-dim);transition:all .12s}
.modal-tabs button.active{background:var(--bg);color:var(--orange);border-bottom:2px solid var(--orange);font-weight:700}
.build-back-btn{position:absolute;top:10px;left:12px;z-index:10;height:32px;padding:0 12px;border:none;border-radius:16px;background:var(--bg-card);border:1.5px solid var(--border);cursor:pointer;font-size:13px;font-weight:700;color:var(--text);font-family:var(--font-body)}
.build-edit-btn{position:absolute;top:10px;right:16px;z-index:10;width:32px;height:32px;border:none;border-radius:50%;background:var(--bg-card);border:1.5px solid var(--border);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .15s;box-shadow:var(--shadow)}
.attr-btn.attr-more{width:auto;min-width:28px;padding:0 6px;font-size:11px}
.build-edit-btn:active{transform:scale(0.92);border-color:var(--orange)}
.modal-body{padding:8px 10px 12px}
.st-hdr{display:flex;gap:3px;padding:4px 6px;font-family:var(--font-display);font-size:10px;color:var(--text-muted)}
.st-hdr span:first-child{width:20px;text-align:center}.st-hdr span:nth-child(2){flex:1}
.st-hdr span{width:28px;text-align:center}
.st-row{display:flex;gap:3px;align-items:center;padding:6px 6px;font-family:var(--font-display);font-size:13px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;margin-bottom:2px}
.st-row.st-my{border-color:var(--orange);background:var(--orange-bg)}
.st-row span:first-child{width:20px;text-align:center;color:var(--text-dim)}
.st-row span:nth-child(2){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-row span{width:28px;text-align:center}.st-w{color:var(--green)}.st-l{color:var(--red)}
@media(max-width:400px){.st-hdr span,.st-row span{width:24px}.st-hdr span:first-child,.st-row span:first-child{width:18px}.st-row{font-size:12px}}
.st-streak{font-size:11px;color:var(--text-dim)}
.bv-wrap{padding:0 6px 20px}
.bv-header{text-align:center;padding:8px 0 6px;border-bottom:2px solid var(--border);margin-bottom:8px}
.bv-header-title{font-family:var(--font-display);font-size:clamp(16px,4vw,20px);font-weight:700}
.bv-header-sub{font-size:11px;color:var(--text-dim);margin-top:2px}
.bv-conf-tabs{display:flex;gap:4px;padding:6px 0;justify-content:center}
.bv-conf-tab{flex:1;max-width:140px;padding:8px 10px;border:2px solid var(--border);border-radius:10px;background:var(--bg-card);font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--text-dim);cursor:pointer;transition:all .12s}
.bv-conf-tab:active{transform:scale(0.96)}
.bv-conf-tab-active{border-color:var(--orange);background:var(--orange-bg);color:var(--orange);box-shadow:0 0 0 1px var(--orange)}
.bv-round-nav{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 0 4px}
.bv-round-arrow{width:34px;height:34px;border-radius:8px;border:2px solid var(--border);background:var(--bg-card);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s;color:var(--text)}
.bv-round-arrow:active{transform:scale(0.9)}.bv-round-arrow:disabled{opacity:.2;cursor:default}
.bv-round-title{font-family:var(--font-display);font-size:clamp(16px,4vw,20px);font-weight:700;color:var(--text);min-width:80px;text-align:center}
.bv-round-content{display:flex;flex-direction:column;gap:6px;padding:4px 0 8px}
.bv-series{background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;padding:6px}
.bv-series-other{opacity:0.8}.bv-spacer{min-height:40px}
.bv-s-matchup{cursor:pointer}.bv-s-matchup:active{opacity:.8}
.bv-s-team{display:flex;align-items:center;gap:3px;padding:3px 2px;font-family:var(--font-display);font-size:11px;line-height:1.4}
.bv-s-team.bv-winner{font-weight:800;color:var(--text);background:rgba(46,196,182,0.12);border-radius:6px;padding:3px 4px;margin:0 -2px;border:1px solid rgba(46,196,182,0.3)}
.bv-s-team.bv-loser{color:var(--text-muted);opacity:.5;text-decoration:line-through}
.bv-s-team.bv-s-user{color:var(--orange)}
.bv-s-team.bv-s-gold{border:2px solid var(--gold);border-radius:8px;padding:2px 4px;margin:-2px -4px}
.bv-seed{width:14px;height:14px;border-radius:50%;background:var(--border);color:var(--text-dim);font-size:9px;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}
.bv-seed-my{background:var(--orange);color:#fff}.bv-seed-w{background:var(--green);color:#fff}
.bv-s-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.bv-s-score{width:18px;text-align:center;font-size:11px;font-weight:700}
.bv-sc-w{color:var(--green)}.bv-s-badge{font-size:9px;padding:1px 4px;border-radius:3px;background:var(--orange);color:#fff;font-weight:600}
.bv-s-btn{display:block;width:100%;margin-top:3px;padding:5px 8px;border:none;border-radius:6px;background:var(--orange);color:#fff;font-family:var(--font-display);font-size:10px;font-weight:600;cursor:pointer;letter-spacing:.5px;min-height:32px}
.bv-s-btn:active{transform:scale(0.96)}.bv-actions{display:flex;gap:8px;justify-content:center;padding:8px 0}
.bv-po-stats{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;margin:6px 0}
.bv-po-title{font-family:var(--font-display);font-size:12px;color:var(--orange);text-align:center;margin-bottom:4px}
.bv-po-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.bv-po-stat{text-align:center;background:var(--orange-bg);border-radius:6px;padding:4px 4px}
.bv-po-val{font-family:var(--font-display);font-size:16px;color:var(--text);line-height:1}
.bv-po-lbl{font-family:var(--font-body);font-size:9px;color:var(--text-dim)}
.playin-container{padding:4px 0}
.playin-game{background:var(--bg-card);border-radius:var(--radius-sm);padding:10px;margin-bottom:8px;border:1.5px solid var(--border)}
.series-result-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.65);display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .3s ease}
.sr-modal{background:var(--bg-card);border-radius:var(--radius);max-width:320px;width:100%;text-align:center;border:1.5px solid var(--border);overflow:hidden}
.sr-modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border)}
.sr-modal-body{padding:8px 12px 6px}
.sr-modal-footer{padding:6px 12px 12px;display:flex;justify-content:center}
.champion-celebration-overlay{position:fixed;inset:0;z-index:450;background:radial-gradient(circle at 50% 35%,rgba(255,222,120,.28),rgba(0,0,0,.78) 55%,rgba(0,0,0,.9));display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .25s ease;overflow-y:auto}
.champion-card{position:relative;z-index:2;max-width:340px;width:100%;text-align:center;background:linear-gradient(170deg,var(--bg-card),#fff2d6);border:2px solid var(--gold);border-radius:20px;padding:28px 18px 20px;max-height:calc(100svh - 32px);overflow-y:auto;padding-bottom:calc(20px + env(safe-area-inset-bottom));box-shadow:0 14px 50px rgba(0,0,0,.32)}
.champion-cup{font-size:58px;line-height:1;margin-bottom:8px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.22));animation:champPulse 1.2s ease-in-out infinite}
.champion-title{font-family:var(--font-display);font-size:28px;font-weight:900;color:var(--gold);letter-spacing:2px;margin-bottom:6px}
.champion-sub{font-size:13px;color:var(--text-dim);line-height:1.65;margin-bottom:14px}
.fw-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--gold);left:50%;top:50%;opacity:0;animation:fwBurst 1.35s ease-out infinite;transform:rotate(var(--a)) translateY(0)}
.fw-dot:nth-child(3n){background:var(--orange)}.fw-dot:nth-child(4n){background:#fff}.fw-dot:nth-child(5n){background:#2ec4b6}
.champion-dynasty-overlay{background:radial-gradient(ellipse at center,rgba(96,64,8,.30) 0%,rgba(0,0,0,.74) 72%)}
.champion-dynasty-card{border-width:3px;border-color:#e8c04a;background:linear-gradient(170deg,#fff8e1,#ffe9b8 55%,#f5d98a);box-shadow:0 16px 60px rgba(255,215,0,.30)}
.champion-dynasty-card .champion-title{color:#b8860b;text-shadow:0 0 20px rgba(255,200,40,.6)}
.sixty-win-overlay{position:fixed;inset:0;z-index:430;background:rgba(0,0,0,.58);display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;animation:fadeIn .22s ease}
.sixty-win-card{position:relative;z-index:2;max-width:330px;width:100%;text-align:center;background:linear-gradient(170deg,#fffdf5,#f5ead6);border:2px solid var(--orange);border-radius:18px;padding:24px 18px 18px;max-height:calc(100svh - 32px);overflow-y:auto;padding-bottom:calc(18px + env(safe-area-inset-bottom));box-shadow:0 14px 44px rgba(0,0,0,.28)}
.sixty-win-title{font-family:var(--font-display);font-size:24px;font-weight:900;color:var(--orange);letter-spacing:1px;margin-bottom:6px}
.sixty-win-sub{font-size:13px;color:var(--text-dim);line-height:1.65;margin-bottom:14px}
.confetti-piece{position:absolute;top:-18px;width:7px;height:14px;border-radius:2px;background:var(--orange);opacity:.92;animation:confettiFall 2.6s linear infinite;transform:rotate(var(--r))}
.confetti-piece:nth-child(3n){background:var(--gold)}.confetti-piece:nth-child(4n){background:#2ec4b6}.confetti-piece:nth-child(5n){background:#fff}.confetti-piece:nth-child(6n){background:var(--red)}
@keyframes champPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08) rotate(-2deg)}}
@keyframes fwBurst{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}75%{opacity:.9}100%{opacity:0;transform:rotate(var(--a)) translateY(var(--d)) scale(.3)}}
@keyframes confettiFall{0%{transform:translateY(-24px) rotate(var(--r));opacity:0}12%{opacity:1}100%{transform:translateY(110vh) rotate(calc(var(--r) + 520deg));opacity:0}}
.eos-container{text-align:center;padding:16px 12px;margin:0 auto;width:100%;max-width:360px}
.eos-emoji{font-size:36px;margin-bottom:8px}
.eos-title{font-family:var(--font-display);font-size:clamp(18px,5vw,24px);font-weight:700;color:var(--orange)}
.eos-record{font-family:var(--font-display);font-size:clamp(28px,8vw,40px);font-weight:800;margin:8px 0}
.eos-detail{font-size:12px;color:var(--text-dim);margin-bottom:12px}
.eos-actions{display:flex;gap:8px;justify-content:center}
#screen-results{padding:0 0 20px}.sr-page{padding:0 10px 24px}
.sr-header{text-align:center;padding:16px 14px;border-bottom:2px solid var(--border);margin-bottom:10px}
.sr-team{font-family:var(--font-display);font-size:clamp(22px,6vw,30px);font-weight:800}
.sr-record{font-family:var(--font-display);font-size:clamp(28px,8vw,40px);font-weight:800;color:var(--orange);margin:4px 0}
.sr-result{font-size:12px;color:var(--text-dim);margin-top:4px}
.sr-section{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px}
.sr-section-title{font-family:var(--font-display);font-size:13px;color:var(--orange);letter-spacing:.5px;margin-bottom:6px}
.sr-info-row{display:flex;justify-content:space-between;padding:3px 0;font-size:12px;border-bottom:1px solid var(--border-light)}
.sr-info-row:last-child{border-bottom:none}.sr-info-row span:first-child{color:var(--text-dim)}
.sr-ovr{font-weight:700;font-size:15px}.sr-grade{font-size:10px;color:var(--gold);font-weight:400}
.sr-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:5px}
.sr-stat{text-align:center;background:var(--orange-bg);border-radius:8px;padding:6px 4px}
.sr-stat-val{font-family:var(--font-display);font-size:20px;color:var(--text);line-height:1}
.sr-stat-lbl{font-family:var(--font-body);font-size:9px;color:var(--text-dim);margin-top:2px}
.sr-pct-line{font-size:11px;color:var(--text-dim);text-align:center;padding:4px 0 2px}
.sr-awards{display:flex;gap:6px;flex-wrap:wrap}
.sr-actions{text-align:center;padding:6px 0 12px}.sr-actions .btn{max-width:280px;margin:0 auto}
#mycard-content{padding:0 10px}
.mycard{background:var(--bg-card);border:2px solid var(--border);border-radius:14px;overflow:hidden}
.mc-header{text-align:center;padding:20px 14px 14px;background:linear-gradient(180deg,var(--orange-dim),var(--bg-card));border-bottom:2px solid var(--border)}
.mc-pos{font-family:var(--font-display);font-size:14px;color:var(--orange);letter-spacing:2px}
.mc-name{font-family:var(--font-display);font-size:clamp(22px,6vw,30px);font-weight:700;margin:4px 0}
.mc-ovr-row{display:flex;align-items:center;justify-content:center;gap:8px}
.mc-ovr{font-family:var(--font-display);font-size:clamp(42px,12vw,60px);color:var(--orange);line-height:1}
.mc-grade-label{font-family:var(--font-display);font-size:16px;color:var(--gold)}
.mc-team-line{font-family:var(--font-body);font-size:12px;color:var(--text-dim);margin-top:4px}
.mc-section{padding:12px 14px;border-bottom:1px solid var(--border)}
.mc-section:last-child{border-bottom:none}
.mc-section-title{font-family:var(--font-display);font-size:13px;color:var(--orange);letter-spacing:1px;margin-bottom:6px}
.ts-tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:10px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.ts-tab{border:1px solid var(--border);background:var(--bg-card);color:var(--text-dim);border-radius:999px;padding:7px 12px;font-size:11px;white-space:nowrap}.ts-tab.active{background:var(--orange);color:#fff;border-color:var(--orange)}.team-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--card-gap)}.ts-card{border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-pad);min-height:64px;background:var(--bg-card);display:flex;flex-direction:column;justify-content:space-between;gap:4px}.ts-card b{font-size:10px;color:var(--text-dim)}.ts-card span{font-family:var(--font-display);font-size:15px;color:var(--text)}.team-status-row{display:flex;align-items:center;gap:7px;padding:8px 4px;border-bottom:1px solid var(--border-light);font-size:11px;min-width:0}.team-status-row b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-status-row>span{flex-shrink:0}.ts-pos{width:30px;color:var(--orange)}.ts-muted,.ts-note{font-size:11px;color:var(--text-dim);line-height:1.6}.ts-section{padding:10px 2px;border-top:1px solid var(--border-light);margin-top:8px;line-height:1.7}
.mc-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:5px}
.mc-stat{text-align:center;background:var(--orange-bg);border-radius:8px;padding:6px 4px}
.mc-stat-val{font-family:var(--font-display);font-size:20px;color:var(--text);line-height:1}
.mc-stat-lbl{font-family:var(--font-body);font-size:9px;color:var(--text-dim);margin-top:2px}
.mc-pct-line{font-family:var(--font-body);font-size:11px;color:var(--text-dim);text-align:center;padding:4px 0}
.mc-attrs{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:4px}
.mc-attr{background:var(--orange-bg);border-radius:6px;padding:4px 4px;text-align:center}
.mc-alabel{font-family:var(--font-display);font-size:9px;color:var(--text-dim);text-transform:uppercase}
.mc-aval{font-family:var(--font-display);font-size:14px}
.mc-awards{display:flex;gap:6px;flex-wrap:wrap}
.mc-chip{display:inline-block;padding:4px 10px;border-radius:20px;font-family:var(--font-display);font-size:11px;background:var(--bg-card);border:2px solid var(--border)}
.mc-chip-gold{border-color:var(--gold);color:var(--gold)}
.card-award{display:inline-block;padding:4px 10px;border-radius:8px;font-family:var(--font-display);font-size:12px;background:var(--orange-dim);color:var(--orange)}
    .dot-grid{display:block;padding:12px 16px;text-align:center;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);margin:8px 0;line-height:1.8}
    .dot{width:14px;height:14px;border-radius:50%;display:inline-block;margin:1px 2px;flex-shrink:0}
    .dot-w{background:#2ec4b6;box-shadow:0 1px 3px rgba(46,196,182,0.3)}
    .dot-l{background:#e63946;box-shadow:0 1px 3px rgba(230,57,70,0.3)}
    .dot-pending{background:var(--border-light);box-shadow:none}
    .dot-r{opacity:0.7}
    .dot-x{display:inline-block;width:14px;height:14px;line-height:14px;font-size:9px;text-align:center;border-radius:50%;background:var(--bg-surface);color:var(--text-dim);border:1px solid var(--border);margin:2px;vertical-align:middle;cursor:default;opacity:0.6}
    .awards-card{background:linear-gradient(170deg,var(--bg-card) 0%,#fff5e8 50%,#ffefe0 100%);border:2px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:0 8px 40px rgba(45,31,14,0.15);position:relative}
    .awards-card::before{content:'';position:absolute;top:-80px;right:-80px;width:200px;height:200px;background:radial-gradient(circle,rgba(255,107,53,0.07) 0%,transparent 70%);pointer-events:none;border-radius:50%}
    .awards-card-header{background:linear-gradient(180deg,rgba(255,107,53,0.12) 0%,rgba(255,107,53,0.03) 100%);padding:24px 16px 16px;text-align:center;border-bottom:1px solid rgba(240,224,204,0.6);position:relative}
    .awards-card-header::after{content:'';position:absolute;bottom:-1px;left:20%;right:20%;height:2px;background:linear-gradient(90deg,transparent,var(--orange),transparent);border-radius:2px}
    .awards-overlay{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .3s ease;overflow-y:auto}
    @keyframes flyInRight{from{opacity:0;transform:translateX(160px) scale(0.88)}to{opacity:1;transform:translateX(0) scale(1)}}
    .awards-badge{display:inline-block;padding:5px 18px;border-radius:20px;font-family:var(--font-display);font-size:13px;font-weight:700;background:linear-gradient(135deg,var(--orange),var(--orange-light));color:#fff;letter-spacing:1.5px;text-transform:uppercase;box-shadow:0 2px 8px rgba(255,107,53,0.25)}
    .awards-card-body{padding:20px 16px;text-align:center;position:relative}
    .awards-winner-label{font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;font-weight:600;margin-bottom:2px}
    .awards-winner-name{font-family:var(--font-display);font-size:clamp(22px,5.5vw,28px);font-weight:800;color:var(--text);margin:2px 0 4px;line-height:1.15;letter-spacing:.5px}
    .awards-winner-name.hl{background:linear-gradient(135deg,var(--orange),#ff8a5c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
    .awards-team-line{font-size:13px;color:var(--text-dim);font-weight:600;margin-bottom:4px;letter-spacing:.5px}
    .awards-divider{width:40px;height:2px;background:linear-gradient(90deg,transparent,var(--orange),transparent);margin:10px auto;border-radius:2px}
    .awards-next{display:inline-flex;align-items:center;justify-content:center;padding:12px 36px;background:linear-gradient(135deg,var(--orange),var(--orange-light));color:#fff;border:none;border-radius:14px;font-family:var(--font-display);font-size:15px;font-weight:700;cursor:pointer;transition:all .12s;box-shadow:0 4px 0 var(--orange-deep),0 6px 16px rgba(255,107,53,0.3);min-width:140px;letter-spacing:.5px}
    .awards-next:active{transform:translateY(3px);box-shadow:0 1px 0 var(--orange-deep),0 3px 8px rgba(255,107,53,0.15)}
    .awards-next:disabled{opacity:.4;transform:none;box-shadow:none}
    .awards-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100svh - 120px);position:relative;text-align:center;padding:16px 24px 20px}
    .awards-stage::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(255,107,53,0.06) 0%,transparent 60%);pointer-events:none;z-index:0}
    .awards-stage::after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:0}
    .awards-stage > *{position:relative;z-index:1}
    .awards-emoji{font-size:56px;display:block;margin-bottom:2px;filter:drop-shadow(0 4px 12px rgba(0,0,0,0.08))}
    .awards-headshot-box{width:72px;height:72px;border-radius:50%;margin:0 auto 8px;border:3px solid var(--gold);box-shadow:0 0 0 5px rgba(212,175,55,0.12),0 8px 24px rgba(0,0,0,0.08);background-size:cover;background-position:center}
    .awards-category{font-size:clamp(20px,5vw,28px);color:var(--text);letter-spacing:2px;font-weight:800;margin-bottom:2px;font-family:var(--font-display)}
    .awards-category .hl{color:var(--gold)}
    .awards-winner-big{font-size:clamp(30px,7vw,46px);font-weight:800;font-family:var(--font-display);color:var(--text);margin:4px 0 2px;line-height:1.12;letter-spacing:-0.5px}
    .awards-winner-big.hl{background:linear-gradient(135deg,#d4af37,#f7d44a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
    .awards-team-sub{font-size:14px;color:var(--text-dim);margin-bottom:2px;font-weight:600;letter-spacing:0.5px}
    .awards-line{width:56px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:12px auto;border-radius:2px}
    .awards-rank-label{font-size:11px;color:var(--text-muted);letter-spacing:4px;font-weight:600;text-transform:uppercase;margin-bottom:3px}
    .awards-rank-big{font-family:var(--font-display);font-size:clamp(36px,9vw,52px);font-weight:800;line-height:1;margin:2px 0 6px}
    .awards-rank-big.gold{background:linear-gradient(135deg,#d4af37,#ffd700);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
    .awards-rank-big.orange{color:var(--orange)}
    .awards-rank-big.dim{color:var(--text-dim)}
    .awards-flavor{font-size:13px;color:var(--text-muted);margin:0 0 18px;line-height:1.5;font-style:italic}
    .awards-list{display:flex;flex-direction:column;gap:3px;margin:4px 0}
    .awards-list-item{font-size:15px;font-weight:600;font-family:var(--font-display);color:var(--text);padding:3px 12px;background:rgba(212,175,55,0.06);border-radius:6px;margin:1px 0}
    .awards-list-item.my{background:rgba(255,107,53,0.1);color:var(--orange)}
    .awards-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 44px;background:linear-gradient(135deg,#d4af37,#f0c850);color:#1a1a1a;border:none;border-radius:50px;font-family:var(--font-display);font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 4px 0 #b8962e,0 6px 24px rgba(212,175,55,0.3);transition:all .1s;letter-spacing:.5px}
    .awards-btn:active{transform:translateY(2px);box-shadow:0 2px 0 #b8962e,0 3px 12px rgba(212,175,55,0.2)}
    @keyframes bounceInDown{from{opacity:0;transform:translateY(-40px) scale(0.85)}to{opacity:1;transform:translateY(0) scale(1)}}
    @keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
    @keyframes scaleInGlow{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:scale(1)}}
    @keyframes lineExpand{from{width:0;opacity:0}to{width:56px;opacity:1}}
    .awards-progress{display:flex;gap:8px;justify-content:center;margin-top:12px;padding:4px 0 0}
    .awards-progress-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:all .4s ease}
    .awards-progress-dot.active{width:24px;border-radius:3px;background:linear-gradient(90deg,#d4af37,#f0c850)}
    .loading-balls{display:flex;gap:12px;align-items:center;justify-content:center}
    .loading-ball{width:16px;height:16px;border-radius:50%;background:var(--orange);animation:bounceBall .6s ease infinite alternate}
    .loading-ball:nth-child(2){animation-delay:.2s}
    .loading-ball:nth-child(3){animation-delay:.4s}
    @keyframes bounceBall{from{transform:translateY(0)}to{transform:translateY(-20px)}}
    @keyframes awardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
    .award-row{opacity:0;animation:awardIn .3s ease forwards;transition:transform .2s ease,box-shadow .2s ease;will-change:transform,opacity}
    .award-row:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(45,31,14,0.08)}
    .award-rank{font-size:15px;font-weight:800;line-height:1.2}
    .award-rank.gold{color:var(--gold)}
    .award-rank.orange{color:var(--orange)}
    .award-rank.dim{color:var(--text-dim)}
    .award-label{font-size:12px;font-weight:700;letter-spacing:0.3px;margin-bottom:1px}
    .award-winner{font-size:13px;font-weight:600;margin:1px 0 1px}
    .award-team{font-size:11px;color:var(--text-dim)}
    @keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
    .section-card{opacity:0;animation:fadeInUp .8s ease forwards}

    /* ── 生涯数据页 ── */
    .cs-section{margin-bottom:10px}
    .cs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:5px}
    .cs-stat{text-align:center;background:var(--orange-bg);border-radius:8px;padding:8px 4px}
    .cs-stat-val{font-family:var(--font-display);font-size:20px;color:var(--text);line-height:1}
    .cs-stat-lbl{font-family:var(--font-body);font-size:9px;color:var(--text-dim);margin-top:2px}
    .cs-season-row{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;margin-bottom:4px;cursor:pointer;transition:all .12s}
    .cs-season-row:active{transform:scale(0.97);border-color:var(--orange)}
    .cs-season-num{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--orange);min-width:52px}
    .cs-season-team{font-family:var(--font-display);font-size:13px;flex:1}
    .cs-season-record{font-size:12px;color:var(--text-dim);min-width:48px;text-align:center}
    .cs-season-pts{font-size:12px;color:var(--text-dim);min-width:50px;text-align:right}
    .cs-season-arrow{color:var(--text-muted);font-size:12px}
    .cs-season-detail-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,0.45);display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .2s ease}
    .cs-season-detail-modal{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 48px rgba(0,0,0,0.25);animation:slideUp .25s ease}
    .cs-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:1}
    .cs-detail-close{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}
    .cs-detail-close:active{border-color:var(--orange);color:var(--orange)}
    .cs-detail-body{padding:10px 14px 16px}

    /* ── 荣誉墙 ── */
    .ch-season{background:var(--bg-card);border:1.5px solid var(--border);border-radius:12px;padding:12px;margin-bottom:8px}
    .ch-season-header{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--text);margin-bottom:6px;display:flex;align-items:center;gap:6px}
    .ch-season-header .ch-team{font-size:12px;color:var(--text-dim);font-weight:400}
    .ch-badge{display:inline-block;padding:4px 10px;border-radius:8px;font-family:var(--font-display);font-size:12px;background:var(--orange-dim);color:var(--orange);margin:2px 3px}
    .ch-badge.gold{background:rgba(212,175,55,0.12);color:var(--gold)}
    .ch-summary{padding:12px;text-align:center;font-family:var(--font-display);font-size:13px;color:var(--text-dim);line-height:1.8}
    .ch-empty{text-align:center;padding:40px 20px;font-size:14px;color:var(--text-muted)}

    /* ── 训练营 ── */
    .tp-header{background:var(--bg-card);border:1.5px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px;text-align:center}
    .tp-points{font-family:var(--font-display);font-size:36px;color:var(--orange);font-weight:700}
    .tp-points-label{font-size:13px;color:var(--text-dim);margin-top:2px}
    .tp-sub{font-size:12px;color:var(--text-muted);margin-top:4px}
    .tp-section-title{font-family:var(--font-display);font-size:14px;color:var(--orange);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}
    /* ★ 2026-09-24（P0 回归修复）：#tp-attrs 两种布局共存，用模式类区分（不改 .tp-attrs 单条规则做双用）。
       draw（抽属性）→ 逐点 +/− 行（单列）；slot（成为球员）→ 训练主题卡片（两列网格）。
       注意：本块是 public/assets/css/game-inline-0.css 的**唯一事实源**（构建时由 vite 抽取直写），
       只改生成物不改这里，下一次 npm run build 就会把改动冲掉。 */
    .tp-attrs{margin-bottom:10px}
    #tp-attrs.tp-mode-draw{display:flex;flex-direction:column;gap:4px}
    #tp-attrs.tp-mode-slot{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .tp-row{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;transition:all .12s}
    .tp-row.tp-added{border-color:var(--orange);background:var(--orange-bg)}
    .tp-label{font-family:var(--font-display);font-size:11px;font-weight:600;min-width:36px;color:var(--text)}
    .tp-bar-wrap{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden;position:relative}
    .tp-bar-fill{height:100%;background:linear-gradient(90deg,var(--orange),var(--orange-light));border-radius:4px;transition:width .3s ease}
    .tp-bar-add{position:absolute;top:0;left:0;height:100%;background:var(--gold);border-radius:4px;transition:width .3s ease;opacity:0.6}
    .tp-val{font-family:var(--font-display);font-size:14px;font-weight:700;min-width:26px;text-align:center}
    .tp-val.tp-preview{color:var(--gold)}
    .tp-btn{width:36px;height:32px;border:none;border-radius:8px;background:var(--orange);color:#fff;cursor:pointer;font-size:16px;font-weight:700;transition:all .1s;flex-shrink:0;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 0 var(--orange-deep)}
    .tp-btn:active{transform:translateY(1px);box-shadow:0 1px 0 var(--orange-deep)}
    .tp-btn:disabled{opacity:.3;transform:none;box-shadow:none;cursor:default}
    .tp-theme-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:all .12s}
    .tp-theme-card:active{transform:translateY(1px)}
    .tp-theme-on{border-color:var(--orange);background:var(--orange-bg);box-shadow:inset 0 0 0 1.5px var(--orange)}
    .tp-theme-ico{font-size:18px;line-height:1.1}
    .tp-theme-name{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--text)}
    .tp-theme-hint{font-size:11px;color:var(--text-dim);line-height:1.4}
    .tp-theme-attrs{font-size:10px;color:var(--text-muted);margin-top:2px}
    .tp-actions{display:flex;gap:8px;margin-top:10px}
    .tp-actions .btn{max-width:180px}
    .tp-age-info{background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:12px;color:var(--text-dim);line-height:1.6}
    .tp-age-info strong{color:var(--text)}
    /* ── UI 批3（2026-09-10）：放在样式表末尾，确保能覆盖上面定义早于这里的 .dot / #app ── */
    /* P1-1：PC 宽屏两侧空白——#app 原本硬顶 560px。★ 真正能否占满大屏还取决于外壳
       index.html 的 .ai-render-frame{max-width:750px}（平台文件，禁止修改），本规则是
       「外壳允许更宽即自动铺开」的前置条件。 */
    @media (min-width:1200px){ #app{max-width:1040px} }
    /* P1-2/P1-3：手机端比分圆点过大（旧 14px、每 14 个换行，约占屏 1/3 高）→ 缩小并收紧行距。
       必须放在 .dot 基础规则之后，否则同优先级下基础规则会把媒体查询覆盖掉。
       ★ 2026-09-14（用户报告小屏修复）：
         a) .dot-x（伤病/禁赛 ✕）原 line-height:14px/font-size:9px 未随 .dot 缩小 → 字符撑出 10px 圆点，同步缩放；
         b) 写死「每 14 个 <br> 换行」在小屏浪费半行 → 改 flex-wrap 自然换行（10px 圆点一行可放 ~28 个）。 */
    @media (max-width:720px){
      .dot{width:10px;height:10px;margin:1px}
      .dot-x{width:10px;height:10px;line-height:10px;font-size:9px;margin:1px}
      #simDotGrid{line-height:1.1}
      .dot-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;row-gap:2px}
      .dot-grid br{display:none}
    }
  