:root { color-scheme: light; --ink:#39334f; --muted:#928ba4; --pink:#ff7399; --paper:#fff9f1; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; background:var(--paper); }
body { min-height:100svh; color:var(--ink); font-family: ui-rounded,"SF Pro Rounded","Arial Rounded MT Bold",system-ui,-apple-system,"Segoe UI",sans-serif; }
button { font:inherit; }
.page { width:min(100%,440px); min-height:100svh; margin:0 auto; padding: max(22px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom)); display:flex; flex-direction:column; }
header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:3px 2px 15px; }
.brand { display:flex; align-items:center; gap:11px; }
.brand-mark { display:grid; place-items:center; width:43px; height:43px; border-radius:15px; color:#fff; background:linear-gradient(145deg,#ffa4b8,#ff769e); font-size:23px; box-shadow:0 7px 16px #ff91a544; }
h1 { margin:0; font-size:20px; letter-spacing:.03em; }
.subtitle { margin-top:2px; color:var(--muted); font-size:11px; letter-spacing:.08em; }
.score-box { min-width:92px; padding:7px 14px; text-align:center; background:white; border:1px solid #f4eced; border-radius:16px; box-shadow:0 5px 15px #503b2810; }
.score-label { color:var(--muted); font-size:10px; letter-spacing:.15em; }
#score { color:#fa7198; font-size:23px; font-weight:850; line-height:1.15; }
.stage { position:relative; width:min(100%,390px); height:min(820px, max(500px, calc(100svh - 72px))); flex:none; align-self:center; overflow:hidden; border:5px solid #fff; border-radius:30px; background:#f9f4ff; box-shadow:0 16px 40px #55427318, inset 0 0 0 1px #eee5f5; }
canvas { display:block; width:100%; height:100%; touch-action:none; }
.hud { position:absolute; z-index:1; top:14px; left:14px; right:14px; display:flex; justify-content:space-between; align-items:flex-start; pointer-events:none; }
.hud-right { display:flex; align-items:center; gap:8px; pointer-events:auto; }
.stage.menu-scene .hud { display:none; }
.home-button { display:grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid #f0e8f2; border-radius:13px; background:#ffffffdf; color:#716782; box-shadow:0 4px 14px #463a5810; font-size:26px; line-height:1; cursor:pointer; }
.home-button:active { transform:scale(.96); }
.customize-button,.icon-button { display:grid; place-items:center; border:1px solid #f0e8f2; background:#ffffffdf; color:#716782; box-shadow:0 4px 14px #463a5810; cursor:pointer; }
.customize-button { width:42px; height:42px; border-radius:15px; font-size:19px; }
.customize-button:active,.icon-button:active { transform:scale(.96); }
.score-box { min-width:76px; padding:6px 12px; }
.pill { display:flex; align-items:center; gap:8px; padding:8px 11px; border-radius:15px; background:#ffffffd9; box-shadow:0 4px 14px #463a5810; backdrop-filter:blur(8px); }
.pill-label { color:var(--muted); font-size:10px; }
#next-ball { display:block; width:30px; height:30px; }
#next-name { color:var(--ink); font-size:11px; font-weight:750; }
.drop-hint { color:#8e83a0; font-size:11px; background:#ffffffc9; border-radius:12px; padding:9px 11px; }
.overlay { position:absolute; inset:0; z-index:3; display:grid; place-items:center; padding:24px; background:#48395235; }
.overlay.menu-overlay { background:linear-gradient(180deg,#35294304,#35294316); }
.overlay[hidden] { display:none; }
.home-confirm-backdrop { position:absolute; inset:0; z-index:4; display:grid; place-items:center; padding:24px; background:#33294370; }
.home-confirm-backdrop[hidden] { display:none; }
.home-confirm-card { width:min(100%,320px); padding:24px 20px 18px; text-align:center; border:1px solid #fff; border-radius:24px; background:#fffaf5; box-shadow:0 18px 50px #21182d55; }
.home-confirm-card h2 { margin:0 0 9px; color:#51445e; font-size:19px; }
.home-confirm-card p { margin:0 0 19px; color:#897f93; font-size:13px; }
.home-confirm-actions { display:flex; gap:9px; }
.home-confirm-actions button { flex:1; min-height:42px; border:1px solid #eee5ee; border-radius:13px; background:#fff; color:#685e76; font-weight:700; cursor:pointer; }
.home-confirm-actions .confirm-home { border-color:#f0a8bc; background:#f57c9b; color:white; }
.stage.university-theme .home-confirm-actions .confirm-home { border-color:#3c9f58; background:linear-gradient(135deg,#70cf80,#35a957); color:#fff; }
.menu-screen[hidden] { display:none; }
.main-menu,.leaderboard-card { width:min(100%,320px); padding:30px 24px 24px; text-align:center; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; animation:pop .28s cubic-bezier(.2,.8,.25,1.2); }
.main-menu h1 { margin:0 0 28px; line-height:0; }
.main-menu h1 img { display:block; width:min(100%,360px); height:auto; margin:0 auto; }
.main-menu h1 img[hidden] { display:none; }
.menu-actions { display:grid; gap:10px; }
.menu-actions button,.leaderboard-card button { width:100%; min-height:56px; border:1px solid #eee5ee; border-radius:17px; background:#ffffffd9; color:#685e76; font-size:16px; font-weight:800; cursor:pointer; }
.menu-actions button:not(.menu-start) { position:relative; display:block; text-align:center; }
.menu-icon { position:absolute; left:calc(50% - 58px); top:50%; width:22px; font-size:18px; line-height:1; transform:translateY(-50%); }
.menu-actions .menu-start { border:0; color:#fff; font-size:18px; background:linear-gradient(135deg,#ff9eae,#fa6b99); box-shadow:0 8px 16px #fa719844; }
/* —— 账户设置：多一个按钮后主菜单整体上移一点（标题上边距 30→20px、卡片上下内边距收紧） —— */
.main-menu { padding:22px 24px 20px; }
.main-menu h1 { margin:0 -20px 20px; }   /* 标题图放大：借用卡片两侧内边距（上限约 -24），按钮不受影响 */
.leaderboard-card.account-card { height:auto; max-height:98%; }   /* 提高特异性：避免被后面的 .leaderboard-card{height:98%} 覆盖（卡片按内容自适应高度） */
.account-profile { display:flex; align-items:center; gap:13px; padding:13px; border:1px solid #f1e7ee; border-radius:18px; background:#fffdfb; }
.account-avatar { width:62px; height:62px; flex:none; border-radius:50%; border:2px solid #fff; background:#f3ecf6; object-fit:cover; box-shadow:0 6px 16px #6b4d6b1f; }
.account-id { min-width:0; }
.account-id strong { display:block; color:#51445e; font-size:17px; word-break:break-all; }
.account-id small { display:block; margin-top:4px; color:#8b8090; font-size:11px; line-height:1.5; }
.account-field { display:block; margin-top:14px; }
.account-field span { display:block; margin-bottom:7px; color:#6d647f; font-size:12px; font-weight:800; }
.account-field input { width:100%; height:42px; padding:0 12px; border:1px solid #e9deec; border-radius:12px; outline-color:#f58ba6; color:#514960; font:inherit; font-size:13px; }
.account-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:11px; }
.account-actions button { min-height:42px; border-radius:13px; font-size:13px; font-weight:800; cursor:pointer; }
/* 昵称自定义功能已移除（9/24）：下面 .account-field / .account-actions / #account-nickname-* 规则暂留未用 */
#account-nickname-reset { border:1px solid #eee5ee; background:#fff; color:#766b7d; }
#account-nickname-save { border:0; background:linear-gradient(135deg,#ff9eae,#fa6b99); color:#fff; }
.account-status { min-height:14px; margin:9px 2px 0; color:#c9587c; font-size:11px; line-height:1.5; }
.account-note { margin:9px 2px 0; color:#a096a0; font-size:10px; line-height:1.6; }
.stage.university-theme .account-status { color:#2f8f4c; }
.stage.university-theme .account-field input { outline-color:#47ae62; }
.stage.university-theme #account-nickname-save { background:linear-gradient(135deg,#78d887,#35ad62); }
.stage.university-theme .menu-actions .menu-start { background:linear-gradient(135deg,#78d887,#35ad62); box-shadow:0 8px 16px #35ad6244; }
.leaderboard-card h2 { margin:0 0 12px; color:#51445e; font-size:24px; }
.leaderboard-card p { margin:18px 0 22px; color:#897f93; font-size:13px; }
.leaderboard-card { width:min(100%,360px); height:98%; max-height:none; overflow:auto; padding:15px 16px 10px; border:1px solid #ffffffd9; border-radius:25px; background:#fffaf2ed; box-shadow:0 18px 48px #35263c30; text-align:left; }
#leaderboard-screen { position:absolute; inset:0; width:auto; height:auto; }
.leaderboard-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; }
.leaderboard-eyebrow { color:#f07899; font-size:10px; font-weight:850; letter-spacing:.1em; }
.leaderboard-heading h2 { margin:3px 0 0; font-size:25px; }
.leaderboard-card .leaderboard-back { width:38px; min-height:38px; border-radius:13px; font-size:25px; line-height:1; }
.zone-select-button { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 13px; min-height:44px!important; border-radius:14px!important; text-align:left; font-size:13px!important; }
.zone-select-button span:first-child { color:#8b8090; font-size:12px; }
.zone-select-button strong { flex:1; color:#51445e; text-align:right; }
.leaderboard-card .leaderboard-scope { min-height:17px; margin:8px 2px 10px; color:#8b8090; font-size:11px; }
.leaderboard-tabs { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:4px; border-radius:15px; background:#f1e9ec; }
.leaderboard-card .leaderboard-tab { min-height:38px; border:0; border-radius:11px; background:transparent; color:#817583; font-size:13px; }
.leaderboard-card .leaderboard-tab.active { background:#f47f9f; color:#fff; box-shadow:0 3px 9px #e889a344; }
.leaderboard-summary { display:flex; align-items:center; justify-content:space-between; margin:13px 2px 11px; color:#857887; font-size:11px; }
.leaderboard-summary strong { color:#51445e; font-size:16px; }
.leaderboard-list-head,.leaderboard-row { display:grid; grid-template-columns:1fr auto; align-items:center; gap:8px; }
.leaderboard-list-head { padding:9px 11px; border-radius:11px 11px 0 0; background:#f7eef0; color:#887b89; font-size:10px; font-weight:800; }
.leaderboard-rows { display:grid; gap:1px; overflow:hidden; border-radius:0 0 12px 12px; background:#f0e8e9; }
.leaderboard-row { min-height:43px; padding:6px 11px; background:#fffdfa; color:#5a4c60; font-size:12px; }
.leaderboard-row strong { color:#55465e; font-variant-numeric:tabular-nums; }
.leaderboard-row .rank { display:inline-grid; width:20px; height:20px; place-items:center; margin-right:8px; border-radius:7px; background:#f6edf0; color:#998994; font-weight:850; }
.leaderboard-empty { padding:20px 12px; background:#fffdfa; color:#9b8e9c; text-align:center; font-size:12px; }
.leaderboard-modal { position:absolute; inset:0; z-index:8; display:grid; place-items:center; padding:18px; background:#33294380; }
.leaderboard-modal[hidden] { display:none; }
.leaderboard-modal-card { width:min(100%,330px); max-height:calc(100% - 12px); overflow:hidden; padding:22px 18px 16px; border:1px solid #fff; border-radius:23px; background:#fffaf5; box-shadow:0 18px 50px #21182d55; }
.leaderboard-modal-card.zone-modal-card { padding-top:20px; }
.zone-modal-card .leaderboard-eyebrow { display:block; margin:0 0 13px; color:#51445e; font-size:20px; letter-spacing:0; }
.leaderboard-modal-card h2 { margin:4px 0 7px; color:#51445e; font-size:21px; }
.leaderboard-modal-card>p { margin:0 0 12px; color:#897f93; font-size:12px; }
.leaderboard-modal .zone-option { display:grid; grid-template-columns:32px 1fr 20px; align-items:center; gap:8px; height:60px; min-height:60px; margin-top:8px; padding:8px 12px; border:1px solid #efe6eb; border-radius:14px; background:#fff; text-align:left; }
/* 模式选择弹窗：标题居中 + 两个入口并排 */
.mode-modal-card { padding-top:22px; text-align:center; }
.mode-modal-card h2 { margin:0; color:#51445e; font-size:19px; font-weight:850; letter-spacing:.02em; }
.mode-options { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:15px; }
.mode-option { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:96px; padding:14px 8px; border:1px solid #efe6eb; border-radius:15px; background:#fff; color:#51445e; font:inherit; cursor:pointer; }
.mode-option:active { transform:scale(.98); }
.mode-option-emoji { font-size:26px; line-height:1; }
.mode-option strong { font-size:13px; font-weight:850; }
.mode-option small { color:#a096a0; font-size:10px; font-weight:600; line-height:1.4; }
.stage.university-theme .mode-option { border-color:#dcecdd; background:#fdfffd; }
.zone-option>span:first-child { font-size:21px; }
.zone-option strong,.zone-option small { display:block; }
.zone-option strong { color:#584a60; font-size:13px; }
.zone-check { color:#ed7d9c; font-size:19px; }
.leaderboard-modal .modal-cancel,.leaderboard-modal .modal-confirm { min-height:40px; border-radius:12px; font-size:13px; }
.leaderboard-modal .modal-cancel { margin-top:10px; border:1px solid #eee5ee; background:#fff; color:#766b7d; }
.college-modal-card { display:flex; flex-direction:column; }
.college-options { display:grid; grid-template-columns:1fr 1fr; gap:7px; overflow:auto; min-height:0; max-height:min(54vh,400px); padding:1px 3px 3px 1px; }
.leaderboard-modal .college-option { min-height:43px; padding:5px 7px; border:1px solid #eee5ee; border-radius:11px; background:#fff; color:#695d70; font-size:10px; line-height:1.35; }
.leaderboard-modal .college-option.selected { border-color:#f181a0; background:#fff0f4; color:#d4567b; box-shadow:0 0 0 1px #f181a0 inset; }
.college-modal-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.leaderboard-modal .college-modal-actions .modal-cancel { margin:0; }
.leaderboard-modal .modal-confirm { border:0; background:linear-gradient(135deg,#ff9eae,#fa6b99); color:#fff; font-weight:800; }
.leaderboard-modal .modal-confirm:disabled { opacity:.48; }
.stage.university-theme .leaderboard-eyebrow { color:#319956; }
.stage.university-theme .leaderboard-card .leaderboard-tab.active,.stage.university-theme .leaderboard-modal .modal-confirm { background:linear-gradient(135deg,#78d887,#35ad62); }
.stage.university-theme .leaderboard-list-head { background:#e9f5e9; }
.stage.university-theme .leaderboard-row .rank { background:#eaf5e9; }
.stage.university-theme .leaderboard-modal .college-option.selected { border-color:#55b76c; background:#edf8ee; color:#268b42; }
.stage.university-theme .zone-check { color:#319956; }
.dialog { width:min(100%,330px); padding:28px 25px 24px; text-align:center; border:1px solid #fff; border-radius:28px; background:#fffaf5; box-shadow:0 20px 60px #33274736; animation:pop .28s cubic-bezier(.2,.8,.25,1.2); }
@keyframes pop { from { transform:scale(.88); opacity:0; } to { transform:scale(1); opacity:1; } }
.dialog-emoji { font-size:48px; line-height:1.2; }
.dialog h2 { margin:8px 0 7px; font-size:25px; }
.dialog p { margin:0 0 19px; color:var(--muted); font-size:13px; line-height:1.65; }
.primary { width:100%; min-height:49px; border:0; border-radius:16px; color:white; font-size:16px; font-weight:800; background:linear-gradient(135deg,#ff9eae,#fa6b99); box-shadow:0 8px 16px #fa719844; cursor:pointer; transition:transform .12s,filter .12s; }
.primary:active { transform:scale(.97); filter:brightness(.97); }
.secondary { width:100%; min-height:42px; margin-top:9px; border:1px solid #f0e5ee; border-radius:14px; color:#756985; background:#fff; font-weight:750; cursor:pointer; }
#gameover-menu-button { margin-top:9px; }
.stage.university-theme .dialog .primary { background:linear-gradient(135deg,#78d887,#35ad62); box-shadow:0 8px 16px #35ad6244; }
.customizer { position:absolute; inset:0; z-index:5; display:none; overflow:auto; overscroll-behavior:contain; padding:15px 14px 20px; background:linear-gradient(160deg,#fffaf7,#f5efff); }
.customizer.open { display:block; }
.custom-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:3px; }
.custom-head h2 { margin:0; font-size:20px; }
.icon-button { width:36px; height:36px; border-radius:13px; font-size:18px; }
.custom-lead { margin:0 0 13px; color:var(--muted); font-size:11px; }
.advanced-settings-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:43px; margin:12px 0 10px; padding:0 13px; border:1px solid #eee1e9; border-radius:13px; background:#fffdfd; color:#705f75; font-size:12px; font-weight:800; cursor:pointer; }
.advanced-settings-toggle span:last-child { color:#e97998; font-size:16px; }
.advanced-settings-content[hidden] { display:none; }
.stage.university-theme .advanced-settings-toggle { border-color:#d8ebda; color:#426a4b; }
.stage.university-theme .advanced-settings-toggle span:last-child { color:#319956; }
.custom-tabs { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:8px 0 12px; }
.custom-tab { min-height:38px; border:1px solid #ece3f0; border-radius:12px; background:#fff; color:#80768d; font-size:12px; font-weight:750; cursor:pointer; }
.custom-tab.active { border-color:#f28aa5; background:#fff0f4; color:#d95f80; }
.custom-panel[hidden] { display:none; }
.background-card { padding:13px; border:1px solid #eee6f1; border-radius:18px; background:#ffffffcf; }
.background-card h3 { margin:0 0 10px; font-size:14px; }
.background-color-row { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#766d83; font-size:12px; }
.background-color-controls { display:flex; align-items:center; gap:6px; }
.background-action { min-height:36px; padding:0 11px; border:1px solid #eee5ed; border-radius:11px; background:#fff; color:#716782; font-size:11px; font-weight:750; cursor:pointer; }
.background-action.primary { border:0; background:#fa85a2; color:#fff; }
.background-upload { margin-top:15px; }
#background-image-file { display:none; }
.background-upload-label { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 13px; border:1px solid #ede4f0; border-radius:12px; background:#fff; color:#70667e; font-size:12px; font-weight:750; cursor:pointer; }
#background-crop { display:block; width:min(100%,180px); height:auto; aspect-ratio:9/16; margin:12px auto 6px; border:1px solid #ebe4ee; border-radius:15px; background:#f2edf4; touch-action:none; cursor:grab; }
#background-crop.dragging { cursor:grabbing; }
.background-zoom { display:flex; align-items:center; gap:8px; margin:7px auto 11px; max-width:230px; color:#80768d; font-size:11px; }
.background-zoom input { flex:1; min-width:0; accent-color:#fa83a3; }
.scheme-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:7px; margin:8px 0 3px; }
.scheme-select { height:39px; flex:1; min-width:0; padding:0 10px; border:1px solid #ebe2ef; border-radius:12px; background:#fff; color:#514960; font-size:11px; }
.scheme-select option.adopted-scheme { color:#f05f88; font-weight:800; }
.scheme-adopt-button { height:39px; flex:none; padding:0 10px; border:1px solid #fa7198; border-radius:12px; background:linear-gradient(135deg,#ff91aa,#f76691); color:#fff; font-size:11px; font-weight:800; cursor:pointer; }
.scheme-adopt-button:disabled { opacity:.48; cursor:default; }
.scheme-rename-button { height:39px; flex:none; padding:0 10px; border:1px solid #ebe2ef; border-radius:12px; background:#fff; color:#716782; font-size:11px; font-weight:700; cursor:pointer; }
.scheme-delete-button { height:39px; flex:none; padding:0 10px; border:1px solid #f2d9df; border-radius:12px; background:#fff8fa; color:#cf5574; font-size:11px; font-weight:700; cursor:pointer; }
.scheme-rename-button:disabled,.scheme-delete-button:disabled { opacity:.42; cursor:default; }
.scheme-add { width:39px; height:39px; flex:none; border:0; border-radius:12px; background:#fa85a2; color:#fff; font-size:24px; line-height:1; cursor:pointer; }
.scheme-import { display:inline-flex; align-items:center; justify-content:center; height:39px; padding:0 10px; border:1px solid #ebe2ef; border-radius:12px; background:#fff; color:#716782; font-size:11px; font-weight:750; cursor:pointer; }
.scheme-actions { display:flex; gap:7px; grid-column:1/-1; }
.scheme-actions button { flex:1; }
#scheme-file { display:none; }
.scheme-status { min-height:14px; margin:3px 2px 8px; color:#968da0; font-size:10px; }
.scheme-export { width:100%; min-height:44px; margin-top:12px; border:0; border-radius:14px; background:linear-gradient(135deg,#ff9eae,#fa6b99); color:white; font-size:13px; font-weight:800; cursor:pointer; }
.scheme-name-dialog { position:absolute; inset:0; z-index:8; display:grid; place-items:center; padding:22px; background:#40344d66; backdrop-filter:blur(4px); }
.scheme-name-dialog[hidden] { display:none; }
.scheme-name-card { width:min(100%,300px); padding:21px; border:1px solid white; border-radius:22px; background:#fffaf6; box-shadow:0 16px 45px #36274940; }
.scheme-name-card h3 { margin:0 0 13px; font-size:17px; }
#scheme-name-input { width:100%; height:42px; padding:0 11px; border:1px solid #e9deec; border-radius:12px; outline-color:#f58ba6; color:#514960; font:inherit; font-size:13px; }
.scheme-name-actions { display:flex; gap:8px; margin-top:13px; }
.scheme-name-actions button { flex:1; min-height:38px; border:0; border-radius:11px; font-size:12px; font-weight:750; cursor:pointer; }
#save-scheme-name { color:white; background:#f47f9e; }
#cancel-scheme-name { color:#756b82; background:#f1edf4; }
.custom-label { margin:12px 0 8px; color:#6d647f; font-size:12px; font-weight:800; }
.ball-list { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; }
.ball-choice { min-width:0; padding:7px 3px 6px; border:1px solid #efe7f1; border-radius:14px; background:#ffffffbd; color:#625a74; cursor:pointer; }
.ball-choice.selected { border:2px solid #fa83a3; padding:6px 2px 5px; background:white; box-shadow:0 4px 12px #fa83a322; }
.ball-swatch { display:grid; place-items:center; width:34px; height:34px; margin:0 auto 4px; border-radius:50%; border:1px solid #ffffffa8; box-shadow:inset -3px -4px 6px #49334a22,inset 3px 4px 7px #ffffff99; overflow:hidden; color:white; font-size:19px; }
.ball-swatch img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.ball-swatch.no-base { overflow:visible; border:0; box-shadow:none; background:transparent !important; }
.ball-swatch.no-base img { width:132%; height:132%; max-width:none; }
.ball-choice-name { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.edit-card { margin-top:12px; padding:13px; border:1px solid #eee6f1; border-radius:19px; background:#ffffffcf; }
.edit-title { margin:0 0 10px; font-size:15px; }
.ball-name-row { display:flex; align-items:center; gap:7px; margin-bottom:11px; }
.ball-name-row input { flex:1; min-width:0; height:35px; padding:0 10px; border:1px solid #eee5ed; border-radius:10px; background:#fff; color:#514960; font-size:12px; }
.color-row { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#766d83; font-size:12px; }
.color-controls { display:flex; align-items:center; gap:6px; }
.reset-color { min-height:32px; padding:0 9px; border:1px solid #eee5ed; border-radius:10px; background:#fff; color:#837991; font-size:10px; cursor:pointer; }
.border-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:11px; color:#766d83; font-size:12px; }
.border-row input { width:18px; height:18px; accent-color:#fa83a3; }
input[type="color"] { width:52px; height:36px; padding:3px; border:1px solid #eee5ec; border-radius:11px; background:white; cursor:pointer; }
.upload-row { display:flex; align-items:center; gap:9px; margin-top:11px; }
.upload-button { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 13px; border:1px solid #ede4f0; border-radius:12px; background:#fff; color:#70667e; font-size:12px; font-weight:750; cursor:pointer; }
#image-file { display:none; }
.crop-wrap { display:flex; flex-direction:column; align-items:center; margin-top:12px; }
#crop-canvas { width:min(100%,220px); height:auto; aspect-ratio:1; border:1px solid #ebe4ee; border-radius:18px; background:#f2edf4; touch-action:none; cursor:grab; }
#crop-canvas.dragging { cursor:grabbing; }
.crop-note { margin:7px 0 9px; color:#968da0; font-size:10px; text-align:center; }
.zoom-row { display:flex; align-items:center; gap:8px; width:min(100%,240px); color:#8d8497; font-size:11px; }
.zoom-row input { flex:1; accent-color:#fa83a3; }
.crop-actions { display:flex; gap:8px; width:100%; margin-top:11px; }
.crop-actions button { flex:1; min-height:38px; border:0; border-radius:12px; background:#fa85a2; color:white; font-size:12px; font-weight:800; cursor:pointer; }
.crop-actions button:disabled { opacity:.42; cursor:default; }
.crop-actions .clear-image { border:1px solid #eee5ed; background:white; color:#837991; }
.footer { padding:13px 8px 0; text-align:center; color:#9a92a4; font-size:11px; }
.footer b { color:#fa809d; }
.stage.university-theme #score { color:#299e54; }
.stage.university-theme .customizer { background:linear-gradient(160deg,#f7fff7,#edf8ef); }
.stage.university-theme .custom-tab.active { border-color:#69bd78; background:#e9f8eb; color:#348d4a; }
.stage.university-theme .background-action.primary,
.stage.university-theme .scheme-adopt-button,
.stage.university-theme .scheme-add,
.stage.university-theme .scheme-export,
.stage.university-theme .crop-actions button:not(.clear-image),
.stage.university-theme #save-scheme-name { border-color:#47ae62; background:linear-gradient(135deg,#70cf80,#35a957); color:#fff; }
.stage.university-theme .scheme-adopt-button:disabled { opacity:.48; }
.stage.university-theme .scheme-select option.adopted-scheme { color:#299e54; }
.stage.university-theme #scheme-name-input { outline-color:#47ae62; }
.stage.university-theme .ball-choice.selected { border-color:#49af63; box-shadow:0 4px 12px #49af6333; }
.stage.university-theme .background-zoom input,
.stage.university-theme .border-row input,
.stage.university-theme .zoom-row input { accent-color:#43ad5d; }
.stage.university-theme .footer b { color:#299e54; }
/* —— 中秋限定主题（黄色系）：与南林绿色主题一一对应，只换色，不动结构 —— */
.stage.midautumn-theme .home-confirm-actions .confirm-home { border-color:#e5a92c; background:linear-gradient(135deg,#ffd57a,#eaa72c); color:#fff; }
.stage.midautumn-theme .account-status { color:#b07d18; }
.stage.midautumn-theme .account-field input { outline-color:#e5a92c; }
.stage.midautumn-theme #account-nickname-save { background:linear-gradient(135deg,#ffd57a,#eaa72c); }
.stage.midautumn-theme .menu-actions .menu-start { background:linear-gradient(135deg,#ffd57a,#eaa72c); box-shadow:0 8px 16px #eaa72c44; }
.stage.midautumn-theme .mode-option { border-color:#f0e0bb; background:#fffdf6; }
.stage.midautumn-theme .leaderboard-eyebrow { color:#ab7a17; }
.stage.midautumn-theme .leaderboard-card .leaderboard-tab.active,.stage.midautumn-theme .leaderboard-modal .modal-confirm { background:linear-gradient(135deg,#ffd57a,#eaa72c); }
.stage.midautumn-theme .leaderboard-list-head { background:#fdf3dc; }
.stage.midautumn-theme .leaderboard-row .rank { background:#fdf3dc; }
.stage.midautumn-theme .leaderboard-modal .college-option.selected { border-color:#e5b449; background:#fff7e3; color:#a8761a; }
.stage.midautumn-theme .zone-check { color:#ab7a17; }
.stage.midautumn-theme .dialog .primary { background:linear-gradient(135deg,#ffd57a,#eaa72c); box-shadow:0 8px 16px #eaa72c44; }
.stage.midautumn-theme .advanced-settings-toggle { border-color:#f0e2c0; color:#8a6a2e; }
.stage.midautumn-theme .advanced-settings-toggle span:last-child { color:#ab7a17; }
.stage.midautumn-theme #score { color:#d99a1f; }
.stage.midautumn-theme .customizer { background:linear-gradient(160deg,#fffdf5,#fdf4dc); }
.stage.midautumn-theme .custom-tab.active { border-color:#e8bd55; background:#fdf4dc; color:#a8761a; }
.stage.midautumn-theme .background-action.primary,
.stage.midautumn-theme .scheme-adopt-button,
.stage.midautumn-theme .scheme-add,
.stage.midautumn-theme .scheme-export,
.stage.midautumn-theme .crop-actions button:not(.clear-image),
.stage.midautumn-theme #save-scheme-name { border-color:#e5a92c; background:linear-gradient(135deg,#ffd57a,#eaa72c); color:#fff; }
.stage.midautumn-theme .scheme-adopt-button:disabled { opacity:.48; }
.stage.midautumn-theme .scheme-select option.adopted-scheme { color:#d99a1f; }
.stage.midautumn-theme #scheme-name-input { outline-color:#e5a92c; }
.stage.midautumn-theme .ball-choice.selected { border-color:#e5b449; box-shadow:0 4px 12px #e5b44933; }
.stage.midautumn-theme .background-zoom input,
.stage.midautumn-theme .border-row input,
.stage.midautumn-theme .zoom-row input { accent-color:#e5a92c; }
.stage.midautumn-theme .footer b { color:#d99a1f; }
@media (max-height:680px) { .page { padding-top:max(12px,env(safe-area-inset-top)); padding-bottom:max(12px,env(safe-area-inset-bottom)); } .stage { height:max(410px, calc(100svh - 52px)); } }
@media (min-width:600px) and (min-height:760px) { .page { padding-top:30px; padding-bottom:25px; } .stage { height:min(820px, calc(100svh - 88px)); } }
  /* 右下角署名：固定定位、不接收指针事件（绝不挡操作） */
#author-badge { position:fixed; right:10px; bottom:max(6px,env(safe-area-inset-bottom)); z-index:5;
  font-size:12px; font-weight:700; letter-spacing:.5px; color:rgba(122,110,134,.42);
  pointer-events:none; user-select:none; -webkit-user-select:none; }
  /* 面板打开时自动隐藏徽标（避免压住卡片；不支持 :has() 的浏览器只是保持显示） */
body:has(#leaderboard-screen:not([hidden])) #author-badge,
body:has(#account-screen:not([hidden])) #author-badge,
body:has(#scheme-screen:not([hidden])) #author-badge,
body:has(#help-screen:not([hidden])) #author-badge { opacity:0; }
@media (prefers-reduced-motion: no-preference) { #author-badge { transition:opacity .18s; } }

/* —— 学院选择弹窗：显示各学院院徽 —— */
/* 院徽图片来源：南京林业大学本科招生网 https://zsb.njfu.edu.cn 首页底部「各学院」栏目 */
.leaderboard-modal .college-option { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:60px; padding:8px 6px; }
.leaderboard-modal .college-option-emblem { width:32px; height:32px; flex:none; border-radius:50%; object-fit:contain; background:#fff; box-shadow:0 1px 4px #6b4d6b1f; }
.leaderboard-modal .college-option-name { display:block; }

/* —— 底栏版权小字（为它预留了 28px：上面 .stage 的高度已相应减少）—— */
.site-footer { margin:auto auto 0; max-width:330px; padding-top:8px; text-align:center; color:#a9a2b6; font-size:10px; line-height:1.6; letter-spacing:.02em; }
.site-footer p { margin:0; }
.site-footer a { color:inherit; text-decoration:none; border-bottom:1px dotted currentColor; }
#site-footer-icp { margin-top:1px; }
