/* ============================================================
   我的完美生涯 · 足球版  —— 主样式
   ============================================================ */
:root {
  /* 足球主题 · 浅色纸感：暖米白底 + 墨绿重点 + 白色内容卡（参考「绿茵生涯」） */
  --bg: #f3f2ec;
  --bg2: #e9e7dd;
  --card: #ffffff;
  --border: #e8e5d9;
  --border-str: #d7d3c3;
  --text: #16342a;
  --text-2: #5c7268;
  --text-3: #8b9c92;

  --grass: #1b5e43;
  --grass-d: #12402f;
  --grass-l: #2f9c67;
  --grass-x: #eef6f0;
  --grass-line: #d5e6db;

  --gold: #b8912f;
  --gold-l: #e3bd58;
  --orange: #ad4d12;        /* 进球 / 警示 / 取用高亮 */
  --orange-d: #b3531b;
  --navy: #12402f;          /* 兼容旧引用 → 深墨绿 */
  --green: #2f9c67;
  --red: #cf5647;

  --shadow: 0 2px 10px rgba(24, 42, 32, .06);
  --shadow-lg: 0 12px 34px rgba(24, 42, 32, .12);
  --r: 14px;
  --r-sm: 9px;
  --safe-b: env(safe-area-inset-bottom, 0px);
  --font-ui: 'Segoe UI Variable Text', 'PingFang SC', 'Microsoft YaHei UI', sans-serif;
  /* 标题/数字走体育窄体 Oswald（比分牌、OVR、属性值更有力量感），中文回退系统黑体 */
  --font-display: 'Oswald', 'Segoe UI Variable Display', 'Microsoft YaHei UI', 'PingFang SC', sans-serif;
  --font-num: 'Oswald', 'Bahnschrift', 'DIN Alternate', 'Segoe UI', Arial, sans-serif;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; }
body {
  /* 宽屏时露出的衬底：暖米白纸感纯色（参考「绿茵生涯」） */
  background-color: #e6e4da;
  background-image: radial-gradient(circle at 50% -8%, rgba(27, 94, 67, .06), transparent 42%);
  background-repeat: no-repeat;
  background-attachment: fixed;
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
#app {
  max-width: 560px; margin: 0 auto; min-height: 100vh; background: var(--bg); position: relative;
  box-shadow: 0 18px 52px rgba(24, 42, 32, .14);
  transition:max-width .28s ease;
}
@media (min-width:720px){body.on-creator #app{max-width:1120px}.on-creator .bottom-bar{max-width:1120px}}
@media (max-width: 600px) { #app { box-shadow: none; } }
button { font-family: inherit; cursor: pointer; }
button, .offer-card, .feature-card, .ev-choice, .pos-card {
  position: relative; overflow: hidden; isolation: isolate;
  -webkit-user-select: none; user-select: none;
}
button:focus-visible, .offer-card:focus-visible, .feature-card:focus-visible, .ev-choice:focus-visible {
  outline: 3px solid rgba(190, 220, 111, .72); outline-offset: 2px;
}
.tap-wave {
  position: absolute; z-index: 8; width: 12px; height: 12px; pointer-events: none;
  border-radius: 50%; background: rgba(255,255,255,.48); transform: translate(-50%,-50%) scale(0);
  animation: tapWave .5s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes tapWave { to { transform: translate(-50%,-50%) scale(18); opacity: 0; } }
b { font-weight: 700; }

/* ============ 启动加载 ============ */
.boot {
  position: fixed; inset: 0; z-index: 999; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(160deg, #0a5834 0%, #0f7a46 52%, #062a19 100%);
  color: #fff; transition: opacity .45s ease;
}
.boot.hide { opacity: 0; pointer-events: none; }
.boot-inner { text-align: center; padding: 24px; max-width: 340px; width: 100%; }
.boot-logo { font-size: 64px; line-height: 1; animation: bootspin 2.4s ease-in-out infinite; }
@keyframes bootspin { 0%,100% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(8deg) scale(1.08); } }
.boot-title { font-size: 26px; margin: 18px 0 4px; letter-spacing: 2px; font-weight: 800; }
.boot-sub { font-size: 11px; letter-spacing: 2px; color: #e2f4e8; margin: 0 0 26px; }
.boot-bar { height: 6px; border-radius: 99px; background: rgba(255, 255, 255, .18); overflow: hidden; }
.boot-bar i { display: block; height: 100%; width: 0%; border-radius: 99px; background: linear-gradient(90deg, var(--gold), var(--orange)); transition: width .3s ease; }
.boot-step { font-size: 12px; color: #e2f4e8; margin: 12px 0 0; min-height: 18px; }

/* ============ 屏幕切换 ============ */
.screen { display: none; padding: 0 14px calc(96px + var(--safe-b)); }
.screen.active { display: block; animation: fadeUp .34s cubic-bezier(.2,.8,.2,1); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px) scale(.992); } to { opacity: 1; transform: none; } }

/* ============ 顶部栏 ============ */
.topbar {
  display: flex; align-items: center; gap: 10px; position: sticky; top: 0; z-index: 30;
  background: rgba(237, 243, 238, .88); backdrop-filter: blur(18px) saturate(1.22);
  padding: 12px 0 10px; margin: 0 -14px; padding-left: 14px; padding-right: 14px;
  border-bottom: 1px solid var(--border);
}
.topbar-title { flex: 1; text-align: center; font-size: 18px; font-weight: 800; letter-spacing: 1px; }
.topbar-right { width: 56px; }
.btn-back {
  background: var(--card); border: 1px solid var(--border-str); color: var(--text);
  border-radius: 99px; padding: 6px 15px; font-size: 13px; font-weight: 600;
}
.btn-back:active { transform: translateY(1px); }
.btn-reset {
  width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--border-str);
  background: var(--card); color: var(--orange); font-size: 17px; line-height: 1;
}

/* ============ 主菜单 ============ */
/* ---------- 主菜单：蓝调球场主视觉 ---------- */
#screen-menu.active {
  display: flex; flex-direction: column; position: relative; padding: 0;
  background: #071d17 url(../assets/ui/generated/career-menu-bluehour.jpg) center 48% / cover no-repeat;
  min-height: 100vh; min-height: 100dvh;
}
#screen-menu::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background: linear-gradient(180deg, rgba(4,18,14,.28) 0%, rgba(5,24,18,.08) 30%, rgba(5,24,18,.12) 58%, rgba(4,20,15,.72) 100%);
}
.menu-inner {
  position: relative; z-index: 1;
  display: flex; flex-direction: column;
  flex: 1; width: 100%; max-width: 760px; margin: 0 auto; padding: 0 18px calc(14px + var(--safe-b));
  min-height: 100vh; min-height: 100dvh;
}
.menu-hero {
  flex: none; display: flex; flex-direction: column; justify-content: center; align-items: center;
  text-align: center; padding: clamp(58px, 8vh, 86px) 10px 0; min-height: 0;
}
.menu-title {
  font-size: clamp(28px, 7vw, 42px); font-weight: 900; letter-spacing: .12em; margin: 0;
  color: #f5f2e7; text-shadow: 0 3px 20px rgba(0,0,0,.36);
}
.menu-title-en { font-size: 9px; letter-spacing: .62em; font-weight: 800; color: #c6d8c8; margin-top: 4px; }
.menu-sub {
  color: rgba(245,242,231,.88); font-size: 12px; font-weight: 700; margin: 9px 0 11px; letter-spacing: .04em;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.menu-season {
  display: inline-block; background: rgba(9,39,29,.56); border: 1px solid rgba(226,190,105,.58);
  border-radius: 99px; padding: 5px 15px; font-size: 11px; font-weight: 700; color: #f6edcf;
  box-shadow: 0 5px 18px rgba(0,0,0,.16); backdrop-filter: blur(8px);
}
.menu-actions { display: flex; flex: 1; flex-direction: column; margin-top: clamp(18px, 4vh, 32px); padding-top: 0; }
.menu-foot {
  text-align: center; font-size: 11px; font-weight: 700; color: rgba(245,242,231,.82);
  letter-spacing: .04em; margin-top: auto; padding-top: 12px; text-shadow: 0 2px 10px rgba(0,0,0,.34);
}
.app-build{
  display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px;
  background: rgba(255,255,255,.1); border: 1px solid rgba(245,242,231,.24);
  font: 800 11px/1.6 var(--font-num); color: #f5f2e7; letter-spacing: .06em;
}

.feature-grid { display: grid; gap: 10px; padding: 0 2px; }
.feature-grid-main { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.feature-grid-secondary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.feature-card {
  display: flex; align-items: center; gap: 9px; width: 100%; min-width: 0; min-height: 94px; text-align: left; color: var(--text);
  background: rgba(250,250,245,.96); backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.78); border-radius: 17px;
  padding: 10px 11px; transition: transform .32s cubic-bezier(.2,.8,.2,1), box-shadow .32s cubic-bezier(.2,.8,.2,1), border-color .32s ease;
  box-shadow: 0 5px 16px rgba(4,24,17,.14);
}
.feature-card[hidden] { display: none; }
.feature-card:hover { transform: translateY(-2px); border-color: #d8bd72; box-shadow: 0 9px 22px rgba(4,24,17,.22); }
.feature-card:active { transform: scale(.975); }
.feature-card.fc-primary {
  color: #fffdf5; background: linear-gradient(145deg, rgba(21,105,68,.98), rgba(7,64,43,.98));
  border-color: rgba(223,192,113,.74); box-shadow: 0 8px 22px rgba(3,28,18,.28), inset 0 1px 0 rgba(255,255,255,.15);
}
.fc-icon {
  font-size: 24px; width: 52px; height: 52px; display: grid; place-items: center;
  border-radius: 15px; flex: none;
  background: linear-gradient(150deg, #1cb268, #0a5834); color: #fff;
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, .35), 0 4px 10px rgba(10, 60, 36, .28);
}
.fc-icon-img {
  width: 46px; height: 46px; object-fit: contain; flex: none;
  filter: drop-shadow(0 3px 6px rgba(8, 40, 27, .22));
}
.fc-arrow { margin-left: auto; font-size: 21px; line-height: 1; color: #a1b3a9; font-weight: 700; }
.feature-card.fc-primary .fc-arrow { color: #e5d394; }
.fc-body { display: flex; flex-direction: column; min-width: 0; }
.fc-body b { font-size: 14px; line-height: 1.25; letter-spacing: .01em; }
.fc-body span { margin-top: 3px; font-size: 11px; line-height: 1.4; color: var(--text-2); }
.feature-card.fc-primary .fc-body span { color: rgba(245,242,231,.76); }
.feature-grid-secondary .feature-card { min-height: 69px; flex-direction: column; justify-content: center; gap: 2px; padding: 6px 3px; text-align: center; }
.feature-grid-secondary .fc-icon-img { width: 30px; height: 30px; }
.feature-grid-secondary .fc-body { align-items: center; }
.feature-grid-secondary .fc-body b { font-size: 11.5px; white-space: nowrap; }
.feature-grid-secondary .fc-body span, .feature-grid-secondary .fc-arrow { display: none; }
.feature-card:focus-visible, .db-toggle:focus-visible, .sound-toggle:focus-visible { outline: 3px solid #f2cf75; outline-offset: 3px; }
#screen-menu.active .menu-hero { animation: menuIntro .55s cubic-bezier(.2,.8,.2,1) both; }
#screen-menu.active .feature-grid-main .feature-card { animation: menuTileIn .42s cubic-bezier(.2,.8,.2,1) both; }
#screen-menu.active .feature-grid-main .feature-card:nth-child(2) { animation-delay: 55ms; }
#screen-menu.active .feature-grid-main .feature-card:nth-child(3) { animation-delay: 100ms; }
#screen-menu.active .feature-grid-main .feature-card:nth-child(4) { animation-delay: 145ms; }
@keyframes menuIntro { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes menuTileIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (min-width: 720px) {
  body.on-menu #app { max-width: 820px; }
  .feature-grid-main { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .feature-card { min-height: 110px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; padding: 12px; }
  .feature-card .fc-icon-img { width: 40px; height: 40px; }
  .feature-card .fc-arrow { position: absolute; right: 10px; top: 8px; }
  .fc-body b { font-size: 14px; }
  .fc-body span { font-size: 11px; }
  .feature-grid-secondary { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 370px) {
  .menu-inner { padding-left: 12px; padding-right: 12px; }
  .feature-grid-main { gap: 8px; }
  .feature-card { min-height: 88px; gap: 6px; padding: 8px 7px; }
  .feature-card .fc-icon-img { width: 38px; height: 38px; }
  .fc-body b { font-size: 12.5px; }
  .fc-body span { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .feature-card, #screen-menu.active .menu-hero, #screen-menu.active .feature-grid-main .feature-card { transition: none; animation: none; }
  .feature-card:hover, .feature-card:active { transform: none; }
}

/* ---------- 捏人流程：同款背景（淡化，保证属性面板可读） ---------- */
#screen-position, #screen-build { position: relative; }
#screen-position::before, #screen-build::before {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url(../assets/ui/bg-main.jpg) center bottom / cover no-repeat fixed;
  opacity: .26;
}
#screen-position::after, #screen-build::after {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(237, 243, 238, .62), rgba(237, 243, 238, .34) 35%, rgba(237, 243, 238, .82));
}
#screen-position > *, #screen-build > * { position: relative; z-index: 1; }

/* ============ 按钮 ============ */
.btn {
  border: 0; border-radius: var(--r-sm); padding: 11px 20px; font-size: 14.5px; font-weight: 700;
  letter-spacing:.02em; transition: transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s ease, filter .18s ease, border-color .18s ease;
  border: 1px solid transparent; will-change: transform;
}
.btn:hover:not(:disabled) { filter: brightness(1.045); transform: translateY(-1px); }
.btn:active { transform: translateY(2px) scale(.985); }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.btn-primary { background: linear-gradient(145deg, #1caa67, #087044); color: #fff; box-shadow: 0 7px 16px rgba(8,91,54,.24), inset 0 1px 0 rgba(255,255,255,.28); }
.btn-primary:active:not(:disabled) { box-shadow: 0 1px 0 #063f24; transform: translateY(2px); }
.btn-secondary { background: linear-gradient(180deg,#fff,#f5f8f6); border-color: var(--border-str); color: var(--text); box-shadow: 0 5px 14px rgba(16,61,39,.09), inset 0 1px 0 #fff; }
.btn-secondary:active:not(:disabled) { box-shadow: 0 0 0 #c7d8cd; transform: translateY(2px); }
.btn-sm { padding: 9px 14px; font-size: 13px; }
.btn-gold { background: linear-gradient(180deg, #ffc93c, #e8a600); color: #4a3200; box-shadow: 0 3px 0 #a97c00; }

.bottom-bar {
  position: fixed; left: 50%; transform: translateX(-50%); right: auto; bottom: 0; z-index: 40;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; max-width: 560px; margin: 0 auto; padding: 12px 16px calc(12px + var(--safe-b));
  background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px);
  border-top: 1px solid var(--border);
}
.bottom-bar .btn { flex: none; }
.hint-line { font-size: 12.5px; color: var(--text-2); padding: 14px 4px 6px; margin: 0; }

/* ============ 位置选择 ============ */
.pos-groups { padding: 6px 0 10px; }
.pos-group { margin-bottom: 16px; }
.pos-group h3 { font-size: 12.5px; color: var(--text-2); margin: 0 4px 8px; font-weight: 700; letter-spacing: .5px; }
.pos-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 9px; }
.pos-card {
  background: var(--card); border: 1.6px solid var(--border); border-radius: 12px;
  padding: 12px 8px; text-align: center; transition: .15s ease; box-shadow: var(--shadow);
}
.pos-card .pc-abbr { font-size: 17px; font-weight: 900; letter-spacing: 1px; color: var(--navy); }
.pos-card .pc-cn { font-size: 11.5px; color: var(--text-2); margin-top: 2px; }
.pos-card.on { border-color: var(--grass); background: var(--grass-x); box-shadow: 0 0 0 3px rgba(15, 122, 70, .13); }
.pos-card.on .pc-abbr { color: var(--grass-d); }

/* ============ 建球员 ============ */
.build-pos { text-align: center; font-size: 13px; color: var(--text-2); padding: 12px 0 4px; }
.build-pos b { color: var(--text); font-size: 14.5px; }

.build-wrap { display: block; }
@media (min-width: 720px) {
  .build-wrap { display: grid; grid-template-columns:minmax(300px, .82fr) minmax(390px, 1.18fr); gap:16px;align-items:start;height:calc(100vh - 158px);min-height:560px; }
  .build-left,.build-right{height:100%;min-height:0;border:1px solid rgba(173,202,184,.72);border-radius:20px;background:rgba(247,251,248,.82);backdrop-filter:blur(14px);box-shadow:0 14px 34px rgba(7,56,35,.11)}
  .build-left{display:grid;grid-template-rows:auto auto minmax(0,1fr);padding:14px}.build-right{overflow-y:auto;padding:14px;scrollbar-gutter:stable}
  .attr-scroll { max-height:none!important;min-height:0;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable;overscroll-behavior:contain; }
  .ovr-card{display:grid;grid-template-columns:92px 1fr;grid-template-rows:auto auto;align-items:center;text-align:left;padding:14px 18px}.ovr-num{grid-row:1/3;font-size:54px}.ovr-label{margin:0}.ovr-tier{margin:0}.ovr-card:after{left:auto;right:-35px;transform:none}
  .slot-card{display:grid;grid-template-columns:minmax(210px,1fr) auto;grid-template-areas:'head actions' 'machine actions';gap:0 14px;align-items:center}.slot-head{grid-area:head;text-align:left;margin:0 0 4px}.slot-machine{grid-area:machine;width:100%;height:114px}.slot-actions{grid-area:actions;flex-direction:column;margin:0}.roster-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.rp-row{min-width:0;padding:9px 10px}.roster-head{margin-top:13px}
  #screen-position .pos-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}.pos-group{margin:0;background:rgba(255,255,255,.78);border:1px solid var(--border);border-radius:17px;padding:14px;box-shadow:var(--shadow)}
  #reveal-content{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:start}.reveal-card{margin-top:14px}.reveal-card:first-child{position:sticky;top:72px}.offer-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
}

/* 左侧属性面板 */
.build-left { position: relative; }
@media (min-width: 860px) { .attr-scroll { max-height: calc(100vh - 300px); overflow-y: auto; padding-right: 6px; } }
.ovr-card {
  background: linear-gradient(160deg, #ffffff, #f2faf5); border: 1.6px solid var(--border);
  border-radius: var(--r); text-align: center; padding: 14px 10px 12px; box-shadow: var(--shadow); margin-bottom: 12px;
  position: relative; overflow: hidden;
}
.ovr-card::after {
  content: ''; position: absolute; left: 50%; bottom: -46px; transform: translateX(-50%);
  width: 120px; height: 120px; border: 1.5px solid var(--grass-line); border-radius: 50%; opacity: .8;
}
.ovr-num { font-family: var(--font-num); font-size: 46px; font-weight: 700; line-height: 1; color: var(--grass-d); letter-spacing: 1px; }
.ovr-num.empty { color: #c2d3c7; font-size: 38px; letter-spacing: 3px; }
.ovr-label { font-size: 12.5px; color: var(--text-2); margin-top: 2px; letter-spacing: 2px; }
.ovr-tier { font-size: 12px; font-weight: 700; margin-top: 5px; color: var(--navy); }

.attr-group { margin-bottom: 11px; }
.attr-group-head {
  display: flex; align-items: center; gap: 7px; font-size: 11.5px; font-weight: 800;
  color: var(--text-2); letter-spacing: 1px; margin: 0 2px 6px;
}
.attr-group-head .agd { width: 8px; height: 8px; border-radius: 2px; }
.attr-group-head .agn { flex: 1; }
.attr-group-head .agv { font-family: var(--font-num); font-size: 13px; color: var(--navy); }
.attr-row {
  display: flex; align-items: center; gap: 8px; background: var(--card);
  border: 1.4px solid var(--border); border-radius: 10px; padding: 7px 11px;
  margin-bottom: 6px; transition: .14s ease;
}
.attr-row .ar-name { flex: 1; font-size: 13.5px; font-weight: 600; }
.attr-row .ar-grade { font-size: 12.5px; font-weight: 800; width: 26px; text-align: center; color: var(--text-2); letter-spacing: -.3px; }
.attr-row .ar-val { font-family: var(--font-num); font-size: 15px; font-weight: 700; width: 30px; text-align: right; color: var(--text-2); }
.attr-row.filled { border-color: var(--grass); background: var(--grass-x); }
.attr-row.filled .ar-val { color: var(--grass-d); font-size: 16.5px; }
.attr-row.filled .ar-grade { color: var(--grass-d); }
.attr-row.locked-anim { animation: lockPulse .5s ease; }
@keyframes lockPulse { 0% { transform: scale(1); } 35% { transform: scale(1.045); background: #ffe6d9; } 100% { transform: scale(1); } }
.attr-row .ar-src { font-size: 10px; color: var(--text-3); max-width: 74px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attr-row .ar-plus {
  width: 22px; height: 22px; border-radius: 7px; display: grid; place-items: center;
  font-size: 15px; font-weight: 700; color: #9db4cb; background: #f2f6fa; border: 1px solid #e0e9f2;
}
.attr-row:active .ar-plus { background: var(--grass-x); color: var(--grass-d); border-color: #a9d9bd; }

.grade-Ap { color: #b8860b !important; }
.grade-A { color: #16a34a !important; }
.grade-Am { color: #22a06b !important; }
.grade-Bp { color: #2563eb !important; }
.grade-B { color: #3b82f6 !important; }
.grade-Bm, .grade-Cp, .grade-C { color: var(--text-2) !important; }
.grade-Cm, .grade-Dp, .grade-D, .grade-Dm { color: #94a3b8 !important; }
.grade-F { color: #b9c4d1 !important; }

/* ---- 当前取用球员条 ---- */
.pick-bar { margin-bottom: 10px; }
.pb-empty {
  background: var(--card); border: 1.4px dashed var(--border-str); border-radius: 11px;
  padding: 12px; text-align: center; font-size: 12px; color: var(--text-3);
}
.pb-card {
  display: flex; align-items: center; gap: 10px; padding: 9px 12px;
  background: linear-gradient(135deg, #fff8f4, #ffffff);
  border: 1.6px solid #f3c3ac; border-radius: 12px; box-shadow: var(--shadow);
}
.pb-av { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; background: var(--bg2); flex: none; border: 1px solid var(--border); }
.pb-av.ph { display: grid; place-items: center; font-size: 16px; color: #b7c6d6; }
.pb-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pb-info b { font-size: 14.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pb-info span { font-size: 11px; color: var(--text-2); display: flex; align-items: center; gap: 5px; }
.pb-quota { font-family: var(--font-num); font-size: 14px; color: var(--text-3); }
.pb-quota b { font-size: 19px; color: var(--orange-d); }
.pb-tip { font-size: 11px; color: var(--text-3); text-align: center; margin-top: 6px; }

/* ---- 对比取用行 ---- */
.attr-row.offer { border-color: #c9e5d4; background: #fbfefc; }
.attr-row.offer:active { background: var(--grass-x); border-color: var(--grass); }
.attr-row.offer.dead { opacity: .42; }
.attr-row.offer .ar-calc { display: flex; align-items: center; gap: 4px; }
.attr-row.offer .ar-calc i { font-style: normal; font-weight: 700; font-size: 12px; color: var(--text-3); }
.attr-row.offer .ar-calc .pen {
  font-style: normal; font-weight: 700; font-size: 10.5px;
  color: #0e7a45; background: #e4f5ea; border-radius: 4px; padding: 0 4px;
}
.attr-row.offer .ar-calc .pen.low { color: #c2410c; background: #ffede0; }
.attr-row.offer .ar-calc .pen.eq { color: #7d9587; background: #eef4f0; }
.attr-row.offer .ar-get { font-family: var(--font-num); font-size: 16.5px; font-weight: 700; color: var(--grass); width: 30px; text-align: right; }

/* 右侧抽卡 */
.slot-card { background: var(--card); border: 1.6px solid var(--border); border-radius: var(--r); box-shadow: var(--shadow); padding: 14px; }
.slot-head { text-align: center; margin-bottom: 10px; }
.slot-tag { font-size: 12px; font-weight: 700; color: var(--text-2); }
.slot-machine {
  position: relative; height: 114px; overflow: hidden; border-radius: 12px;
  background: linear-gradient(180deg, #f4f7fb, #ffffff);
  border: 1.6px solid var(--border); margin: 0 auto; max-width: 420px;
}
.slot-strip { position: absolute; left: 0; right: 0; top: 0; transition: transform .9s cubic-bezier(.2, .9, .25, 1); }
.slot-item {
  height: 38px; display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 700; color: var(--text-3); gap: 8px;
}
.slot-item img { width: 20px; height: 20px; object-fit: contain; }
.slot-mask {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, .95));
}
.slot-mask::after {
  content: ''; position: absolute; left: 12px; right: 12px; top: 38px; height: 38px;
  border: 2px dashed #f0a98d; border-radius: 10px;
}
.slot-item.win { color: var(--orange-d); font-size: 17px; font-weight: 900; }
.slot-actions { display: flex; gap: 9px; justify-content: center; margin-top: 13px; }

.roster-head { display: flex; align-items: baseline; justify-content: space-between; margin: 16px 2px 9px; }
.roster-team { font-size: 15px; font-weight: 800; }
.roster-count { font-size: 11.5px; color: var(--text-3); }
.roster-list { display: flex; flex-direction: column; gap: 8px; }
.rp-row {
  display: flex; align-items: center; gap: 11px; background: var(--card);
  border: 1.6px solid var(--border); border-radius: 12px; padding: 9px 13px;
  box-shadow: var(--shadow); transition: .14s ease;
}
.rp-row:active { transform: scale(.99); }
.rp-row.on { border-color: var(--orange); background: #fff7f3; box-shadow: 0 0 0 3px rgba(239, 91, 43, .13); }
.rp-row.empty { opacity: .42; }
.rp-av { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; background: var(--bg2); flex: none; border: 1px solid var(--border); }
.rp-av.ph { display: grid; place-items: center; font-size: 17px; color: #b7c6d6; }
.rp-info { flex: 1; min-width: 0; }
.rp-name { font-size: 14px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rp-meta { font-size: 11px; color: var(--text-3); display: flex; align-items: center; gap: 6px; }
.rp-pos {
  display: inline-block; background: var(--bg2); border-radius: 4px; padding: 0 5px;
  font-weight: 700; color: var(--navy); font-size: 10.5px;
}
.rp-ovr { font-family: var(--font-num); font-size: 21px; font-weight: 700; color: var(--text); width: 34px; text-align: right; }
.rp-fit { display: flex; flex-direction: column; align-items: center; line-height: 1.05; margin-right: 2px; }
.rp-fit span { font-size: 9px; color: var(--text-3); letter-spacing: .5px; }
.rp-fit b { font-family: var(--font-num); font-size: 16px; color: var(--navy); }
.rp-row.on .rp-fit b { color: var(--orange-d); }

/* 排序切换 */
.roster-sort { display: flex; align-items: center; gap: 6px; margin: 0 2px 9px; flex-wrap: wrap; }
.roster-sort button {
  border: 1px solid var(--border-str); background: var(--card); color: var(--text-2);
  border-radius: 99px; padding: 4px 12px; font-size: 11.5px; font-weight: 700;
}
.roster-sort button.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.roster-sort .rs-tip { font-size: 10.5px; color: var(--text-3); }
.rp-flag { width: 15px; height: 11px; object-fit: contain; border-radius: 2px; }

.build-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; padding: 0 2px; }
.chk { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-2); cursor: pointer; }
.chk input { width: 15px; height: 15px; accent-color: var(--orange); }
.foot-hint { font-size: 11.5px; color: var(--text-3); }
.build-bottom .slots-left { font-size: 13px; color: var(--text-2); }
.build-bottom .slots-left b { color: var(--grass-d); font-family: var(--font-num); font-size: 16px; }

/* ============ 揭幕 ============ */
.reveal-card { background: var(--card); border: 1.6px solid var(--border); border-radius: var(--r); box-shadow: var(--shadow-lg); padding: 20px; text-align: center; margin-top: 14px; }
.reveal-ovr { font-family: var(--font-num); font-size: 64px; font-weight: 700; color: var(--orange-d); line-height: 1; }
.reveal-name { font-size: 22px; font-weight: 900; margin: 6px 0 4px; }
.reveal-meta { font-size: 12.5px; color: var(--text-2); display: flex; gap: 10px; justify-content: center; align-items: center; flex-wrap: wrap; }
.reveal-badge { display: inline-block; background: var(--bg2); border-radius: 99px; padding: 3px 12px; font-size: 12px; font-weight: 700; color: var(--navy); }
.reveal-flag { width: 34px; height: 23px; object-fit: cover; border-radius: 4px; border: 1px solid var(--border); vertical-align: -6px; }

/* ============ 弹窗 ============ */
.modal-overlay { position: fixed; inset: 0; z-index: 200; background: rgba(4, 18, 13, .68); backdrop-filter: blur(8px); display: grid; place-items: center; padding: 18px; animation:modalFade .2s ease; }
.modal-overlay[hidden] { display: none !important; }
.modal-box { background: var(--card); border:1px solid rgba(255,255,255,.7); border-radius: 18px; max-width: 460px; width: 100%; max-height: 84vh; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 28px 80px rgba(2,24,15,.38); animation:modalRise .28s cubic-bezier(.2,.9,.2,1); }
.modal-head { min-height:68px; display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid rgba(255,255,255,.12); font-weight: 850; color:#fff; background:linear-gradient(90deg,rgba(5,45,31,.95),rgba(5,45,31,.7)),url(../assets/ui/generated/career-event-locker-room.jpg) center 48% / cover; }
.modal-x { width:34px;height:34px;border: 1px solid rgba(255,255,255,.28); border-radius:50%; background: rgba(255,255,255,.1); font-size: 20px; color: #fff; line-height: 1; }
.modal-body { padding: 16px; overflow-y: auto; font-size: 13.5px; color: var(--text); }
@keyframes modalFade { from { opacity:0; } }
@keyframes modalRise { from { opacity:0; transform:translateY(18px) scale(.97); } }

/* ============================================================
   生涯 / 赛季
   ============================================================ */
.card {
  background: var(--card); border: 1.6px solid var(--border); border-radius: var(--r);
  box-shadow: var(--shadow); padding: 14px; margin-bottom: 12px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card.center { text-align: center; }
.card-title { font-size: 13px; font-weight: 800; letter-spacing: .5px; margin-bottom: 10px; color: var(--navy); }

/* ---- 选择俱乐部 ---- */
.offer-list { display: flex; flex-direction: column; gap: 10px; }
.offer-card {
  display: flex; align-items: center; gap: 12px; background: var(--card);
  border: 1.6px solid var(--border); border-radius: var(--r); padding: 12px 14px;
  box-shadow: var(--shadow); transition: .15s ease;
}
.offer-card:active { transform: scale(.99); border-color: var(--orange); }
.offer-card.stay { margin-top: 0; }
.oc-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.oc-info b { font-size: 15px; }
.oc-info span { font-size: 11.5px; color: var(--text-2); }
.oc-role { font-size: 11.5px; font-weight: 800; padding: 4px 11px; border-radius: 99px; background: var(--bg2); color: var(--navy); white-space: nowrap; }
.oc-role.r-star { background: linear-gradient(135deg, #ffd66b, #f5a623); color: #4a3200; }
.oc-role.r-main { background: #dcfce7; color: #15803d; }
.oc-role.r-rot { background: #dbeafe; color: #1d4ed8; }
.oc-role.r-sub { background: #f1f5f9; color: #64748b; }
.oc-role.r-bench { background: #fee2e2; color: #b91c1c; }

/* ---- 赛季头 ---- */
.season-command {
  position: relative; overflow: hidden; margin-bottom: 12px; padding: 17px;
  color: #f4fff8; border: 1px solid rgba(255,255,255,.12); border-radius: 18px;
  background: radial-gradient(circle at 92% 4%, rgba(193,231,104,.2), transparent 36%),
    linear-gradient(145deg, rgba(4,34,25,.95), rgba(8,75,52,.87)),
    url(../assets/ui/generated/season-command-room.jpg) center / cover;
  box-shadow: 0 14px 32px rgba(5, 54, 39, .2);
}
.sc-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.sc-top h2 { margin:2px 0 0; font-size:21px; letter-spacing:.02em; }
.eyebrow { color:#bddd7a; font-size:9px; font-weight:900; letter-spacing:.18em; }
.sc-plan-btn { border:1px solid rgba(255,255,255,.28); border-radius:99px; padding:7px 11px; color:#fff; background:rgba(255,255,255,.12); font-size:11px; font-weight:800; }
.phase-rail { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; margin:17px 0 14px; }
.phase-node { position:relative; padding-top:13px; color:rgba(255,255,255,.48); font-size:9px; text-align:center; }
.phase-node:before { content:""; position:absolute; left:-52%; right:52%; top:4px; height:2px; background:rgba(255,255,255,.18); }
.phase-node:first-child:before { display:none; }
.phase-node i { position:absolute; top:0; left:50%; width:10px; height:10px; transform:translateX(-50%); border:2px solid rgba(255,255,255,.35); border-radius:50%; background:#144b3b; }
.phase-node.done,.phase-node.now { color:#fff; font-weight:800; }
.phase-node.done i,.phase-node.now i { border-color:#d8ed91; background:#d8ed91; box-shadow:0 0 0 4px rgba(216,237,145,.12); }
.phase-node.done:before,.phase-node.now:before { background:#d8ed91; }
.objective-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.objective { min-width:0; padding:9px; border-radius:10px; background:rgba(255,255,255,.1); }
.objective div { display:flex; flex-direction:column; min-height:32px; }
.objective b { font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.objective span { color:rgba(255,255,255,.7); font-size:9px; }
.objective em { display:block; height:4px; margin-top:7px; overflow:hidden; border-radius:4px; background:rgba(0,0,0,.22); }
.objective em i { display:block; height:100%; border-radius:4px; background:#d8ed91; }
.db-benchmark,.career-route { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:8px; margin-top:10px; padding:9px 10px; border-radius:10px; background:rgba(4,26,20,.28); }
.db-benchmark span,.career-route span { color:#bddd7a; font-size:9px; font-weight:900; }
.db-benchmark b,.career-route b { font-size:11px; }
.db-benchmark i,.career-route i { color:rgba(255,255,255,.68); font-size:9px; font-style:normal; text-align:right; }
.league-pulse { display:grid; grid-template-columns:auto 1fr 1fr; gap:9px; align-items:center; margin-top:8px; padding:9px 10px; border-radius:10px; background:rgba(216,237,145,.1); border:1px solid rgba(216,237,145,.13); }
.league-pulse > span { color:#d8ed91; font-size:9px; font-weight:900; }
.league-pulse div { display:flex; flex-direction:column; min-width:0; }
.league-pulse b { font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.league-pulse i { color:rgba(255,255,255,.62); font-size:8.5px; font-style:normal; }
@media (max-width:520px) {
  .db-benchmark,.career-route { grid-template-columns:1fr; gap:2px; }
  .db-benchmark i,.career-route i { text-align:left; }
  .league-pulse { grid-template-columns:1fr 1fr; }
  .league-pulse > span { grid-column:1/-1; }
}
.season-hero {
  display: flex; align-items: center; gap: 12px; position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0a5834, #0f7a46 60%, #14904f);
  border-radius: var(--r); padding: 14px 16px; color: #fff; margin-top: 12px; box-shadow: var(--shadow);
}
/* 球场元素：中圈 + 割草条纹 */
.season-hero::before {
  content: ''; position: absolute; right: -34px; top: 50%; transform: translateY(-50%);
  width: 132px; height: 132px; border: 2px solid rgba(255, 255, 255, .13); border-radius: 50%;
}
.season-hero::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .045) 0 26px, rgba(255, 255, 255, 0) 26px 52px);
}
.season-hero > * { position: relative; z-index: 1; }
.sh-left { flex: 1; display: flex; align-items: center; gap: 11px; min-width: 0; }
.sh-left img { background: #fff; border-radius: 8px; padding: 3px; }
.sh-left div { display: flex; flex-direction: column; min-width: 0; }
.sh-left b { font-size: 16px; }
.sh-left span { font-size: 11.5px; color: #a8c8e4; }
.sh-right { text-align: center; }
.sh-ovr { min-width:58px;height:58px;border-radius:15px;background:rgba(4,46,31,.22);border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;font-family:var(--font-num);font-size:28px;font-weight:800;color:#fff7cc;line-height:1;font-variant-numeric:tabular-nums; }
.sh-ovr .ovr-number{font-size:28px;letter-spacing:-.02em;color:#fff7cc!important;background:none!important;-webkit-text-fill-color:#fff7cc;filter:none;text-shadow:0 2px 10px rgba(0,0,0,.25)}
.sh-right span { font-size: 10px; color: #a8c8e4; }
.season-meta {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 10px 0 12px;
}
.sm-item { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 9px 4px; text-align: center; }
.sm-item b { display: block; font-family: var(--font-num); font-size: 19px; color: var(--navy); }
.sm-item span { font-size: 10.5px; color: var(--text-3); }

/* ---- Tabs ---- */
.tabs { display: flex; gap: 7px; margin-bottom: 12px; overflow-x: auto; padding-bottom: 2px; }
.tabs button {
  flex: none; border: 1px solid var(--border-str); background: var(--card); color: var(--text-2);
  border-radius: 99px; padding: 7px 16px; font-size: 12.5px; font-weight: 750; transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;
}
.tabs button:hover { border-color:#73a988; color:var(--grass-d); }
.tabs button.on { background: linear-gradient(145deg,#116f48,#084b34); border-color: transparent; color: #fff; box-shadow:0 5px 14px rgba(8,75,52,.22); }

/* ---- 下一场 ---- */
.next-match {
  background: linear-gradient(160deg, #ffffff, #f3f8fd); border: 1.6px solid var(--border);
  border-radius: var(--r); box-shadow: var(--shadow); padding: 14px; text-align: center; margin-bottom: 12px;
}
.nm-tag { font-size: 11.5px; font-weight: 700; color: var(--orange-d); margin-bottom: 12px; }
.nm-teams { display: flex; align-items: center; justify-content: center; gap: 16px; }
.nm-side { display: flex; flex-direction: column; align-items: center; gap: 5px; width: 92px; }
.nm-side img { width: 40px; height: 40px; object-fit: contain; }
.nm-side span { font-size: 12px; font-weight: 700; }
.nm-vs { font-size: 12px; color: var(--text-3); font-weight: 700; }

/* ---- 最近战绩 ---- */
.recent-row { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px dashed #e6edf5; font-size: 12.5px; }
.recent-row:last-child { border-bottom: 0; }
.rr-comp, .fx-comp {
  width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center;
  font-size: 10.5px; font-weight: 900; flex: none;
}
.tL { background: #dbeafe; color: #1d4ed8; }
.tC { background: #fef3c7; color: #b45309; }
.tU { background: #ede9fe; color: #6d28d9; }
.rr-opp { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rr-score { font-family: var(--font-num); font-size: 15px; font-weight: 700; }
.rr-score.w { color: #16a34a; }
.rr-score.d { color: #d97706; }
.rr-score.l { color: #dc2626; }
.rr-rt { font-family: var(--font-num); font-size: 13px; color: var(--text-2); width: 28px; text-align: right; }
.rr-g { font-size: 11px; color: var(--orange-d); font-weight: 700; }

/* ---- 赛事进度 ---- */
.comp-row { display: flex; align-items: center; gap: 9px; padding: 8px 0; border-bottom: 1px dashed #e6edf5; font-size: 13px; }
.comp-row:last-child { border-bottom: 0; }
.comp-row img { width: 20px; height: 20px; object-fit: contain; }
.comp-row span { flex: 1; }
.comp-row b { font-size: 12.5px; color: var(--navy); }
.comp-row.dim { opacity: .5; }

/* ---- 赛程列表 ---- */
.fx-list { display: flex; flex-direction: column; gap: 6px; }
.fx-row {
  display: flex; align-items: center; gap: 9px; background: var(--card); border: 1px solid var(--border);
  border-radius: 10px; padding: 8px 12px; font-size: 12.5px;
}
.fx-row.now { border-color: var(--grass); background: var(--grass-x); box-shadow: 0 0 0 3px rgba(15, 122, 70, .1); }
.fx-round { font-size: 11px; color: var(--text-3); width: 56px; }
.fx-opp { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fx-todo { font-size: 11px; color: var(--text-3); }

/* ---- 积分榜 ---- */
.tb { font-size: 12px; }
.tb-head, .tb-row {
  display: grid; grid-template-columns: 22px 1fr repeat(8, 26px);
  align-items: center; gap: 2px; padding: 6px 2px;
}
.tb-head { font-size: 10.5px; color: var(--text-3); font-weight: 700; border-bottom: 1px solid var(--border); }
.tb-row { border-bottom: 1px dashed #eef3f8; }
.tb-row.mine { background: #fff4ee; font-weight: 700; }
.tb-team { display: flex; align-items: center; gap: 5px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.tb-pts { font-family: var(--font-num); font-weight: 700; font-size: 13.5px; color: var(--navy); }
.tb-row.z-ucl { box-shadow: inset 3px 0 0 #22c55e; }
.tb-row.z-uel { box-shadow: inset 3px 0 0 #3b82f6; }
.tb-row.z-rel { box-shadow: inset 3px 0 0 #ef4444; }
.tb-row.mine.z-ucl { box-shadow: inset 3px 0 0 #22c55e; }

/* ---- 数据 ---- */
.st-row { display: flex; align-items: center; gap: 6px; padding: 8px 0; border-bottom: 1px dashed #e6edf5; }
.st-row:last-child { border-bottom: 0; }
.st-name { flex: 1; font-weight: 700; font-size: 13px; }
.st-cell { display: flex; flex-direction: column; align-items: center; width: 46px; font-size: 9.5px; color: var(--text-3); }
.st-cell b { font-family: var(--font-num); font-size: 15px; color: var(--text); }
.tot-grid, .review-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.tot-grid > div, .review-stats > div { text-align: center; }
.tot-grid b, .review-stats b { display: block; font-family: var(--font-num); font-size: 22px; color: var(--grass-d); }
.tot-grid span, .review-stats span { font-size: 10.5px; color: var(--text-3); }

/* ---- 荣誉 ---- */
.honor-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 9px; }
.honor-item {
  display: flex; align-items: center; gap: 9px; background: #fffdf6; border: 1.4px solid #f0e2bd;
  border-radius: 11px; padding: 9px 11px;
}
.honor-item.major { border-color: #e9c96a; background: linear-gradient(135deg, #fffaeb, #fff3d4); box-shadow: 0 0 0 2px rgba(233, 201, 106, .25); }
.hi-icon { width: 32px; height: 32px; flex: none; display: grid; place-items: center; overflow: hidden; }
.hi-icon img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; }
.hi-fallback { font-size: 22px; }
.hi-text { display: flex; flex-direction: column; min-width: 0; }
.hi-text b { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hi-text span { font-size: 10px; color: var(--text-3); }

/* ---- 比赛报告 ---- */
.mr-visual{height:190px;border-radius:18px;overflow:hidden;position:relative;margin-bottom:10px;background:#073b2a;box-shadow:var(--shadow-lg)}
.mr-visual img{width:100%;height:100%;object-fit:cover;display:block}.mr-visual:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(2,26,18,.86))}
.mr-visual>div{position:absolute;z-index:1;left:16px;bottom:14px;color:#fff;display:flex;flex-direction:column}.mr-visual span{font-size:11px;opacity:.8}.mr-visual b{font-family:var(--font-display);font-size:23px;letter-spacing:.04em}
.mr-card { border-radius: var(--r); padding: 18px 14px; text-align: center; color: #fff; margin-bottom: 12px; box-shadow: var(--shadow-lg); }
.mr-card.w { background: linear-gradient(150deg, #15803d, #22c55e); }
.mr-card.d { background: linear-gradient(150deg, #b45309, #f59e0b); }
.mr-card.l { background: linear-gradient(150deg, #991b1b, #ef4444); }
.mr-comp { font-size: 11.5px; opacity: .88; margin-bottom: 12px; }
.mr-score { display: flex; align-items: center; justify-content: center; gap: 14px; }
.mrs-side { display: flex; flex-direction: column; align-items: center; gap: 5px; width: 88px; }
.mrs-side img { width: 38px; height: 38px; object-fit: contain; background: rgba(255, 255, 255, .92); border-radius: 8px; padding: 3px; }
.mrs-side span { font-size: 11.5px; font-weight: 700; }
.mrs-num { font-family: var(--font-num); font-size: 40px; font-weight: 800; letter-spacing: 0; font-variant-numeric:tabular-nums; }
.mrs-num i { font-style: normal; opacity: .6; }
.mr-xg { font-size: 11px; opacity: .85; margin-top: 12px; }
.mr-performance{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:stretch;margin-bottom:12px}.mr-rating{display:grid;place-content:center;text-align:center;background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px;box-shadow:var(--shadow)}
.mrr-num { font-family: var(--font-num); font-size: 48px; font-weight: 800; color: var(--grass-d); line-height: 1; font-variant-numeric:tabular-nums; }.mrr-num.great{color:#aa7414}.mrr-num.elite{background:linear-gradient(120deg,#8b5cf6,#08a88a,#e9a52b);-webkit-background-clip:text;background-clip:text;color:transparent}
.mrr-label { font-size: 12px; color: var(--text-2); }
.mr-verdict{border-radius:14px;padding:13px 15px;background:linear-gradient(145deg,#083e2c,#126443);color:#fff;display:flex;flex-direction:column;justify-content:center}.mr-verdict span{font-size:10px;color:#acd5bb}.mr-verdict b{font-family:var(--font-display);font-size:19px;margin:2px 0}.mr-verdict i{font-style:normal;font-size:11px;color:#d3e8da}
.stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.sg-cell { text-align: center; background:linear-gradient(145deg,#f8fbf9,#eef5f0);border:1px solid #e0ece4;border-radius:11px;padding:10px 4px; }
.sg-cell b { display: block; font-family: var(--font-num); font-variant-numeric:tabular-nums; font-size: 18px; font-weight:750;color:var(--navy);letter-spacing:0 }
.sg-cell span { font-size: 10px; color: var(--text-3); }
.mr-flash {
  text-align: center; font-weight: 800; color: var(--orange-d); font-size: 14px;
  background: linear-gradient(90deg, #fff5e8, #ffe9d5); border-radius: 10px; padding: 11px; margin-bottom: 12px;
}

/* ---- 赛季总结 / 休赛期 ---- */
.review-rank { font-size: 12.5px; color: var(--text-2); margin-top: 10px; }
.off-age { font-family: var(--font-num); font-size: 38px; font-weight: 700; color: var(--navy); line-height: 1.1; }
.off-ovr { font-size: 14px; margin-top: 6px; }
.off-ovr b { font-family: var(--font-num); font-size: 22px; color: var(--orange-d); }
.off-ovr .up { color: #16a34a; font-weight: 800; }
.off-ovr .down { color: #dc2626; font-weight: 800; }

/* Premium story art, OVR tiers and interactive penalty */
.story-art{position:relative;margin:-2px -2px 14px;border-radius:16px;overflow:hidden;aspect-ratio:16/8;background:#082f23;box-shadow:0 12px 28px rgba(3,31,22,.22)}
.story-art img{width:100%;height:100%;object-fit:cover;display:block}.story-art-shade{position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(3,20,15,.58))}
.ovr-number{display:inline-block;font-family:var(--font-num);font-weight:800;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 rgba(255,255,255,.35)}
.ovr-steel{color:#64748b}.ovr-cyan{color:#0891b2;text-shadow:0 0 14px rgba(6,182,212,.3)}.ovr-emerald{color:#059669;text-shadow:0 0 16px rgba(16,185,129,.35)}
.ovr-gold{color:#b7791f;background:linear-gradient(145deg,#fff1a8,#c8891a 52%,#7c4d08);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 8px rgba(245,180,49,.32))}
.ovr-prism{background:linear-gradient(120deg,#8b5cf6,#22d3ee,#f59e0b,#8b5cf6);background-size:240% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ovrShift 3s linear infinite;filter:drop-shadow(0 0 8px rgba(139,92,246,.4))}
.ovr-legend{background:linear-gradient(90deg,#ff4d6d,#ffd166,#55efc4,#74b9ff,#c77dff,#ff4d6d);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ovrShift 1.8s linear infinite;filter:drop-shadow(0 0 10px rgba(255,209,102,.55))}
@keyframes ovrShift{to{background-position:300% 0}}
.penalty-copy{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.penalty-copy span{font-size:12px;color:var(--text-2)}
.penalty-goal{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,58px);gap:5px;padding:8px;border:6px solid #eef4ef;border-bottom-width:9px;background:linear-gradient(rgba(255,255,255,.08),rgba(255,255,255,.18)),#124e36;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);perspective:400px}
.pen-zone{border:1px dashed rgba(255,255,255,.42);background:rgba(255,255,255,.04);cursor:pointer;position:relative;transition:.18s}.pen-zone:hover,.pen-zone.selected{background:rgba(255,205,87,.22);border-color:#ffd166;transform:scale(.97)}.pen-zone i{position:absolute;width:15px;height:15px;border:2px solid rgba(255,255,255,.7);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.pen-zone.selected i{background:#ffd166;box-shadow:0 0 15px #ffd166}
.power-track{height:14px;background:#dce6df;border-radius:99px;margin:14px 0 7px;overflow:hidden;position:relative}.power-sweet{position:absolute;left:60%;width:24%;inset-block:0;background:rgba(16,185,129,.35)}.power-fill{height:100%;width:8%;background:linear-gradient(90deg,#0f8b55,#f4cf69,#db4545);border-radius:99px;transition:width .02s linear}.penalty-chance{text-align:center;font-size:12px;color:var(--text-2);margin-bottom:10px}.penalty-result{text-align:center;padding:15px}.penalty-result b{font-family:var(--font-display);font-size:28px;display:block}.penalty-result span{color:var(--text-2);font-size:12px}.penalty-result.scored b{color:#087f4e}.penalty-result.missed b{color:#b4232b}
.off-tip { font-size: 12px; color: var(--text-2); margin: 10px 0 0; }
.nat-card { display: flex; align-items: center; gap: 11px; }
.nat-card img { width: 38px; height: 26px; object-fit: cover; border-radius: 4px; border: 1px solid var(--border); }
.nat-card div { flex: 1; display: flex; flex-direction: column; }
.nat-card b { font-size: 14px; }
.nat-card span { font-size: 11.5px; color: var(--text-2); }
.nat-result { font-weight: 800; font-size: 13px; color: var(--orange-d); }
.nat-list { margin-top: 10px; }
.nat-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 12.5px; border-bottom: 1px dashed #e6edf5; }
.nat-row:last-child { border-bottom: 0; }
.nat-row img { width: 20px; height: 14px; object-fit: cover; border-radius: 2px; }
.nat-row span { flex: 1; }
.nat-row b { color: var(--navy); }
.season-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px dashed #e6edf5; font-size: 12.5px; }
.season-row:last-child { border-bottom: 0; }
.season-row b { width: 62px; flex: none; }
.season-row > span { flex: 1; color: var(--text-2); }
.sr-rank { flex: none; color: var(--navy) !important; font-weight: 700; font-size: 11.5px; }

/* ============================================================
   事件弹窗 / 训练营 / 庆祝
   ============================================================ */
.ev-sub { font-size: 11.5px; font-weight: 800; color: var(--orange-d); letter-spacing: .5px; margin-bottom: 8px; }
.ev-body { font-size: 13.5px; line-height: 1.75; color: var(--text); margin: 0 0 14px; }
.ev-choices { display: flex; flex-direction: column; gap: 8px; }
.ev-choice {
  text-align: left; background: linear-gradient(145deg,#fff,#f4f8f5); border: 1.5px solid var(--border); border-radius: 13px;
  padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; transition: transform .17s ease, box-shadow .17s ease, border-color .17s ease;
}
.ev-choice:hover { border-color:#73a988; box-shadow:0 8px 18px rgba(9,70,43,.1); transform:translateY(-1px); }
.ev-choice:active { border-color: var(--grass); background: #edf8f1; transform: translateY(1px) scale(.99); }
.ev-choice b { font-size: 14px; }
.ev-choice span { font-size: 11.5px; color: var(--text-2); }
.ev-choice.primary { align-items: center; background: linear-gradient(145deg, #168d59, #075b3b); border-color: transparent; box-shadow:0 8px 18px rgba(7,91,59,.22); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
.ev-choice.primary b { color: #fff; }
.ev-result { font-size: 13.5px; line-height: 1.75; margin-bottom: 10px; }
.ev-extra { font-size: 12px; color: var(--text-2); margin-bottom: 12px; }
.ev-warn { background: #fff3e0; border: 1px solid #f3c3ac; color: #b45309; font-weight: 700; border-radius: 9px; padding: 9px 11px; }

.career-system-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.career-system-strip>div{display:flex;flex-direction:column;padding:10px;border-radius:12px;background:linear-gradient(145deg,#f8fbf9,#eef5f1);border:1px solid #dbe9e1}.career-system-strip span{font-size:10px;color:var(--text-2);font-weight:800}.career-system-strip b{font-size:14px;margin:3px 0}.career-system-strip i{font-size:10px;color:var(--text-2);font-style:normal}.attention-switch{display:flex;gap:6px;margin-top:8px}.attention-switch button{flex:1;padding:7px;border-radius:9px;border:1px solid var(--border);background:var(--card);font-size:11px;font-weight:800}.result-dots{display:flex;gap:5px;overflow-x:auto;padding:7px 1px 11px}.result-dots i{width:25px;height:25px;display:grid;place-items:center;flex:none;border-radius:50%;font:800 10px/1 var(--font-num);color:#fff}.result-dots .r-w{background:#16875a}.result-dots .r-d{background:#86938c}.result-dots .r-l{background:#c14936}.career-verdict{font-size:13px;line-height:1.7}.season-turn{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px dashed var(--border);font-size:12px}.award-podium{display:grid;gap:7px}.award-podium>div{display:flex;justify-content:space-between;gap:10px;padding:9px;border-radius:10px;background:#f5f8f6}.award-podium span{font-size:11px;color:var(--text-2)}.legacy-epilogue p{font-size:13px;line-height:1.7}
@media(max-width:600px){.career-system-strip{grid-template-columns:1fr}.award-podium>div{flex-direction:column}}
.match-decisions{display:grid;gap:7px}.match-decision{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border-left:4px solid #87928c;background:#f5f7f6;border-radius:8px;font-size:12px}.match-decision.success{border-color:#16875a;background:#eef8f2}.match-decision.failed{border-color:#c14936;background:#fff3f0}.match-decision span{font-size:11px;color:var(--text-2)}

/* 庆祝全屏 */
.celebrate {
  position: fixed; inset: 0; z-index: 600; display: grid; place-items: center; padding: 22px;
  background: radial-gradient(ellipse at center, rgba(15, 61, 99, .93), rgba(5, 20, 34, .97));
  animation: celIn .4s ease;
}
@keyframes celIn { from { opacity: 0; } to { opacity: 1; } }
.cel-inner { text-align: center; max-width: 420px; }
.cel-title {
  font-size: 30px; font-weight: 900; letter-spacing: 2px; margin-bottom: 14px;
  background: linear-gradient(90deg, #ffd66b, #ff9a3c, #ffd66b);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: celPop .6s cubic-bezier(.2, 1.4, .4, 1);
}
@keyframes celPop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.cel-text { color: #d8e6f2; font-size: 14px; line-height: 1.8; margin-bottom: 26px; }
.celebrate.orange .cel-title { background: linear-gradient(90deg, #ffb36b, #ff6b35, #ffb36b); -webkit-background-clip: text; background-clip: text; }
.celebrate.blue .cel-title { background: linear-gradient(90deg, #7dd3fc, #38bdf8, #7dd3fc); -webkit-background-clip: text; background-clip: text; }

/* 训练营 */
.camp-head {
  display: flex; align-items: center; gap: 14px; position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0a5834, #0f7a46 60%, #14904f);
  border-radius: var(--r); padding: 14px 16px; color: #fff; margin: 12px 0; box-shadow: var(--shadow);
}
.camp-head::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .045) 0 26px, rgba(255, 255, 255, 0) 26px 52px);
}
.camp-head > * { position: relative; z-index: 1; }
.camp-pts { text-align: center; padding-right: 14px; border-right: 1px solid rgba(255, 255, 255, .2); }
.camp-pts b { display: block; font-family: var(--font-num); font-size: 38px; line-height: 1; color: var(--gold); }
.camp-pts span { font-size: 10.5px; color: #a8c8e4; }
.camp-info { flex: 1; font-size: 12.5px; line-height: 1.6; }
.camp-info span { font-size: 11px; color: #a8c8e4; }
.camp-groups { padding-bottom: 8px; }
.camp-group { margin-bottom: 12px; }
.camp-row {
  display: flex; align-items: center; gap: 8px; background: var(--card); border: 1.4px solid var(--border);
  border-radius: 10px; padding: 7px 11px; margin-bottom: 6px;
}
.camp-row.on { border-color: var(--orange); background: #fff7f3; }
.cr-name { flex: 1; font-size: 13.5px; font-weight: 600; }
.cr-val { font-family: var(--font-num); font-size: 15px; font-weight: 700; width: 42px; text-align: right; color: var(--navy); }
.cr-val i { font-style: normal; font-size: 9px; color: #16a34a; margin-left: 3px; }
.cr-btn {
  width: 26px; height: 26px; border-radius: 8px; border: 1px solid var(--border-str); background: var(--card);
  font-size: 15px; font-weight: 700; line-height: 1; color: var(--navy);
}
.cr-btn.plus { color: #fff; background: linear-gradient(180deg, #f9722f, var(--orange-d)); border-color: transparent; }
.cr-btn:disabled { opacity: .35; }
.cr-cost { font-size: 10.5px; color: var(--text-3); width: 34px; text-align: right; }
.mr-flash.warn { color: #b45309; background: linear-gradient(90deg, #fff5e8, #ffe4c9); }

/* ============================================================
   转会市场 / 国家队战绩
   ============================================================ */
.tm-head {
  font-size: 12.5px; color: var(--text-2); background: #f6faf7; border: 1px solid #dfece3;
  border-radius: 10px; padding: 10px 12px; line-height: 1.7;
}
.tm-head b { color: var(--navy); font-family: var(--font-num); font-size: 15px; }
.tm-none { font-size: 12.5px; color: var(--text-3); margin: 10px 0 4px; }
.tm-all { width: 100%; margin-top: 10px; }
.tm-modal-tip { font-size: 12px; color: var(--text-2); margin: 0 0 12px; }
.tm-league { font-size: 11.5px; font-weight: 800; color: var(--navy); margin: 12px 0 7px; letter-spacing: .5px; }
.tm-clubs { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 7px; }
.tm-club {
  display: flex; align-items: center; gap: 7px; background: #fff; border: 1.4px solid var(--border);
  border-radius: 9px; padding: 7px 9px; font-size: 12.5px; text-align: left; transition: .14s ease;
}
.tm-club:active { border-color: var(--green); background: #f1faf3; }
.tm-club span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tm-club i { font-style: normal; font-family: var(--font-num); font-size: 13px; color: var(--text-3); }

.nat-final {
  margin-top: 9px; font-size: 12.5px; color: var(--text); background: linear-gradient(90deg, #fffaf0, #fff4dd);
  border: 1px solid #f0e0b8; border-radius: 9px; padding: 9px 12px; text-align: center; font-weight: 700;
}
.nat-row.champ { background: linear-gradient(90deg, #fffdf3, #fff7e0); border-radius: 8px; padding-left: 6px; }
.nr-icon { width: 22px; height: 22px; flex: none; display: grid; place-items: center; overflow: hidden; }
.nr-icon img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 0; }
.nr-stat { font-style: normal; font-size: 11px; color: var(--text-3); margin-right: 8px; }
.nat-none { font-size: 12.5px; color: var(--text-3); margin: 10px 0 0; }

/* ============================================================
   重要比赛
   ============================================================ */
.next-match.big { border-color: #f0cf8a; background: linear-gradient(160deg, #fffdf6, #fff6e2); }
.next-match.huge { border-color: #e8a33d; background: linear-gradient(160deg, #fffaf0, #ffefd0); box-shadow: 0 6px 22px rgba(200, 130, 20, .16); }
.nm-imp {
  display: inline-block; font-size: 11px; font-weight: 900; letter-spacing: 1px;
  border-radius: 99px; padding: 3px 12px; margin-bottom: 9px;
}
.nm-imp.t2 { background: #fff2d4; color: #a16207; border: 1px solid #f0cf8a; }
.nm-imp.t3 { background: linear-gradient(90deg, #ffe1a8, #ffcb63); color: #7c4a03; border: 1px solid #e8a33d; }
.nm-reasons { font-size: 11px; color: #a16207; margin-top: 9px; font-weight: 700; }

.pm-head { text-align: center; border-radius: 11px; padding: 11px; margin-bottom: 12px; }
.pm-head.t2 { background: #fff2d4; border: 1px solid #f0cf8a; }
.pm-head.t3 { background: linear-gradient(135deg, #ffe1a8, #ffcb63); border: 1px solid #e8a33d; }
.pm-badge { font-size: 15px; font-weight: 900; letter-spacing: 2px; color: #7c4a03; }
.pm-reasons { font-size: 11.5px; color: #a16207; margin-top: 4px; font-weight: 700; }
.pm-teams { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 14px; }
.pm-teams > div { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 92px; }
.pm-teams > div span { font-size: 12px; font-weight: 700; }
.pm-teams > b { font-family: var(--font-num); font-size: 16px; color: var(--text-3); }

.fx-imp { font-style: normal; font-size: 10px; }
.fx-imp.t2 { color: #c2872a; }
.fx-imp.t3 { color: #d97706; }

.mr-imp { font-weight: 800; }
.mr-card.big { box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .28), var(--shadow-lg); }
.mr-card.huge { box-shadow: inset 0 0 0 4px rgba(255, 215, 120, .55), 0 12px 36px rgba(0, 0, 0, .28); }

/* ============================================================
   榜单 / 成就 / 绰号
   ============================================================ */
.bd { display: flex; flex-direction: column; }
.bd-row {
  display: flex; align-items: center; gap: 8px; padding: 7px 4px;
  border-bottom: 1px dashed #e6f0e9; font-size: 13px;
}
.bd-row:last-child { border-bottom: 0; }
.bd-row.me { background: var(--grass-x); border-radius: 8px; font-weight: 800; box-shadow: inset 3px 0 0 var(--grass); }
.bd-rank { width: 20px; text-align: center; font-family: var(--font-num); font-size: 13px; color: var(--text-3); }
.bd-row.me .bd-rank { color: var(--grass-d); font-size: 15px; }
.bd-av { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; background: var(--bg2); flex: none; border: 1px solid var(--border); }
.bd-av.ph { display: grid; place-items: center; font-size: 13px; color: #9fb4a6; }
.bd-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bd-val { font-family: var(--font-num); font-size: 16px; font-weight: 700; color: var(--navy); width: 40px; text-align: right; }
.bd-val i { font-style: normal; font-size: 9.5px; color: var(--text-3); margin-left: 2px; }
.bd-mine { color: var(--grass-d); font-size: 12px; }
.bd-sep { text-align: center; color: var(--text-3); font-size: 11px; padding: 2px 0; }

.ach-pop { display: flex; flex-direction: column; gap: 9px; }
.ach-item {
  display: flex; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 11px;
  background: linear-gradient(135deg, #fffdf3, #fff6e0); border: 1.6px solid #f0e0b8;
  animation: achIn .4s cubic-bezier(.2, 1.3, .4, 1);
}
@keyframes achIn { from { transform: translateY(-10px) scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }
.ach-item.purple { background: linear-gradient(135deg, #faf5ff, #f0e6ff); border-color: #d9c2f5; }
.ach-item.legend { background: linear-gradient(135deg, #fff8e0, #ffeec2); border-color: #e5c266; box-shadow: 0 0 0 2px rgba(229, 194, 102, .3); }
.ach-icon { width: 42px; height: 42px; flex: none; display: grid; place-items: center; overflow: hidden; }
.ach-icon img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; }
.ach-text { display: flex; flex-direction: column; }
.ach-text b { font-size: 15px; }
.ach-text span { font-size: 11.5px; color: var(--text-2); }

.ach-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 8px; }
.ach-card {
  display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px;
  background: #f7faf8; border: 1.4px solid #e3ece6; opacity: .62; position: relative;
}
.ach-card.got { opacity: 1; background: #fff; border-color: var(--border); box-shadow: var(--shadow); }
.ach-card.got.silver { border-color: #cfd8d2; }
.ach-card.got.gold { border-color: #ecd08a; background: linear-gradient(135deg, #fffdf5, #fff8e6); }
.ach-card.got.purple { border-color: #d9c2f5; background: linear-gradient(135deg, #fdfaff, #f7f0ff); }
.ach-card.got.legend { border-color: #e5c266; background: linear-gradient(135deg, #fff9e8, #ffefc8); box-shadow: 0 0 0 2px rgba(229, 194, 102, .22); }
.ac-icon { width: 28px; height: 28px; flex: none; display: grid; place-items: center; font-size: 15px; overflow: hidden; }
.ac-icon img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; }
.ac-text { display: flex; flex-direction: column; min-width: 0; }
.ac-text b { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-text span { font-size: 10px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-season {
  position: absolute; top: 5px; right: 6px; font-size: 9px; font-weight: 800;
  color: var(--grass-d); background: var(--grass-x); border-radius: 4px; padding: 0 4px;
}

.nickname { font-style: normal; font-size: 14px; color: var(--gold); font-weight: 800; letter-spacing: 1px; }

/* ============================================================
   合同谈判 / 收入 / 联盟演化 / 生涯终章 / 冬窗
   ============================================================ */
.ct-bar { flex-wrap: wrap; gap: 7px; }
.ct-bar .btn { flex: 1 1 auto; min-width: 30%; }
.ct-hero {
  background: linear-gradient(135deg, #0a5834, #0f7a46 60%, #14904f);
  border-radius: var(--r); padding: 14px; color: #fff; margin: 12px 0; box-shadow: var(--shadow);
  position: relative; overflow: hidden;
}
.ct-hero::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .045) 0 26px, rgba(255, 255, 255, 0) 26px 52px);
}
.ct-hero > * { position: relative; z-index: 1; }
.ct-clubs { display: flex; align-items: center; justify-content: center; gap: 14px; }
.ctc { display: flex; flex-direction: column; align-items: center; gap: 3px; width: 82px; }
.ctc img { background: #fff; border-radius: 8px; padding: 2px; }
.ctc span { font-size: 11.5px; font-weight: 700; }
.ctc i { font-style: normal; font-size: 10px; color: #a8c8e4; }
.ct-mid { font-size: 12px; font-weight: 800; color: var(--gold); letter-spacing: 1px; }
.ct-patience { text-align: center; margin-top: 11px; font-size: 12px; }
.ct-patience b { color: var(--gold); letter-spacing: 3px; }
.ct-patience span { display: block; font-size: 10.5px; color: #a8c8e4; margin-top: 2px; }

.ct-value { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.ct-value > div { text-align: center; }
.ct-value b { display: block; font-family: var(--font-num); font-size: 18px; color: var(--grass-d); }
.ct-value span { font-size: 10px; color: var(--text-3); }
.ct-budget {
  margin-top: 11px; font-size: 12px; color: var(--text-2); background: #f2faf5;
  border: 1px solid #d5ecdd; border-radius: 9px; padding: 8px 11px;
}
.ct-budget b { color: var(--navy); font-family: var(--font-num); font-size: 14px; }

.ct-terms { display: flex; flex-direction: column; gap: 2px; }
.ct-term { display: flex; align-items: center; justify-content: space-between; padding: 7px 3px; border-bottom: 1px dashed #e6f0e9; font-size: 13px; }
.ct-term:last-child { border-bottom: 0; }
.ct-term span { color: var(--text-2); }
.ct-term b { font-size: 14px; }
.ct-term b.up { color: #15803d; }
.ct-term b.down { color: #c2410c; }
.ct-terms.mini { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; }
.ct-alert {
  margin-top: 10px; background: #fff5e8; border: 1px solid #f0cfa6; color: #a16207;
  font-weight: 800; border-radius: 9px; padding: 10px 12px; font-size: 12.5px;
}
.ct-log { display: flex; flex-direction: column; gap: 8px; }
.ctl-row { font-size: 12.5px; line-height: 1.7; border-radius: 9px; padding: 9px 12px; }
.ctl-row.ok { background: #f1faf4; border-left: 3px solid var(--grass); }
.ctl-row.no { background: #fff6f2; border-left: 3px solid #e8590c; }

.pay-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5px 14px; }
.pay-grid > div { display: flex; justify-content: space-between; padding: 6px 2px; border-bottom: 1px dashed #e6f0e9; font-size: 12.5px; }
.pay-grid span { color: var(--text-2); }
.pay-grid b { font-family: var(--font-num); font-size: 14px; }
.pay-grid b.tax { color: #c2410c; }
.pay-total { margin-top: 11px; text-align: center; font-size: 12.5px; color: var(--text-2); }
.pay-total b { font-family: var(--font-num); font-size: 20px; color: var(--grass-d); }

.evo-block { margin-bottom: 11px; }
.evo-head { font-size: 11.5px; font-weight: 800; color: var(--navy); letter-spacing: .5px; margin-bottom: 6px; }
.evo-list { display: flex; flex-wrap: wrap; gap: 6px; }
.evo-chip {
  display: inline-flex; align-items: baseline; gap: 4px; background: #f5f9f6; border: 1px solid #deebe2;
  border-radius: 99px; padding: 3px 11px; font-size: 12px;
}
.evo-chip i { font-style: normal; font-size: 10px; color: var(--text-3); }
.evo-chip.up { background: #eefaf1; border-color: #b7e6c8; }
.evo-chip.up i { color: #15803d; font-weight: 700; }
.evo-move {
  display: flex; flex-direction: column; background: #f8fbfe; border: 1px solid #e2ecf5;
  border-radius: 9px; padding: 5px 11px; font-size: 12px;
}
.evo-move em { font-style: normal; font-size: 10.5px; color: var(--text-3); }
.evo-tip { font-size: 11px; color: var(--text-3); margin: 4px 0 0; text-align: center; }

/* 生涯终章 */
.ret-hero { text-align: center; padding: 22px 12px; }
.rh-age { font-family: var(--font-num); font-size: 62px; font-weight: 700; color: var(--grass-d); line-height: 1; }
.rh-label { font-size: 12.5px; color: var(--text-2); margin-top: 4px; }
.rh-line { font-size: 12px; color: var(--text-3); margin-top: 10px; }

.legacy-card {
  border-radius: var(--r); padding: 26px 16px; text-align: center; margin: 12px 0;
  background: linear-gradient(150deg, #0a5834, #0f7a46 60%, #14904f); color: #fff;
  box-shadow: var(--shadow-lg); position: relative; overflow: hidden;
}
.legacy-card.gold { background: linear-gradient(150deg, #7c4a03, #c2872a 60%, #e0a800); }
.legacy-card.purple { background: linear-gradient(150deg, #3b1f6e, #6d3ec4 60%, #8b5cf6); }
.legacy-card.legend { background: linear-gradient(150deg, #6d1a1a, #b91c1c 55%, #ef4444); }
.legacy-card.goat { background: linear-gradient(150deg, #4a2c00, #b8860b 45%, #ffd700); }
.legacy-card.silver { background: linear-gradient(150deg, #2f4858, #5b7c8d 60%, #94a3b8); }
.legacy-card.bronze { background: linear-gradient(150deg, #5a3a1e, #9c6b3f 60%, #c08552); }
.legacy-card::after {
  content: ''; position: absolute; right: -40px; top: 50%; transform: translateY(-50%);
  width: 150px; height: 150px; border: 2px solid rgba(255, 255, 255, .13); border-radius: 50%;
}
.lc-medal { font-size: 52px; line-height: 1; animation: achIn .6s cubic-bezier(.2, 1.4, .4, 1); }
.lc-tier { font-size: 30px; font-weight: 900; letter-spacing: 3px; margin-top: 8px; }
.lc-en { font-size: 11px; letter-spacing: 4px; opacity: .8; margin-top: 3px; }
.lc-score { margin-top: 12px; font-size: 12px; opacity: .9; }
.lc-score b { font-family: var(--font-num); font-size: 22px; color: #fff; }
.legacy-copy { font-size: 13.5px; line-height: 2; margin: 0; text-align: justify; }
.legacy-honors { display: flex; flex-direction: column; gap: 2px; }
.lh-row { display: flex; justify-content: space-between; padding: 7px 3px; border-bottom: 1px dashed #e6f0e9; font-size: 13px; }
.lh-row:last-child { border-bottom: 0; }
.lh-row b { font-family: var(--font-num); font-size: 15px; color: var(--gold); }
.jersey-row { display: flex; flex-wrap: wrap; gap: 10px; }
.jersey-item { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.jersey-item span { font-size: 11px; font-weight: 700; }
.jersey-tip { font-size: 11.5px; color: var(--text-3); margin: 10px 0 0; text-align: center; }
.hof-card { display: flex; align-items: center; gap: 14px; }
.hof-card.in { background: linear-gradient(135deg, #fffdf3, #fff3d6); border-color: #e5c266; box-shadow: 0 0 0 2px rgba(229, 194, 102, .25); }
.hof-card.out { background: #f8faf9; }
.hof-badge { font-size: 38px; }
.hof-text { display: flex; flex-direction: column; }
.hof-text b { font-size: 16px; }
.hof-text span { font-size: 11.5px; color: var(--text-2); line-height: 1.7; }

/* 冬季转会窗 */
.ww-head { text-align: center; padding: 16px 10px 4px; }
.ww-badge {
  display: inline-block; background: linear-gradient(135deg, #7dd3fc, #38bdf8); color: #04364f;
  font-weight: 900; font-size: 13px; letter-spacing: 2px; border-radius: 99px; padding: 3px 16px;
}
.ww-title { font-size: 21px; font-weight: 900; margin-top: 10px; letter-spacing: 1px; }
.ww-sub { font-size: 11.5px; color: var(--text-3); margin-top: 4px; }

/* 音效开关 */
.sound-toggle {
  position: fixed; right: max(10px, calc(50vw - 270px)); bottom: calc(78px + var(--safe-b)); z-index: 60;
  width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--border-str);
  background: rgba(255, 255, 255, .92); backdrop-filter: blur(6px);
  display: grid; place-items: center; font-size: 15px; box-shadow: var(--shadow);
}
.sound-toggle.off { opacity: .5; }
.sound-toggle svg { width: 20px; height: 20px; }
.sound-toggle .sound-slash { display: none; }
.sound-toggle.off .sound-wave { display: none; }
.sound-toggle.off .sound-slash { display: block; }
/* 主菜单上移到右上角，避免压住功能卡 */
body.on-menu .sound-toggle { top: calc(14px + env(safe-area-inset-top, 0px)); bottom: auto; }
body.on-menu .sound-toggle { width: 32px; height: 32px; font-size: 14px; }
.db-toggle {
  position: fixed; left: max(10px, calc(50vw - 270px)); top: calc(14px + env(safe-area-inset-top, 0px)); z-index: 60;
  width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%;
  border: 1.5px solid var(--border-str); background: rgba(255,255,255,.94); color: #14432c;
  box-shadow: var(--shadow); font-size: 14px;
}
.db-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body:not(.on-menu) .db-toggle { display: none; }
@media (min-width: 720px) {
  body.on-menu .db-toggle { left: max(10px, calc(50vw - 410px)); }
  body.on-menu .sound-toggle { right: max(10px, calc(50vw - 410px)); }
}
/* 捏人流程布局密集，隐藏浮动按钮避免遮挡数据 */
body.on-dense .sound-toggle { display: none; }

/* 首页两个工具入口统一尺寸、位置和图形权重。 */
body.on-menu .db-toggle, body.on-menu .sound-toggle {
  top: calc(16px + env(safe-area-inset-top, 0px));
  bottom: auto;
  width: 44px; height: 44px;
  border-radius: 12px;
  border: 1px solid #c9dfcf;
  background: #fff;
  box-shadow: 0 5px 16px rgba(16, 60, 38, .10);
  color: #18543a;
  cursor: pointer;
}
body.on-menu .db-toggle svg, body.on-menu .sound-toggle svg { width: 22px; height: 22px; }
body.on-menu .sound-toggle .sound-slash { display: none; }
body.on-menu .sound-toggle.off .sound-wave { display: none; }
body.on-menu .sound-toggle.off .sound-slash { display: block; }
body.on-menu .sound-toggle.off { opacity: 1; background: #eef3ef; }

/* ============================================================
   球员数据库浏览器
   ============================================================ */

.db-stat { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 12px 0 8px; }
.db-stat > div {
  text-align: center; background: var(--card); border: 1px solid var(--border);
  border-radius: var(--r-sm); padding: 11px 4px; box-shadow: var(--shadow);
}
.db-stat b { display: block; font-family: var(--font-num); font-size: 20px; color: var(--grass-d); }
.db-stat span { font-size: 10.5px; color: var(--text-3); }
.db-desc { font-size: 11px; color: var(--text-3); text-align: center; margin-bottom: 12px; line-height: 1.7; }
.db-tabs { margin-bottom: 10px; }

.db-filter { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 9px; }
.db-filter select, .db-filter input {
  width: 100%; border: 1px solid var(--border-str); background: var(--card); border-radius: 8px;
  padding: 7px 8px; font-size: 11.5px; color: var(--text); font-family: inherit;
}
.db-count { font-size: 11.5px; color: var(--text-2); margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
.db-count b { color: var(--grass-d); font-family: var(--font-num); font-size: 14px; }
.db-clear { margin-left: auto; border: 1px solid var(--border-str); background: var(--card); border-radius: 99px; padding: 3px 11px; font-size: 11px; color: var(--text-2); }

.db-list { display: flex; flex-direction: column; gap: 5px; }
.db-row {
  display: flex; align-items: center; gap: 9px; background: var(--card);
  border: 1px solid var(--border); border-radius: 10px; padding: 8px 11px; transition: .14s;
}
.db-row:active { background: #f6fbf8; transform: scale(.99); }
.db-row.flat { background: #fbfdfc; }
.dbr-ovr {
  font-family: var(--font-num); font-size: 16px; font-weight: 700; color: var(--grass-d);
  width: 28px; text-align: center; flex: none;
}
.dbr-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dbr-main b { font-size: 13.5px; display: flex; align-items: center; gap: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dbr-main span { font-size: 10.5px; color: var(--text-3); display: flex; align-items: center; gap: 4px; }
.dbr-club { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-2); max-width: 96px; }
.dbr-club span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dbr-tag { font-size: 10px; color: var(--text-3); white-space: nowrap; }
.dbr-arrow { color: #b6c6d4; font-size: 17px; }
.db-flag { width: 15px; height: 11px; object-fit: cover; border-radius: 2px; flex: none; }
.db-empty { text-align: center; color: var(--text-3); font-size: 12.5px; padding: 26px; }

.db-cards { display: grid; grid-template-columns: 1fr; gap: 9px; }
.db-cards-2 { grid-template-columns: 1fr 1fr; }
.db-card {
  background: var(--card); border: 1px solid var(--border); border-radius: var(--r);
  padding: 12px 14px; box-shadow: var(--shadow); transition: .14s;
}
.db-card:active { transform: scale(.985); }
.db-card .dbc-head { display: flex; align-items: baseline; gap: 7px; }
.db-card .dbc-head b { font-size: 15.5px; }
.db-card .dbc-head span { font-size: 10px; color: var(--text-3); letter-spacing: .5px; }
.db-card .dbc-nums { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 9px; }
.db-card .dbc-nums > div { text-align: center; }
.db-card .dbc-nums b { display: block; font-family: var(--font-num); font-size: 16px; color: var(--navy); }
.db-card .dbc-nums span { font-size: 9.5px; color: var(--text-3); }
.db-card .dbc-stars { margin-top: 8px; font-size: 11px; color: var(--text-2); }
.db-card.sm { display: flex; align-items: center; gap: 8px; padding: 9px 11px; }
.db-card.sm div { display: flex; flex-direction: column; min-width: 0; }
.db-card.sm b { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.db-card.sm span { font-size: 10px; color: var(--text-3); }
.db-sec { font-size: 12px; font-weight: 800; color: var(--navy); margin: 14px 0 7px; letter-spacing: .5px; }
.db-back {
  border: 1px solid var(--border-str); background: var(--card); border-radius: 99px;
  padding: 5px 13px; font-size: 12px; font-weight: 700; color: var(--text-2); margin-bottom: 10px;
}
.db-struct { margin-top: 9px; font-size: 11.5px; color: var(--text-2); text-align: center; }
.db-note { font-size: 11.5px; color: var(--text-3); line-height: 1.8; margin: 8px 2px; }
.db-note code { background: #eef5f0; padding: 1px 5px; border-radius: 4px; font-size: 11px; }

.db-rank { display: flex; flex-direction: column; gap: 3px; }
.db-rank-row { display: flex; align-items: center; gap: 9px; padding: 6px 3px; border-bottom: 1px dashed #e6f0e9; font-size: 12.5px; }
.db-rank-row i {
  font-style: normal; width: 19px; height: 19px; border-radius: 6px; display: grid; place-items: center;
  background: var(--bg2); font-size: 10.5px; font-weight: 800; color: var(--text-2); flex: none;
}
.db-rank-row b { flex: none; }
.db-rank-row span { font-size: 11px; color: var(--text-3); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.db-rank-row em { font-style: normal; font-family: var(--font-num); font-size: 12px; color: var(--grass-d); }

.db-table .card-title em { font-style: normal; font-size: 11.5px; color: var(--text-3); font-weight: 600; }
.db-table .db-rows { float: right; font-family: var(--font-num); font-size: 12px; color: var(--grass-d); }
.db-tdesc { font-size: 11.5px; color: var(--text-2); margin: 6px 0 9px; line-height: 1.7; }
.db-fields { display: flex; flex-wrap: wrap; gap: 5px; }
.db-field {
  display: inline-flex; flex-direction: column; background: #f5f9f6; border: 1px solid #e0ebe3;
  border-radius: 7px; padding: 3px 8px; font-size: 10.5px; font-family: var(--font-num); color: var(--navy);
}
.db-field i { font-style: normal; font-size: 9px; color: var(--text-3); font-family: inherit; }
.db-field.ref { background: #eef4fb; border-color: #d5e4f5; color: #1d4e8f; }

/* 球员详情 */
.dbt-hero {
  display: flex; align-items: center; gap: 12px; padding: 12px;
  background: linear-gradient(135deg, #0a5834, #0f7a46); border-radius: var(--r);
  color: #fff; margin: 12px 0; box-shadow: var(--shadow);
}
.dbt-av { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; background: rgba(255, 255, 255, .2); flex: none; }
.dbt-av.ph { display: grid; place-items: center; font-size: 22px; }
.dbt-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dbt-info b { font-size: 17px; }
.dbt-info span { font-size: 11px; opacity: .9; display: flex; align-items: center; gap: 4px; }
.dbt-ovr { text-align: center; font-family: var(--font-num); font-size: 30px; font-weight: 700; line-height: 1; }
.dbt-ovr span { display: block; font-size: 12px; opacity: .85; font-family: inherit; }
.db-fc { display: flex; gap: 6px; margin-top: 10px; }
.db-fc-i {
  flex: 1; text-align: center; background: #f6faf7; border: 1px solid #e3ede7;
  border-radius: 8px; padding: 7px 2px;
}
.db-fc-i b { display: block; font-family: var(--font-num); font-size: 14px; color: var(--navy); }
.db-fc-i span { font-size: 9.5px; color: var(--text-3); }
.db-fc-i.peak { background: #fff8e8; border-color: #eddcae; }
.db-fc-i.peak b { color: #a16207; }
.db-fc-tip { font-size: 10.5px; color: var(--text-3); margin-top: 7px; text-align: center; }
.db-sum { margin-top: 10px; font-size: 11.5px; color: var(--text-2); text-align: center; }
.db-sum b { font-family: var(--font-num); color: var(--grass-d); font-size: 14px; }

.db-tbl { overflow-x: auto; margin: 0 -4px; }
.db-tbl table { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.db-tbl th { font-size: 10.5px; color: var(--text-3); font-weight: 700; padding: 5px 4px; text-align: center; border-bottom: 1px solid var(--border); white-space: nowrap; }
.db-tbl td { padding: 6px 4px; text-align: center; border-bottom: 1px dashed #eef4f0; font-family: var(--font-num); }
.db-tbl td.l { font-family: inherit; font-size: 11px; text-align: left; }
.db-tbl tbody tr:last-child td { border-bottom: 0; }
.db-tbl td b { color: var(--grass-d); }

.trait-grid { display: flex; flex-direction: column; gap: 5px; }
.trait-row { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.trait-row.key { background: #f7fbf8; border-radius: 7px; padding: 3px 6px; margin: 0 -6px; }
.tr-name { width: 56px; color: var(--text-2); flex: none; }
.tr-bar { flex: 1; height: 7px; background: #eef4f0; border-radius: 99px; overflow: hidden; }
.tr-bar i { display: block; height: 100%; background: linear-gradient(90deg, #4bbf80, #0f7a46); border-radius: 99px; }
.trait-row b { width: 26px; text-align: right; font-family: var(--font-num); font-size: 13px; }
.trait-row em { width: 30px; font-style: normal; font-size: 10px; color: var(--text-3); }
.t-s { color: #7c3aed; } .t-a { color: #15803d; } .t-b { color: #0369a1; }
.t-c { color: var(--text-2); } .t-d { color: #c2410c; } .t-e { color: #94a3b8; }

.react-list { display: flex; flex-direction: column; gap: 9px; }
.react-row { background: #f8fbf9; border: 1px solid #e5efe9; border-radius: 10px; padding: 10px 12px; }
.rr-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rr-head b { font-size: 13px; }
.rr-stance { font-size: 11px; font-weight: 800; border-radius: 99px; padding: 2px 9px; font-family: var(--font-num); }
.rr-stance.s-accept { background: #dcfce7; color: #15803d; }
.rr-stance.s-neutral { background: #eef2f6; color: #475569; }
.rr-stance.s-refuse { background: #ffede0; color: #c2410c; }
.rr-quote { font-size: 12.5px; color: var(--text); margin-top: 7px; line-height: 1.8; }
.rr-why { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.rr-why span { font-size: 10px; background: #eef4f0; border-radius: 5px; padding: 2px 7px; color: var(--text-2); font-family: var(--font-num); }
.club-hero { display: flex; align-items: center; gap: 12px; }
.club-hero div { display: flex; flex-direction: column; }
.club-hero b { font-size: 17px; }
.club-hero span { font-size: 11.5px; color: var(--text-3); }
.honor-list { display: flex; flex-direction: column; gap: 3px; }
.honor-row { display: flex; align-items: center; justify-content: space-between; padding: 7px 3px; border-bottom: 1px dashed #e6f0e9; font-size: 12.5px; }
.honor-row:last-child { border-bottom: 0; }
.honor-row span { font-size: 11px; color: var(--text-3); }

/* 滚动条 */
html { scrollbar-width: thin; scrollbar-color: #789b88 transparent; }
::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-thumb { background: #789b88; border-radius: 9px; }
::-webkit-scrollbar-thumb:hover { background: #557b67; }
::-webkit-scrollbar-track { background: transparent; }
.intl-calendar{margin-top:10px;border:1px solid #cfe3d6;border-radius:12px;padding:12px 14px;background:#eef6f0;display:grid;grid-template-columns:1fr auto;gap:2px 12px}.intl-calendar span{grid-column:1/-1;font-size:10px;color:var(--grass-d);font-weight:800}.intl-calendar b{color:var(--text);font-size:13px}.intl-calendar i{font-style:normal;color:var(--text-2);font-size:11px;text-align:right}.intl-progress{height:6px;background:#dce9e0;border-radius:9px;overflow:hidden;margin-bottom:14px}.intl-progress i{display:block;height:100%;background:linear-gradient(90deg,#0d7b49,#ddad3d)}.intl-match{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px}.intl-match>div{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}.intl-match strong{font:800 30px/1 var(--font-num);font-variant-numeric:tabular-nums}.intl-match strong em{font-style:normal;opacity:.35;margin:0 6px}.intl-note{text-align:center;color:var(--text-2);font-size:12px}
.season-calendar{display:grid;grid-template-columns:repeat(6,minmax(78px,1fr));gap:7px;overflow-x:auto;padding:2px 1px 12px;scroll-snap-type:x mandatory}.season-calendar>div{scroll-snap-align:start;background:#fff;border:1px solid var(--border);border-radius:11px;padding:9px 10px;min-width:88px;display:flex;flex-direction:column}.season-calendar b{font:750 13px/1.3 var(--font-num)}.season-calendar span{font-size:10px;color:var(--text-3);white-space:nowrap}.season-calendar .intl{border-color:#d9c27a;background:#fffaf0}.season-calendar .intl.done{background:#edf8f1;border-color:#8ec5a3}.season-calendar .intl.done:after{content:'已完成';font-size:9px;color:#087746;margin-top:3px}
.ui-icon{width:18px;height:18px;object-fit:contain;vertical-align:-4px;margin-right:6px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))}.feed-icon{width:16px;height:16px}
.gen-avatar{position:relative;overflow:hidden;background:linear-gradient(145deg,#dcebe1,#a9cbb6)!important;color:transparent!important}.gen-avatar:before{content:"";position:absolute;width:46%;height:48%;left:27%;top:18%;border-radius:48% 48% 44% 44%;background:var(--skin);box-shadow:0 1px 0 rgba(0,0,0,.08)}.gen-avatar:after{content:"";position:absolute;width:76%;height:43%;left:12%;bottom:-18%;border-radius:50% 50% 0 0;background:#145d40}.gen-avatar i{position:absolute;z-index:2;width:48%;height:23%;left:26%;top:12%;border-radius:60% 60% 30% 25%;background:var(--hair);transform:rotate(-4deg)}.gen-avatar b{position:absolute;z-index:3;left:38%;top:39%;width:24%;height:3%;border-radius:9px;background:rgba(60,31,21,.55)}
/* ---------- unified career narrative shell ---------- */
:root {
  --career-bg:#edf3ee;--surface-1:#ffffff;--surface-2:#f7fbf8;
  --line-soft:rgba(222,236,226,.12);--career-gold:#d4b35f;--career-danger:#e45f5f;
  --sport-number:"Oswald","Bahnschrift Condensed","DIN Alternate","Arial Narrow",system-ui,sans-serif;
}
#screen-career-shell{padding:0;max-width:none;background:var(--career-bg)}
.career-shell{min-height:100dvh;display:grid;grid-template-columns:264px minmax(0,1fr);color:#eef7f1;background:radial-gradient(circle at 72% -10%,rgba(36,105,75,.3),transparent 42%),var(--career-bg)}
.career-identity{position:sticky;top:0;height:100dvh;padding:42px 28px;background:linear-gradient(180deg,#123326,#091a14);border-right:1px solid var(--line-soft)}
.identity-kicker,.career-context span{font-size:11px;letter-spacing:.18em;color:#8eac9d}
.identity-ovr{margin:28px 0 18px;font-family:var(--sport-number);font-variant-numeric:tabular-nums}
.identity-ovr b{display:block;font-size:72px;line-height:.8}.identity-ovr span{font-size:12px;color:#9fb4aa}
.identity-status{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line-soft);font-size:12px}.identity-status span{color:#82998e}
.career-main{min-width:0;padding:32px clamp(20px,4vw,64px) 104px}.career-context{display:flex;justify-content:space-between;align-items:end;padding-bottom:18px;border-bottom:1px solid var(--line-soft)}
.career-section-body{max-width:1180px;margin:24px auto}.career-nav{position:fixed;z-index:40;left:264px;right:0;bottom:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:8px 18px calc(8px + env(safe-area-inset-bottom));background:rgba(7,19,15,.92);backdrop-filter:blur(18px);border-top:1px solid var(--line-soft)}
.career-nav button{min-height:48px;border:0;border-radius:12px;background:transparent;color:#8fa69a;font-weight:700}.career-nav button.is-active{color:#f3d88e;background:rgba(212,179,95,.12)}
.ovr-tier--pro{color:#77dba1}.ovr-tier--star{color:#72d8ef}.ovr-tier--elite{color:#d7b8ff}.ovr-tier--mythic{color:#f0ce70;text-shadow:0 0 24px rgba(240,206,112,.45)}
@media (max-width:760px){.career-shell{display:block;padding-bottom:calc(68px + env(safe-area-inset-bottom))}.career-identity{position:static;height:auto;padding:18px 20px;display:grid;grid-template-columns:auto 1fr;gap:8px 18px}.identity-ovr{grid-row:1/4;margin:0}.identity-ovr b{font-size:48px}.identity-status{display:none}.career-main{padding:18px 16px 32px}.career-nav{left:0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.career-chapter{position:relative;display:grid;grid-template-columns:minmax(280px,.86fr) minmax(340px,1.14fr);min-height:480px;overflow:hidden;border:1px solid var(--line-soft);border-radius:28px;background:var(--surface-1);box-shadow:0 28px 70px rgba(0,0,0,.28)}
.career-chapter>img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04)}.chapter-copy{padding:clamp(26px,4vw,58px);align-self:center}.chapter-kicker{color:#b6c9bf;text-transform:uppercase;letter-spacing:.14em;font-size:11px}.chapter-copy h1{font-size:clamp(30px,4vw,52px);line-height:1.06;margin:12px 0 16px}.chapter-copy>p{color:#a9beb3;line-height:1.75}.chapter-choices{display:grid;gap:10px;margin-top:28px}.chapter-choice{text-align:left;padding:15px 17px;border:1px solid var(--line-soft);border-radius:15px;background:rgba(255,255,255,.035);color:#edf5f0;transition:.16s ease}.chapter-choice:hover{transform:translateY(-1px);border-color:rgba(212,179,95,.45);background:rgba(212,179,95,.08)}.chapter-choice:active{transform:scale(.99)}.chapter-choice span,.chapter-choice small{display:block;color:#93aa9e;margin-top:5px}.career-consequence,.storyline-strip article{margin-top:16px;padding:18px 20px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line-soft)}.career-consequence span,.storyline-strip span{display:block;font-size:10px;letter-spacing:.12em;color:#8ea398}.career-consequence p{margin:8px 0 0;color:#a9beb3}.storyline-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.storyline-strip article{margin-top:0}.storyline-strip b,.storyline-strip small{display:block;margin-top:6px}.storyline-strip small{color:#8ea398}
@media(max-width:760px){.career-chapter{display:block;min-height:0;border-radius:20px}.career-chapter>img{height:230px}.chapter-copy{padding:24px 20px}.storyline-strip{grid-template-columns:1fr}}
.competition-stage{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;margin-bottom:14px;border-radius:16px;background:linear-gradient(90deg,#173d2d,#10281f);border:1px solid var(--line-soft)}.competition-stage span{color:#91aa9d}.competition-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:16px}.match-trail,.match-trail-detail,.match-trail-empty{padding:22px;border-radius:20px;background:var(--surface-1);border:1px solid var(--line-soft)}.trail-group+ .trail-group{margin-top:24px}.trail-group header{display:flex;justify-content:space-between;margin-bottom:12px}.trail-group header span{color:#81998d;font-size:12px}.result-dots{display:flex;flex-wrap:wrap;gap:9px}.result-dot{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.14);color:#fff;font-family:var(--sport-number);font-weight:800;cursor:pointer}.result-dot--w{background:#178855}.result-dot--d{background:#267baa}.result-dot--l{background:#bc444a}.result-dot--unplayed{background:#34433d;color:#9aaca3}.result-dot:focus-visible{outline:3px solid var(--career-gold);outline-offset:3px}.match-trail-detail>span,.match-trail-empty span{display:block;color:#8fa69a}.match-trail-detail>strong{display:block;margin:14px 0;font-family:var(--sport-number);font-size:58px}.match-trail-detail>div{display:grid;grid-template-columns:repeat(4,auto);gap:7px}.match-trail-detail small{grid-row:2;color:#81998d}.match-trail-empty b{display:block;margin-bottom:8px}.competition-primary{display:block;margin:20px 0 0 auto}.btn-primary:active{transform:translateY(1px) scale(.985)}.btn-primary[disabled]{opacity:.5;filter:saturate(.25);cursor:not-allowed}
@media(max-width:760px){.competition-layout{grid-template-columns:1fr}.result-dot{width:38px;height:38px}.competition-primary{position:sticky;bottom:76px;width:100%}}
.section-intro{margin-bottom:22px}.section-intro span{font-size:11px;letter-spacing:.17em;color:#8da598}.section-intro h1{font-size:clamp(28px,4vw,46px);margin:8px 0}.section-intro p{color:#94aa9f}.squad-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px}.pitch-xi{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:32px;border-radius:28px;background:linear-gradient(160deg,rgba(29,103,67,.72),rgba(9,39,27,.92)),repeating-linear-gradient(90deg,transparent 0 24.8%,rgba(255,255,255,.05) 25% 25.2%);border:1px solid rgba(184,228,201,.18)}.xi-player{min-height:104px;padding:15px;border-radius:15px;background:rgba(5,22,15,.72);border:1px solid rgba(255,255,255,.12)}.xi-player.is-user{grid-column:span 2;border-color:var(--career-gold);box-shadow:0 0 28px rgba(212,179,95,.2)}.xi-player span,.xi-player small{display:block;color:#92aa9e}.xi-player b{display:block;margin:12px 0 5px}.role-panel,.body-card,.contract-card,.offfield-card,.academy-card{padding:24px;border-radius:22px;background:var(--surface-1);border:1px solid var(--line-soft)}.competitor-list>div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line-soft)}.used-note{color:#8ca296}.player-dashboard{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.offfield-card,.academy-card{grid-column:span 2}.body-meters{display:grid;gap:14px}.body-meters label{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px}.body-meters i{grid-column:1/-1;height:7px;border-radius:8px;background:linear-gradient(90deg,#38b77b var(--value),rgba(255,255,255,.08) var(--value))}.offfield-card>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.offfield-card button{padding:15px;text-align:left;border:1px solid var(--line-soft);border-radius:14px;background:rgba(255,255,255,.035);color:#edf5f0}.offfield-card button span{display:block;margin-top:5px;color:#8da397}
@media(max-width:760px){.squad-layout,.player-dashboard{grid-template-columns:1fr}.pitch-xi{grid-template-columns:repeat(2,1fr);padding:18px}.offfield-card,.academy-card{grid-column:auto}.offfield-card>div{grid-template-columns:1fr}}

/* v15-W-AB · 球员账户、中国青训与国家队阵容 */
.identity-balance b{color:#f5d981}
.squad-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 18px;padding:5px;border:1px solid var(--line-soft);border-radius:16px;background:#fff}
.squad-tabs button{border:0;border-radius:11px;background:transparent;color:var(--career-muted);font-weight:800}
.squad-tabs button.is-active{background:var(--career-green-d);color:#fff}
.national-xi{grid-template-columns:repeat(4,1fr)}
.finance-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.finance-summary>div{padding:14px;border-radius:14px;background:#eef6f0}.finance-summary b,.finance-summary span{display:block}.finance-summary span{color:var(--career-muted);font-size:12px}
.service-grid,.agent-goals{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.service-grid button,.agent-goals button,.treatment-box button{padding:12px;border:1px solid var(--line-soft);border-radius:12px;background:#f8faf7;color:var(--career-ink);text-align:left}
.service-grid button b,.service-grid button span{display:block}.service-grid button span{margin-top:4px;color:var(--career-muted);font-size:12px}
.finance-ledger{display:grid;gap:7px;margin-top:14px}.finance-row{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:10px 0;border-top:1px solid var(--line-soft)}.finance-row small{grid-column:1/-1;color:var(--career-muted)}.finance-row .in{color:#188457}.finance-row .out{color:#b3483e}
.treatment-box{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.treatment-box>b{width:100%}
.training-intensity{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.training-intensity button{padding:12px;border:1px solid var(--line-soft);border-radius:12px;background:#fff;text-align:left}.training-intensity button b,.training-intensity button span{display:block}.training-intensity button span{margin-top:4px;color:var(--career-muted);font-size:11px}.training-intensity button.is-active{border-color:#21845b;background:#e9f5ed}
.youth-tier-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.youth-tier{padding:16px;border:1px solid var(--line-soft);border-radius:15px;background:#f8fbf8;color:var(--career-ink);text-align:left}.youth-tier b,.youth-tier span,.youth-tier em,.youth-tier i{display:block}.youth-tier span,.youth-tier em{margin-top:5px;color:var(--career-muted);font-style:normal}.youth-tier i{margin-top:10px;color:#1f8058;font-style:normal;font-weight:800}.youth-report{margin:8px 0 0;color:var(--career-muted)}
@media(max-width:760px){.national-xi{grid-template-columns:repeat(2,1fr)}.service-grid,.agent-goals,.youth-tier-grid,.training-intensity{grid-template-columns:1fr}.squad-tabs{position:sticky;top:0;z-index:3}.finance-card{overflow:hidden}.finance-row{min-width:0}}
.annual-cover{position:relative;min-height:390px;display:flex;align-items:end;overflow:hidden;border-radius:28px;background:#0b1e17;color:#fff}.annual-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62}.annual-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 12%,rgba(5,17,12,.94) 88%)}.annual-cover>div{position:relative;z-index:1;padding:clamp(24px,5vw,62px);max-width:760px}.annual-cover h1{font-size:clamp(34px,5vw,62px);margin:10px 0}.annual-cover p{line-height:1.75;color:#d3dfd8}.annual-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.annual-stats>div,.annual-grid>section,.archive-season{padding:22px;border-radius:18px;background:var(--surface-1);border:1px solid var(--line-soft)}.annual-stats b{display:block;font:800 38px/1 var(--sport-number);font-variant-numeric:tabular-nums}.annual-stats span,.archive-season span{color:#8ba095}.annual-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.ballon-list span{display:block;padding:7px 0;border-bottom:1px solid var(--line-soft)}.archive-list{display:grid;gap:12px}.archive-season b,.archive-season p{display:block;margin-top:8px}.legacy-incomplete{border-style:dashed}.is-success{color:#65d89b}.is-warning{color:#e6b868}
@media(max-width:760px){.annual-stats{grid-template-columns:repeat(2,1fr)}.annual-grid{grid-template-columns:1fr}.annual-cover{min-height:440px}}
.boot-logo img,.sound-toggle img,.fc-icon img{width:100%;height:100%;object-fit:contain}.sound-toggle img{width:22px;height:22px}.ui-icon{width:1.1em;height:1.1em;display:inline-block;vertical-align:-.18em;object-fit:contain}.sport-number,.review-stats b,.mr-score,.ml-score{font-family:var(--sport-number);font-variant-numeric:tabular-nums}

/* Desktop career shell: opt out of the legacy mobile app frame. */
body.on-career-shell{overflow-x:hidden}
body.on-career-shell #app{width:100%;max-width:none;margin:0;box-shadow:none}
.identity-status b{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;text-align:right}
.identity-flag{width:22px;height:15px;object-fit:contain;border-radius:2px}
.competition-layout>*{min-width:0}
.match-trail,.match-trail-detail,.match-trail-empty{min-width:0}
.match-trail-detail>strong{font-size:clamp(40px,5vw,58px)}
.match-trail-detail>div{grid-template-columns:repeat(4,minmax(0,1fr))}
.archive-intro h1{max-width:18em;font-size:clamp(30px,3.6vw,52px);line-height:1.14;overflow-wrap:normal;word-break:keep-all}
@media (max-width:760px){
  .career-main,.career-section-body,.competition-layout{width:100%;max-width:100%;box-sizing:border-box}
  .archive-intro h1{font-size:clamp(28px,10vw,42px);word-break:normal}
}

/* Restore the established light football canvas for the expanded career pages. */
body.on-career-shell{background:var(--bg);overflow-x:hidden}
body.on-career-shell #app{width:100%;max-width:1120px;margin:0 auto;background:var(--bg);box-shadow:0 0 70px rgba(8,52,31,.16)}
.career-shell{display:grid;grid-template-columns:1fr;min-height:100dvh;color:var(--text);background:var(--bg)}
.career-identity{position:relative;top:auto;height:auto;padding:16px 28px;display:flex;align-items:center;gap:18px;background:linear-gradient(110deg,#126443,#0c5037);border:0;color:#fff}
.identity-kicker{display:none}.identity-ovr{margin:0;flex:none}.identity-ovr b{font-size:40px;line-height:1}.identity-ovr span{display:block;font-size:10px}.career-identity h2{margin:0;font-size:20px}.career-identity>p{margin:0;color:#d8eee3}.identity-status{border:0;padding:0;margin-left:auto;display:flex;align-items:center;gap:6px}.identity-status span{color:#c1dfcf}.identity-status b{color:#fff;white-space:nowrap}.career-identity .identity-status+.identity-status{margin-left:0}
.career-main{padding:24px 28px 104px;min-width:0}.career-context{padding-bottom:12px;border-color:var(--border)}.career-context span{color:var(--text-2)}.career-section-body{max-width:none;margin:18px auto;min-width:0}.career-nav{left:50%;right:auto;transform:translateX(-50%);width:min(100%,1120px);padding:7px 14px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-color:var(--border);box-shadow:0 -4px 20px rgba(5,48,27,.08)}.career-nav button{color:var(--text-2)}.career-nav button.is-active{color:var(--grass-d);background:var(--grass-x)}
.career-chapter{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);min-height:420px;background:#fff;border-color:var(--border);box-shadow:var(--shadow-lg)}.career-chapter>img{min-width:0;max-height:520px;object-fit:cover}.chapter-copy{min-width:0;padding:clamp(24px,3vw,42px)}.chapter-kicker,.section-intro span{color:var(--grass-d)}.chapter-copy h1{font-size:clamp(28px,3.2vw,42px);overflow-wrap:normal;word-break:normal}.chapter-copy>p,.section-intro p{color:var(--text-2)}.chapter-choice{background:#f7fbf8;border-color:var(--border);color:var(--text)}.chapter-choice:hover{background:#edf7f0}.chapter-choice span,.chapter-choice small{color:var(--text-2)}.career-consequence,.storyline-strip article{background:#fff;border-color:var(--border)}.career-consequence p,.storyline-strip small{color:var(--text-2)}
.competition-stage{background:#e7f4eb;border-color:var(--border)}.competition-stage span,.trail-group header span{color:var(--text-2)}.match-trail,.match-trail-detail,.match-trail-empty,.role-panel,.body-card,.contract-card,.offfield-card,.academy-card,.annual-stats>div,.annual-grid>section,.archive-season{background:#fff;border-color:var(--border);box-shadow:var(--shadow);color:var(--text)}.match-trail-detail>span,.match-trail-empty span,.match-trail-detail small,.used-note,.offfield-card button span,.archive-season span{color:var(--text-2)}.result-dot--unplayed{background:#e2ebe5;color:var(--text-2)}.section-intro h1{color:var(--text);font-size:clamp(27px,3.2vw,38px)}.xi-player{background:rgba(255,255,255,.92);border-color:#b9d8c5;color:var(--text)}.xi-player span,.xi-player small{color:var(--text-2)}.xi-player.is-user{background:#fff8e2;border-color:#d9ac47}.role-panel h2,.body-card h2,.contract-card h2,.offfield-card h2,.academy-card h2{color:var(--text)}.competitor-list>div{border-color:var(--border)}.offfield-card button{background:#f7fbf8;color:var(--text);border-color:var(--border)}.body-meters i{background:linear-gradient(90deg,#38b77b var(--value),#e5eee8 var(--value))}
.annual-cover{min-height:300px}.annual-cover>div{max-width:100%;padding:28px 32px}.annual-cover h1{font-size:clamp(28px,3.6vw,44px);line-height:1.18}.annual-stats b{color:var(--grass-d)}.annual-stats span,.ballon-list span{color:var(--text-2)}.annual-grid h2{font-size:18px;color:var(--grass-d)}.annual-grid p{color:var(--text)}
.career-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.career-archive-grid>.card{margin:0}.career-season-detail{margin-top:12px}.career-season-detail summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:700}.career-season-detail[open] summary{margin-bottom:14px}.career-season-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--text-2);font-size:12px}.career-season-review{margin:10px 0;color:var(--text-2);line-height:1.6}.career-season-honors{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.career-season-honors span{padding:4px 8px;border-radius:20px;background:#fff3d5;color:#77520a;font-size:11px}.career-archive-dots{display:flex;gap:5px;flex-wrap:wrap;margin-top:12px}.career-archive-dots i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 10px/1 var(--font-num)}.career-archive-dots .W{background:#16875a}.career-archive-dots .D{background:#86938c}.career-archive-dots .L{background:#c14936}.career-archive-dots .U{background:#b9c8bd}.career-archive-empty{color:var(--text-2)}
@media(max-width:760px){.career-identity{padding:12px 16px;gap:9px;flex-wrap:wrap}.identity-ovr b{font-size:33px}.career-identity h2{font-size:16px}.career-identity>p{font-size:11px}.career-identity .identity-status{display:none}.career-main{padding:16px 14px 94px}.career-chapter{display:block;min-height:0}.career-chapter>img{width:100%;height:200px}.chapter-copy{padding:20px}.career-archive-grid{grid-template-columns:1fr}.competition-layout,.squad-layout,.player-dashboard{grid-template-columns:minmax(0,1fr)}.pitch-xi{grid-template-columns:repeat(2,minmax(0,1fr))}.career-nav{width:100%}}
/* All expanded features fit the original 560px game frame. */
body.on-career-shell #app{max-width:560px}
.career-main{padding:18px 16px 94px}
.career-nav{width:min(100%,560px);padding:7px 8px calc(7px + env(safe-area-inset-bottom))}
.career-nav button{min-height:44px;font-size:12px}
.career-chapter{display:block;min-height:0}
.career-chapter>img{display:block;width:100%;height:220px;max-height:none;object-position:center 35%}
.chapter-copy{padding:22px}.chapter-copy h1{font-size:clamp(26px,6vw,34px)}
.storyline-strip,.competition-layout,.squad-layout,.player-dashboard,.career-archive-grid{grid-template-columns:minmax(0,1fr)}
.pitch-xi{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px}
.offfield-card,.academy-card{grid-column:auto}.offfield-card>div{grid-template-columns:1fr}
.annual-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.annual-grid{grid-template-columns:1fr}
.annual-cover{min-height:290px}.annual-cover h1{font-size:30px}
.career-identity{padding:14px 16px;flex-wrap:wrap;gap:8px 12px}.identity-ovr b{font-size:36px}.career-identity h2{font-size:18px}.career-identity>p{font-size:12px}.career-identity .identity-status{display:flex;flex:1 1 42%;margin:0;padding:4px 0;font-size:11px}.identity-status b{white-space:normal}

/* v12 浅色纸感主题：暖米白底 + 墨绿重点卡 + 白色内容卡（参考「绿茵生涯」）。 */
:root{
  --career-bg:#f3f2ec;--surface-1:#ffffff;--surface-2:#fbfaf6;
  --line-soft:#e8e5d9;--line-mid:#d7d3c3;
  --career-ink:#16342a;--career-muted:#5d7166;
  --career-gold:#b8912f;--career-green:#1b5e43;--career-green-d:#12402f;
  --sport-number:"Oswald","Bahnschrift SemiCondensed","Bahnschrift Condensed","DIN Alternate","Arial Narrow",system-ui,sans-serif;
}
body.on-career-shell{background:#e6e4da}
body.on-career-shell #app{max-width:560px;background:var(--career-bg);box-shadow:0 18px 52px rgba(24,42,32,.14)}
.career-shell{color:var(--career-ink);background:var(--career-bg)}
.career-identity{background:linear-gradient(110deg,#1b5e43,#123f2e);border-bottom:0;box-shadow:0 8px 22px rgba(15,48,34,.16)}
.identity-ovr b,.sport-number,.match-result-card strong,.match-detail-score strong,.match-trail-detail b{font-family:var(--sport-number);font-variant-numeric:tabular-nums;font-stretch:condensed;letter-spacing:-.02em}
.identity-ovr b{color:#f0d089;text-shadow:0 2px 0 rgba(90,64,10,.45)}
.career-main{padding:18px 16px 94px}.career-context{border-color:var(--line-mid)}.career-context span{color:var(--career-muted)}
.career-nav{width:min(100%,560px);background:rgba(255,255,255,.97);border-color:var(--line-soft);box-shadow:0 -4px 18px rgba(24,42,32,.07)}
.career-nav button{color:#8a9c92;transition:transform .14s ease,background .14s ease,color .14s ease}.career-nav button:hover{color:var(--career-green);background:#f1f6f2}.career-nav button:active{transform:translateY(2px) scale(.97)}.career-nav button.is-active{color:var(--career-green-d);background:#e5f1e9;box-shadow:inset 0 0 0 1px #cde2d5}
.career-chapter{background:#fff;border-color:var(--line-soft);box-shadow:0 16px 40px rgba(24,42,32,.10)}
.chapter-kicker,.section-intro span{color:var(--career-green)}.chapter-copy h1,.section-intro h1{color:var(--career-ink)}.chapter-copy>p,.section-intro p{color:var(--career-muted)}
.chapter-choice{position:relative;background:#f8faf7;border-color:var(--line-soft);color:var(--career-ink);overflow:hidden}.chapter-choice:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--career-green);opacity:.3}.chapter-choice:hover{transform:translateY(-2px);background:#eef6f0;border-color:#b6d6c3;box-shadow:0 8px 20px rgba(24,42,32,.08)}.chapter-choice:active{transform:translateY(1px) scale(.985)}.chapter-choice span,.chapter-choice small{color:var(--career-muted)}
.career-consequence,.storyline-strip article,.match-trail,.match-trail-detail,.match-trail-empty,.role-panel,.body-card,.contract-card,.offfield-card,.academy-card,.annual-stats>div,.annual-grid>section,.archive-season{background:#fff;border-color:var(--line-soft);color:var(--career-ink);box-shadow:0 6px 18px rgba(24,42,32,.06)}
.career-consequence p,.storyline-strip small,.match-trail-detail>span,.match-trail-empty span,.match-trail-detail small,.used-note,.offfield-card button span,.archive-season span,.trail-group header span{color:var(--career-muted)}
.competition-stage{background:#eaf4ed;border-color:#cfe3d6;box-shadow:none}.competition-stage span{color:#5f7a6d}.competition-stage b,.competition-stage strong{color:var(--career-green-d)}
.match-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}
.match-result-card{min-width:0;padding:12px;text-align:left;border:1px solid var(--line-soft);border-left-width:4px;border-radius:13px;background:#fff;color:var(--career-ink);box-shadow:0 4px 12px rgba(24,42,32,.05);transition:transform .14s ease,border-color .14s ease,background .14s ease}.match-result-card:hover{transform:translateY(-2px);background:#fbfdfb}.match-result-card:active{transform:translateY(1px) scale(.98)}.match-result-card.result-dot--w{border-left-color:#1c9c62}.match-result-card.result-dot--d{border-left-color:#3d8dc4}.match-result-card.result-dot--l{border-left-color:#cf5647}.match-result-card.result-dot--unplayed{border-left-color:#c9d3cc;opacity:.8}.match-result-card .match-crest{display:block;width:30px;height:30px;margin-bottom:8px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.14))}.match-opponent{display:block;min-height:2.5em;color:var(--career-muted);font-size:11px;line-height:1.25}.match-result-card strong{display:block;margin:7px 0 4px;font-size:24px;color:var(--career-ink)}.match-result-card small{display:block;color:#93a49a;font-size:9px}
.match-detail-score{display:grid!important;grid-template-columns:44px 1fr 44px!important;align-items:center;gap:12px!important;margin:15px 0}.match-detail-score strong{font-size:clamp(38px,5vw,58px);text-align:center;color:var(--career-green-d)}.detail-crest{display:block;width:44px;height:44px;filter:drop-shadow(0 4px 7px rgba(0,0,0,.16))}.match-trail-detail>strong{display:none}
.ev-context,.ev-foreshadow{display:grid;gap:4px;margin:10px 0;padding:10px 12px;border-left:3px solid var(--career-green);border-radius:8px;background:#eef8f2}.ev-foreshadow{border-left-color:var(--career-gold);background:#fdf6e5}.ev-context b,.ev-foreshadow b{font-size:11px}.ev-context span,.ev-foreshadow span{font-size:12px;color:var(--text-2);line-height:1.55}
.pitch-xi{background:linear-gradient(160deg,#2f8a5c,#1c6743),repeating-linear-gradient(90deg,transparent 0 24.8%,rgba(255,255,255,.07) 25% 25.2%);border:1px solid #a8cdb8;box-shadow:inset 0 0 60px rgba(9,48,31,.14)}.xi-player{background:rgba(255,255,255,.94);border-color:#bcd9c7;color:var(--career-ink)}.xi-player span,.xi-player small{color:var(--career-muted)}.xi-player.is-user{background:#fff8e2;border-color:#d9ac47;box-shadow:0 0 22px rgba(217,172,71,.28)}.role-panel h2,.body-card h2,.contract-card h2,.offfield-card h2,.academy-card h2{color:var(--career-ink)}.competitor-list>div{border-color:var(--line-soft)}.offfield-card button{background:#f8faf7;color:var(--career-ink);border-color:var(--line-soft);transition:.14s}.offfield-card button:not(:disabled):hover{background:#eef6f0;transform:translateY(-2px)}.body-meters i{background:linear-gradient(90deg,#2f9c67 var(--value),#e5eee8 var(--value))}
.btn,.chapter-choice,.match-result-card,.offfield-card button{-webkit-tap-highlight-color:transparent}.btn-primary{position:relative;background:linear-gradient(90deg,#1b6b4a,#23845b);color:#fff;box-shadow:0 8px 20px rgba(23,86,60,.22);transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.btn-primary:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 12px 26px rgba(23,86,60,.28)}.btn-primary:active:not(:disabled){transform:translateY(2px) scale(.98)}.is-command-pending{color:transparent!important;pointer-events:none}.is-command-pending:after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:command-spin .7s linear infinite}.is-command-success{box-shadow:0 0 0 3px rgba(35,132,91,.18),0 12px 26px rgba(23,86,60,.26)}@keyframes command-spin{to{transform:rotate(360deg)}}
.career-command-status{position:fixed;z-index:80;left:50%;bottom:84px;transform:translate(-50%,12px);padding:9px 14px;border:1px solid var(--line-mid);border-radius:999px;background:rgba(255,255,255,.98);color:var(--career-ink);font-size:12px;box-shadow:0 8px 22px rgba(24,42,32,.14);opacity:0;pointer-events:none;transition:.18s}.career-command-status.is-visible{opacity:1;transform:translate(-50%,0)}.career-command-status.is-command-success{border-color:#8ec5a3;color:#0f6b45}.career-command-status.is-command-error{border-color:#e6a9a2;color:#b33a2c}
.chapter-choice.is-selected,.ev-choice.selected{border-color:#2f9c67!important;background:linear-gradient(135deg,#e2f3e8,#d2ecdd)!important;box-shadow:inset 4px 0 0 #2f9c67,0 0 0 2px rgba(47,156,103,.14),0 10px 22px rgba(24,42,32,.1)!important}.chapter-choice.is-selected:before{opacity:1;width:5px}.choice-feedback{display:inline-flex!important;align-items:center;justify-content:center;width:max-content;margin-top:10px;padding:4px 9px;border-radius:999px;background:#2f9c67;color:#fff!important;font:800 11px/1.2 var(--font-ui);font-style:normal}.choice-live-status,.offseason-choice-status{margin-top:12px;padding:9px 12px;border:1px solid #cfe3d6;border-radius:10px;background:#f1f8f3;color:#2a4a3a;font-size:12px}.choice-live-status:not(.is-visible){opacity:.74}.offseason-confirm-bar{position:sticky;bottom:-1px;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px -18px -18px;padding:13px 18px calc(13px + env(safe-area-inset-bottom));border-top:1px solid var(--line-mid);background:rgba(255,255,255,.97);box-shadow:0 -10px 26px rgba(24,42,32,.08);backdrop-filter:blur(12px)}.offseason-confirm-bar span{color:var(--career-muted);font-size:12px}.ev-choice[aria-pressed="true"]{padding-right:100px}.ev-choice:focus-visible,.chapter-choice:focus-visible{outline:3px solid var(--career-gold);outline-offset:3px}
#screen-review .annual-stats>div,#screen-review .annual-grid>section{background:#fff;border-color:var(--line-soft);color:var(--career-ink);box-shadow:0 6px 18px rgba(24,42,32,.06)}#screen-review .annual-stats b,#screen-review .annual-grid h2{color:var(--career-green-d)}#screen-review .annual-stats span,#screen-review .annual-grid p{color:var(--career-muted)}#screen-review .annual-grid .is-warning{color:#8a5a12}#screen-review .annual-grid .is-success{color:#0f7a46}
.career-shell .card{background:#fff;border-color:var(--line-soft);color:var(--career-ink)}.career-shell .card .card-title,.career-shell .season-row b,.career-shell .career-national b{color:var(--career-green-d)}.career-shell .card p,.career-shell .season-row>span,.career-shell .career-archive-empty{color:var(--career-muted)}.career-shell .season-row{border-color:var(--line-soft)}
.modal-box .offseason-choice-status{background:#f1f8f3;border-color:#cfe3d6;color:#2a4a3a}
@media(max-width:760px){body.on-career-shell #app{max-width:560px}.career-main{padding:16px 14px 94px}.career-nav{width:100%}.match-trail{padding:14px}.match-results{grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px}.match-result-card{padding:10px;border-left-width:3px}.match-result-card .match-crest{width:26px;height:26px;margin-bottom:6px}.match-opponent{font-size:10.5px}.match-result-card strong{font-size:20px;margin:6px 0 3px}}

/* ============ 赛季进程页（浅色纸感 · 轨迹点阵） ============ */
.sp-wrap{display:grid;gap:14px}
.sp-card{background:#fff;border:1px solid var(--line-soft);color:var(--career-ink);border-radius:16px;padding:18px;box-shadow:0 6px 18px rgba(24,42,32,.06)}
.sp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.sp-head h2{margin:3px 0 0;font-size:17px;font-weight:800;color:var(--career-ink);font-family:var(--font-display)}
.sp-eyebrow{display:block;font-size:10px;letter-spacing:1.4px;color:var(--career-green);font-weight:700;text-transform:uppercase}
.sp-pct{text-align:right;flex-shrink:0}
.sp-pct b{display:block;font-size:26px;font-weight:800;color:var(--career-green-d);font-family:var(--sport-number);line-height:1}
.sp-pct span{font-size:11px;color:var(--career-muted)}
.sp-track{position:relative;height:7px;border-radius:99px;background:#eceee6;overflow:hidden;margin-bottom:16px}
.sp-track-fill{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#1b6b4a,#42b882)}
.sp-phases{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:16px}
.sp-phase{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:11px 8px;border-radius:11px;background:#f6f5ef;border:1px solid var(--line-soft);color:#5d7166;font-weight:700;font-size:12px}
.sp-phase b{font-size:12px;font-weight:800;color:inherit}
.sp-phase span{font-size:10px;color:inherit;opacity:.7;font-weight:600}
.sp-dot{display:block;width:7px;height:7px;border-radius:50%;background:#c3ccbf;flex:none}
.sp-phase.done{background:#eef6f0;border-color:#cfe3d6;color:#3d6b52}
.sp-phase.done .sp-dot{background:#2f9c67}
.sp-phase.now{background:linear-gradient(110deg,#1b5e43,#12402f);border-color:#12402f;color:#fff;box-shadow:0 8px 18px rgba(20,64,47,.22)}
.sp-phase.now .sp-dot{background:#8ff0b8}
.sp-phase.now b{color:#fff}
.sp-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.sp-stat{text-align:center;padding:13px 6px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-soft)}
.sp-stat b{display:block;font-size:20px;font-weight:800;color:var(--career-green-d);font-family:var(--font-num);font-variant-numeric:tabular-nums}
.sp-stat span{font-size:10px;color:var(--career-muted)}
.sp-legend{display:flex;gap:11px;font-size:11px;font-weight:700}
.sp-lg-w{color:#1c8a58}.sp-lg-d{color:#2f7fb5}.sp-lg-l{color:#c1493a}
.sp-trail{display:flex;flex-wrap:wrap;gap:6px}
.sp-dot-r{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;font-style:normal;font-size:10px;font-weight:800;font-family:var(--font-num)}
.sp-r-w{background:#e4f4ea;color:#1c8a58;border:1px solid #bfe2cd}
.sp-r-d{background:#e7f1f8;color:#2f7fb5;border:1px solid #c2dcee}
.sp-r-l{background:#fbe9e6;color:#c1493a;border:1px solid #f0c9c3}
.sp-comps{display:grid;gap:10px}
.sp-comp{display:flex;align-items:center;gap:14px;padding:13px 14px;border-radius:13px;background:var(--surface-2);border:1px solid var(--line-soft)}
.sp-comp img{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(24,42,32,.14))}
.sp-comp-ic{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:var(--career-green);flex-shrink:0}
.sp-comp-main{flex:1;min-width:0}
.sp-comp-main b{display:block;font-size:14px;color:var(--career-ink)}
.sp-comp-status{display:inline-block;margin-top:3px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px}
.sp-live{background:#e7f1f8;color:#2f7fb5}
.sp-win{background:#e4f4ea;color:#1c8a58}
.sp-out{background:#fbe9e6;color:#c1493a}
.sp-idle{background:#eceae1;color:#8b9c92}
.sp-comp-meta{text-align:right;flex-shrink:0;min-width:46px}
.sp-comp-meta b{display:block;font-size:15px;color:var(--career-green-d);font-family:var(--font-num);font-variant-numeric:tabular-nums}
.sp-comp-meta span{font-size:10px;color:var(--career-muted)}
.sp-next{margin-bottom:12px;padding:14px 16px;border-radius:13px;background:var(--surface-2);border:1px solid var(--line-soft)}
.sp-next .sp-eyebrow{margin-bottom:6px}
.sp-next-line{font-size:13px;color:var(--career-ink)}
.sp-cta{display:flex;align-items:center;gap:14px;padding:16px;border-radius:16px;background:linear-gradient(145deg,#eef6f0,#e0efe5);border:1px solid #cfe3d6;box-shadow:0 10px 24px rgba(24,42,32,.08)}
.sp-cta span{font-size:12px;color:var(--career-muted);flex:1}
.sp-cta .btn{margin-left:auto;flex-shrink:0}
/* 模拟赛季 + 推进本阶段并排；开关单独一行，避免被误当成同一个动作 */
.sp-cta-acts{display:flex;gap:8px;flex-shrink:0;margin-left:auto}
.sp-cta-acts .btn{margin-left:0}
.sp-auto-key{display:flex;align-items:center;gap:9px;margin:8px 0 0;padding:11px 14px;border-radius:12px;background:#fff;border:1px solid var(--line-soft);box-shadow:0 4px 12px rgba(24,42,32,.05);font-size:12px;color:var(--career-ink);cursor:pointer}
.sp-auto-key input{width:16px;height:16px;flex-shrink:0;accent-color:#1c6743}
.sp-auto-key em{display:block;margin-top:2px;font-style:normal;font-size:11px;color:var(--career-muted)}
@media(max-width:760px){.sp-cta{flex-direction:column;align-items:stretch;gap:10px}.sp-cta-acts{width:100%}.sp-cta-acts .btn{flex:1}}
@media(max-width:760px){.sp-card{padding:16px}.sp-stats{grid-template-columns:repeat(3,1fr)}.sp-comp{flex-wrap:wrap}.sp-comp-meta{flex:1;text-align:center}}

/* ============ 生涯主页 · 能力值 / 竞技状态 / 长线人生（浅色纸感） ============ */
.pp-wrap{display:grid;gap:14px}
.pp-card{background:#fff;border:1px solid var(--line-soft);border-radius:16px;padding:18px;box-shadow:0 6px 18px rgba(24,42,32,.06);color:var(--career-ink)}
.pp-card>h2{margin:0 0 14px;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:10px}
.pp-card>h2 em{font-style:normal;font-size:11px;font-weight:700;color:var(--career-muted)}

/* 综评头部 */
.pp-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.pp-head-ovr{display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:84px;border-radius:20px;background:linear-gradient(150deg,#1b5e43,#12402f);color:#fff;flex:none}
.pp-head-ovr b{font:800 32px/1 var(--sport-number);font-variant-numeric:tabular-nums}
.pp-head-ovr span{font-size:9.5px;letter-spacing:1px;opacity:.85;margin-top:3px;padding:0 4px;white-space:nowrap}
.pp-head-main{flex:1;min-width:0}
.pp-head-main strong{display:block;font-size:16px;font-weight:800}
.pp-head-main span{display:block;font-size:12px;color:var(--career-muted);margin-top:3px}
.pp-tier{display:inline-block;margin-top:8px;padding:4px 11px;border-radius:99px;background:#e5f1e9;color:var(--career-green-d);font-size:11px;font-weight:800}

/* 能力值 */
.pp-attrs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pp-attr{padding:11px 11px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-soft)}
.pp-attr-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.pp-attr-name{font-size:11px;font-weight:700;color:var(--career-muted)}
.pp-attr-val{font:800 20px/1 var(--sport-number);color:var(--career-ink);font-variant-numeric:tabular-nums}
.pp-attr-val i{font-style:normal;font-size:11px;font-weight:700;color:var(--text-3);margin-left:2px}
.pp-attr-bar{height:5px;border-radius:99px;background:#eceee6;margin-top:9px;overflow:hidden}
.pp-attr-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2f9c67,#5cc38b)}
.pp-detail{margin-top:14px;border-top:1px dashed var(--line-mid);padding-top:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:4px 14px}
.pp-detail div{display:flex;justify-content:space-between;font-size:12px}
.pp-detail span{color:var(--career-muted)}
.pp-detail b{font-variant-numeric:tabular-nums;color:var(--career-ink)}

/* 竞技状态 四宫格 */
.pp-status{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pp-stat{text-align:center;padding:14px 6px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-soft)}
.pp-stat b{display:block;font:800 24px/1 var(--sport-number);font-variant-numeric:tabular-nums;color:var(--career-ink)}
.pp-stat span{display:block;margin-top:6px;font-size:11px;font-weight:700;color:var(--career-muted)}
.pp-stat.is-good b{color:#1c8a58}
.pp-stat.is-mid b{color:#b8912f}
.pp-stat.is-bad b{color:#c1493a}
.pp-stat.is-role b{font-size:16px;color:var(--career-green-d)}
.pp-note{margin:12px 0 0;font-size:12px;line-height:1.65;color:var(--career-muted)}

/* 名气称号 */
.pp-fame-bar{height:8px;border-radius:99px;background:#eceee6;overflow:hidden;margin:4px 0 10px}
.pp-fame-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#b8912f,#e3bd58)}
.pp-fame-line{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.pp-fame-line b{font:800 26px/1 var(--sport-number);color:var(--career-gold);font-variant-numeric:tabular-nums}
.pp-fame-line b small{font:700 11px/1.3 var(--font-ui);color:var(--career-muted)}
.pp-fame-line span{font-size:12px;color:var(--career-muted)}
.pp-fame-scale{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:12px}
.pp-fame-step{padding:7px 3px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line-soft);text-align:center;font-size:10px;font-weight:700;color:var(--text-3)}
.pp-fame-step.done{background:#fbf4e2;border-color:#eadcae;color:#8f6d1c}
.pp-fame-step.now{background:linear-gradient(150deg,#1b5e43,#12402f);border-color:#12402f;color:#fff}

/* 生涯纪念卡 */
.pp-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pp-collect{position:relative;border-radius:12px;padding:10px 6px;text-align:center;border:1px solid var(--line-soft);background:var(--surface-2);color:var(--text-3)}
.pp-collect.unlocked{background:linear-gradient(160deg,#fff8e8,#fdf1d4);border-color:#eadcae;color:#8f6d1c}
.pp-collect-ic{width:34px;height:34px;margin:0 auto 6px;display:block;object-fit:contain}
.pp-collect.locked .pp-collect-ic{filter:grayscale(1);opacity:.35}
.pp-collect b{display:block;font-size:10px;line-height:1.35;font-weight:700}
.pp-collect small{display:block;margin-top:4px;font-size:9px;opacity:.85}
.pp-collect.locked{opacity:.72}
.pp-collect .r-rare{color:#2f7fb5}.pp-collect .r-epic{color:#7b53c4}.pp-collect .r-legendary{color:#b8912f}
.pp-collect .r-common{color:var(--career-muted)}

/* 公益口碑 */
.pp-rep{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
.pp-rep b{font:800 26px/1 var(--sport-number);color:var(--career-green);font-variant-numeric:tabular-nums}
.pp-rep span{font-size:12px;color:var(--career-muted)}
.pp-causes{display:grid;gap:9px}
.pp-cause{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-soft)}
.pp-cause-main{flex:1;min-width:0}
.pp-cause-main b{display:block;font-size:13px;color:var(--career-ink)}
.pp-cause-main small{display:block;margin-top:3px;font-size:11px;color:var(--career-muted);line-height:1.5}
.pp-cause-tag{font-size:10px;font-weight:800;padding:3px 8px;border-radius:99px;background:#e5f1e9;color:var(--career-green-d);flex:none}
.pp-cause .btn{flex:none;padding:7px 12px;font-size:12px}
.pp-cause.done .pp-cause-tag{background:#fbf4e2;color:#8f6d1c}
@media(max-width:760px){
  .pp-attrs{grid-template-columns:repeat(2,1fr)}
  .pp-card-grid{grid-template-columns:repeat(3,1fr)}
  .pp-status{grid-template-columns:repeat(2,1fr)}
  .pp-fame-scale{grid-template-columns:repeat(3,1fr)}
}

/* ---- 荣誉素材：履历页 / 赛季总结 / 退役荣誉清单统一显示奖杯图标 ---- */
.honor-grid .honor-item{background:#fff;border-color:var(--line-soft);box-shadow:0 4px 12px rgba(24,42,32,.05)}
.honor-grid .honor-item.major{background:linear-gradient(135deg,#fffaeb,#fff3d4);border-color:#e9c96a;box-shadow:0 0 0 2px rgba(233,201,106,.2)}
.honor-grid .hi-icon{width:36px;height:36px}
.honor-grid .hi-icon .hi-none{display:block;width:22px;height:22px;border-radius:6px;background:#eceee6}
.honor-grid .hi-text b{font-size:12.5px;color:var(--career-ink)}
.honor-grid .hi-text span{color:var(--career-muted)}
.career-season-honors img{width:13px;height:13px;object-fit:contain;vertical-align:-2px;margin-right:3px}
.lh-row{align-items:center;gap:9px}
.lh-row .lh-ic{width:22px;height:22px;flex:none;object-fit:contain}
.lh-row span{flex:1;min-width:0}
.lh-row b{margin-left:auto}

/* ---- 本阶段行动：赛季内 / 休赛期的场外行动卡 ---- */
.offfield-actions{display:grid;gap:9px}
.offfield-actions button{display:flex;align-items:center;gap:11px;width:100%;padding:12px 13px;text-align:left;
  border:1px solid var(--line-soft);border-radius:12px;background:var(--surface-2);color:var(--career-ink);
  font:inherit;transition:transform .14s ease,background .14s ease,border-color .14s ease}
.offfield-actions button:not(:disabled):hover{background:#eef6f0;border-color:#b6d6c3;transform:translateY(-2px)}
.offfield-actions button:not(:disabled):active{transform:translateY(1px) scale(.985)}
.offfield-actions button:disabled{opacity:.5;cursor:not-allowed;filter:saturate(.5)}
.offfield-actions .oa-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:#e5f1e9;color:var(--career-green-d);font-weight:800;font-size:13px}
.offfield-actions .oa-main{flex:1;min-width:0}
.offfield-actions .oa-main b{display:block;font-size:13.5px;color:var(--career-ink)}
.offfield-actions .oa-main em{display:block;margin-top:3px;font-style:normal;font-size:11px;color:var(--career-muted)}
.offfield-actions .oa-state{flex:none;font-size:10px;font-weight:800;padding:3px 9px;border-radius:99px;
  background:#e5f1e9;color:var(--career-green-d)}
.offfield-actions .oa-state.used{background:#fbf4e2;color:#8f6d1c}
.offfield-actions .oa-state.locked{background:#f1f1ec;color:var(--text-3)}
.offfield-actions /* 国家队大赛回放（抽签 / 积分榜 / 逐场 / 淘汰赛 / 落幕） */
.nt-lead{margin:0 0 10px;font-size:12.5px;line-height:1.7;color:var(--career-ink)}
.nt-lead b{color:var(--career-green-d)}
.nt-sub{margin:0 0 10px;font-size:11px;color:var(--career-muted)}
.nt-tb{margin:4px 0 10px;border:1px solid var(--line-soft);border-radius:12px;overflow:hidden}
.nt-tb-head,.nt-tb-row{display:grid;grid-template-columns:22px 1fr repeat(4,20px) repeat(3,26px) 26px;align-items:center;gap:4px;padding:7px 9px;font-size:11px}
.nt-tb-head{background:#f1f8f3;color:var(--career-muted);font-weight:700}
.nt-tb-head span,.nt-tb-head i,.nt-tb-head b{font-weight:700}
.nt-tb-row{border-top:1px solid var(--line-soft);color:var(--career-ink)}
.nt-tb-row span,.nt-tb-row i,.nt-tb-row b{font-style:normal;text-align:center}
.nt-tb-row b{text-align:left}
.nt-tb-row i:last-of-type,.nt-tb-row>i{color:var(--career-muted)}
.nt-tb-row.me{background:#fdf7ea}
.nt-tb-row.me b{color:var(--career-green-d);font-weight:800}
.nt-tb-row.is-cut{border-left:3px solid #3fae77}
.nt-matches,.nt-ko,.nt-final{display:grid;gap:8px}
.nt-match,.nt-ko{padding:10px 12px;border:1px solid var(--line-soft);border-radius:12px;background:#fff}
.ntm-top{display:flex;align-items:center;gap:9px}
.ntm-top span{font-size:10.5px;color:var(--career-muted)}
.ntm-top b{font-size:12.5px;color:var(--career-ink)}
.ntm-top i{margin-left:auto;font-style:normal;font:800 14px/1 var(--font-num)}
.ntm-top i.w{color:var(--career-green-d)}
.ntm-top i.l{color:#b4553f}
.ntm-top i.d{color:var(--career-muted)}
.ntm-me{margin-top:5px;font-size:11px;color:var(--career-muted)}
.nt-final{text-align:center}
.nt-result{display:block;font-size:20px;font-weight:800;color:var(--career-gold);margin-bottom:6px}
.nt-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.nt-stats>div{padding:9px 6px;border-radius:11px;background:#f7fbf8;border:1px solid var(--line-soft)}
.nt-stats b{display:block;font:800 15px/1.2 var(--font-num);color:var(--career-green-d)}
.nt-stats span{display:block;margin-top:3px;font-size:10px;color:var(--career-muted)}

/* 模拟赛季 · 赛季事件回顾（一次性看完，不再逐条弹窗） */
.ev-digest-lead{margin:0 0 12px;font-size:12px;line-height:1.7;color:var(--career-muted)}
.ev-digest-lead b{color:var(--career-green-d)}
.ev-digest{display:grid;gap:8px;max-height:52vh;overflow:auto}
.evd-row{padding:10px 12px;border:1px solid var(--line-soft);border-radius:12px;background:#fff}
.evd-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.evd-top b{font-size:12.5px;color:var(--career-ink)}
.evd-top span{padding:1px 9px;border-radius:999px;background:#f1f8f3;color:var(--career-green-d);font-size:10.5px;font-weight:700;white-space:nowrap}
.evd-row p{margin:6px 0 0;font-size:11.5px;line-height:1.6;color:var(--career-muted)}
.evd-fx{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.evd-fx i{font-style:normal;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;background:#f6fbf8;border:1px solid #cfe3d6;color:var(--career-green-d)}
.evd-fx i.bad{background:#fdf3f0;border-color:#eed6cf;color:#b4553f}

/* 近期经历（球员页） */
.hist-list{display:grid;gap:9px}
.hist-row{padding:11px 13px;border:1px solid var(--line-soft);border-radius:12px;background:#fff}
.hr-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hr-top b{font-size:12.5px;color:var(--career-ink)}
.hr-top span{font-size:10.5px;color:var(--career-muted)}
.hist-row .hr-choice{margin:6px 0 0;font-size:11.5px;color:var(--career-green-d)}
.hist-row .hr-outcome{margin:4px 0 0;font-size:11.5px;line-height:1.6;color:var(--career-muted)}
.dev-queue{margin-bottom:11px;padding:10px 12px;border:1px dashed #cfe3d6;border-radius:11px;background:#f8fcf9}
.dev-queue>b{display:block;margin-bottom:6px;font-size:11px;color:var(--career-muted)}
.dev-queue span{display:inline-block;margin:2px 6px 2px 0;padding:3px 9px;border-radius:999px;background:#eaf5ee;color:var(--career-green-d);font-size:11px;font-weight:700}

/* ============================================================
   颁奖典礼 + 事件影响结算（正反馈可视化的两块核心）
   ============================================================ */
.aw-slide{text-align:center;padding:6px 2px 2px}
.aw-trophy{width:112px;height:112px;margin:2px auto 12px;display:flex;align-items:center;justify-content:center;border-radius:50%;
  background:radial-gradient(circle at 50% 40%,#fff6dd,#f2e0b4);border:1px solid #e3cd97;box-shadow:0 10px 26px rgba(150,110,30,.22);animation:awPop .42s cubic-bezier(.2,.9,.3,1.3)}
@keyframes awPop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.aw-trophy img{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(120,80,10,.28))}
.aw-trophy i{width:60px;height:60px;border-radius:50%;background:#e8d7ab}
.aw-name{margin:0 0 8px;font-size:19px;font-weight:800;color:var(--career-ink)}
.aw-blurb{margin:0 0 12px;font-size:12.5px;line-height:1.7;color:var(--career-muted)}
.aw-blurb b{color:var(--career-green-d)}
.aw-fx{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}
.aw-fx span{padding:4px 11px;border-radius:999px;background:#f1f8f3;border:1px solid #cfe3d6;color:var(--career-green-d);font-size:11px;font-weight:700}
.aw-step{margin:14px 0 0;font-size:11px;color:var(--career-muted);text-align:center;letter-spacing:.04em}
.aw-ranks{margin:4px 0 6px;display:grid;gap:7px}
.aw-rank{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line-soft);border-radius:11px;background:#fff;font-size:12px}
.aw-rank b{font:800 12px/1 var(--font-num);color:var(--career-green-d);min-width:26px}
.aw-rank span{color:var(--career-ink);font-weight:700}
.aw-rank i{margin-left:auto;font-style:normal;font-size:11px;color:var(--career-muted)}
.ev-impact{margin-top:12px;padding:11px 13px;border:1px solid #cfe3d6;border-radius:12px;background:#f6fbf8}
.ev-impact>b{display:block;margin-bottom:8px;font-size:11px;letter-spacing:.06em;color:var(--career-muted)}
.ev-impact>div{display:flex;flex-wrap:wrap;gap:6px}
.ev-impact span{padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;background:#fff;border:1px solid var(--line-soft);color:var(--career-ink)}
.ev-impact span.good{color:var(--career-green-d);border-color:#cfe3d6;background:#f1f8f3}
.ev-impact span.bad{color:#b4553f;border-color:#eed6cf;background:#fdf3f0}
.ev-impact span.info{color:#7a6320;border-color:#e8dcb8;background:#fdf9ec}

/* 冬窗弹窗底部操作条（生涯外壳内冬窗走弹窗，见 season-flow.js winterWindow） */
.ww-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft);text-align:center}
.ww-foot .btn{width:100%}

/* ============================================================
   模拟赛季 · 全屏推进遮罩（图五）
   ============================================================ */
.simfx-mask{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(6,16,12,.72);backdrop-filter:blur(6px);animation:simfxIn .2s ease}
@keyframes simfxIn{from{opacity:0}to{opacity:1}}
.simfx-card{width:min(100%,340px);padding:24px 22px;border-radius:22px;background:linear-gradient(165deg,#12452f,#0b2f20);border:1px solid rgba(160,205,178,.28);box-shadow:0 24px 60px rgba(0,0,0,.45);color:#eef7f1;text-align:center}
.simfx-eyebrow{display:block;font:800 10px/1 var(--font-ui);letter-spacing:.22em;color:#8fb9a1}
.simfx-card h2{margin:9px 0 6px;font-size:18px;font-weight:800}
.simfx-sub{margin:0 0 16px;font-size:11.5px;line-height:1.6;color:#a8c6b5}
.simfx-field{padding:14px 12px;border-radius:15px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.06),transparent 70%),linear-gradient(180deg,#1b6142,#123f2b);border:1px solid rgba(160,205,178,.22)}
.simfx-dots{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:12px}
.simfx-dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.28)}
.simfx-dot.opp{background:rgba(226,138,120,.35)}
.simfx-dot.mine.is-on{background:#7fe0a6;box-shadow:0 0 8px rgba(127,224,166,.8)}
.simfx-dot.opp.is-on{background:#f0a08c;box-shadow:0 0 8px rgba(240,160,140,.8)}
.simfx-ball{width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 10px rgba(255,255,255,.7)}
.simfx-score{display:block;font:800 26px/1 var(--font-num);letter-spacing:.06em;color:#fff;font-variant-numeric:tabular-nums}
.simfx-meta{display:flex;align-items:center;justify-content:space-between;margin:14px 2px 8px;font-size:11px;color:#a8c6b5}
.simfx-bar{height:6px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}
.simfx-bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#7fe0a6,#3fae77);transition:width .18s linear}
.simfx-skip{margin-top:16px;padding:7px 16px;border:1px solid rgba(160,205,178,.35);border-radius:999px;background:transparent;color:#cfe6d8;font-size:11.5px;font-weight:700;cursor:pointer}
.simfx-skip:hover{background:rgba(160,205,178,.14)}
.simfx-skip:disabled{opacity:.6;cursor:default}

/* 阵容页「我的处境」与替补席：保证玩家永远看得见自己 */
.pitch-hold{position:relative}
.pitch-me-bench{position:absolute;left:10px;right:10px;top:34px;padding:8px 10px;border:1.5px dashed rgba(255,255,255,.7);border-radius:11px;background:rgba(8,26,18,.68);color:#fff;font-size:11.5px;font-weight:700;text-align:center;cursor:pointer;backdrop-filter:blur(3px);z-index:3}
.pitch-me-bench:hover{background:rgba(8,26,18,.78)}
.me-strip{display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:14px;border:1px solid #cfe3d6;border-radius:16px;background:linear-gradient(150deg,#f3f9f4,#e7f2eb)}
.me-strip:not(.is-in){border-color:#e6cfa0;background:linear-gradient(150deg,#fdf7ea,#f7edd8)}
.ms-card{flex:none;width:104px;padding:10px 8px;border-radius:13px;background:#fff;border:1px solid var(--line-soft);text-align:center}
.ms-card .ms-tag{display:inline-block;margin-bottom:5px;padding:1px 8px;border-radius:999px;background:#1c6743;color:#eaf6ee;font-size:9.5px;font-weight:800}
.me-strip:not(.is-in) .ms-card .ms-tag{background:#b8892f}
.ms-card b{display:block;font-size:12.5px;color:var(--career-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-card small{display:block;margin-top:3px;font-size:10px;color:var(--career-muted)}
.ms-main{flex:1;min-width:0}
.ms-main p{margin:0 0 9px;font-size:12px;line-height:1.6;color:var(--career-ink)}
.ms-main p b{color:var(--career-green-d)}
.ms-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ms-bars>div{padding:7px 9px;border-radius:10px;background:#fff;border:1px solid var(--line-soft)}
.ms-bars span{display:block;font-size:9.5px;color:var(--career-muted)}
.ms-bars b{display:block;margin-top:2px;font:800 12.5px/1.2 var(--font-num);color:var(--career-green-d)}
.bench-box{margin-top:14px;padding:15px 17px;border:1px solid var(--line-soft);border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(24,42,32,.06)}
.bench-box h3{margin:0 0 11px;font-size:14px;font-weight:800;color:var(--career-ink);display:flex;justify-content:space-between;align-items:center}
.bench-box h3 em{font-style:normal;font-size:11px;font-weight:700;color:var(--career-muted)}
.bench-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.bench-list>div{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line-soft);border-radius:11px;font-size:11.5px;background:#fbfdfc}
.bench-list b{color:var(--career-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bench-list span{color:var(--career-muted);font-size:10px;flex:none}
.bench-list i{margin-left:auto;font-style:normal;font:800 11px/1 var(--font-num);color:var(--career-ink);white-space:nowrap}
.bench-list i em{font-style:normal;font-weight:700;font-size:9.5px;color:#b4553f}
.bench-list i em.ahead{color:var(--career-green-d)}
@media(max-width:760px){.me-strip{flex-direction:column;align-items:stretch}.ms-card{width:auto}.ms-bars{grid-template-columns:repeat(3,1fr);gap:6px}.bench-list{grid-template-columns:1fr}}
.oa-jump{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 2px 0;font-size:11.5px;color:var(--career-muted)}
.oa-jump button{padding:6px 12px;border:1px solid #cfe3d6;border-radius:999px;background:#f4faf6;color:var(--career-green-d);font-size:11.5px;font-weight:700;cursor:pointer}
.oa-jump button:hover{background:#e6f3eb}
.oa-note{grid-column:1/-1;margin:2px 0 0;font-size:11.5px;line-height:1.6;color:var(--career-muted)}
.offfield-actions button.is-done{border-color:#d9ac47;background:#fff8e2}

/* ============ 赛季收获页（目标清单 + 比分汇总，浅色纸感） ============ */
.sr-wrap{display:grid;gap:14px;margin-top:16px}
.sr-card{background:#fff;border:1px solid var(--line-soft);border-radius:16px;padding:18px;box-shadow:0 6px 18px rgba(24,42,32,.06);color:var(--career-ink)}
.sr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.sr-head h2{margin:3px 0 0;font-size:17px;font-weight:800;color:var(--career-ink);font-family:var(--font-display)}
.sr-eyebrow{display:block;font-size:10px;letter-spacing:1.4px;color:var(--career-green);font-weight:700;text-transform:uppercase}
.sr-count{text-align:right;flex:none}
.sr-count b{display:block;font:800 26px/1 var(--sport-number);color:var(--career-green-d);font-variant-numeric:tabular-nums}
.sr-count span{font-size:11px;color:var(--career-muted)}

/* 目标清单 */
.sr-goals{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sr-goals li{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-soft)}
.sr-goals li i{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:12px;font-weight:800;background:#e6ebe6;color:#93a49a}
.sr-goals li b{flex:1;min-width:0;font-size:13px;color:var(--career-muted);font-weight:700}
.sr-goals li span{flex:none;font-size:12px;font-weight:800;color:var(--career-muted);font-variant-numeric:tabular-nums}
.sr-goals li.is-done{background:#eef6f0;border-color:#cfe3d6}
.sr-goals li.is-done i{background:#2f9c67;color:#fff}
.sr-goals li.is-done b{color:var(--career-green-d)}
.sr-goals li.is-done span{color:#1c8a58}

/* 赛事比分汇总 */
.sr-comp{margin-top:12px;border:1px solid var(--line-soft);border-radius:13px;overflow:hidden}
.sr-comp>header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:11px 14px;background:#f1f6f2;border-bottom:1px solid var(--line-soft)}
.sr-comp>header b{font-size:13px;color:var(--career-green-d)}
.sr-comp>header span{font-size:11px;color:var(--career-muted);font-variant-numeric:tabular-nums}
.sr-matches{list-style:none;margin:0;padding:6px 8px;display:grid;gap:2px;max-height:280px;overflow-y:auto}
.sr-m{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:8px}
.sr-m-badge{flex:none;width:22px;height:22px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;font-family:var(--font-num)}
.sr-m-opp{flex:1;min-width:0;font-size:12px;color:var(--career-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr-m-score{flex:none;font-size:13px;font-weight:800;color:var(--career-green-d);font-family:var(--font-num);font-variant-numeric:tabular-nums}
.sr-m-w .sr-m-badge{background:#e4f4ea;color:#1c8a58}
.sr-m-d .sr-m-badge{background:#e7f1f8;color:#2f7fb5}
.sr-m-l .sr-m-badge{background:#fbe9e6;color:#c1493a}
.sr-m-u .sr-m-badge{background:#e9ece8;color:#8a978f}
.sr-m-u .sr-m-score{color:#a3b0a7}

/* 信息卡 */
.sr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sr-sub{background:#fff;border:1px solid var(--line-soft);border-radius:14px;padding:15px 16px;box-shadow:0 6px 18px rgba(24,42,32,.06)}
.sr-sub h3{margin:0 0 9px;font-size:13px;font-weight:800;color:var(--career-green-d)}
.sr-sub p{margin:0 0 5px;font-size:12px;line-height:1.6;color:var(--career-ink)}
.sr-sub .is-success{color:#0f7a46;font-weight:800}
.sr-sub .is-warning{color:#8a5a12;font-weight:800}
.sr-sub .ballon-list{display:grid;gap:3px;margin-top:6px}
.ballon-components{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}.ballon-components>span,.ballon-components>strong{display:flex;justify-content:space-between;gap:8px;padding:9px;border-radius:10px;background:var(--surface-1);font-size:11px}.ballon-components>strong{grid-column:1/-1;background:#edf5ed;color:var(--grass-d)}.ballon-rank-row{display:grid;grid-template-columns:minmax(90px,1fr) auto;gap:3px 8px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:11px}.ballon-rank-row>span{color:var(--career-muted);text-align:right}.ballon-rank-row>i{font-style:normal;font-weight:800}.ballon-rank-row>small{grid-column:1/-1;color:var(--career-muted);line-height:1.5}.ballon-rank-row.is-user{background:#f3f8ef;padding-inline:7px;border-radius:8px}.ballon-compare,.ballon-method{font-size:11px;line-height:1.65;color:var(--career-muted)}.ballon-method{padding-top:7px;border-top:1px solid var(--line-soft)}
.sr-sub .ballon-list span{font-size:11px;color:var(--career-muted)}
.sr-review{margin-top:12px}
.sr-review h2{margin:0 0 10px;font-size:14px;font-weight:800;color:var(--career-green-d)}
.sr-review p{margin:0 0 6px;font-size:12px;line-height:1.65;color:var(--career-muted)}

/* ============ 生涯故事时间线（逐季叙事列表） ============ */
.tl-wrap{margin:22px 0}
.tl-head{margin-bottom:16px}
.tl-head h2{margin:4px 0 6px;font-size:20px;font-weight:800;color:var(--career-ink);font-family:var(--font-display)}
.tl-head p{margin:0;font-size:12px;color:var(--career-muted)}
.tl-list{position:relative;display:grid;gap:12px;padding-left:22px}
.tl-list:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;border-radius:2px;background:linear-gradient(180deg,#cfe3d6,#e3e7dd)}
.tl-node{position:relative;background:#fff;border:1px solid var(--line-soft);border-radius:14px;padding:15px 17px;box-shadow:0 6px 18px rgba(24,42,32,.06)}
.tl-dot{position:absolute;left:-21px;top:19px;width:11px;height:11px;border-radius:50%;background:var(--career-green);border:2px solid #fff;box-shadow:0 0 0 2px #cfe3d6}
.tl-node>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px}
.tl-node>header b{font-size:13px;font-weight:800;color:var(--career-green-d)}
.tl-node>header span{font-size:11px;color:var(--career-muted)}
.tl-node h3{margin:0 0 8px;font-size:14px;font-weight:800;color:var(--career-ink)}
.tl-node p{margin:0 0 6px;font-size:12px;line-height:1.65;color:var(--career-muted)}
.tl-turn{padding:8px 11px;border-radius:9px;background:#fdf6e5;border-left:3px solid var(--career-gold);color:#7a5a12!important}
.tl-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:9px;font-size:11px;font-weight:700;color:var(--career-muted);font-variant-numeric:tabular-nums}
.tl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tl-tags span{padding:3px 9px;border-radius:99px;background:#eef6f0;border:1px solid #d5e6db;color:var(--career-green-d);font-size:10px;font-weight:700}

@media(max-width:760px){
  .sr-grid{grid-template-columns:1fr}
  .tl-list{padding-left:18px}
  .tl-dot{left:-17px}
}

/* ============ 联赛积分榜（赛事 tab · 赛程 / 积分榜 切换） ============ */
.competition-views{display:inline-flex;gap:4px;padding:4px;margin:0 0 14px;border-radius:99px;background:#eceee6;border:1px solid var(--line-soft)}
.competition-views button{border:0;background:transparent;padding:7px 20px;border-radius:99px;font-size:12px;font-weight:800;color:var(--career-muted)}
.competition-views button.on{background:#fff;color:var(--career-green-d);box-shadow:0 2px 6px rgba(24,42,32,.1)}
.competition-view{min-width:0}
.stb-wrap{display:grid;gap:14px}
.stb-card{background:#fff;border:1px solid var(--line-soft);border-radius:16px;padding:14px 10px 6px;box-shadow:0 6px 18px rgba(24,42,32,.06)}
.stb-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 6px 10px;border-bottom:1px solid var(--line-soft);margin-bottom:6px}
.stb-head b{font-size:14px;font-weight:800;color:var(--career-green-d)}
.stb-head span{font-size:11px;color:var(--career-muted)}
.stb-note{margin:0 0 12px;padding:10px 13px;border-radius:11px;background:#fdf6e5;border:1px solid #eadcae;color:#8a5a12;font-size:12px;font-weight:700;line-height:1.6}
.stb-legend{display:flex;flex-wrap:wrap;gap:16px;padding:2px 6px}
.stb-legend .zl{position:relative;padding-left:12px;font-size:11px;font-weight:700;color:var(--career-muted)}
.stb-legend .zl:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:12px;border-radius:2px}
.stb-legend .z-ucl:before{background:#22c55e}
.stb-legend .z-uel:before{background:#3b82f6}
.stb-legend .z-rel:before{background:#ef4444}
.stb-card .tb{font-size:12px;color:var(--career-ink)}
.stb-card .tb-head,.stb-card .tb-row{grid-template-columns:20px minmax(0,1fr) repeat(8,22px);gap:1px;padding:7px 4px}
.stb-card .tb-head{border-bottom:1px solid var(--line-soft);color:var(--career-muted)}
.stb-card .tb-row{border-bottom:1px dashed var(--line-soft)}
.stb-card .tb-row:last-child{border-bottom:0}
.stb-card .tb-team{font-size:11.5px}
.stb-card .tb-pts{font-size:13px;color:var(--career-green-d)}
.stb-card .tb-row.mine{background:#eef6f0;border-radius:8px;color:var(--career-green-d)}
.stb-card .tb-row.mine .tb-team{font-weight:800}
.stb-card .tb-row.z-ucl{box-shadow:inset 3px 0 0 #22c55e}
.stb-card .tb-row.z-uel{box-shadow:inset 3px 0 0 #3b82f6}
.stb-card .tb-row.z-rel{box-shadow:inset 3px 0 0 #ef4444}

/* ============ 章节抉择 · 数值化效果标签 + 即时结算 ============ */
.choice-effects{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.fx-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:99px;border:1px solid transparent;
  font:800 11px/1.35 var(--font-ui);font-variant-numeric:tabular-nums}
.fx-chip.pos{background:#e4f4ea;color:#1c8a58;border-color:#bfe2cd}
.fx-chip.neg{background:#fbe9e6;color:#c1493a;border-color:#f0c9c3}
.chapter-choice.is-selected .fx-chip.pos{background:#cfebd9}
.chapter-choice.is-selected .fx-chip.neg{background:#f7d9d4}
.career-consequence .choice-effects{margin-top:10px}
.settle{display:grid;gap:14px}
.settle-rows{display:grid;gap:8px}
.settle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;
  border-radius:11px;border:1px solid transparent;font-size:13px;font-weight:700}
.settle-row span{color:var(--career-muted);font-weight:600}
.settle-row b{font:800 18px/1 var(--font-num);font-variant-numeric:tabular-nums}
.settle-row.pos{background:#e4f4ea;border-color:#bfe2cd}.settle-row.pos b{color:#1c8a58}
.settle-row.neg{background:#fbe9e6;border-color:#f0c9c3}.settle-row.neg b{color:#c1493a}
.settle-row.muted{background:var(--surface-2);border-color:var(--line-soft)}.settle-row.muted b{color:var(--career-muted)}
.settle-title{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--career-green);font-weight:700}
.settle-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.settle-stat{text-align:center;padding:11px 5px;border-radius:11px;background:var(--surface-2);border:1px solid var(--line-soft)}
.settle-stat b{display:block;font:800 19px/1 var(--font-num);color:var(--career-green-d);font-variant-numeric:tabular-nums}
.settle-stat span{font-size:10px;color:var(--career-muted)}
@media(max-width:760px){.settle-stats{grid-template-columns:repeat(2,1fr)}}

/* ============ 战术板 · 球场俯视图 + 点位 + 跑动箭头 ============ */
.tb-wrap{display:grid;gap:12px}
.tb-pitch{position:relative;width:100%;max-width:300px;margin:0 auto;border-radius:16px;overflow:hidden;
  box-shadow:inset 0 0 50px rgba(6,40,26,.22)}
.tb-pitch svg{display:block;width:100%;height:auto}
.tb-name{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tb-name b{font-size:14px;font-weight:800;color:var(--career-ink)}
.tb-name span{font-size:11px;font-weight:700;color:var(--career-green);background:#e5f1e9;padding:3px 10px;border-radius:99px}
.tb-note{font-size:12px;line-height:1.6;color:var(--career-muted)}
.tb-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;font-weight:700;color:var(--career-muted)}
.tb-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.tb-legend .lg-me{background:#f0c14b}.tb-legend .lg-mate{background:#eef6f0;border:1px solid #9dc4ad}
.tb-legend .lg-run{background:#ffd76a}
.tb-tactics{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.tb-tactic{display:grid;gap:4px;text-align:left;padding:12px 13px;border-radius:13px;border:1px solid var(--line-soft);
  background:#f8faf7;color:var(--career-ink);transition:transform .14s ease,background .14s ease,border-color .14s ease}
.tb-tactic:hover{transform:translateY(-2px);background:#eef6f0;border-color:#b6d6c3}
.tb-tactic.on{border-color:#2f9c67;background:linear-gradient(135deg,#e2f3e8,#d2ecdd);box-shadow:inset 3px 0 0 #2f9c67}
.tb-tactic b{font-size:13px;font-weight:800}
.tb-tactic small{font-size:11px;color:var(--career-muted);line-height:1.45}
@media(max-width:760px){.tb-tactics{grid-template-columns:1fr}}

/* ============ 阶段战报（批量模拟不再闷掉） ============ */
.br-card{display:grid;gap:10px}
.br-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;
  padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-soft)}
.br-row img{width:24px;height:24px;object-fit:contain}
.br-row b{font-size:12.5px;color:var(--career-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.br-row small{display:block;font-size:10px;color:var(--career-muted);margin-top:2px}
.br-score{font:800 16px/1 var(--font-num);font-variant-numeric:tabular-nums}
.br-row.win .br-score{color:#1c8a58}.br-row.draw .br-score{color:#2f7fb5}.br-row.loss .br-score{color:#c1493a}
.br-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.br-sum div{text-align:center;padding:10px 4px;border-radius:11px;background:var(--surface-2);border:1px solid var(--line-soft)}
.br-sum b{display:block;font:800 18px/1 var(--font-num);color:var(--career-green-d);font-variant-numeric:tabular-nums}
.br-sum span{font-size:10px;color:var(--career-muted)}

/* ============================================================
   位置页 · 球场阵型图
   本节位于文件末尾，用于整体接管既有 .pitch-xi / .xi-player 规则：
   旧实现是 4 列网格卡片，现在是按站位绝对定位的球场视图。
   ============================================================ */
.pitch-wrap{background:#fff;border:1px solid var(--line-soft);border-radius:24px;padding:16px;box-shadow:0 6px 18px rgba(24,42,32,.06)}
.pitch-xi{position:relative;display:block;width:100%;max-width:360px;min-height:340px;aspect-ratio:68/105;margin:0 auto;padding:0;border-radius:18px;overflow:hidden;border:1px solid #a8cdb8;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.07),transparent 62%),repeating-linear-gradient(0deg,rgba(255,255,255,.055) 0 6.2%,transparent 6.2% 12.4%),linear-gradient(180deg,#2f8a5c,#1a6141);box-shadow:inset 0 0 70px rgba(9,48,31,.22)}
.pitch-xi::after{content:'';position:absolute;inset:9px;border:1px solid rgba(255,255,255,.26);border-radius:12px;pointer-events:none}
.pt-line{position:absolute;left:9px;right:9px;height:1px;background:rgba(255,255,255,.24)}
.pt-half{top:50%}
.pt-circle{position:absolute;left:50%;top:50%;width:27%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.24);border-radius:50%}
.pt-spot{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:rgba(255,255,255,.5)}
.pt-box{position:absolute;left:21%;width:58%;height:14%;border:1px solid rgba(255,255,255,.24)}
.pt-box.is-top{top:9px;border-top:0;border-radius:0 0 12px 12px}
.pt-box.is-bottom{bottom:9px;border-bottom:0;border-radius:12px 12px 0 0}
.pt-six{position:absolute;left:35%;width:30%;height:6%;border:1px solid rgba(255,255,255,.2)}
.pt-six.is-top{top:9px;border-top:0;border-radius:0 0 8px 8px}
.pt-six.is-bottom{bottom:9px;border-bottom:0;border-radius:8px 8px 0 0}
.pt-formation{position:absolute;top:12px;left:50%;transform:translateX(-50%);padding:2px 11px;border-radius:999px;background:rgba(4,26,17,.6);color:#dcf0e4;font-size:11px;font-style:normal;font-weight:700;letter-spacing:.08em}
.xi-player{position:absolute;transform:translate(-50%,-50%);width:64px;min-height:0;padding:8px 5px 5px;border-radius:13px;text-align:center;background:rgba(255,255,255,.96);border:1px solid #bcd9c7;color:var(--career-ink);box-shadow:0 4px 10px rgba(6,32,20,.2);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.xi-player:hover{transform:translate(-50%,-50%) scale(1.05)}
.xi-player.is-user{min-width:70px;grid-column:auto;border-color:#c9a24a;background:linear-gradient(180deg,#fff8e6,#ffeec4);box-shadow:0 0 0 2px rgba(212,179,95,.5),0 6px 14px rgba(6,32,20,.2)}
.xi-player.is-active{transform:translate(-50%,-50%) scale(1.06);box-shadow:0 0 0 2px var(--career-green-d),0 6px 16px rgba(6,32,20,.28)}
.xi-player .xi-no{position:absolute;top:-7px;left:50%;transform:translateX(-50%);min-width:18px;height:18px;line-height:18px;padding:0 4px;border-radius:9px;background:#1c6743;color:#eaf6ee;font-size:10px;font-weight:800}
.xi-player b{display:block;margin:5px 0 2px;font-size:10.5px;line-height:1.2;white-space:normal;overflow:hidden;max-height:2.4em;word-break:break-word}
.xi-player small{display:block;font-size:9px;color:#6c8a7a}
.pitch-caption{margin:12px 2px 0;font-size:12px;color:var(--career-muted);text-align:center}
.pitch-caption b{color:var(--career-green-d)}
.pitch-legend{display:flex;align-items:center;justify-content:center;gap:6px;margin:6px 0 0;font-size:11px;color:var(--career-muted)}
.pitch-legend i{width:9px;height:9px;border-radius:3px;background:#fff;border:1px solid #bcd9c7}
.pitch-legend .lg-user{background:linear-gradient(180deg,#fff8e6,#ffeec4);border-color:#c9a24a}
@media(max-width:760px){
  .pitch-wrap{padding:11px;border-radius:18px}
  .pitch-xi{max-width:none;min-height:0;aspect-ratio:68/118;border-radius:15px}
  .xi-player{width:56px;padding:7px 4px 4px;border-radius:11px}
  .xi-player.is-user{min-width:56px}
  .xi-player b{font-size:9px}
  .xi-player small{font-size:8px}
  .xi-player .xi-no{top:-6px;min-width:16px;height:16px;line-height:16px;font-size:9px}
  .pt-formation{top:9px;font-size:10px;padding:1px 9px}
  .pitch-caption{font-size:11px}
  /* v15：位置选择 / 能力展示 / 图表组件在窄屏改为单列 */
  .pos-wrap{grid-template-columns:1fr}
  .rv-grid{grid-template-columns:1fr}
  .pos-roles{grid-template-columns:1fr 1fr}
  .rv-radar{max-width:250px;margin:0 auto}
}

/* ============================================================
   v15 · 共享可视化组件（球场位置选择 / 雷达图 / 属性条 / 能力展示页）
   ============================================================ */

/* ---- 创建页：位置与踢球角色（参考图一） ---- */
.pos-wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:18px;align-items:start;margin-bottom:12px}
.pos-pitch-col{min-width:0}
.pitch-picker{max-width:400px}
.pos-chip{position:absolute;transform:translate(-50%,-50%);padding:6px 10px;border-radius:999px;border:1.5px solid rgba(255,255,255,.55);background:rgba(255,255,255,.94);color:var(--career-ink);font-size:11px;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;box-shadow:0 3px 8px rgba(6,32,20,.22);transition:transform .15s ease,background .15s ease}
.pos-chip:hover{transform:translate(-50%,-50%) scale(1.06)}
.pos-chip.on{background:linear-gradient(180deg,#ffd79a,#f29b3c);border-color:#d9822b;color:#40220a;box-shadow:0 0 0 2px rgba(242,155,60,.5),0 4px 12px rgba(6,32,20,.26)}
.pp-side{position:absolute;left:14px;font-size:10px;letter-spacing:.14em;color:rgba(255,255,255,.72);font-style:normal;writing-mode:vertical-rl}
.pp-side.pp-att{top:16px}
.pp-side.pp-def{bottom:16px}
.pos-side{background:#fff;border:1px solid var(--line-soft);border-radius:20px;padding:16px;box-shadow:0 6px 18px rgba(24,42,32,.06)}
.pos-side-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pos-side-head span{font-size:11px;color:var(--career-muted)}
.pos-side-head b{font-size:22px;color:var(--career-green-d)}
.pos-side-head em{font-size:11px;color:var(--career-muted);font-style:normal}
.pos-side-desc{margin:6px 0 12px;font-size:12px;color:var(--career-muted);line-height:1.6}
.pos-roles{display:flex;flex-direction:column;gap:10px}
.role-card{position:relative;text-align:left;padding:12px;border-radius:14px;border:1.5px solid var(--line-soft);background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}
.role-card:hover{border-color:#a8cdb8}
.role-card.on{border-color:var(--career-green-d);box-shadow:0 0 0 2px rgba(28,103,67,.14)}
.role-card header{display:flex;align-items:center;gap:8px}
.role-card header em{font-size:10px;font-weight:800;color:var(--career-green-d);background:#e7f4eb;padding:2px 6px;border-radius:6px;font-style:normal}
.role-card header b{font-size:14px}
.role-card header .role-check{margin-left:auto;font-style:normal;font-weight:800;color:var(--career-green-d);opacity:0}
.role-card.on .role-check{opacity:1}
.role-card p{margin:6px 0 8px;font-size:12px;color:var(--career-muted)}
.role-card small{display:block;margin-top:8px;font-size:11px;color:var(--career-muted)}
.role-tags{display:flex;flex-wrap:wrap;gap:5px}
.role-tag{font-style:normal;font-size:10px;padding:2px 7px;border-radius:999px;background:#eef7f1;color:var(--career-green-d);border:1px solid #d3e8db}

/* ---- 雷达图 ---- */
.rdr{display:block;width:100%;height:auto}
.rdr-cn{font-size:10.5px;fill:var(--career-muted)}
.rdr-val{font-size:11.5px;font-weight:800;fill:var(--career-green-d)}

/* ---- 属性条组 ---- */
.sbar-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.sbar-group{background:#fff;border:1px solid var(--line-soft);border-radius:14px;padding:12px}
.sbar-group header{display:flex;align-items:center;gap:7px;margin-bottom:8px}
.sbg-dot{width:9px;height:9px;border-radius:50%}
.sbg-name{font-size:13px;font-weight:700}
.sbg-en{font-size:10px;color:var(--career-muted);font-style:normal}
.sbg-avg{margin-left:auto;font-size:15px;color:var(--career-green-d)}
.sbar-row{display:grid;grid-template-columns:66px 1fr 30px;align-items:center;gap:8px;padding:3px 0}
.sbr-name{font-size:11.5px;color:var(--career-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbr-track{display:block;height:7px;border-radius:999px;background:#eef2ef;overflow:hidden}
.sbr-fill{display:block;height:100%;border-radius:999px}
.sbr-val{font-size:12px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}

/* ---- 能力展示页（参考图二） ---- */
.rv-banner{background:linear-gradient(140deg,#1c6743,#2f8a5c);color:#eaf6ee;border-radius:22px;padding:20px 22px;margin-bottom:16px;box-shadow:0 10px 26px rgba(12,52,34,.18)}
.rv-kicker{font-size:11px;letter-spacing:.18em;color:#a9d7bd}
.rv-banner h1{margin:6px 0 8px;font-size:clamp(24px,3.4vw,34px);color:#fff}
.rv-banner p{margin:0;font-size:13px;color:#d5ecdf;line-height:1.65}
.rv-banner p b{color:#fff}
.rv-hint{margin-top:8px!important;font-size:12px!important;color:#b6dcc7!important}
.rv-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px;align-items:start}
.rv-card{background:#fff;border:1px solid var(--line-soft);border-radius:20px;padding:16px;box-shadow:0 6px 18px rgba(24,42,32,.06)}
.rv-radar{padding:4px 0 8px}
.rv-role{border-top:1px solid var(--line-soft);padding-top:12px}
.rv-role b{font-size:15px}
.rv-role p{margin:6px 0 8px;font-size:12px;color:var(--career-muted)}
.rv-role small{display:block;margin-top:8px;font-size:11px;color:var(--career-muted)}
.rv-namebox{display:flex;align-items:center;gap:18px;margin:16px 0;flex-wrap:wrap}
.rv-ovr{flex:none}
.rv-namecol{flex:1;min-width:220px}
.rv-name-row{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.rv-name-input{padding:9px 14px;border:1.5px solid var(--border-str);border-radius:9px;font-size:14px;width:190px;max-width:60vw}

/* 注意：v15 的窄屏覆盖必须放在 v15 基础规则之后（同优先级下后写者胜，媒体查询不额外加权） */
@media(max-width:760px){
  .pos-wrap{grid-template-columns:1fr}
  .rv-grid{grid-template-columns:1fr}
  .pos-roles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .pitch-picker{max-width:none}
  .pos-chip{padding:5px 8px;font-size:10px}
  .rv-radar{max-width:250px;margin:0 auto}
  .sbar-wrap{grid-template-columns:1fr 1fr}
  .sbar-row{grid-template-columns:58px 1fr 26px}
}

/* ============================================================
   场外系统 · 公益 / 青训 独立栏目
   ============================================================ */
.life-hero{background:linear-gradient(150deg,#f3f9f4,#e6f2ea);border:1px solid #d3e6da;border-radius:20px;padding:20px 22px;box-shadow:0 8px 22px rgba(24,42,32,.06)}
.life-hero .eyebrow{display:block;font:800 10px/1 var(--font-ui);letter-spacing:.16em;color:#6d8a7c;text-transform:uppercase}
.life-hero h1{margin:8px 0 6px;font-size:19px;font-weight:800;color:var(--career-ink)}
.life-hero>p{margin:0 0 14px;font-size:12px;color:var(--career-muted)}
.life-hero>p b{color:var(--career-green-d)}
.life-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.life-stats>div{background:#fff;border:1px solid var(--line-soft);border-radius:13px;padding:10px 8px;text-align:center}
.life-stats b{display:block;font:800 17px/1.2 var(--font-num);color:var(--career-green-d);font-variant-numeric:tabular-nums}
.life-stats span{display:block;margin-top:3px;font-size:10px;color:var(--career-muted)}
.charity-list,.youth-list,.prospect-list,.life-log{display:grid;gap:9px}
.charity-item{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line-soft);border-radius:14px;background:#fff}
.charity-item.is-done{background:#f5faf6}
.ci-main{flex:1;min-width:0}
.ci-main b{display:block;font-size:13.5px;color:var(--career-ink)}
.ci-region{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#eef5f0;color:#5f7c6d;font-size:10px}
.ci-main p{margin:5px 0 0;font-size:11.5px;line-height:1.5;color:var(--career-muted)}
.ci-meta{text-align:right;flex-shrink:0}
.ci-meta b{display:block;font:800 12.5px/1.2 var(--font-num);color:#b4553f}
.ci-meta span{display:block;margin-top:3px;font-size:10.5px;color:var(--career-green-d)}
.charity-item .oa-state{margin-left:4px}
.charity-item .btn{flex-shrink:0}
.life-link{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.life-link>div{padding:11px 10px;border:1px solid var(--line-soft);border-radius:12px;background:#fff;text-align:center}
.life-link b{display:block;font-size:11.5px;color:var(--career-ink)}
.life-link span{display:block;margin-top:3px;font-size:10px;color:var(--career-green-d)}
.life-log>div{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid var(--line-soft);border-radius:12px;background:#fff;font-size:12px}
.life-log b{color:var(--career-ink)}
.life-log span{color:var(--career-muted);font-size:11px}
.life-log i{margin-left:auto;font-style:normal;font-size:11px;color:#b4553f}
.youth-proj{padding:13px 14px;border:1px solid var(--line-soft);border-radius:14px;background:#fff}
.youth-proj.is-done{background:#f5faf6}
.yp-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.yp-top b{font-size:13.5px;color:var(--career-ink)}
.yp-top span{font-size:11px;color:var(--career-muted)}
.yp-bar{margin:9px 0 7px;height:7px;border-radius:999px;background:#e9f1ec;overflow:hidden}
.yp-bar.big{height:10px;margin:4px 0 12px}
.yp-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3f9e6b,#2c7a52);transition:width .4s ease}
.yp-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:10.5px;color:var(--career-muted)}
.youth-form{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
.youth-form label{display:block;font-size:11px;color:var(--career-muted)}
.youth-select{width:100%;margin-top:5px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:11px;background:#fff;color:var(--career-ink);font-size:12.5px}
.prospect-row{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line-soft);border-radius:12px;background:#fff;font-size:12px}
.prospect-row b{color:var(--career-ink)}
.prospect-row span{color:var(--career-muted);font-size:11px}
.prospect-row i{margin-left:auto;font-style:normal;font-size:11px;color:var(--career-muted)}
.prospect-row.pro{border-color:#cfe3d6;background:#f5faf6}
.prospect-row.pro i{color:var(--career-green-d);font-weight:700}
.prospect-row.released{opacity:.62}
@media(max-width:760px){
  .life-hero{padding:16px}
  .life-stats{grid-template-columns:repeat(2,1fr)}
  .life-link{grid-template-columns:1fr}
  .youth-form{grid-template-columns:1fr}
  .charity-item{flex-wrap:wrap}
  .ci-meta{text-align:left;margin-left:0}
  .charity-item .btn{width:100%}
}

/* ============================================================
   历史地位排行（荣誉积分 V6.0）
   ============================================================ */
.hr-wrap { display: flex; flex-direction: column; gap: 12px; }
.hr-me .hr-score { display: flex; align-items: baseline; gap: 8px; margin: 6px 0 2px; }
.hr-me .hr-score b { font-family: var(--font-num); font-size: 34px; line-height: 1; color: #143629; font-variant-numeric: tabular-nums; }
.hr-me .hr-score span { font-size: 11px; color: var(--text-2); font-weight: 800; }
.hr-tier { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 800; color: #a8792a; }
.hr-tier em { font-style: normal; font-size: 12px; font-weight: 700; color: var(--text-2); }
.hr-tier em b { color: #16875a; font-family: var(--font-num); font-size: 15px; }
.hr-anchor { margin-top: 4px; font-size: 12px; color: var(--text-2); }
.hr-anchor b { color: #143629; }
.hr-breakdown { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.hr-sub { margin-top: 11px; font-size: 10px; font-weight: 800; color: var(--text-2); letter-spacing: .06em; }
.hr-sub + .hr-breakdown { margin-top: 5px; }
.hr-chip { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 999px; background: #eef5f1; border: 1px solid #dbe9e1; font-size: 11px; color: var(--text-2); font-weight: 700; }
.hr-chip b { font-family: var(--font-num); font-size: 12px; color: #143629; }
.hr-chip.is-zero { opacity: .42; }
.hr-note { margin-top: 9px; font-size: 11px; line-height: 1.6; color: var(--text-2); }
.hr-row { display: grid; grid-template-columns: 68px 1fr auto; gap: 8px; align-items: center; padding: 7px 0; border-top: 1px solid #eef3f0; font-size: 12px; }
.hr-row span { color: var(--text-2); }
.hr-row b { font-weight: 800; }
.hr-row i { font-style: normal; font-size: 11px; color: var(--text-2); font-family: var(--font-num); }
.hr-rank-head, .hr-rank-row { display: grid; grid-template-columns: 30px 108px 56px 1fr; gap: 8px; align-items: center; }
.hr-rank-head { font-size: 10px; font-weight: 800; color: var(--text-2); padding: 6px 0; border-bottom: 1px solid #e6efe9; }
.hr-rank-list { max-height: 460px; overflow-y: auto; }
.hr-rank-row { padding: 7px 0; border-bottom: 1px solid #f2f6f4; font-size: 12px; }
.hr-rank-row .hr-no { font-family: var(--font-num); font-weight: 800; color: var(--text-2); }
.hr-rank-row .hr-name { font-weight: 800; display: flex; align-items: center; gap: 5px; }
.hr-rank-row .hr-name i { font-style: normal; font-size: 9px; font-weight: 800; color: #fff; background: #16875a; border-radius: 999px; padding: 1px 5px; }
.hr-rank-row .hr-pts { font-family: var(--font-num); font-weight: 800; color: #a8792a; font-variant-numeric: tabular-nums; }
.hr-rank-row .hr-src { font-size: 10.5px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hr-rank-row.is-me { background: linear-gradient(90deg, rgba(22,135,90,.10), transparent 72%); border-left: 3px solid #16875a; padding-left: 7px; border-radius: 6px; }
@media (max-width: 560px) {
  .hr-rank-head, .hr-rank-row { grid-template-columns: 26px 92px 52px 1fr; gap: 6px; }
  .hr-rank-row .hr-src { font-size: 10px; }
}

/* 荣誉历程分面板：历史地位排行行 */
.hs-rank { margin-top: 6px; font-size: 12px; color: var(--text-2); }
.hs-rank b { color: #16875a; font-family: var(--font-num); font-size: 15px; }

/* ============================================================
   存档提示 / 纪念卡出图 / 键盘可达性 / 挑战与殿堂
   ============================================================ */
.save-hint { margin-left: auto; font-size: 11px; font-weight: 700; color: #7fd6a4; opacity: 0; transition: opacity .25s ease; }
.save-hint.is-on { opacity: 1; }
.save-hint.is-manual { color: #f2cf6b; }
.career-save-button { flex: 0 0 auto; min-height: 38px; margin-left: 12px; padding: 7px 12px; border: 1px solid #b9d7c2; border-radius: 9px; background: #f0f8f1; color: #175637; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.career-save-button:hover { background: #e1f2e5; }
.career-save-button:focus-visible { outline: 3px solid #e7c66d; outline-offset: 2px; }
.reveal-nation-label { display: inline-block; margin: 10px 8px 0 0; color: var(--text-2); font-size: 12px; font-weight: 700; }
.reveal-nation-select { min-height: 42px; max-width: 220px; padding: 7px 30px 7px 10px; border: 1px solid var(--border-str); border-radius: 9px; background: #fff; color: var(--text); font: inherit; font-size: 13px; }

.mc-acts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.mc-seed { margin-top: 8px; font-size: 11.5px; color: var(--career-muted, #c3ddcf); }
.mc-seed b { font-family: var(--font-num); font-size: 13px; color: #f2cf6b; letter-spacing: .04em; }

/* 键盘可达性：所有可点控件都有可见焦点环（此前只有 1px 描边，键盘用户看不出在哪） */
:focus-visible { outline: 2px solid #72f2ad; outline-offset: 2px; border-radius: 6px; }
.career-nav button:focus-visible, .feature-card:focus-visible, .offer-card:focus-visible,
.spot-card:focus-visible, .save-slot:focus-visible, .player-row:focus-visible { outline: 2px solid #72f2ad; outline-offset: 2px; }

/* 挑战与殿堂 */
.ch-wrap { display: flex; flex-direction: column; gap: 12px; }
.ch-card { border: 1px solid var(--border); border-radius: 16px; padding: 14px; background: #fff; display: flex; gap: 12px; align-items: flex-start; }
.ch-card.is-locked { opacity: .55; }
.ch-card .ch-main { flex: 1; min-width: 0; }
.ch-card b { display: block; font-size: 15px; }
.ch-card span { display: block; font-size: 12px; color: var(--text-2); margin-top: 4px; line-height: 1.55; }
.ch-card .ch-tag { display: inline-block; font-size: 10px; font-weight: 800; padding: 2px 7px; border-radius: 999px; background: #eef5f1; color: #16875a; margin-bottom: 6px; }
.ch-card .ch-tag.is-daily { background: #fff4db; color: #a8792a; }
.ch-card .ch-tag.is-script { background: #e8f3ff; color: #2a6fb0; }
.ch-card .ch-go { flex: none; align-self: center; }
.ch-meta { font-size: 11px; color: var(--text-2); margin-top: 8px; }
.ch-list { display: grid; gap: 8px; }
.ch-arch { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid #eef3f0; font-size: 12px; }
.ch-arch b { font-weight: 800; }
.ch-arch i { font-style: normal; font-family: var(--font-num); color: #a8792a; font-weight: 800; }
.ch-lock { font-size: 11px; color: var(--text-2); margin-top: 6px; }
.ch-lock.is-on { color: #16875a; font-weight: 800; }

/* ============================================================
   触摸目标下限
   自测（tools/audit.mjs）扫出最小可点控件只有 26–33px 高：
   赛事页分段按钮 30px、阵容页「我」的卡片 33px、球员页按钮 32px、
   生涯页认领按钮 26px、主菜单「球员数据库」29px —— 手机上都很难点中。
   Apple HIG 建议 44px，WCAG 2.5.8 底线 24px；这里统一抬到 40px。
   纯图标控件（关闭/音效/箭头）单独豁免，避免破坏原有排布。
   ============================================================ */
button { min-height: 40px; }
.career-nav button { min-height: 44px; }
.career-nav{display:flex;gap:4px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none}
.career-nav::-webkit-scrollbar{display:none}
.career-nav button{flex:0 0 auto;min-width:72px;padding:0 10px;scroll-snap-align:center;white-space:nowrap}

/* 开局天赋：球探档案作为唯一视觉焦点。 */
#screen-talent{min-height:100dvh;background:radial-gradient(circle at 50% 30%,#245c44 0,#0b2a1e 58%,#071b14 100%);color:#f6fff8}
#screen-talent .topbar{background:#0d3023;border-bottom:1px solid #ffffff24;color:#f6fff8}
#screen-talent .topbar-title{color:#f6fff8}
#screen-talent .btn-back{background:#e9f3eb;color:#103927}
.talent-stage{max-width:560px;margin:auto;padding:34px 18px calc(42px + env(safe-area-inset-bottom));text-align:center}
.talent-eyebrow{margin:0 0 12px;color:#83e9af;font-size:11px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.talent-stage h1{max-width:420px;margin:0 auto 12px;color:#fff;font-size:clamp(27px,7vw,39px);line-height:1.2;letter-spacing:-.04em}
.talent-intro{max-width:440px;margin:0 auto 20px;color:#c5dfd0;font-size:13px;line-height:1.7}
.talent-odds{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-bottom:24px}.talent-odds span{padding:5px 9px;border:1px solid #386b51;border-radius:99px;color:#cae8d7;font:800 11px var(--font-ui)}
.talent-envelope{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:370px;overflow:hidden;border:1px solid #4c8062;border-radius:24px;background:linear-gradient(145deg,#143d2d,#071b15);box-shadow:0 28px 55px #0006,inset 0 0 0 8px #ffffff06}
.talent-envelope:before{content:"";position:absolute;inset:12px;border:1px solid #86dca342;border-radius:17px;pointer-events:none}.talent-envelope>b{font-size:23px}.talent-envelope>small{margin-top:10px;color:#a5c8b2}.talent-seal{width:112px;height:112px;display:grid;place-items:center;margin-bottom:30px;border:1px solid #8ed6a9;border-radius:20px;transform:rotate(-8deg);background:#1f6443;color:#dff9e8;font-size:60px;box-shadow:0 15px 35px #0007}.talent-actions{margin-top:20px}.talent-actions .btn{width:100%;min-height:54px;font-size:16px}
.talent-card{--talent-a:#a6c9af;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:calc(100% - 38px);min-height:328px;padding:20px;border:1px solid var(--talent-a);border-radius:18px;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--talent-a) 22%,#092419),#0a241a 65%);box-shadow:0 0 40px color-mix(in srgb,var(--talent-a) 23%,transparent);animation:talent-rise .55s both}
.talent-card.rank-B{--talent-a:#65c7e5}.talent-card.rank-A{--talent-a:#ba95ff}.talent-card.rank-S{--talent-a:#f2ca69}.talent-card.rank-SS{--talent-a:#ff86c3}
.talent-card-top{position:absolute;top:16px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:center;color:#c2dccd;font-size:12px;font-weight:800}.talent-card-top strong{color:var(--talent-a);font:900 32px var(--font-num)}
.talent-card-mark{color:var(--talent-a);font-size:68px;line-height:1;text-shadow:0 0 35px var(--talent-a)}.talent-card h2{margin:15px 0 10px;color:#fff;font-size:28px}.talent-card p{max-width:290px;margin:0;color:#e6f4e9;font-size:14px;line-height:1.65}.talent-card-foot{position:absolute;bottom:15px;color:#9ab9a5;font-size:11px}.talent-revealing .talent-envelope{animation:talent-shake .4s}.talent-revealed .talent-card{animation:talent-rise .6s}
.talent-card .talent-position{margin-top:10px;color:var(--talent-a);font-size:12px;font-weight:800}
.pp-talent{border-left:5px solid #6db894}.pp-talent.rank-B{border-left-color:#60b9da}.pp-talent.rank-A{border-left-color:#b293e3}.pp-talent.rank-S{border-left-color:#d9ab46}.pp-talent.rank-SS{border-left-color:#db6aa7}.pp-talent strong{display:block;margin:8px 0 4px;font-size:22px;color:#133c2b}.pp-talent p{margin:0;color:#496b57;font-size:13px;line-height:1.6}
.pp-talent{border-left-color:var(--talent-a)!important;background:linear-gradient(120deg,color-mix(in srgb,var(--talent-a) 15%,#fff),#fff 58%)}.pp-talent-body{display:flex;align-items:center;gap:18px}.pp-talent .talent-card-mark{flex:none;font-style:normal;font-size:48px;line-height:1;color:var(--talent-b);text-shadow:0 0 20px color-mix(in srgb,var(--talent-a) 60%,transparent)}.pp-talent strong{color:#173d2b}.pp-talent h2 em{color:var(--talent-b)}
.opening-import,.opening-export{max-width:950px;margin:18px auto;padding:20px;border:1px solid #d4e1d8;border-radius:20px;background:#fff;box-shadow:0 12px 24px #113b2412}.opening-import h2,.opening-export h2{margin:0 0 6px;color:#123b2a;font-size:20px}.opening-import p,.opening-export p{margin:0 0 14px;color:#527061;font-size:13px;line-height:1.6}.opening-import label{display:block;margin:0 0 7px;font-size:12px;font-weight:800;color:#1b5e43}.opening-import textarea,.opening-export textarea{display:block;width:100%;min-height:72px;padding:11px 12px;resize:vertical;border:1px solid #bbd0c2;border-radius:11px;background:#f6faf7;color:#173d2b;font:700 12px/1.5 ui-monospace,Consolas,monospace;overflow-wrap:anywhere}.opening-import textarea:focus-visible,.opening-export textarea:focus-visible{outline:3px solid #52c88a;outline-offset:2px}.opening-import-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.opening-import-foot span,.opening-export [role=status]{color:#577364;font-size:12px}.opening-import-foot .is-error{color:#b73737}.opening-export .btn{margin-top:11px;margin-right:12px}
.ovr-fx{position:relative;isolation:isolate;overflow:hidden;border:1px solid #ffffff7a;background:linear-gradient(135deg,#245fc8,#1da9c5,#5556c9,#245fc8)!important;background-size:240% 240%!important;box-shadow:0 8px 20px #1d63a332,0 0 0 3px #a7ddff47;animation:ovr-spectrum 8s ease-in-out infinite}.ovr-fx.ovr-fx-elite{background:linear-gradient(135deg,#5c3caa,#b059c8,#e2ae48,#5c3caa)!important;background-size:240% 240%!important;box-shadow:0 8px 22px #683d9e42,0 0 0 3px #e7c8ff66}.ovr-fx.ovr-fx-mythic{background:linear-gradient(135deg,#a836ab,#e45187,#edc965,#56d6ca,#a836ab)!important;background-size:300% 300%!important;box-shadow:0 8px 25px #cb3e9d50,0 0 0 3px #ffd7efaa}.ovr-fx:after{content:"";position:absolute;inset:-35%;z-index:-1;background:linear-gradient(105deg,transparent 35%,#ffffff55 50%,transparent 65%);transform:translateX(-100%) rotate(-10deg);animation:ovr-glint 5s ease-in-out infinite}.ovr-fx b,.ovr-fx span{position:relative;z-index:1;color:#fff!important;text-shadow:0 2px 8px #06243b88}.identity-ovr.ovr-fx{padding:5px 9px;border-radius:13px}
@keyframes ovr-spectrum{50%{background-position:100% 50%}}@keyframes ovr-glint{55%,100%{transform:translateX(100%) rotate(-10deg)}}
.ovr-fx:after{z-index:0}
@media(max-width:640px){.opening-import{margin:16px 12px}.opening-import-foot{align-items:stretch;flex-direction:column}.opening-import-foot .btn{width:100%;min-height:46px}.pp-talent-body{gap:12px}.pp-talent .talent-card-mark{font-size:38px}}
@media(prefers-reduced-motion:reduce){.ovr-fx,.ovr-fx:after,.pp-talent .talent-card-mark{animation:none!important}}
.talent-card h2{color:var(--talent-a)}.talent-card:after{content:"";position:absolute;inset:26px 22px;border-radius:14px;pointer-events:none;background:radial-gradient(circle at 50% 40%,var(--talent-b),transparent 48%);opacity:.16;mix-blend-mode:screen}.talent-card>*{position:relative;z-index:1}.talent-card .talent-card-top{position:absolute;z-index:2}.talent-card .talent-card-foot{position:absolute}
.talent-variant-0 .talent-card-mark{animation:talent-pulse 2.5s ease-in-out infinite}.talent-variant-1 .talent-card-mark{animation:talent-turn 5s linear infinite}.talent-variant-2 .talent-card-mark{animation:talent-float 2.8s ease-in-out infinite}.talent-variant-3 .talent-card-mark{animation:talent-pulse 1.9s ease-in-out infinite}.talent-variant-4 .talent-card-mark{animation:talent-turn 8s linear infinite}.talent-variant-5 .talent-card-mark{animation:talent-float 3.4s ease-in-out infinite}.talent-variant-6 .talent-card-mark{animation:talent-pulse 3.2s ease-in-out infinite}
@keyframes talent-pulse{50%{transform:scale(1.13);filter:brightness(1.2)}}@keyframes talent-turn{to{transform:rotate(360deg)}}@keyframes talent-float{50%{transform:translateY(-10px)}}
@keyframes talent-rise{from{opacity:0;transform:translateY(20px) scale(.92)}to{opacity:1;transform:none}}@keyframes talent-shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@media(prefers-reduced-motion:reduce){.talent-envelope,.talent-card,.talent-card-mark{animation:none!important}}
.template-stage{max-width:560px;margin:auto;padding:28px 18px calc(40px + env(safe-area-inset-bottom));color:#eaf5ed}.template-eyebrow{font-size:12px;font-weight:800;letter-spacing:.18em;color:#8ad6b2}.template-stage h1{font-size:clamp(28px,7vw,38px);line-height:1.2;margin:12px 0}.template-intro{color:#a9c5b5;line-height:1.6;margin:0 0 24px}.template-sealed,.template-result{min-height:300px;border:1px solid #527365;border-radius:22px;background:linear-gradient(145deg,#0e2b20,#061912);padding:24px;box-shadow:0 18px 38px #03120d55}.template-sealed{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.template-sealed span{font-size:86px;color:#92d9aa}.template-sealed b{font-size:23px}.template-sealed p{color:#a9c5b5}.template-result{--template-accent:#b47c5d;border-color:var(--template-accent);box-shadow:0 0 34px color-mix(in srgb,var(--template-accent) 28%,transparent);animation:talent-rise .55s both}.template-silver{--template-accent:#c4d2da}.template-jade{--template-accent:#68cc9b}.template-sapphire{--template-accent:#69aff4}.template-violet{--template-accent:#c195f5}.template-gold{--template-accent:#f3cf73}.template-rank{color:var(--template-accent);font-size:12px;font-weight:800;letter-spacing:.12em}.template-emblem{float:right;font-size:45px;color:var(--template-accent);text-shadow:0 0 25px var(--template-accent)}.template-result h2{clear:both;margin:22px 0 7px;font-size:28px;color:#fff}.template-result p{line-height:1.6;color:#d6e8dc}.template-tradeoff{display:inline-block;color:var(--template-accent);font-weight:800;padding:8px 12px;border:1px solid color-mix(in srgb,var(--template-accent) 50%,transparent);border-radius:999px}.template-result dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 0}.template-result dl div{border-top:1px solid #456256;padding-top:9px}.template-result dt{color:#94b4a2;font-size:11px}.template-result dd{margin:3px 0 0;font-weight:800}.template-actions{position:sticky;bottom:0;padding:18px 0 calc(10px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#09261b 35%)}.template-actions .btn{width:100%;min-height:54px}.pp-template{border-left:4px solid #68cc9b}.pp-template strong{display:block;font-size:20px;color:#193e2c}.pp-template p{color:#4f695b}.pp-template small{color:#637d6b}.template-growth-note{margin:9px 0 0;color:#247b52;font-weight:800}@media(prefers-reduced-motion:reduce){.template-result{animation:none}}
.template-stage{color:#153d2c}.template-stage h1{color:#123827}.template-eyebrow{color:#237b53}.template-intro{color:#557363}.template-sealed{color:#eaf5ed}.template-actions{background:linear-gradient(transparent,#f5f6ef 35%)}
.template-result dd{color:#eaf5ed}
.cr-btn { min-width: 40px; }
/* 弹窗关闭按钮：34×34 偏小，放到 44×44 的可点区域 */
.modal-x, #modal-x { min-width: 44px; min-height: 44px; display: grid; place-items: center; }
.sl-icon, .snd-toggle, .btn-x, .nav-arrow, .mini-x,
.att-chip, .dot, .page-dot { min-height: 0; min-width: 0; }

.fanbase-match-gain{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:13px 15px;border:1px solid rgba(45,128,91,.22);border-radius:14px;background:linear-gradient(110deg,#eff9f2,#fff);color:#234b37}.fanbase-match-gain span{font-size:12px;font-weight:700}.fanbase-match-gain b{margin-left:auto;color:#247246;font-size:17px;font-variant-numeric:tabular-nums}.fanbase-match-gain small{color:#687b6d;font-size:11px;white-space:nowrap}.fanbase-total{font-size:30px;font-weight:900;letter-spacing:-.04em;color:var(--career-ink);font-variant-numeric:tabular-nums}.fanbase-total small{margin-left:5px;font-size:12px;letter-spacing:0;color:var(--career-muted)}.fanbase-caption{margin-top:6px;color:var(--career-muted);font-size:11px;line-height:1.5}.fanbase-glance .rc-bar{margin-top:14px}

.sr-fanbase{background:linear-gradient(125deg,#edf7ef,#fff);border-color:#cfe3d3}.sr-fanbase strong{display:block;margin:8px 0;font-size:32px;letter-spacing:-.04em;color:#166b47;font-variant-numeric:tabular-nums}.sr-fanbase>span{display:block;color:#347551;font-weight:700;font-size:12px}.sr-fanbase p{margin:8px 0 0;color:var(--career-muted);font-size:11px;line-height:1.6}.ballon-criteria{display:grid;gap:7px;margin:12px 0 0;padding:0;list-style:none}.ballon-criteria li{display:grid;gap:2px;padding:9px 11px;border-radius:10px;background:#f5f7f2;font-size:11px}.ballon-criteria b{color:var(--career-ink)}.ballon-criteria span{color:var(--career-muted);line-height:1.5}.sp-comp-detail{display:block;margin-top:6px;color:var(--career-muted);font-size:10px;line-height:1.5}.sp-fanbase .sp-fan-count{font-size:24px;color:var(--grass-d);font-variant-numeric:tabular-nums}.sp-fanbase>p{margin:0;color:var(--career-muted);font-size:12px;line-height:1.6}.aging-report{color:#a35c34!important;font-weight:700}.retirement-verdict{border-color:#d6c38b;background:linear-gradient(135deg,#fffaf0,#fff)}.legacy-quote{padding:12px;border-left:3px solid #c3a753;background:rgba(255,255,255,.7);font-style:italic}

/* 退役终章：五段真实生涯故事。 */
.retirement-story{background:#fffcf5;border-color:#e5dcc5}.retirement-story-intro{margin:2px 0 20px;color:#665539;font-size:14px;line-height:1.85}.retirement-chapters{border-left:2px solid #d8c6a0;margin-left:7px;padding-left:20px}.retirement-chapter{position:relative;padding:0 0 18px}.retirement-chapter:last-child{padding-bottom:0}.retirement-chapter:before{content:"";position:absolute;left:-26px;top:5px;width:10px;height:10px;border-radius:50%;background:#b99047;box-shadow:0 0 0 4px #fffcf5}.retirement-chapter h3{margin:0 0 5px;color:#355344;font-size:12px;font-weight:900;letter-spacing:.12em}.retirement-chapter p{margin:0;color:#324a3d;font-size:13.5px;line-height:1.9;overflow-wrap:anywhere}

/* v17 matchday status and legacy match notes */
.pm-start-status{display:grid;gap:4px;margin:0 0 16px;padding:14px 16px;border:1px solid #cfe3d6;border-radius:12px;background:#f2f8f3;color:#284637;font-size:15px;line-height:1.5}
.pm-start-status b{font-size:17px;color:#176747}.pm-start-status span{font-size:13px}.pm-start-status strong{font-size:13px;color:#b74c3b}
.mr-history-note{margin:0 0 16px;padding:12px 14px;border:1px solid #e9d7a2;background:#fff9e8;color:#654d21;font-size:13px;line-height:1.6}
#pm-tactics .tb-tactic,.ev-choices .ev-choice{min-height:44px}
#screen-match .mr-score{font-variant-numeric:tabular-nums}
