/* Matchday UI: focused hierarchy shared across the existing game screens. */
:root{--matchday-dark:#10271e;--matchday-green:#176747;--matchday-paper:#f2f1eb;--matchday-red:#b74c3b;--matchday-gold:#b79239}
body{font-size:15px;background-color:var(--matchday-paper)}
button:focus-visible,summary:focus-visible{outline:3px solid #4d9d78;outline-offset:3px}
button,.btn-back{min-height:44px}
.modal-body{font-size:15px;line-height:1.65}.modal-head{font-size:17px}.modal-x{min-width:44px;min-height:44px}
.ev-body,.ev-result{font-size:15px;line-height:1.7}.ev-choice b{font-size:16px}.ev-choice span,.tb-tactic small{font-size:13px;line-height:1.5}
#screen-menu:before{background:linear-gradient(180deg,#061c1480,#061c1430 30%,#061c14eb 90%)}
#screen-menu .menu-inner{max-width:560px;padding:0 24px calc(24px + var(--safe-b))}
#screen-menu .menu-hero{padding:80px 0 24px;align-items:flex-start;text-align:left}
#screen-menu .menu-title{font-size:clamp(30px,7.5vw,42px);letter-spacing:.04em;line-height:1.25}
#screen-menu .menu-title-en{font-size:12px;letter-spacing:.16em;margin:10px 0 0}
#screen-menu .menu-sub{font-size:15px;line-height:1.6;font-weight:400;margin:16px 0}
#screen-menu .menu-season{font-size:12px;border-radius:6px;box-shadow:none;background:#10271e80}
#screen-menu .menu-actions{margin-top:0;gap:16px}
#screen-menu .feature-grid-main{grid-template-columns:1fr;gap:10px}
#screen-menu .feature-grid{gap:14px;padding:0}
#screen-menu .feature-card{min-height:66px;padding:16px 18px;border-radius:12px;box-shadow:none;background:#fff;border:1px solid #e0e5df;backdrop-filter:none}
#screen-menu .feature-card.fc-primary{min-height:78px;background:#f6f3e7;border-color:#f6f3e7;color:#10271e;box-shadow:none}
#screen-menu .fc-body b{font-size:18px;color:inherit}#screen-menu .fc-body>span{font-size:13px;color:#567062}
#screen-menu .fc-arrow{font-size:28px;color:inherit;opacity:.7}
#screen-menu .feature-card:not(.fc-primary)[data-act=new]{min-height:52px;background:#ffffff0b;color:#f1f5ed;border-color:#ffffff40}
#screen-menu .feature-card:not(.fc-primary)[data-act=new] .fc-body>span{display:none}
#screen-menu .menu-ranking{background:#ffffff0d;color:#f4f6ef;border-color:#ffffff40}
#screen-menu .menu-ranking .fc-body>span{color:#d5e2d8}.menu-ranking .fc-icon-img{width:36px;height:36px}
.menu-save-summary{color:#fff;padding:0 0 4px}.menu-save-summary[hidden]{display:none}.menu-save-summary>span{font-size:12px;color:#d1ded4}.menu-save-summary b{display:block;font-size:24px;margin-top:5px}.menu-save-summary p{font-size:13px;margin:4px 0 0;color:#d1ded4;overflow-wrap:anywhere}
.menu-more{color:#edf3ed;border-top:1px solid #ffffff30;padding-top:8px}.menu-more summary{min-height:44px;padding:12px 0;cursor:pointer;font-size:14px;font-weight:600}.menu-more[open] summary{margin-bottom:8px}
#screen-menu .feature-grid-secondary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#screen-menu .feature-grid-secondary .feature-card{min-height:78px;padding:12px;background:#f4f3ee}
#screen-menu .feature-grid-secondary .fc-body b{font-size:15px}#screen-menu .feature-grid-secondary .fc-body>span{display:block;font-size:12px}
#screen-menu .menu-foot{font-size:12px;padding-top:20px;line-height:1.6}
.career-identity{background:var(--matchday-dark);box-shadow:none;padding:16px;gap:8px 14px}.career-identity h2{font-size:22px;overflow-wrap:anywhere}.career-identity>p{font-size:13px}.career-identity .identity-status{font-size:12px}.identity-ovr span{font-size:12px}.identity-ovr.ovr-fx{animation:none;box-shadow:none;background:#254e3b!important}.identity-ovr.ovr-fx:after{display:none}
.career-main{padding:16px 16px 90px}.career-section-body{margin:20px auto}.career-context{align-items:center;gap:10px;padding-bottom:14px;flex-wrap:wrap}.career-context>span:first-child{display:none}.career-context>b{font-size:20px}.career-save-button{min-height:44px;padding:10px 14px;font-size:13px}
.career-nav{border-top:1px solid #d7dfd6;background:#fff;box-shadow:none}.career-nav button{min-width:74px;font-size:13px;border-radius:8px}.career-nav button.is-active{background:#e5efe5;color:#12402f;box-shadow:none}
.matchday-home{padding:20px;background:var(--matchday-dark);color:#fff;border-radius:14px;margin:0 0 24px}
.matchday-label{font-size:12px;letter-spacing:.04em;color:#cfdecf}.matchday-comp{margin:8px 0 20px;font-size:16px;font-weight:700}.matchday-home h2{font-size:25px;line-height:1.3}
.matchday-teams{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}.matchday-teams>div{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-width:0}.matchday-teams img{width:46px!important;height:46px!important;object-fit:contain}.matchday-teams b{font-size:16px;line-height:1.4;overflow-wrap:anywhere}.matchday-teams>span{font-size:12px;color:#cfdecf}
.matchday-status{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:10px;padding:18px 0;margin:18px 0 0;border-top:1px solid #ffffff30}.matchday-status>div{min-width:0}.matchday-status span{display:block;font-size:12px;color:#cfdecf}.matchday-status b{display:block;font-size:15px;line-height:1.5;margin-top:5px;overflow-wrap:anywhere}
.matchday-home .btn-primary{width:100%;min-height:50px;font-size:16px;background:#f3f0e2;color:#10271e;border-color:#f3f0e2;box-shadow:none;display:flex;justify-content:space-between;align-items:center}
.matchday-secondary{display:block;width:100%;margin-top:8px;border:0;background:transparent;color:#dfebdf;font-size:13px;min-height:44px}
.career-chapter{min-height:200px;border-radius:12px;box-shadow:none}.chapter-copy{padding:20px}.chapter-copy h1{font-size:25px;line-height:1.4}.chapter-copy>p{font-size:15px;line-height:1.7}.chapter-kicker{font-size:12px!important}.storyline-strip small,.storyline-strip span,.career-consequence>span{font-size:12px}
.sp-card,.card{border-radius:12px;box-shadow:none;padding:16px;margin-bottom:20px}.card-title,.sp-head h2{font-size:18px}.sp-eyebrow{font-size:12px;letter-spacing:.06em}.sp-phase span,.sp-comp-detail,.sp-stat span,.sp-comp-meta span,.gl-row-state,.gl-row-label em,.lg-meta,.rc-line span,.rc-next{font-size:12px;line-height:1.6}
.sp-cta{padding:18px;margin:0 0 20px;border-radius:12px;box-shadow:none}.sp-cta>span{font-size:15px;line-height:1.6}.sp-next{margin-bottom:12px}.sp-next-line{font-size:17px;line-height:1.6}.sp-cta-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sp-cta-acts .btn-primary{grid-column:1/-1;min-height:50px;font-size:16px}.sp-cta-acts .btn-secondary{font-size:13px;min-height:44px}
.sim-preferences{border:1px solid var(--border);border-radius:12px;background:#fff;padding:0 16px;margin:0 0 24px}.sim-preferences summary{min-height:48px;padding:14px 0;cursor:pointer;font-size:14px;font-weight:700}.sim-preferences .sp-auto-key{padding:12px 0;font-size:14px}.sim-preferences .sp-auto-key em{font-size:12px;line-height:1.6}.sp-auto-key input{min-width:20px;min-height:20px}
.pm-head{padding:0 0 14px}.pm-teams{padding:18px 0}.pm-teams>div{width:40%;gap:10px}.pm-teams>div span{font-size:16px}.pm-teams img{width:44px!important;height:44px!important}.pm-start-status{background:#f2f6ef;font-size:15px}.pm-factor-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pm-factor-list>span{font-size:12px;padding:5px 8px;border:1px solid #d2ded2;border-radius:6px;background:#fff}.tb-tactics{gap:8px}.tb-tactic{min-height:68px;padding:12px;border-radius:10px}.tb-tactic b{font-size:15px}.tb-tactic.on{box-shadow:none;outline:2px solid var(--grass);outline-offset:-2px}
#match-body{padding-top:16px}.mr-card,.mr-card.w,.mr-card.d,.mr-card.l{background:var(--matchday-dark);border-radius:12px;box-shadow:none;padding:20px 14px;margin-bottom:18px}.mr-card.big,.mr-card.huge{box-shadow:none}.mr-comp{font-size:13px;line-height:1.5}.mrs-num{font-size:clamp(40px,10vw,48px);font-variant-numeric:tabular-nums}.mrs-side{min-width:0}.mrs-side span{font-size:14px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}.mr-xg{font-size:12px;line-height:1.6;color:#d6e5d9}.mr-visual{height:150px;border-radius:12px;margin-bottom:20px}.mr-visual>div span{font-size:12px}.mr-visual>div b{font-size:24px}
.mr-performance{border-radius:12px;background:#fff;padding:16px;box-shadow:none;margin-bottom:12px}.mrr-label{font-size:12px}.mr-verdict span,.mr-verdict i{font-size:13px;line-height:1.6}.mr-verdict b{font-size:20px}
.mr-key-stats{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:20px}.mr-key-stats>div{text-align:center}.mr-key-stats b{display:block;font:800 28px/1.2 var(--font-num);font-variant-numeric:tabular-nums}.mr-key-stats span{display:block;font-size:12px;color:var(--text-2);margin-top:6px}.mr-details{border:1px solid var(--border);background:#fff;border-radius:12px;margin-bottom:20px;padding:0 16px}.mr-details summary{min-height:48px;font-size:15px;font-weight:700;padding:14px 0;cursor:pointer}.mr-details .stat-grid{padding:12px 0 16px}.sg-cell span{font-size:12px}.mr-motm{box-shadow:none;border-radius:12px}.mr-motm>span{font-size:12px}.mr-motm p{font-size:15px;line-height:1.7}.match-decision span{font-size:12px;line-height:1.6}
@media(max-width:380px){#screen-menu .menu-inner{padding-left:18px;padding-right:18px}.career-identity .identity-status{display:none}.career-identity .identity-status:first-of-type{display:flex}.matchday-home{padding:16px}.matchday-teams{gap:8px}.matchday-teams b{font-size:14px}.matchday-status{grid-template-columns:1fr 1fr}.matchday-status>div:first-child{grid-column:1/-1}.sp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-comp{flex-wrap:wrap}.pm-factor-list>span{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.modal-head{background:var(--matchday-dark);color:#fff;background-image:none}.pm-board-details{border:1px solid var(--border);border-radius:10px;margin:14px 0;padding:0 12px}.pm-board-details summary{font-size:14px;min-height:44px;padding:12px 0;cursor:pointer}.pm-board-details[open] summary{margin-bottom:8px}.modal-body .pm-teams{padding:8px 0;margin-bottom:8px}.modal-body .pm-start-status{padding:12px}.pm-head .pm-reasons{font-size:12px}.modal-body .ev-body{margin:8px 0 16px}
/* 全局主页入口：与现有线性音效图标共用尺寸和视觉语言。 */
.home-toggle{position:fixed;top:calc(4px + env(safe-area-inset-top,0px));right:max(12px,calc(50vw - 268px));z-index:65;width:44px;height:44px;min-height:44px;padding:0;display:grid;place-items:center;border:1px solid var(--border-str);border-radius:12px;background:var(--card);color:var(--matchday-dark);box-shadow:var(--shadow);cursor:pointer;}
.home-toggle[hidden]{display:none}.home-toggle svg{width:21px;height:21px}.home-toggle:active{transform:translateY(1px)}.home-toggle:focus-visible{outline:3px solid var(--grass);outline-offset:3px}
body.on-career-shell .home-toggle{top:calc(12px + env(safe-area-inset-top,0px));right:16px;background:#f5f5ec;color:var(--matchday-dark);box-shadow:none}
.screen>.topbar{padding-right:68px}body.on-career-shell .career-identity{padding-right:72px}
.home-return-copy{font-size:15px;line-height:1.7;margin:4px 0 20px;color:var(--text)}.home-return-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:10px}.home-return-actions .btn{font-size:14px;padding:12px 8px;min-height:48px;white-space:normal}
.home-return-error{color:var(--red);font-size:14px;line-height:1.6;margin:0 0 16px}.home-return-error[hidden]{display:none}
/* 开球前的短暂准备：微动画由真实启动步骤驱动，不延长等待。 */
.boot{background:var(--matchday-paper);color:var(--matchday-dark);transition:opacity .28s ease}.boot-inner{text-align:left;padding:28px;width:min(100%,380px);max-width:380px}.boot-kicker{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--matchday-green)}
.boot-pitch{position:relative;margin:28px 0 24px;height:210px;border-radius:18px;background:var(--matchday-dark);color:#abc7b4;overflow:hidden;animation:bootPitchIn .6s ease both}.boot-field{display:block;width:100%;height:184px;position:absolute;left:0;top:10px;animation:bootLinesIn .8s ease both}.boot-route{opacity:.55}.boot-ball{position:absolute;width:19px;height:19px;left:calc(50% - 9px);top:92px;animation:bootBallMove 2.6s ease-in-out infinite}.boot-pitch-caption{position:absolute;bottom:16px;left:20px;font-size:10px;letter-spacing:.14em;color:#a7beb1}
.boot-title{font-size:32px;letter-spacing:.03em;margin:0 0 12px;font-weight:800;line-height:1.3}.boot-sub{font-size:14px;letter-spacing:0;color:var(--text-2);margin:0 0 38px;line-height:1.6}.boot-load-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-2);margin-bottom:10px}.boot-load-label b{color:var(--matchday-green);font-variant-numeric:tabular-nums}.boot-bar{height:4px;background:#d6dfd5;overflow:hidden}.boot-bar i{background:var(--matchday-green);transition:width .15s ease}.boot-step{font-size:12px;color:var(--text-2);margin:12px 0 0;line-height:1.6;min-height:20px}
@keyframes bootPitchIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes bootLinesIn{from{opacity:.25}to{opacity:1}}@keyframes bootBallMove{0%,100%{transform:translate(-16px,8px) rotate(-12deg)}50%{transform:translate(16px,-8px) rotate(35deg)}}
/* 生涯中的共用卡片、标题和导航。 */
.career-nav{padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:4px;background:#fff;border-top:1px solid var(--border);scroll-padding-inline:12px}.career-nav button{min-width:66px;min-height:58px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex-shrink:0;color:var(--text-2);border-radius:10px;transition:background .15s ease,color .15s ease}.career-nav button svg{width:20px;height:20px}.career-nav button span{font-size:11px;line-height:1.3;white-space:nowrap}.career-nav button.is-active{background:var(--matchday-dark);color:#fff}.career-nav button:active{transform:translateY(1px)}.career-main{padding-bottom:110px}
.section-intro{padding:4px 0 20px}.section-intro>span{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--matchday-green)}.section-intro h1{font-size:27px;line-height:1.4;margin:8px 0}.section-intro p{font-size:14px;line-height:1.7;margin:8px 0 0}
.role-panel,.body-card,.contract-card,.offfield-card,.academy-card,.match-trail,.match-trail-detail,.match-trail-empty{border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:none;padding:18px}.role-panel h2,.body-card h2,.contract-card h2,.offfield-card h2,.academy-card h2{font-size:18px;margin-top:0;margin-bottom:14px;line-height:1.5}.role-panel p,.body-card p,.contract-card p,.offfield-card p,.academy-card p{font-size:14px;line-height:1.7}.body-meters>div{padding:10px 0}.competitor-list>div{padding:12px 0}.competitor-list b{font-size:14px}.competitor-list span,.competitor-list small{font-size:12px}
.career-section-body .btn-primary{background:var(--matchday-green);box-shadow:none;border:1px solid var(--matchday-green);border-radius:10px}.career-section-body .matchday-home .btn-primary{background:#f3f0e2;border-color:#f3f0e2;color:var(--matchday-dark)}.career-section-body .btn-primary:hover{transform:none;box-shadow:none}.career-section-body .btn-secondary{border-radius:10px;box-shadow:none}.career-section-body .btn:active:not(:disabled){transform:translateY(1px)}
.player-profile,.pp-attr-group,.bench-box,.stb-card,.mailbox-card{box-shadow:none!important;border-radius:14px}.pp-attr-groups{gap:14px}.pp-attr-group{padding:16px}.pp-attr-name{font-size:12px;line-height:1.5}.pp-attr-bar{height:5px;border-radius:5px}.pp-attr-bar i{border-radius:5px}.me-strip{border-radius:14px;box-shadow:none}.ms-main{font-size:14px;line-height:1.7}.match-result-card{box-shadow:none;border-radius:10px}.sp-stat b{font-variant-numeric:tabular-nums}.career-season-detail{border-radius:12px}.career-season-detail summary{min-height:44px}
@media(max-width:350px){.boot-inner{padding:24px}.boot-title{font-size:29px}.boot-pitch{height:185px;margin:20px 0}.boot-field{height:164px}.boot-ball{top:82px}.boot-sub{margin-bottom:28px}.career-nav button{min-width:62px}.home-return-actions{grid-template-columns:1fr}.section-intro h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){.boot-pitch,.boot-field,.boot-ball,.career-nav button{animation:none;transition:none}.boot-bar i{transition:none}.boot{transition:none}}
.pp-wrap{gap:18px}.pp-card{border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:none;padding:18px;margin-bottom:18px}.pp-card h2{font-size:18px;line-height:1.5;margin:0 0 14px}.pp-card h2 em{font-size:12px;font-weight:400}.pp-card>p,.pp-note{font-size:14px;line-height:1.7}.opening-export summary{min-height:44px;font-size:16px;font-weight:700;cursor:pointer;line-height:1.6}.opening-export[open] summary{margin-bottom:12px}.opening-export textarea{resize:none;min-height:90px;font-size:12px;font-weight:400}.opening-export .btn{width:100%;margin-right:0}.training-intensity button,.service-grid button{border-radius:10px;box-shadow:none;min-height:54px}.training-intensity button b,.service-grid button b{font-size:14px}.training-intensity button span,.service-grid button span{font-size:12px;line-height:1.5}.finance-summary>div{border-radius:10px;background:#f3f6f0}.finance-summary b{font-variant-numeric:tabular-nums}

.pp-head-ovr.ovr-fx{background:#254e3b!important;box-shadow:none;animation:none;color:#fff}.pp-head-ovr.ovr-fx:after{display:none}
