/* Shared visual hierarchy: ink for reading, violet for actions, color for meaning. */
:root{--font-game:"Hiragino Maru Gothic ProN","Yuanti SC","PingFang SC","Microsoft YaHei",sans-serif;--text-strong:#383044;--text-body:#575064;--text-meta:#777080;--action:#7855bd;--positive:#39806a;--negative:#b05f72;--panel:#fdfcfe;--line:#9b8ba9}
body,button,input,select{font-family:var(--font-game)}body{color:var(--text-body);font-size:12px;font-weight:450;font-feature-settings:"tnum"}
h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{letter-spacing:.2px;font-weight:850;line-height:1.4;color:var(--text-strong)}b,strong{font-weight:800}
.tab-title h1,.tab-screen .camp-title h1,.tab-screen .trial-heading h1,.mall-screen .mall-heading h1,.setup-heading h1{font-size:23px;color:var(--text-strong);font-weight:850}
.game-kicker,.eyebrow,.entry-eyebrow{font-size:10px;font-weight:700;letter-spacing:1px;color:var(--text-meta)}
.tab-caption,.subtitle,.cabinet-help,.setup-heading p,.setup-actions>small,.school-name-note,.field-label{font-size:10px!important;line-height:1.6;color:var(--text-meta)!important}
.button{font-weight:750;letter-spacing:.2px;line-height:1.4}.button.primary,.screen-main-actions>.button.primary{background:var(--action);color:#fff;border-color:#59416e;box-shadow:0 4px #59416e,inset 0 2px #b197d6}.button.secondary{color:#655570;background:#fdfbff;border-color:#a18ead;box-shadow:0 3px #c4b6cf}
.button.danger{color:#864d60;background:#f3dfe5;border-color:#b28799}.button:disabled{opacity:.45;filter:saturate(.4)}
.screen-pager button{font-size:11px;color:#6f5a7f}.screen-page-label{font-size:10px;color:#77657f}.screen-dialog-actions .button{font-size:12px}
.mobile-top .brand>span{color:var(--text-strong);font-size:18px;font-weight:850}.mobile-top>.icon-button{font-weight:850;font-size:19px;color:#795b90}
.school-summary b,.home-next b,.expedition-cta h2,.tab-list-title>b,.character-copy h3,.team-screen .candidate b{color:var(--text-strong);font-weight:800}
.home-next small,.expedition-cta p,.school-summary>button>span,.team-strength,.team-screen .formation>small,.team-screen .candidate small,.tab-list-title>small{color:var(--text-meta)}
.school-summary b{font-size:13px}.home-next small{font-size:10px}.team-strength b{font-size:19px;color:#77518c}.team-screen .simple-member>b{font-size:9px}.team-screen .candidate b{font-size:13px}.team-screen .candidate small{font-size:10px}
.character-copy>p,.card-language{color:var(--text-meta)}.character-copy h3 small{font-size:10px;color:#806090}.roster-screen .card-language{font-size:9px}
.trial-screen .arena-power strong{color:#72518f;font-weight:900}.trial-screen .arena-power>span{font-size:10px;color:var(--text-meta)}.trial-screen .arena-power>b{font-size:10px}.trial-screen .trial-rule b{font-size:11px;color:var(--text-body)}.trial-screen .trial-rule small{font-size:10px;color:var(--text-meta)}
.supply-banner h2,.supply-collection-heading h2,.cabinet-sheet h2{font-weight:850;color:var(--text-strong)}.supply-banner p,.supply-banner-kicker,.supply-links>span{color:var(--text-meta)}.supply-pity{font-size:10px}.supply-pity b{color:#7a558e}.mall-wallet{font-size:12px;color:#6c5484;font-weight:800}.cabinet-entry b{color:var(--text-strong)}.cabinet-entry small{color:var(--text-meta);font-size:10px}
.cabinet-sheet .supply-tile>b{font-size:11px;color:var(--text-strong)}.cabinet-sheet .supply-tile>small{color:#6f627a}.cabinet-sheet .supply-level{color:#7e6c8c}.supply-tile-quality{font-weight:700}.supply-result-card>b{color:var(--text-strong);font-size:11px}.supply-result-card>small{font-size:9px}.supply-result-card>em{color:#756580}
.screen-dialog-body h2{font-size:22px;color:var(--text-strong);font-weight:850}.sketch-dialog p,.screen-sheet>p,.screen-sheet .small.muted,.detail-hero p,.finish-hero p{font-size:12px;color:var(--text-body);line-height:1.75}
.event-options b,.campus-options b,.shop-card h3{color:var(--text-strong);font-size:14px}.event-options small,.campus-options small,.shop-card p{color:var(--text-body);font-size:11px}.event-options .event-risk{color:var(--negative)}.guide-steps h3,.small-heading{color:var(--text-body)}.guide-steps p,.history-list>div,.teacher-progress>div{color:var(--text-meta)}
.classroom-title h1{font-size:17px;color:var(--text-strong);font-weight:850}.classroom-title span{font-size:10px;color:var(--text-meta)}.classroom-tools>button{height:36px;width:35px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2px;gap:0}.classroom-tools>button .campus-icon{width:20px;height:20px}.classroom-tools>button>small{font-size:8px;line-height:10px;font-weight:700;color:#766080}.classroom-tools>button.classroom-exit{font-size:20px;background:#f3dfe5;color:#a06d80}.classroom-tools>.classroom-exit>small{color:#976c7e}.classroom-nameplate b{color:#60506c}.classroom-screen .stage-speech{font-size:11px;color:var(--text-body)}
.school-action-heading>b{font-size:13px;color:var(--text-strong)}.attribute-choice>b{font-size:12px;color:var(--text-body)}.attribute-choice>strong{font-size:23px;color:#72518a;font-weight:900}.attribute-choice>small{font-size:9px;color:#9b6d7c}.school-rest b{font-size:12px}.school-rest span{font-size:10px;color:#6f8b7d}
.learning-dashboard-label,.compact-learning .learning-dashboard-label{font-size:10px;color:#7e728b}.learning-dashboard-value,.compact-learning .learning-dashboard-value{font-size:23px;color:#625073;font-weight:900}.learning-dashboard-language .learning-dashboard-value{font-size:16px;color:#607f9c}.learning-dashboard-positive{color:var(--positive);font-weight:800}.learning-dashboard-negative{color:var(--negative);font-weight:800}.learning-dashboard-unchanged{color:#b4a8bb}.mini-stats em,.language-bars strong{color:#6c5380;font-weight:850}
.outing-actions b{font-size:14px;color:var(--text-strong)}.outing-actions small{font-size:10px;color:var(--text-meta)}.yanli-versus strong{font-size:25px;font-weight:900;color:#72518b}.tactic-choices b{font-size:12px;color:var(--text-body)}.tactic-choices small{font-size:10px;color:var(--text-meta)}.result-numbers strong{color:#72518b;font-size:25px;font-weight:900}
.story-caption h1,.entry-title h1,.story-ending h1,.entry-loading h1{color:var(--text-strong)}.entry-title header p,.entry-welcome>b{color:var(--text-body)}.story-caption p{color:var(--text-body);font-size:13px;font-weight:450;line-height:1.8}.story-caption>small,.entry-actions>small,.entry-welcome>span,.ending-copy>small{color:var(--text-meta)}.ending-copy p{color:var(--text-body)}.first-week-coach>b{color:var(--text-strong)}.first-week-coach p{color:var(--text-body);font-size:12px}.first-week-coach .coach-label{color:#9275a3}.guide-inline>b{color:#76528c}.guide-inline>span{color:var(--text-body)}
@media(max-height:730px){.tab-title h1,.tab-screen .camp-title h1,.tab-screen .trial-heading h1,.mall-screen .mall-heading h1{font-size:21px}.attribute-choice>strong{font-size:21px}.learning-dashboard-value,.compact-learning .learning-dashboard-value{font-size:21px}.classroom-title h1{font-size:15px}.classroom-title span{font-size:9px}.classroom-tools>button{width:31px;height:33px}.classroom-tools>button .campus-icon{width:18px;height:18px}.story-caption p{font-size:12px}.supply-result-card>b{font-size:10px}}
/* Legacy count badges must not reposition the new plain-language tool labels. */
.classroom-tools>button>small{position:static!important;display:block!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;min-width:0!important;height:auto!important;border-radius:0;font-size:8px!important;line-height:10px!important}
/* Use a full weight family for readable body copy and high-impact numeric rewards. */
:root{--font-game:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif}
.entry-title h1,.story-caption h1,.story-ending h1{font-family:"Yuanti SC","PingFang SC",sans-serif;font-weight:850}
.learning-dashboard-value,.compact-learning .learning-dashboard-value,.attribute-choice>strong,.yanli-versus strong,.arena-power strong{font-family:system-ui,-apple-system,"PingFang SC",sans-serif;font-weight:850;letter-spacing:-.4px}
.supply-result-card[data-quality="0"]>small{color:#5e6372}.supply-result-card[data-quality="1"]>small{color:#326448}.supply-result-card[data-quality="2"]>small{color:#365f94}.supply-result-card[data-quality="3"]>small{color:#744990}.supply-result-card[data-quality="4"]>small{color:#805c25}
/* Cabinet summaries emphasize the primary bonus; full two-stat details remain one tap away. */
.cabinet-sheet .supply-tile{padding:3px}.cabinet-sheet .supply-tile .supply-illustration{width:42px;height:42px}
.cabinet-sheet .supply-tile-quality{font-size:8px;line-height:1.2}.cabinet-sheet .supply-tile .supply-level{font-size:9px;line-height:1.3}
.cabinet-sheet .supply-tile>small{font-size:11px;line-height:1.3;font-weight:800;color:#655078}.supply-result-card>em{font-size:9px}
/* Shared profile/graduation rows: identical label, track and numeric columns. */
.sketch-dialog .mini-stats,.sketch-dialog .language-bars{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;margin:8px 0}
.sketch-dialog .mini-stats>div,.sketch-dialog .language-bars>div{display:grid;grid-template-columns:60px minmax(0,1fr)52px;gap:8px;align-items:center;min-height:22px;font-size:11px}
.sketch-dialog .mini-stats>div>span:first-child,.sketch-dialog .language-bars>div>span:first-child{width:auto;min-width:0;white-space:nowrap;color:#777080}
.sketch-dialog .mini-stats>div>.ability-meter,.sketch-dialog .language-bars>div>.ability-meter{width:100%;min-width:0;background:#e3deed}
.sketch-dialog .mini-stats>div>em,.sketch-dialog .language-bars>div>strong{width:100%;font-size:11px;font-weight:800;text-align:right;justify-self:end;font-style:normal;font-variant-numeric:tabular-nums;color:#6c5380}
.sketch-dialog .mini-stats+.language-bars{margin-top:0;padding-top:8px;border-top:1px dashed #d7cbe2}
.sketch-dialog .language-bars .ability-meter:not(.overflow-meter)>.meter-foundation{background:#94b2cb}
@media(max-height:730px){.sketch-dialog .mini-stats,.sketch-dialog .language-bars{gap:3px;margin:6px 0}.sketch-dialog .mini-stats>div,.sketch-dialog .language-bars>div{min-height:18px}}

/* 招生：抽取前只突出随机按钮，抽取后由入学按钮接棒。 */
.student-roll-card .recruit-random-actions .random-button.primary{background:var(--action);color:#fff;border-color:#59416e;box-shadow:0 4px #59416e,inset 0 2px #b197d6;min-height:44px;font-size:14px;font-weight:800}
.setup-actions>.setup-waiting{display:block;text-align:center;color:var(--text-meta);font-size:11px;line-height:1.5;padding:8px 0;font-weight:500}
.school-duel-card>.yanli-versus{padding:0 6px 5px}.school-duel-card>.yanli-versus>span{gap:2px}.school-duel-card>.tactic-preference{display:flex;justify-content:space-between;align-items:center;gap:6px;margin:3px 0 8px;text-align:left}.school-duel-card>.tactic-preference>b{font-size:11px;color:#5c426e}.school-duel-card>.tactic-preference>span{font-size:9px;color:#97754b}
.school-duel-card .tactic-choices{gap:8px;margin-bottom:10px}.school-duel-card .tactic-choices .tactic-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:87px;padding:6px 3px;border:2px solid #9b80b1;border-radius:7px 12px 7px 10px;background:#fffdf8;color:#4c355c;box-shadow:0 4px #bba8ce,inset 0 2px #fff;cursor:pointer;touch-action:manipulation;transition:transform .1s,border-color .1s;user-select:none}.tactic-card .tactic-card-mark{position:absolute;right:5px;top:5px;width:12px;height:12px;border:1.5px solid #bca9cd;border-radius:50%;background:#fff;font-size:9px;line-height:10px;font-style:normal}.tactic-card .tactic-card-icon{display:grid;place-items:center;width:27px;height:25px;border:1px solid #dfc38c;border-radius:8px;background:#fff0ce;color:#9b7134;font-size:21px;line-height:1}.tactic-card[data-id="steady"] .tactic-card-icon{background:#e0f2ec;border-color:#a6c9bc;color:#477e6b}.tactic-card[data-id="question"] .tactic-card-icon{background:#e8e4fa;border-color:#bab0dc;color:#7961a7}.school-duel-card .tactic-card>b{font-size:13px;font-weight:850;line-height:1.25;color:#4c355c}.school-duel-card .tactic-card>small{font-size:9px;line-height:1.3;margin:0;color:#85748f}.tactic-card .tactic-card-action{padding:1px 7px;border-radius:4px;background:#eee4fa;font-size:9.5px;font-weight:750;line-height:1.4;color:#79509a}.school-duel-card .tactic-choices .tactic-card.selected{border-color:#7651a5;background:#ecdcfb;box-shadow:0 5px #9c7cba,inset 0 2px #fff;transform:translateY(-1px)}.tactic-card.selected .tactic-card-mark{background:#7951a9;border-color:#7951a9;color:#fff}.tactic-card.selected .tactic-card-action{background:#7951a9;color:#fff}.school-duel-card .tactic-choices .tactic-card:active{transform:translateY(3px);box-shadow:0 1px #9c7cba}.school-duel-card>[data-action="school-duel"]{min-height:40px}.school-duel-card>[data-action="school-duel"]:disabled{opacity:1;background:#eeebf4!important;border-color:#cec3da!important;box-shadow:none!important;color:#9b8ba8!important;font-size:10px;font-weight:600}
.guide-layer .duel-briefing{border-color:#76588c;box-shadow:0 4px #b7a1c8,0 8px 25px #35213d2b;padding:11px 13px}.guide-layer .duel-briefing>b{font-size:16px;margin:6px 0}.guide-layer .duel-briefing>p{font-size:11px;line-height:1.6}.guide-layer .duel-briefing>.button{min-height:34px;margin-top:9px;padding:6px 10px;font-size:12px}
@media(max-height:730px){.school-duel-card .tactic-choices .tactic-card{min-height:80px;padding:5px 2px;gap:2px}.tactic-card .tactic-card-icon{width:25px;height:22px;font-size:19px}.school-duel-card .tactic-card>b{font-size:12px}.school-duel-card>.tactic-preference{margin-bottom:6px}.school-duel-card>[data-action="school-duel"]{min-height:36px}.guide-layer .duel-briefing>b{font-size:15px}.guide-layer .duel-briefing>p{font-size:10px}}
@media(hover:hover){.school-duel-card .tactic-choices .tactic-card:hover{border-color:#7951a9;transform:translateY(-2px)}}
/* Competition: a permanent score-board entrance above the language hall. */
.assessment-rank-banner{display:flex;align-items:center;gap:9px;width:100%;min-height:64px;padding:8px 11px;border:2px solid #a87936;border-radius:8px 14px;background:linear-gradient(115deg,#4d326b,#70529b);box-shadow:inset 0 2px #b09acb,0 3px #3d294e;color:#fff9e9;text-align:left;cursor:pointer}.assessment-rank-banner>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.assessment-rank-banner small{font-size:9px;line-height:1.3;color:#efe4ff}.assessment-rank-banner b{font-size:23px;line-height:1.1;font-weight:900;color:#ffe59c}.assessment-rank-banner .rank-banner-medal{display:grid;place-items:center;width:38px;height:38px;border:2px solid #e6c36d;background:#fff0c6;border-radius:50%;color:#76502c}.assessment-rank-banner .rank-banner-record{display:flex;flex-direction:column;gap:6px;text-align:right}.assessment-rank-banner .rank-banner-record>b{font-size:11px;color:#fff5d4}.ranking-screen .assessment-rank-banner{pointer-events:none}.top-actions{display:flex;align-items:center;gap:6px}.settings-entry svg{display:block;width:24px;height:24px;fill:#e9dff7;stroke:#725384;stroke-width:1.8;stroke-linejoin:round}.settings-entry svg circle{fill:#fffaf1}.settings-options{display:grid;gap:9px;margin:18px 0}.button.danger{background:#9b4666;border:2px solid #693650;color:#fff7fa;box-shadow:0 4px #66344a}.delete-school-label{display:grid;gap:8px;font-size:12px;font-weight:750;margin:18px 0}.delete-school-label input{min-width:0;width:100%;box-sizing:border-box;padding:10px;border:2px solid #b297c6;border-radius:6px;background:#fff;color:#503b63;font-size:14px}
@media(max-height:730px){.assessment-rank-banner{min-height:54px;padding:6px 9px}.assessment-rank-banner b{font-size:21px}.assessment-rank-banner .rank-banner-medal{width:32px;height:32px}.assessment-rank-banner small{font-size:8px}.trial-screen .assessment-entrance{min-height:130px}}
.account-field{display:grid;gap:6px;font-size:11px;font-weight:750;color:#695276;margin:13px 0}.account-field input{width:100%;min-width:0;box-sizing:border-box;border:2px solid #b8a2c9;border-radius:6px;background:#fffdfd;color:#503960;min-height:40px;padding:9px;font-size:13px}.recovery-code{display:block;overflow-wrap:anywhere;padding:16px 12px;margin:16px 0;border:2px dashed #9d7baf;background:#f0e8f7;border-radius:9px;color:#5f3e75;font-size:15px;line-height:1.7;user-select:all}.entry-title .entry-actions:has([data-action="account-login"]){gap:6px;padding-bottom:15px}.entry-title .entry-actions:has([data-action="account-login"]) .button.secondary{min-height:34px;font-size:11px;padding:5px 9px}
